Hi
I am using Linux Kernel 2.4.18 and developing drivers for USB Host and Devices. It runs in IntelPXA250 platform with 32 MB onboard. My kernel image(.bin) is occupying about 15MB.
The problem is I export few function calls to other modules.Like hal.o exports register access functions to host.o.
When I call register access function from host module to hal module I need to wait for 2 interrupts to happen then only I can read the register and send it back to called module(host.o).
After delaying so much in ISR when coming back the actual variable is paged out and kernel dumps the following message


softhost_read16(reg_val= a5a5)
Unable to handle kernel paging request at virtual address a5a5a5a5
pgd = c398c000
*pgd = 00000000, *pmd = 00000000
Internal error: Oops: ffffffff
CPU: 0
pc : [<c68c17e0>] lr : [<c00254e4>] Not tainted
sp : c3cf9ec8 ip : c3cf9e74 fp : c3cf9ef0
r10: 0003f308 r9 : c3cf8000 r8 : a5a5a5a5
r7 : 00000001 r6 : 969683bc r5 : c68c30a0 r4 : c68c2dd0
r3 : 0000a5a5 r2 : 00000001 r1 : 00000001 r0 : 0000001f
Flags: nZCv IRQs on FIQs on Mode SVC_32 Segment user
Control: 397F Table: A398C000 DAC: 00000015
Process insmod (pid: 343, stackpage=c3cf9000)
Stack: (0xc3cf9eb8 to 0xc3cfa000)
9ea0: c00254e4 c68c17e0
9ec0: 60000013 ffffffff a5a59004 00020840 a5a580ef a5a5a5a5 c68e774c 00000060
9ee0: ffffffea c3cf9f10 c3cf9ef4 c68e6674 c68c1660 0000a5a5 00000000 c68e0000
9f00: c380d000 c3cf9fac c3cf9f14 c00263a0 c68e661c c380d000 c380e000 00000004
9f20: c3f86300 00000060 c68c0000 c68e0060 00008810 00000000 00000000 00000000
9f40: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
9f60: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
9f80: 00000000 bfffcfc0 0002f2d0 0003f308 00000080 c0019a04 c3cf8000 00000000
9fa0: 00000000 c3cf9fb0 c0019880 c0025cc8 bfffcfc0 c001f76c 000285b0 0003f308
9fc0: ffffffff fbad2084 bfffcfc0 0002f2d0 0003f308 c68e0000 00008810 00000000
9fe0: 00000000 bfffcf90 400e9010 bfffcf80 000180d4 400e901c 60000010 000285b0
Backtrace:
Function entered at [<c68c1654>] from [<c68e6674>]
r8 = FFFFFFEA r7 = 00000060 r6 = C68E774C r5 = A5A5A5A5
r4 = A5A580EF
Function entered at [<c68e6610>] from [<c00263a0>]
r6 = C380D000 r5 = C68E0000 r4 = 00000000
Function entered at [<c0025cbc>] from [<c0019880>]
Code: e15b12b6 e59f0010 eb000654 e15b32b6 (e5883000)
Node read from 00477d0c: node_crc 54ef158b, calculated CRC 54ef158b. dsize e, cs
ize e, offset 0, buf c3f862e0
Read 14 bytes to c3f862e0
Data CRC matches calculated CRC c18b4143




When I return fromthe called function ie. from hal.o immediately it works fine. I think Linux has some timing limit for waiting for the return of the variable from called function. Is my thinking right? Can anyone give suggestion so that my calling module waits indefinitely to receive the data from called module.

Thanks in Advance

Kumar





-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to