Libertas Driver Locking Kernel

Nick Moszer nick.moszer at packetdigital.com
Fri May 23 14:34:13 EDT 2008


Holger Schurig wrote:
>> Any chance you could try an updated driver?  What's in kernel
>> git right now in wireless-testing should be able to be used
>> with 2.6.24 without much trouble.
>>     
>
> I'm not sure, libertas got some unaligned-access patches. To use 
> the wireless-testing libertas source with 2.6.25.4 on my 
> embedded device, I also needed the following two patches from 
> Linus' 2.6.25
>
> * 064106a91be5e76cb42c1ddf5d3871e3a1bd2a23
>   kernel: add common infrastructure for unaligned access
>
> * 6510d41954dc6a9c8b1dbca7eaca0f23195ca727
>   kernel: Move arches to use common unaligned access
>
> An other option would be to undo
>
> * 533dd1b0be103b0ff11da71152877e1ba530f1c2
>   wireless: use get/put_unaligned_* helpers
>   


I ended up add the unaligned-access patches to my 2.6.24 kernel to get 
the wireless-testing code to work.
That along with some minor updates to the iw_range struct in 
include/linux/wireless.h

Once those patches were added an incompatible pointer type came up when 
compiling.  The source was lbs_process_bss() in scan.c
code:     

 if (*bytesleft >= sizeof(beaconsize)) {
                /* Extract & convert beacon size from the command buffer */
//              beaconsize = get_unaligned_le16(*pbeaconinfo);
                beaconsize = le16_to_cpu(get_unaligned((__le16 
*)*pbeaconinfo));


Once I commented out the new get_unaligned_le16 and returned the code to 
the old line it went away. 

I was in a huge hurry when I did this so I didn't take the time to 
figure out what the problem was and fix it correctly.








Once I did





More information about the libertas-dev mailing list