Received: by 2002:a6b:500f:0:0:0:0:0 with SMTP id e15csp6195353iob; Tue, 10 May 2022 12:32:02 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzPNpjV4V/boKXo3K5JxicSLzaS4vn7ImS3g12D0dcZ/vPqsMvFX+z4TJjmA2owAyDhXMkX X-Received: by 2002:a17:902:aa06:b0:158:f13b:4859 with SMTP id be6-20020a170902aa0600b00158f13b4859mr21926510plb.141.1652211122619; Tue, 10 May 2022 12:32:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1652211122; cv=none; d=google.com; s=arc-20160816; b=inpknVn7DSnonwkuBzYUJebyXeb1xzDoh7ty8jUImlsU0jfa8Tw1rNfSWJbBHaeOB2 cwqaUxnI1FGHQ2Wk6rU9Fl2WBhXNuz1q37pBWlsCLiGmN9ZpVur+ej9jAlFTedgQOBgz +ejmD9oHQoRPnemxkF10wBUGDkiklscNXYW7Y0MBDrgh6xJE2v02i8EtSnzWP5KiFgx7 JbUe8UxG/NfTYDn+oWOSu6CrZKFFVU/ZY4fMqxJgk4KISJKUmxvk+BFgL7K4AUiWNsLk bEyMIBP47+CeYsKBGTw1ZYQqnt+TrbGt4gTsUKOrX4NWxfeJRng/S/fw93KPvRgjK6Vx pYxg== 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=6yaRqWkwa1nfqzHsp06wMgFGAtGATgseCgCiuGa1uDc=; b=TRjGmoqpJqQ3E3UV9oMTi1s/tPv0eZ1f8o+1hJKTc3c82MbJE/A1g6Ey8073f5xT6w fI4FW5deKagL0TZGsxHvCYKqKoz5v2+73oUmG0X6GTW2/83CIucenBPoNKZGb+S1qpN6 7HC9RBu5EUq0pk/0HCebPZFQc3yn6543W2Dz22pn8VFmxkKIZplgbZL/yqhKwENRNs69 yChghRT2iFl3rRHzM7arykBldvyPzq6682xYBQOBYX5AF1dt0LLWHRzQSOyTmQD8gKKt ekxr5b2KhpP6gnF4MfikuIcAQTgfyS5HXaoZD5R2PnjCr3Cql18e5uInVfdErv3434Nx Y/9A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=Tty34Ops; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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 out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id a5-20020a056a000c8500b0050d80e4935fsi19377394pfv.256.2022.05.10.12.31.44; Tue, 10 May 2022 12:32:02 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=Tty34Ops; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241806AbiEJORC (ORCPT + 99 others); Tue, 10 May 2022 10:17:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53038 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244692AbiEJNq4 (ORCPT ); Tue, 10 May 2022 09:46:56 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5906514CB68; Tue, 10 May 2022 06:31:55 -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 6F1E760B12; Tue, 10 May 2022 13:31:54 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7D041C385A6; Tue, 10 May 2022 13:31:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1652189513; bh=X0ixFeNEvURfQKTkFaXnL+ELjrFBVzXxY/dWtVPiXhY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Tty34OpsNym02u0C2pmSh8lis5l/8IZ4R8gk+c98QtOJBgAuP4OUHoDdbmbjFBBWj ML+KdAHwDhh1OHD0vFZ+aUJlOGGfXxfMHJB51mrl30oEcmq9s2A4aa2OIEECMnxncz fJ/MXlNZOFBQKHbQEz9OGTnniwLnq0fxuRfyvT3g= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Marc Dionne , David Howells , Xin Long , Vadim Fedorenko , "David S. Miller" , linux-afs@lists.infradead.org Subject: [PATCH 5.15 074/135] rxrpc: Enable IPv6 checksums on transport socket Date: Tue, 10 May 2022 15:07:36 +0200 Message-Id: <20220510130742.534618150@linuxfoundation.org> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220510130740.392653815@linuxfoundation.org> References: <20220510130740.392653815@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=-7.7 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham 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: David Howells commit 39cb9faa5d46d0d0694f4b594ef905f517600c8e upstream. AF_RXRPC doesn't currently enable IPv6 UDP Tx checksums on the transport socket it opens and the checksums in the packets it generates end up 0. It probably should also enable IPv6 UDP Rx checksums and IPv4 UDP checksums. The latter only seem to be applied if the socket family is AF_INET and don't seem to apply if it's AF_INET6. IPv4 packets from an IPv6 socket seem to have checksums anyway. What seems to have happened is that the inet_inv_convert_csum() call didn't get converted to the appropriate udp_port_cfg parameters - and udp_sock_create() disables checksums unless explicitly told not too. Fix this by enabling the three udp_port_cfg checksum options. Fixes: 1a9b86c9fd95 ("rxrpc: use udp tunnel APIs instead of open code in rxrpc_open_socket") Reported-by: Marc Dionne Signed-off-by: David Howells Reviewed-by: Xin Long Reviewed-by: Marc Dionne cc: Vadim Fedorenko cc: David S. Miller cc: linux-afs@lists.infradead.org Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- net/rxrpc/local_object.c | 3 +++ 1 file changed, 3 insertions(+) --- a/net/rxrpc/local_object.c +++ b/net/rxrpc/local_object.c @@ -117,6 +117,7 @@ static int rxrpc_open_socket(struct rxrp local, srx->transport_type, srx->transport.family); udp_conf.family = srx->transport.family; + udp_conf.use_udp_checksums = true; if (udp_conf.family == AF_INET) { udp_conf.local_ip = srx->transport.sin.sin_addr; udp_conf.local_udp_port = srx->transport.sin.sin_port; @@ -124,6 +125,8 @@ static int rxrpc_open_socket(struct rxrp } else { udp_conf.local_ip6 = srx->transport.sin6.sin6_addr; udp_conf.local_udp_port = srx->transport.sin6.sin6_port; + udp_conf.use_udp6_tx_checksums = true; + udp_conf.use_udp6_rx_checksums = true; #endif } ret = udp_sock_create(net, &udp_conf, &local->socket);