Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp3948926imm; Mon, 8 Oct 2018 12:09:30 -0700 (PDT) X-Google-Smtp-Source: ACcGV62m9yLdO8FlWk21fpvfB8HqzvE3aZbmfD5Q7syml7mJ4debBFPUGhEi0KAJvnpBbhsfW3EL X-Received: by 2002:a62:de05:: with SMTP id h5-v6mr26496687pfg.258.1539025770035; Mon, 08 Oct 2018 12:09:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1539025770; cv=none; d=google.com; s=arc-20160816; b=GvI2gi33d4mC8qJDDnjOeywaG89m54UdCIfINcwza5EDIKbCva9ocx7lVn3Ekd3XJi YwzZRkIhy8xrj7RVowuOZYqjukyz8KDPhgogsLn4K94dmU2gWU8omFvLgULzNZiTPOnk DPaqgYzH+KM7hQ6qkYAf9DkM50twV7HOt7U9WLwlxh1pxDwRF3FfgDxo+bzPa4BD7+tl fePm4Db7RQcXdwZmKbgz5715p+7IYumA2A2/XWkKYx+r/Dba3TAYx/tHxCO4b6LW0rpF Y/5hX5La1Fll8naOXDxMZUviuG9e3VrlhoiymkbxD88DDz5zJGBVd57NMsKuZm9b3VAD g1mQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=VW92/0pF18HvSwgpkqqoI/MDN2LTPJVsfzqLe76O818=; b=QN3Gscmg5wDWlb8jFH3ch9aHKwClS/Fr/jWIVTq1sBRUhvD0PaelBohR2MWW2T49fe XGIBBe9iWQrU/Xfknlnnban1LZt2KuXgBVd0DJwN3hFOOJFM6ZrACU29x0rTuKu9Hmgl NRbzfJD7Smo004FQvhEOuzzhGVlnE5YEFRoHmy0q52eH+YnScLwEWRwYR5hn3x24aaAM UOOIxgUM08G1d2Y9z+Yc6b18Xh3gS8j3A5RLyHaz+jqRhyoxUP5MIGynaPToXjP6F/91 H0UwgzPMCgvw8piER+q3ImtZHSjvCDy5h0wgfyGRpFrBNye0lvHdU1wG+CDyNPTc7D29 JS8g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=FCVxRaux; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e73-v6si18870028pfb.98.2018.10.08.12.09.14; Mon, 08 Oct 2018 12:09:30 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=FCVxRaux; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730069AbeJIByu (ORCPT + 99 others); Mon, 8 Oct 2018 21:54:50 -0400 Received: from mail.kernel.org ([198.145.29.99]:42344 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726441AbeJIBys (ORCPT ); Mon, 8 Oct 2018 21:54:48 -0400 Received: from localhost (ip-213-127-77-176.ip.prioritytelecom.net [213.127.77.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 200212087D; Mon, 8 Oct 2018 18:41:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1539024104; bh=qSYKPlZBeT2lObKkdblsCk2276OU2FRRnrqJE/535C8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FCVxRauxqDSx8z63YpHxMF+0MrkkKEqfviiPIhH1G3QvKi+v640pWR9bUnr2l2zZ9 KVC3HAXAeONlObm3bgdSh+R7bLBmnt0i5AtT5MS3fUe5IMYfxocWLF9S2bBIzxXlxb tbFRNqC1DW7t7ExuS/rJMNUcP04A4a5vmYPs8VUw= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Johannes Berg , Lorenzo Bianconi , Sasha Levin Subject: [PATCH 4.14 21/94] mac80211: always account for A-MSDU header changes Date: Mon, 8 Oct 2018 20:31:02 +0200 Message-Id: <20181008175606.048800057@linuxfoundation.org> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20181008175605.067676667@linuxfoundation.org> References: <20181008175605.067676667@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: Johannes Berg [ Upstream commit aa58acf325b4aadeecae2bfc90658273b47dbace ] In the error path of changing the SKB headroom of the second A-MSDU subframe, we would not account for the already-changed length of the first frame that just got converted to be in A-MSDU format and thus is a bit longer now. Fix this by doing the necessary accounting. It would be possible to reorder the operations, but that would make the code more complex (to calculate the necessary pad), and the headroom expansion should not fail frequently enough to make that worthwhile. Fixes: 6e0456b54545 ("mac80211: add A-MSDU tx support") Signed-off-by: Johannes Berg Acked-by: Lorenzo Bianconi Signed-off-by: Johannes Berg Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- net/mac80211/tx.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c @@ -3188,7 +3188,7 @@ static bool ieee80211_amsdu_aggregate(st if (!ieee80211_amsdu_realloc_pad(local, skb, sizeof(rfc1042_header) + 2 + pad)) - goto out; + goto out_recalc; ret = true; data = skb_push(skb, ETH_ALEN + 2); @@ -3205,11 +3205,13 @@ static bool ieee80211_amsdu_aggregate(st head->data_len += skb->len; *frag_tail = skb; - flow->backlog += head->len - orig_len; - tin->backlog_bytes += head->len - orig_len; - - fq_recalc_backlog(fq, tin, flow); +out_recalc: + if (head->len != orig_len) { + flow->backlog += head->len - orig_len; + tin->backlog_bytes += head->len - orig_len; + fq_recalc_backlog(fq, tin, flow); + } out: spin_unlock_bh(&fq->lock);