Bug 11713 - bugcheck with modprobe -r sym53c8xx
Summary: bugcheck with modprobe -r sym53c8xx
Status: RESOLVED OBSOLETE
Alias: None
Product: SCSI Drivers
Classification: Unclassified
Component: sym53c8xx (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: scsi_drivers-sym53c8xx
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-10-06 15:54 UTC by John M. Drescher
Modified: 2012-10-30 15:45 UTC (History)
1 user (show)

See Also:
Kernel Version: 2.6.26.5
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description John M. Drescher 2008-10-06 15:54:57 UTC
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
Comment 1 Anthony J. Battersby 2008-12-16 12:37:51 UTC
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.
Comment 2 Alan 2012-10-30 15:14:24 UTC
If this is still seen on modern kernels then please re-open/update
Comment 3 John M. Drescher 2012-10-30 15:45:50 UTC
I have not seen this issue in several years.

Note You need to log in before you can comment on or make changes to this bug.