From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 78B1BC35242 for ; Fri, 24 Jan 2020 11:23:02 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 452BF21556 for ; Fri, 24 Jan 2020 11:23:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1579864982; bh=VH6ryLsyXtY1Gp868ELS2ds/yzz/uap6X8pslz8jrEo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=F7GKiucwvAoR4peben43SjzbExy6pzW/Gw2aPRapmyQ6K818gTx5O61OvawTMUN6G Yft7dHqxosm24++AejSSUKDy480CxxnNTWWws6IgXmuM4KZnYZ9L9pYV3bxt1Gr0ur W7VVR+qj4DAIEmdX8gifBya+5lEhRDnRMc7c7APY= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2391273AbgAXLXA (ORCPT ); Fri, 24 Jan 2020 06:23:00 -0500 Received: from mail.kernel.org ([198.145.29.99]:34908 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2391258AbgAXLWx (ORCPT ); Fri, 24 Jan 2020 06:22:53 -0500 Received: from localhost (ip-213-127-102-57.ip.prioritytelecom.net [213.127.102.57]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id B93AF20704; Fri, 24 Jan 2020 11:22:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1579864972; bh=VH6ryLsyXtY1Gp868ELS2ds/yzz/uap6X8pslz8jrEo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fC+OnvcegR4Ksnzb28t+C+Ry68j3bqRaXfPQYLb8P4kxbDY/UNYzemQvRbBsAZrAD +HNLa2vyUr/Adw3X0KAC85kjRPeAs4l4VHAUD7IaXePrPO1AIo8+QgFpIpuhLXcIcO RMvfb6QaWdxHw3l0RqhGgHqcP4HmbFozjPWw0wBk= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Stephen Hemminger , "David S. Miller" , Sasha Levin Subject: [PATCH 4.19 404/639] netvsc: unshare skb in VF rx handler Date: Fri, 24 Jan 2020 10:29:34 +0100 Message-Id: <20200124093137.705611069@linuxfoundation.org> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200124093047.008739095@linuxfoundation.org> References: <20200124093047.008739095@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Stephen Hemminger [ Upstream commit 996ed04741467f6d1552440c92988b132a9487ec ] The netvsc VF skb handler should make sure that skb is not shared. Similar logic already exists in bonding and team device drivers. This is not an issue in practice because the VF devicex does not send up shared skb's. But the netvsc driver should do the right thing if it did. Fixes: 0c195567a8f6 ("netvsc: transparent VF management") Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller Signed-off-by: Sasha Levin --- drivers/net/hyperv/netvsc_drv.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/netvsc_drv.c index 1f9f7fcdb0eb3..54670c9905c79 100644 --- a/drivers/net/hyperv/netvsc_drv.c +++ b/drivers/net/hyperv/netvsc_drv.c @@ -2004,6 +2004,12 @@ static rx_handler_result_t netvsc_vf_handle_frame(struct sk_buff **pskb) struct netvsc_vf_pcpu_stats *pcpu_stats = this_cpu_ptr(ndev_ctx->vf_stats); + skb = skb_share_check(skb, GFP_ATOMIC); + if (unlikely(!skb)) + return RX_HANDLER_CONSUMED; + + *pskb = skb; + skb->dev = ndev; u64_stats_update_begin(&pcpu_stats->syncp); -- 2.20.1