)]}'
{
  "commit": "b48f5457b4e9d64d9c1117a4ece247d98b4db49f",
  "tree": "6cccfbd1a7863ea830448b981019a7357997daf8",
  "parents": [
    "44597f65f6af3c692560a639f61d25398d13d1b6"
  ],
  "author": {
    "name": "Zhang, Yanmin",
    "email": "yanmin_zhang@linux.intel.com",
    "time": "Thu Nov 16 01:19:08 2006 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@woody.osdl.org",
    "time": "Thu Nov 16 11:43:37 2006 -0800"
  },
  "message": "[PATCH] ipmi: use platform_device_add() instead of platform_device_register() to register device allocated dynamically\n\nI got below warning when running 2.6.19-rc5-mm1 on my ia64 machine.\n\nWARNING at lib/kobject.c:172 kobject_init()\n\nCall Trace:\n [\u003ca0000001000137c0\u003e] show_stack+0x40/0xa0\n                                sp\u003de0000002ff9f7bc0 bsp\u003de0000002ff9f0d10\n [\u003ca000000100013850\u003e] dump_stack+0x30/0x60\n                                sp\u003de0000002ff9f7d90 bsp\u003de0000002ff9f0cf8\n [\u003ca000000100407bb0\u003e] kobject_init+0x90/0x160\n                                sp\u003de0000002ff9f7d90 bsp\u003de0000002ff9f0cd0\n [\u003ca0000001005ae080\u003e] device_initialize+0x40/0x1c0\n                                sp\u003de0000002ff9f7da0 bsp\u003de0000002ff9f0cb0\n [\u003ca0000001005b88c0\u003e] platform_device_register+0x20/0x60\n                                sp\u003de0000002ff9f7dd0 bsp\u003de0000002ff9f0c90\n [\u003ca000000100592560\u003e] try_smi_init+0xbc0/0x11e0\n                                sp\u003de0000002ff9f7dd0 bsp\u003de0000002ff9f0c50\n [\u003ca000000100594900\u003e] init_ipmi_si+0xaa0/0x12e0\n                                sp\u003de0000002ff9f7de0 bsp\u003de0000002ff9f0bd8\n [\u003ca000000100009910\u003e] init+0x350/0x780\n                                sp\u003de0000002ff9f7e00 bsp\u003de0000002ff9f0ba8\n [\u003ca000000100011d30\u003e] kernel_thread_helper+0x30/0x60\n                                sp\u003de0000002ff9f7e30 bsp\u003de0000002ff9f0b80\n [\u003ca0000001000090c0\u003e] start_kernel_thread+0x20/0x40\n                                sp\u003de0000002ff9f7e30 bsp\u003de0000002ff9f0b80\nWARNING at lib/kobject.c:172 kobject_init()\n\nCall Trace:\n [\u003ca0000001000137c0\u003e] show_stack+0x40/0xa0\n                                sp\u003de0000002ff9f7b40 bsp\u003de0000002ff9f0db0\n [\u003ca000000100013850\u003e] dump_stack+0x30/0x60\n                                sp\u003de0000002ff9f7d10 bsp\u003de0000002ff9f0d98\n [\u003ca000000100407bb0\u003e] kobject_init+0x90/0x160\n                                sp\u003de0000002ff9f7d10 bsp\u003de0000002ff9f0d70\n [\u003ca0000001005ae080\u003e] device_initialize+0x40/0x1c0\n                                sp\u003de0000002ff9f7d20 bsp\u003de0000002ff9f0d50\n [\u003ca0000001005b88c0\u003e] platform_device_register+0x20/0x60\n                                sp\u003de0000002ff9f7d50 bsp\u003de0000002ff9f0d30\n [\u003ca00000010058ac00\u003e] ipmi_register_smi+0xcc0/0x18e0\n                                sp\u003de0000002ff9f7d50 bsp\u003de0000002ff9f0c90\n [\u003ca000000100592600\u003e] try_smi_init+0xc60/0x11e0\n                                sp\u003de0000002ff9f7dd0 bsp\u003de0000002ff9f0c50\n [\u003ca000000100594900\u003e] init_ipmi_si+0xaa0/0x12e0\n                                sp\u003de0000002ff9f7de0 bsp\u003de0000002ff9f0bd8\n [\u003ca000000100009910\u003e] init+0x350/0x780\n                                sp\u003de0000002ff9f7e00 bsp\u003de0000002ff9f0ba8\n [\u003ca000000100011d30\u003e] kernel_thread_helper+0x30/0x60\n                                sp\u003de0000002ff9f7e30 bsp\u003de0000002ff9f0b80\n [\u003ca0000001000090c0\u003e] start_kernel_thread+0x20/0x40\n                                sp\u003de0000002ff9f7e30 bsp\u003de0000002ff9f0b80\n\nThe root cause is the device struct is initialized twice.\n\nIf the device is allocated dynamically by platform_device_alloc,\nplatform_device_alloc will initialize struct device, then,\nplatform_device_add should be used to register the device.\n\nThe difference between platform_device_register and platform_device_add is\nplatform_device_register will initiate the device while platform_device_add\nwon\u0027t.\n\nSigned-off-by: Zhang Yanmin \u003cyanmin.zhang@intel.com\u003e\nCc: Corey Minyard \u003cminyard@acm.org\u003e\nCc: Greg KH \u003cgreg@kroah.com\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": "a41b8df240730f8a2fd89219fcc6b3c6100119b1",
      "old_mode": 33188,
      "old_path": "drivers/char/ipmi/ipmi_msghandler.c",
      "new_id": "c47add8e47df3009aaf25d6dffe4ded0b64f0773",
      "new_mode": 33188,
      "new_path": "drivers/char/ipmi/ipmi_msghandler.c"
    },
    {
      "type": "modify",
      "old_id": "abc5149e30e820c6e41c6c3477c2071f946e777c",
      "old_mode": 33188,
      "old_path": "drivers/char/ipmi/ipmi_si_intf.c",
      "new_id": "bb1fac104fda63470bae62d5c068263c00a5f8e6",
      "new_mode": 33188,
      "new_path": "drivers/char/ipmi/ipmi_si_intf.c"
    }
  ]
}
