Latest working kernel version: ? Earliest failing kernel version: ? Distribution: Gentoo Hardware Environment: x86_64 Software Environment: Problem Description: modprobe -r sym53c8xx causes bugcheck. [ 528.044059] sym1: detaching ... [ 528.044059] sym1: resetting chip [ 528.044059] ------------[ cut here ]------------ [ 528.044059] WARNING: at arch/x86/kernel/pci-dma.c:488 dma_free_coherent+0x97/0xa0() [ 528.044059] Modules linked in: nfsd exportfs w83627hf hwmon_vid floppy i2c_amd756 i2c_amd8111 st tg3 e1000 nfs nfs_acl lockd sunrpc sbp2 ohci1394 ieee1394 usbhid ohci_hcd uhci_hcd usb_storage ehci_hcd scsi_transport_fc sx8 qla1280 dmx3191d sym53c8xx(-) scsi_transport_spi gdth BusLogic scsi_wait_scan [ 528.044059] Pid: 6606, comm: modprobe Not tainted 2.6.26.5 #1 [ 528.044059] [ 528.044059] Call Trace: [ 528.044059] [<ffffffff802362c4>] warn_on_slowpath+0x64/0xa0 [ 528.044059] [<ffffffff8022cb13>] __wake_up+0x43/0x70 [ 528.044059] [<ffffffff80211e87>] dma_free_coherent+0x97/0xa0 [ 528.044059] [<ffffffffa0030c01>] :sym53c8xx:___free_dma_mem_cluster+0x51/0x80 [ 528.044059] [<ffffffffa0030fd3>] :sym53c8xx:__sym_mfree_dma+0x73/0xc0 [ 528.044059] [<ffffffffa0029c55>] :sym53c8xx:sym_hcb_free+0x55/0x1b0 [ 528.044059] [<ffffffffa00276e6>] :sym53c8xx:sym_free_resources+0x46/0x80 [ 528.044059] [<ffffffffa00277bd>] :sym53c8xx:sym_detach+0x9d/0xc0 [ 528.044059] [<ffffffffa0027813>] :sym53c8xx:sym2_remove+0x33/0x60 [ 528.044059] [<ffffffff803d777c>] pci_device_remove+0x2c/0x60 [ 528.044059] [<ffffffff8044df4f>] __device_release_driver+0x6f/0xb0 [ 528.044059] [<ffffffff8044e4e4>] driver_detach+0xb4/0xc0 [ 528.044059] [<ffffffff8044d104>] bus_remove_driver+0x84/0xb0 [ 528.044059] [<ffffffff803d7aa9>] pci_unregister_driver+0x29/0x90 [ 528.044059] [<ffffffffa0031a90>] :sym53c8xx:sym2_exit+0x10/0x20 [ 528.044059] [<ffffffff8025a68d>] sys_delete_module+0x14d/0x210 [ 528.044059] [<ffffffff803c8272>] __up_write+0x22/0x130 [ 528.044059] [<ffffffff8020c2ab>] system_call_after_swapgs+0x7b/0x80 [ 528.044059] [ 528.044059] ---[ end trace d40f428fa8728350 ]--- [ 528.044059] ------------[ cut here ]------------ dev6 ~ # zgrep -i sym53 /proc/config.gz CONFIG_SCSI_SYM53C8XX_2=m CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 CONFIG_SCSI_SYM53C8XX_MMIO=y
http://marc.info/?l=linux-scsi&m=120102742932161&w=2 When unloading, sym53c8xx calls dma_free_coherent() while holding a spinlock (sym53c8xx_lock) with irqs disabled, which produces the following warning with 2.6.24: modprobe sym53c8xx modprobe -r sym53c8xx sym0: detaching ... sym0: resetting chip WARNING: at arch/x86/kernel/pci-dma_32.c:66 dma_free_coherent() Pid: 682, comm: rmmod Not tainted 2.6.24-rc8-git5 #1 [<c0107a05>] dma_free_coherent+0x95/0xa0 [<d0942066>] ___free_dma_mem_cluster+0x46/0x70 [sym53c8xx] [<d0941f0d>] __sym_mfree+0x6d/0xc0 [sym53c8xx] [<c010ec6c>] smp_call_function+0x1c/0x20 [<c01209c8>] on_each_cpu+0x28/0x40 [<d094232e>] __sym_mfree_dma+0x5e/0xb0 [sym53c8xx] [<d093d510>] sym_hcb_free+0x70/0x170 [sym53c8xx] [<d09389dc>] sym_free_resources+0x3c/0x70 [sym53c8xx] [<d093a06c>] sym_detach+0x8c/0xb0 [sym53c8xx] [<d093a0b9>] sym2_remove+0x29/0x50 [sym53c8xx] [<c01d5316>] pci_device_remove+0x16/0x40 [<c0223498>] __device_release_driver+0x68/0xb0 [<c02239a4>] driver_detach+0xa4/0xb0 [<c0222f83>] bus_remove_driver+0x73/0xa0 [<c01d549e>] pci_unregister_driver+0xe/0x70 [<d0942dd0>] sym2_exit+0x0/0x7d [sym53c8xx] [<d0942dda>] sym2_exit+0xa/0x7d [sym53c8xx] [<c013e51b>] sys_delete_module+0x11b/0x1b0 [<c0112dd9>] do_page_fault+0xe9/0x640 [<c0154207>] do_munmap+0x197/0x1f0 [<c0102a7e>] sysenter_past_esp+0x5f/0x85 [<c02f0000>] __lro_proc_segment+0x130/0x300 ======================= However, everything does work OK at least on i386; the warning is for portability to other archs (ARM and MIPS). This warning was added in 2.6.24-rc1, so the message does not appear in 2.6.23, although it is not really a regression. This appears non-trivial to fix, since the spinlock protects access to higher-level data structures.
If this is still seen on modern kernels then please re-open/update
I have not seen this issue in several years.