aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2015-04-02 16:25:27 -0400
committerDavid S. Miller <davem@davemloft.net>2015-04-02 16:25:27 -0400
commitc5531ca2bf3de4e172d2dcc12b97b9f663ab0453 (patch)
tree1832a7b19b4a403b29b3b066a3b0db88833c7094 /drivers/net/ethernet/mellanox/mlx4/resource_tracker.c
parentMerge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (diff)
parentMAINTAINERS: Update mlx4_en entry (diff)
downloadlinux-dev-c5531ca2bf3de4e172d2dcc12b97b9f663ab0453.tar.xz
linux-dev-c5531ca2bf3de4e172d2dcc12b97b9f663ab0453.zip
Merge branch 'mlx4-next'
Or Gerlitz says: ==================== Mellanox mlx4 driver updates The main feature added by this series are Ido's changes to support Granular QoS for VFs, where for the time being only max rate is supported. Muhammad added support for setting rx-fcs and rx-all through ethtool, and Ido did the interface identify work. Last, add Ido as a maintainer for the mlx4 Ethernet driver! Some of next week is the Passover holiday here and I will be mostly OOO. If needed (...) Ido or Amir will send V1 and such. Rebased against net-next commit 033f46b "crypto: algif - explicitly mark end of data". ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlx4/resource_tracker.c')
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/resource_tracker.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c b/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c
index 11bcd27e218f..c7f28bf4b8e2 100644
--- a/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c
+++ b/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c
@@ -221,11 +221,6 @@ struct res_fs_rule {
int qpn;
};
-static int mlx4_is_eth(struct mlx4_dev *dev, int port)
-{
- return dev->caps.port_mask[port] == MLX4_PORT_TYPE_IB ? 0 : 1;
-}
-
static void *res_tracker_lookup(struct rb_root *root, u64 res_id)
{
struct rb_node *node = root->rb_node;
@@ -770,6 +765,7 @@ static int update_vport_qp_param(struct mlx4_dev *dev,
qpc->pri_path.feup |= MLX4_FEUP_FORCE_ETH_UP | MLX4_FVL_FORCE_ETH_VLAN;
qpc->pri_path.sched_queue &= 0xC7;
qpc->pri_path.sched_queue |= (vp_oper->state.default_qos) << 3;
+ qpc->qos_vport = vp_oper->state.qos_vport;
}
if (vp_oper->state.spoofchk) {
qpc->pri_path.feup |= MLX4_FSM_FORCE_ETH_SRC_MAC;
@@ -4922,6 +4918,11 @@ void mlx4_vf_immed_vlan_work_handler(struct work_struct *_work)
qp->sched_queue & 0xC7;
upd_context->qp_context.pri_path.sched_queue |=
((work->qos & 0x7) << 3);
+ upd_context->qp_mask |=
+ cpu_to_be64(1ULL <<
+ MLX4_UPD_QP_MASK_QOS_VPP);
+ upd_context->qp_context.qos_vport =
+ work->qos_vport;
}
err = mlx4_cmd(dev, mailbox->dma,