Search Linux Wireless

Re: Backporting wl1271 driver to kernel-2.6.32 using compat-wireless

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 12/22/2010 06:39 PM, Luis R. Rodriguez wrote:
> On Wed, Dec 22, 2010 at 12:29 PM, Elvis Dowson <elvis.dowson@xxxxxxx> wrote:
>> Hi,
>>
>> On Dec 22, 2010, at 8:47 PM, Hauke Mehrtens wrote:
>>
>>> On 12/22/2010 05:13 PM, Luis R. Rodriguez wrote:
>>>> On Wed, Dec 22, 2010 at 11:09 AM, Elvis Dowson <elvis.dowson@xxxxxxx> wrote:
>>>>> netdev_alloc_skb_ip_align
>>>>
>>>> I notice you have an android kernel, is that kernel a vanilla kernel
>>>> or did it get netdev_alloc_skb_ip_align() cherry picked into it?
>>
>>
>> Yes, it is an android enabled 2.6.32 kernel. It also includes the TI
>> OMAP35xx/AM35xx platform support package SDK v03.00.01.06/
>>
>>
>>> netdev_alloc_skb_ip_align is not defined in the 2.6.32.27 vanilla
>>> kernel. Someone else (google or ti) must have backported it to this
>>> kernel and added it to your kernel.
>>>
>>> I do not want to add some special handling into compat-wireless just for
>>> some android kernel. Just remove netdev_alloc_skb_ip_align() and
>>> NETDEV_POST_INIT from include/linux/compat-2.6.33.h and the compile
>>> problems you posted should be fixed.
>>
>> I made the following modifications, but get another error:
>>
>> diff --git a/include/linux/compat-2.6.33.h b/include/linux/compat-2.6.33.h
>> index c2dbc1b..468a074 100644
>> --- a/include/linux/compat-2.6.33.h
>> +++ b/include/linux/compat-2.6.33.h
>> @@ -52,19 +52,6 @@ static inline void compat_release_firmware(const struct firmware *fw)
>>  #define IFF_DONT_BRIDGE 0x800          /* disallow bridging this ether dev */
>>  /* source: include/linux/if.h */
>>
>> -/* this will never happen on older kernels */
>> -#define NETDEV_POST_INIT 0xffff
>> -
>> -static inline struct sk_buff *netdev_alloc_skb_ip_align(struct net_device *dev,
>> -                unsigned int length)
>> -{
>> -       struct sk_buff *skb = netdev_alloc_skb(dev, length + NET_IP_ALIGN);
>> -
>> -       if (NET_IP_ALIGN && skb)
>> -               skb_reserve(skb, NET_IP_ALIGN);
>> -       return skb;
>> -}
>> -
>>  #if defined(CONFIG_PCCARD) || defined(CONFIG_PCCARD_MODULE)
>>
>>  #if defined(CONFIG_PCMCIA) || defined(CONFIG_PCMCIA_MODULE)
> 
> I'd rather you figure out a way to identify that android kernel
> somehow reliably and send a patch upstream to ifdef out
> netdev_alloc_skb_ip_align() for that kernel, that way other Android
> hackers can benefit.
> 
>> CC [M]  /tool/patches/compat-wireless-2.6.37-rc6-3-patchwork/net/mac80211/led.o
>> /tool/patches/compat-wireless-2.6.37-rc6-3-patchwork/net/mac80211/led.c: In function âieee80211_led_initâ:
>> /tool/patches/compat-wireless-2.6.37-rc6-3-patchwork/net/mac80211/led.c:59: error: invalid application of âsizeofâ to incomplete type âstruct led_triggerâ
> 
> 
> This is from:
> 
> void ieee80211_led_init(struct ieee80211_local *local)
> {
>         local->rx_led = kzalloc(sizeof(struct led_trigger), GFP_KERNEL);
>        ...
> }
> 
> Looks good to me..  Not sure what can cause this, hrm.
> 
>   Luis

In your kernel config CONFIG_LEDS_TRIGGERS is probably unset and then
net/mac80211/led.c should not be build at all. In the kernel
CONFIG_MAC80211_LEDS will select CONFIG_LEDS_TRIGGERS, but in
compat-wireless this should just be disabled.
I provided a patch for this problem, please apply it and try again.

Hauke
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux