[PATCH v3 2/2] mac80211: do intersection with he mcs and nss set of peer and own
Johannes Berg
johannes at sipsolutions.net
Fri Oct 1 00:01:02 PDT 2021
On Fri, 2021-10-01 at 09:32 +0300, Kalle Valo wrote:
> >
> > Add "__packed" before the "__le16 *" should solve this warning by my
> > understand like this:
[snip]
> >
> > -static void ieee80211_he_mcs_disable(__le16 *he_mcs)
> > +static void ieee80211_he_mcs_disable(__packed __le16 *he_mcs)
> >
[snip]
> I don't know what Johannes thinks, but to me that looks like an ugly
> hack. Wouldn't use get_unaligned() or similar be cleaner?
>
Well, then we've have to pass an untyped pointer (void *), which I guess
is fine? Since we do all kinds of le16_to_cpu() with it anyway, that'd
just become get_unaligned_le16().
That's probably the better choice.
But regardless, would the __packed even *work*? __attribute__((packed))
is documented as:
This attribute, attached to a struct, union, or C++ class type
definition, specifies that each of its members (other than zero-width
bit-fields) is placed to minimize the memory required. This is
equivalent to specifying the packed attribute on each of the members.
When attached to an enum definition, the packed attribute indicates that
the smallest integral type should be used. Specifying the -fshort-enums
flag on the command line is equivalent to specifying the packed
attribute on all enum definitions.
[snip example]
You may only specify the packed attribute on the definition of an enum,
struct, union, or class, not on a typedef that does not also define the
enumerated type, structure, union, or class.
So I'm not convinced it would actually *do* anything here at all, in the
proposed context?
johannes
More information about the ath11k
mailing list