mac80211: allow drivers to support S/G

If drivers want to support S/G (really just gather DMA on TX) then
we can now easily support this on the fast-xmit path since it just
needs to write to the ethernet header (and already has a check for
that being possible.)

However, disallow this on the regular TX path (which has to handle
fragmentation, software crypto, etc.) by calling skb_linearize().

Also allow the related HIGHDMA since that's not interesting to the
code in mac80211 at all anyway.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
Johannes Berg
2015-04-13 16:58:25 +02:00
parent 2d981fddb0
commit 680a0daba7
3 changed files with 9 additions and 3 deletions

View File

@@ -840,7 +840,7 @@ int ieee80211_register_hw(struct ieee80211_hw *hw)
/* Only HW csum features are currently compatible with mac80211 */
feature_whitelist = NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM |
NETIF_F_HW_CSUM;
NETIF_F_HW_CSUM | NETIF_F_SG | NETIF_F_HIGHDMA;
if (WARN_ON(hw->netdev_features & ~feature_whitelist))
return -EINVAL;