Search Linux Wireless

Re: [PATCH 7/8] wl18xx: don't send static global struct to FW

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

 



On Tue, Jul 10, 2012 at 8:46 AM, Julian Calaby <julian.calaby@xxxxxxxxx> wrote:
> Hi Arik,
>
> On Tue, Jul 10, 2012 at 3:42 PM, Arik Nemtsov <arik@xxxxxxxxxx> wrote:
>> Hey Julian,
>>
>> On Tue, Jul 10, 2012 at 7:32 AM, Julian Calaby <julian.calaby@xxxxxxxxx> wrote:
>>> Hi Arik,
>>>
>>> On Mon, Jul 9, 2012 at 6:14 PM, Arik Nemtsov <arik@xxxxxxxxxx> wrote:
>>>> On Mon, Jul 9, 2012 at 11:03 AM, Johannes Berg
>>>> <johannes@xxxxxxxxxxxxxxxx> wrote:
>>>>> On Sun, 2012-07-08 at 17:08 +0300, Arik Nemtsov wrote:
>>>>>
>>>>>> > kzalloc (which is pointless -- use kmemdup) alignment is sufficient,
>>>>>> > then most likely you could just put "__aligned(4)" or something on the
>>>>>> > conf.phy struct member and not allocate memory at all?
>>>>>>
>>>>>> Yea we need 4 bytes alignment. The kzalloc is a sort of convention in
>>>>>> the driver (see acx.c), but probably here we can use kmemdup.
>>>>>> We can't use fancy __aligned(4) notations most likely, since a
>>>>>> usermode tool also parses these header files, and it's not too smart
>>>>>> :)
>>>>>
>>>>> This seems like a rather bad excuse for making the runtime code more
>>>>> complex and less performant ... I'll let you sort it out with John
>>>>> though, I wouldn't let you get away with this though if I maintained the
>>>>> tree ;-)
>>>>>
>>>>> FWIW, I think your actual problem is that you mark wl18xx_priv_conf as
>>>>> packed unnecessarily. Otherwise it might actually get alignment, at
>>>>> least on ARM I hear.
>>>>
>>>> It's not an excuse, we really have a usermode tool (called wlconf)
>>>> preparing binary conf files. And it usually runs on a different arch
>>>> (x86), so we mark everything packed to avoid errors.
>>>> I'm pretty sure __aligned(4) would screw up the parser there. It has
>>>> to build an internal representation of all the struct, and fill it out
>>>> using an ini file.
>>>
>>> Does this tool parse the compiled code or the actual source files?
>>> Because if it parses the source files, surely you could adjust the
>>> parser so it doesn't trip over a potential __aligned(4) notation.
>>
>> The tool goes over source files, but it's not just a matter of
>> skipping the token - it has to actually align the next element to 4,
>> so it needs to start keeping track of alignment etc.
>
> Ah, does it produce binary chunks of data that are then "parsed" with
> this structure?

Yea. It produces a bin file that the driver takes using
request_firmware(). The driver uses this file as its internal
configuration struct.

>
>> I'm afraid we have bigger issues with this tool right now. Currently
>> it can't even parse arrays properly :)
>
> That's a big problem =)

Tell me about it :)
--
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 Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux