From owner-freebsd-current@FreeBSD.ORG Mon Jan 12 12:02:20 2004 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9C5EC16A4CE for ; Mon, 12 Jan 2004 12:02:20 -0800 (PST) Received: from root.org (root.org [67.118.192.226]) by mx1.FreeBSD.org (Postfix) with SMTP id 796C243D90 for ; Mon, 12 Jan 2004 12:01:55 -0800 (PST) (envelope-from nate@root.org) Received: (qmail 57378 invoked by uid 1000); 12 Jan 2004 20:01:56 -0000 Date: Mon, 12 Jan 2004 12:01:56 -0800 (PST) From: Nate Lawson To: current@freebsd.org Message-ID: <20040112115751.C57359@root.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Subject: panic in ata_boot_attach X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Jan 2004 20:02:20 -0000 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; ctlrdevice[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