Message ID | 20091021220837.GP14520@obsidianresearch.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
--- a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c +++ b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c @@ -814,6 +814,13 @@ void ipoib_mcast_restart_task(struct work_struct *work) for (mclist = dev->mc_list; mclist; mclist = mclist->next) { union ib_gid mgid; + /* Work around broken ip_ib_mc_map */ + if (mclist->dmi_addrlen == INFINIBAND_ALEN) { + mclist->dmi_addr[5] = 0x10 | (dev->broadcast[5] & 0xF); + mclist->dmi_addr[8] = dev->broadcast[8]; + mclist->dmi_addr[9] = dev->broadcast[9]; + } + if (!ipoib_mcast_addr_is_valid(mclist->dmi_addr, mclist->dmi_addrlen, dev->broadcast))