panic in ata_boot_attach

Nate Lawson nate at root.org
Mon Jan 12 12:02:20 PST 2004


I got a panic when booting with a kernel as of today.  Right before the
panic, I get "ata1-slave: TIMEOUT in ATAPI_IDENTIFY retrying, 3 tries left
LBA=0".  Note that on the ata1 channel, I only have one device (a CDROM,
a master).

It works fine with a kernel as of Dec 30.  The panic msg is a read on page
not present.  I'm guessing the atadev or param pointers are invalid.

Here is the call stack:

(gdb) l *ata_getparam+0xb6
0xc045d716 is in ata_getparam (../../../dev/ata/ata-all.c:585).
580                         break;
581                     request->retries--;
582                 }
583                 ata_free_request(request);
584             }
585             if (!isprint(atadev->param->model[0]) ||
586                 !isprint(atadev->param->model[1]))
587                 error = ENXIO;
588             if (error) {
589                 free(atadev->param, M_ATA);

(gdb) l *ata_identify_devices+0x5f
0xc045d8ff is in ata_identify_devices (../../../dev/ata/ata-all.c:637).
632             else
633                 ch->device[SLAVE].attach = ad_attach;
634     #endif
635         }
636         if (ch->devices & ATA_ATAPI_SLAVE) {
637             if (ata_getparam(&ch->device[SLAVE], ATA_ATAPI_IDENTIFY))
638                 ch->devices &= ~ATA_ATAPI_SLAVE;
639             else {
640                 switch (ch->device[SLAVE].param->config & ATA_ATAPI_TYPE_MASK) {
641     #ifdef DEV_ATAPICD

(gdb) l *ata_boot_attach+0x2f
0xc045dcdf is in ata_boot_attach (../../../dev/ata/ata-all.c:742).
737          */
738         for (ctlr=0; ctlr<devclass_get_maxunit(ata_devclass); ctlr++) {
739             if (!(ch = devclass_get_softc(ata_devclass, ctlr)))
740                 continue;
741             ata_identify_devices(ch);
742             if (ch->device[MASTER].attach)
743                 ch->device[MASTER].attach(&ch->device[MASTER]);
744             if (ch->device[SLAVE].attach)
745                 ch->device[SLAVE].attach(&ch->device[SLAVE]);
746     #ifdef DEV_ATAPICAM



More information about the freebsd-current mailing list