All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Rafał Miłecki" <zajec5@gmail.com>
To: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Joe Perches <joe@perches.com>, Hauke Mehrtens <hauke@hauke-m.de>,
	linville@tuxdriver.com, linux-wireless@vger.kernel.org
Subject: Re: [PATCH] ssb: fix unaligned access to mac address
Date: Sun, 10 Mar 2013 12:36:57 +0100	[thread overview]
Message-ID: <CACna6rzNTfcuDOdpQrvbeWa4YhgDm_j6nkJ0OwbrLqCjh+qWJQ@mail.gmail.com> (raw)
In-Reply-To: <513BCC20.70900@lwfinger.net>

2013/3/10 Larry Finger <Larry.Finger@lwfinger.net>:
> On 03/09/2013 05:02 PM, Rafał Miłecki wrote:
>>
>> 2013/2/21 Larry Finger <Larry.Finger@lwfinger.net>:
>>>
>>> On 02/20/2013 02:11 PM, Joe Perches wrote:
>>>>
>>>>
>>>> On Wed, 2013-02-20 at 20:17 +0100, Hauke Mehrtens wrote:
>>>>>
>>>>>
>>>>> On 02/20/2013 07:29 PM, Joe Perches wrote:
>>>>>>
>>>>>>
>>>>>> On Wed, 2013-02-20 at 11:56 -0600, Larry Finger wrote:
>>>>>>>
>>>>>>>
>>>>>>> On 02/20/2013 11:31 AM, Joe Perches wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>> On Mon, 2013-02-18 at 17:09 +0100, Rafał Miłecki wrote:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> 2013/2/16 Hauke Mehrtens <hauke@hauke-m.de>:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> The mac address should be aligned to u16 to prevent an unaligned
>>>>>>>>>> access
>>>>>>>>>> in drivers/ssb/pci.c where it is casted to __be16.
>>>>>>>>
>>>>>>>>
>>>>>>>> []
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> diff --git a/include/linux/ssb/ssb.h b/include/linux/ssb/ssb.h
>>>>>>>>
>>>>>>>>
>>>>>>>> []
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> @@ -26,6 +26,7 @@ struct ssb_sprom_core_pwr_info {
>>>>>>>>>>
>>>>>>>>>>     struct ssb_sprom {
>>>>>>>>>>            u8 revision;
>>>>>>>>>> +       u8 country_code;        /* Country Code */
>>>>>>>>>>            u8 il0mac[6];           /* MAC address for 802.11b/g */
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> It looks a little hacky to me too, it's easy to forget about that
>>>>>>>>> requirement and break that again in the future.
>>>>>>>>>
>>>>>>>>> What about not casting il0mac to u16 at all? Maybe we should just
>>>>>>>>> fill
>>>>>>>>> it as u8 (which it is)?
>>>>>>>>>
>>>>>>>>
>>>>>>>> Perhaps this?
>>>>>>>>
>>>>>>>> From: Joe Perches <joe@perches.com>
>>>>>>>> Subject: [PATCH] ssb: pci: Standardize a function to get mac address
>>>>>>>>
>>>>>>>> Don't require alignment of mac addresses to u16.
>>>>>
>>>>>
>>>>>
>>>>> ...
>>>>>
>>>>>>> I like the looks of sprom_get_mac() over that ugly *(((__be16
>>>>>>> *)out->il0mac)
>>>>>>> construct, but this patch breaks ssb. The resulting MAC address is
>>>>>>> all
>>>>>>> ones. I
>>>>>>> have not yet figured out the problem.
>>>>>>
>>>>>>
>>>>>>
>>>>>> Dunno, I must have done something stupid.
>>>>>>
>>>>>> I don't have one of these but the transform
>>>>>> looked correct when I did  it.
>>>>>>
>>>>>> I'm not sure it's the best solution anyway
>>>>>> because some of the other ether address
>>>>>> functions like compare_ether_addr also
>>>>>> require 2 byte alignment and cast to u16.
>>>>>
>>>>>
>>>>>
>>>>> Your patch looks good (haven't tested it), but as you said we should
>>>>> still align the mac addresses to u16 so functions like
>>>>> compare_ether_addr work with them.
>>>>>
>>>>> There is also a v2 of my patch:
>>>>> http://www.spinics.net/lists/linux-wireless/msg103628.html
>>>>
>>>>
>>>>
>>>> Seems OK to me, though I suggest using ETH_ALEN
>>>> instead of 6.
>>>>
>>>> Maybe using both patches would be better still.
>>>>
>>>> And as long as I'm futzing with ssb, there's another
>>>> logging cleanup to go with it.
>>>>
>>>> Here's a V2 with the missing SPOFF fixed.
>>>>
>>>> Subject: [PATCH 1/2] ssb: pci: Standardize a function to get mac address
>>>> From: Joe Perches <joe@perches.com>
>>>>
>>>> Don't require alignment of mac addresses to u16.
>>>>
>>>> Signed-off-by: Joe Perches <joe@perches.com>
>>>> ---
>>>>
>>>> V2: Add missing SPOFF
>>>
>>>
>>>
>>> Tested-by: Larry Finger <Larry.Finger@lwfinger.net>
>>
>>
>> I didn't confirm my issue to be related to this patch, but with recent
>> kernels my MAC has changed from
>> 00:11:22:33:44:55
>> to
>> 11:00:33:22:55:44
>>
>> Larry: did you verify MAC didn't change for you?
>
>
> I just checked on x86_64, and the bytes are swapped here too. Do you want to
> push the patch, or should I do it?

Feel free to fix. I've another 3 regressions to track...

-- 
Rafał

  reply	other threads:[~2013-03-10 11:36 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-16 13:25 [PATCH] ssb: fix unaligned access to mac address Hauke Mehrtens
2013-02-18 10:10 ` Johannes Berg
2013-02-18 16:09 ` Rafał Miłecki
2013-02-20 17:31   ` Joe Perches
2013-02-20 17:56     ` Larry Finger
2013-02-20 18:29       ` Joe Perches
2013-02-20 19:17         ` Hauke Mehrtens
2013-02-20 20:11           ` Joe Perches
2013-02-21  3:34             ` Larry Finger
2013-03-09 23:02               ` Rafał Miłecki
2013-03-09 23:31                 ` Larry Finger
2013-03-09 23:56                 ` Larry Finger
2013-03-10 11:36                   ` Rafał Miłecki [this message]
2013-03-10 17:35                     ` Larry Finger
2013-03-10 20:57                       ` Rafał Miłecki
2013-02-20 20:16           ` [PATCH 2/2] ssb: Convert ssb_printk to ssb_<level> Joe Perches
2013-02-20 19:07       ` [PATCH] ssb: fix unaligned access to mac address Joe Perches

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CACna6rzNTfcuDOdpQrvbeWa4YhgDm_j6nkJ0OwbrLqCjh+qWJQ@mail.gmail.com \
    --to=zajec5@gmail.com \
    --cc=Larry.Finger@lwfinger.net \
    --cc=hauke@hauke-m.de \
    --cc=joe@perches.com \
    --cc=linux-wireless@vger.kernel.org \
    --cc=linville@tuxdriver.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.