[PATCHES] 11-pcmciaresource

Russell King rmk+pcmcia at arm.linux.org.uk
Fri Mar 26 07:49:01 GMT 2004

On Thu, Mar 25, 2004 at 08:23:36PM -0500, Pavel Roskin wrote:
> Is my understanding correct that PCMCIA drivers will use resources already
> allocated for the bridges (with the exceptions for pcnet_cs and
> serial_cs)?  That would be great.

No.  Not yet at least.

> It would be great of you provided a combined diff.  It's much easier to
> check if it applies.  It's also much easier to recover if the patch
> doesn't apply.  I think bitkeeper should allow it.  Alternatively, you
> could use combinediff from GNU diffutils
> (http://www.gnu.org/software/diffutils/).

I'd rather not - I think providing the patches in 3 forms is already

> The patch introduces a warning:
> drivers/pcmcia/rsrc_mgr.c: In function `find_io_region':
> drivers/pcmcia/rsrc_mgr.c:603: warning: large integer implicitly truncated
> to unsigned type
> align has type ioaddr_t, which is 16-bit on all platforms except ARM.  You
> cannot assign 0x10000UL to it.

which explains why I didn't find it.

> On the machine with Ricoh 476, yenta_socket driver compiled as module:
> orinoco_cs - OK
> pcnet_cs - OK
> ide_cs - kernel panic, possibly unrelated to the patch:
> Trying to free nonexistent resource <00000030-0000003f>
> hde: , ATA DISK drive
> ide2 at 0x030-0x037,0x03e on irq 12
> hde: max request size: 128KiB
> hde: 0 sectors (0 MB), CHS=0/0/0
> ide-default: hde: Failed to register the driver with ide.c
> Kernel panic: ide: default attach failed

Can you send me the kernel messages for the case where the patch isn't
applied, along with /proc/ioports?

> serial_cs kernel panic, likely related to the patch:
> cs: memory probe 0x0c0000-0x0fffff:
> divide error: 0000 [#1]
> CPU:    0
> EIP:    0060:[<c011962a>]    Not tainted
> EFLAGS: 00000202   (2.6.5-rc2-bk5)
> EIP is at kernel_map_pages+0x3a/0x48
> eax: 000006c0   ebx: 00000001   ecx: 0d1b4000   edx: 00000640
> esi: cfeef788   edi: ccbc9000   ebp: cd219bb0   esp: cd219bb0
> ds: 007b   es: 007b   ss: 0068
> Process cardmgr (pid: 721, threadinfo=cd218000 task=cd062a30)
> Stack: cd219bdc c0149312 cd55dc2c 0000cbc9 d0988197 ccbc9000 d0988135 000000d0
>        00000015 cd510db8 cd5e5f38 cd219c14 d0988135 ccf0edf8 00000002 cd5e5f20
>        00000000 00000000 00000000 ccf00000 d0988219 000000d0 cd5e5f38 cd510db8
> Call Trace:
>  [<c0149312>] kmem_cache_alloc+0x1b2/0x1f0
>  [<d0988197>] read_tuple+0x87/0xa0 [pcmcia_core]
>  [<d0988135>] read_tuple+0x25/0xa0 [pcmcia_core]
>  [<d0988135>] read_tuple+0x25/0xa0 [pcmcia_core]
>  [<d0988219>] pcmcia_validate_cis+0x69/0x1e0 [pcmcia_core]
>  [<d098833c>] pcmcia_validate_cis+0x18c/0x1e0 [pcmcia_core]
>  [<d098862e>] readable+0x3e/0x80 [pcmcia_core]
>  [<d0988797>] cis_readable+0x77/0xb0 [pcmcia_core]
>  [<d0988a2e>] do_mem_probe+0x1ae/0x1d0 [pcmcia_core]
>  [<c01a1ebf>] ext3_get_inode_loc+0x4f/0x250
>  [<d0988ac8>] validate_mem+0x78/0xa0 [pcmcia_core]
>  [<d08ca05b>] ds_ioctl+0x26b/0x5c0 [ds]
>  [<c01aba3d>] journal_stop+0x25d/0x420
>  [<c01aba3d>] journal_stop+0x25d/0x420
>  [<c01a2aa0>] ext3_dirty_inode+0x60/0x80
>  [<c01a6367>] __ext3_journal_stop+0x27/0x50
>  [<c014bfa2>] __pagevec_lru_add+0x132/0x1b0
>  [<c01417ed>] generic_file_aio_write_nolock+0x62d/0xbe0
>  [<c0119606>] kernel_map_pages+0x16/0x48
>  [<c014bae8>] __page_cache_release+0xd8/0x130
>  [<c015052e>] zap_pte_range+0x1ae/0x1f0
>  [<c019df7d>] ext3_file_write+0x2d/0xc0
>  [<c01505b4>] zap_pmd_range+0x44/0x60
>  [<c0176870>] do_select+0x1b0/0x2f0
>  [<d08c9c5b>] ds_read+0x9b/0x130 [ds]
>  [<c0175d88>] sys_ioctl+0x148/0x2e0
>  [<c0161a15>] sys_read+0x35/0x60
>  [<c01076bf>] syscall_call+0x7/0xb

I don't think this is related to the patch, unless you can positively
reproduce it.

Although it contains PCMCIA symbols, EIP is in kernel_map_pages() which
is fairly low down in the call trace, which means everything above it
are stale entries.

> On a machine with Vadem VG-469, driver i82365:
> hostap_cs is OK.
> inserting a card supported by pcnet_cs caused several messages like this
> in the kernel log:
> cs: unable to map card memory!
> After that, even hostap_cs fails with the same messages.  Restarting
> cardmgr doesn't help.

/proc/iomem would be useful for each stage of this.

Russell King
 Linux kernel    2.6 ARM Linux   - http://www.arm.linux.org.uk/
 maintainer of:  2.6 PCMCIA      - http://pcmcia.arm.linux.org.uk/
                 2.6 Serial core

More information about the linux-pcmcia mailing list