tech-kern archive

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

device module auto loading fix



Hi folks,

I tried to look at issue reported by nicholas (kernel panic during cd boot).
And I found that there areat least two bugs which lead to this panic.

1) [bc]dev_open

In spec_open [1] we try to open device and when open function fails with ENXIO which means that device was not found in a list, we try to autoload it. Problem is that wecan get ENXIO even when driver is already present in kernel. This is issue reported by nicholas. Attached diff adds new only in
 kernel errno ENODEVSW which is reported by [bc]dev_open routine when
 [bc]dev_lookup function fails.

To be clear here I do not need to add new errno, what I need is distinguish
 between error in bdev_lookup and device open routine.

2) scsipi/cd.c
During testing, I was not able to boot install cd even with my patch. I have found that version 1.284 of cd.c (was not pulled to -5) file introduces some bug which makes cdopen return ENXIO during boot of install cd. Reverting to 1.283 version fixes problem for me and I can boot -current install cd again.

Do you have any suggestions ? Is it ok to commit attached patch ?

 [1] http://opengrok.netbsd.org/source/xref/sys/miscfs/specfs/spec_vnops.c#451

Attachment: specfs.diff
Description: Binary data


Regards

Adam.



Home | Main Index | Thread Index | Old Index