public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Re: Oops on megaraid.
       [not found] <20050105174752.GA6859@animx.eu.org>
@ 2005-01-05 18:04 ` Al Viro
  2005-01-05 22:33   ` Wakko Warner
  0 siblings, 1 reply; 2+ messages in thread
From: Al Viro @ 2005-01-05 18:04 UTC (permalink / raw)
  To: linux-kernel; +Cc: Linus Torvalds, linux-scsi

On Wed, Jan 05, 2005 at 12:47:52PM -0500, Wakko Warner wrote:
> Kernel: 2.6.8.1 vanilla
> Card: Dell PERC DC/2 (megaraid)
> 
> The oops happened when I attempted to unload the megaraid module.  Before
> doing this, I ran the dellmgr program to reconfigure the raid.
> 
> Before the "oops" text, I saw:
> Badness in remove_proc_entry at fs/proc/generic.c:688
>  [<c017c3fa>] remove_proc_entry+0x10a/0x150
>  [<d88f6e3e>] megaraid_exit+0x2e/0x3e [megaraid]
>  [<c012c690>] sys_delete_module+0x150/0x1a0
>  [<c0142a00>] do_munmap+0x140/0x190
>  [<c010513b>] syscall_call+0x7/0xb

Someone's removing non-empty directory in procfs.  Let's see...
Indeed.
#ifdef CONFIG_PROC_FS
        remove_proc_entry("megaraid", &proc_root);
#endif

        pci_unregister_driver(&megaraid_pci_driver);
so we remove /proc/megaraid and then procees to remove controllers found
by driver.  Each of those has a subdirectory in /proc/megaraid...

Fix is trivial:

diff -urN RC10-bk6-base/drivers/scsi/megaraid.c RC10-bk6-current/drivers/scsi/megaraid.c
--- RC10-bk6-base/drivers/scsi/megaraid.c	2004-12-25 01:04:29.000000000 -0500
+++ RC10-bk6-current/drivers/scsi/megaraid.c	2005-01-05 13:03:51.609698587 -0500
@@ -5109,11 +5109,11 @@
 	 */
 	unregister_chrdev(major, "megadev");
 
+	pci_unregister_driver(&megaraid_pci_driver);
+
 #ifdef CONFIG_PROC_FS
 	remove_proc_entry("megaraid", &proc_root);
 #endif
-
-	pci_unregister_driver(&megaraid_pci_driver);
 }
 
 module_init(megaraid_init);

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

* Re: [PATCH] Re: Oops on megaraid.
  2005-01-05 18:04 ` [PATCH] Re: Oops on megaraid Al Viro
@ 2005-01-05 22:33   ` Wakko Warner
  0 siblings, 0 replies; 2+ messages in thread
From: Wakko Warner @ 2005-01-05 22:33 UTC (permalink / raw)
  To: Al Viro; +Cc: linux-kernel, linux-scsi

Al Viro wrote:
> Someone's removing non-empty directory in procfs.  Let's see...
> Indeed.
> #ifdef CONFIG_PROC_FS
>         remove_proc_entry("megaraid", &proc_root);
> #endif
> 
>         pci_unregister_driver(&megaraid_pci_driver);
> so we remove /proc/megaraid and then procees to remove controllers found
> by driver.  Each of those has a subdirectory in /proc/megaraid...
> 
> Fix is trivial:

Cool, thanks.

-- 
 Lab tests show that use of micro$oft causes cancer in lab animals

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

end of thread, other threads:[~2005-01-05 22:24 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20050105174752.GA6859@animx.eu.org>
2005-01-05 18:04 ` [PATCH] Re: Oops on megaraid Al Viro
2005-01-05 22:33   ` Wakko Warner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox