linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [aic7xxx]: Scheduling while atomic on rmmod - 2.6.0-test5,6
@ 2003-09-28 21:15 P. Christeas
  2003-09-28 22:07 ` Andrew Morton
  0 siblings, 1 reply; 3+ messages in thread
From: P. Christeas @ 2003-09-28 21:15 UTC (permalink / raw)
  To: lkml

In an Athlon XP system w. two adaptec adapters:
Adaptec 2930CU SCSI adapter
aic7860: Ultra Single Channel A,
Adaptec 2902/04/10/15/20/30C SCSI adapter>
aic7850: Single Channel A,

I (always) get the same 'scheduling while atomic' error whenever I try to 
rmmod the aic7xxx module or try to suspend. I think my configuration 
(scripts) try to unload the module on suspend, which brings it down to the 
same problem.
Does this trace look familiar? What extra information should I include? 
[please CC. me]

This problem exists both for 2.6.0-test5 and 2.6.0-test6, both with pre-empt 
enabled. They're on a VIA motherboard w. broken ACPI (pci=noacpi given).

kernel: bad: scheduling while atomic!
kernel: Call Trace:
kernel:  [schedule+1414/1424] schedule+0x586/0x590
kernel:  [<c011bb86>] schedule+0x586/0x590
kernel:  [handle_mm_fault+222/400] handle_mm_fault+0xde/0x190
kernel:  [<c01499ae>] handle_mm_fault+0xde/0x190
kernel:  [__down+150/272] __down+0x96/0x110
kernel:  [<c0108196>] __down+0x96/0x110
kernel:  [default_wake_function+0/48] default_wake_function+0x0/0x30
kernel:  [<c011bbf0>] default_wake_function+0x0/0x30
kernel:  [__down_failed+8/12] __down_failed+0x8/0xc
kernel:  [<c01083cc>] __down_failed+0x8/0xc
kernel:  [_end+828749580/1069457068] .text.lock.aic7xxx_osm+0x19/0x99 
[aic7xxx]
kernel:  [<f1a6f860>] .text.lock.aic7xxx_osm+0x19/0x99 [aic7xxx]
kernel:  [_end+828757092/1069457068] ahc_linux_exit+0x28/0x82 [aic7xxx]
kernel:  [<f1a715b8>] ahc_linux_exit+0x28/0x82 [aic7xxx]
kernel:  [sys_delete_module+338/448] sys_delete_module+0x152/0x1c0
kernel:  [<c01341a2>] sys_delete_module+0x152/0x1c0
kernel:  [do_munmap+339/400] do_munmap+0x153/0x190
kernel:  [<c014bb63>] do_munmap+0x153/0x190
kernel:  [syscall_call+7/11] syscall_call+0x7/0xb
kernel:  [<c010949b>] syscall_call+0x7/0xb


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

* Re: [aic7xxx]: Scheduling while atomic on rmmod - 2.6.0-test5,6
  2003-09-28 21:15 [aic7xxx]: Scheduling while atomic on rmmod - 2.6.0-test5,6 P. Christeas
@ 2003-09-28 22:07 ` Andrew Morton
  0 siblings, 0 replies; 3+ messages in thread
From: Andrew Morton @ 2003-09-28 22:07 UTC (permalink / raw)
  To: P. Christeas; +Cc: linux-kernel, Justin T. Gibbs

"P. Christeas" <p_christ@hol.gr> wrote:
>
> I (always) get the same 'scheduling while atomic' error whenever I try to 
>  rmmod the aic7xxx module or try to suspend.

That's because ahc_linux_exit() takes ahc_list_spinlock then calls
ahc_linux_kill_dv_thread(), which downs a semaphore.


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

* Re: [aic7xxx]: Scheduling while atomic on rmmod - 2.6.0-test5,6
@ 2003-10-09 17:37 P. Christeas
  0 siblings, 0 replies; 3+ messages in thread
From: P. Christeas @ 2003-10-09 17:37 UTC (permalink / raw)
  To: Justin T. Gibbs; +Cc: linux-kernel

Hi, 
I 've tried to give a 'dirty' solution to the lock at ahc_linux_exit. I 'm on 
a UP, so I thought it might not cause that much trouble. It seems, however 
that there are more locks that prevent aic7xxx from exiting. (see the trace 
below). 

...
	/*ahc_list_lock(&l);*/
	TAILQ_FOREACH(ahc, &ahc_tailq, links) {
		ahc_linux_kill_dv_thread(ahc);
	}
	/*ahc_list_unlock(&l);*/
...

Have you had any look into the matter? Do these traces mean that *nobody* will 
manage to remove the module?


Trace of the 'next' problem..
:  [schedule+1414/1424] schedule+0x586/0x590
:  [<c011bb86>] schedule+0x586/0x590
:  [default_wake_function+42/48] default_wake_function+0x2a/0x30
:  [<c011bc1a>] default_wake_function+0x2a/0x30
:  [wait_for_completion+143/224] wait_for_completion+0x8f/0xe0
:  [<c011bedf>] wait_for_completion+0x8f/0xe0
:  [default_wake_function+0/48] default_wake_function+0x0/0x30
:  [<c011bbf0>] default_wake_function+0x0/0x30
:  [default_wake_function+0/48] default_wake_function+0x0/0x30
:  [<c011bbf0>] default_wake_function+0x0/0x30
:  [queue_work+132/160] queue_work+0x84/0xa0
:  [<c012e764>] queue_work+0x84/0xa0
:  [call_usermodehelper+257/272] call_usermodehelper+0x101/0x110
:  [<c012e6d1>] call_usermodehelper+0x101/0x110
:  [__call_usermodehelper+0/112] __call_usermodehelper+0x0/0x70
:  [<c012e560>] __call_usermodehelper+0x0/0x70
:  [vsprintf+39/48] vsprintf+0x27/0x30
:  [<c01c28f7>] vsprintf+0x27/0x30
:  [sprintf+31/48] sprintf+0x1f/0x30
:  [<c01c291f>] sprintf+0x1f/0x30
:  [kset_hotplug+568/672] kset_hotplug+0x238/0x2a0
:  [<c01c0118>] kset_hotplug+0x238/0x2a0
:  [kobject_del+106/128] kobject_del+0x6a/0x80
:  [<c01c053a>] kobject_del+0x6a/0x80
:  [class_device_del+155/208] class_device_del+0x9b/0xd0
:  [<c021099b>] class_device_del+0x9b/0xd0
:  [class_device_unregister+19/48] class_device_unregister+0x13/0x30
:  [<c02109e3>] class_device_unregister+0x13/0x30
:  [scsi_remove_host+95/128] scsi_remove_host+0x5f/0x80
:  [<c02434df>] scsi_remove_host+0x5f/0x80                   <- is it here?

:  [_end+811983693/1069502604] ahc_platform_free+0x141/0x160 [aic7xxx]
:  [<f0a672c1>] ahc_platform_free+0x141/0x160 [aic7xxx]
:  [_end+811915595/1069502604] ahc_free+0xbf/0x130 [aic7xxx]
:  [<f0a568bf>] ahc_free+0xbf/0x130 [aic7xxx]
:  [_end+812013110/1069502604] ahc_linux_pci_dev_remove+0x6a/0xa0 [aic7xxx]
:  [<f0a6e5aa>] ahc_linux_pci_dev_remove+0x6a/0xa0 [aic7xxx]
:  [pci_device_remove+59/64] pci_device_remove+0x3b/0x40
:  [<c01ce31b>] pci_device_remove+0x3b/0x40
:  [device_release_driver+102/112] device_release_driver+0x66/0x70
:  [<c020fc86>] device_release_driver+0x66/0x70
:  [driver_detach+32/48] driver_detach+0x20/0x30
:  [<c020fcb0>] driver_detach+0x20/0x30
:  [bus_remove_driver+61/128] bus_remove_driver+0x3d/0x80
:  [<c020fedd>] bus_remove_driver+0x3d/0x80
:  [driver_unregister+19/40] driver_unregister+0x13/0x28
:  [<c0210303>] driver_unregister+0x13/0x28
:  [pci_unregister_driver+22/48] pci_unregister_driver+0x16/0x30
:  [<c01ce4f6>] pci_unregister_driver+0x16/0x30
:  [_end+812013659/1069502604] ahc_linux_pci_exit+0xf/0x20 [aic7xxx]
:  [<f0a6e7cf>] ahc_linux_pci_exit+0xf/0x20 [aic7xxx]
:  [_end+812017219/1069502604] ahc_linux_exit+0x27/0x54 [aic7xxx]
:  [<f0a6f5b7>] ahc_linux_exit+0x27/0x54 [aic7xxx]
:  [sys_delete_module+338/448] sys_delete_module+0x152/0x1c0
:  [<c01341e2>] sys_delete_module+0x152/0x1c0
:  [do_munmap+339/400] do_munmap+0x153/0x190
:  [<c014bc03>] do_munmap+0x153/0x190
:  [syscall_call+7/11] syscall_call+0x7/0xb
:  [<c010949b>] syscall_call+0x7/0xb


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

end of thread, other threads:[~2003-10-09 22:16 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-09-28 21:15 [aic7xxx]: Scheduling while atomic on rmmod - 2.6.0-test5,6 P. Christeas
2003-09-28 22:07 ` Andrew Morton
2003-10-09 17:37 P. Christeas

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).