)]}'
{
  "commit": "ee5bfa642a0d4b0f6ec6200bf96e5e647f93fcdb",
  "tree": "ed348c3f5d940b211919bc5191cfea5ea1b5a6fa",
  "parents": [
    "f8657e1b55901e6c227094258d1fa3642fa242bd"
  ],
  "author": {
    "name": "Vivek Goyal",
    "email": "vgoyal@in.ibm.com",
    "time": "Tue Feb 13 13:26:22 2007 +0100"
  },
  "committer": {
    "name": "Andi Kleen",
    "email": "andi@basil.nowhere.org",
    "time": "Tue Feb 13 13:26:22 2007 +0100"
  },
  "message": "[PATCH] generic: Break init() in two parts to avoid MODPOST warnings\n\no init() is a non __init function in .text section but it calls many\n  functions which are in .init.text section. Hence MODPOST generates lots\n  of cross reference warnings on i386 if compiled with CONFIG_RELOCATABLE\u003dy\n\nWARNING: vmlinux - Section mismatch: reference to .init.text:smp_prepare_cpus from .text between \u0027init\u0027 (at offset 0xc0101049) and \u0027rest_init\u0027\nWARNING: vmlinux - Section mismatch: reference to .init.text:migration_init from .text between \u0027init\u0027 (at offset 0xc010104e) and \u0027rest_init\u0027\nWARNING: vmlinux - Section mismatch: reference to .init.text:spawn_ksoftirqd from .text between \u0027init\u0027 (at offset 0xc0101053) and \u0027rest_init\u0027\n\no This patch breaks down init() in two parts. One part which can go\n  in .init.text section and can be freed and other part which has to\n  be non __init(init_post()). Now init() calls init_post() and init_post()\n  does not call any functions present in .init sections. Hence getting\n  rid of warnings.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4e9e92bb2b89623507e1c145a6c9a275da7686a6",
      "old_mode": 33188,
      "old_path": "init/main.c",
      "new_id": "62ded9f3b39353d601b5227f210f3e9cfecd3fb1",
      "new_mode": 33188,
      "new_path": "init/main.c"
    }
  ]
}
