• Johannes Berg's avatar
    mac80211: always allocate struct ieee802_11_elems · 5d24828d
    Johannes Berg authored
    As the 802.11 spec evolves, we need to parse more and more
    elements. This is causing the struct to grow, and we can no
    longer get away with putting it on the stack.
    
    Change the API to always dynamically allocate and return an
    allocated pointer that must be kfree()d later.
    
    As an alternative, I contemplated a scheme whereby we'd say
    in the code which elements we needed, e.g.
    
        DECLARE_ELEMENT_PARSER(elems,
                               SUPPORTED_CHANNELS,
                               CHANNEL_SWITCH,
                               EXT(KEY_DELIVERY));
    
        ieee802_11_parse_elems(..., &elems, ...);
    
    and while I think this is possible and will save us a lot
    since most individual places only care about a small subset
    of the elements, it ended up being a bit more work since a
    lot of places do the parsing and then pass the struct to
    other functions, sometimes with multiple levels.
    
    Link: https://lore.kernel.org/r/20210920154009.26caff6b5998.I05ae58768e990e611aee8eca8abefd9d7bc15e05@changeidSigned-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    5d24828d
scan.c 38.8 KB