At Mon, 4 Jun 2001 22:43:30 +0100 (BST),
Alan Cox wrote:
>
> > I get an ooops and immediate kernel panic when I break (CTRL-C) cdrecord. I
> > can reproduce it anytime. I use 2.4.5-ac series. Obviously, Linus' 2.4.5 is
> > fine.
> > I know, I know. I was supposed to make a serios oops report, BUT I wasn't
>
> Write down the EIP and the call trace then look them up in System.map. Also
> include the hardware details. The -ac tree has a newer version of the scsi
> generic code. It fixes some oopses but in your case it apparently added a new
> failure case
Oops occures in SG driver. This patch fixes the problem.
diff -r -u linux.org/drivers/scsi/sg.c linux/drivers/scsi/sg.c
--- linux.org/drivers/scsi/sg.c Fri Jun 1 10:10:22 2001
+++ linux/drivers/scsi/sg.c Fri Jun 1 17:08:00 2001
@@ -1114,7 +1114,8 @@
sg_remove_sfp(sdp, sfp);
sfp = NULL;
}
- __MOD_DEC_USE_COUNT(sg_template.module);
+ if (sg_template.module)
+ __MOD_DEC_USE_COUNT(sg_template.module);
if (sdp->device->host->hostt->module)
__MOD_DEC_USE_COUNT(sdp->device->host->hostt->module);
}
@@ -1311,7 +1312,8 @@
sg_finish_rem_req(srp);
}
if (sfp->closed) {
- __MOD_DEC_USE_COUNT(sg_template.module);
+ if (sg_template.module)
+ __MOD_DEC_USE_COUNT(sg_template.module);
if (sdp->device->host->hostt->module)
__MOD_DEC_USE_COUNT(sdp->device->host->hostt->module);
__sg_remove_sfp(sdp, sfp);
@@ -2207,7 +2209,8 @@
else {
sfp->closed = 1; /* flag dirty state on this fd */
/* MOD_INC's to inhibit unloading sg and associated adapter driver */
- __MOD_INC_USE_COUNT(sg_template.module);
+ if (sg_template.module)
+ __MOD_INC_USE_COUNT(sg_template.module);
if (sdp->device->host->hostt->module)
__MOD_INC_USE_COUNT(sdp->device->host->hostt->module);
SCSI_LOG_TIMEOUT(1, printk(
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/