Hi Michael, On Wed, Jun 19, 2019 at 2:09 AM Michael Schmitz <schmitz...@gmail.com> wrote: > On 18/06/19 6:56 PM, Geert Uytterhoeven wrote: > > On Mon, Jun 17, 2019 at 11:22 PM Michael Schmitz <schmitz...@gmail.com> > > wrote: > >> On 15/06/19 11:15 AM, Finn Thain wrote: > >>> On Wed, 12 Jun 2019, Szymon Bieganski wrote: > >>>> Here is the end of dmesg (full log in attachment) when kernel stalls, > >>>> just as before: > >>>> > >>>> ------------------------ > >>>> > >>>> [ 122.430000] This architecture does not have kernel memory protection. > >>>> [ 122.440000] Run /init as init process > >>>> [ 126.690000] calling ide_init+0x0/0x7c [ide_core] @ 43 > >>>> [ 126.700000] Uniform Multi-Platform E-IDE driver > >>>> [ 126.710000] initcall ide_init+0x0/0x7c [ide_core] returned 0 after > >>>> 7988 usecs > >>>> [ 126.980000] calling amiga_gayle_ide_driver_init+0x0/0x1c [gayle] @ 43 > >>>> [ 126.990000] ide: Gayle IDE controller (A1200 style) > >>>> [ 127.000000] Probing IDE interface ide0... > >>>> [ 127.390000] hda: probing with STATUS(0x50) instead of ALTSTATUS(0x0a) > >>>> [ 127.540000] hda: SAMSUNG MP0402H, ATA DISK drive > >>>> [ 127.610000] Z2RAM: using 0K Zorro II RAM and 512K Chip RAM (Total > >>>> 512K) > >>>> [ 127.980000] hdb: probing with STATUS(0x00) instead of ALTSTATUS(0x0a) > >>>> [ 128.200000] hdb: probing with STATUS(0x00) instead of ALTSTATUS(0x0a) > >>>> [ 148.570000] watchdog: BUG: soft lockup - CPU#0 stuck for 22s! > >>>> [systemd-udevd:43] > >> Finn has raised the issue of systemd's short timeouts before. I'm > >> wondering whether that's part of your problem here. But the IDE driver > >> probe for a second disk should eventually complete, regardless of > >> systemd's udev module crashing? > >> > >> Not sure whether the 'probing with STATUS instead of ALTSTATUS' message > >> is normal for the A1200. Geert might remember that sort of detail. > > That comes from drivers/ide/ide-probe.c:ide_dev_read_id(). > > Looking at the code, it may be caused by the drive, too. > > > I don't see IDE_HFLAG_BROKEN_ALTSTATUS set anywhere in the kernel code > except drivers/ide/amd74xx.c. gayle.c sets: > > .host_flags = IDE_HFLAG_MMIO | IDE_HFLAG_SERIALIZE | > IDE_HFLAG_NO_DMA, > > So how would that flag bit get set for the gayle driver?
Finally someone bitten by not using the ! operator ;-) The test condition is (hwif->host_flags & IDE_HFLAG_BROKEN_ALTSTATUS) == 0 i.e. if the flag is _not_ set. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds