Date: Mon, 8 Sep 2003 23:25:17 +0200 From: Thomas Quinot <thomas@cuivre.fr.eu.org> To: Andrew Gallatin <gallatin@cs.duke.edu> Cc: freebsd-alpha@freebsd.org Subject: Re: atapicam causes fatal kernel trap Message-ID: <20030908212517.GA59827@melusine.cuivre.fr.eu.org> In-Reply-To: <16220.61276.946194.736750@grasshopper.cs.duke.edu> References: <3F568ED4.5095458F@performancedesign.no> <16215.32222.610240.127909@grasshopper.cs.duke.edu> <3F579927.1020601@performancedesign.no> <16215.39766.415180.759716@grasshopper.cs.duke.edu> <3F5A20ED.C5DE017E@performancedesign.no> <16220.34865.620913.836921@grasshopper.cs.duke.edu> <3F5CE880.E08ABB6D@performancedesign.no> <16220.61276.946194.736750@grasshopper.cs.duke.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
Le 2003-09-08, Andrew Gallatin écrivait : > Hmmm.. Thomas, how can ccb_h->target_id ever be less than 0 if > a target_id_t is typedef'ed to a u_int? Perhaps the test should be > if (softc->ata_ch && ccb_h->target_id != CAM_TARGET_WILDCARD) { Uh oh. Looks like a possible culprit indeed! Idar, please test the following patch: Index: atapi-cam.c =================================================================== RCS file: /home/ncvs/src/sys/dev/ata/atapi-cam.c,v retrieving revision 1.10.2.5 diff -u -r1.10.2.5 atapi-cam.c --- atapi-cam.c 24 Aug 2003 03:26:38 -0000 1.10.2.5 +++ atapi-cam.c 8 Sep 2003 21:12:06 -0000 @@ -252,7 +252,11 @@ strncpy(cpi->dev_name, cam_sim_name(sim), sizeof cpi->dev_name); cpi->unit_number = cam_sim_unit(sim); cpi->bus_id = cam_sim_bus(sim); + printf ("softc->ata_ch = %p\n", softc->ata_ch); + printf ("softc->ata_ch->device = %p\n", softc->ata_ch->device); + printf ("ccb_h->target_id = %d\n", ccb_h->target_id); if (softc->ata_ch && ccb_h->target_id >= 0) { + if (ccb_h->target_id < 2) { switch (softc->ata_ch->device[ccb_h->target_id].mode) { case ATA_PIO1: cpi->base_transfer_speed = 5200; @@ -282,6 +286,7 @@ break; default: cpi->base_transfer_speed = 3300; } + } else cpi->base_transfer_speed = 3300; } ccb->ccb_h.status = CAM_REQ_CMP; xpt_done(ccb); -- Thomas.Quinot@Cuivre.FR.EU.ORG
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030908212517.GA59827>