Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp485273pxb; Wed, 3 Mar 2021 08:03:36 -0800 (PST) X-Google-Smtp-Source: ABdhPJy9zZThHiCo8vltSUJ4k+eI/a8BeN3usl6Wpc/QR0zOpaCXLKYJ7pfd8ZKDkM1wR07cf1jV X-Received: by 2002:a17:906:4117:: with SMTP id j23mr5476510ejk.10.1614787415060; Wed, 03 Mar 2021 08:03:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1614787415; cv=none; d=google.com; s=arc-20160816; b=Fccvn5X70Uyrq4ET4/pT6LBeav5xLCNU+kPFSlte1AgwffIPTv80EHaAXd1+7CClM1 Yd/F1wrnwSZ0BSCKMvkDz12An2H6DgQfzYNayp7J5agLmbhdfpWVz8Q+0R9QLfIb/pB0 EZZQytUG+m1qURriTqptcuqA8P8xjeA4gJdmIxn90Ue62vWZ1+vU6HwZ1i4O5xZ3DlHw PTfjY3dYTn2HyA3aXunOaMpCg316jHVzvNxy6JRDjwMqvdX4wxSzg+C7iwZ9CRJetT7s BlCIyhi1Go5H/CbR+JimaP8YyVpVtaOYzHtMuQ6wXnoUK5E4HrpjA5qwzfsdeMHvkA+U JfVA== 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=ij5TAtBaIzy1XI5uaqUThAkaorSlgEWLGJ3NRXaehIk=; b=QyeVeg2Af8RChpsw/WozJejV4I8eXudr3rTDj/l8oEbnugA0z7S3ureRTAaojO5tCn +lZ/UVVKV4y2FcnXyiXh8ilcn34B2RrADquZkDfr7MKqsBSpztiZF9xB7TJD5l8hjOX6 Z3kmF6Z4RvCLa9k3V1gErwMt8AHsGBqTWKXL4STWfNKo2QkiHnSsXPhnFnsgWHipd2fu cgamc+dffJHE0w3MrqduytqU4Bkw0PvwYfkEolxK53XYztBVr8z4hiNI3anjbtjDq7Xq jHKvKmM4+XSuQ2UJx9n9AXZZwAt7Xw86IJvsdj5tVIGlvQ7rQ/htxXB4d718RD8MxXyA F3LA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=cxbmSInm; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.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 vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id gx21si2203390ejc.503.2021.03.03.08.02.50; Wed, 03 Mar 2021 08:03:35 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=cxbmSInm; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.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: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345671AbhCAX1E (ORCPT + 99 others); Mon, 1 Mar 2021 18:27:04 -0500 Received: from mail.kernel.org ([198.145.29.99]:54156 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234860AbhCASDg (ORCPT ); Mon, 1 Mar 2021 13:03:36 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id ADB356511E; Mon, 1 Mar 2021 17:02:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1614618173; bh=452moKIc6TwuzRdS9Pe3ofv+4LHyBGggXPdSMhgEIeI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cxbmSInmsHsj3vXPtvhpoviSI0IOyRMAYo+gWB0u+JFWnH5rCt4iR585FPRqzo0yz gR3t/YTsCmRubHLrgYBt5rYwv8GlNYISSfJbWRUgRI4oZ4F2g7vP2FONXV/Lg8vLhi 1Vch0KjJPTXz2Q7pMsgNHcqd7E7cQUBmS/alOUCU= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, "Jason A. Donenfeld" , Shannon Nelson , "David S. Miller" Subject: [PATCH 5.4 333/340] sunvnet: use icmp_ndo_send helper Date: Mon, 1 Mar 2021 17:14:37 +0100 Message-Id: <20210301161104.682465910@linuxfoundation.org> X-Mailer: git-send-email 2.30.1 In-Reply-To: <20210301161048.294656001@linuxfoundation.org> References: <20210301161048.294656001@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Jason A. Donenfeld commit 67c9a7e1e3ac491b5df018803639addc36f154ba upstream. Because sunvnet is calling icmp from network device context, it should use the ndo helper so that the rate limiting applies correctly. While we're at it, doing the additional route lookup before calling icmp_ndo_send is superfluous, since this is the job of the icmp code in the first place. Signed-off-by: Jason A. Donenfeld Cc: Shannon Nelson Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- drivers/net/ethernet/sun/sunvnet_common.c | 23 ++++------------------- 1 file changed, 4 insertions(+), 19 deletions(-) --- a/drivers/net/ethernet/sun/sunvnet_common.c +++ b/drivers/net/ethernet/sun/sunvnet_common.c @@ -1353,27 +1353,12 @@ sunvnet_start_xmit_common(struct sk_buff if (vio_version_after_eq(&port->vio, 1, 3)) localmtu -= VLAN_HLEN; - if (skb->protocol == htons(ETH_P_IP)) { - struct flowi4 fl4; - struct rtable *rt = NULL; - - memset(&fl4, 0, sizeof(fl4)); - fl4.flowi4_oif = dev->ifindex; - fl4.flowi4_tos = RT_TOS(ip_hdr(skb)->tos); - fl4.daddr = ip_hdr(skb)->daddr; - fl4.saddr = ip_hdr(skb)->saddr; - - rt = ip_route_output_key(dev_net(dev), &fl4); - if (!IS_ERR(rt)) { - skb_dst_set(skb, &rt->dst); - icmp_send(skb, ICMP_DEST_UNREACH, - ICMP_FRAG_NEEDED, - htonl(localmtu)); - } - } + if (skb->protocol == htons(ETH_P_IP)) + icmp_ndo_send(skb, ICMP_DEST_UNREACH, ICMP_FRAG_NEEDED, + htonl(localmtu)); #if IS_ENABLED(CONFIG_IPV6) else if (skb->protocol == htons(ETH_P_IPV6)) - icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, localmtu); + icmpv6_ndo_send(skb, ICMPV6_PKT_TOOBIG, 0, localmtu); #endif goto out_dropped; }