1. 31 Oct, 2008 3 commits
    • Andy Gospodarek's avatar
      bonding: fix panic when taking bond interface down before removing module · ce39a800
      Andy Gospodarek authored
      A panic was discovered with bonding when using mode 5 or 6 and trying to
      remove the slaves from the bond after the interface was taken down.
      When calling 'ifconfig bond0 down' the following happens:
      
          bond_close()
              bond_alb_deinitialize()
                  tlb_deinitialize()
      		kfree(bond_info->tx_hashtbl)
                      bond_info->tx_hashtbl = NULL
      
      Unfortunately if there are still slaves in the bond, when removing the
      module the following happens:
      
          bonding_exit()
              bond_free_all()
                  bond_release_all()
                      bond_alb_deinit_slave()
                          tlb_clear_slave()
                              tx_hash_table = BOND_ALB_INFO(bond).tx_hashtbl
      			u32 next_index = tx_hash_table[index].next
      
      As you might guess we panic when trying to access a few entries into the
      table that no longer exists.
      
      I experimented with several options (like moving the calls to
      tlb_deinitialize somewhere else), but it really makes the most sense to
      be part of the bond_close routine.  It also didn't seem logical move
      tlb_clear_slave around too much, so the simplest option seems to add a
      check in tlb_clear_slave to make sure we haven't already wiped the
      tx_hashtbl away before searching for all the non-existent hash-table
      entries that used to point to the slave as the output interface.
      Signed-off-by: default avatarAndy Gospodarek <andy@greyhouse.net>
      Signed-off-by: default avatarJay Vosburgh <fubar@us.ibm.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      ce39a800
    • Jay Vosburgh's avatar
      bonding: Clean up resource leaks · a434e43f
      Jay Vosburgh authored
      This patch reworks the resource free logic performed at the time
      a bonding device is released.  This (a) closes two resource leaks, one
      for workqueues and one for multicast lists, and (b) improves commonality
      of code between the "destroy one" and "destroy all" paths by performing
      final free activity via destructor instead of explicitly (and differently)
      in each path.
      
      "Sean E. Millichamp" <sean@bruenor.org> reported the workqueue
      leak, and included a different patch.
      Signed-off-by: default avatarJay Vosburgh <fubar@us.ibm.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      a434e43f
    • Jay Vosburgh's avatar
      bonding: fix miimon failure counter · fba4acda
      Jay Vosburgh authored
      During the rework of the mii monitor for:
      
        commit f0c76d61
        Author: Jay Vosburgh <fubar@us.ibm.com>
        Date:   Wed Jul 2 18:21:58 2008 -0700
      
          bonding: refactor mii monitor
      
      I left out the increment of the link failure counter.  This
      patch corrects that omission.
      Signed-off-by: default avatarJay Vosburgh <fubar@us.ibm.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      fba4acda
  2. 28 Oct, 2008 3 commits
  3. 27 Oct, 2008 23 commits
  4. 26 Oct, 2008 11 commits