Re: [PATCH 8/8] staging: rtl8188eu: use is_broadcast_ether_addr

From: Michael Straube
Date: Sun Jul 29 2018 - 14:52:28 EST


On 07/29/18 20:21, Michael Straube wrote:
On 07/29/18 19:59, Joe Perches wrote:
On Sun, 2018-07-29 at 19:42 +0200, Michael Straube wrote:
On 07/29/18 19:21, Joe Perches wrote:
On Sun, 2018-07-29 at 19:08 +0200, Michael Straube wrote:
Use is_broadcast_ether_addr instead of checking each byte of the
address array for 0xff. Shortens the code and improves readability.

You should show in the commit log that sta_addr is __aligned(2)
as required by is_broadcast_ether_addr, otherwise you could be
introducing runtime alignment defects.


Ok, sta_addr is used from following structs.

struct ieee_param {
ÂÂÂÂÂÂÂÂÂ u32 cmd;
ÂÂÂÂÂÂÂÂÂ u8 sta_addr[ETH_ALEN];
ÂÂÂÂÂÂÂÂÂ union {
ÂÂÂÂÂÂÂÂÂ ...
ÂÂÂÂÂÂÂÂÂ ...
ÂÂÂÂÂÂÂÂÂ }; u
};

struct ieee_param_ex {
ÂÂÂÂu32 cmd;
ÂÂÂÂu8 sta_addr[ETH_ALEN];
ÂÂÂÂu8 data[0];
};

Well, looking at it now, I'm not sure about the alignment anymore
in the struct that contains the union. Is sta_addr in the first
struct __aligned(2)?

Should I include the snippets in the commit message, or is just
writing that sta_addr is __aligned(2) enough? (if it is in the
first case...)

It's enough to just state that the uses are properly aligned
as long as you looked and understand that it's required.


Ok, thank you.

I looked at it and understand that it's required.
But, as mentioned, at second look I'm not sure about the union.

I guess I need to read a little more about the alignment of unions.

For now I will resend the series without this patch.
I don't feel comfortable with sending something I don't fully understand, yet.

Michael