lkml.org 
[lkml]   [2019]   [May]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 022/113] mac80211: fix memory accounting with A-MSDU aggregation
    Date
    [ Upstream commit eb9b64e3a9f8483e6e54f4e03b2ae14ae5db2690 ]

    skb->truesize can change due to memory reallocation or when adding extra
    fragments. Adjust fq->memory_usage accordingly

    Signed-off-by: Felix Fietkau <nbd@nbd.name>
    Acked-by: Toke Høiland-Jørgensen <toke@redhat.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    net/mac80211/tx.c | 3 +++
    1 file changed, 3 insertions(+)

    diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
    index 743cde66aaf62..2f726cde9998b 100644
    --- a/net/mac80211/tx.c
    +++ b/net/mac80211/tx.c
    @@ -3185,6 +3185,7 @@ static bool ieee80211_amsdu_aggregate(struct ieee80211_sub_if_data *sdata,
    u8 max_subframes = sta->sta.max_amsdu_subframes;
    int max_frags = local->hw.max_tx_fragments;
    int max_amsdu_len = sta->sta.max_amsdu_len;
    + int orig_truesize;
    __be16 len;
    void *data;
    bool ret = false;
    @@ -3218,6 +3219,7 @@ static bool ieee80211_amsdu_aggregate(struct ieee80211_sub_if_data *sdata,
    if (!head)
    goto out;

    + orig_truesize = head->truesize;
    orig_len = head->len;

    if (skb->len + head->len > max_amsdu_len)
    @@ -3272,6 +3274,7 @@ static bool ieee80211_amsdu_aggregate(struct ieee80211_sub_if_data *sdata,
    *frag_tail = skb;

    out_recalc:
    + fq->memory_usage += head->truesize - orig_truesize;
    if (head->len != orig_len) {
    flow->backlog += head->len - orig_len;
    tin->backlog_bytes += head->len - orig_len;
    --
    2.20.1


    \
     
     \ /
      Last update: 2019-05-15 14:09    [W:4.117 / U:0.452 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site