Make it possibly for drivers to adjust the default mat_mtu by storing it in the hardware struct. Signed-off-by: Wen Gong <wgong@xxxxxxxxxxxxxx> --- include/net/mac80211.h | 3 +++ net/mac80211/iface.c | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/include/net/mac80211.h b/include/net/mac80211.h index d26da01..8545b03 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h @@ -2454,6 +2454,8 @@ enum ieee80211_hw_flags { * * @weight_multiplier: Driver specific airtime weight multiplier used while * refilling deficit of each TXQ. + * + * @max_mtu: the max mtu could be set. */ struct ieee80211_hw { struct ieee80211_conf conf; @@ -2491,6 +2493,7 @@ struct ieee80211_hw { u8 max_nan_de_entries; u8 tx_sk_pacing_shift; u8 weight_multiplier; + u32 max_mtu; }; static inline bool _ieee80211_hw_check(struct ieee80211_hw *hw, diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c index 06aac0a..00c33e6 100644 --- a/net/mac80211/iface.c +++ b/net/mac80211/iface.c @@ -1877,7 +1877,10 @@ int ieee80211_if_add(struct ieee80211_local *local, const char *name, /* MTU range: 256 - 2304 */ ndev->min_mtu = 256; - ndev->max_mtu = IEEE80211_MAX_DATA_LEN; + if (local->hw.max_mtu) + ndev->max_mtu = local->hw.max_mtu; + else + ndev->max_mtu = IEEE80211_MAX_DATA_LEN; ret = register_netdevice(ndev); if (ret) { -- 1.9.1