)]}'
{
  "commit": "df013ffb8119c89f062ab05b7f544704315db47b",
  "tree": "db87f30545d2fd6cf9b0a547f09d924df3be90dd",
  "parents": [
    "9fb0bfe1408d5506b7b83d13d1eed573fd71d67d"
  ],
  "author": {
    "name": "Huang Ying",
    "email": "ying.huang@intel.com",
    "time": "Wed Jul 13 13:14:22 2011 +0800"
  },
  "committer": {
    "name": "Len Brown",
    "email": "len.brown@intel.com",
    "time": "Wed Aug 03 11:12:37 2011 -0400"
  },
  "message": "Add Kconfig option ARCH_HAVE_NMI_SAFE_CMPXCHG\n\ncmpxchg() is widely used by lockless code, including NMI-safe lockless\ncode.  But on some architectures, the cmpxchg() implementation is not\nNMI-safe, on these architectures the lockless code may need a\nspin_trylock_irqsave() based implementation.\n\nThis patch adds a Kconfig option: ARCH_HAVE_NMI_SAFE_CMPXCHG, so that\nNMI-safe lockless code can depend on it or provide different\nimplementation according to it.\n\nOn many architectures, cmpxchg is only NMI-safe for several specific\noperand sizes. So, ARCH_HAVE_NMI_SAFE_CMPXCHG define in this patch\nonly guarantees cmpxchg is NMI-safe for sizeof(unsigned long).\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nAcked-by: Hans-Christian Egtvedt \u003chans-christian.egtvedt@atmel.com\u003e\nAcked-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nAcked-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nAcked-by: Richard Henderson \u003crth@twiddle.net\u003e\nCC: Mikael Starvik \u003cstarvik@axis.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCC: Yoshinori Sato \u003cysato@users.sourceforge.jp\u003e\nCC: Tony Luck \u003ctony.luck@intel.com\u003e\nCC: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nCC: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCC: Michal Simek \u003cmonstr@monstr.eu\u003e\nAcked-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCC: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCC: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCC: Chen Liqin \u003cliqin.chen@sunplusct.com\u003e\nCC: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCC: Ingo Molnar \u003cmingo@redhat.com\u003e\nCC: Chris Zankel \u003cchris@zankel.net\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "26b0e2397a5724140bc8683fedd6bbae67706fe5",
      "old_mode": 33188,
      "old_path": "arch/Kconfig",
      "new_id": "4b0669cbb3b01d4c0eb66f364859cb6f65654693",
      "new_mode": 33188,
      "new_path": "arch/Kconfig"
    },
    {
      "type": "modify",
      "old_id": "60219bf9419884587ed0c6172a084cd5555bddbf",
      "old_mode": 33188,
      "old_path": "arch/alpha/Kconfig",
      "new_id": "23f8d8c32886b421a01b4a501dbc5a2cb96ebe08",
      "new_mode": 33188,
      "new_path": "arch/alpha/Kconfig"
    },
    {
      "type": "modify",
      "old_id": "e9d689b7c833d2c5218ce3d97876c3023785f4e8",
      "old_mode": 33188,
      "old_path": "arch/avr32/Kconfig",
      "new_id": "197e96f7040594fa1994f6d7f61edddff6ccd65d",
      "new_mode": 33188,
      "new_path": "arch/avr32/Kconfig"
    },
    {
      "type": "modify",
      "old_id": "cb884e48942560f23eb9de40c24cb62d9b7eb1e9",
      "old_mode": 33188,
      "old_path": "arch/frv/Kconfig",
      "new_id": "bad27a6ff407bfcce2aecbac934278eabe9c194f",
      "new_mode": 33188,
      "new_path": "arch/frv/Kconfig"
    },
    {
      "type": "modify",
      "old_id": "38280ef4a2af219c8a2aba4fef0a43830acc8515",
      "old_mode": 33188,
      "old_path": "arch/ia64/Kconfig",
      "new_id": "b1227ddc672ac5ca2a4e3a9ca0ea80a91d41fd60",
      "new_mode": 33188,
      "new_path": "arch/ia64/Kconfig"
    },
    {
      "type": "modify",
      "old_id": "d66e34c718d0927a6eba9daa9a023b7e3bcd228a",
      "old_mode": 33188,
      "old_path": "arch/m68k/Kconfig",
      "new_id": "effe8f0fa31effc9c1a60863f05774053ff8ff7c",
      "new_mode": 33188,
      "new_path": "arch/m68k/Kconfig"
    },
    {
      "type": "modify",
      "old_id": "65adc86a230e705d64b41b1c69a886268f9a6eb6",
      "old_mode": 33188,
      "old_path": "arch/parisc/Kconfig",
      "new_id": "e077b0bf56ca51910df1775acd66f319afdae13a",
      "new_mode": 33188,
      "new_path": "arch/parisc/Kconfig"
    },
    {
      "type": "modify",
      "old_id": "2729c6663d8a79c42705b9f81828e6ee6d6f5dd0",
      "old_mode": 33188,
      "old_path": "arch/powerpc/Kconfig",
      "new_id": "e55f754dd50d48b05ddae560ff0bba59444f983f",
      "new_mode": 33188,
      "new_path": "arch/powerpc/Kconfig"
    },
    {
      "type": "modify",
      "old_id": "c03fef7a9c2220c45ca1584ad8f65191bb5c9e76",
      "old_mode": 33188,
      "old_path": "arch/s390/Kconfig",
      "new_id": "0f98bbddade57dce3ee1517168b10b03fd6796c4",
      "new_mode": 33188,
      "new_path": "arch/s390/Kconfig"
    },
    {
      "type": "modify",
      "old_id": "bbdeb48bbf8e40fb80cdf4cd3d4c0b3e132dc6b1",
      "old_mode": 33188,
      "old_path": "arch/sh/Kconfig",
      "new_id": "66405eb217669efcb5ded0f3f2e40d3be80dea25",
      "new_mode": 33188,
      "new_path": "arch/sh/Kconfig"
    },
    {
      "type": "modify",
      "old_id": "253986bd6bb625a270ae1f27b99d967650b178c4",
      "old_mode": 33188,
      "old_path": "arch/sparc/Kconfig",
      "new_id": "a63cddfb3a153cbf9eb435c10b0434ea4f6b8965",
      "new_mode": 33188,
      "new_path": "arch/sparc/Kconfig"
    },
    {
      "type": "modify",
      "old_id": "0249b8b4db545bdb26334d05d3e105a387b6f1d0",
      "old_mode": 33188,
      "old_path": "arch/tile/Kconfig",
      "new_id": "b30f71ac0d0657f24d6a37f13c7ad802d9f36708",
      "new_mode": 33188,
      "new_path": "arch/tile/Kconfig"
    },
    {
      "type": "modify",
      "old_id": "da349723d4115cef7d75aac4680ba2284deaf0d0",
      "old_mode": 33188,
      "old_path": "arch/x86/Kconfig",
      "new_id": "a680a60898ded9e9a1afa241e00e6417cf3e8698",
      "new_mode": 33188,
      "new_path": "arch/x86/Kconfig"
    }
  ]
}
