]> git.baikalelectronics.ru Git - kernel.git/commit
cfg80211/mac80211: assume CHECKSUM_COMPLETE includes SNAP
authorJohannes Berg <johannes.berg@intel.com>
Wed, 2 Feb 2022 08:49:36 +0000 (10:49 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Fri, 4 Feb 2022 15:23:19 +0000 (16:23 +0100)
commit3bdf8f0666778e513a39f3e07c5df34b1cd8107e
tree68356ae71ecf9a9e0c5d77df179b160d27c11f1b
parent2961b4236646423c80c474dfcc69ad816309e7df
cfg80211/mac80211: assume CHECKSUM_COMPLETE includes SNAP

There's currently only one driver that reports CHECKSUM_COMPLETE,
that is iwlwifi. The current hardware there calculates checksum
after the SNAP header, but only RFC 1042 (and some other cases,
but replicating the exact hardware logic for corner cases in the
driver seemed awkward.)

Newer generations of hardware will checksum _including_ the SNAP,
which makes things easier.

To handle that, simply always assume the checksum _includes_ the
SNAP header, which this patch does, requiring to first add it
for older iwlwifi hardware, and then remove it again later on
conversion.

Alternatively, we could have:

 1) Always assumed the checksum starts _after_ the SNAP header;
    the problem with this is that we'd have to replace the exact
    "what is the SNAP" check in iwlwifi that cfg80211 has.

 2) Made it configurable with some flag, but that seemed like too
    much complexity.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Link: https://lore.kernel.org/r/iwlwifi.20220202104617.230736e19e0e.I3e6745873585ad943c152fab9e23b5221f17a95f@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c
net/mac80211/rx.c
net/wireless/util.c