]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/infiniband/ulp/ipoib/ipoib_multicast.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit...
[net-next-2.6.git] / drivers / infiniband / ulp / ipoib / ipoib_multicast.c
index 19eba3c877cb1512c275aed83aece54c47b2e51e..b166bb75753d07c8457cdb19c9874a1582a2cc90 100644 (file)
@@ -40,6 +40,7 @@
 #include <linux/inetdevice.h>
 #include <linux/delay.h>
 #include <linux/completion.h>
+#include <linux/slab.h>
 
 #include <net/dst.h>
 
@@ -767,8 +768,11 @@ void ipoib_mcast_dev_flush(struct net_device *dev)
        }
 }
 
-static int ipoib_mcast_addr_is_valid(const u8 *addr, const u8 *broadcast)
+static int ipoib_mcast_addr_is_valid(const u8 *addr, unsigned int addrlen,
+                                    const u8 *broadcast)
 {
+       if (addrlen != INFINIBAND_ALEN)
+               return 0;
        /* reserved QPN, prefix, scope */
        if (memcmp(addr, broadcast, 6))
                return 0;
@@ -812,6 +816,7 @@ void ipoib_mcast_restart_task(struct work_struct *work)
                union ib_gid mgid;
 
                if (!ipoib_mcast_addr_is_valid(mclist->dmi_addr,
+                                              mclist->dmi_addrlen,
                                               dev->broadcast))
                        continue;