diff options
author | Tatyana Nikolova <Tatyana.E.Nikolova@intel.com> | 2012-11-13 17:20:41 -0500 |
---|---|---|
committer | Roland Dreier <roland@purestorage.com> | 2012-11-22 03:49:14 -0500 |
commit | cecdcd5f24be8c532ad8dcbbd93c7b477cfd3413 (patch) | |
tree | 00612a0b7cdfca71ed264d67051fa77a35ddf5f7 /drivers/infiniband | |
parent | fc8d7547b1e19e1bb8f3206837ee0c7c6538e2e5 (diff) |
RDMA/nes: Fix for incorrect multicast address in the perfect filter table
Signed-off-by: Tatyana Nikolova <Tatyana.E.Nikolova@intel.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
Diffstat (limited to 'drivers/infiniband')
-rw-r--r-- | drivers/infiniband/hw/nes/nes_nic.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/infiniband/hw/nes/nes_nic.c b/drivers/infiniband/hw/nes/nes_nic.c index 0564be757d82..9542e1644a5c 100644 --- a/drivers/infiniband/hw/nes/nes_nic.c +++ b/drivers/infiniband/hw/nes/nes_nic.c | |||
@@ -944,12 +944,13 @@ static void nes_netdev_set_multicast_list(struct net_device *netdev) | |||
944 | addr, | 944 | addr, |
945 | perfect_filter_register_address+(mc_index * 8), | 945 | perfect_filter_register_address+(mc_index * 8), |
946 | mc_nic_index); | 946 | mc_nic_index); |
947 | macaddr_high = ((u16) addr[0]) << 8; | 947 | macaddr_high = ((u8) addr[0]) << 8; |
948 | macaddr_high += (u16) addr[1]; | 948 | macaddr_high += (u8) addr[1]; |
949 | macaddr_low = ((u32) addr[2]) << 24; | 949 | macaddr_low = ((u8) addr[2]) << 24; |
950 | macaddr_low += ((u32) addr[3]) << 16; | 950 | macaddr_low += ((u8) addr[3]) << 16; |
951 | macaddr_low += ((u32) addr[4]) << 8; | 951 | macaddr_low += ((u8) addr[4]) << 8; |
952 | macaddr_low += (u32) addr[5]; | 952 | macaddr_low += (u8) addr[5]; |
953 | |||
953 | nes_write_indexed(nesdev, | 954 | nes_write_indexed(nesdev, |
954 | perfect_filter_register_address+(mc_index * 8), | 955 | perfect_filter_register_address+(mc_index * 8), |
955 | macaddr_low); | 956 | macaddr_low); |