[ewg] problem with ipoib_mcast_fix_ip_ib_mc_map_to_2_6_24.patch

Jason Gunthorpe jgunthorpe at obsidianresearch.com
Wed Mar 10 09:42:22 PST 2010


On Wed, Mar 10, 2010 at 02:17:44PM +0200, Eli Cohen wrote:
> This text is from https://bugs.openfabrics.org/show_bug.cgi?id=1926
> 
> The source of this problem is this commit by Jason Gunthorpe:
> c12481586c4ba09cb88dc2090c67fdce7c856cde
> 
> This commit fixes a deficiency in ip_ib_mc_map() by changing the
> multicast address in dev->mc_list. However, doing so causes a
> subsequent call to dev_mc_delete() to fail to decrease dmi->dmi_users
> and when to the appearance
> of the following messages:
> Feb 11 10:27:17 sw226 kernel: dev_mc_discard: multicast leakage! dmi_users=1
> 
> Jason,
> can you look at this?

Ah, this was just a suggested approach, I didn't really write it,
never compiled it..

I guess the problem is that the delete operation is a key lookup still
based on the broken ip_ib_mc_map and by changing dmi_addr we miss it.

And, I suppose this points to a larger problem than module unload, all
group unsubscribe is probably broken.

So you can't change the dmi_addr, which means that the ip maddr output
will be wrong on systems running this patch set.

I guess, the best fix is to revert c12481586c4ba09cb88dc2090c67fdce7c856cde,
alter ipoib_mcast_addr_is_valid to not compare bytes 5, 8 and 9, and
fixup the 'Add in the P_Key' hunk to also fixup the scope byte too.

Jason



More information about the ewg mailing list