aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet
diff options
context:
space:
mode:
authorJack Morgenstein <jackm@dev.mellanox.co.il>2012-08-03 04:40:50 -0400
committerRoland Dreier <roland@purestorage.com>2012-09-30 23:33:38 -0400
commit2a4fae148cf4b60e73faf0a427302697917409d9 (patch)
treeb6e3fb4e3cba82d611eee38810ddfc192ef2191d /drivers/net/ethernet
parenta0c64a17aba88c29d55ba989b96ac6ccb1268f0a (diff)
IB/mlx4: Propagate P_Key and guid change port management events to slaves
P_Key change and guid change events are not of interest to all slaves, but only to those slaves which "see" the table slots whose contents have change. For example, if the guid at port 1, index 5 has changed in the PPF, we wish to propagate the gid-change event only to the function which has that guid index mapped to its port/guid table (in this case it is slave #5). Other functions should not get the event, since the event does not affect them. Similarly with P_Keys -- P_Key change events are forwarded only to slaves which have that P_Key index mapped to their virtual P_Key table. Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il> Signed-off-by: Roland Dreier <roland@purestorage.com>
Diffstat (limited to 'drivers/net/ethernet')
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/fw.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx4/fw.c b/drivers/net/ethernet/mellanox/mlx4/fw.c
index 35be90178be..b7880393789 100644
--- a/drivers/net/ethernet/mellanox/mlx4/fw.c
+++ b/drivers/net/ethernet/mellanox/mlx4/fw.c
@@ -729,6 +729,7 @@ int mlx4_QUERY_DEV_CAP_wrapper(struct mlx4_dev *dev, int slave,
729 struct mlx4_cmd_mailbox *outbox, 729 struct mlx4_cmd_mailbox *outbox,
730 struct mlx4_cmd_info *cmd) 730 struct mlx4_cmd_info *cmd)
731{ 731{
732 u64 flags;
732 int err = 0; 733 int err = 0;
733 u8 field; 734 u8 field;
734 735
@@ -737,6 +738,11 @@ int mlx4_QUERY_DEV_CAP_wrapper(struct mlx4_dev *dev, int slave,
737 if (err) 738 if (err)
738 return err; 739 return err;
739 740
741 /* add port mng change event capability unconditionally to slaves */
742 MLX4_GET(flags, outbox->buf, QUERY_DEV_CAP_EXT_FLAGS_OFFSET);
743 flags |= MLX4_DEV_CAP_FLAG_PORT_MNG_CHG_EV;
744 MLX4_PUT(outbox->buf, flags, QUERY_DEV_CAP_EXT_FLAGS_OFFSET);
745
740 /* For guests, report Blueflame disabled */ 746 /* For guests, report Blueflame disabled */
741 MLX4_GET(field, outbox->buf, QUERY_DEV_CAP_BF_OFFSET); 747 MLX4_GET(field, outbox->buf, QUERY_DEV_CAP_BF_OFFSET);
742 field &= 0x7f; 748 field &= 0x7f;