[#3918] remove ad1980 module, kernel will crash

Document created by Aaronwu Employee on Aug 28, 2013
Version 1Show Document
  • View in full screen mode

[#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

Attachments

    Outcomes