get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/928376/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 928376,
    "url": "http://patchwork.ozlabs.org/api/patches/928376/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20180612151857.86792.68635.stgit@ahduyck-green-test.jf.intel.com/",
    "project": {
        "id": 46,
        "url": "http://patchwork.ozlabs.org/api/projects/46/?format=api",
        "name": "Intel Wired Ethernet development",
        "link_name": "intel-wired-lan",
        "list_id": "intel-wired-lan.osuosl.org",
        "list_email": "intel-wired-lan@osuosl.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20180612151857.86792.68635.stgit@ahduyck-green-test.jf.intel.com>",
    "list_archive_url": null,
    "date": "2018-06-12T15:18:57",
    "name": "[jkirsher/next-queue,v2,6/7] net: allow ndo_select_queue to pass netdev",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": false,
    "hash": "b42b9f447e350595ec80650543a89990448ea95a",
    "submitter": {
        "id": 251,
        "url": "http://patchwork.ozlabs.org/api/people/251/?format=api",
        "name": "Duyck, Alexander H",
        "email": "alexander.h.duyck@intel.com"
    },
    "delegate": {
        "id": 68,
        "url": "http://patchwork.ozlabs.org/api/users/68/?format=api",
        "username": "jtkirshe",
        "first_name": "Jeff",
        "last_name": "Kirsher",
        "email": "jeffrey.t.kirsher@intel.com"
    },
    "mbox": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20180612151857.86792.68635.stgit@ahduyck-green-test.jf.intel.com/mbox/",
    "series": [
        {
            "id": 49759,
            "url": "http://patchwork.ozlabs.org/api/series/49759/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/list/?series=49759",
            "date": "2018-06-12T15:18:25",
            "name": "Add support for L2 Fwd Offload w/o ndo_select_queue",
            "version": 2,
            "mbox": "http://patchwork.ozlabs.org/series/49759/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/928376/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/928376/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<intel-wired-lan-bounces@osuosl.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "intel-wired-lan@osuosl.org"
        ],
        "Delivered-To": [
            "patchwork-incoming@bilbo.ozlabs.org",
            "intel-wired-lan@osuosl.org"
        ],
        "Authentication-Results": [
            "ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=osuosl.org\n\t(client-ip=140.211.166.136; helo=silver.osuosl.org;\n\tenvelope-from=intel-wired-lan-bounces@osuosl.org;\n\treceiver=<UNKNOWN>)",
            "ozlabs.org;\n\tdmarc=fail (p=none dis=none) header.from=intel.com"
        ],
        "Received": [
            "from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 414tzQ4fjpz9s0w\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed, 13 Jun 2018 01:27:14 +1000 (AEST)",
            "from localhost (localhost [127.0.0.1])\n\tby silver.osuosl.org (Postfix) with ESMTP id 144A830581;\n\tTue, 12 Jun 2018 15:27:13 +0000 (UTC)",
            "from silver.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id RizWMWGo3BYi; Tue, 12 Jun 2018 15:27:08 +0000 (UTC)",
            "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby silver.osuosl.org (Postfix) with ESMTP id 1484B306E8;\n\tTue, 12 Jun 2018 15:27:08 +0000 (UTC)",
            "from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133])\n\tby ash.osuosl.org (Postfix) with ESMTP id ACA311C0D68\n\tfor <intel-wired-lan@osuosl.org>;\n\tTue, 12 Jun 2018 15:27:06 +0000 (UTC)",
            "from localhost (localhost [127.0.0.1])\n\tby hemlock.osuosl.org (Postfix) with ESMTP id 76B1D8A107\n\tfor <intel-wired-lan@osuosl.org>;\n\tTue, 12 Jun 2018 15:27:05 +0000 (UTC)",
            "from hemlock.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id dGp6E4rwmL1X for <intel-wired-lan@osuosl.org>;\n\tTue, 12 Jun 2018 15:27:04 +0000 (UTC)",
            "from mga05.intel.com (mga05.intel.com [192.55.52.43])\n\tby hemlock.osuosl.org (Postfix) with ESMTPS id 22A8689F05\n\tfor <intel-wired-lan@osuosl.org>;\n\tTue, 12 Jun 2018 15:27:04 +0000 (UTC)",
            "from orsmga003.jf.intel.com ([10.7.209.27])\n\tby fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t12 Jun 2018 08:27:03 -0700",
            "from ahduyck-green-test.jf.intel.com ([10.166.244.179])\n\tby orsmga003.jf.intel.com with ESMTP; 12 Jun 2018 08:27:03 -0700"
        ],
        "X-Virus-Scanned": [
            "amavisd-new at osuosl.org",
            "amavisd-new at osuosl.org"
        ],
        "X-Greylist": "domain auto-whitelisted by SQLgrey-1.7.6",
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.51,215,1526367600\"; d=\"scan'208\";a=\"58614396\"",
        "From": "Alexander Duyck <alexander.h.duyck@intel.com>",
        "To": "intel-wired-lan@osuosl.org, jeffrey.t.kirsher@intel.com,\n\tnetdev@vger.kernel.org",
        "Date": "Tue, 12 Jun 2018 11:18:57 -0400",
        "Message-ID": "<20180612151857.86792.68635.stgit@ahduyck-green-test.jf.intel.com>",
        "In-Reply-To": "<20180612151322.86792.97587.stgit@ahduyck-green-test.jf.intel.com>",
        "References": "<20180612151322.86792.97587.stgit@ahduyck-green-test.jf.intel.com>",
        "User-Agent": "StGit/0.17.1-dirty",
        "MIME-Version": "1.0",
        "Subject": "[Intel-wired-lan] [jkirsher/next-queue PATCH v2 6/7] net: allow\n\tndo_select_queue to pass netdev",
        "X-BeenThere": "intel-wired-lan@osuosl.org",
        "X-Mailman-Version": "2.1.24",
        "Precedence": "list",
        "List-Id": "Intel Wired Ethernet Linux Kernel Driver Development\n\t<intel-wired-lan.osuosl.org>",
        "List-Unsubscribe": "<https://lists.osuosl.org/mailman/options/intel-wired-lan>, \n\t<mailto:intel-wired-lan-request@osuosl.org?subject=unsubscribe>",
        "List-Archive": "<http://lists.osuosl.org/pipermail/intel-wired-lan/>",
        "List-Post": "<mailto:intel-wired-lan@osuosl.org>",
        "List-Help": "<mailto:intel-wired-lan-request@osuosl.org?subject=help>",
        "List-Subscribe": "<https://lists.osuosl.org/mailman/listinfo/intel-wired-lan>, \n\t<mailto:intel-wired-lan-request@osuosl.org?subject=subscribe>",
        "Content-Type": "text/plain; charset=\"us-ascii\"",
        "Content-Transfer-Encoding": "7bit",
        "Errors-To": "intel-wired-lan-bounces@osuosl.org",
        "Sender": "\"Intel-wired-lan\" <intel-wired-lan-bounces@osuosl.org>"
    },
    "content": "This patch makes it so that instead of passing a void pointer as the\naccel_priv we instead pass a net_device pointer as sb_dev. Making this\nchange allows us to pass the subordinate device through to the fallback\nfunction eventually so that we can keep the actual code in the\nndo_select_queue call as focused on possible on the exception cases.\n\nSigned-off-by: Alexander Duyck <alexander.h.duyck@intel.com>\n---\n drivers/infiniband/hw/hfi1/vnic_main.c            |    2 +-\n drivers/infiniband/ulp/opa_vnic/opa_vnic_netdev.c |    4 ++--\n drivers/net/bonding/bond_main.c                   |    3 ++-\n drivers/net/ethernet/amazon/ena/ena_netdev.c      |    3 ++-\n drivers/net/ethernet/broadcom/bcmsysport.c        |    2 +-\n drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c   |    3 ++-\n drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h   |    3 ++-\n drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c   |    3 ++-\n drivers/net/ethernet/hisilicon/hns/hns_enet.c     |    3 ++-\n drivers/net/ethernet/intel/ixgbe/ixgbe_main.c     |    7 ++++---\n drivers/net/ethernet/mellanox/mlx4/en_tx.c        |    3 ++-\n drivers/net/ethernet/mellanox/mlx4/mlx4_en.h      |    3 ++-\n drivers/net/ethernet/mellanox/mlx5/core/en.h      |    3 ++-\n drivers/net/ethernet/mellanox/mlx5/core/en_tx.c   |    3 ++-\n drivers/net/ethernet/renesas/ravb_main.c          |    3 ++-\n drivers/net/ethernet/sun/ldmvsw.c                 |    3 ++-\n drivers/net/ethernet/sun/sunvnet.c                |    3 ++-\n drivers/net/hyperv/netvsc_drv.c                   |    4 ++--\n drivers/net/net_failover.c                        |    5 +++--\n drivers/net/team/team.c                           |    3 ++-\n drivers/net/tun.c                                 |    3 ++-\n drivers/net/wireless/marvell/mwifiex/main.c       |    3 ++-\n drivers/net/xen-netback/interface.c               |    2 +-\n drivers/net/xen-netfront.c                        |    3 ++-\n drivers/staging/rtl8188eu/os_dep/os_intfs.c       |    3 ++-\n drivers/staging/rtl8723bs/os_dep/os_intfs.c       |    7 +++----\n include/linux/netdevice.h                         |   11 +++++++----\n net/core/dev.c                                    |    6 ++++--\n net/mac80211/iface.c                              |    4 ++--\n 29 files changed, 66 insertions(+), 42 deletions(-)",
    "diff": "diff --git a/drivers/infiniband/hw/hfi1/vnic_main.c b/drivers/infiniband/hw/hfi1/vnic_main.c\nindex 5d65582..616fc9b 100644\n--- a/drivers/infiniband/hw/hfi1/vnic_main.c\n+++ b/drivers/infiniband/hw/hfi1/vnic_main.c\n@@ -423,7 +423,7 @@ static netdev_tx_t hfi1_netdev_start_xmit(struct sk_buff *skb,\n \n static u16 hfi1_vnic_select_queue(struct net_device *netdev,\n \t\t\t\t  struct sk_buff *skb,\n-\t\t\t\t  void *accel_priv,\n+\t\t\t\t  struct net_device *sb_dev,\n \t\t\t\t  select_queue_fallback_t fallback)\n {\n \tstruct hfi1_vnic_vport_info *vinfo = opa_vnic_dev_priv(netdev);\ndiff --git a/drivers/infiniband/ulp/opa_vnic/opa_vnic_netdev.c b/drivers/infiniband/ulp/opa_vnic/opa_vnic_netdev.c\nindex 0c8aec6..6155878 100644\n--- a/drivers/infiniband/ulp/opa_vnic/opa_vnic_netdev.c\n+++ b/drivers/infiniband/ulp/opa_vnic/opa_vnic_netdev.c\n@@ -95,7 +95,7 @@ static netdev_tx_t opa_netdev_start_xmit(struct sk_buff *skb,\n }\n \n static u16 opa_vnic_select_queue(struct net_device *netdev, struct sk_buff *skb,\n-\t\t\t\t void *accel_priv,\n+\t\t\t\t struct net_device *sb_dev,\n \t\t\t\t select_queue_fallback_t fallback)\n {\n \tstruct opa_vnic_adapter *adapter = opa_vnic_priv(netdev);\n@@ -107,7 +107,7 @@ static u16 opa_vnic_select_queue(struct net_device *netdev, struct sk_buff *skb,\n \tmdata->entropy = opa_vnic_calc_entropy(skb);\n \tmdata->vl = opa_vnic_get_vl(adapter, skb);\n \trc = adapter->rn_ops->ndo_select_queue(netdev, skb,\n-\t\t\t\t\t       accel_priv, fallback);\n+\t\t\t\t\t       sb_dev, fallback);\n \tskb_pull(skb, sizeof(*mdata));\n \treturn rc;\n }\ndiff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c\nindex bd53a71..e33f689 100644\n--- a/drivers/net/bonding/bond_main.c\n+++ b/drivers/net/bonding/bond_main.c\n@@ -4094,7 +4094,8 @@ static inline int bond_slave_override(struct bonding *bond,\n \n \n static u16 bond_select_queue(struct net_device *dev, struct sk_buff *skb,\n-\t\t\t     void *accel_priv, select_queue_fallback_t fallback)\n+\t\t\t     struct net_device *sb_dev,\n+\t\t\t     select_queue_fallback_t fallback)\n {\n \t/* This helper function exists to help dev_pick_tx get the correct\n \t * destination queue.  Using a helper function skips a call to\ndiff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.c b/drivers/net/ethernet/amazon/ena/ena_netdev.c\nindex f2af87d..e3befb1 100644\n--- a/drivers/net/ethernet/amazon/ena/ena_netdev.c\n+++ b/drivers/net/ethernet/amazon/ena/ena_netdev.c\n@@ -2213,7 +2213,8 @@ static void ena_netpoll(struct net_device *netdev)\n #endif /* CONFIG_NET_POLL_CONTROLLER */\n \n static u16 ena_select_queue(struct net_device *dev, struct sk_buff *skb,\n-\t\t\t    void *accel_priv, select_queue_fallback_t fallback)\n+\t\t\t    struct net_device *sb_dev,\n+\t\t\t    select_queue_fallback_t fallback)\n {\n \tu16 qid;\n \t/* we suspect that this is good for in--kernel network services that\ndiff --git a/drivers/net/ethernet/broadcom/bcmsysport.c b/drivers/net/ethernet/broadcom/bcmsysport.c\nindex d5fca2e..32f548e 100644\n--- a/drivers/net/ethernet/broadcom/bcmsysport.c\n+++ b/drivers/net/ethernet/broadcom/bcmsysport.c\n@@ -2107,7 +2107,7 @@ static int bcm_sysport_stop(struct net_device *dev)\n };\n \n static u16 bcm_sysport_select_queue(struct net_device *dev, struct sk_buff *skb,\n-\t\t\t\t    void *accel_priv,\n+\t\t\t\t    struct net_device *sb_dev,\n \t\t\t\t    select_queue_fallback_t fallback)\n {\n \tstruct bcm_sysport_priv *priv = netdev_priv(dev);\ndiff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c\nindex 8cd73ff..969dcc9 100644\n--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c\n+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c\n@@ -1905,7 +1905,8 @@ void bnx2x_netif_stop(struct bnx2x *bp, int disable_hw)\n }\n \n u16 bnx2x_select_queue(struct net_device *dev, struct sk_buff *skb,\n-\t\t       void *accel_priv, select_queue_fallback_t fallback)\n+\t\t       struct net_device *sb_dev,\n+\t\t       select_queue_fallback_t fallback)\n {\n \tstruct bnx2x *bp = netdev_priv(dev);\n \ndiff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h\nindex a8ce5c5..0e508e5 100644\n--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h\n+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h\n@@ -497,7 +497,8 @@ int bnx2x_set_vf_vlan(struct net_device *netdev, int vf, u16 vlan, u8 qos,\n \n /* select_queue callback */\n u16 bnx2x_select_queue(struct net_device *dev, struct sk_buff *skb,\n-\t\t       void *accel_priv, select_queue_fallback_t fallback);\n+\t\t       struct net_device *sb_dev,\n+\t\t       select_queue_fallback_t fallback);\n \n static inline void bnx2x_update_rx_prod(struct bnx2x *bp,\n \t\t\t\t\tstruct bnx2x_fastpath *fp,\ndiff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c\nindex 35cb3ae..8de3039 100644\n--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c\n+++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c\n@@ -929,7 +929,8 @@ static int setup_sge_queues(struct adapter *adap)\n }\n \n static u16 cxgb_select_queue(struct net_device *dev, struct sk_buff *skb,\n-\t\t\t     void *accel_priv, select_queue_fallback_t fallback)\n+\t\t\t     struct net_device *sb_dev,\n+\t\t\t     select_queue_fallback_t fallback)\n {\n \tint txq;\n \ndiff --git a/drivers/net/ethernet/hisilicon/hns/hns_enet.c b/drivers/net/ethernet/hisilicon/hns/hns_enet.c\nindex 1ccb644..c36a231 100644\n--- a/drivers/net/ethernet/hisilicon/hns/hns_enet.c\n+++ b/drivers/net/ethernet/hisilicon/hns/hns_enet.c\n@@ -2022,7 +2022,8 @@ static void hns_nic_get_stats64(struct net_device *ndev,\n \n static u16\n hns_nic_select_queue(struct net_device *ndev, struct sk_buff *skb,\n-\t\t     void *accel_priv, select_queue_fallback_t fallback)\n+\t\t     struct net_device *sb_dev,\n+\t\t     select_queue_fallback_t fallback)\n {\n \tstruct ethhdr *eth_hdr = (struct ethhdr *)skb->data;\n \tstruct hns_nic_priv *priv = netdev_priv(ndev);\ndiff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c\nindex 053a54c..5d9867e 100644\n--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c\n+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c\n@@ -8221,15 +8221,16 @@ static void ixgbe_atr(struct ixgbe_ring *ring,\n \n #ifdef IXGBE_FCOE\n static u16 ixgbe_select_queue(struct net_device *dev, struct sk_buff *skb,\n-\t\t\t      void *accel_priv, select_queue_fallback_t fallback)\n+\t\t\t      struct net_device *sb_dev,\n+\t\t\t      select_queue_fallback_t fallback)\n {\n \tstruct ixgbe_adapter *adapter;\n \tstruct ixgbe_ring_feature *f;\n \tint txq;\n \n-\tif (accel_priv) {\n+\tif (sb_dev) {\n \t\tu8 tc = netdev_get_prio_tc_map(dev, skb->priority);\n-\t\tstruct net_device *vdev = accel_priv;\n+\t\tstruct net_device *vdev = sb_dev;\n \n \t\ttxq = vdev->tc_to_txq[tc].offset;\n \t\ttxq += reciprocal_scale(skb_get_hash(skb),\ndiff --git a/drivers/net/ethernet/mellanox/mlx4/en_tx.c b/drivers/net/ethernet/mellanox/mlx4/en_tx.c\nindex 0227786..df29966 100644\n--- a/drivers/net/ethernet/mellanox/mlx4/en_tx.c\n+++ b/drivers/net/ethernet/mellanox/mlx4/en_tx.c\n@@ -688,7 +688,8 @@ static void build_inline_wqe(struct mlx4_en_tx_desc *tx_desc,\n }\n \n u16 mlx4_en_select_queue(struct net_device *dev, struct sk_buff *skb,\n-\t\t\t void *accel_priv, select_queue_fallback_t fallback)\n+\t\t\t struct net_device *sb_dev,\n+\t\t\t select_queue_fallback_t fallback)\n {\n \tstruct mlx4_en_priv *priv = netdev_priv(dev);\n \tu16 rings_p_up = priv->num_tx_rings_p_up;\ndiff --git a/drivers/net/ethernet/mellanox/mlx4/mlx4_en.h b/drivers/net/ethernet/mellanox/mlx4/mlx4_en.h\nindex ace6545..c3228b8 100644\n--- a/drivers/net/ethernet/mellanox/mlx4/mlx4_en.h\n+++ b/drivers/net/ethernet/mellanox/mlx4/mlx4_en.h\n@@ -699,7 +699,8 @@ int mlx4_en_activate_cq(struct mlx4_en_priv *priv, struct mlx4_en_cq *cq,\n \n void mlx4_en_tx_irq(struct mlx4_cq *mcq);\n u16 mlx4_en_select_queue(struct net_device *dev, struct sk_buff *skb,\n-\t\t\t void *accel_priv, select_queue_fallback_t fallback);\n+\t\t\t struct net_device *sb_dev,\n+\t\t\t select_queue_fallback_t fallback);\n netdev_tx_t mlx4_en_xmit(struct sk_buff *skb, struct net_device *dev);\n netdev_tx_t mlx4_en_xmit_frame(struct mlx4_en_rx_ring *rx_ring,\n \t\t\t       struct mlx4_en_rx_alloc *frame,\ndiff --git a/drivers/net/ethernet/mellanox/mlx5/core/en.h b/drivers/net/ethernet/mellanox/mlx5/core/en.h\nindex eb9eb7a..df2d1e8 100644\n--- a/drivers/net/ethernet/mellanox/mlx5/core/en.h\n+++ b/drivers/net/ethernet/mellanox/mlx5/core/en.h\n@@ -866,7 +866,8 @@ struct mlx5e_profile {\n void mlx5e_build_ptys2ethtool_map(void);\n \n u16 mlx5e_select_queue(struct net_device *dev, struct sk_buff *skb,\n-\t\t       void *accel_priv, select_queue_fallback_t fallback);\n+\t\t       struct net_device *sb_dev,\n+\t\t       select_queue_fallback_t fallback);\n netdev_tx_t mlx5e_xmit(struct sk_buff *skb, struct net_device *dev);\n netdev_tx_t mlx5e_sq_xmit(struct mlx5e_txqsq *sq, struct sk_buff *skb,\n \t\t\t  struct mlx5e_tx_wqe *wqe, u16 pi);\ndiff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c\nindex f29deb4..0119e86 100644\n--- a/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c\n+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c\n@@ -111,7 +111,8 @@ static inline int mlx5e_get_dscp_up(struct mlx5e_priv *priv, struct sk_buff *skb\n #endif\n \n u16 mlx5e_select_queue(struct net_device *dev, struct sk_buff *skb,\n-\t\t       void *accel_priv, select_queue_fallback_t fallback)\n+\t\t       struct net_device *sb_dev,\n+\t\t       select_queue_fallback_t fallback)\n {\n \tstruct mlx5e_priv *priv = netdev_priv(dev);\n \tint channel_ix = fallback(dev, skb);\ndiff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c\nindex 68f1221..4a7f54c 100644\n--- a/drivers/net/ethernet/renesas/ravb_main.c\n+++ b/drivers/net/ethernet/renesas/ravb_main.c\n@@ -1656,7 +1656,8 @@ static netdev_tx_t ravb_start_xmit(struct sk_buff *skb, struct net_device *ndev)\n }\n \n static u16 ravb_select_queue(struct net_device *ndev, struct sk_buff *skb,\n-\t\t\t     void *accel_priv, select_queue_fallback_t fallback)\n+\t\t\t     struct net_device *sb_dev,\n+\t\t\t     select_queue_fallback_t fallback)\n {\n \t/* If skb needs TX timestamp, it is handled in network control queue */\n \treturn (skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP) ? RAVB_NC :\ndiff --git a/drivers/net/ethernet/sun/ldmvsw.c b/drivers/net/ethernet/sun/ldmvsw.c\nindex a5dd627..d42f47f 100644\n--- a/drivers/net/ethernet/sun/ldmvsw.c\n+++ b/drivers/net/ethernet/sun/ldmvsw.c\n@@ -101,7 +101,8 @@ static struct vnet_port *vsw_tx_port_find(struct sk_buff *skb,\n }\n \n static u16 vsw_select_queue(struct net_device *dev, struct sk_buff *skb,\n-\t\t\t    void *accel_priv, select_queue_fallback_t fallback)\n+\t\t\t    struct net_device *sb_dev,\n+\t\t\t    select_queue_fallback_t fallback)\n {\n \tstruct vnet_port *port = netdev_priv(dev);\n \ndiff --git a/drivers/net/ethernet/sun/sunvnet.c b/drivers/net/ethernet/sun/sunvnet.c\nindex a94f504..12539b3 100644\n--- a/drivers/net/ethernet/sun/sunvnet.c\n+++ b/drivers/net/ethernet/sun/sunvnet.c\n@@ -234,7 +234,8 @@ static struct vnet_port *vnet_tx_port_find(struct sk_buff *skb,\n }\n \n static u16 vnet_select_queue(struct net_device *dev, struct sk_buff *skb,\n-\t\t\t     void *accel_priv, select_queue_fallback_t fallback)\n+\t\t\t     struct net_device *sb_dev,\n+\t\t\t     select_queue_fallback_t fallback)\n {\n \tstruct vnet *vp = netdev_priv(dev);\n \tstruct vnet_port *port = __tx_port_find(vp, skb);\ndiff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/netvsc_drv.c\nindex 7b18a8c..0a01572 100644\n--- a/drivers/net/hyperv/netvsc_drv.c\n+++ b/drivers/net/hyperv/netvsc_drv.c\n@@ -328,7 +328,7 @@ static u16 netvsc_pick_tx(struct net_device *ndev, struct sk_buff *skb)\n }\n \n static u16 netvsc_select_queue(struct net_device *ndev, struct sk_buff *skb,\n-\t\t\t       void *accel_priv,\n+\t\t\t       struct net_device *sb_dev,\n \t\t\t       select_queue_fallback_t fallback)\n {\n \tstruct net_device_context *ndc = netdev_priv(ndev);\n@@ -342,7 +342,7 @@ static u16 netvsc_select_queue(struct net_device *ndev, struct sk_buff *skb,\n \n \t\tif (vf_ops->ndo_select_queue)\n \t\t\ttxq = vf_ops->ndo_select_queue(vf_netdev, skb,\n-\t\t\t\t\t\t       accel_priv, fallback);\n+\t\t\t\t\t\t       sb_dev, fallback);\n \t\telse\n \t\t\ttxq = fallback(vf_netdev, skb);\n \ndiff --git a/drivers/net/net_failover.c b/drivers/net/net_failover.c\nindex 83f7420..b2dc2e7 100644\n--- a/drivers/net/net_failover.c\n+++ b/drivers/net/net_failover.c\n@@ -115,7 +115,8 @@ static netdev_tx_t net_failover_start_xmit(struct sk_buff *skb,\n }\n \n static u16 net_failover_select_queue(struct net_device *dev,\n-\t\t\t\t     struct sk_buff *skb, void *accel_priv,\n+\t\t\t\t     struct sk_buff *skb,\n+\t\t\t\t     struct net_device *sb_dev,\n \t\t\t\t     select_queue_fallback_t fallback)\n {\n \tstruct net_failover_info *nfo_info = netdev_priv(dev);\n@@ -128,7 +129,7 @@ static u16 net_failover_select_queue(struct net_device *dev,\n \n \t\tif (ops->ndo_select_queue)\n \t\t\ttxq = ops->ndo_select_queue(primary_dev, skb,\n-\t\t\t\t\t\t    accel_priv, fallback);\n+\t\t\t\t\t\t    sb_dev, fallback);\n \t\telse\n \t\t\ttxq = fallback(primary_dev, skb);\n \ndiff --git a/drivers/net/team/team.c b/drivers/net/team/team.c\nindex 8863fa0..b704051 100644\n--- a/drivers/net/team/team.c\n+++ b/drivers/net/team/team.c\n@@ -1706,7 +1706,8 @@ static netdev_tx_t team_xmit(struct sk_buff *skb, struct net_device *dev)\n }\n \n static u16 team_select_queue(struct net_device *dev, struct sk_buff *skb,\n-\t\t\t     void *accel_priv, select_queue_fallback_t fallback)\n+\t\t\t     struct net_device *sb_dev,\n+\t\t\t     select_queue_fallback_t fallback)\n {\n \t/*\n \t * This helper function exists to help dev_pick_tx get the correct\ndiff --git a/drivers/net/tun.c b/drivers/net/tun.c\nindex a192a01..76f0f41 100644\n--- a/drivers/net/tun.c\n+++ b/drivers/net/tun.c\n@@ -607,7 +607,8 @@ static u16 tun_ebpf_select_queue(struct tun_struct *tun, struct sk_buff *skb)\n }\n \n static u16 tun_select_queue(struct net_device *dev, struct sk_buff *skb,\n-\t\t\t    void *accel_priv, select_queue_fallback_t fallback)\n+\t\t\t    struct net_device *sb_dev,\n+\t\t\t    select_queue_fallback_t fallback)\n {\n \tstruct tun_struct *tun = netdev_priv(dev);\n \tu16 ret;\ndiff --git a/drivers/net/wireless/marvell/mwifiex/main.c b/drivers/net/wireless/marvell/mwifiex/main.c\nindex 510f6b8..fa3e8dd 100644\n--- a/drivers/net/wireless/marvell/mwifiex/main.c\n+++ b/drivers/net/wireless/marvell/mwifiex/main.c\n@@ -1279,7 +1279,8 @@ static struct net_device_stats *mwifiex_get_stats(struct net_device *dev)\n \n static u16\n mwifiex_netdev_select_wmm_queue(struct net_device *dev, struct sk_buff *skb,\n-\t\t\t\tvoid *accel_priv, select_queue_fallback_t fallback)\n+\t\t\t\tstruct net_device *sb_dev,\n+\t\t\t\tselect_queue_fallback_t fallback)\n {\n \tskb->priority = cfg80211_classify8021d(skb, NULL);\n \treturn mwifiex_1d_to_wmm_queue[skb->priority];\ndiff --git a/drivers/net/xen-netback/interface.c b/drivers/net/xen-netback/interface.c\nindex 78ebe49..19c4c58 100644\n--- a/drivers/net/xen-netback/interface.c\n+++ b/drivers/net/xen-netback/interface.c\n@@ -148,7 +148,7 @@ void xenvif_wake_queue(struct xenvif_queue *queue)\n }\n \n static u16 xenvif_select_queue(struct net_device *dev, struct sk_buff *skb,\n-\t\t\t       void *accel_priv,\n+\t\t\t       struct net_device *sb_dev,\n \t\t\t       select_queue_fallback_t fallback)\n {\n \tstruct xenvif *vif = netdev_priv(dev);\ndiff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c\nindex 679da1a..3c21a8f 100644\n--- a/drivers/net/xen-netfront.c\n+++ b/drivers/net/xen-netfront.c\n@@ -545,7 +545,8 @@ static int xennet_count_skb_slots(struct sk_buff *skb)\n }\n \n static u16 xennet_select_queue(struct net_device *dev, struct sk_buff *skb,\n-\t\t\t       void *accel_priv, select_queue_fallback_t fallback)\n+\t\t\t       struct net_device *sb_dev,\n+\t\t\t       select_queue_fallback_t fallback)\n {\n \tunsigned int num_queues = dev->real_num_tx_queues;\n \tu32 hash;\ndiff --git a/drivers/staging/rtl8188eu/os_dep/os_intfs.c b/drivers/staging/rtl8188eu/os_dep/os_intfs.c\nindex add1ba0..38e85c8 100644\n--- a/drivers/staging/rtl8188eu/os_dep/os_intfs.c\n+++ b/drivers/staging/rtl8188eu/os_dep/os_intfs.c\n@@ -253,7 +253,8 @@ static unsigned int rtw_classify8021d(struct sk_buff *skb)\n }\n \n static u16 rtw_select_queue(struct net_device *dev, struct sk_buff *skb,\n-\t\t\t    void *accel_priv, select_queue_fallback_t fallback)\n+\t\t\t    struct net_device *sb_dev,\n+\t\t\t    select_queue_fallback_t fallback)\n {\n \tstruct adapter\t*padapter = rtw_netdev_priv(dev);\n \tstruct mlme_priv *pmlmepriv = &padapter->mlmepriv;\ndiff --git a/drivers/staging/rtl8723bs/os_dep/os_intfs.c b/drivers/staging/rtl8723bs/os_dep/os_intfs.c\nindex ace68f0..1816423 100644\n--- a/drivers/staging/rtl8723bs/os_dep/os_intfs.c\n+++ b/drivers/staging/rtl8723bs/os_dep/os_intfs.c\n@@ -403,10 +403,9 @@ static unsigned int rtw_classify8021d(struct sk_buff *skb)\n }\n \n \n-static u16 rtw_select_queue(struct net_device *dev, struct sk_buff *skb\n-\t\t\t\t, void *accel_priv\n-\t\t\t\t, select_queue_fallback_t fallback\n-)\n+static u16 rtw_select_queue(struct net_device *dev, struct sk_buff *skb,\n+\t\t\t    struct net_device *sb_dev,\n+\t\t\t    select_queue_fallback_t fallback)\n {\n \tstruct adapter\t*padapter = rtw_netdev_priv(dev);\n \tstruct mlme_priv *pmlmepriv = &padapter->mlmepriv;\ndiff --git a/include/linux/netdevice.h b/include/linux/netdevice.h\nindex 70f7ee3..94d8f9b 100644\n--- a/include/linux/netdevice.h\n+++ b/include/linux/netdevice.h\n@@ -945,7 +945,8 @@ struct dev_ifalias {\n  *\tthose the driver believes to be appropriate.\n  *\n  * u16 (*ndo_select_queue)(struct net_device *dev, struct sk_buff *skb,\n- *                         void *accel_priv, select_queue_fallback_t fallback);\n+ *                         struct net_device *sb_dev,\n+ *                         select_queue_fallback_t fallback);\n  *\tCalled to decide which queue to use when device supports multiple\n  *\ttransmit queues.\n  *\n@@ -1217,7 +1218,7 @@ struct net_device_ops {\n \t\t\t\t\t\t      netdev_features_t features);\n \tu16\t\t\t(*ndo_select_queue)(struct net_device *dev,\n \t\t\t\t\t\t    struct sk_buff *skb,\n-\t\t\t\t\t\t    void *accel_priv,\n+\t\t\t\t\t\t    struct net_device *sb_dev,\n \t\t\t\t\t\t    select_queue_fallback_t fallback);\n \tvoid\t\t\t(*ndo_change_rx_flags)(struct net_device *dev,\n \t\t\t\t\t\t       int flags);\n@@ -2552,9 +2553,11 @@ struct net_device *__dev_get_by_flags(struct net *net, unsigned short flags,\n void dev_disable_lro(struct net_device *dev);\n int dev_loopback_xmit(struct net *net, struct sock *sk, struct sk_buff *newskb);\n u16 dev_pick_tx_zero(struct net_device *dev, struct sk_buff *skb,\n-\t\t     void *accel_priv, select_queue_fallback_t fallback);\n+\t\t     struct net_device *sb_dev,\n+\t\t     select_queue_fallback_t fallback);\n u16 dev_pick_tx_cpu_id(struct net_device *dev, struct sk_buff *skb,\n-\t\t       void *accel_priv, select_queue_fallback_t fallback);\n+\t\t       struct net_device *sb_dev,\n+\t\t       select_queue_fallback_t fallback);\n int dev_queue_xmit(struct sk_buff *skb);\n int dev_queue_xmit_accel(struct sk_buff *skb, struct net_device *sb_dev);\n int dev_direct_xmit(struct sk_buff *skb, u16 queue_id);\ndiff --git a/net/core/dev.c b/net/core/dev.c\nindex 1a1cf2c..a78000a 100644\n--- a/net/core/dev.c\n+++ b/net/core/dev.c\n@@ -3506,14 +3506,16 @@ static inline int get_xps_queue(struct net_device *dev,\n }\n \n u16 dev_pick_tx_zero(struct net_device *dev, struct sk_buff *skb,\n-\t\t     void *accel_priv, select_queue_fallback_t fallback)\n+\t\t     struct net_device *sb_dev,\n+\t\t     select_queue_fallback_t fallback)\n {\n \treturn 0;\n }\n EXPORT_SYMBOL(dev_pick_tx_zero);\n \n u16 dev_pick_tx_cpu_id(struct net_device *dev, struct sk_buff *skb,\n-\t\t       void *accel_priv, select_queue_fallback_t fallback)\n+\t\t       struct net_device *sb_dev,\n+\t\t       select_queue_fallback_t fallback)\n {\n \treturn (u16)raw_smp_processor_id() % dev->real_num_tx_queues;\n }\ndiff --git a/net/mac80211/iface.c b/net/mac80211/iface.c\nindex 555e389..5e6cf2c 100644\n--- a/net/mac80211/iface.c\n+++ b/net/mac80211/iface.c\n@@ -1130,7 +1130,7 @@ static void ieee80211_uninit(struct net_device *dev)\n \n static u16 ieee80211_netdev_select_queue(struct net_device *dev,\n \t\t\t\t\t struct sk_buff *skb,\n-\t\t\t\t\t void *accel_priv,\n+\t\t\t\t\t struct net_device *sb_dev,\n \t\t\t\t\t select_queue_fallback_t fallback)\n {\n \treturn ieee80211_select_queue(IEEE80211_DEV_TO_SUB_IF(dev), skb);\n@@ -1176,7 +1176,7 @@ static u16 ieee80211_netdev_select_queue(struct net_device *dev,\n \n static u16 ieee80211_monitor_select_queue(struct net_device *dev,\n \t\t\t\t\t  struct sk_buff *skb,\n-\t\t\t\t\t  void *accel_priv,\n+\t\t\t\t\t  struct net_device *sb_dev,\n \t\t\t\t\t  select_queue_fallback_t fallback)\n {\n \tstruct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);\n",
    "prefixes": [
        "jkirsher/next-queue",
        "v2",
        "6/7"
    ]
}