summaryrefslogtreecommitdiffstats
path: root/drivers/net/bonding/bond_alb.c
diff options
context:
space:
mode:
authorBen Dooks <ben-linux@fluff.org>2008-11-03 15:49:01 +0100
committerBen Dooks <ben-linux@fluff.org>2008-11-03 15:49:01 +0100
commite856359685143a2f65876e7db4e4aa0ef5dce7f0 (patch)
treebbcafe7f23975979f7a2bc6fd1404908d5fd7bd1 /drivers/net/bonding/bond_alb.c
parent[ARM] S3C24XX: Move mci.h to arch/arm/plat-s3c24xx/include/plat (diff)
parentLinux v2.6.28-rc3 (diff)
downloadlinux-e856359685143a2f65876e7db4e4aa0ef5dce7f0.tar.xz
linux-e856359685143a2f65876e7db4e4aa0ef5dce7f0.zip
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 into s3c-moves2
Diffstat (limited to 'drivers/net/bonding/bond_alb.c')
-rw-r--r--drivers/net/bonding/bond_alb.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/net/bonding/bond_alb.c b/drivers/net/bonding/bond_alb.c
index ade5f3f6693b..87437c788476 100644
--- a/drivers/net/bonding/bond_alb.c
+++ b/drivers/net/bonding/bond_alb.c
@@ -169,11 +169,14 @@ static void tlb_clear_slave(struct bonding *bond, struct slave *slave, int save_
/* clear slave from tx_hashtbl */
tx_hash_table = BOND_ALB_INFO(bond).tx_hashtbl;
- index = SLAVE_TLB_INFO(slave).head;
- while (index != TLB_NULL_INDEX) {
- u32 next_index = tx_hash_table[index].next;
- tlb_init_table_entry(&tx_hash_table[index], save_load);
- index = next_index;
+ /* skip this if we've already freed the tx hash table */
+ if (tx_hash_table) {
+ index = SLAVE_TLB_INFO(slave).head;
+ while (index != TLB_NULL_INDEX) {
+ u32 next_index = tx_hash_table[index].next;
+ tlb_init_table_entry(&tx_hash_table[index], save_load);
+ index = next_index;
+ }
}
tlb_init_slave(slave);