)]}'
{
  "commit": "ce39a800ea87c655de49af021c8b20ee323cb40d",
  "tree": "f461c679d9c03639256501a221bbd8542fe65858",
  "parents": [
    "a434e43f3d844192bc23bd7b408bac979c40efe7"
  ],
  "author": {
    "name": "Andy Gospodarek",
    "email": "andy@greyhouse.net",
    "time": "Thu Oct 30 17:41:16 2008 -0700"
  },
  "committer": {
    "name": "Jeff Garzik",
    "email": "jgarzik@redhat.com",
    "time": "Fri Oct 31 00:46:12 2008 -0400"
  },
  "message": "bonding: fix panic when taking bond interface down before removing module\n\nA panic was discovered with bonding when using mode 5 or 6 and trying to\nremove the slaves from the bond after the interface was taken down.\nWhen calling \u0027ifconfig bond0 down\u0027 the following happens:\n\n    bond_close()\n        bond_alb_deinitialize()\n            tlb_deinitialize()\n\t\tkfree(bond_info-\u003etx_hashtbl)\n                bond_info-\u003etx_hashtbl \u003d NULL\n\nUnfortunately if there are still slaves in the bond, when removing the\nmodule the following happens:\n\n    bonding_exit()\n        bond_free_all()\n            bond_release_all()\n                bond_alb_deinit_slave()\n                    tlb_clear_slave()\n                        tx_hash_table \u003d BOND_ALB_INFO(bond).tx_hashtbl\n\t\t\tu32 next_index \u003d tx_hash_table[index].next\n\nAs you might guess we panic when trying to access a few entries into the\ntable that no longer exists.\n\nI experimented with several options (like moving the calls to\ntlb_deinitialize somewhere else), but it really makes the most sense to\nbe part of the bond_close routine.  It also didn\u0027t seem logical move\ntlb_clear_slave around too much, so the simplest option seems to add a\ncheck in tlb_clear_slave to make sure we haven\u0027t already wiped the\ntx_hashtbl away before searching for all the non-existent hash-table\nentries that used to point to the slave as the output interface.\n\nSigned-off-by: Andy Gospodarek \u003candy@greyhouse.net\u003e\nSigned-off-by: Jay Vosburgh \u003cfubar@us.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ade5f3f6693bef27e4d006d2b370ace1956339af",
      "old_mode": 33188,
      "old_path": "drivers/net/bonding/bond_alb.c",
      "new_id": "87437c788476ab8a05df31a0f7fd1887ffeef497",
      "new_mode": 33188,
      "new_path": "drivers/net/bonding/bond_alb.c"
    }
  ]
}
