Skip to content

Commit

Permalink
ipoib: returned back addrlen check for mc addresses
Browse files Browse the repository at this point in the history
Apparently bogus mc address can break IPOIB multicast processing. Therefore
returning the check for addrlen back until this is resolved in bonding (I don't
see any other point from where mc address with non-dev->addr_len length can came
from).

Signed-off-by: Jiri Pirko <jpirko@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Jiri Pirko authored and David S. Miller committed Feb 28, 2010
1 parent cf0aa4e commit 6c74651
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion drivers/infiniband/ulp/ipoib/ipoib_multicast.c
Original file line number Diff line number Diff line change
Expand Up @@ -767,8 +767,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;
Expand Down Expand Up @@ -812,6 +815,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;

Expand Down

0 comments on commit 6c74651

Please sign in to comment.