Bug : Can't read CIS (2.6.0-test4)
Pavel Roskin
proski at gnu.org
Thu Sep 18 05:24:46 BST 2003
On Wed, 17 Sep 2003, Russell King wrote:
> > Not sure about i82365, but the later would crash with yenta_socket and
> > plx9052, as described here:
> > http://lists.infradead.org/pipermail/linux-pcmcia/2003-August/000184.html
> >
> > Still true with 2.6.0-test5-bk3. New backtrace is attached.
>
> Hmm, interesting. I think I can see what's going on here, but I just
> can't reproduce it here:
>
> bash-2.04# lsmod
> Module Size Used by
> ds 11688 0
> pcmcia_core 63828 1 ds
> bash-2.04# insmod yenta_socket.ko
> irq 21: nobody cared
> Socket status: 30000007
> irq 22: nobody cared
> Socket status: 30000007
> bash-2.04# rmmod yenta_socket
> ... etc ...
Maybe you don't have CONFIG_DEBUG_SLAB=y in Linux .config file.
> So, here's a patch which may solve your problem - as I can't reproduce it,
> please confirm whether this solves it for you:
First of all, the variable "client" should be moved from
pcmcia_remove_socket() to pcmcia_release_socket() to allow compilation.
Unfortunately, I'm getting oops after running cardmgr. The log is
attached. The commands were:
modprobe ds
modprobe yenta_socket
cardmgr
--
Regards,
Pavel Roskin
-------------- next part --------------
Linux Kernel Card Services 3.1.22
options: [pci] [cardbus] [pm]
PCI: Found IRQ 12 for device 0000:00:0a.0
PCI: Sharing IRQ 12 with 0000:00:07.5
Yenta: CardBus bridge found at 0000:00:0a.0 [0000:0000]
Yenta: Using CSCINT to route CSC interrupts to PCI
Yenta: Routing CardBus interrupts to PCI
Yenta: ISA IRQ list 0000, PCI irq12
Socket status: 30000010
cs: IO port probe 0x0c00-0x0cff: clean.
cs: IO port probe 0x0800-0x08ff: clean.
cs: IO port probe 0x0100-0x04ff: excluding 0x3c0-0x3df 0x4d0-0x4d7
cs: IO port probe 0x0a00-0x0aff: clean.
cs: memory probe 0xa0000000-0xa0ffffff:<1>Unable to handle kernel NULL pointer dereference at virtual address 0000001c
printing eip:
f88cb0bb
*pde = 00000000
Oops: 0000 [#1]
CPU: 0
EIP: 0060:[<f88cb0bb>] Not tainted
EFLAGS: 00010286
EIP is at set_cis_map+0x3b/0x110 [pcmcia_core]
eax: 00000000 ebx: e3e1f07c ecx: 00000000 edx: a0000000
esi: e3e1f048 edi: 00000000 ebp: ead23650 esp: ead23630
ds: 007b es: 007b ss: 0068
Process cardmgr (pid: 13132, threadinfo=ead22000 task=eb6c9000)
Stack: e3e1f048 e3e1f07c 5a5a5a5a 5a5a5a5a 5a5a5a5a 5a5a5a5a 00000002 ead236ee
ead23684 f88cb349 e3e1f048 00000000 00000021 00000021 00000000 00000002
5a5a5a5a 5a5a5a5a e3e1f048 00000002 00000000 ead236c8 f88cb7ce e3e1f048
Call Trace:
[<f88cb349>] read_cis_mem+0x1b9/0x240 [pcmcia_core]
[<f88cb7ce>] read_cis_cache+0x1de/0x220 [pcmcia_core]
[<f88cbea4>] pcmcia_get_next_tuple+0x84/0x2a0 [pcmcia_core]
[<f88cbb92>] pcmcia_get_first_tuple+0x92/0x130 [pcmcia_core]
[<f88cd4eb>] pcmcia_validate_cis+0x6b/0x200 [pcmcia_core]
[<c014e662>] check_poison_obj+0x52/0x1b0
[<c0119e63>] remap_area_pages+0x263/0x310
[<c0168821>] __get_vm_area+0x21/0xf0
[<c01688b2>] __get_vm_area+0xb2/0xf0
[<f88cdce6>] readable+0x56/0xa0 [pcmcia_core]
[<f88cde94>] cis_readable+0x74/0xd0 [pcmcia_core]
[<f88ce16b>] do_mem_probe+0x1ab/0x1c0 [pcmcia_core]
[<f88ce203>] inv_probe+0x83/0x90 [pcmcia_core]
[<f88ce1ae>] inv_probe+0x2e/0x90 [pcmcia_core]
[<f88ce1ae>] inv_probe+0x2e/0x90 [pcmcia_core]
[<f88ce29e>] validate_mem+0x8e/0x170 [pcmcia_core]
[<f88cb112>] set_cis_map+0x92/0x110 [pcmcia_core]
[<c01726f4>] wake_up_buffer+0x14/0x40
[<c017274e>] unlock_buffer+0x2e/0x50
[<f88cb349>] read_cis_mem+0x1b9/0x240 [pcmcia_core]
[<f88cb7ce>] read_cis_cache+0x1de/0x220 [pcmcia_core]
[<f88cbea4>] pcmcia_get_next_tuple+0x84/0x2a0 [pcmcia_core]
[<f88cbb92>] pcmcia_get_first_tuple+0x92/0x130 [pcmcia_core]
[<c017274e>] unlock_buffer+0x2e/0x50
[<f88cd4eb>] pcmcia_validate_cis+0x6b/0x200 [pcmcia_core]
[<c01c4c9e>] ext3_do_update_inode+0x16e/0x360
[<c01d2071>] journal_get_write_access+0x41/0x50
[<c01c5117>] ext3_mark_iloc_dirty+0x27/0x40
[<c01726f4>] wake_up_buffer+0x14/0x40
[<c017274e>] unlock_buffer+0x2e/0x50
[<c01d1a0d>] do_get_write_access+0x4fd/0xb20
[<c01751f3>] __find_get_block+0x63/0xe0
[<c01c4c9e>] ext3_do_update_inode+0x16e/0x360
[<c01d2071>] journal_get_write_access+0x41/0x50
[<c01c5117>] ext3_mark_iloc_dirty+0x27/0x40
[<f88d02ff>] pcmcia_get_socket_by_nr+0x3f/0xd0 [pcmcia_core]
[<f88bddde>] ds_ioctl+0x2ae/0x670 [ds]
[<c01d3886>] journal_stop+0x386/0x6e0
[<c0175fed>] __block_commit_write+0x8d/0x90
[<c01c9304>] __ext3_journal_stop+0x24/0x50
[<c0153b26>] __pagevec_lru_add+0x1b6/0x2a0
[<c0147c12>] generic_file_aio_write_nolock+0x5d2/0xb80
[<c01751f3>] __find_get_block+0x63/0xe0
[<c014596a>] find_get_page+0x7a/0x160
[<c0146f07>] filemap_nopage+0x267/0x2f0
[<c015c66c>] do_no_page+0x29c/0x610
[<c0159164>] pte_alloc_map+0x134/0x1f0
[<c015cc92>] handle_mm_fault+0x132/0x300
[<c0119911>] do_page_fault+0x271/0x4c7
[<f88d02e5>] pcmcia_get_socket_by_nr+0x25/0xd0 [pcmcia_core]
[<f88be421>] get_socket_info_by_nr+0x11/0x30 [ds]
[<f88bd9dc>] ds_read+0xcc/0xf0 [ds]
[<c0170973>] vfs_read+0xc3/0x120
[<c018a9d5>] sys_ioctl+0x205/0x3f0
[<c0170bef>] sys_read+0x3f/0x60
[<c010a38f>] syscall_call+0x7/0xb
Code: ff 50 1c f6 86 88 01 00 00 08 74 27 8b 46 44 85 c0 75 32 8b
More information about the linux-pcmcia
mailing list