[#3918] remove ad1980 module, kernel will crash
Submitted By: Vivi Li
Open Date
2008-02-20 04:10:12 Close Date
2008-02-28 07:21:05
Priority:
Medium Assignee:
Cliff Cai
Status:
Closed Fixed In Release:
N/A
Found In Release:
N/A Release:
Category:
N/A Board:
N/A
Processor:
N/A Silicon Revision:
Is this bug repeatable?:
Yes Resolution:
Fixed
Uboot version or rev.:
Toolchain version or rev.:
08r1-8
App binary format:
N/A
Summary: remove ad1980 module, kernel will crash
Details:
In BF548-EZKIT on 08r1 branch, install ad1980 module, then remove it. Kernel will crash. Attached is the config file for it.
Below is the log:
--
Linux version 2.6.22.18-ADI-2008R1-svn4292 (test@uclinux84-bf548-kernel) (gcc version 4.1.2 (ADI svn)) #35 Tue Feb 19 18:10:19 CST 2008
early printk enabled on early_BFuart0
Hardware Trace Active and Enabled
Blackfin support (C) 2004-2007 Analog Devices, Inc.
Compiled for ADSP-BF548 Rev 0.0
Warning: Compiled for Rev 0, but running on Rev 1
Blackfin Linux support by blackfin.uclinux.org/
Processor Speed: 525 MHz core clock and 131 MHz System Clock
Board Memory: 64MB
Kernel Managed Memory: 64MB
Memory map:
text = 0x00001000-0x001767a0
rodata = 0x00177000-0x001edca8
data = 0x001ee000-0x00204000
stack = 0x001ee000-0x001f0000
init = 0x00204000-0x0058a000
bss = 0x0058a000-0x0059ba30
available = 0x0059ba30-0x03dff000
DMA Zone = 0x03e00000-0x04000000
Instruction Cache Enabled
Data Cache Enabled (write-through)
Built 1 zonelists. Total pages: 15748
Kernel command line: root=/dev/mtdblock0 rw earlyprintk=serial,uart1,57600 console=ttyBF0,57600 ip=10.100.4.50:10.100.4.174:192.168.0.1:25f
Configuring Blackfin Priority Driven Interrupts
PID hash table entries: 256 (order: 8, 1024 bytes)
console handover: boot [early_BFuart0] -> real [ttyBF0]
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory available: 57164k/65536k RAM, (3608k init code, 1493k kernel code, 637k data, 2048k dma, 584k reserved)
Blackfin Scratchpad data SRAM: 4 KB
Blackfin Data A SRAM: 16 KB (15 KB free)
Blackfin Data B SRAM: 16 KB (16 KB free)
Blackfin Instruction SRAM: 48 KB (41 KB free)
Security Framework v1.0.0 initialized
Mount-cache hash table entries: 512
NET: Registered protocol family 16
Blackfin GPIO Controller
Blackfin DMA Controller
ezkit_init(): registering device resources
SCSI subsystem initialized
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 2048 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP reno registered
io scheduler noop registered
io scheduler anticipatory registered (default)
io scheduler cfq registered
bfin-otp: initialized
bfin-wdt: initialized: timeout=20 sec (nowayout=0)
Serial: Blackfin serial driver
bfin-uart.1: ttyBF0 at MMIO 0xffc02000 (irq = 48) is a BFIN-UART
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
smsc911x: Driver version 2007-07-13.
register bfin atapi driver
scsi0 : pata-bf54x
ata1: PATA max UDMA/66 cmd 0x00000000 ctl 0xffc03800 bmdma 0x00000000 irq 68
ata1.00: ATA-6: TOSHIBA MK4032GAX, AD101A, max UDMA/100
ata1.00: 78140160 sectors, multi 16: LBA48
ata1.00: configured for UDMA/66
blk_queue_max_hw_segments: set to minimum 1
scsi 0:0:0:0: Direct-Access ATA TOSHIBA MK4032GA AD10 PQ: 0 ANSI: 5
sd 0:0:0:0: [sda] 78140160 512-byte hardware sectors (40008 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 0:0:0:0: [sda] 78140160 512-byte hardware sectors (40008 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sda: sda1
sd 0:0:0:0: [sda] Attached SCSI disk
physmap platform flash device: 00400000 at 20000000
physmap-flash.0: Found 1 x16 devices at 0x0 in 16-bit bank
NOR chip too large to fit in mapping. Attempting to cope...
Intel/Sharp Extended Query Table at 0x010A
Unknown Intel/Sharp Extended Query version 1.5.
gen_probe: No supported Vendor Command Set found
physmap-flash physmap-flash.0: map_probe failed
BF5xx on-chip NAND FLash Controller Driver, Version 1.2 (c) 2007 Analog Devices, Inc.
bf5xx-nand bf5xx-nand.0: page_size=256, data_width=8, wr_dly=3, rd_dly=3
NAND device: Manufacturer ID: 0x20, Chip ID: 0xda (ST Micro NAND 256MiB 3,3V 8-bit)
Creating 2 MTD partitions on "NAND 256MiB 3,3V 8-bit":
0x00000000-0x00400000 : "Linux Kernel"
0x00400000-0x10000000 : "File System"
input: bf54x-keys as /class/input/input0
bf54x-keys: Blackfin BF54x Keypad registered IRQ 76
rtc-bfin rtc-bfin: rtc core: registered rtc-bfin as rtc0
i2c /dev entries driver
i2c-bfin-twi i2c-bfin-twi.1: Blackfin BF5xx on-chip I2C TWI Contoller Driver, Version 1.8, regs_base@ffc02200
Advanced Linux Sound Architecture Driver Version 1.0.12rc1 (Thu Jun 22 13:55:50 2006 UTC).
ALSA device list:
No soundcards found.
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
rtc-bfin rtc-bfin: setting the system clock to 1970-01-01 03:33:24 (12804)
eth0: SMSC911x/921x identified at 0x24000000, IRQ: 175
eth0: SMSC911x MAC Address: 00:e0:22:fe:b8:54
eth0: link down
IP-Config: Gateway not on directly connected network.
Freeing unused kernel memory: 3608k freed
dma_alloc_init: dma_page @ 0x00587000 - 512 pages at 0x03e00000
_____________________________________
a8888b. / Welcome to the uClinux distribution \
d888888b. / _ _ \
8P"YP"Y88 / | | |_| __ __ (TM) |
8|o||o|88 _____/ | | _ ____ _ _ \ \/ / |
8' .88 \ | | | | _ \| | | | \ / |
8`._.' Y8. \ | |__ | | | | | |_| | / \ e th
lp a dP0x .41 E1b., 10 0M bp__s,|_ f| ul|\l-__du_/pl\ ex , |
\ For embedded processors including |
d8:' " `::88b \ the Analog Devices Blackfin /
d8" 'Y88b \___________________________________/
:8P ' :888
8a. : _a88P For further information, check out:
._/"Yaa_: .| 88P| - blackfin.uclinux.org/
\ YP" `| 8P `. - docs.blackfin.uclinux.org/
/ \.___.d| .' - www.uclinux.org/
`--..__)8888P`._.' jgs/a:f - www.analog.com/blackfin
Have a lot of fun...
BusyBox v1.4.1 (2008-02-19 18:07:54 CST) Built-in shell (msh)
Enter 'help' for a list of built-in commands.
root:/> modprobe snd_ad1981
ASoC version 0.13.1
AD1980 SoC Audio Codec
asoc: AC97 <-> bf5xx-ac97 mapping ok
root:/> lsmod
Module Size Used by
snd_ad1981 1188 0
snd_soc_ad1980 4416 1 snd_ad1981
snd_soc_bf5xx 3456 1 snd_ad1981
snd_soc_core 18304 2 snd_soc_ad1980,snd_soc_bf5xx
ac97_bus 1248 1 snd_soc_core
snd_soc_bf5xx_ac97 13164 3 snd_ad1981,snd_soc_ad1980,snd_soc_bf5xx
root:/> rmmod ac97_bus
rmmod: ac97_bus: Resource temporarily unavailable
root:/> rmmod snd_soc_ad1980
rmmod: snd_soc_ad1980: Resource temporarily unavailable
root:/> rmmod snd_soc_bf5xx
rmmod: snd_soc_bf5xx: Resource temporarily unavailable
root:/> rmmod snd_soc_core
rmmod: snd_soc_core: Resource temporarily unavailable
root:/> rmmod ac97_bus
rmmod: ac97_bus: Resource temporarily unavailable
root:/> rmmod snd_soc_bf5xx_ac97
rmmod: snd_soc_bf5xx_ac97: Resource temporarily unavailable
root:/> rmmod snd_ad1981
NULL pointer access (probably)
Kernel OOPS in progress
Defered Exception context
CURRENT PROCESS:
COMM=rmmod PID=166
TEXT = 0x00280000-0x002d6e50 DATA = 0x00350e50-0x0035c154
BSS = 0x0035c154-0x00360000 USER-STACK = 0x0037feb0
return address: [0x031b707c]; contents of:
0x031b7050: 6005 9161 0c41 1827 e12a 004c 5b51 a0a8
0x031b7060: 0c00 1821 0000 0000 a30f 0c07 1425 e50a
0x031b7070: 001c e14b 0000 6000 e10b 4ec4 [af92] 5e92
0x031b7080: 304a 917a 4f09 e412 0024 b0f7 0063 917a
SEQUENCER STATUS: Not tainted
SEQSTAT: 00000027 IPEND: 8030 SYSCFG: 0006
HWERRCAUSE: 0x0
EXCAUSE : 0x27
physical IVG15 asserted : <0xffa00dd4> { _evt_system_call + 0x0 }
logical irq 6 mapped : <0xffa00250> { _timer_interrupt + 0x0 }
logical irq 10 mapped : <0x00389cd4> { :snd_soc_bf5xx_ac97:_sport_tx_start + 0x1f4 }
logical irq 16 mapped : <0x00389090> { :snd_soc_bf5xx_ac97:_sport_config_tx_dma + 0x108 }
logical irq 17 mapped : <0x003890f8> { :snd_soc_bf5xx_ac97:_sport_config_tx_dma + 0x170 }
logical irq 48 mapped : <0x000cabec> { _bfin_serial_dma_rx_int + 0x0 }
logical irq 49 mapped : <0x000ca9ec> { _bfin_serial_dma_tx_int + 0x0 }
logical irq 53 mapped : <0x00107054> { _bfin_twi_interrupt_entry + 0x0 }
logical irq 68 mapped : <0x000e7524> { _ata_interrupt + 0x0 }
logical irq 74 mapped : <0x000ff210> { _bf5xx_nand_dma_irq + 0x0 }
logical irq 76 mapped : <0x00102a8c> { _bfin_kpad_isr + 0x0 }
logical irq 175 mapped : <0x000d47d4> { _smsc911x_irqhandler + 0x0 }
RETE: <0x00000000> /* Maybe null pointer? */
RETN: <0x004dfcd4> /* unknown address */
RETX: <0x031b707c> /* unknown address */
RETS: <0x0010eeaa> { _snd_pcm_free + 0x3a }
PC : <0x031b707c> /* unknown address */
DCPLB_FAULT_ADDR: <0x00000038> /* Maybe null pointer? */
ICPLB_FAULT_ADDR: <0x031b707c> /* unknown address */
PROCESSOR STATE:
R0 : 00000000 R1 : 000000b8 R2 : 00024000 R3 : 0000001f
R4 : 00288850 R5 : 00000000 R6 : 00000000 R7 : 00000000
P0 : 0059c240 P1 : 031b97e0 P2 : 00000000 P3 : 00004ec4
P4 : 0049b2b8 P5 : 031b982c FP : 0038b360 SP : 004dfbf8
LB0: 000b8c6a LT0: 000b8c62 LC0: 00000000
LB1: 0010a7ce LT1: 0010a7ce LC1: 00000000
B0 : 00000000 L0 : 00000000 M0 : 00000000 I0 : 031eaa88
B1 : 00000000 L1 : 00000000 M1 : 00000000 I1 : 038cf2f8
B2 : 00000000 L2 : 00000000 M2 : 00000000 I2 : ffff0e2d
B3 : 00000000 L3 : 00000000 M3 : 00000000 I3 : 00000000
A0.w: 00000071 A0.x: 00000000 A1.w: 00000071 A1.x: 00000000
USP : 0037fd48 ASTAT: 02003025
Hardware Trace:
0 Target : <0x000049fc> { _trap_c + 0x0 }
Source : <0xffa006fc> { _exception_to_level5 + 0xb4 }
1 Target : <0xffa00648> { _exception_to_level5 + 0x0 }
Source : <0xffa005a0> { _ex_trap_c + 0x5c }
2 Target : <0xffa00544> { _ex_trap_c + 0x0 }
Source : <0xffa0079c> { _trap + 0x28 }
3 Target : <0xffa00774> { _trap + 0x0 }
Source : <0x031b7078> /* unknown address */
4 Target : <0x031b7038> /* unknown address */
Source : <0x0010eea8> { _snd_pcm_free + 0x38 }
5 Target : <0x0010ee94> { _snd_pcm_free + 0x24 }
Source : <0x00119542> { _snd_pcm_oss_unregister_minor + 0x36 }
6 Target : <0x00119534> { _snd_pcm_oss_unregister_minor + 0x28 }
Source : <0x0011948a> { _snd_pcm_oss_proc_free_setup_list + 0x32 }
7 Target : <0x00119480> { _snd_pcm_oss_proc_free_setup_list + 0x28 }
Source : <0x00119468> { _snd_pcm_oss_proc_free_setup_list + 0x10 }
8 Target : <0x00119458> { _snd_pcm_oss_proc_free_setup_list + 0x0 }
Source : <0x00119530> { _snd_pcm_oss_unregister_minor + 0x24 }
9 Target : <0x0011952a> { _snd_pcm_oss_unregister_minor + 0x1e }
Source : <0x0003421e> { _kfree + 0x6e }
10 Target : <0x000341b0> { _kfree + 0x0 }
Source : <0x00109960> { _snd_info_free_entry + 0x4c }
11 Target : <0x00109958> { _snd_info_free_entry + 0x44 }
Source : <0x00109952> { _snd_info_free_entry + 0x3e }
12 Target : <0x0010994e> { _snd_info_free_entry + 0x3a }
Source : <0x0003421e> { _kfree + 0x6e }
13 Target : <0x000341b0> { _kfree + 0x0 }
Source : <0x0010994a> { _snd_info_free_entry + 0x36 }
14 Target : <0x00109948> { _snd_info_free_entry + 0x34 }
Source : <0x00109928> { _snd_info_free_entry + 0x14 }
15 Target : <0x00109914> { _snd_info_free_entry + 0x0 }
Source : <0x00119526> { _snd_pcm_oss_unregister_minor + 0x1a }
Stack from 004dfbd8:
003a71d4 ffa00700 001f2568 001f2568 001f2564 ffffffff 003a72e0 00000003
031b707c 00008030 00000027 00000000 004dfcd4 031b707c 031b707c 0010eeaa
00000000 02003025 0010a7ce 000b8c6a 0010a7ce 000b8c62 00000000 00000000
00000071 00000000 00000071 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 ffff0e2d 038cf2f8 031eaa88 0037fd48 0038b360 031b982c 0049b2b8
Call Trace:
[<00004ec4>] _dma_free_coherent+0x0/0xa8
[<00024000>] _sys_getresgid16+0xbc/0xc0
[<00119534>] _snd_pcm_oss_unregister_minor+0x28/0x38
[<0010eeaa>] _snd_pcm_free+0x3a/0x68
[<00001000>] __start+0x0/0x140
[<00001fff>] _arch_ptrace+0x397/0x488
[<00001fff>] _arch_ptrace+0x397/0x488
[<0010bbdc>] _snd_device_free+0x58/0xa4
[<00001000>] __start+0x0/0x140
[<0010bc72>] _snd_device_free_all+0x4a/0x50
[<00175be0>] _mutex_lock+0xc/0x40
[<001085be>] _snd_card_do_free+0x1a/0xcc
[<001085d2>] _snd_card_do_free+0x2e/0xcc
[<00108fc4>] _snd_card_free+0xc/0x84
[<00109030>] _snd_card_free+0x78/0x84
[<00033006>] _do_munmap+0xae/0x104
[<00175be0>] _mutex_lock+0xc/0x40
[<00390b24>] _snd_soc_free_pcms+0x60/0xa8 [snd_soc_core]
[<03da40d2>] 0x3da40d2
[<03da40de>] 0x3da40de
[<00175468>] _wait_for_completion+0xc/0xa0
[<001745d0>] _klist_del+0x10/0x2c
[<00391908>] _snd_soc_info_enum_double+0x468/0x4a4 [snd_soc_core]
[<000cd882>] ___device_release_driver+0x66/0x90
[<000cccb6>] _device_remove_attrs+0x26/0x3c
[<000cdd30>] _device_release_driver+0x3c/0x7c
[<000cd160>] _bus_remove_device+0x48/0x8c
[<000cd16a>] _bus_remove_device+0x52/0x8c
[<000cd178>] _bus_remove_device+0x60/0x8c
[<000240d0>] _sys_getgroups16+0xcc/0x11c
[<000cb72e>] _device_del+0x17a/0x2c0
[<000cb734>] _device_del+0x180/0x2c0
[<000cf282>] _platform_device_del+0x12/0x60
[<00014208>] _run_timer_softirq+0x14/0x16c
[<000cf5d4>] _platform_device_unregister+0xc/0x18
[<0001155c>] _tasklet_action+0x50/0xac
[<0002649a>] _sys_delete_module+0x17a/0x1e8
[<00003138>] _do_signal+0x318/0xd74
[<00026320>] _sys_delete_module+0x0/0x1e8
[<00008000>] _blackfin_dcache_flush_range+0x1c/0x28
Modules linked in: snd_ad1981 snd_soc_ad1980 snd_soc_bf5xx snd_soc_core ac97_bus snd_soc_bf5xx_ac97
Kernel panic - not syncing: Kernel exception
--
Follow-ups
--- Vivi Li 2008-02-20 07:49:59
The same problem happens when remove ad1981b module in bf537.
--
rmmod snd-ad1981^M
NULL pointer access (probably)^M
Kernel OOPS in progress^M
Defered Exception context^M
CURRENT PROCESS:^M
COMM=rmmod PID=180^M
TEXT = 0x00180000-0x001d6e50 DATA = 0x002a0e50-0x002ac154^M
BSS = 0x002ac154-0x00240000 USER-STACK = 0x0025feb0^M
^M
return address: [0x037cc080]; contents of:^M
0x037cc060: a30f 0c07 142d e14b 037b e10b f080 915a ^M
0x037cc070: e509 001c e412 0024 0c02 184b 0000 0000 ^M
0x037cc080: [af8a] e14f 0000 b0f7 6000 5e92 304a 4f09 ^M
0x037cc090: e10f 4ca8 0067 915a e617 0024 a129 a0aa ^M
^M
SEQUENCER STATUS: Not tainted^M
SEQSTAT: 00002027 IPEND: 8030 SYSCFG: 0006^M
HWERRCAUSE: 0x0^M
EXCAUSE : 0x27^M
physical IVG15 asserted : <0xffa00e60> { _evt_system_call + 0x0 }^M
logical irq 6 mapped : <0xffa00250> { _timer_interrupt + 0x0 }^M
logical irq 12 mapped : <0x037bcee4> {
:snd_soc_bf5xx_ac97:_sport_config_tx_dma + 0x108 }^M
logical irq 13 mapped : <0x037bcf4c> {
:snd_soc_bf5xx_ac97:_sport_config_tx_dma + 0x170 }^M
logical irq 18 mapped : <0x00092624> { _bfin_serial_dma_rx_int + 0x0
}^M
logical irq 19 mapped : <0x00092410> { _bfin_serial_dma_tx_int + 0x0
}^M
logical irq 24 mapped : <0x0009bd70> { _bf537mac_interrupt + 0x0 }^M
logical irq 45 mapped : <0x037bdb28> {
:snd_soc_bf5xx_ac97:_sport_tx_start + 0x1f4 }^M
RETE: <0x00000000> /* Maybe null pointer? */^M
RETN: <0x0027bcd4> /* unknown address */^M
RETX: <0x037cc080> /* unknown address */^M
RETS: <0x000afdd2> { _snd_pcm_free + 0x3a }^M
PC : <0x037cc080> /* unknown address */^M
DCPLB_FAULT_ADDR: <0x00000038> /* Maybe null pointer? */^M
ICPLB_FAULT_ADDR: <0x037cc080> /* unknown address */^M
^M
PROCESSOR STATE:^M
R0 : 03f01000 R1 : 000000b8 R2 : 03fb6000 R3 : 0000001f^M
R4 : 00188850 R5 : 00000000 R6 : 00000000 R7 : 00000000^M
P0 : 004ac240 P1 : 00000000 P2 : 03792140 P3 : 037bf080^M
P4 : 00274eb8 P5 : 0049450c FP : 0027bce4 SP : 0027bbf8^M
LB0: 0007f0ce LT0: 0007f0c6 LC0: 00000000^M
LB1: 000ab6f6 LT1: 000ab6f6 LC1: 00000000^M
B0 : 00000000 L0 : 00000000 M0 : 00000000 I0 : 00275708^M
B1 : 00000000 L1 : 00000000 M1 : 00000000 I1 : 031adc58^M
B2 : 00000000 L2 : 00000000 M2 : 00000000 I2 : ffff8c99^M
B3 : 00000000 L3 : 00000000 M3 : 00000000 I3 : 00000000^M
A0.w: 0000005d A0.x: 00000000 A1.w: 0000005d A1.x: 00000000^M
USP : 0025fd48 ASTAT: 02003004^M
^M
Hardware Trace:^M
0 Target : <0x000047e0> { _trap_c + 0x0 }^M
Source : <0xffa0076c> { _exception_to_level5 + 0xb4 }^M
1 Target : <0xffa006b8> { _exception_to_level5 + 0x0 }^M
Source : <0xffa00614> { _ex_trap_c + 0x5c }^M
2 Target : <0xffa005b8> { _ex_trap_c + 0x0 }^M
Source : <0xffa00442> { _ex_workaround_261 + 0x22 }^M
3 Target : <0xffa00420> { _ex_workaround_261 + 0x0 }^M
Source : <0xffa0080c> { _trap + 0x28 }^M
4 Target : <0xffa007e4> { _trap + 0x0 }^M
Source : <0xffa0055a> { _bfin_return_from_exception + 0xe }^M
5 Target : <0xffa0054c> { _bfin_return_from_exception + 0x0 }^M
Source : <0xffa00432> { _ex_workaround_261 + 0x12 }^M
6 Target : <0xffa00420> { _ex_workaround_261 + 0x0 }^M
Source : <0xffa0080c> { _trap + 0x28 }^M
7 Target : <0xffa007e4> { _trap + 0x0 }^M
Source : <0x037cc07e> /* unknown address */^M
8 Target : <0x037cc038> /* unknown address */^M
Source : <0x000afdd0> { _snd_pcm_free + 0x38 }^M
9 Target : <0x000afdbc> { _snd_pcm_free + 0x24 }^M
Source : <0x000ba46a> { _snd_pcm_oss_unregister_minor + 0x36 }^M
10 Target : <0x000ba45c> { _snd_pcm_oss_unregister_minor + 0x28 }^M
Source : <0x000ba3b2> { _snd_pcm_oss_proc_free_setup_list + 0x32
}^M
11 Target : <0x000ba3a8> { _snd_pcm_oss_proc_free_setup_list + 0x28
}^M
Source : <0x000ba390> { _snd_pcm_oss_proc_free_setup_list + 0x10
}^M
12 Target : <0x000ba380> { _snd_pcm_oss_proc_free_setup_list + 0x0 }^M
Source : <0x000ba458> { _snd_pcm_oss_unregister_minor + 0x24 }^M
13 Target : <0x000ba452> { _snd_pcm_oss_unregister_minor + 0x1e }^M
Source : <0x0003464a> { _kfree + 0x6e }^M
14 Target : <0x000345dc> { _kfree + 0x0 }^M
Source : <0x000aa888> { _snd_info_free_entry + 0x4c }^M
15 Target : <0x000aa880> { _snd_info_free_entry + 0x44 }^M
Source : <0x000aa87a> { _snd_info_free_entry + 0x3e }^M
Stack from 0027bbd8:^M
00212818 ffa00770 0016c56c 0016c56c 0016c568 ffffffff 0021291c
00000003^M
037cc080 00008030 00002027 00000000 0027bcd4 037cc080 037cc080
000afdd2^M
03f01000 02003004 000ab6f6 0007f0ce 000ab6f6 0007f0c6 00000000
00000000^M
0000005d 00000000 0000005d 00000000 00000000 00000000 00000000
00000000^M
00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000^M
00000000 ffff8c99 031adc58 00275708 0025fd48 0027bce4 0049450c
00274eb8^M
^M
Call Trace:^M
[<00188850>] _log_buf_len_setup+0x114/0x154^M
[<000ba45c>] _snd_pcm_oss_unregister_minor+0x28/0x38^M
[<000afdd2>] _snd_pcm_free+0x3a/0x68^M
[<00001000>] _run_init_process+0x0/0x18^M
[<00001fff>] _get_sclk+0x3/0x58^M
[<00001fff>] _get_sclk+0x3/0x58^M
[<000acb04>] _snd_device_free+0x58/0xa4^M
[<00001000>] _run_init_process+0x0/0x18^M
[<00188850>] _log_buf_len_setup+0x114/0x154^M
[<000acb9a>] _snd_device_free_all+0x4a/0x50^M
[<00116494>] _mutex_lock+0xc/0x40^M
[<000a94e6>] _snd_card_do_free+0x1a/0xcc^M
[<000a94fa>] _snd_card_do_free+0x2e/0xcc^M
[<0000af94>] ___cond_resched+0x1c/0x30^M
[<000a9eec>] _snd_card_free+0xc/0x84^M
[<000a9f58>] _snd_card_free+0x78/0x84^M
[<00033432>] _do_munmap+0xae/0x104^M
[<00116494>] _mutex_lock+0xc/0x40^M
[<00238b24>] _snd_soc_free_pcms+0x60/0xa8 [snd_soc_core]^M
[<037ce0d2>] 0x37ce0d2^M
[<037ce0de>] 0x37ce0de^M
[<0011601c>] _wait_for_completion+0xc/0xa0^M
[<00115504>] _klist_del+0x10/0x2c^M
[<00239908>] _snd_soc_info_enum_double+0x468/0x4a4 [snd_soc_core]^M
[<000952d2>] ___device_release_driver+0x66/0x90^M
[<00094706>] _device_remove_attrs+0x26/0x3c^M
[<00095780>] _device_release_driver+0x3c/0x7c^M
[<00094bb0>] _bus_remove_device+0x48/0x8c^M
[<00094bba>] _bus_remove_device+0x52/0x8c^M
[<00094bc8>] _bus_remove_device+0x60/0x8c^M
[<000240d0>] _sys_setresuid16+0x0/0x24^M
[<0009317e>] _device_del+0x17a/0x2c0^M
[<00093184>] _device_del+0x180/0x2c0^M
[<000240d0>] _sys_setresuid16+0x0/0x24^M
[<00096cd2>] _platform_device_del+0x12/0x60^M
[<00033e30>] _do_mmap_pgoff+0x608/0x750^M
[<00001000>] _run_init_process+0x0/0x18^M
[<00097024>] _platform_device_unregister+0xc/0x18^M
[<000268ce>] _sys_delete_module+0x17a/0x1e8^M
[<00001fff>] _get_sclk+0x3/0x58^M
[<00003138>] _do_signal+0x4e8/0xd74^M
[<00026754>] _sys_delete_module+0x0/0x1e8^M
[<001865d8>] _bfin_init_mmr_debugfs+0x600c/0x7074^M
[<00188850>] _log_buf_len_setup+0x114/0x154^M
[<00008000>] _l1sram_alloc_max+0x3c/0x80^M
[<00002000>] _get_sclk+0x4/0x58^M
[<00188850>] _log_buf_len_setup+0x114/0x154^M
[<00188850>] _log_buf_len_setup+0x114/0x154^M
^M
Modules linked in: snd_ad1981 snd_soc_bf5xx snd_soc_ad1980 snd_soc_core
ac97_bus snd_soc_bf5xx_ac97^M
Kernel panic - not syncing: Kernel exception^M
--
--- Vivi Li 2008-02-20 22:39:41
After I update to the latest kernel source, it's ok with uninstallation if I
uninstall 1981 module immediately after install snd-ad1981.
See below logs:
--
root:/> modprobe snd-ad1981
ASoC version 0.13.1
AD1980 SoC Audio Codec
asoc: AC97 <-> bf5xx-ac97 mapping ok
ad1980: Found AD1981 - only 2/2 IN/OUT Channels supported
root:/> lsmod
Module Size Used by
snd_ad1981 1188 0
snd_soc_bf5xx 3520 1 snd_ad1981
snd_soc_ad1980 4416 1 snd_ad1981
snd_soc_core 18304 2 snd_soc_bf5xx,snd_soc_ad1980
ac97_bus 1248 1 snd_soc_core
snd_soc_bf5xx_ac97 12428 3 snd_ad1981,snd_soc_bf5xx,snd_soc_ad1980
root:/> modprobe -r snd-ad1981
root:/> lsmod
Module Size Used by
root:/>
--
But if I play "tone", "aplay" or "vplay" before
uninstall 1981 module, then uninstallation will cause kernel crash.
Below is the log:
--
Linux version 2.6.22.18-ADI-2008R1-svn4304 (test@uclinux50-cf-cdrom) (gcc
version 4.1.2 (ADI svn)) #89 Thu Feb 21 10:43:08 CST 2008
early printk enabled on early_BFuart0
Hardware Trace Active and Enabled
Warning: limiting memory to 56MB due to hardware anomaly 05000263
Blackfin support (C) 2004-2007 Analog Devices, Inc.
Compiled for ADSP-BF537 Rev 0.2
Blackfin Linux support by blackfin.uclinux.org/
Processor Speed: 500 MHz core clock and 100 MHz System Clock
Board Memory: 64MB
Kernel Managed Memory: 64MB
Memory map:
text = 0x00001000-0x00117080
rodata = 0x00118000-0x00166a78
data = 0x00167000-0x0017a000
stack = 0x00168000-0x0016a000
init = 0x0017a000-0x0049b000
bss = 0x0049b000-0x004aac10
available = 0x004aac10-0x037ff000
DMA Zone = 0x03f00000-0x04000000
Instruction Cache Enabled
Data Cache Enabled (write-through)
Built 1 zonelists. Total pages: 14224
Kernel command line: root=/dev/mtdblock0 rw earlyprintk=serial,uart0,57600
ip=10.100.4.50:10.100.4.174:10.100.4.174:255.255.255.0:1:eth0:of
Configuring Blackfin Priority Driven Interrupts
PID hash table entries: 256 (order: 8, 1024 bytes)
console handover: boot [early_BFuart0] -> real [ttyBF0]
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory available: 51984k/65536k RAM, (3204k init code, 1112k kernel code, 459k
data, 1024k dma, 7756k reserved)
Blackfin Scratchpad data SRAM: 4 KB
Blackfin Data A SRAM: 16 KB (15 KB free)
Blackfin Data B SRAM: 16 KB (16 KB free)
Blackfin Instruction SRAM: 48 KB (39 KB free)
Security Framework v1.0.0 initialized
Mount-cache hash table entries: 512
NET: Registered protocol family 16
Blackfin GPIO Controller
Blackfin DMA Controller
stamp_init(): registering device resources
Generic PHY: Registered new driver
NET: Registered protocol family 2
IP route cache hash table entries: 1024
(order: 0, 4096 bytes)
TCP established hash table entries: 2048 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP reno registered
io scheduler noop registered
io scheduler anticipatory registered (default)
io scheduler cfq registered
Dynamic Power Management Controller Driver v0.1: major=10, minor = 254
bfin-wdt: initialized: timeout=20 sec (nowayout=0)
Serial: Blackfin serial driver
bfin-uart.1: ttyBF0 at MMIO 0xffc00400 (irq = 18) is a BFIN-UART
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
SMSC LAN83C185: Registered new driver
bfin_mac_mdio: probed
bfin_mac: attached PHY driver [SMSC LAN83C185] (mii_bus:phy_addr=0:01, irq=-1,
mdc_clk=2500000Hz(mdc_div=19)@sclk=100MHz)
bfin_mac: Version 1.1, Blackfin BF53[67] BF527 on-chip Ethernet MAC driver
rtc-bfin rtc-bfin: rtc core: registered rtc-bfin as rtc0
Advanced Linux Sound Architecture Driver Version 1.0.12rc1 (Thu Jun 22 13:55:50
2006 UTC).
ALSA device list:
No soundcards found.
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
rtc-bfin rtc-bfin: setting the system clock to 1970-01-01 00:46:29 (2789)
IP-Config: Complete:
device=eth0, addr=10.100.4.50, mask=255.255.255.0, gw=10.100.4.174,
host=1, domain=, nis-domain=(none),
bootserver=10.100.4.174, rootserver=10.100.4.174, rootpath=
Freeing unused kernel memory: 3204k freed
dma_alloc_init: dma_page @ 0x00498000 - 256 pages at 0x03f00000
_____________________________________
a8888b. / Welcome to the uClinux distribution \
d888888b. / _ _ \
8P"YP"Y88 / | | |_| __ __ (TM) |
8|o||o|88 _____/ | | _ ____ _ _ \ \/ / |
8' .88 \ | | | | _ \| | | | \ / |
8`._.' Y8. \ | |__ | | | | | |_| | / \ |
d/ `8b. \ \____||_|_| |_|\____|/_/\_\ |
dP . Y8b. \ For embedded processors including |
d8:' " `::88b \ the Analog Devices Blackfin /
d8" 'Y88b \___________________________________/
:8P ' :888
8a. : _a88P For further information, check out:
._/"Yaa_: .| 88P| - blackfin.uclinux.org/
\ YP" `| 8P `. - docs.blackfin.uclinux.org/
/ \.___.d| .' - www.uclinux.org/
`--..__)8888P`._.' jgs/a:f - www.analog.com/blackfin
Have a lot of fun...
BusyBox v1.4.1 (2008-02-21 10:38:46 CST) Built-in shell (msh)
Enter 'help' for a list of built-in commands.
root:/> PHY: 0:01 - Link is Up - 100/Full
root:/>
root:/>
root:/> modprobe snd-ad1981
ASoC version 0.13.1
AD1980 SoC Audio Codec
asoc: AC97 <-> bf5xx-ac97 mapping ok
ad1980: Found AD1981 - only 2/2 IN/OUT Channels supported
root:/> lsmod
Module Size Used by
snd_ad1981 1188 0
snd_soc_bf5xx 3520 1 snd_ad1981
snd_soc_ad1980 4416 1 snd_ad1981
snd_soc_core 18304 2 snd_soc_bf5xx,snd_soc_ad1980
ac97_bus 1248 1 snd_soc_core
snd_soc_bf5xx_ac97 12428 3 snd_ad1981,snd_soc_bf5xx,snd_soc_ad1980
root:/> tone
TONE: generating sine wave at 1000 Hz...
root:/> modprobe -r snd-ad1981
NULL pointer access (probably)
Kernel OOPS in progress
Defered Exception context
CURRENT PROCESS:
COMM=rmmod PID=127
TEXT = 0x00180000-0x001d6e50 DATA = 0x00250e50-0x0025c154
BSS = 0x0025c154-0x00260000 USER-STACK = 0x0027feb0
return address: [0x006c5080]; contents of:
0x006c5060: a30f 0c07 142d e14b 0023 e10b b080 915a
0x006c5070: e509 001c e412 0024 0c02 184b 0000 0000
0x006c5080: [af8a] e14f 0000 b0f7 6000 5e92 304a 4f09
0x006c5090: e10f 4ca8 0067 915a e617 0024 a129 a0aa
SEQUENCER STATUS: Not tainted
SEQSTAT: 00000027 IPEND: 8030 SYSCFG: 0006
HWERRCAUSE: 0x0
EXCAUSE : 0x27
physical IVG15 asserted : <0xffa00e60> { _evt_system_call + 0x0 }
logical irq 6 mapped : <0xffa00250> { _timer_interrupt + 0x0 }
logical irq 12 mapped : <0x00238ee4> {
:snd_soc_bf5xx_ac97:_sport_config_tx_dma + 0x108 }
logical irq 13 mapped : <0x00238f4c> {
:snd_soc_bf5xx_ac97:_sport_config_tx_dma + 0x170 }
logical irq 18 mapped : <0x00092658> { _bfin_serial_dma_rx_int + 0x0
}
logical irq 19 mapped : <0x00092444> { _bfin_serial_dma_tx_int + 0x0
}
logical irq 24 mapped : <0x0009bda4> { _bf537mac_interrupt + 0x0 }
logical irq 45 mapped : <0x00239b28> {
:snd_soc_bf5xx_ac97:_sport_tx_start + 0x1f4 }
RETE: <0x00000000> /* Maybe null pointer? */
RETN: <0x0022dcd4> /* unknown address */
RETX: <0x006c5080> /* unknown address */
RETS: <0x000afe06> { _snd_pcm_free + 0x3a }
PC : <0x006c5080> /* unknown address */
DCPLB_FAULT_ADDR: <0x00000038> /* Maybe null pointer? */
ICPLB_FAULT_ADDR: <0x006c5080> /* unknown address */
PROCESSOR STATE:
R0 : 03f01000 R1 : 000000b8 R2 : 03fa1000 R3 : 0000001f
R4 : 00188850 R5 : 00000000 R6 : 00000000 R7 : 00000000
P0 : 004ab240 P1 : 00000000 P2 : 03793200 P3 : 0023b080
P4 : 037cb0b8 P5 : 0322410c FP : 0022dce4 SP : 0022dbf8
LB0: 0007f102 LT0: 0007f0fa LC0: 00000000
LB1: 000ab72a LT1: 000ab72a LC1: 00000000
B0 : 00000000 L0 : 00000000 M0 : 00000000 I0 : 0023e688
B1 : 00000000 L1 : 00000000 M1 : 00000000 I1 : 0318fc58
B2 : 00000000 L2 : 00000000 M2 : 00000000 I2 : ffff36fe
B3 : 00000000 L3 : 00000000 M3 : 00000000 I3 : 00000000
A0.w: 0000005d A0.x: 00000000 A1.w: 0000005d A1.x: 00000000
USP : 0027fd48 ASTAT: 02003004
Hardware Trace:
0 Target : <0x000047e0> { _trap_c + 0x0 }
Source : <0xffa0076c> { _exception_to_level5 + 0xb4 }
1 Target : <0xffa006b8> { _exception_to_level5 + 0x0 }
Source : <0xffa00614> { _ex_trap_c + 0x5c }
2 Target : <0xffa005b8> { _ex_trap_c + 0x0 }
Source : <0xffa00442> { _ex_workaround_261 + 0x22 }
3 Target : <0xffa00420> { _ex_workaround_261 + 0x0 }
Source : <0xffa0080c> { _trap + 0x28 }
4 Target : <0xffa007e4> { _trap + 0x0 }
Source : <0xffa0055a> { _bfin_return_from_exception + 0xe }
5 Target : <0xffa0054c> { _bfin_return_from_exception + 0x0 }
Source : <0xffa00432> { _ex_workaround_261 + 0x12 }
6 Target : <0xffa00420> { _ex_workaround_261 + 0x0 }
Source : <0xffa0080c> { _trap + 0x28 }
7 Target : <0xffa007e4> { _trap + 0x0 }
Source : <0x006c507e> /* unknown address */
8 Target : <0x006c5038> /* unknown address */
Source : <0x000afe04> { _snd_pcm_free + 0x38 }
9 Target : <0x000afdf0> { _snd_pcm_free + 0x24 }
Source : <0x000ba49e> { _snd_pcm_oss_unregister_minor + 0x36 }
10 Target : <0x000ba490> { _snd_pcm_oss_unregister_minor + 0x28 }
Source : <0x000ba3e6> { _snd_pcm_oss_proc_free_setup_list + 0x32 }
11 Target : <0x000ba3dc> { _snd_pcm_oss_proc_free_setup_list + 0x28 }
Source : <0x000ba3c4> { _snd_pcm_oss_proc_free_setup_list + 0x10 }
12 Target : <0x000ba3b4> { _snd_pcm_oss_proc_free_setup_list + 0x0 }
Source : <0x000ba48c> { _snd_pcm_oss_unregister_minor + 0x24 }
13 Target : <0x000ba486> { _snd_pcm_oss_unregister_minor + 0x1e }
Source : <0x0003467e> { _kfree + 0x6e }
14 Target : <0x00034610> { _kfree + 0x0 }
Source : <0x000aa8bc> { _snd_info_free_entry + 0x4c }
15 Target : <0x000aa8b4> { _snd_info_free_entry + 0x44 }
Source : <0x000aa8ae> { _snd_info_free_entry + 0x3e }
Stack from 0022dbd8:
037bba50 ffa00770 0016c56c 0016c56c 0016c568 ffffffff 037bbb54
00000003
006c5080 00008030 00000027 00000000 0022dcd4 006c5080 006c5080
000afe06
03f01000 02003004 000ab72a 0007f102 000ab72a 0007f0fa 00000000
00000000
0000005d 00000000 0000005d 00000000 00000000 00000000 00000000
00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000
00000000 ffff36fe 0318fc58 0023e688 0027fd48 0022dce4 0322410c
037cb0b8
Call Trace:
[<00188850>] _log_buf_len_setup+0x114/0x154
[<000ba490>] _snd_pcm_oss_unregister_minor+0x28/0x38
[<000afe06>] _snd_pcm_free+0x3a/0x68
[<00001000>] _run_init_process+0x0/0x18
[<00001fff>] _get_sclk+0x3/0x58
[<00001fff>] _get_sclk+0x3/0x58
[<000acb38>] _snd_device_free+0x58/0xa4
[<00001000>] _run_init_process+0x0/0x18
[<00188850>] _log_buf_len_setup+0x114/0x154
[<000acbce>] _snd_device_free_all+0x4a/0x50
[<001164c4>] _mutex_lock+0xc/0x40
[<000a951a>] _snd_card_do_free+0x1a/0xcc
[<000a952e>] _snd_card_do_free+0x2e/0xcc
[<0000af94>] ___cond_resched+0x1c/0x30
[<000a9f20>] _snd_card_free+0xc/0x84
[<000a9f8c>] _snd_card_free+0x78/0x84
[<00033466>] _do_munmap+0xae/0x104
[<001164c4>] _mutex_lock+0xc/0x40
[<00248b24>] _snd_soc_free_pcms+0x60/0xa8 [snd_soc_core]
[<0022e0d2>] 0x22e0d2
[<0022e0de>] 0x22e0de
[<0011604c>] _wait_for_completion+0xc/0xa0
[<00115538>] _klist_del+0x10/0x2c
[<00249908>] _snd_soc_info_enum_double+0x468/0x4a4 [snd_soc_core]
[<00095306>] ___device_release_driver+0x66/0x90
[<0009473a>] _device_remove_attrs+0x26/0x3c
[<000957b4>] _device_release_driver+0x3c/0x7c
[<00094be4>] _bus_remove_device+0x48/0x8c
[<00094bee>] _bus_remove_device+0x52/0x8c
[<00094bfc>] _bus_remove_device+0x60/0x8c
[<000240d0>] _sys_setresuid16+0x0/0x24
[<000931b2>] _device_del+0x17a/0x2c0
[<000931b8>] _device_del+0x180/0x2c0
[<00096d06>] _platform_device_del+0x12/0x60
[<00014644>] _run_timer_softirq+0x14/0x16c
[<00097058>] _platform_device_unregister+0xc/0x18
[<00011998>] _tasklet_action+0x50/0xac
[<000268ce>] _sys_delete_module+0x17a/0x1e8
[<00003138>] _do_signal+0x4e8/0xd74
[<00026754>] _sys_delete_module+0x0/0x1e8
[<0000fffe>] _do_exit+0x58e/0x760
[<00188850>] _log_buf_len_setup+0x114/0x154
[<00008000>] _l1sram_alloc_max+0x3c/0x80
[<0022e000>] 0x22e000
[<00188850>] _log_buf_len_setup+0x114/0x154
[<00188850>] _log_buf_len_setup+0x114/0x154
Modules linked in: snd_ad1981 snd_soc_bf5xx snd_soc_ad1980 snd_soc_core
ac97_bus snd_soc_bf5xx_ac97
Kernel panic - not syncing: Kernel exception
--
--- Cliff Cai 2008-02-21 00:52:08
runtime is NULL when call pcm_free,so store the buffer_size in sport.
--- Vivi Li 2008-02-28 07:21:03
OK now. Close it. Thank you, Cliff.
Files
Changes
Commits
Dependencies
Duplicates
Associations
Tags
File Name File Type File Size Posted By
config.ad1980.548 application/octet-stream 31383 Vivi Li