Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/941426/?format=api
{ "id": 941426, "url": "http://patchwork.ozlabs.org/api/patches/941426/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20180709161959.8383.30395.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": "<20180709161959.8383.30395.stgit@ahduyck-green-test.jf.intel.com>", "list_archive_url": null, "date": "2018-07-09T16:19:59", "name": "[jkirsher/next-queue,v2,6/7] net: allow ndo_select_queue to pass netdev", "commit_ref": null, "pull_url": null, "state": "accepted", "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/20180709161959.8383.30395.stgit@ahduyck-green-test.jf.intel.com/mbox/", "series": [ { "id": 54497, "url": "http://patchwork.ozlabs.org/api/series/54497/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/list/?series=54497", "date": "2018-07-09T16:19:32", "name": "Add support for L2 Fwd Offload w/o ndo_select_queue", "version": 2, "mbox": "http://patchwork.ozlabs.org/series/54497/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/941426/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/941426/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<intel-wired-lan-bounces@osuosl.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "intel-wired-lan@lists.osuosl.org" ], "Delivered-To": [ "patchwork-incoming@bilbo.ozlabs.org", "intel-wired-lan@lists.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 41PW3r0nXxz9s00\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 10 Jul 2018 02:28:40 +1000 (AEST)", "from localhost (localhost [127.0.0.1])\n\tby silver.osuosl.org (Postfix) with ESMTP id B947C22F00;\n\tMon, 9 Jul 2018 16:28:38 +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 bPPtZogxCAab; Mon, 9 Jul 2018 16:28:36 +0000 (UTC)", "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby silver.osuosl.org (Postfix) with ESMTP id 59A7922DE3;\n\tMon, 9 Jul 2018 16:28:36 +0000 (UTC)", "from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136])\n\tby ash.osuosl.org (Postfix) with ESMTP id E50121CE44F\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tMon, 9 Jul 2018 16:28:34 +0000 (UTC)", "from localhost (localhost [127.0.0.1])\n\tby silver.osuosl.org (Postfix) with ESMTP id E248422DE3\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tMon, 9 Jul 2018 16:28:34 +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 sz+-uwPdRObt for <intel-wired-lan@lists.osuosl.org>;\n\tMon, 9 Jul 2018 16:28:33 +0000 (UTC)", "from mga02.intel.com (mga02.intel.com [134.134.136.20])\n\tby silver.osuosl.org (Postfix) with ESMTPS id 7FE9021FA7\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tMon, 9 Jul 2018 16:28:33 +0000 (UTC)", "from orsmga002.jf.intel.com ([10.7.209.21])\n\tby orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t09 Jul 2018 09:28:33 -0700", "from ahduyck-green-test.jf.intel.com ([10.166.244.179])\n\tby orsmga002.jf.intel.com with ESMTP; 09 Jul 2018 09:28:32 -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,330,1526367600\"; d=\"scan'208\";a=\"73375898\"", "From": "Alexander Duyck <alexander.h.duyck@intel.com>", "To": "netdev@vger.kernel.org, intel-wired-lan@lists.osuosl.org,\n\tjeffrey.t.kirsher@intel.com", "Date": "Mon, 09 Jul 2018 12:19:59 -0400", "Message-ID": "<20180709161959.8383.30395.stgit@ahduyck-green-test.jf.intel.com>", "In-Reply-To": "<20180709161743.8383.97754.stgit@ahduyck-green-test.jf.intel.com>", "References": "<20180709161743.8383.97754.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 63e3844..9a2ea3c 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 af7b5a4..e4e1cf9 100644\n--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c\n+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c\n@@ -1910,7 +1910,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 0d91716..5dc5e56 100644\n--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c\n+++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c\n@@ -930,7 +930,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 ef9ef70..ff7a74e 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 41ef58f..a0cf33d 100644\n--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c\n+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c\n@@ -8215,15 +8215,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 e2b7586..e1b237c 100644\n--- a/drivers/net/ethernet/mellanox/mlx5/core/en.h\n+++ b/drivers/net/ethernet/mellanox/mlx5/core/en.h\n@@ -865,7 +865,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 f0739da..dfcc371 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 dd1d6e1..98c0107 100644\n--- a/drivers/net/hyperv/netvsc_drv.c\n+++ b/drivers/net/hyperv/netvsc_drv.c\n@@ -329,7 +329,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@@ -343,7 +343,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 4f390fa..78b5496 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 b070959..3a95eaa 100644\n--- a/drivers/net/team/team.c\n+++ b/drivers/net/team/team.c\n@@ -1707,7 +1707,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 a57daec..d67cd37 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 2e056bc..0d3df30 100644\n--- a/include/linux/netdevice.h\n+++ b/include/linux/netdevice.h\n@@ -957,7 +957,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@@ -1229,7 +1230,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@@ -2568,9 +2569,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 b5e5380..a051ce2 100644\n--- a/net/core/dev.c\n+++ b/net/core/dev.c\n@@ -3618,14 +3618,16 @@ static int get_xps_queue(struct net_device *dev, struct net_device *sb_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" ] }