diff options
Diffstat (limited to 'drivers/net/ibmveth.c')
| -rw-r--r-- | drivers/net/ibmveth.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/net/ibmveth.c b/drivers/net/ibmveth.c index 0bc777bac9b4..0d2c3ac2005e 100644 --- a/drivers/net/ibmveth.c +++ b/drivers/net/ibmveth.c | |||
| @@ -49,6 +49,7 @@ | |||
| 49 | #include <linux/proc_fs.h> | 49 | #include <linux/proc_fs.h> |
| 50 | #include <linux/in.h> | 50 | #include <linux/in.h> |
| 51 | #include <linux/ip.h> | 51 | #include <linux/ip.h> |
| 52 | #include <linux/slab.h> | ||
| 52 | #include <net/net_namespace.h> | 53 | #include <net/net_namespace.h> |
| 53 | #include <asm/hvcall.h> | 54 | #include <asm/hvcall.h> |
| 54 | #include <asm/atomic.h> | 55 | #include <asm/atomic.h> |
| @@ -1072,7 +1073,7 @@ static void ibmveth_set_multicast_list(struct net_device *netdev) | |||
| 1072 | ibmveth_error_printk("h_multicast_ctrl rc=%ld when entering promisc mode\n", lpar_rc); | 1073 | ibmveth_error_printk("h_multicast_ctrl rc=%ld when entering promisc mode\n", lpar_rc); |
| 1073 | } | 1074 | } |
| 1074 | } else { | 1075 | } else { |
| 1075 | struct dev_mc_list *mclist; | 1076 | struct netdev_hw_addr *ha; |
| 1076 | /* clear the filter table & disable filtering */ | 1077 | /* clear the filter table & disable filtering */ |
| 1077 | lpar_rc = h_multicast_ctrl(adapter->vdev->unit_address, | 1078 | lpar_rc = h_multicast_ctrl(adapter->vdev->unit_address, |
| 1078 | IbmVethMcastEnableRecv | | 1079 | IbmVethMcastEnableRecv | |
| @@ -1083,10 +1084,10 @@ static void ibmveth_set_multicast_list(struct net_device *netdev) | |||
| 1083 | ibmveth_error_printk("h_multicast_ctrl rc=%ld when attempting to clear filter table\n", lpar_rc); | 1084 | ibmveth_error_printk("h_multicast_ctrl rc=%ld when attempting to clear filter table\n", lpar_rc); |
| 1084 | } | 1085 | } |
| 1085 | /* add the addresses to the filter table */ | 1086 | /* add the addresses to the filter table */ |
| 1086 | netdev_for_each_mc_addr(mclist, netdev) { | 1087 | netdev_for_each_mc_addr(ha, netdev) { |
| 1087 | // add the multicast address to the filter table | 1088 | // add the multicast address to the filter table |
| 1088 | unsigned long mcast_addr = 0; | 1089 | unsigned long mcast_addr = 0; |
| 1089 | memcpy(((char *)&mcast_addr)+2, mclist->dmi_addr, 6); | 1090 | memcpy(((char *)&mcast_addr)+2, ha->addr, 6); |
| 1090 | lpar_rc = h_multicast_ctrl(adapter->vdev->unit_address, | 1091 | lpar_rc = h_multicast_ctrl(adapter->vdev->unit_address, |
| 1091 | IbmVethMcastAddFilter, | 1092 | IbmVethMcastAddFilter, |
| 1092 | mcast_addr); | 1093 | mcast_addr); |
