On Thu, Aug 08, 2013 at 03:29:42PM +0100, Patrick Welche wrote: > [...] > atapibus0 at atabus1: 1 targets > siisata_atapi_probe_device: drive 0 not present > fatal protection fault in supervisor mode > trap type 4 code 0 rip ffffffff8018c59d cs 8 rflags 10282 cr2 0 ilevel 0 rsp > fffffe810e1707d0 > curlwp 0xfffffe821d3101e0 pid 0.64 lowest kstack 0xfffffe810e16d000 > kernel: protection fault trap, code=0 > Stopped in pid 0.64 (system) at netbsd:ata_get_params+0x1e: movq > 58(%rax) > ,%r14 > db{1}> bt > ata_get_params() at netbsd:ata_get_params+0x1e > siisata_atapi_probe_device() at netbsd:siisata_atapi_probe_device+0xd0 > atapibusattach() at netbsd:atapibusattach+0xba > config_attach_loc() at netbsd:config_attach_loc+0x182 > siisata_atapibus_attach() at netbsd:siisata_atapibus_attach+0xb4 > atabusconfig_thread() at netbsd:atabusconfig_thread+0x29a > > "drive 0 not present", yet "port 1: device present" ?
looks like a simple reverted condition, can you try the attached patch ? -- Manuel Bouyer <bou...@antioche.eu.org> NetBSD: 26 ans d'experience feront toujours la difference --
Index: siisata.c =================================================================== RCS file: /cvsroot/src/sys/dev/ic/siisata.c,v retrieving revision 1.26 diff -u -p -u -r1.26 siisata.c --- siisata.c 22 Jun 2013 05:41:25 -0000 1.26 +++ siisata.c 8 Aug 2013 17:05:38 -0000 @@ -1417,7 +1417,7 @@ siisata_atapi_probe_device(struct atapib return; /* if no ATAPI device detected at attach time, skip */ - if (drvp->drive_type == ATA_DRIVET_ATAPI) { + if (drvp->drive_type != ATA_DRIVET_ATAPI) { SIISATA_DEBUG_PRINT(("%s: drive %d " "not present\n", __func__, target), DEBUG_PROBE); return;