Current-Users archive

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

Re: siisata panic



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 <bouyer%antioche.eu.org@localhost>
     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;


Home | Main Index | Thread Index | Old Index