Re: [zd1211-devs] Porting zd1211 (not rw) to SPARC64
I've made quite a bit of progress debugging and have narrowed down the (current) problem to a single statement: set_bit(ZD1211_RUNNING, macp-flags); My initial attempt at solving this problem was to change this line to the following: set_bit(ZD1211_RUNNING, get_unaligned((macp-flags))); This didn't work, but the kernel failed in a different way, claiming it was unable to handle a null pointer dereference. So, I added a printk statement to log the value of macp directly before that statement. It was not NULL. Googling for set_bit problems, I disovered this lkml thread: http://lkml.org/lkml/2006/1/21/112 I am using kernel 2.4.33, and my compiler is GCC 3.4.4. While I suppose it's possbile that my kernel or GCC version is buggy with regard to the set_bit function, I think it's more likely my fix above is wrong. I'm just mentioning what I found about that because I don't want to rule it out. Does anyone have any suggestions on how to fix this? -- The mind is its own place, and in itself, can make a Heaven of Hell, a Hell of Heaven. --Satan, in _Paradise Lost_ by Milton - Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ Zd1211-devs mailing list - http://zd1211.ath.cx/ Unsubscribe: https://lists.sourceforge.net/lists/listinfo/zd1211-devs
Re: [zd1211-devs] Porting zd1211 (not rw) to SPARC64
Ulrich Kunitz wrote: This is the address of the invalid code. It's a pity that they don't write out a normal kernel oops, which would give us much more information. Look into /proc/modules and /boot/System.map* to check where it is. If it is in zd1211 you can uses nm -n -g zd1211.ko to find the right function. You could always patch the kernel to add a dump_stack() call after the Unsupported unaligned load/store trap message. BTW, you have mentioned that zd1211rw doesn't provide the functionality you require, but if you have time we'd really appreciate testing on sparc64, just as a simple WLAN client device. Daniel - Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642 ___ Zd1211-devs mailing list - http://zd1211.ath.cx/ Unsubscribe: https://lists.sourceforge.net/lists/listinfo/zd1211-devs
[zd1211-devs] Porting zd1211 (not rw) to SPARC64
Thanks for your help, Ulrich. Would an unaligned memory access look like just an array indexing? Perhaps something like this? (version r83) zd1205.c:108:#define getSeq(pWlanHdr) (((u16)pWlanHdr-SeqCtrl[1] 4) + (u16)((pWlanHdr-SeqCtrl[0] 0xF0) 4)) If not, how can I tell whether something is aligned or not? I read the section on unaligned access in the kernel drivers guide you pointed too, b As far as the trap, the dmesg log mentions this: Unsupported unaligned load/store trap for kernel at 00573bec. \|/ \|/ "@'/ .. \`@" /_| \__/ |_\ \__U_/ I'm guessing that I should do something with 00573bec, but I don't know where to start. Is that the address of the invalid code in the module or the address of the trap handler which got called? In any case, how do I use this number to determine what function the problem is in? -- "The mind is its own place, and in itself, can make a Heaven of Hell, a Hell of Heaven." --Satan, in _Paradise Lost_ by Milton - Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642___ Zd1211-devs mailing list - http://zd1211.ath.cx/ Unsubscribe: https://lists.sourceforge.net/lists/listinfo/zd1211-devs