Hello,

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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to