NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/56982: mutex error (locking against myself) in wdc(4) NOIRQ case?



wdc(4) with NOIRQ worked on DIGNOSTIC kernel for hpcsh/current a while ago.

My guess is: This is because wdc(4) for mac68k is too hackish. As tsutsui@
pointed out in port-mac68k/56973, this driver registers interrupt
handler, *AND* it also enables polling mode (ATAC_CAP_NOIRQ).

I don't know what exactly goes on, but I *imagine* that sometime interrupt
is raised, and sometimes isn't, c.f.:

http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/arch/mac68k/obio/wdc_obio.c#rev1.1

MI wdc(4)/ata(4) drivers may get confused, which results in inconsistent
mutex states in the end.

The real fix should be to make driver working for interrupt mode. But
if it is too hard, can we switch to full polling mode instead? (IMO, MI
wdc(4)/ata(4) drivers should not be more complicated...)

Thanks,
rin


Home | Main Index | Thread Index | Old Index