From patchwork Thu Feb 14 13:23:57 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Linus Walleij X-Patchwork-Id: 158385 Delivered-To: patch@linaro.org Received: by 2002:a02:48:0:0:0:0:0 with SMTP id 69csp1366685jaa; Thu, 14 Feb 2019 05:24:31 -0800 (PST) X-Google-Smtp-Source: AHgI3IYzknldgL8Nbk/nSzfhkAYY9Ie47XQ1LCMN2sXTtFD18QiiC8ov5/CwE3ivb1UnJHGWysmf X-Received: by 2002:a62:9683:: with SMTP id s3mr4042805pfk.60.1550150671173; Thu, 14 Feb 2019 05:24:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1550150671; cv=none; d=google.com; s=arc-20160816; b=foGtaaqstvvspopws8aXwZ1kuRsc+Cx11CjDh5HCr7p+ewdY7XcC/i4W/Rvf3WzSbU /A1JvunwWfj1TMtzKrWWsy4eEBPlinj48k1Rs6N5nHRME0cHY4MrzEyEXrA5lnPRWiCo NDWxKnSwfFlCpGMc0Sb1zFTTjAb7F/0Shp1sfoR2hcSod8jVgqcdgZzl1Srg6UnYKUzx lqfaMzFiBz3W6ulYhRMLKuYOjVf5aSvszk25dGJdYtSU2+EuuFtmLQ+sB5uKmUtbi+wF bOKbGCfz759CJMj+IB2zd1XiiWCvXU0uOnw+jSIvJxA8h0YiKj9F2f2VzrMFG+AttbI4 28fg== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=6lEn1qW7pYW+OZToomqBDAHe2USzpvvbyIBlrI1EdZ4=; b=RK7lEd9+GE3xeRI4zdS2R5+DPDMReB81O2v41ivRy2eRRcGo3pA2BknD6c8MH+q5Im I8RVMWOu+le9LqMvd4MTpFwYiCdjRdLbG7zTyvRJnOTkP3v6jFrh1fK8oolawipdAvpL 9MPxhzYWRfssuydSMXTyJVUngq8RmtyDlMzulXJs3E2Lx9YKJ26PPbHNayz2hK4TfCXG 8AW6B/TTkZZctqjVYRi95TJVPj6F0sC2TubDJh+nd0FD4z1ZOtojad+NzExt6y46t5/V m7bb3nX6B8TWMVy5xe12UgxcA0A1zkkpX5CntncWA+P+ZGyS/PflPh69x1YDwgyJVRGI SaAQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=mGnzkDzZ; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 36si2748782plc.250.2019.02.14.05.24.30; Thu, 14 Feb 2019 05:24:31 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of stable-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=@linaro.org header.s=google header.b=mGnzkDzZ; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2438859AbfBNNYa (ORCPT + 15 others); Thu, 14 Feb 2019 08:24:30 -0500 Received: from mail-lf1-f65.google.com ([209.85.167.65]:46281 "EHLO mail-lf1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2394723AbfBNNYa (ORCPT ); Thu, 14 Feb 2019 08:24:30 -0500 Received: by mail-lf1-f65.google.com with SMTP id f5so4494936lfc.13 for ; Thu, 14 Feb 2019 05:24:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=6lEn1qW7pYW+OZToomqBDAHe2USzpvvbyIBlrI1EdZ4=; b=mGnzkDzZ6pvV290sm2JwLH3N8v/HHBtsAKyV4FqvCk9CyPT3SOSRaDcCrbKHwSjm0J KIHWqI4Ckm7rH1wmL7Eczj2g9leGT3BzGNt2HqYFyBh0CRFd4JHLxhTLPRjsatrCG0JC JDdSd108QP3cwCUMMDiOrwtq7ONQELZpaIdTRal/VlOW6GnxAHzqGABr+tPpF45TPIRc 99z1C9LX42bV5mydHWvw+04zaPW8RYPa4NW49yFdVo7MVn85AVAM5DiHPEXimIkPgp4A cfjfYv9GzqZN39M4jl1xfi0x5iAAh6k3ha01Bw9pvvasVHV3npxOP8qQs2P+Wb9/Rxgb u/fg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=6lEn1qW7pYW+OZToomqBDAHe2USzpvvbyIBlrI1EdZ4=; b=BVAB+dVj8+GMxgUgT6a7E7SqFQfDMUXqCx+iCISFAelt0iWeTv+obL0rZsDLhXmB3F laDwlzhzg+4hey3EHU2oVDTOjYEzNZbvDqLqVpPoTyxdyfhY0QJAtL89FPtQfCP0rJmM MA341OJRpfVXxm8Rk9+2R12nOuQ+sks9ZA68xri/9lbNNaue6Xv4kvMXr1SIhogbSNLR ehGDgWAjAJ66E6iHATOAChGMuUGpGDh1e0Wakwwm1o6pdgjAzzBNaqEuZEEgUFXE6ZwT y2TrdOkiInoIF1RHxH8+MhmTIYD3m9loGwpZPOye7iZPHJNKQ/7bFI/KL62B2bMou5FT gO1w== X-Gm-Message-State: AHQUAubnvHwWz4m3JJP4Ogr3upzzuXJAHvMVmoNpkSBfMglVmUFno3h0 vcbyyAqou3EiWAHtRI6fJLak+Q== X-Received: by 2002:ac2:5205:: with SMTP id a5mr2377407lfl.135.1550150667790; Thu, 14 Feb 2019 05:24:27 -0800 (PST) Received: from genomnajs.ideon.se ([85.235.10.227]) by smtp.gmail.com with ESMTPSA id k13-v6sm427752ljg.84.2019.02.14.05.24.22 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 14 Feb 2019 05:24:26 -0800 (PST) From: Linus Walleij To: Greg Kroah-Hartman , stable@vger.kernel.org, openwrt-devel@lists.openwrt.org Cc: "David S . Miller" , Eric Dumazet , Liping Zhang , John Youn , =?utf-8?b?UmFmYcWCIE1pxYJlY2tp?= , James Hughes , Felix Fietkau , Woojung Huh , Linus Walleij Subject: [PATCH 2/8 v3] smsc95xx: Use skb_cow_head to deal with cloned skbs Date: Thu, 14 Feb 2019 14:23:57 +0100 Message-Id: <20190214132403.10687-3-linus.walleij@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190214132403.10687-1-linus.walleij@linaro.org> References: <20190214132403.10687-1-linus.walleij@linaro.org> MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: James Hughes commit e9156cd26a495a18706e796f02a81fee41ec14f4 upstream. The driver was failing to check that the SKB wasn't cloned before adding checksum data. Replace existing handling to extend/copy the header buffer with skb_cow_head. Signed-off-by: James Hughes Acked-by: Eric Dumazet Acked-by: Woojung Huh Signed-off-by: David S. Miller Signed-off-by: Linus Walleij --- - This was applied upstream in v4.11 - Should be applied to stable v4.9.y --- drivers/net/usb/smsc95xx.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) -- 2.20.1 diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c index e29f4c0767eb..e719ecd69d01 100644 --- a/drivers/net/usb/smsc95xx.c +++ b/drivers/net/usb/smsc95xx.c @@ -2011,13 +2011,13 @@ static struct sk_buff *smsc95xx_tx_fixup(struct usbnet *dev, /* We do not advertise SG, so skbs should be already linearized */ BUG_ON(skb_shinfo(skb)->nr_frags); - if (skb_headroom(skb) < overhead) { - struct sk_buff *skb2 = skb_copy_expand(skb, - overhead, 0, flags); + /* Make writable and expand header space by overhead if required */ + if (skb_cow_head(skb, overhead)) { + /* Must deallocate here as returning NULL to indicate error + * means the skb won't be deallocated in the caller. + */ dev_kfree_skb_any(skb); - skb = skb2; - if (!skb) - return NULL; + return NULL; } if (csum) {