net/mlx4_core: Directly expose fields of HW flow steering rule control segment
authorHadar Hen Zion <hadarh@mellanox.com>
Wed, 30 Jan 2013 23:07:02 +0000 (23:07 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 31 Jan 2013 17:48:46 +0000 (12:48 -0500)
Some of the fields for struct mlx4_net_trans_rule_hw_ctrl were packed into u32
and accessed through bit field operations. Expose and access them directly as
u8.

Signed-off-by: Hadar Hen Zion <hadarh@mellanox.com>
Signed-off-by: Amir Vadai <amirv@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlx4/mcg.c
drivers/net/ethernet/mellanox/mlx4/mlx4.h
drivers/net/ethernet/mellanox/mlx4/resource_tracker.c

index 1ee4db3..d7c0704 100644 (file)
@@ -664,7 +664,7 @@ static void trans_rule_ctrl_to_hw(struct mlx4_net_trans_rule *ctrl,
        dw |= ctrl->priority << 16;
 
        hw->ctrl = cpu_to_be32(dw);
-       hw->vf_vep_port = cpu_to_be32(ctrl->port);
+       hw->port = ctrl->port;
        hw->qpn = cpu_to_be32(ctrl->qpn);
 }
 
index 116c5c2..3263848 100644 (file)
@@ -696,9 +696,12 @@ struct mlx4_steer {
 
 struct mlx4_net_trans_rule_hw_ctrl {
        __be32 ctrl;
-       __be32 vf_vep_port;
+       u8 rsvd1;
+       u8 funcid;
+       u8 vep;
+       u8 port;
        __be32 qpn;
-       __be32 reserved;
+       __be32 rsvd2;
 };
 
 struct mlx4_net_trans_rule_hw_ib {
index 561ed2a..5997adc 100644 (file)
@@ -3018,7 +3018,7 @@ static int add_eth_header(struct mlx4_dev *dev, int slave,
        __be64 mac_msk = cpu_to_be64(MLX4_MAC_MASK << 16);
 
        ctrl = (struct mlx4_net_trans_rule_hw_ctrl *)inbox->buf;
-       port = be32_to_cpu(ctrl->vf_vep_port) & 0xff;
+       port = ctrl->port;
        eth_header = (struct mlx4_net_trans_rule_hw_eth *)(ctrl + 1);
 
        /* Clear a space in the inbox for eth header */