)]}'
{
  "log": [
    {
      "commit": "70765aa4bdb8862a49fcf5b28f3deaf561cf5ae7",
      "tree": "602d7801848e2599f1f3d0d53253e30f85794514",
      "parents": [
        "5f5609df0c943b005847d3b2765d6dd47b624011"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Sat Jun 25 14:58:07 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Jun 25 16:24:51 2005 -0700"
      },
      "message": "[PATCH] kexec: kexec ppc support\n\nI have tweaked this patch slightly to handle an empty list\nof pages to relocate passed to relocate_new_kernel.  And\nI have added ppc_md.machine_crash_shutdown.  To keep up with\nthe changes in the generic kexec infrastructure.\n\nFrom: Albert Herranz \u003calbert_herranz@yahoo.es\u003e\n\nThe following patch adds support for kexec on the ppc32 platform.\n\nNon-OpenFirmware based platforms are likely to work directly without\nadditional changes on the kernel side.  The kexec-tools userland package\nmay need to be slightly updated, though.\n\nFor OpenFirmware based machines, additional work is still needed on the\nkernel side before kexec support is ready.  Benjamin Herrenschmidt is\nkindly working on that part.\n\nIn order for a ppc platform to use the kexec kernel services it must\nimplement some ppc_md hooks.  Otherwise, kexec will be explicitly disabled,\nas suggested by benh.\n\nThere are 3+1 new ppc_md hooks that a platform supporting kexec may\nimplement.  Two of them are mandatory for kexec to work.  See\ninclude/asm-ppc/machdep.h for details.\n\n- machine_kexec_prepare(image)\n\n  This function is called to make any arrangements to the image before it\n  is loaded.\n\n  This hook _MUST_ be provided by a platform in order to activate kexec\n  support for that platform.  Otherwise, the platform is considered to not\n  support kexec and the kexec_load system call will fail (that makes all\n  existing platforms by default non-kexec\u0027able).\n\n- machine_kexec_cleanup(image)\n\n  This function is called to make any cleanups on image after the loaded\n  image data it is freed.  This hook is optional.  A platform may or may\n  not provide this hook.\n\n- machine_kexec(image)\n\n  This function is called to perform the _actual_ kexec.  This hook\n  _MUST_ be provided by a platform in order to activate kexec support for\n  that platform.\n\n  If a platform provides machine_kexec_prepare but forgets to provide\n  machine_kexec, a kexec will fall back to a reboot.\n\n  A ready-to-use machine_kexec_simple() generic function is provided to,\n  hopefully, simplify kexec adoption for embedded platforms.  A platform\n  may call this function from its specific machine_kexec hook, like this:\n\nvoid myplatform_kexec(struct kimage *image)\n{\n        machine_kexec_simple(image);\n}\n\n- machine_shutdown()\n\n  This function is called to perform any machine specific shutdowns, not\n  already done by drivers.  This hook is optional.  A platform may or may\n  not provide this hook.\n\nAn example (trimmed) platform specific module for a platform supporting\nkexec through the existing machine_kexec_simple follows:\n\n/* ... */\n\n#ifdef CONFIG_KEXEC\nint myplatform_kexec_prepare(struct kimage *image)\n{\n        /* here, we can place additional preparations\n*/\n        return 0; /* yes, we support kexec */\n}\n\nvoid myplatform_kexec(struct kimage *image)\n{\n        machine_kexec_simple(image);\n}\n#endif /* CONFIG_KEXEC */\n\n/* ... */\n\nvoid __init\nplatform_init(unsigned long r3, unsigned long r4,\nunsigned long r5,\n              unsigned long r6, unsigned long r7)\n{\n\n/* ... */\n\n#ifdef CONFIG_KEXEC\n        ppc_md.machine_kexec_prepare \u003d\nmyplatform_kexec_prepare;\n        ppc_md.machine_kexec         \u003d\nmyplatform_kexec;\n#endif /* CONFIG_KEXEC */\n\n/* ... */\n\n}\n\nThe kexec ppc kernel support has been heavily tested on the GameCube Linux\nport, and, as reported in the fastboot mailing list, it has been tested too\non a Moto 82xx ppc by Rick Richardson.\n\nSigned-off-by: Albert Herranz \u003calbert_herranz@yahoo.es\u003e\nSigned-off-by: Eric Biederman \u003cebiederm@xmission.com\u003e\nAcked-by: 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"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
