Received: by 2002:a5d:9c59:0:0:0:0:0 with SMTP id 25csp2271820iof; Wed, 8 Jun 2022 01:03:38 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwVsTZuEB0dfkRCiLEL1plZVDn9Nd/LGkgtg/zxDJIARk2ZCLkX8lb5q/tZtmkI3/aQF3Lo X-Received: by 2002:a17:902:e552:b0:163:6a5e:4e0d with SMTP id n18-20020a170902e55200b001636a5e4e0dmr33304654plf.66.1654675418683; Wed, 08 Jun 2022 01:03:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1654675418; cv=none; d=google.com; s=arc-20160816; b=F+MeVo75ZmHIqaucpCCHzlSBpnGibUVBCrkbSO8N/QeOW4FjwsFohPPgSEZGpF+wU8 7RVAZi1FGOArrljmgbUZOIQmXLDplmSE6NlWOm0uMRQR1XDCYjPsClZRE+sZpYqYe77W j/WxQllXH3SLuZb8VAK/nxVVfTSNwN9MVCrS+0tbXBlhxf7vv3CNAtk8S3pQm9fvnm9T svg+dYh/g068VzGLV4DVUh80Az7TwczSQmYjH03Wvc7zdg3WB4C7uxZ/2m6F+DV7X3f0 w2sc75ieswq9VWvb0s3zIkk2Gvl/VdfkzQN6acv0hoXaSPHLXbYwd+vQX+R7xRylkdAP xlWg== 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=HTU5r1IV+jCSnTD7WDa9/7Z1o0adSZOuWefLRaWKc6U=; b=1E0LdsXzYOrvMX/3hsAV5HEIQbXhEt30d8YwM1E7nDfWCIT694KZTpB4s6um64LyA8 E43iGsQ4aOfseRm54Zpe3Df3wkoFZ6LK30S+59Q+esruYrr7D4ksR6NZq0MKUoZI2QZl mfoLflTjnQwMHlojNUvhztbZ36fRNwC6xR3FqezjO9lgruVbOAbYedRGUBzkfGHfwOMy IkR3Dq8HVXF0bXP4C1sJa7jsNHdf+A8ZGxwn3pBh48yP2XcnM7g26Ek1ROnJ5vpdivP2 b/Q9NwejTd/QuCc/GS6KfP58xgXY6JajykDaoo8flTfT0JD/7sTvH9q1IknkQlF6b4nk wAXQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=vNMCLshv; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 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. [23.128.96.19]) by mx.google.com with ESMTPS id o10-20020a17090aeb8a00b001e2c1e7fe25si30072344pjy.113.2022.06.08.01.03.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Jun 2022 01:03:38 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=vNMCLshv; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 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 C424A2044C6; Wed, 8 Jun 2022 00:32:46 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1384491AbiFGWUc (ORCPT + 99 others); Tue, 7 Jun 2022 18:20:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47286 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1380242AbiFGVP4 (ORCPT ); Tue, 7 Jun 2022 17:15:56 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8EF8D158757; Tue, 7 Jun 2022 11:54:49 -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 3D685617A0; Tue, 7 Jun 2022 18:54:49 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 499C9C385A2; Tue, 7 Jun 2022 18:54:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1654628088; bh=Kp8VJzKJlpWZkHGsD8IDe+JQQwNyAiTWjYeGgo66Je0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=vNMCLshvimHvtI4NzsoRR/euyfOaUvsZ3YbFY5BFfOBJiq90fQ7pPqNFkuR+bcfwo GU+2Qx5ToTgHnUrxbo0gPsoikhGJVMGlftQvRvSCDtWEHOF8H6rWUSeLoMhEeWLjcu f63icdywshcO3ELde8GPkRK1TgYiq505ozyERxw0= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Alex Elder , "David S. Miller" , Sasha Levin Subject: [PATCH 5.18 195/879] net: ipa: ignore endianness if there is no header Date: Tue, 7 Jun 2022 18:55:13 +0200 Message-Id: <20220607165008.504526030@linuxfoundation.org> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220607165002.659942637@linuxfoundation.org> References: <20220607165002.659942637@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 [ Upstream commit 332ef7c814bdd60f08d0d9013d0e1104798b2d23 ] If we program an RX endpoint to have no header (header length is 0), header-related endpoint configuration values are meaningless and are ignored. The only case we support that defines a header is QMAP endpoints. In ipa_endpoint_init_hdr_ext() we set the endianness mask value unconditionally, but it should not be done if there is no header (meaning it is not configured for QMAP). Set the endianness conditionally, and rearrange the logic in that function slightly to avoid testing the qmap flag twice. Delete an incorrect comment in ipa_endpoint_init_aggr(). Signed-off-by: Alex Elder Signed-off-by: David S. Miller Signed-off-by: Sasha Levin --- drivers/net/ipa/ipa_endpoint.c | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/drivers/net/ipa/ipa_endpoint.c b/drivers/net/ipa/ipa_endpoint.c index 53764f3c0c7e..55322800ba58 100644 --- a/drivers/net/ipa/ipa_endpoint.c +++ b/drivers/net/ipa/ipa_endpoint.c @@ -587,19 +587,23 @@ static void ipa_endpoint_init_hdr_ext(struct ipa_endpoint *endpoint) struct ipa *ipa = endpoint->ipa; u32 val = 0; - val |= HDR_ENDIANNESS_FMASK; /* big endian */ - - /* A QMAP header contains a 6 bit pad field at offset 0. The RMNet - * driver assumes this field is meaningful in packets it receives, - * and assumes the header's payload length includes that padding. - * The RMNet driver does *not* pad packets it sends, however, so - * the pad field (although 0) should be ignored. - */ - if (endpoint->data->qmap && !endpoint->toward_ipa) { - val |= HDR_TOTAL_LEN_OR_PAD_VALID_FMASK; - /* HDR_TOTAL_LEN_OR_PAD is 0 (pad, not total_len) */ - val |= HDR_PAYLOAD_LEN_INC_PADDING_FMASK; - /* HDR_TOTAL_LEN_OR_PAD_OFFSET is 0 */ + if (endpoint->data->qmap) { + /* We have a header, so we must specify its endianness */ + val |= HDR_ENDIANNESS_FMASK; /* big endian */ + + /* A QMAP header contains a 6 bit pad field at offset 0. + * The RMNet driver assumes this field is meaningful in + * packets it receives, and assumes the header's payload + * length includes that padding. The RMNet driver does + * *not* pad packets it sends, however, so the pad field + * (although 0) should be ignored. + */ + if (!endpoint->toward_ipa) { + val |= HDR_TOTAL_LEN_OR_PAD_VALID_FMASK; + /* HDR_TOTAL_LEN_OR_PAD is 0 (pad, not total_len) */ + val |= HDR_PAYLOAD_LEN_INC_PADDING_FMASK; + /* HDR_TOTAL_LEN_OR_PAD_OFFSET is 0 */ + } } /* HDR_PAYLOAD_LEN_INC_PADDING is 0 */ @@ -759,8 +763,6 @@ static void ipa_endpoint_init_aggr(struct ipa_endpoint *endpoint) close_eof = rx_data->aggr_close_eof; val |= aggr_sw_eof_active_encoded(version, close_eof); - - /* AGGR_HARD_BYTE_LIMIT_ENABLE is 0 */ } else { val |= u32_encode_bits(IPA_ENABLE_DEAGGR, AGGR_EN_FMASK); -- 2.35.1