Thread (19 messages) 19 messages, 5 authors, 2007-12-28

Re: [2.6.23.9] hostap_plx locks up PC when reading PCI I/O memory

From: Arjan van de Ven <hidden>
Date: 2007-12-09 21:34:18
Also in: lkml

On Sun, 9 Dec 2007 19:41:58 +0000 (GMT)
Chris Rankin [off-list ref] wrote:
Hi,

I've recently been having trouble loading the hostap_plx 802.11b
wireless networking driver, and this evening I managed to narrow the
problem down to these lines of code by copying code from hostap_plx
into a "test driver" until the test driver also locked the PC up:

        /* read CIS; it is in even offsets in the beginning of
attr_mem */ for (i = 0; i < CIS_MAX_LEN; i++)
                cis[i] = readb(attr_mem + 2 * i);

If I comment these lines out then my test driver just complains about
the garbage CIS information and fails gracefully. Leave these lines
in and my PC freezes instantly.

These lines are part of the prism2_plx_check_cis() function, which is
called when the module first loads. CIX_MAX_LEN is a #define for 256,
and cis is a u8* pointer previously allocated as:

cis = kmalloc(CIS_MAX_LEN, GFP_KERNEL);

attr_mem is one of the function's paramters, and is defined as void
__iomem *attr_mem.

can you check if the attr_mem is properly ioremap'd ?
(probably with ioremap_nocache)

        Region 2: Memory at e8002000 (32-bit, non-prefetchable)
[size=4K] Region 3: I/O ports at 1080 [size=64]

so there is apparently 4K of I/O memory at 0xe8002000.

Can anyone help me understand why my PC is locking up when it
executes this code, please?
I wonder if there's anything else in that area as well..


-- 
If you want to reach me at my work email, use arjan@linux.intel.com
For development, discussion and tips for power savings, 
visit http://www.lesswatts.org
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help