Message ID | 20201102124856.4659-12-william.gray@canonical.com |
---|---|
State | New |
Headers | show
Return-Path: <kernel-team-bounces@lists.ubuntu.com> X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=<UNKNOWN>) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=canonical.com Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4CPt615h5Vz9sWg; Mon, 2 Nov 2020 23:49:29 +1100 (AEDT) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from <kernel-team-bounces@lists.ubuntu.com>) id 1kZZH2-0006Aj-Mf; Mon, 02 Nov 2020 12:49:24 +0000 Received: from youngberry.canonical.com ([91.189.89.112]) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from <william.gray@canonical.com>) id 1kZZGq-00061i-Vx for kernel-team@lists.ubuntu.com; Mon, 02 Nov 2020 12:49:12 +0000 Received: from mail-qv1-f72.google.com ([209.85.219.72]) by youngberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from <william.gray@canonical.com>) id 1kZZGq-00044O-F4 for kernel-team@lists.ubuntu.com; Mon, 02 Nov 2020 12:49:12 +0000 Received: by mail-qv1-f72.google.com with SMTP id d41so8036204qvc.23 for <kernel-team@lists.ubuntu.com>; Mon, 02 Nov 2020 04:49:12 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=AFWuR+RCU1E7X2Kvlv7Qz4zeplIsAgAP0hYhUcacoAE=; b=nAUFQL9/SsKJjer8+z9T3Lsq9/wpPlGl5PCiBmiHTjKA5NSjARCFsby34K6XCMLJph 23P+rfXKHzuTxfU2q4/WMumsF8IxGySqJiAz2ApnNDzJnO/aHUhD1GrWxK+kvbThERU3 HKdH1q9riRn4aXZrXV8+jnfiE7w5tlqs4jO/1Yg0a4s7I9La0ZoFZS3NmqHRLKB0tYeN vF40V0M9fvSHCrnZjt71Boy2RYZB7ub8ef9y+pAdfjq4h+PpPQRuVTYKuFJdMAHKzjNF gBW8UXoEd8GvdslNBWwzBMUwuK7Djk0ZgEHfuBamG9JDDvG4+1eiCqMhuBxcBwjmfs8T mHIg== X-Gm-Message-State: AOAM533i4CzE4T30JJk1S8KRjOIb4GxKY8DIGMCUc3siaFLcMWVIShLm uTLhEuDsA3CQoK44XEpiFreo36ADfqudiKsp8vWW1su43SL3wufeigmeDGzHXgSzs7CJxeGWciy 42vu9DlrT1vqBwnvEwK9/R4HhFwMRb2u+wIQL7jFKAg== X-Received: by 2002:ae9:f501:: with SMTP id o1mr14241249qkg.8.1604321351042; Mon, 02 Nov 2020 04:49:11 -0800 (PST) X-Google-Smtp-Source: ABdhPJxIxUe5bFulKFuJ19KOboH2b8LR7MuDUXa9CjiUvSdLRoqW79/IvJj3PtILNg95vws8mj2GNg== X-Received: by 2002:ae9:f501:: with SMTP id o1mr14241233qkg.8.1604321350833; Mon, 02 Nov 2020 04:49:10 -0800 (PST) Received: from localhost.localdomain (072-189-064-225.res.spectrum.com. [72.189.64.225]) by smtp.gmail.com with ESMTPSA id q7sm7666201qtd.49.2020.11.02.04.49.10 for <kernel-team@lists.ubuntu.com> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 Nov 2020 04:49:10 -0800 (PST) From: William Breathitt Gray <william.gray@canonical.com> To: kernel-team@lists.ubuntu.com Subject: [SRU][B:linux-azure-4.15][PATCH 11/40] virtio_net: fix ndo_xdp_xmit crash towards dev not ready for XDP Date: Mon, 2 Nov 2020 07:48:27 -0500 Message-Id: <20201102124856.4659-12-william.gray@canonical.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201102124856.4659-1-william.gray@canonical.com> References: <20201102124856.4659-1-william.gray@canonical.com> MIME-Version: 1.0 X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions <kernel-team.lists.ubuntu.com> List-Unsubscribe: <https://lists.ubuntu.com/mailman/options/kernel-team>, <mailto:kernel-team-request@lists.ubuntu.com?subject=unsubscribe> List-Archive: <https://lists.ubuntu.com/archives/kernel-team> List-Post: <mailto:kernel-team@lists.ubuntu.com> List-Help: <mailto:kernel-team-request@lists.ubuntu.com?subject=help> List-Subscribe: <https://lists.ubuntu.com/mailman/listinfo/kernel-team>, <mailto:kernel-team-request@lists.ubuntu.com?subject=subscribe> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" <kernel-team-bounces@lists.ubuntu.com> |
Series |
hv_netvsc: Add XDP support
|
expand
|
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 76a1eb622a04..80aad47c8c97 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -435,8 +435,18 @@ static bool __virtnet_xdp_xmit(struct virtnet_info *vi, static int virtnet_xdp_xmit(struct net_device *dev, struct xdp_buff *xdp) { struct virtnet_info *vi = netdev_priv(dev); - bool sent = __virtnet_xdp_xmit(vi, xdp); + struct receive_queue *rq = vi->rq; + struct bpf_prog *xdp_prog; + bool sent; + + /* Only allow ndo_xdp_xmit if XDP is loaded on dev, as this + * indicate XDP resources have been successfully allocated. + */ + xdp_prog = rcu_dereference(rq->xdp_prog); + if (!xdp_prog) + return -ENXIO; + sent = __virtnet_xdp_xmit(vi, xdp); if (!sent) return -ENOSPC; return 0;