)]}'
{
  "log": [
    {
      "commit": "6e5fdeedca610df600aabc393c4b1f44b128fe49",
      "tree": "52a34c30bef1501f19c691a759b81b6f2603cd32",
      "parents": [
        "bdfa97bf7263657b83bc5b68567a3a60dde84c5b"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Thu May 26 16:00:52 2011 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Oct 31 19:30:05 2011 -0400"
      },
      "message": "kernel: Fix files explicitly needing EXPORT_SYMBOL infrastructure\n\nThese files were getting \u003clinux/module.h\u003e via an implicit non-obvious\npath, but we want to crush those out of existence since they cost\ntime during compiles of processing thousands of lines of headers\nfor no reason.  Give them the lightweight header that just contains\nthe EXPORT_SYMBOL infrastructure.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "664a41b8a91bf78a01a751e15175e0008977685a",
      "tree": "d9dc15c83400ad2dfb430ff27ae3e7fdc9395856",
      "parents": [
        "983236b5741e557451f3ed4ec5ebf1f62a5b2c15",
        "ee2ce3a0b43d14d792d34cf88e7bc2091096744b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 30 00:08:53 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 30 00:08:53 2011 -0700"
      },
      "message": "Merge branch \u0027v4l_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6\n\n* \u0027v4l_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6: (430 commits)\n  [media] ir-mce_kbd-decoder: include module.h for its facilities\n  [media] ov5642: include module.h for its facilities\n  [media] em28xx: Fix DVB-C maxsize for em2884\n  [media] tda18271c2dd: Fix saw filter configuration for DVB-C @6MHz\n  [media] v4l: mt9v032: Fix Bayer pattern\n  [media] V4L: mt9m111: rewrite set_pixfmt\n  [media] V4L: mt9m111: fix missing return value check mt9m111_reg_clear\n  [media] V4L: initial driver for ov5642 CMOS sensor\n  [media] V4L: sh_mobile_ceu_camera: fix Oops when USERPTR mapping fails\n  [media] V4L: soc-camera: remove soc-camera bus and devices on it\n  [media] V4L: soc-camera: un-export the soc-camera bus\n  [media] V4L: sh_mobile_csi2: switch away from using the soc-camera bus notifier\n  [media] V4L: add media bus configuration subdev operations\n  [media] V4L: soc-camera: group struct field initialisations together\n  [media] V4L: soc-camera: remove now unused soc-camera specific PM hooks\n  [media] V4L: pxa-camera: switch to using standard PM hooks\n  [media] NetUP Dual DVB-T/C CI RF: force card hardware revision by module param\n  [media] Don\u0027t OOPS if videobuf_dvb_get_frontend return NULL\n  [media] NetUP Dual DVB-T/C CI RF: load firmware according card revision\n  [media] omap3isp: Support configurable HS/VS polarities\n  ...\n\nFix up conflicts:\n - arch/arm/mach-omap2/board-rx51-peripherals.c:\n     cleanup regulator supply definitions in mach-omap2\n   vs\n     OMAP3: RX-51: define vdds_csib regulator supply\n - drivers/staging/tm6000/tm6000-alsa.c (trivial)\n"
    },
    {
      "commit": "2330fb8242c3efc281ab8a2d3e22686023699955",
      "tree": "b0359e3869a8db4a2039f090f2f3292d37ca0e8d",
      "parents": [
        "5138870d68ffbf6fcdf019af5b2ce78bc5a1f837"
      ],
      "author": {
        "name": "Hans Verkuil",
        "email": "hans.verkuil@cisco.com",
        "time": "Tue Jun 07 11:43:57 2011 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Wed Jul 27 17:53:20 2011 -0300"
      },
      "message": "[media] v4l2-compat-ioctl32: add VIDIOC_DQEVENT support\n\nSigned-off-by: Hans Verkuil \u003chans.verkuil@cisco.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "c1095c6da518b0b64e724f629051fa67655cd8d9",
      "tree": "8c2e33ca6c8e3caa71437c3b69b36a8cf03b4f08",
      "parents": [
        "678624e401b0b7747762b5223fb23f86dcdacc93"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jul 27 12:49:44 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 27 12:53:36 2011 -0700"
      },
      "message": "signals: sys_ssetmask/sys_rt_sigsuspend should use set_current_blocked()\n\nsys_ssetmask(), sys_rt_sigsuspend() and compat_sys_rt_sigsuspend()\nchange -\u003eblocked directly.  This is not correct, see the changelog in\ne6fa16ab \"signal: sigprocmask() should do retarget_shared_pending()\"\n\nChange them to use set_current_blocked().\n\nAnother change is that now we are doing -\u003esaved_sigmask \u003d -\u003eblocked\nlockless, it doesn\u0027t make any sense to do this under -\u003esiglock.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nReviewed-by: Matt Fleming \u003cmatt.fleming@linux.intel.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1dda606c5f94b14a8f36c220d1d8844bab68a720",
      "tree": "cf78b5aa3d499d239079c392491bcf656fbe05e6",
      "parents": [
        "91e3d71db29d9b3b67b64e2a08e724a7ff538b4c"
      ],
      "author": {
        "name": "Alexander Graf",
        "email": "agraf@suse.de",
        "time": "Wed Jun 08 02:45:37 2011 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue Jul 12 13:16:17 2011 +0300"
      },
      "message": "KVM: Add compat ioctl for KVM_SET_SIGNAL_MASK\n\nKVM has an ioctl to define which signal mask should be used while running\ninside VCPU_RUN. At least for big endian systems, this mask is different\non 32-bit and 64-bit systems (though the size is identical).\n\nAdd a compat wrapper that converts the mask to whatever the kernel accepts,\nallowing 32-bit kvm user space to set signal masks.\n\nThis patch fixes qemu with --enable-io-thread on ppc64 hosts when running\n32-bit user land.\n\nSigned-off-by: Alexander Graf \u003cagraf@suse.de\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "0798b1dbfbd9ff2a370c5968c5f0621ef0075fe0",
      "tree": "c7f61ab9683786a070da0933b9981fc74a4d865f",
      "parents": [
        "ad363e0916423b2e6cdfcdc30ae707ec709f0a65",
        "6738d3210aabe3016a1b03cd98a7fc479c229197"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 15:35:32 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 15:35:32 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile: (26 commits)\n  arch/tile: prefer \"tilepro\" as the name of the 32-bit architecture\n  compat: include aio_abi.h for aio_context_t\n  arch/tile: cleanups for tilegx compat mode\n  arch/tile: allocate PCI IRQs later in boot\n  arch/tile: support signal \"exception-trace\" hook\n  arch/tile: use better definitions of xchg() and cmpxchg()\n  include/linux/compat.h: coding-style fixes\n  tile: add an RTC driver for the Tilera hypervisor\n  arch/tile: finish enabling support for TILE-Gx 64-bit chip\n  compat: fixes to allow working with tile arch\n  arch/tile: update defconfig file to something more useful\n  tile: do_hardwall_trap: do not play with task-\u003esighand\n  tile: replace mm-\u003ecpu_vm_mask with mm_cpumask()\n  tile,mn10300: add device parameter to dma_cache_sync()\n  audit: support the \"standard\" \u003casm-generic/unistd.h\u003e\n  arch/tile: clarify flush_buffer()/finv_buffer() function names\n  arch/tile: kernel-related cleanups from removing static page size\n  arch/tile: various header improvements for building drivers\n  arch/tile: disable GX prefetcher during cache flush\n  arch/tile: tolerate disabling CONFIG_BLK_DEV_INITRD\n  ...\n"
    },
    {
      "commit": "be84cb43833ee40a42e08f5425d20310f16229c7",
      "tree": "0d5ddbaac88aa99ab5dbd0925ec525d399405fd5",
      "parents": [
        "d2e48c1d4184a0baa4bf09920b63661e0b860b8c"
      ],
      "author": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@tilera.com",
        "time": "Mon May 09 13:12:30 2011 -0400"
      },
      "committer": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@tilera.com",
        "time": "Thu May 12 15:51:36 2011 -0400"
      },
      "message": "compat: fixes to allow working with tile arch\n\nThe existing \u003casm-generic/unistd.h\u003e mechanism doesn\u0027t really provide\nenough to create the 64-bit \"compat\" ABI properly in a generic way,\nsince the compat ABI is a mix of things were you can re-use the 64-bit\nversions of syscalls and things where you need a compat wrapper.\n\nTo provide this in the most direct way possible, I added two new macros\nto go along with the existing __SYSCALL and __SC_3264 macros: __SC_COMP\nand SC_COMP_3264.  These macros take an additional argument, typically a\n\"compat_sys_xxx\" function, which is passed to __SYSCALL if you define\n__SYSCALL_COMPAT when including the header, resulting in a pointer to\nthe compat function being placed in the generated syscall table.\n\nThe change also adds some missing definitions to \u003clinux/compat.h\u003e so that\nit actually has declarations for all the compat syscalls, since the\n\"[nr] \u003d ##call\" approach requires proper C declarations for all the\nfunctions included in the syscall table.\n\nFinally, compat.c defines compat_sys_sigpending() and\ncompat_sys_sigprocmask() even if the underlying architecture doesn\u0027t\nrequest it, which tries to pull in undefined compat_old_sigset_t defines.\nWe need to guard those compat syscall definitions with appropriate\n__ARCH_WANT_SYS_xxx ifdefs.\n\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\n"
    },
    {
      "commit": "943df1485a8ff0e600729e082e568ece04d4de9e",
      "tree": "d2d4b7b41f163e011cb7a373376c9ae87e5941be",
      "parents": [
        "fe0faa005d43bc44c357631d51c273806086caa4"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Apr 27 21:44:14 2011 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 28 13:01:38 2011 +0200"
      },
      "message": "signal: introduce do_sigtimedwait() to factor out compat/native code\n\nFactor out the common code in sys_rt_sigtimedwait/compat_sys_rt_sigtimedwait\nto the new helper, do_sigtimedwait().\n\nAdd the comment to document the extra tick we add to timespec_to_jiffies(ts),\nthanks to Linus who explained this to me.\n\nPerhaps it would be better to move compat_sys_rt_sigtimedwait() into\nsignal.c under CONFIG_COMPAT, then we can make do_sigtimedwait() static.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Matt Fleming \u003cmatt.fleming@linux.intel.com\u003e\n"
    },
    {
      "commit": "fe0faa005d43bc44c357631d51c273806086caa4",
      "tree": "7977c5ec7c452ed3a0036747b8d8861b742c30b3",
      "parents": [
        "bb7efee2ca63b08795ffb3cda96fc89d2e641b79"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Apr 27 21:24:19 2011 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 28 13:01:38 2011 +0200"
      },
      "message": "signal: sys_rt_sigtimedwait: simplify the timeout logic\n\nNo functional changes, cleanup compat_sys_rt_sigtimedwait() and\nsys_rt_sigtimedwait().\n\nCalculate the timeout before we take -\u003esiglock, this simplifies and\nlessens the code. Use timespec_valid() to check the timespec.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Matt Fleming \u003cmatt.fleming@linux.intel.com\u003e\n"
    },
    {
      "commit": "f1f1d5ebd10ffa4242bce7a90a56a222d6b7bc77",
      "tree": "ca04ea979512e0037c52bca855dbf050b1b08360",
      "parents": [
        "65f5d80bdf83ec0d7f3887db10153bf3f36ed73c"
      ],
      "author": {
        "name": "Richard Cochran",
        "email": "richardcochran@gmail.com",
        "time": "Tue Feb 01 13:52:26 2011 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Feb 02 15:28:19 2011 +0100"
      },
      "message": "posix-timers: Introduce a syscall for clock tuning.\n\nA new syscall is introduced that allows tuning of a POSIX clock. The\nnew call, clock_adjtime, takes two parameters, the clock ID and a\npointer to a struct timex. Any ADJTIMEX(2) operation may be requested\nvia this system call, but various POSIX clocks may or may not support\ntuning.\n\n[ tglx: Adapted to the posix-timer cleanup series. Avoid copy_to_user\n  \tin the error case ]\n\nSigned-off-by: Richard Cochran \u003crichard.cochran@omicron.at\u003e\nAcked-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nLKML-Reference: \u003c20110201134419.869804645@linutronix.de\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "65f5d80bdf83ec0d7f3887db10153bf3f36ed73c",
      "tree": "f39ac804f77d21bdfff286c9a38306c0d48b3db0",
      "parents": [
        "094aa1881fdc1b8889b442eb3511b31f3ec2b762"
      ],
      "author": {
        "name": "Richard Cochran",
        "email": "richardcochran@gmail.com",
        "time": "Tue Feb 01 13:52:23 2011 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Feb 02 15:28:18 2011 +0100"
      },
      "message": "time: Splitout compat timex accessors\n\nSplit out the compat timex accessors into separate\nfunctions. Preparatory patch for a new syscall.\n\n[ tglx: Split that patch from Richards \"posix-timers: Introduce a\n  \tsyscall for clock tuning.\". Keeps the changes strictly\n  \tseparate ]\n\nOriginally-from: Richard Cochran \u003crichardcochran@gmail.com\u003e\nAcked-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLKML-Reference: \u003c20110201134419.772343089@linutronix.de\u003e\n"
    },
    {
      "commit": "c41d68a513c71e35a14f66d71782d27a79a81ea6",
      "tree": "2729377678b4f0fa516404eec6c3a87a4fd7c823",
      "parents": [
        "bfa88ea7ee9e6b4fd673e45a8cc0a8e0b7ef4761"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Tue Sep 07 16:16:18 2010 -0700"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Tue Sep 14 16:08:45 2010 -0700"
      },
      "message": "compat: Make compat_alloc_user_space() incorporate the access_ok()\n\ncompat_alloc_user_space() expects the caller to independently call\naccess_ok() to verify the returned area.  A missing call could\nintroduce problems on some architectures.\n\nThis patch incorporates the access_ok() check into\ncompat_alloc_user_space() and also adds a sanity check on the length.\nThe existing compat_alloc_user_space() implementations are renamed\narch_compat_alloc_user_space() and are used as part of the\nimplementation of the new global function.\n\nThis patch assumes NULL will cause __get_user()/__put_user() to either\nfail or access userspace on all architectures.  This should be\nfollowed by checking the return value of compat_access_user_space()\nfor NULL in the callers, at which time the access_ok() in the callers\ncan also be removed.\n\nReported-by: Ben Hawkes \u003chawkes@sota.gen.nz\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\nAcked-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nAcked-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Fenghua Yu \u003cfenghua.yu@intel.com\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Helge Deller \u003cdeller@gmx.de\u003e\nCc: James Bottomley \u003cjejb@parisc-linux.org\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: \u003cstable@kernel.org\u003e\n"
    },
    {
      "commit": "b95183453af2ed14a5c7027e58049c9fd17e92ce",
      "tree": "8db2687b9508de182615915c7df1edf26d08638c",
      "parents": [
        "5b41535aac0c07135ff6a4c5c2ae115d1c20c0bc"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Tue May 04 11:28:25 2010 +0200"
      },
      "committer": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Fri Jul 16 09:48:48 2010 +0200"
      },
      "message": "rlimits: switch more rlimit syscalls to do_prlimit\n\nAfter we added more generic do_prlimit, switch sys_getrlimit to that.\nAlso switch compat handling, so we can get rid of ugly __user casts\nand avoid setting process\u0027 address limit to kernel data and back.\n\nSigned-off-by: Jiri Slaby \u003cjslaby@suse.cz\u003e\n"
    },
    {
      "commit": "fa9dc265ace9774e62f0e31108e5f47911124bda",
      "tree": "f5230efca0ccf0cfec7690a6c45209cff938d740",
      "parents": [
        "cf77e988ddfc7f047ac1ddc72cadb5eee7e09293"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Wed May 19 09:37:41 2010 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 19 11:48:18 2010 -0700"
      },
      "message": "cpumask: fix compat getaffinity\n\nCommit a45185d2d \"cpumask: convert kernel/compat.c\" broke libnuma, which\nabuses sched_getaffinity to find out NR_CPUS in order to parse\n/sys/devices/system/node/node*/cpumap.\n\nOn NUMA systems with less than 32 possibly CPUs, the current\ncompat_sys_sched_getaffinity now returns \u00274\u0027 instead of the actual\nNR_CPUS/8, which makes libnuma bail out when parsing the cpumap.\n\nThe libnuma call sched_getaffinity(0, bitmap, 4096) at first.  It mean\nthe libnuma expect the return value of sched_getaffinity() is either len\nargument or NR_CPUS.  But it doesn\u0027t expect to return nr_cpu_ids.\n\nStrictly speaking, userland requirement are\n\n1) Glibc assume the return value mean the lengh of initialized\n   of mask argument. E.g. if sched_getaffinity(1024) return 128,\n   glibc make zero fill rest 896 byte.\n2) Libnuma assume the return value can be used to guess NR_CPUS\n   in kernel. It assume len-arg\u003cNR_CPUS makes -EINVAL. But\n   it try len\u003d4096 at first and 4096 is always bigger than\n   NR_CPUS. Then, if we remove strange min_length normalization,\n   we never hit -EINVAL case.\n\nsched_getaffinity() already solved this issue.  This patch adapts\ncompat_sys_sched_getaffinity() to match the non-compat case.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nReported-by: Ken Werner \u003cken.werner@web.de\u003e\nCc: stable@kernel.org\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "62ab4505e3efaf67784f84059e0fb9cedb1728ea",
      "tree": "54da8395eaf30a0386cd71214fbabe94ded229e2",
      "parents": [
        "30b4ae8a4498543863501f707879b7220b649602"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Apr 04 21:01:06 2009 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Apr 30 19:24:24 2009 +0200"
      },
      "message": "signals: implement sys_rt_tgsigqueueinfo\n\nsys_kill has the per thread counterpart sys_tgkill. sigqueueinfo is\nmissing a thread directed counterpart. Such an interface is important\nfor migrating applications from other OSes which have the per thread\ndelivery implemented.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReviewed-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nAcked-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\n"
    },
    {
      "commit": "e3d5a27d5862b6425d0879272e24abecf7245105",
      "tree": "c8a873e926d4768ae2ecac50c46c5121c8472876",
      "parents": [
        "af9379c7121d5543722c00bbd1adf7dcaa0b6448"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Tue Jan 06 14:41:02 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:13 2009 -0800"
      },
      "message": "Allow times and time system calls to return small negative values\n\nAt the moment, the times() system call will appear to fail for a period\nshortly after boot, while the value it want to return is between -4095 and\n-1.  The same thing will also happen for the time() system call on 32-bit\nplatforms some time in 2106 or so.\n\nOn some platforms, such as x86, this is unavoidable because of the system\ncall ABI, but other platforms such as powerpc have a separate error\nindication from the return value, so system calls can in fact return small\nnegative values without indicating an error.  On those platforms,\nforce_successful_syscall_return() provides a way to indicate that the\nsystem call return value should not be treated as an error even if it is\nin the range which would normally be taken as a negative error number.\n\nThis adds a force_successful_syscall_return() call to the time() and\ntimes() system calls plus their 32-bit compat versions, so that they don\u0027t\nerroneously indicate an error on those platforms whose system call ABI has\na separate error indication.  This will not affect anything on other\nplatforms.\n\nJoakim Tjernlund added the fix for time() and the compat versions of\ntime() and times(), after I did the fix for times().\n\nSigned-off-by: Joakim Tjernlund \u003cJoakim.Tjernlund@transmode.se\u003e\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a45185d2d7108b01b90b9e0293377be4d6346dde",
      "tree": "c7adcc5e91e4607bfdd0cd88e816c8d814582fb4",
      "parents": [
        "3e597945384dee1457240158eb81e3afb90b68c2"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 01 10:12:24 2009 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 01 10:12:24 2009 +1030"
      },
      "message": "cpumask: convert kernel/compat.c\n\nImpact: Reduce stack usage, use new cpumask API.\n\nStraightforward conversion; cpumasks\u0027 size is given by cpumask_size() (now\na variable rather than fixed) and on-stack cpu masks use cpumask_var_t.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "c465a76af658b443075d6efee1c3131257643020",
      "tree": "63c28c9fab02dedec7f03cee4a3ef7fe4dc1c072",
      "parents": [
        "2d42244ae71d6c7b0884b5664cf2eda30fb2ae68",
        "1b02469088ac7a13d7e622b618b7410d0f1ce5ec",
        "fb02fbc14d17837b4b7b02dbb36142c16a7bf208",
        "d40e944c25fb4642adb2a4c580a48218a9f3f824",
        "1508487e7f16d992ad23cabd3712563ff912f413",
        "322acf6585f3c4e82ee32a246b0483ca0f6ad3f4"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Oct 20 13:14:06 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Oct 20 13:14:06 2008 +0200"
      },
      "message": "Merge branches \u0027timers/clocksource\u0027, \u0027timers/hrtimers\u0027, \u0027timers/nohz\u0027, \u0027timers/ntp\u0027, \u0027timers/posixtimers\u0027 and \u0027timers/debug\u0027 into v28-timers-for-linus\n"
    },
    {
      "commit": "b418da16dd44810e5d5a22bba377cca80512a524",
      "tree": "20ac32ea027bb8d978a22fbfaf6580fd34518aa5",
      "parents": [
        "f7a5000f7a8924e9c5fad1801616601d6dc65a17"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Oct 15 22:02:06 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:33 2008 -0700"
      },
      "message": "compat: generic compat get/settimeofday\n\nNothing arch specific in get/settimeofday.  The details of the timeval\nconversion varied a little from arch to arch, but all with the same\nresults.\n\nAlso add an extern declaration for sys_tz to linux/time.h because externs\nin .c files are fowned upon.  I\u0027ll kill the externs in various other files\nin a sparate patch.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e [ sparc bits ]\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nAcked-by: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: Grant Grundler \u003cgrundler@parisc-linux.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f06febc96ba8e0af80bcc3eaec0a109e88275fac",
      "tree": "46dba9432ef25d2eae9434ff2df638c7a268c0f1",
      "parents": [
        "6bfb09a1005193be5c81ebac9f3ef85210142650"
      ],
      "author": {
        "name": "Frank Mayhar",
        "email": "fmayhar@google.com",
        "time": "Fri Sep 12 09:54:39 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Sep 14 16:25:35 2008 +0200"
      },
      "message": "timers: fix itimer/many thread hang\n\nOverview\n\nThis patch reworks the handling of POSIX CPU timers, including the\nITIMER_PROF, ITIMER_VIRT timers and rlimit handling.  It was put together\nwith the help of Roland McGrath, the owner and original writer of this code.\n\nThe problem we ran into, and the reason for this rework, has to do with using\na profiling timer in a process with a large number of threads.  It appears\nthat the performance of the old implementation of run_posix_cpu_timers() was\nat least O(n*3) (where \"n\" is the number of threads in a process) or worse.\nEverything is fine with an increasing number of threads until the time taken\nfor that routine to run becomes the same as or greater than the tick time, at\nwhich point things degrade rather quickly.\n\nThis patch fixes bug 9906, \"Weird hang with NPTL and SIGPROF.\"\n\nCode Changes\n\nThis rework corrects the implementation of run_posix_cpu_timers() to make it\nrun in constant time for a particular machine.  (Performance may vary between\none machine and another depending upon whether the kernel is built as single-\nor multiprocessor and, in the latter case, depending upon the number of\nrunning processors.)  To do this, at each tick we now update fields in\nsignal_struct as well as task_struct.  The run_posix_cpu_timers() function\nuses those fields to make its decisions.\n\nWe define a new structure, \"task_cputime,\" to contain user, system and\nscheduler times and use these in appropriate places:\n\nstruct task_cputime {\n\tcputime_t utime;\n\tcputime_t stime;\n\tunsigned long long sum_exec_runtime;\n};\n\nThis is included in the structure \"thread_group_cputime,\" which is a new\nsubstructure of signal_struct and which varies for uniprocessor versus\nmultiprocessor kernels.  For uniprocessor kernels, it uses \"task_cputime\" as\na simple substructure, while for multiprocessor kernels it is a pointer:\n\nstruct thread_group_cputime {\n\tstruct task_cputime totals;\n};\n\nstruct thread_group_cputime {\n\tstruct task_cputime *totals;\n};\n\nWe also add a new task_cputime substructure directly to signal_struct, to\ncache the earliest expiration of process-wide timers, and task_cputime also\nreplaces the it_*_expires fields of task_struct (used for earliest expiration\nof thread timers).  The \"thread_group_cputime\" structure contains process-wide\ntimers that are updated via account_user_time() and friends.  In the non-SMP\ncase the structure is a simple aggregator; unfortunately in the SMP case that\nsimplicity was not achievable due to cache-line contention between CPUs (in\none measured case performance was actually _worse_ on a 16-cpu system than\nthe same test on a 4-cpu system, due to this contention).  For SMP, the\nthread_group_cputime counters are maintained as a per-cpu structure allocated\nusing alloc_percpu().  The timer functions update only the timer field in\nthe structure corresponding to the running CPU, obtained using per_cpu_ptr().\n\nWe define a set of inline functions in sched.h that we use to maintain the\nthread_group_cputime structure and hide the differences between UP and SMP\nimplementations from the rest of the kernel.  The thread_group_cputime_init()\nfunction initializes the thread_group_cputime structure for the given task.\nThe thread_group_cputime_alloc() is a no-op for UP; for SMP it calls the\nout-of-line function thread_group_cputime_alloc_smp() to allocate and fill\nin the per-cpu structures and fields.  The thread_group_cputime_free()\nfunction, also a no-op for UP, in SMP frees the per-cpu structures.  The\nthread_group_cputime_clone_thread() function (also a UP no-op) for SMP calls\nthread_group_cputime_alloc() if the per-cpu structures haven\u0027t yet been\nallocated.  The thread_group_cputime() function fills the task_cputime\nstructure it is passed with the contents of the thread_group_cputime fields;\nin UP it\u0027s that simple but in SMP it must also safely check that tsk-\u003esignal\nis non-NULL (if it is it just uses the appropriate fields of task_struct) and,\nif so, sums the per-cpu values for each online CPU.  Finally, the three\nfunctions account_group_user_time(), account_group_system_time() and\naccount_group_exec_runtime() are used by timer functions to update the\nrespective fields of the thread_group_cputime structure.\n\nNon-SMP operation is trivial and will not be mentioned further.\n\nThe per-cpu structure is always allocated when a task creates its first new\nthread, via a call to thread_group_cputime_clone_thread() from copy_signal().\nIt is freed at process exit via a call to thread_group_cputime_free() from\ncleanup_signal().\n\nAll functions that formerly summed utime/stime/sum_sched_runtime values from\nfrom all threads in the thread group now use thread_group_cputime() to\nsnapshot the values in the thread_group_cputime structure or the values in\nthe task structure itself if the per-cpu structure hasn\u0027t been allocated.\n\nFinally, the code in kernel/posix-cpu-timers.c has changed quite a bit.\nThe run_posix_cpu_timers() function has been split into a fast path and a\nslow path; the former safely checks whether there are any expired thread\ntimers and, if not, just returns, while the slow path does the heavy lifting.\nWith the dedicated thread group fields, timers are no longer \"rebalanced\" and\nthe process_timer_rebalance() function and related code has gone away.  All\nsumming loops are gone and all code that used them now uses the\nthread_group_cputime() inline.  When process-wide timers are set, the new\ntask_cputime structure in signal_struct is used to cache the earliest\nexpiration; this is checked in the fast path.\n\nPerformance\n\nThe fix appears not to add significant overhead to existing operations.  It\ngenerally performs the same as the current code except in two cases, one in\nwhich it performs slightly worse (Case 5 below) and one in which it performs\nvery significantly better (Case 2 below).  Overall it\u0027s a wash except in those\ntwo cases.\n\nI\u0027ve since done somewhat more involved testing on a dual-core Opteron system.\n\nCase 1: With no itimer running, for a test with 100,000 threads, the fixed\n\tkernel took 1428.5 seconds, 513 seconds more than the unfixed system,\n\tall of which was spent in the system.  There were twice as many\n\tvoluntary context switches with the fix as without it.\n\nCase 2: With an itimer running at .01 second ticks and 4000 threads (the most\n\tan unmodified kernel can handle), the fixed kernel ran the test in\n\teight percent of the time (5.8 seconds as opposed to 70 seconds) and\n\thad better tick accuracy (.012 seconds per tick as opposed to .023\n\tseconds per tick).\n\nCase 3: A 4000-thread test with an initial timer tick of .01 second and an\n\tinterval of 10,000 seconds (i.e. a timer that ticks only once) had\n\tvery nearly the same performance in both cases:  6.3 seconds elapsed\n\tfor the fixed kernel versus 5.5 seconds for the unfixed kernel.\n\nWith fewer threads (eight in these tests), the Case 1 test ran in essentially\nthe same time on both the modified and unmodified kernels (5.2 seconds versus\n5.8 seconds).  The Case 2 test ran in about the same time as well, 5.9 seconds\nversus 5.4 seconds but again with much better tick accuracy, .013 seconds per\ntick versus .025 seconds per tick for the unmodified kernel.\n\nSince the fix affected the rlimit code, I also tested soft and hard CPU limits.\n\nCase 4: With a hard CPU limit of 20 seconds and eight threads (and an itimer\n\trunning), the modified kernel was very slightly favored in that while\n\tit killed the process in 19.997 seconds of CPU time (5.002 seconds of\n\twall time), only .003 seconds of that was system time, the rest was\n\tuser time.  The unmodified kernel killed the process in 20.001 seconds\n\tof CPU (5.014 seconds of wall time) of which .016 seconds was system\n\ttime.  Really, though, the results were too close to call.  The results\n\twere essentially the same with no itimer running.\n\nCase 5: With a soft limit of 20 seconds and a hard limit of 2000 seconds\n\t(where the hard limit would never be reached) and an itimer running,\n\tthe modified kernel exhibited worse tick accuracy than the unmodified\n\tkernel: .050 seconds/tick versus .028 seconds/tick.  Otherwise,\n\tperformance was almost indistinguishable.  With no itimer running this\n\ttest exhibited virtually identical behavior and times in both cases.\n\nIn times past I did some limited performance testing.  those results are below.\n\nOn a four-cpu Opteron system without this fix, a sixteen-thread test executed\nin 3569.991 seconds, of which user was 3568.435s and system was 1.556s.  On\nthe same system with the fix, user and elapsed time were about the same, but\nsystem time dropped to 0.007 seconds.  Performance with eight, four and one\nthread were comparable.  Interestingly, the timer ticks with the fix seemed\nmore accurate:  The sixteen-thread test with the fix received 149543 ticks\nfor 0.024 seconds per tick, while the same test without the fix received 58720\nfor 0.061 seconds per tick.  Both cases were configured for an interval of\n0.01 seconds.  Again, the other tests were comparable.  Each thread in this\ntest computed the primes up to 25,000,000.\n\nI also did a test with a large number of threads, 100,000 threads, which is\nimpossible without the fix.  In this case each thread computed the primes only\nup to 10,000 (to make the runtime manageable).  System time dominated, at\n1546.968 seconds out of a total 2176.906 seconds (giving a user time of\n629.938s).  It received 147651 ticks for 0.015 seconds per tick, still quite\naccurate.  There is obviously no comparable test without the fix.\n\nSigned-off-by: Frank Mayhar \u003cfmayhar@google.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "153b5d054ac2d98ea0d86504884326b6777f683d",
      "tree": "0512b4239959814a6cc6aa6c9e77abc36d3ab2f0",
      "parents": [
        "9f14f669d18477fe3df071e2fa4da36c00acee8e"
      ],
      "author": {
        "name": "Roman Zippel",
        "email": "zippel@linux-m68k.org",
        "time": "Thu May 01 04:34:37 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 01 08:03:59 2008 -0700"
      },
      "message": "ntp: support for TAI\n\nThis adds support for setting the TAI value (International Atomic Time).  The\nvalue is reported back to userspace via timex (as we don\u0027t have a\nntp_gettime() syscall).\n\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4e4c22c71144c1b2e22c257ec6cf08ccb5be1165",
      "tree": "0a41fb405ab60654f70ead9698d5ce414a066c37",
      "parents": [
        "80fe728d593e3a048a56610de932919f7d6d968a"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Wed Apr 30 00:53:06 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:37 2008 -0700"
      },
      "message": "signals: add set_restore_sigmask\n\nThis adds the set_restore_sigmask() inline in \u003clinux/thread_info.h\u003e and\nreplaces every set_thread_flag(TIF_RESTORE_SIGMASK) with a call to it.  No\nchange, but abstracts the details of the flag protocol from all the calls.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b53e921ba1cff8453dc9a87a84052fa12d5b30bd",
      "tree": "021cadb6c58543ecccd95b55fc319f249ebf176e",
      "parents": [
        "f9a86fcbbb1e5542eabf45c9144ac4b6330861a4"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Fri Apr 04 18:11:08 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 19 19:44:59 2008 +0200"
      },
      "message": "generic: reduce stack pressure in sched_affinity\n\n  * Modify sched_affinity functions to pass cpumask_t variables by reference\n    instead of by value.\n\n  * Use new set_cpus_allowed_ptr function.\n\nDepends on:\n\t[sched-devel]: sched: add new set_cpus_allowed_ptr function\n\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Cliff Wickman \u003ccpw@sgi.com\u003e\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "029a07e0311c7fef968d44b50beca53969cee40b",
      "tree": "a062017b78508e5d91d7063e24f374c21215ff02",
      "parents": [
        "a332d86d3c262cddd3de0bfa90e1910de60b4f95"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun Feb 10 09:17:43 2008 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Apr 17 12:22:30 2008 +0200"
      },
      "message": "hrtimer: use nanosleep specific restart_block fields\n\nConvert all the nanosleep related users of restart_block to the\nnew nanosleep specific restart_block fields.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "c289b074b66e2e59c65aba73f40b99e797e92d2f",
      "tree": "03ecf2381f33941e8d84e1d5b2d8e106109ea7da",
      "parents": [
        "416529374b4793ba2d2e97e736d108a2e0f3ef07"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 01 20:41:30 2008 +0300"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun Feb 10 10:48:03 2008 +0100"
      },
      "message": "hrtimer: don\u0027t modify restart_block-\u003efn in restart functions\n\nhrtimer_nanosleep_restart() clears/restores restart_block-\u003efn. This is\npointless and complicates its usage. Note that if sys_restart_syscall()\ndoesn\u0027t actually happen, we have a bogus \"pending\" restart-\u003efn anyway,\nthis is harmless.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nCc: Pavel Emelyanov \u003cxemul@sw.ru\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Toyo Abe \u003ctoyoa@mvista.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n"
    },
    {
      "commit": "416529374b4793ba2d2e97e736d108a2e0f3ef07",
      "tree": "2523182bf1dd501aeef28a2c578d86b95cd90683",
      "parents": [
        "080344b98805553f9b01de0f59a41b1533036d8d"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 01 20:35:31 2008 +0300"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun Feb 10 10:48:03 2008 +0100"
      },
      "message": "hrtimer: fix *rmtp/restarts handling in compat_sys_nanosleep()\n\nSpotted by Pavel Emelyanov and Alexey Dobriyan.\n\ncompat_sys_nanosleep() implicitly uses hrtimer_nanosleep_restart(), this can\u0027t\nwork. Make a suitable compat_nanosleep_restart() helper.\n\nIntroduced by commit c70878b4e0b6cf8d2f1e46319e48e821ef4a8aba\nhrtimer: hook compat_sys_nanosleep up to high res timer code\n\nAlso, set -\u003eaddr_limit \u003d KERNEL_DS before doing hrtimer_nanosleep(), this func\nwas changed by the previous patch and now takes the \"__user *\" parameter.\n\nThanks to Ingo Molnar for fixing the bug in this patch.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nCc: Pavel Emelyanov \u003cxemul@sw.ru\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Toyo Abe \u003ctoyoa@mvista.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n"
    },
    {
      "commit": "58f9b52ee8712283f7ffedb661df678c61e88a91",
      "tree": "fe6d2e1bca6befd8ca347487a7c053b8136320ad",
      "parents": [
        "2af170dd241810212cbdbdc802ba7d39e3fb23b9",
        "c70878b4e0b6cf8d2f1e46319e48e821ef4a8aba"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 15:12:41 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 15:12:41 2007 -0700"
      },
      "message": "Merge ssh://master.kernel.org/pub/scm/linux/kernel/git/tglx/linux-2.6-hrt\n\n* ssh://master.kernel.org/pub/scm/linux/kernel/git/tglx/linux-2.6-hrt:\n  hrtimer: hook compat_sys_nanosleep up to high res timer code\n  hrtimer: Rework hrtimer_nanosleep to make sys_compat_nanosleep easier\n"
    },
    {
      "commit": "bd3a8492baecde685a7568f9785651e9b11747f5",
      "tree": "60226551eab0fb11c918fdb87d545ccca2a3032a",
      "parents": [
        "9f8dbe9c9ccd847b07a374f92f3c71251e5789cf"
      ],
      "author": {
        "name": "Daniel Walker",
        "email": "dwalker@mvista.com",
        "time": "Thu Oct 18 03:06:09 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 14:37:25 2007 -0700"
      },
      "message": "whitespace fixes: compat syscalls\n\nSigned-off-by: Daniel Walker \u003cdwalker@mvista.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c70878b4e0b6cf8d2f1e46319e48e821ef4a8aba",
      "tree": "a05d3dc9f2dfe2a0f18819b4eb60ba7f9d7833f6",
      "parents": [
        "04c227140fed77587432667a574b14736a06dd7f"
      ],
      "author": {
        "name": "Anton Blanchard",
        "email": "anton@samba.org",
        "time": "Mon Oct 15 16:13:56 2007 -0500"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Oct 18 22:54:18 2007 +0200"
      },
      "message": "hrtimer: hook compat_sys_nanosleep up to high res timer code\n\nNow we have high res timers on ppc64 I thought Id test them. It turns\nout compat_sys_nanosleep hasnt been converted to the hrtimer code and so\nis limited to HZ resolution.\n\nThe follow patch converts compat_sys_nanosleep to use high res timers.\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "83f5d1266926c75890f1bc4678e49d79483cb573",
      "tree": "ae97719503b7fe3688413655d89772bb8b644312",
      "parents": [
        "57ac8898508638ca6d15ecd8b911a431d673ff30"
      ],
      "author": {
        "name": "Davide Libenzi",
        "email": "davidel@xmailserver.org",
        "time": "Thu May 10 22:23:18 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 11 08:29:36 2007 -0700"
      },
      "message": "signal/timer/event: timerfd compat code\n\nThis patch implements the necessary compat code for the timerfd system call.\n\nSigned-off-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d4d23add3abcd18d8021b99f230df608ccb2f007",
      "tree": "756c5a7d21a9f5a25f10bfcec40c01aecc596c2f",
      "parents": [
        "72fd4a35a824331d7a0f4168d7576502d95d34b3"
      ],
      "author": {
        "name": "Kyle McMartin",
        "email": "kyle@parisc-linux.org",
        "time": "Sat Feb 10 01:46:00 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Feb 11 10:51:32 2007 -0800"
      },
      "message": "[PATCH] Common compat_sys_sysinfo\n\nI noticed that almost all architectures implemented exactly the same\nsys32_sysinfo...  except parisc, where a bug was to be found in handling of\nthe uptime.  So let\u0027s remove a whole whack of code for fun and profit.\nCribbed compat_sys_sysinfo from x86_64\u0027s implementation, since I figured it\nwould be the best tested.\n\nThis patch incorporates Arnd\u0027s suggestion of not using set_fs/get_fs, but\ninstead extracting out the common code from sys_sysinfo.\n\nCc: Christoph Hellwig \u003chch@infradead.org\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"
    },
    {
      "commit": "3fd593979802f81ff6452596ac61e3840f917589",
      "tree": "9ce40cdd152502426e5a7161f93a248f1da4d1fc",
      "parents": [
        "1f6f61649d8c64d7a3a4d143405df9a7bdd4af10"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Thu Nov 02 22:07:24 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Nov 03 12:27:59 2006 -0800"
      },
      "message": "[PATCH] Create compat_sys_migrate_pages\n\nThis is needed on bigendian 64bit architectures.\n\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5fa3839a64203b2ab727dcb37da9b2d7079fca28",
      "tree": "96cfe9d2ba7b186d049ecf7c8721fff7eab516d4",
      "parents": [
        "f87135762de4328c6f17897e803e6909bc056feb"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Sat Oct 28 10:38:46 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 28 11:30:54 2006 -0700"
      },
      "message": "[PATCH] Constify compat_get_bitmap argument\n\nThis means we can call it when the bitmap we want to fetch is declared\nconst.\n\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3f2e05e90e0846c42626e3d272454f26be34a1bc",
      "tree": "8a1701fcb7cde32373b6d7ceca09376416bf94eb",
      "parents": [
        "9ec52099e4b8678a60e9f93e41ad87885d64f3e6"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Mon Oct 02 14:12:31 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 08:03:31 2006 -0700"
      },
      "message": "[PATCH] BLOCK: Revert patch to hack around undeclared sigset_t in linux/compat.h\n\nRevert Andrew Morton\u0027s patch to temporarily hack around the lack of a\ndeclaration of sigset_t in linux/compat.h to make the block-disablement\npatches build on IA64.  This got accidentally pushed to Linus and should\nbe fixed in a different manner.\n\nAlso make linux/compat.h #include asm/signal.h to gain a definition of\nsigset_t so that it can externally declare sigset_from_compat().\n\nThis has been compile-tested for i386, x86_64, ia64, mips, mips64, frv, ppc and\nppc64 and run-tested on frv.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "07f3f05c1e3052b8656129b2a5aca9f888241a34",
      "tree": "3338b004d518a0d2189efdc3fb88e94e1c02c0ce",
      "parents": [
        "65e6f5bc8149165efb9d7bdbd142bb837d5edfeb"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Sat Sep 30 20:52:18 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Sat Sep 30 20:52:18 2006 +0200"
      },
      "message": "[PATCH] BLOCK: Move extern declarations out of fs/*.c into header files [try #6]\n\nCreate a new header file, fs/internal.h, for common definitions local to the\nsources in the fs/ directory.\n\nMove extern definitions that should be in header files from fs/*.c to\nfs/internal.h or other main header files where they span directories.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "1711ef3866b0360e102327389fe4b76c849bbe83",
      "tree": "b74a2cb6167840563d450859a571d6685966b771",
      "parents": [
        "9c4751fd0eab5b8ebbfafb28cbcc8e03b0da5933"
      ],
      "author": {
        "name": "Toyo Abe",
        "email": "toyoa@mvista.com",
        "time": "Fri Sep 29 02:00:28 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:15 2006 -0700"
      },
      "message": "[PATCH] posix-timers: Fix clock_nanosleep() doesn\u0027t return the remaining time in compatibility mode\n\nThe clock_nanosleep() function does not return the time remaining when the\nsleep is interrupted by a signal.\n\nThis patch creates a new call out, compat_clock_nanosleep_restart(), which\nhandles returning the remaining time after a sleep is interrupted.  This\npatch revives clock_nanosleep_restart().  It is now accessed via the new\ncall out.  The compat_clock_nanosleep_restart() is used for compatibility\naccess.\n\nSince this is implemented in compatibility mode the normal path is\nvirtually unaffected - no real performance impact.\n\nSigned-off-by: Toyo Abe \u003ctoyoa@mvista.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "838cd153a5250a79a302f6c5d68a4794b70c4ccb",
      "tree": "9122d37d7521c9345779aa84e2ca8d754d997475",
      "parents": [
        "92eeccd8badbfebe12383b6e5326b27dc707601d"
      ],
      "author": {
        "name": "akpm@osdl.org",
        "email": "akpm@osdl.org",
        "time": "Sun Jun 25 05:48:35 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:01:15 2006 -0700"
      },
      "message": "[PATCH] N32 sigset and __COMPAT_ENDIAN_SWAP__\n\nI\u0027m testing glibc on MIPS64, little-endian, N32, O32 and N64 multilibs.\n\nAmong the NPTL test failures seen are some arising from sigsuspend problems\nfor N32: it blocks the wrong signals, so SIGCANCEL (SIGRTMIN) is blocked\ndespite glibc\u0027s carefully excluding it from sets of signals to block.\nSpecifically, testing suggests it blocks signal N^32 instead of signal N,\nso (in the example tested) blocking SIGUSR1 (17) blocks signal 49 instead.\n\nglibc\u0027s sigset_t uses an array of unsigned long, as does the kernel.\nIn both cases, signal N+1 is represented as\n(1UL \u003c\u003c (N % (8 * sizeof (unsigned long)))) in word number\n(N / (8 * sizeof (unsigned long))).\n\nThus the N32 glibc uses an array of 32-bit words and the N64 kernel uses an\narray of 64-bit words.  For little-endian, the layout is the same, with\nsignals 1-32 in the first 4 bytes, signals 33-64 in the second, etc.; for\nbig-endian, userspace has that layout while in the kernel each 8 bytes have\nthe two halves swapped from the userspace layout.\n\nThe N32 sigsuspend syscall uses sigset_from_compat to convert the userspace\nsigset to kernel format.  If __COMPAT_ENDIAN_SWAP__ is *not* set, this uses\nlogic of the form\n\n  set-\u003esig[0] \u003d compat-\u003esig[0] | (((long)compat-\u003esig[1]) \u003c\u003c 32 )\n\nto convert the userspace sigset to a kernel one.  This looks correct to me\nfor both big and little endian, given that in userspace compat-\u003esig[1] will\nrepresent signals 33-64, and so will the high 32 bits of set-\u003esig[0] in the\nkernel.  If however __COMPAT_ENDIAN_SWAP__ *is* set, as it is for\n__MIPSEL__, it uses\n\n  set-\u003esig[0] \u003d compat-\u003esig[1] | (((long)compat-\u003esig[0]) \u003c\u003c 32 );\n\nwhich seems incorrect for both big and little endian, and would\nexplain the observed symptoms.\n\nThis code is the only use of __COMPAT_ENDIAN_SWAP__, so if incorrect\nthen that macro serves no purpose, in which case something like the\nfollowing patch would seem appropriate to remove it.\n\nSigned-off-by: Joseph Myers \u003cjoseph@codesourcery.com\u003e\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9216dfad4fc97ab639ef0885efc713f3d7a20d5b",
      "tree": "546e301f3181f56133509327f9c5ed035dd4b50d",
      "parents": [
        "1b2db9fb7adc4d67d9ce7d16ce79c41ee84730fe"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 23 02:03:57 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:53 2006 -0700"
      },
      "message": "[PATCH] move_pages: fix 32 -\u003e 64 bit compat function\n\nThe definition of the third parameter is a pointer to an array of virtual\naddresses which give us some trouble.  The existing code calculated the\nwrong address in the array since I used void to avoid having to specify a\ntype.\n\nI now use the correct type \"compat_uptr_t __user *\" in the definition of\nthe function in kernel/compat.c.\n\nHowever, I used __u32 in syscalls.h.  Would have to include compat.h there\nin order to provide the same definition which would generate an ugly\ninclude situation.\n\nOn both ia64 and x86_64 compat_uptr_t is u32. So this works although\nparameter declarations differ.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1b2db9fb7adc4d67d9ce7d16ce79c41ee84730fe",
      "tree": "d3fc0962ada099d741717d36a3f658c15b20c65a",
      "parents": [
        "b63d64a324056cf3c2f7a1a1fe8134100edbb058"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 23 02:03:56 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:53 2006 -0700"
      },
      "message": "[PATCH] sys_move_pages: 32bit support (i386, x86_64)\n\nsys_move_pages() support for 32bit (i386 plus x86_64 compat layer)\n\nAdd support for move_pages() on i386 and also add the compat functions\nnecessary to run 32 bit binaries on x86_64.\n\nAdd compat_sys_move_pages to the x86_64 32bit binary layer.  Note that it is\nnot up to date so I added the missing pieces.  Not sure if this is done the\nright way.\n\n[akpm@osdl.org: compile fix]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "34f192c6527f20c47ccec239e7d51a27691b93fc",
      "tree": "6c80416cf6a170a193f829e414051cc618b15ee3",
      "parents": [
        "2eec9ad91f71a3dbacece5c4fb5adc09fad53a96"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 27 01:16:24 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:49 2006 -0800"
      },
      "message": "[PATCH] lightweight robust futexes: compat\n\n32-bit syscall compatibility support.  (This patch also moves all futex\nrelated compat functionality into kernel/futex_compat.c.)\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nAcked-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3158e9411a66fb98d495ac441c242264f31aaf3e",
      "tree": "7b3bad47214c09c9dcd7ff27316c6de23f4c7cb0",
      "parents": [
        "88959ea968709c35e8b979ac9f5a398fa748091a"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Sun Mar 26 01:37:29 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:56:57 2006 -0800"
      },
      "message": "[PATCH] consolidate sys32/compat_adjtimex\n\nCreate compat_sys_adjtimex and use it an all appropriate places.\n\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1b8623545b42c03eb92e51b28c84acf4b8ba00a3",
      "tree": "071045ad9c60d2697292c523c77322a70a248fb9",
      "parents": [
        "92118c739df879497b8cc5a2eb3a9dc255f01b20"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 15 01:07:03 2005 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Feb 07 20:56:35 2006 -0500"
      },
      "message": "[PATCH] remove bogus asm/bug.h includes.\n\nA bunch of asm/bug.h includes are both not needed (since it will get\npulled anyway) and bogus (since they are done too early).  Removed.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "150256d8aadb3a337c31efa9e175cbd25bf06b06",
      "tree": "8cd7e2a0bc6af23984682c5ea3ca687809580c5a",
      "parents": [
        "a60fc5190a31d98508ea6a76f74217f4104e74b7"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Jan 18 17:43:57 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:29 2006 -0800"
      },
      "message": "[PATCH] Generic sys_rt_sigsuspend()\n\nThe TIF_RESTORE_SIGMASK flag allows us to have a generic implementation of\nsys_rt_sigsuspend() instead of duplicating it for each architecture.  This\nprovides such an implementation and makes arch/powerpc use it.\n\nIt also tidies up the ppc32 sys_sigsuspend() to use TIF_RESTORE_SIGMASK.\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3a0f69d59ba41fbcad6a17b6e8aab02bf45e20ce",
      "tree": "8ba042dda77490f574f2c46bd038fd99a7f977e4",
      "parents": [
        "f042e0f80b0a9f5bb57c36d60a2798de6ca943b2"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jan 09 20:52:08 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 10 08:01:32 2006 -0800"
      },
      "message": "[PATCH] common compat_sys_timer_create\n\nThe comment in compat.c is wrong, every architecture provides a\nget_compat_sigevent() for the IPC compat code already.\n\nThis basically moves the x86_64 version to common code and removes all the\nothers.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nAcked-by: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "75bcc8c5e1de78616b04ef9f317a293a7c1c163c",
      "tree": "fabdfd7fbc46baae5638b41648444d805e14eb3c",
      "parents": [
        "041e0e3b1970c508dc9a95b7dd9dc86271a7d7ac"
      ],
      "author": {
        "name": "Nishanth Aravamudan",
        "email": "nacc@us.ibm.com",
        "time": "Sat Sep 10 00:27:24 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 10:06:37 2005 -0700"
      },
      "message": "[PATCH] kernel: fix-up schedule_timeout() usage\n\nUse schedule_timeout_{,un}interruptible() instead of\nset_current_state()/schedule_timeout() to reduce kernel size.\n\nSigned-off-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "51410d3c53d85da0f24277f9580cbec1260ffc8f",
      "tree": "947575daff5bee85e09a438f40f11aae57cd0475",
      "parents": [
        "5df240826c90afdc7956f55a004ea6b702df9203"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Apr 16 15:24:01 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:24:01 2005 -0700"
      },
      "message": "[PATCH] Fix get_compat_sigevent()\n\nI have no idea how a bug like this lasted so long.  Anyways, obvious\nmemset()\u0027ing of incorrect pointer.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\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"
    }
  ]
}
