On Fri, 2007-04-27 at 16:47 -0500, Bob Tracy wrote:Knowing what these messages are is would be helpful; it tells me what point in the initialisation it got to. I'm interested. This is clearly a use_sg==1 path that has failed to bounce the buffer for some reason ... and I was contemplating eliminating the GFP_DMA from our sr driver because I thought the block bouncing had it covered. It might also be helpful to apply this patch. It should give a stack trace of the problem command and not immediately panic the box. Thanks, James diff --git a/drivers/scsi/aha1542.c b/drivers/scsi/aha1542.c index 1d239f6..4ee7d99 100644 --- a/drivers/scsi/aha1542.c +++ b/drivers/scsi/aha1542.c @@ -75,7 +75,7 @@ static void BAD_SG_DMA(Scsi_Cmnd * SCpnt, /* * Not safe to continue. */ - panic("Buffer at physical address > 16Mb used for aha1542"); + WARN_ON(1); } #include<linux/stat.h> @@ -725,8 +725,12 @@ static int aha1542_queuecommand(Scsi_Cmnd * SCpnt, void (*done) (Scsi_Cmnd *)) panic("Foooooooood fight!"); }; any2scsi(cptr[i].dataptr, SCSI_SG_PA(&sgpnt[i])); - if (SCSI_SG_PA(&sgpnt[i]) + sgpnt[i].length - 1 > ISA_DMA_THRESHOLD) + if (SCSI_SG_PA(&sgpnt[i]) + sgpnt[i].length - 1 > ISA_DMA_THRESHOLD) { BAD_SG_DMA(SCpnt, sgpnt, SCpnt->use_sg, i); + SCpnt->result = DID_ERROR << 16; + done(SCpnt); + return 0; + } any2scsi(cptr[i].datalen, sgpnt[i].length); }; any2scsi(ccb[mbo].datalen, SCpnt->use_sg * sizeof(struct chain)); -
| Peter Zijlstra | [PATCH 00/23] per device dirty throttling -v8 |
| david | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Greg Kroah-Hartman | [PATCH 005/196] Chinese: add translation of SubmittingDrivers |
| Vladislav Bolkhovitin | Re: Integration of SCST in the mainstream Linux kernel |
git: | |
| Gerrit Renker | [PATCH 03/37] dccp: List management for new feature negotiation |
| Frans Pop | svc: failed to register lockdv1 RPC service (errno 97). |
| David Miller | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| David Miller | [GIT]: Networking |
