)]}'
{
  "commit": "1f80025e624bb14fefadfef7e80fbfb9740d4714",
  "tree": "1d6f18ebd2855e882213922036d8df8cd7e88db4",
  "parents": [
    "8b955b0dddb35e398b07e217a81f8bd49400796f"
  ],
  "author": {
    "name": "Eric W. Biederman",
    "email": "ebiederm@xmission.com",
    "time": "Wed Oct 04 02:16:56 2006 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@g5.osdl.org",
    "time": "Wed Oct 04 07:55:29 2006 -0700"
  },
  "message": "[PATCH] msi: simplify msi sanity checks by adding with generic irq code\n\nCurrently msi.c is doing sanity checks that make certain before an irq is\ndestroyed it has no more users.\n\nBy adding irq_has_action I can perform the test is a generic way, instead of\nrelying on a msi specific data structure.\n\nBy performing the core check in dynamic_irq_cleanup I ensure every user of\ndynamic irqs has a test present and we don\u0027t free resources that are in use.\n\nIn msi.c this allows me to kill the attrib.state member of msi_desc and all of\nthe assciated code to maintain it.\n\nTo keep from freeing data structures when irq cleanup code is called to soon\nchanging dyanamic_irq_cleanup is insufficient because there are msi specific\ndata structures that are also not safe to free.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "da2c6c2b6b11cff6ed117ec11dbb1a67bcca3c1d",
      "old_mode": 33188,
      "old_path": "drivers/pci/msi.c",
      "new_id": "e3ba3963988c227a0859e8a728fe322975e44e79",
      "new_mode": 33188,
      "new_path": "drivers/pci/msi.c"
    },
    {
      "type": "modify",
      "old_id": "435d05aae4ba526458562b012c41f860004f0cec",
      "old_mode": 33188,
      "old_path": "drivers/pci/msi.h",
      "new_id": "77823bfed5c15063f1d74cf61e33f8d7909296ef",
      "new_mode": 33188,
      "new_path": "drivers/pci/msi.h"
    },
    {
      "type": "modify",
      "old_id": "69855b23dff949720345f14b0ff93066cddbc49a",
      "old_mode": 33188,
      "old_path": "include/linux/irq.h",
      "new_id": "6f463606c318ed46bbfdc0427f219023b1da3860",
      "new_mode": 33188,
      "new_path": "include/linux/irq.h"
    },
    {
      "type": "modify",
      "old_id": "0dc24386dd9991023174bb0c7e7e52d610c3d85c",
      "old_mode": 33188,
      "old_path": "kernel/irq/chip.c",
      "new_id": "4cf65f5c6a74f5697d7411391207cdcd5431e1ea",
      "new_mode": 33188,
      "new_path": "kernel/irq/chip.c"
    }
  ]
}
