linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* 2.5.42 kernel BUG at drivers/base/core.c:251!
@ 2002-10-15 17:24 Badari Pulavarty
  2002-10-15 18:18 ` [patch] " Patrick Mansfield
  2002-10-18  0:12 ` Patrick Mochel
  0 siblings, 2 replies; 4+ messages in thread
From: Badari Pulavarty @ 2002-10-15 17:24 UTC (permalink / raw)
  To: lkml

Is this a known problem on 2.5.42 ? Happens all the time with rmmod.

- Badari

kernel BUG at drivers/base/core.c:251!
invalid operand: 0000
qla2200  
CPU:    0
EIP:    0060:[<c023eb24>]    Not tainted
EFLAGS: 00010202
EIP is at put_device+0x64/0x90
eax: 00000000   ebx: f8a08028   ecx: f8a080c4   edx: 00000001
esi: c3aded54   edi: f8a08000   ebp: 00000003   esp: cb007ee4
ds: 0068   es: 0068   ss: 0068
Process rmmod (pid: 4803, threadinfo=cb006000 task=f62c98c0)
Stack: f8a08028 c0477a40 c02ce533 f8a08028 f8a08028 c0477b5c f8a08028 c0477b6c 
       00000000 40153f6d 00000286 f68fc000 c0477a40 c3adec00 f4df0000 c02a7a9a 
       c3adec00 cb007f30 00000002 00030002 00000001 08071002 c041685c 08070ffd 
Call Trace:
 [<c02ce533>] sg_detach+0x1e3/0x210
 [<c02a7a9a>] scsi_unregister_host+0x26a/0x5d0
 [<c01f4736>] __generic_copy_to_user+0x56/0x80
 [<c013e4e8>] __alloc_pages+0x98/0x270
 [<f89e7cba>] exit_this_scsi_driver+0xa/0x10 [qla2200]
 [<f8a00360>] driver_template+0x0/0x74 [qla2200]
 [<c011ea0e>] free_module+0x1e/0x130
 [<c011dc94>] sys_delete_module+0x1b4/0x410
 [<c01075e3>] syscall_call+0x7/0xb

Code: 0f 0b fb 00 6c 3e 3c c0 8b 83 d4 00 00 00 85 c0 74 04 53 ff 





-- 
Badari Pulavarty
badari@us.ibm.com
IBM Linux Technology Center - Kernel Team

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [patch] Re: 2.5.42 kernel BUG at drivers/base/core.c:251!
  2002-10-15 17:24 2.5.42 kernel BUG at drivers/base/core.c:251! Badari Pulavarty
@ 2002-10-15 18:18 ` Patrick Mansfield
  2002-10-18  0:12 ` Patrick Mochel
  1 sibling, 0 replies; 4+ messages in thread
From: Patrick Mansfield @ 2002-10-15 18:18 UTC (permalink / raw)
  To: Badari Pulavarty; +Cc: lkml, linux-scsi

On Tue, Oct 15, 2002 at 10:24:18AM -0700, Badari Pulavarty wrote:
> Is this a known problem on 2.5.42 ? Happens all the time with rmmod.
> 
> - Badari

I hit a similiar bug for the put_device(&shpnt->host_driverfs_dev) of the
Scsi_Host, here's a patch for the scsi changes, I can't fully test it
since my devices seen via insmod aren't showing up properly right now, but
rmmod works, and the scsi remove-single-device also works without BUG-ing
or doing other bad things by leaving a dev model reference around:

--- linux-2.5.42/drivers/scsi/st.c	Fri Oct 11 21:22:11 2002
+++ linux-2.5.42-scsi-unreg/drivers/scsi/st.c	Tue Oct 15 10:49:14 2002
@@ -3909,12 +3909,12 @@
 						   &dev_attr_type);
 				device_remove_file(&tpnt->driverfs_dev_r[mode],
 						   &dev_attr_kdev);
-				put_device(&tpnt->driverfs_dev_r[mode]);
+				device_unregister(&tpnt->driverfs_dev_r[mode]);
 				device_remove_file(&tpnt->driverfs_dev_n[mode],
 						   &dev_attr_type);
 				device_remove_file(&tpnt->driverfs_dev_n[mode],
 						   &dev_attr_kdev);
-				put_device(&tpnt->driverfs_dev_n[mode]);
+				device_unregister(&tpnt->driverfs_dev_n[mode]);
 			}
 			if (tpnt->buffer) {
 				tpnt->buffer->orig_frp_segs = 0;
--- linux-2.5.42/drivers/scsi/sg.c	Fri Oct 11 21:22:07 2002
+++ linux-2.5.42-scsi-unreg/drivers/scsi/sg.c	Tue Oct 15 10:49:29 2002
@@ -1611,7 +1611,7 @@
 		sdp->de = NULL;
 		device_remove_file(&sdp->sg_driverfs_dev, &dev_attr_type);
 		device_remove_file(&sdp->sg_driverfs_dev, &dev_attr_kdev);
-		put_device(&sdp->sg_driverfs_dev);
+		device_unregister(&sdp->sg_driverfs_dev);
 		if (NULL == sdp->headfp)
 			vfree((char *) sdp);
 	}
