Re: kernel oops when burning CDs

From: Tachino Nobuhiro (tachino@open.nm.fujitsu.co.jp)
Date: Mon Jun 04 2001 - 20:33:36 EST


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 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/



This archive was generated by hypermail 2b29 : Thu Jun 07 2001 - 21:00:33 EST