Received: by 2002:a5d:9c59:0:0:0:0:0 with SMTP id 25csp103415iof; Sun, 5 Jun 2022 22:28:39 -0700 (PDT) X-Google-Smtp-Source: ABdhPJye2qmY9St6dCeFboCmecJIyQ7bTyClNG9pSvVM6EnycHnPKgVVy3Rdp5Q9B9eU7cGt37Xr X-Received: by 2002:a17:90b:1c87:b0:1ca:f4e:4fbe with SMTP id oo7-20020a17090b1c8700b001ca0f4e4fbemr59410602pjb.159.1654493319260; Sun, 05 Jun 2022 22:28:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1654493319; cv=none; d=google.com; s=arc-20160816; b=YJ0zDuVoQd5T0wrht3qGNpNDXp/TH18tqJ9edjW88Fyb/ZWk83u6HDL8ir5Jd6urbc uX9azEpfspH/XMhEMrumSU8pv1qqFaHBWJXhHCCsljiec78m8zozOepfdSxWkwpt2TlW HPbzOYsGAfTwaXjFNe0Bs17KAwKm11nIQXmOLSaqOuOvdEufF/cEOX4+QFVU3bEqsZIA UTcIhn1peYvY5JgPpgiVF2f3f/nxGr6uO+wsOnI2gkyq0bruPMSua7RPLx0U7evfes/p 2m4HPjh+YGa/xqTK267aZrMsQyLCuE+/H0sWILGp7S27F2oyjnDDcJstYE8+Xi9K2tlO QmcA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=QCM2/uNbxMJcrkftkIlAelCNPfl69+E3Tg3bHlgrlmI=; b=iRItSyYHVxA2fSPBtXHQjtJ4A7b6Rt0HElCOfgHQlRYHAyTW2To/s+ND0v+Zop/jM/ kx08tUfV93Z8wM5Y2L8d7pije0Hu08JiJE+pM2uLuKDFGK+ZGOMmU8WC9iIUq0U8xn1l 6oIIPJrmxH6uurO1w7d5BhuIlSs5bF9HhLHgj0H8Pbu75I/PvccSM6YA184QVVttZoD6 jNYKdH1CQp4ssxstXdi5aH8mve69u/BtBIH6m3evRgqW0qsgdhSR4z6dyHPCZYZ4lk8k pVnur21VBcll7pmb0OeY9iQRboDwnWuieXbGuT81iXaZZqma7BGWc/Ik/25P07ruQOVl 6+QQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=wnD8Ug9T; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id na2-20020a17090b4c0200b001e4dd12a0a7si25291349pjb.165.2022.06.05.22.28.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 05 Jun 2022 22:28:39 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=wnD8Ug9T; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 331A01F2335; Sun, 5 Jun 2022 21:29:50 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1343727AbiFCR5t (ORCPT + 99 others); Fri, 3 Jun 2022 13:57:49 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46608 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1346678AbiFCRv0 (ORCPT ); Fri, 3 Jun 2022 13:51:26 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BBE9C57142; Fri, 3 Jun 2022 10:49:08 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 3276760F3E; Fri, 3 Jun 2022 17:49:08 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 415FEC385A9; Fri, 3 Jun 2022 17:49:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1654278547; bh=utL4tx2DU7lDNCDqgGRF69/Bgz6BQ0QQnq+uQiKu+Ts=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=wnD8Ug9TBwCV2MpRomjiBKJfzEo5rCVe+o8Qa+IuAKamgrCtA7rZIa+4rG7Fs4XNC hiT4xmM0gj1OemoFoz0NPFF1zw6XiY8BKhzW2IqjxGN3CYoUD+Gs3rdijhZyXxcUAP yTzeX4+tWQgZnlrPVXi/9mG2v2qbMiujfXxCRNqs= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Alex Elder , "David S. Miller" Subject: [PATCH 5.15 15/66] net: ipa: compute proper aggregation limit Date: Fri, 3 Jun 2022 19:42:55 +0200 Message-Id: <20220603173821.104884211@linuxfoundation.org> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220603173820.663747061@linuxfoundation.org> References: <20220603173820.663747061@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-3.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Alex Elder commit c5794097b269f15961ed78f7f27b50e51766dec9 upstream. The aggregation byte limit for an endpoint is currently computed based on the endpoint's receive buffer size. However, some bytes at the front of each receive buffer are reserved on the assumption that--as with SKBs--it might be useful to insert data (such as headers) before what lands in the buffer. The aggregation byte limit currently doesn't take into account that reserved space, and as a result, aggregation could require space past that which is available in the buffer. Fix this by reducing the size used to compute the aggregation byte limit by the NET_SKB_PAD offset reserved for each receive buffer. Signed-off-by: Alex Elder Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- drivers/net/ipa/ipa_endpoint.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) --- a/drivers/net/ipa/ipa_endpoint.c +++ b/drivers/net/ipa/ipa_endpoint.c @@ -722,13 +722,15 @@ static void ipa_endpoint_init_aggr(struc if (endpoint->data->aggregation) { if (!endpoint->toward_ipa) { + u32 buffer_size; bool close_eof; u32 limit; val |= u32_encode_bits(IPA_ENABLE_AGGR, AGGR_EN_FMASK); val |= u32_encode_bits(IPA_GENERIC, AGGR_TYPE_FMASK); - limit = ipa_aggr_size_kb(IPA_RX_BUFFER_SIZE); + buffer_size = IPA_RX_BUFFER_SIZE - NET_SKB_PAD; + limit = ipa_aggr_size_kb(buffer_size); val |= aggr_byte_limit_encoded(version, limit); limit = IPA_AGGR_TIME_LIMIT;