--- linux-2.5.42/drivers/scsi/scsi.c	Fri Oct 11 21:22:08 2002
+++ linux-2.5.42-scsi-unreg/drivers/scsi/scsi.c	Tue Oct 15 10:49:51 2002
@@ -1965,6 +1965,7 @@
 			if (HBA_ptr->hostt->slave_detach)
 				(*HBA_ptr->hostt->slave_detach) (scd);
 			devfs_unregister (scd->de);
+			device_unregister(&scd->sdev_driverfs_dev);
 			scsi_release_commandblocks(scd);
 
 			/* Now we can remove the device structure */
@@ -2254,7 +2255,7 @@
 			if (shpnt->hostt->slave_detach)
 				(*shpnt->hostt->slave_detach) (SDpnt);
 			devfs_unregister (SDpnt->de);
-			put_device(&SDpnt->sdev_driverfs_dev);
+			device_unregister(&SDpnt->sdev_driverfs_dev);
 		}
 	}
 
@@ -2305,7 +2306,7 @@
 		/* Remove the /proc/scsi directory entry */
 		sprintf(name,"%d",shpnt->host_no);
 		remove_proc_entry(name, tpnt->proc_dir);
-		put_device(&shpnt->host_driverfs_dev);
+		device_unregister(&shpnt->host_driverfs_dev);
 		if (tpnt->release)
 			(*tpnt->release) (shpnt);
 		else {

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: 2.5.42 kernel BUG at drivers/base/core.c:251!
  2002-10-15 17:24 2.5.42 kernel BUG at drivers/base/core.c:251! Badari Pulavarty
  2002-10-15 18:18 ` [patch] " Patrick Mansfield
@ 2002-10-18  0:12 ` Patrick Mochel
  2002-10-18  0:26   ` Mike Anderson
  1 sibling, 1 reply; 4+ messages in thread
From: Patrick Mochel @ 2002-10-18  0:12 UTC (permalink / raw)
  To: Badari Pulavarty; +Cc: lkml


Hi. Sorry about the delay; I'm slowly wading through the last week's 
email.

> kernel BUG at drivers/base/core.c:251!
> invalid operand: 0000
> qla2200  
> CPU:    0
> EIP:    0060:[<c023eb24>]    Not tainted
> EFLAGS: 00010202
> EIP is at put_device+0x64/0x90
> eax: 00000000   ebx: f8a08028   ecx: f8a080c4   edx: 00000001
> esi: c3aded54   edi: f8a08000   ebp: 00000003   esp: cb007ee4
> ds: 0068   es: 0068   ss: 0068
> Process rmmod (pid: 4803, threadinfo=cb006000 task=f62c98c0)
> Stack: f8a08028 c0477a40 c02ce533 f8a08028 f8a08028 c0477b5c f8a08028 c0477b6c 
>        00000000 40153f6d 00000286 f68fc000 c0477a40 c3adec00 f4df0000 c02a7a9a 
>        c3adec00 cb007f30 00000002 00030002 00000001 08071002 c041685c 08070ffd 
> Call Trace:
>  [<c02ce533>] sg_detach+0x1e3/0x210

put_device() as a means to unregister a device should not be used any 
longer. There is a now a device_unregister() function that marks the 
device as !present, then decrements the reference count. Once the refcount 
hits 0, the device is cleaned up as before. 

The BUG() was added to catch people still using the wrong call. The SCSI 
patch that Mike Anderson posted last night should have this fixed in it.

	-pat



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: 2.5.42 kernel BUG at drivers/base/core.c:251!
  2002-10-18  0:12 ` Patrick Mochel
@ 2002-10-18  0:26   ` Mike Anderson
  0 siblings, 0 replies; 4+ messages in thread
From: Mike Anderson @ 2002-10-18  0:26 UTC (permalink / raw)
  To: Patrick Mochel; +Cc: Badari Pulavarty, lkml

Patrick Mochel [mochel@osdl.org] wrote:
> The BUG() was added to catch people still using the wrong call. The SCSI 
> patch that Mike Anderson posted last night should have this fixed in it.

I removed the scsi mid layer ones in my patch.

Patrick Mansfield re-posted a patch yesterday to cover the sg and other
scsi upper level drivers not alreay corrected. Here is a pointer to
Patrick's mail.

http://marc.theaimsgroup.com/?l=linux-kernel&m=103479992624108&w=2

-andmike
--
Michael Anderson
andmike@us.ibm.com


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2002-10-18  0:19 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-10-15 17:24 2.5.42 kernel BUG at drivers/base/core.c:251! Badari Pulavarty
2002-10-15 18:18 ` [patch] " Patrick Mansfield
2002-10-18  0:12 ` Patrick Mochel
2002-10-18  0:26   ` Mike Anderson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).