)]}'
{
  "log": [
    {
      "commit": "2fa4341074cd02fb39aa23410740764948755635",
      "tree": "0b01f80d461ca836c686acf218677568c66abdbe",
      "parents": [
        "6a8811629e9aa611aa710162f9e02020bba52c87"
      ],
      "author": {
        "name": "Albin Tonnerre",
        "email": "albin.tonnerre@free-electrons.com",
        "time": "Wed Sep 23 15:57:38 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:05 2009 -0700"
      },
      "message": "include/linux/unaligned/{l,b}e_byteshift.h: fix usage for compressed kernels\n\nWhen unaligned accesses are required for uncompressing a kernel (such as\nfor LZO decompression on ARM in a patch that follows), including\n\u003clinux/kernel.h\u003e causes issues as it brings in a lot of things that are\nnot available in the decompression environment.\n\nlinux/kernel.h brings at least:\nextern int console_printk[];\nextern const char hex_asc[];\nwhich causes errors at link-time as they are not available when\ncompiling the pre-boot environement. There are also a few others:\n\n  arch/arm/boot/compressed/misc.o: In function `valid_user_regs\u0027:\n   arch/arm/include/asm/ptrace.h:158: undefined reference to `elf_hwcap\u0027\n  arch/arm/boot/compressed/misc.o: In function `console_silent\u0027:\n   include/linux/kernel.h:292: undefined reference to `console_printk\u0027\n  arch/arm/boot/compressed/misc.o: In function `console_verbose\u0027:\n   include/linux/kernel.h:297: undefined reference to `console_printk\u0027\n  arch/arm/boot/compressed/misc.o: In function `pack_hex_byte\u0027:\n   include/linux/kernel.h:360: undefined reference to `hex_asc\u0027\n  arch/arm/boot/compressed/misc.o: In function `hweight_long\u0027:\n   include/linux/bitops.h:45: undefined reference to `hweight32\u0027\n  arch/arm/boot/compressed/misc.o: In function `__cmpxchg_local_generic\u0027:\n   include/asm-generic/cmpxchg-local.h:21: undefined reference to `wrong_size_cmpxchg\u0027\n   include/asm-generic/cmpxchg-local.h:42: undefined reference to `wrong_size_cmpxchg\u0027\n  arch/arm/boot/compressed/misc.o: In function `__xchg\u0027:\n   arch/arm/include/asm/system.h:309: undefined reference to `__bad_xchg\u0027\n\nHowever, those files apparently use nothing from \u003clinux/kernel.h\u003e, all\nthey need is the declaration of types such as u32 or u64, so\n\u003clinux/types.h\u003e should be enough\n\nSigned-off-by: Albin Tonnerre \u003calbin.tonnerre@free-electrons.com\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Phillip Lougher \u003cphillip@lougher.demon.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "064106a91be5e76cb42c1ddf5d3871e3a1bd2a23",
      "tree": "7bb3931857c933343abf9a55d663e8a9b8af13ae",
      "parents": [
        "dddfbaf8f86894415abb8256b55da68dab966ebe"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Tue Apr 29 01:03:27 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:27 2008 -0700"
      },
      "message": "kernel: add common infrastructure for unaligned access\n\nCreate a linux/unaligned directory similar in spirit to the linux/byteorder\nfolder to hold generic implementations collected from various arches.\n\nCurrently there are five implementations:\n1) packed_struct.h: C-struct based, from asm-generic/unaligned.h\n2) le_byteshift.h: Open coded byte-swapping, heavily based on asm-arm\n3) be_byteshift.h: Open coded byte-swapping, heavily based on asm-arm\n4) memmove.h: taken from multiple implementations in tree\n5) access_ok.h: taken from x86 and others, unaligned access is ok.\n\nAll of the new implementations checks for sizes not equal to 1,2,4,8\nand will fail to link.\n\nAPI additions:\n\nget_unaligned_{le16|le32|le64|be16|be32|be64}(p) which is meant to replace\ncode of the form:\nle16_to_cpu(get_unaligned((__le16 *)p));\n\nput_unaligned_{le16|le32|le64|be16|be32|be64}(val, pointer) which is meant to\nreplace code of the form:\nput_unaligned(cpu_to_le16(val), (__le16 *)p);\n\nThe headers that arches should include from their asm/unaligned.h:\n\naccess_ok.h : Wrappers of the byteswapping functions in asm/byteorder\n\nChoose a particular implementation for little-endian access:\nle_byteshift.h\nle_memmove.h (arch must be LE)\nle_struct.h (arch must be LE)\n\nChoose a particular implementation for big-endian access:\nbe_byteshift.h\nbe_memmove.h (arch must be BE)\nbe_struct.h (arch must be BE)\n\nAfter including as needed from the above, include unaligned/generic.h and\ndefine your arch\u0027s get/put_unaligned as (for LE):\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ]
}
