[PATCH] bonding: UPDATED hash-table corruption in bond_alb.c
authorJay Vosburgh <fubar@us.ibm.com>
Mon, 9 Jan 2006 20:14:00 +0000 (12:14 -0800)
committerJeff Garzik <jgarzik@pobox.com>
Thu, 12 Jan 2006 21:35:39 +0000 (16:35 -0500)
commit5af47b2ff124fdad9ba84baeb9f7eeebeb227b43
tree1085c636295cd3f9ade5611f9519d83731e27cdc
parent9a6301c114aaab1df6de6fad9899bb89852a7592
[PATCH] bonding: UPDATED hash-table corruption in bond_alb.c

I believe I see the race Michael refers to (tlb_choose_channel
may set head, which tlb_init_slave clears), although I was not able to
reproduce it.  I have updated his patch for the current netdev-2.6.git
tree and added a version update.  His original comment follows:

Our systems have been crashing during testing of PCI HotPlug
support in the various networking components.  We've faulted in
the bonding driver due to a bug in bond_alb.c:tlb_clear_slave()

In that routine, the last modification to the TLB hash table is
made without protection of the lock, allowing a race that can lead
tlb_choose_channel() to select an invalid table element.

-J

Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
drivers/net/bonding/bond_alb.c
drivers/net/bonding/bonding.h