)]}'
{
  "log": [
    {
      "commit": "94ea77ac696d76522ad32a51e84a969f83284eda",
      "tree": "093e7553289e1a7f10b960f808cb86136757dbe9",
      "parents": [
        "8587246a004d6ac10aa12c10e3474cfd9dafa44a"
      ],
      "author": {
        "name": "Coly Li",
        "email": "coly.li@suse.de",
        "time": "Thu Apr 02 16:59:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:08 2009 -0700"
      },
      "message": "fs/cramfs: return f_fsid for statfs(2)\n\nMake cramfs return f_fsid info for statfs(2).\n\nSigned-off-by: Coly Li \u003ccoly.li@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8587246a004d6ac10aa12c10e3474cfd9dafa44a",
      "tree": "326cc82deb2cc02a8d729c9b2b6f56c12e01c91a",
      "parents": [
        "a6a2a73c4dc6babba2cfa366305cb936fc469640"
      ],
      "author": {
        "name": "Coly Li",
        "email": "coly.li@suse.de",
        "time": "Thu Apr 02 16:59:32 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:08 2009 -0700"
      },
      "message": "fs/befs: return f_fsid for statfs(2)\n\nMake befs return f_fsid info for statfs(2).\n\nSigned-off-by: Coly Li \u003ccoly.li@suse.de\u003e\nCc: Sergey S. Kostyliov \u003crathamahata@php4.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a6a2a73c4dc6babba2cfa366305cb936fc469640",
      "tree": "c99f6de9a85860957435d6d05b105c41863f5e40",
      "parents": [
        "accb40122040374e97fdf4bb81bdc9316b52c756"
      ],
      "author": {
        "name": "Coly Li",
        "email": "coly.li@suse.de",
        "time": "Thu Apr 02 16:59:32 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:08 2009 -0700"
      },
      "message": "fs/affs: return f_fsid for statfs(2)\n\nMake affs return f_fsid info for statfs(2).\n\nSigned-off-by: Coly Li \u003ccoly.li@suse.de\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "accb40122040374e97fdf4bb81bdc9316b52c756",
      "tree": "a3c1982d61036f361bc720d11a9345dd81f76f0c",
      "parents": [
        "10c7db279218eda4b19d29ee17db8a815b18d564"
      ],
      "author": {
        "name": "Coly Li",
        "email": "coly.li@suse.de",
        "time": "Thu Apr 02 16:59:27 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:08 2009 -0700"
      },
      "message": "fs/adfs: return f_fsid for statfs(2)\n\nCurrently many file systems in Linux kernel do not return f_fsid in statfs\ninfo, the value is set as 0 in vfs layer.  Anyway, in some conditions,\nf_fsid from statfs(2) is useful, especially being used as (f_fsid, ino)\npair to uniquely identify a file.\n\nBasic idea of the patches is generating a unique fs ID by\nhuge_encode_dev(sb-\u003es_bdev-\u003ebd_dev) during file system mounting life time\n(no endian consistent issue).  sb is a point of struct super_block of\ncurrent mounted file system being accessed by statfs(2).\n\nThis patch:\n\nMake adfs return f_fsid info for statfs(2), and do a little variable\nrenaming in adfs_statfs().\n\nSigned-off-by: Coly Li \u003ccoly.li@suse.de\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: \"Sergey S. Kostyliov\" \u003crathamahata@php4.ru\u003e\nCc: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nCc: Mikulas Patocka \u003cmikulas@artax.karlin.mff.cuni.cz\u003e\nCc: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nCc: Bob Copeland \u003cme@bobcopeland.com\u003e\nCc: Anders Larsen \u003cal@alarsen.net\u003e\nCc: Phillip Lougher \u003cphillip@lougher.demon.co.uk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Evgeniy Dushistov \u003cdushistov@mail.ru\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Andreas Dilger \u003cadilger@sun.com\u003e\nCc: Jamie Lokier \u003cjamie@shareable.org\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "10c7db279218eda4b19d29ee17db8a815b18d564",
      "tree": "2ab1abd85e3f68a13d50f6c7f617d3999c138b54",
      "parents": [
        "ddd9e91b71072b8ebe89311c3a44b077defa1756"
      ],
      "author": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Thu Apr 02 16:59:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:08 2009 -0700"
      },
      "message": "preadv/pwritev: switch compat readv/preadv/writev/pwritev from fget to fget_light\n\nSigned-off-by: Gerd Hoffmann \u003ckraxel@redhat.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \u003clinux-api@vger.kernel.org\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ddd9e91b71072b8ebe89311c3a44b077defa1756",
      "tree": "9795e75bee284c1f2d55314c942bb8a1553e6b14",
      "parents": [
        "f3554f4bc69803ac2baaf7cf2aa4339e1f4b693e"
      ],
      "author": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Thu Apr 02 16:59:24 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:08 2009 -0700"
      },
      "message": "preadv/pwritev: MIPS: Add preadv(2) and pwritev(2) syscalls.\n\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Gerd Hoffmann \u003ckraxel@redhat.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \u003clinux-api@vger.kernel.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": "f3554f4bc69803ac2baaf7cf2aa4339e1f4b693e",
      "tree": "52505043de254dc3e34dad7110724fcc1f489eb9",
      "parents": [
        "6949a6318e60aeb9c755679ac7f978aefe8c1722"
      ],
      "author": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Thu Apr 02 16:59:23 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:08 2009 -0700"
      },
      "message": "preadv/pwritev: Add preadv and pwritev system calls.\n\nThis patch adds preadv and pwritev system calls.  These syscalls are a\npretty straightforward combination of pread and readv (same for write).\nThey are quite useful for doing vectored I/O in threaded applications.\nUsing lseek+readv instead opens race windows you\u0027ll have to plug with\nlocking.\n\nOther systems have such system calls too, for example NetBSD, check\nhere: http://www.daemon-systems.org/man/preadv.2.html\n\nThe application-visible interface provided by glibc should look like\nthis to be compatible to the existing implementations in the *BSD family:\n\n  ssize_t preadv(int d, const struct iovec *iov, int iovcnt, off_t offset);\n  ssize_t pwritev(int d, const struct iovec *iov, int iovcnt, off_t offset);\n\nThis prototype has one problem though: On 32bit archs is the (64bit)\noffset argument unaligned, which the syscall ABI of several archs doesn\u0027t\nallow to do.  At least s390 needs a wrapper in glibc to handle this.  As\nwe\u0027ll need a wrappers in glibc anyway I\u0027ve decided to push problem to\nglibc entriely and use a syscall prototype which works without\narch-specific wrappers inside the kernel: The offset argument is\nexplicitly splitted into two 32bit values.\n\nThe patch sports the actual system call implementation and the windup in\nthe x86 system call tables.  Other archs follow as separate patches.\n\nSigned-off-by: Gerd Hoffmann \u003ckraxel@redhat.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \u003clinux-api@vger.kernel.org\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\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": "6949a6318e60aeb9c755679ac7f978aefe8c1722",
      "tree": "97fdbd5d494c5bc99145d5caed28be4ad0e467db",
      "parents": [
        "dac1213842f5caf081804a11d87d2a39a21d6f55"
      ],
      "author": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Thu Apr 02 16:59:21 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:07 2009 -0700"
      },
      "message": "preadv/pwritev: create compat_writev()\n\nFactor out some code from compat_sys_writev() which can be shared with the\nupcoming compat_sys_pwritev().\n\nSigned-off-by: Gerd Hoffmann \u003ckraxel@redhat.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \u003clinux-api@vger.kernel.org\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dac1213842f5caf081804a11d87d2a39a21d6f55",
      "tree": "0b357e0a70fc872c400eb764ec7243969a5439d6",
      "parents": [
        "98310e581e098514867573031b2bfa4ba89c0d93"
      ],
      "author": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Thu Apr 02 16:59:20 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:07 2009 -0700"
      },
      "message": "preadv/pwritev: create compat_readv()\n\nThis patch series:\n\nImplement the preadv() and pwritev() syscalls.  *BSD has this syscall for\nquite some time.\n\nTest code:\n\n#if 0\nset -x\ngcc -Wall -O2 -o preadv $0\nexit 0\n#endif\n/*\n * preadv demo / test\n *\n * (c) 2008 Gerd Hoffmann \u003ckraxel@redhat.com\u003e\n *\n * build with \"sh $thisfile\"\n */\n\n#include \u003cstdio.h\u003e\n#include \u003cstdlib.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003cerrno.h\u003e\n#include \u003cinttypes.h\u003e\n#include \u003csys/uio.h\u003e\n\n/* ----------------------------------------------------------------- */\n/* syscall windup                                                    */\n\n#include \u003csys/syscall.h\u003e\n#if 0\n/* WARNING: Be sure you know what you are doing if you enable this.\n * linux syscall code isn\u0027t upstream yet, syscall numbers are subject\n * to change */\n# ifndef __NR_preadv\n#  ifdef __i386__\n#   define __NR_preadv  333\n#   define __NR_pwritev 334\n#  endif\n#  ifdef __x86_64__\n#   define __NR_preadv  295\n#   define __NR_pwritev 296\n#  endif\n# endif\n#endif\n#ifndef __NR_preadv\n# error preadv/pwritev syscall numbers are unknown\n#endif\n\nstatic ssize_t preadv(int fd, const struct iovec *iov, int iovcnt, off_t offset)\n{\n    uint32_t pos_high \u003d (offset \u003e\u003e 32) \u0026 0xffffffff;\n    uint32_t pos_low  \u003d  offset        \u0026 0xffffffff;\n\n    return syscall(__NR_preadv, fd, iov, iovcnt, pos_high, pos_low);\n}\n\nstatic ssize_t pwritev(int fd, const struct iovec *iov, int iovcnt, off_t offset)\n{\n    uint32_t pos_high \u003d (offset \u003e\u003e 32) \u0026 0xffffffff;\n    uint32_t pos_low  \u003d  offset        \u0026 0xffffffff;\n\n    return syscall(__NR_pwritev, fd, iov, iovcnt, pos_high, pos_low);\n}\n\n/* ----------------------------------------------------------------- */\n/* demo/test app                                                     */\n\nstatic char filename[] \u003d \"/tmp/preadv-XXXXXX\";\nstatic char outbuf[11] \u003d \"0123456789\";\nstatic char inbuf[11]  \u003d \"----------\";\n\nstatic struct iovec ovec[2] \u003d {{\n        .iov_base \u003d outbuf + 5,\n        .iov_len  \u003d 5,\n    },{\n        .iov_base \u003d outbuf + 0,\n        .iov_len  \u003d 5,\n    }};\n\nstatic struct iovec ivec[3] \u003d {{\n        .iov_base \u003d inbuf + 6,\n        .iov_len  \u003d 2,\n    },{\n        .iov_base \u003d inbuf + 4,\n        .iov_len  \u003d 2,\n    },{\n        .iov_base \u003d inbuf + 2,\n        .iov_len  \u003d 2,\n    }};\n\nvoid cleanup(void)\n{\n    unlink(filename);\n}\n\nint main(int argc, char **argv)\n{\n    int fd, rc;\n\n    fd \u003d mkstemp(filename);\n    if (-1 \u003d\u003d fd) {\n        perror(\"mkstemp\");\n        exit(1);\n    }\n    atexit(cleanup);\n\n    /* write to file: \"56789-01234\" */\n    rc \u003d pwritev(fd, ovec, 2, 0);\n    if (rc \u003c 0) {\n        perror(\"pwritev\");\n        exit(1);\n    }\n\n    /* read from file: \"78-90-12\" */\n    rc \u003d preadv(fd, ivec, 3, 2);\n    if (rc \u003c 0) {\n        perror(\"preadv\");\n        exit(1);\n    }\n\n    printf(\"result  : %s\\n\", inbuf);\n    printf(\"expected: %s\\n\", \"--129078--\");\n    exit(0);\n}\n\nThis patch:\n\nFactor out some code from compat_sys_readv() which can be shared with the\nupcoming compat_sys_preadv().\n\nSigned-off-by: Gerd Hoffmann \u003ckraxel@redhat.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \u003clinux-api@vger.kernel.org\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "98310e581e098514867573031b2bfa4ba89c0d93",
      "tree": "b4eeec1516af4be7bd7f3f64dbf49f80e84b2bca",
      "parents": [
        "6e873ec71d091f52510f6aa9bc71d4732438522a"
      ],
      "author": {
        "name": "David VomLehn",
        "email": "dvomlehn@cisco.com",
        "time": "Thu Apr 02 16:59:15 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:07 2009 -0700"
      },
      "message": "cramfs: propagate uncompression errors\n\nDecompression errors can arise due to corruption of compressed blocks on\nflash or in memory.  This patch propagates errors detected during\ndecompression back to the block layer.\n\nSigned-off-by: David VomLehn \u003cdvomlehn@cisco.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6e873ec71d091f52510f6aa9bc71d4732438522a",
      "tree": "2da4c9f58fb700e0389bd4a31fb6cebeca45e311",
      "parents": [
        "1bc4faa59b0e6aa5ede2d5d8fa74b6e051b31dca"
      ],
      "author": {
        "name": "Robin Holt",
        "email": "holt@sgi.com",
        "time": "Thu Apr 02 16:59:14 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:07 2009 -0700"
      },
      "message": "xpc_sn2: fix max() warning about pointers of different types\n\nFix a minor compile warning when building on ia64.\n\ndrivers/misc/sgi-xp/xpc_sn2.c: In function `xpc_clear_remote_msgqueue_flags_sn2\u0027:\ndrivers/misc/sgi-xp/xpc_sn2.c:1746: warning: comparison of distinct pointer types lacks a cast\n\nSigned-off-by: Robin Holt \u003cholt@sgi.com\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1bc4faa59b0e6aa5ede2d5d8fa74b6e051b31dca",
      "tree": "ceeeb23f214a41ee50f61835c32887a5f2a6f158",
      "parents": [
        "7b8274e93fbabc7534aa51f95551c30aecdd0066"
      ],
      "author": {
        "name": "Robin Holt",
        "email": "holt@sgi.com",
        "time": "Thu Apr 02 16:59:13 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:07 2009 -0700"
      },
      "message": "sgi-gru: remove SGI_GRU as a valid config option for ia64 configs with SGI_UV\n\nSome current configs turn on GRU for ia64.  The GRU code does not\ncorrectly load on boot on ia64 (GRU does continue to work for x86-64), so\nchanging the IA64 Kconfig to not select GRU on ia64 configs for now until\nwe have time to fix.\n\nSigned-off-by: Robin Holt \u003cholt@sgi.com\u003e\nAcked-by: Jack Steiner \u003csteiner@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7b8274e93fbabc7534aa51f95551c30aecdd0066",
      "tree": "f1cfc0e87b07a4094ee06d2dc73673635b4b1775",
      "parents": [
        "27ca8a7b2bdfb3e22e67fbd5df58e6b6f0bbcd48"
      ],
      "author": {
        "name": "Jack Steiner",
        "email": "steiner@sgi.com",
        "time": "Thu Apr 02 16:59:12 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:07 2009 -0700"
      },
      "message": "sgi-gru: support multiple pagesizes in GRU\n\nAdd multiple pagesize support to the GRU driver.\n\nSigned-off-by: Jack Steiner \u003csteiner@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "27ca8a7b2bdfb3e22e67fbd5df58e6b6f0bbcd48",
      "tree": "c7fbe657ba4d31b1977b7247dd7626414246a1c3",
      "parents": [
        "e1c3219d06447dab8a87b96df1211d158e21071e"
      ],
      "author": {
        "name": "Jack Steiner",
        "email": "steiner@sgi.com",
        "time": "Thu Apr 02 16:59:11 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:07 2009 -0700"
      },
      "message": "sgi-gru: fix bugs related to module unload of the GRU driver\n\nFix bugs related to module unload of the GRU driver.\n\nSigned-off-by: Jack Steiner \u003csteiner@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e1c3219d06447dab8a87b96df1211d158e21071e",
      "tree": "aa3a5ea8af148d2d7d461d61618d7820f099148a",
      "parents": [
        "6f2584f47474d29ce829604bfc8b56c10b352fdb"
      ],
      "author": {
        "name": "Jack Steiner",
        "email": "steiner@sgi.com",
        "time": "Thu Apr 02 16:59:10 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:06 2009 -0700"
      },
      "message": "sgi-gru: macro for scanning all gru chiplets\n\nAdd macro for scanning all active GRU chiplets.  Maximum chiplet id is\nsaved during GRU initialization.\n\nSigned-off-by: Jack Steiner \u003csteiner@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6f2584f47474d29ce829604bfc8b56c10b352fdb",
      "tree": "f5b5c63c7c73785a641c995c2fe48b4c5cc726eb",
      "parents": [
        "ecdaf2b55251f718a1fbaf4a3f72bfd6e25c582c"
      ],
      "author": {
        "name": "Jack Steiner",
        "email": "steiner@sgi.com",
        "time": "Thu Apr 02 16:59:10 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:06 2009 -0700"
      },
      "message": "sgi-gru: add support to the GRU driver for message queue interrupts\n\nAdd support to the GRU driver for message queue interrupts.\n\nSigned-off-by: Jack Steiner \u003csteiner@sgi.com\u003e\nSigned-off-by: Dean Nelson \u003cdcn@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ecdaf2b55251f718a1fbaf4a3f72bfd6e25c582c",
      "tree": "2c85778f12e1423d8cc05ce6be6da6e8d2c9a475",
      "parents": [
        "874194123718e625aa96632bac457d686ba1378e"
      ],
      "author": {
        "name": "Jack Steiner",
        "email": "steiner@sgi.com",
        "time": "Thu Apr 02 16:59:09 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:06 2009 -0700"
      },
      "message": "sgi-gru: restructure the GRU vtop functions\n\nRestructure the GRU vtop functions in preparation for future changes.\nThis patch simply moves code around \u0026 does not change the algorithm.\n\nSigned-off-by: Jack Steiner \u003csteiner@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "874194123718e625aa96632bac457d686ba1378e",
      "tree": "0594c7d50d05157f564afdd364956daa4062cf9f",
      "parents": [
        "bb04aa78ec1393295c30edad154e6f6e906955f3"
      ],
      "author": {
        "name": "Jack Steiner",
        "email": "steiner@sgi.com",
        "time": "Thu Apr 02 16:59:08 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:06 2009 -0700"
      },
      "message": "sgi-gru: aSID (context management) bug fixes\n\nThis patch fixes bugs related to ASID (context id) management in the GRU\ndriver.  These changes are all internal to the SGI GRU driver and have no\neffect on the base kernel.\n\nSigned-off-by: Jack Steiner \u003csteiner@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bb04aa78ec1393295c30edad154e6f6e906955f3",
      "tree": "b1708c39b7f649f6aac36b7f04ff69083190740a",
      "parents": [
        "e56484da3aa550dace96cbf1202446231471d7e1"
      ],
      "author": {
        "name": "Jack Steiner",
        "email": "steiner@sgi.com",
        "time": "Thu Apr 02 16:59:07 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:06 2009 -0700"
      },
      "message": "sgi-gru: add support for a user to explicitly unload a GRU context\n\nAdd support for a user to explicitly unload a GRU context.\n\nSigned-off-by: Jack Steiner \u003csteiner@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e56484da3aa550dace96cbf1202446231471d7e1",
      "tree": "547f067876c0610c989a268ce0b19ef6986ee302",
      "parents": [
        "a24e5e1caf4875bbe09f328b5f4daef6d25ebcc4"
      ],
      "author": {
        "name": "Jack Steiner",
        "email": "steiner@sgi.com",
        "time": "Thu Apr 02 16:59:06 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:06 2009 -0700"
      },
      "message": "sgi-gru: add statistics to the GRU context management functions\n\nAdd statistics to the GRU context management functions.\n\nSigned-off-by: Jack Steiner \u003csteiner@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a24e5e1caf4875bbe09f328b5f4daef6d25ebcc4",
      "tree": "3b9214880d848c1b4b071fcf00eb39a8ef8cb47b",
      "parents": [
        "438846043af39fef286f68b197d42bd75f49898e"
      ],
      "author": {
        "name": "Jack Steiner",
        "email": "steiner@sgi.com",
        "time": "Thu Apr 02 16:59:06 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:06 2009 -0700"
      },
      "message": "sgi-gru: change GRU CCH commands from inline functions to outofline functions\n\nChange the GRU instructions that manage contexts from inline functions to\nout-of-line functions.  This simplifies adding statistics \u0026 error checking\nto these functions.\n\nSigned-off-by: Jack Steiner \u003csteiner@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "438846043af39fef286f68b197d42bd75f49898e",
      "tree": "e73bd2e6cdbc2e2ca8a1daac2651f6efb5fc84fd",
      "parents": [
        "fe5bb6b00c3a9374841d651e01694fe4190a677e"
      ],
      "author": {
        "name": "Jack Steiner",
        "email": "steiner@sgi.com",
        "time": "Thu Apr 02 16:59:05 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:05 2009 -0700"
      },
      "message": "sgi-gru: improvements to GRU debug messages \u0026 statistics\n\nImprovements to GRU debug messages \u0026 statistics.\n\nSigned-off-by: Jack Steiner \u003csteiner@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fe5bb6b00c3a9374841d651e01694fe4190a677e",
      "tree": "8580ba3dac70d236261557a458df535cdc0e2acd",
      "parents": [
        "66666e50fcd69d80117d7d243ce02e1f774cbaf5"
      ],
      "author": {
        "name": "Jack Steiner",
        "email": "steiner@sgi.com",
        "time": "Thu Apr 02 16:59:04 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:05 2009 -0700"
      },
      "message": "sgi-gru: misc GRU cleanup\n\nMisc trivial GRU drivers fixes:\n\t- fix long lines\n\t- eliminate extra whitespace\n\t- eliminate compiler warning\n\t- better validation of invalidate user parameters\n\t- bug fix for GRU TLB flush (not the cpu TLB flush)\n\nThese changes are all internal to the SGI GRU driver and have no effect\non the base kernel.\n\nSigned-off-by: Jack Steiner \u003csteiner@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "66666e50fcd69d80117d7d243ce02e1f774cbaf5",
      "tree": "13d0279dae418504ff05319384838c8bca53a107",
      "parents": [
        "c7296700edc8a0ff49126a4af0bfca6d546c470a"
      ],
      "author": {
        "name": "Jack Steiner",
        "email": "steiner@sgi.com",
        "time": "Thu Apr 02 16:59:03 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:05 2009 -0700"
      },
      "message": "sgi-gru: add macros for using the UV hub to send interrupts\n\nAdd macros for using the UV hub to send interrupts.  Change the IPI code\nto use these macros.  These macros will also be used in additional patches\nthat will follow.\n\nSigned-off-by: Jack Steiner \u003csteiner@sgi.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.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": "c7296700edc8a0ff49126a4af0bfca6d546c470a",
      "tree": "daf4fd74f39247615530c7522cdf39f6dd7ae1e6",
      "parents": [
        "a4c3155719c2a68b6293bc69ce3521018550dd40"
      ],
      "author": {
        "name": "Jack Steiner",
        "email": "steiner@sgi.com",
        "time": "Thu Apr 02 16:59:02 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:05 2009 -0700"
      },
      "message": "sgi-gru: add definitions of ia64 GRU MMRs\n\nAdd definitions for IA64 GRU MMRs.\n\nSigned-off-by: Jack Steiner \u003csteiner@sgi.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": "a4c3155719c2a68b6293bc69ce3521018550dd40",
      "tree": "eb7042bd018a628a79068df725c0447c680c9353",
      "parents": [
        "bc5d9940e8b07c7df13b60af2dd66ffbeb40e845"
      ],
      "author": {
        "name": "Jack Steiner",
        "email": "steiner@sgi.com",
        "time": "Thu Apr 02 16:59:01 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:05 2009 -0700"
      },
      "message": "sgi-gru: add definitions of x86_64 GRU MMRs\n\nAdd definitions for x86_64 GRU MMRs.\n\nSigned-off-by: Jack Steiner \u003csteiner@sgi.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": "bc5d9940e8b07c7df13b60af2dd66ffbeb40e845",
      "tree": "1f11f8a36c2accbb9e0e931f96c53a06ff96446e",
      "parents": [
        "2c53d9109f077900e140edb8b766132ad93b81cc"
      ],
      "author": {
        "name": "Jack Steiner",
        "email": "steiner@sgi.com",
        "time": "Thu Apr 02 16:59:00 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:05 2009 -0700"
      },
      "message": "sgi-gru: exclude UV definitions on 32-bit x86\n\nEliminate compile errors on 32-bit X86 caused by UV.\n\nSigned-off-by: Jack Steiner \u003csteiner@sgi.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": "2c53d9109f077900e140edb8b766132ad93b81cc",
      "tree": "082c063da6c83fe2a2aa84ed0b33c504e19d05f4",
      "parents": [
        "edb79a213223488735fae1d408f4c136e9ed25d6"
      ],
      "author": {
        "name": "Aravind Srinivasan",
        "email": "raa.aars@gmail.com",
        "time": "Thu Apr 02 16:58:59 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:05 2009 -0700"
      },
      "message": "relay: fix for possible loss/corruption of produced subbufs\n\nFix possible loss/corruption of produced subbufs in\nrelay_subbufs_consumed().\n\nWhen buf-\u003esubbufs_produced wraps around after UINT_MAX and\nbuf-\u003esubbufs_consumed is still \u003c UINT_MAX, the condition\n\n\tif (buf-\u003esubbufs_consumed \u003e buf-\u003esubbufs_produced)\n\nwill be true even for certain valid values of subbufs_consumed.  This may\nlead to loss or corruption of produced subbufs.\n\nSigned-off-by: Aravind Srinivasan \u003craa.aars@gmail.com\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nCc: Tom Zanussi \u003czanussi@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "edb79a213223488735fae1d408f4c136e9ed25d6",
      "tree": "b89191aec3c415256ee2d5a646a4f2afb1125c89",
      "parents": [
        "04d491ab2a53008a1aa98ac09561768c7f3adda3"
      ],
      "author": {
        "name": "Dmitri Vorobiev",
        "email": "dmitri.vorobiev@movial.com",
        "time": "Thu Apr 02 16:58:58 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:04 2009 -0700"
      },
      "message": "kexec: vmcoreinfo_data[] can become static\n\nThe vmcoreinfo_data[] array is not used outside of kernel/kexec.c, and\ncan therefore become static. This patch adds the relevant keyword to the\ndefinition of the array.\n\nNoticed by sparse.\n\nSigned-off-by: Dmitri Vorobiev \u003cdmitri.vorobiev@movial.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "04d491ab2a53008a1aa98ac09561768c7f3adda3",
      "tree": "ab8fff6fb8674c8061b733ce64d6d6fba9d68ff3",
      "parents": [
        "23c36c1aec895fd52d7dd8cd3ce4bbce43c969fd"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Thu Apr 02 16:58:57 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:04 2009 -0700"
      },
      "message": "kexec: add dmesg log symbols to /proc/vmcoreinfo lists\n\nIt would be nice to be able to extract the dmesg log from a vmcore file\nwithout needing to keep the debug symbols for the running kernel handy all\nthe time.  We have a facility to do this in /proc/vmcore.  This patch adds\nthe log_buf and log_end symbols to the vmcoreinfo area so that tools (like\nmakedumpfile) can easily extract the dmesg logs from a vmcore image.\n\n[akpm@linux-foundation.org: several fixes and cleanups]\n[akpm@linux-foundation.org: fix unused log_buf_kexec_setup()]\n[akpm@linux-foundation.org: build fix]\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nCc: Simon Horman \u003chorms@verge.net.au\u003e\nAcked-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nCc: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nCc: Simon Horman \u003chorms@verge.net.au\u003e\nCc: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "23c36c1aec895fd52d7dd8cd3ce4bbce43c969fd",
      "tree": "dac4cecda34dc97c1b353fedeba029e0481d1188",
      "parents": [
        "50db9d8e4ca17974595e3848cb65f9371a304de4"
      ],
      "author": {
        "name": "Daniel Mack",
        "email": "daniel@caiaq.de",
        "time": "Thu Apr 02 16:58:54 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:04 2009 -0700"
      },
      "message": "w1: coding style cleanups in w1_io.c\n\nThis fixes a number of coding style issues I stubled over.\n\nAcked-by: Evgeniy Polyakov \u003cjohnpol@2ka.mipt.ru\u003e\nSigned-off-by: Daniel Mack \u003cdaniel@caiaq.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "50db9d8e4ca17974595e3848cb65f9371a304de4",
      "tree": "d5928a21dbec2a187c4d9db80fa39e17cbddf95f",
      "parents": [
        "58b4ce6f2422cf9eff50368462c204f1d95b7341"
      ],
      "author": {
        "name": "Philippe De Muyter",
        "email": "phdm@macqel.be",
        "time": "Thu Apr 02 16:58:53 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:04 2009 -0700"
      },
      "message": "parport: netmos 9845 \u0026 9855 1P4S fixes\n\nnetmos serial/parallel adapters come in different flavour differing only\nby the number of parallel and serial ports, which are encoded in the\nsubdevice ID.\n\nLast fix of Christian Pellegrin for 9855 2P2S broke support for 9855 1P4S,\nand works only by side-effect for the first parallel port of a 2P2S, as\nthis first parallel port is found by reading the second addr entry of\n(struct parport_pc_pci) cards[netmos_9855], which is not initialized, and\nhence has value 0, which happens to be the BAR of the first parallel port.\n\nnetmos_9xx5_combo entry in (struct parport_pc_pci) cards[], which is used\nfor a 9845 1P4S must also be fixed for the parallel port support when\nthere are 4 serial ports because this entry currently gives 2 as BAR index\nfor the parallel port.  Actually, in this case, BAR 2 is the 3rd serial\nport while the parallel port is at BAR 4.\n\nI fixed 9845 1P4S and 9855 1P4S support, while preserving 9855 2P2S support,\n\n- by creating a netmos_9855_2p entry and using it for 9855 boards with 2\n  parallel ports : 9855 2P2S and 9855 2P0S boards,\n\n- and by allowing netmos_parallel_init to change not only the number of\n  parallel ports (0 or 1), but making it also change the BAR index of the\n  parallel port when the serial ports are before the parallel port.\n\nPS: the netmos_9855_2p entry in (struct pciserial_board)\npci_parport_serial_boards[] is needed because netmos_parallel_init has no\nclean way to replace FL_BASE2 by FL_BASE4 in the description of the serial\nports in function of the number of parallel ports on the card.\n\nTested with 9845 1P4S, 9855 1P4S and 9855 2P2S boards.\n\nSigned-off-by: Philippe De Muyter \u003cphdm@macqel.be\u003e\nTested-by: Christian Pellegrin \u003cchripell@fsfe.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "58b4ce6f2422cf9eff50368462c204f1d95b7341",
      "tree": "3dd0403040859ece1b12b6b38dfb384a9adf9aaf",
      "parents": [
        "e8765584156daef3e0ccd63dfa12466a8b75613d"
      ],
      "author": {
        "name": "Harry Ciao",
        "email": "qingtao.cao@windriver.com",
        "time": "Thu Apr 02 16:58:51 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:04 2009 -0700"
      },
      "message": "edac: AMD8111 driver Kconfig \u0026 Makefile\n\nIntroduce Kconfig and Makefile options for AMD8111 EDAC driver.\n\nSigned-off-by: Harry Ciao \u003cqingtao.cao@windriver.com\u003e\nCc: Doug Thompson \u003cnorsk5@yahoo.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e8765584156daef3e0ccd63dfa12466a8b75613d",
      "tree": "2b000afd5f78067c163130c5c84ce8ccd59e18f4",
      "parents": [
        "28d16272b12e086664a8ca30d5877274a5f944b8"
      ],
      "author": {
        "name": "Harry Ciao",
        "email": "qingtao.cao@windriver.com",
        "time": "Thu Apr 02 16:58:51 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:04 2009 -0700"
      },
      "message": "edac: AMD8131 driver Kconfig \u0026 Makefile\n\nIntroduce Kconfig and Makefile options for AMD8131 EDAC driver.\n\nSigned-off-by: Harry Ciao \u003cqingtao.cao@windriver.com\u003e\nCc: Doug Thompson \u003cnorsk5@yahoo.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "28d16272b12e086664a8ca30d5877274a5f944b8",
      "tree": "1335887840d164f2f6d43fab289886e457b5a281",
      "parents": [
        "a35a2818801387f01a145ebe4a99a6a1fda31152"
      ],
      "author": {
        "name": "Harry Ciao",
        "email": "qingtao.cao@windriver.com",
        "time": "Thu Apr 02 16:58:50 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:04 2009 -0700"
      },
      "message": "edac: AMD8131 driver source file\n\nIntroduce AMD8131 EDAC driver source file, which makes use of error\ndetections on the PCI-X Bridge Controllers on the AMD8131 HyperTransport\nPCI-X Tunnel.\n\nSigned-off-by: Harry Ciao \u003cqingtao.cao@windriver.com\u003e\nCc: Doug Thompson \u003cnorsk5@yahoo.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a35a2818801387f01a145ebe4a99a6a1fda31152",
      "tree": "854997d72727bbe3c543ec95254298da09f0e542",
      "parents": [
        "7c5ff4f92e2b47c56d777a5adbadd9a52841b635"
      ],
      "author": {
        "name": "Harry Ciao",
        "email": "qingtao.cao@windriver.com",
        "time": "Thu Apr 02 16:58:49 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:03 2009 -0700"
      },
      "message": "edac: AMD8131 driver header file\n\nIntroduce AMD8131 EDAC driver header file, which adds register and bits\ndefinitions for the PCI-X Bridge Controller on the AMD8131 HyperTransport\nI/O Hub.\n\nSigned-off-by: Harry Ciao \u003cqingtao.cao@windriver.com\u003e\nCc: Doug Thompson \u003cnorsk5@yahoo.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7c5ff4f92e2b47c56d777a5adbadd9a52841b635",
      "tree": "5cd4d13300b523d7cc3e8afd5d30f587a0c42cef",
      "parents": [
        "8641a3845d066f841ca591ac1c480b13bea7d849"
      ],
      "author": {
        "name": "Harry Ciao",
        "email": "qingtao.cao@windriver.com",
        "time": "Thu Apr 02 16:58:48 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:03 2009 -0700"
      },
      "message": "pci: Add AMD8111 PCI Bridge PCI Device ID\n\nAdd the PCI Device ID of the PCI Bridge Controller on AMD8111 chip.\n\nSigned-off-by: Harry Ciao \u003cqingtao.cao@windriver.com\u003e\nCc: Doug Thompson \u003cnorsk5@yahoo.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8641a3845d066f841ca591ac1c480b13bea7d849",
      "tree": "2d9a496c18e1b9838022816adfa3e9cf72386617",
      "parents": [
        "697dab6484fad0e636b0677c010b15cc449d1b9b"
      ],
      "author": {
        "name": "Harry Ciao",
        "email": "qingtao.cao@windriver.com",
        "time": "Thu Apr 02 16:58:47 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:03 2009 -0700"
      },
      "message": "edac: Add edac_pci_alloc_index()\n\nAdd edac_pci_alloc_index(), because for MAPLE platform there may exist\nseveral EDAC driver modules that could make use of edac_pci_ctl_info\nstructure at the same time.  The index allocation for these structures\nshould be taken care of by EDAC core.\n\nSigned-off-by: Harry Ciao \u003cqingtao.cao@windriver.com\u003e\nCc: Doug Thompson \u003cnorsk5@yahoo.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "697dab6484fad0e636b0677c010b15cc449d1b9b",
      "tree": "ee74e2d8263544e35190895c374656a6f8631a73",
      "parents": [
        "ec2cf2e2726546e8a2cae7cdaf3e9f7954c336b1"
      ],
      "author": {
        "name": "Harry Ciao",
        "email": "qingtao.cao@windriver.com",
        "time": "Thu Apr 02 16:58:46 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:03 2009 -0700"
      },
      "message": "edac: AMD8111 driver source file\n\nIntroduce AMD8111 EDAC driver source file, which makes use of error\ndetections on the LPC Bridge Controller and PCI Bridge Controller on the\nAMD8111 HyperTransport I/O Hub.\n\nSigned-off-by: Harry Ciao \u003cqingtao.cao@windriver.com\u003e\nCc: Doug Thompson \u003cnorsk5@yahoo.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ec2cf2e2726546e8a2cae7cdaf3e9f7954c336b1",
      "tree": "7692c7eb1a1ca7661f844ef9e1dd8dc79ba73255",
      "parents": [
        "dba7a77c0e403f859ff67ee39f833b6bffb4d49e"
      ],
      "author": {
        "name": "Harry Ciao",
        "email": "qingtao.cao@windriver.com",
        "time": "Thu Apr 02 16:58:46 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:03 2009 -0700"
      },
      "message": "edac: AMD8111 driver header file\n\nIntroduce AMD8111 EDAC driver header file, which adds register and bits\ndefinitions for the LPC Bridge Controller and PCI Bridge Controller on the\nAMD8111 HyperTransport I/O Hub.\n\nSigned-off-by: Harry Ciao \u003cqingtao.cao@windriver.com\u003e\nCc: Doug Thompson \u003cnorsk5@yahoo.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dba7a77c0e403f859ff67ee39f833b6bffb4d49e",
      "tree": "6ba4e2803616be9ab514654a111e374d4e7345b2",
      "parents": [
        "4577ca55681eaecb76e75beb99c098e0cdf7a92e"
      ],
      "author": {
        "name": "Grant Erickson",
        "email": "gerickson@nuovations.com",
        "time": "Thu Apr 02 16:58:45 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:03 2009 -0700"
      },
      "message": "edac: new ppc4xx driver module\n\nThis adds support for an EDAC memory controller adaptation driver for the\n\"ibm,sdram-4xx-ddr2\" ECC controller realized in the AMCC PowerPC 405EX[r].\n\nAt present, this driver has been developed and tested against the\ncontroller realization in the AMCC PPC405EX[r] on the AMCC Kilauea and\nHaleakala boards (256 MiB w/o ECC memory soldered onto the board) and a\nproprietary board based on those designs (128 MiB ECC memory, also\nsoldered onto the board).\n\nIn the future, dynamic feature detection and handling needs to be added\nfor the other realizations of this controller found in the 440SP, 440SPe,\n460EX, 460GT and 460SX.\n\nEventually, this driver will likely be evolved and adapted to the above\nvariant realizations of this controller as well as broken apart to handle\nthe other known ECC-capable controllers prevalent in other PPC4xx\nprocessors:\n\n  - IBM SDRAM (405GP, 405CR and 405EP) \"ibm,sdram-4xx\"\n  - IBM DDR1 (440GP, 440GX, 440EP and 440GR) \"ibm,sdram-4xx-ddr\"\n  - Denali DDR1/DDR2 (440EPX and 440GRX) \"denali,sdram-4xx-ddr2\"\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Grant Erickson \u003cgerickson@nuovations.com\u003e\nSigned-off-by: Doug Thompson \u003cdougthompson@xmission.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4577ca55681eaecb76e75beb99c098e0cdf7a92e",
      "tree": "dda821339d468e87dcb9e7072f737e0f16cd2d83",
      "parents": [
        "cc18e3cd5345715544e4d61b32a7442360817195"
      ],
      "author": {
        "name": "Doug Thompson",
        "email": "dougthompson@xmission.com",
        "time": "Thu Apr 02 16:58:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:03 2009 -0700"
      },
      "message": "edac: remove EDAC\u0027s experimental status\n\nAfter 3 years, this is a patch to remove the EXPERIMENTAL tag on EDAC.  We\nnow have many module drivers submitters in EDAC and believe EDAC is no\nlonger EXPERIMENTAL\n\nSigned-off-by: Doug Thompson \u003cdougthompson@xmission.com\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cc18e3cd5345715544e4d61b32a7442360817195",
      "tree": "d578a9a09eb1a1e0f603505838c9d3aa94f7a235",
      "parents": [
        "15746fcaa3a00753bbab2326088b85b10c1ba36a"
      ],
      "author": {
        "name": "Hitoshi Mitake",
        "email": "h.mitake@gmail.com",
        "time": "Thu Apr 02 16:58:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:02 2009 -0700"
      },
      "message": "edac: add more verbose debug info\n\nA patch for making a debugging information more verbose for use in\ndevelopment debugging.\n\nBy enabling the new option \"More verbose debugging\", information about\nsource file and line number will be added to debugging message.\n\nThis is sample output,\n\nEDAC MC0: Giving out device to \u0027e7xxx_edac\u0027 \u0027E7205\u0027: DEV 0000:00:00.0\nEDAC DEBUG: in drivers/edac/edac_pci.c, line at 48: edac_pci_alloc_ctl_info()\nEDAC DEBUG: in drivers/edac/edac_pci.c, line at 334: edac_pci_add_device()\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nSigned-off-by: Hitoshi Mitake \u003ch.mitake@gmail.com\u003e\nSigned-off-by: Doug Thompson \u003cdougthompson@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "15746fcaa3a00753bbab2326088b85b10c1ba36a",
      "tree": "a61e2e83fc3eaefc62f2e45d1b95125a8180c7ab",
      "parents": [
        "1a2ad21128bb4eb79f3c05e5801edcc5ed3ef1d3"
      ],
      "author": {
        "name": "Pavel Machek",
        "email": "pavel@suse.cz",
        "time": "Thu Apr 02 16:58:42 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:02 2009 -0700"
      },
      "message": "nbd: trivial cleanups\n\nTrivial cleanups for nbd: only the return -EIO one really changes code,\nand I\u0027ve verified all the callers (plus 0 \u003d\u003d success, 1 \u003d\u003d error\nconvention is really ugly).\n\nSigned-off-by: Pavel Machek \u003cpavel@suse.cz\u003e\nAcked-by: Paul Clements \u003cpaul.clements@steeleye.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1a2ad21128bb4eb79f3c05e5801edcc5ed3ef1d3",
      "tree": "ba5845f5e7f225b427d4ce250b911b9303aa9511",
      "parents": [
        "1b0f7ffd0ea27cd3a0b9ca04e3df9522048c32a3"
      ],
      "author": {
        "name": "Pavel Machek",
        "email": "pavel@suse.cz",
        "time": "Thu Apr 02 16:58:41 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:02 2009 -0700"
      },
      "message": "nbd: add locking to nbd_ioctl\n\nThe code was written to rely on big kernel lock to protect it from races.\nIt mostly works when interface is not abused.\n\nSo this uses tx_lock to protect data structures from concurrent use\nbetween ioctl and worker threads.\n\nNext step will be moving from ioctl to unlocked_ioctl.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: add missing return]\nSigned-off-by: Pavel Machek \u003cpavel@suse.cz\u003e\nAcked-by: Paul Clements \u003cpaul.clements@steeleye.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1b0f7ffd0ea27cd3a0b9ca04e3df9522048c32a3",
      "tree": "a8c27acdf95f55f93fe86661c6cba4cd36c8e4f1",
      "parents": [
        "52ee2dfdd4f51cf422ea6a96a0846dc94244aa37"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:39 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:02 2009 -0700"
      },
      "message": "pids: kill signal_struct-\u003e __pgrp/__session and friends\n\nWe are wasting 2 words in signal_struct without any reason to implement\ntask_pgrp_nr() and task_session_nr().\n\ntask_session_nr() has no callers since\n2e2ba22ea4fd4bb85f0fa37c521066db6775cbef, we can remove it.\n\ntask_pgrp_nr() is still (I believe wrongly) used in fs/autofsX and\nfs/coda.\n\nThis patch reimplements task_pgrp_nr() via task_pgrp_nr_ns(), and kills\n__pgrp/__session and the related helpers.\n\nThe change in drivers/char/tty_io.c is cosmetic, but hopefully makes sense\nanyway.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Alan Cox \u003cnumber6@the-village.bc.nu\u003e\t\t[tty parts]\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Eric Biederman \u003cebiederm@xmission.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "52ee2dfdd4f51cf422ea6a96a0846dc94244aa37",
      "tree": "e15753e01d2c2fbe980edc45f78a9ae77d2cf891",
      "parents": [
        "2ae448efc87df6d328f5835969076c7f9fce59c3"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:38 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:02 2009 -0700"
      },
      "message": "pids: refactor vnr/nr_ns helpers to make them safe\n\nInho, the safety rules for vnr/nr_ns helpers are horrible and buggy.\n\ntask_pid_nr_ns(task) needs rcu/tasklist depending on task \u003d\u003d current.\n\nAs for \"special\" pids, vnr/nr_ns helpers always need rcu.  However, if\ntask !\u003d current, they are unsafe even under rcu lock, we can\u0027t trust\ntask-\u003egroup_leader without the special checks.\n\nAnd almost every helper has a callsite which needs a fix.\n\nAlso, it is a bit annoying that the implementations of, say,\ntask_pgrp_vnr() and task_pgrp_nr_ns() are not \"symmetrical\".\n\nThis patch introduces the new helper, __task_pid_nr_ns(), which is always\nsafe to use, and turns all other helpers into the trivial wrappers.\n\nAfter this I\u0027ll send another patch which converts task_tgid_xxx() as well,\nthey\u0027re are a bit special.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Louis Rilling \u003cLouis.Rilling@kerlabs.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2ae448efc87df6d328f5835969076c7f9fce59c3",
      "tree": "f110b43fa7c6b3c80f9b18a8e4fef728ed57f448",
      "parents": [
        "6dda81f4384b94930826eded254d8c16f89a9248"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:36 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:02 2009 -0700"
      },
      "message": "pids: improve get_task_pid() to fix the unsafe sys_wait4()-\u003etask_pgrp()\n\nsys_wait4() does get_pid(task_pgrp(current)), this is not safe.  We can\nadd rcu lock/unlock around, but we already have get_task_pid() which can\nbe improved to handle the special pids in more reliable manner.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Louis Rilling \u003cLouis.Rilling@kerlabs.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6dda81f4384b94930826eded254d8c16f89a9248",
      "tree": "a7b27ca16a6feba637cb01e68b54c58b6ca07bc2",
      "parents": [
        "8e654fba4a376f436bdfe361fc5cdbc87ac09b35"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:02 2009 -0700"
      },
      "message": "pids: document task_pgrp/task_session is not safe without tasklist/rcu\n\nEven if task \u003d\u003d current, it is not safe to dereference the result of\ntask_pgrp/task_session.  We can race with another thread which changes the\nspecial pid via setpgid/setsid.\n\nDocument this.  The next 2 patches give an example of the unsafe usage, we\nhave more bad users.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Louis Rilling \u003cLouis.Rilling@kerlabs.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8e654fba4a376f436bdfe361fc5cdbc87ac09b35",
      "tree": "849159802c4aec512a2d0671d88a04947c5165b2",
      "parents": [
        "303d379c54fc9ed553562e36c1cbd1791a3f5d17"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew@wil.cx",
        "time": "Thu Apr 02 16:58:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:01 2009 -0700"
      },
      "message": "sysctl: fix suid_dumpable and lease-break-time sysctls\n\nArne de Bruijn points out that commit\n76fdbb25f963de5dc1e308325f0578a2f92b1c2d (\"coredump masking: bound\nsuid_dumpable sysctl\") mistakenly limits lease-break-time instead of\nsuid_dumpable.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nReported-by: Arne de Bruijn \u003ckernelbt@arbruijn.dds.nl\u003e\nCc: Kawai, Hidehiro \u003chidehiro.kawai.ez@hitachi.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: \u003cstable@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": "303d379c54fc9ed553562e36c1cbd1791a3f5d17",
      "tree": "fa16886ba42f97af18eed3f2b791f54ce7ee2b09",
      "parents": [
        "1f80769ffd36e74357fe896dc43dddf1af1510f3"
      ],
      "author": {
        "name": "Yasunori Goto",
        "email": "y-goto@jp.fujitsu.com",
        "time": "Thu Apr 02 16:58:31 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:01 2009 -0700"
      },
      "message": "hpet: fix the possibility of insane return value of hpet_calibrate() against SMI\n\nhpet_calibrate() has a possibility of miss-calibration due to SMI.  If SMI\ninterrupts in the while loop of calibration, then return value will be\nbig.  This change calibrates until stabilizing by the return value with a\nsmall value.\n\n[akpm@linux-foundation.org: trivial style tweaks]\nSigned-off-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nAcked-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nAcked-by: Vojtech Pavlik \u003cvojtech@suse.cz\u003e\nCc: Robert Picco \u003cRobert.Picco@hp.com\u003e\nCc: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1f80769ffd36e74357fe896dc43dddf1af1510f3",
      "tree": "633e513143c276b3bcee9e4743938902f906a919",
      "parents": [
        "a50b0aa4bd9a7d42112442a385f3dc0e775284dd"
      ],
      "author": {
        "name": "Paul Fulghum",
        "email": "paulkf@microgate.com",
        "time": "Thu Apr 02 16:58:30 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:01 2009 -0700"
      },
      "message": "synclink_gt: add clock options\n\nAdd support for x8 asynchronous sample rate and ability to specify base\nclock frequency.\n\nSigned-off-by: Paul Fulghum \u003cpaulkf@microgate.com\u003e\nAcked-by: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a50b0aa4bd9a7d42112442a385f3dc0e775284dd",
      "tree": "f4707e5a1c524545c8caa40eebbe8764c20bfe93",
      "parents": [
        "ab4ad55512e95b68ca3e25516068e18874f89252"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill@shutemov.name",
        "time": "Thu Apr 02 16:58:29 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:01 2009 -0700"
      },
      "message": "struct linux_binprm: drop unused fields\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill@shutemov.name\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ab4ad55512e95b68ca3e25516068e18874f89252",
      "tree": "905f18a75b6a2cd5363db9eecbf424d9cd39f9be",
      "parents": [
        "11dea1900931ac73184b2f5163a13d24a4e572ea"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier.adi@gmail.com",
        "time": "Thu Apr 02 16:58:28 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:01 2009 -0700"
      },
      "message": "bin_elf_fdpic: check the return value of clear_user\n\nSigned-off-by: Mike Frysinger \u003cvapier.adi@gmail.com\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "11dea1900931ac73184b2f5163a13d24a4e572ea",
      "tree": "409e081e9afa0cc8f05ae0051942de99a79cd9f0",
      "parents": [
        "e562aebc6ccd4385cbbf24debe88ab4bb500c5b4"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Thu Apr 02 16:58:27 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:01 2009 -0700"
      },
      "message": "proc_sysctl: use CONFIG_PROC_SYSCTL around ipc and utsname proc_handlers\n\nAs pointed out by Cedric Le Goater (in response to Alexey\u0027s original\ncomment wrt mqns), ipc_sysctl.c and utsname_sysctl.c are using\nCONFIG_PROC_FS, not CONFIG_PROC_SYSCTL, to determine whether to define\nthe proc_handlers.  Change that.\n\nSigned-off-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nAcked-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e562aebc6ccd4385cbbf24debe88ab4bb500c5b4",
      "tree": "a9dee6eac97d75c688a84d5fe268b2e5a0b73e23",
      "parents": [
        "40e8a10de2c9f87e892dcd5a6f9d1b208329ffea"
      ],
      "author": {
        "name": "Tony Battersby",
        "email": "tonyb@cybernetics.com",
        "time": "Thu Apr 02 16:58:26 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:01 2009 -0700"
      },
      "message": "ipc: make shm_get_stat() more robust\n\nshm_get_stat() assumes idr_find(\u0026shm_ids(ns).ipcs_idr) returns \"struct\nshmid_kernel *\"; all other callers assume that it returns \"struct\nkern_ipc_perm *\".  This works because \"struct kern_ipc_perm\" is currently\nthe first member of \"struct shmid_kernel\", but it would be better to use\ncontainer_of() to prevent future breakage.\n\nSigned-off-by: Tony Battersby \u003ctonyb@cybernetics.com\u003e\nCc: Jiri Olsa \u003colsajiri@gmail.com\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "40e8a10de2c9f87e892dcd5a6f9d1b208329ffea",
      "tree": "e00ac938e40dfbc0595346487485317af84c6094",
      "parents": [
        "2355b70fd59cb5be7de2052a9edeee7afb7ff099"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Thu Apr 02 16:58:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:00 2009 -0700"
      },
      "message": "cpu hotplug: remove unused cpuhotplug_mutex_lock()\n\ncpuhotplug_mutex_lock() is not used, remove it.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2355b70fd59cb5be7de2052a9edeee7afb7ff099",
      "tree": "93f192f9dab4748a313ec8d78041b1937e232f33",
      "parents": [
        "1ee1184485df9c9a3503d3a684b911fb7c73d259"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Thu Apr 02 16:58:24 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:00 2009 -0700"
      },
      "message": "workqueue: avoid recursion in run_workqueue()\n\n1) lockdep will complain when run_workqueue() performs recursion.\n\n2) The recursive implementation of run_workqueue() means that\n   flush_workqueue() and its documentation are inconsistent.  This may\n   hide deadlocks and other bugs.\n\n3) The recursion in run_workqueue() will poison cwq-\u003ecurrent_work, but\n   flush_work() and __cancel_work_timer(), etcetera need a reliable\n   cwq-\u003ecurrent_work.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nAcked-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1ee1184485df9c9a3503d3a684b911fb7c73d259",
      "tree": "0216bc3ebccf1c44b86617cd06e7b93510ef5bb8",
      "parents": [
        "95a3540da9c81a5987be810e1d9a83640a366bd5"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:23 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:00 2009 -0700"
      },
      "message": "ptrace_untrace: fix the SIGNAL_STOP_STOPPED check\n\nThis bug is ancient too. ptrace_untrace() must not resume the task\nif the group stop in progress, we should set TASK_STOPPED instead.\n\nUnfortunately, we still have problems here:\n\n\t- if the process/thread was traced, SIGNAL_STOP_STOPPED\n\t  does not necessary means this thread group is stopped.\n\n\t- ptrace breaks the bookkeeping of -\u003egroup_stop_count.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Denys Vlasenko \u003cdvlasenk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "95a3540da9c81a5987be810e1d9a83640a366bd5",
      "tree": "d5143f232f885f6aa8829288dc0ceb2cd9e6e34e",
      "parents": [
        "bb24c679a51b1a9b726b901330649e3861814ac0"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:21 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:00 2009 -0700"
      },
      "message": "ptrace_detach: the wrong wakeup breaks the ERESTARTxxx logic\n\nAnother ancient bug. Consider this trivial test-case,\n\n\tint main(void)\n\t{\n\t\tint pid \u003d fork();\n\n\t\tif (pid) {\n\t\t\tptrace(PTRACE_ATTACH, pid, NULL, NULL);\n\t\t\twait(NULL);\n\t\t\tptrace(PTRACE_DETACH, pid, NULL, NULL);\n\t\t} else {\n\t\t\tpause();\n\t\t\tprintf(\"WE HAVE A KERNEL BUG!!!\\n\");\n\t\t}\n\n\t\treturn 0;\n\t}\n\nthe child must not \"escape\" for sys_pause(), but it can and this was seen\nin practice.\n\nThis is because ptrace_detach does:\n\n\tif (!child-\u003eexit_state)\n\t\twake_up_process(child);\n\nthis wakeup can happen after this child has already restarted sys_pause(),\nbecause it gets another wakeup from ptrace_untrace().\n\nWith or without this patch, perhaps sys_pause() needs a fix.  But this\nwakeup also breaks the SIGNAL_STOP_STOPPED logic in ptrace_untrace().\n\nRemove this wakeup.  The caller saw this task in TASK_TRACED state, and\nunless it was SIGKILL\u0027ed in between __ptrace_unlink()-\u003eptrace_untrace()\nshould handle this case correctly.  If it was SIGKILL\u0027ed, we don\u0027t need to\nwakup the dying tracee too.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Denys Vlasenko \u003cdvlasenk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bb24c679a51b1a9b726b901330649e3861814ac0",
      "tree": "0acb31023b4b6ff49e173005fb9baaa3f3b74b2f",
      "parents": [
        "5dfc80be73dd0c212d2e6dd8dbf5afa07e680bbe"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:20 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:00 2009 -0700"
      },
      "message": "tracehook_notify_death: use task_detached() helper\n\nNow that task_detached() is exported, change tracehook_notify_death() to\nuse this helper, nobody else checks -\u003eexit_signal \u003d\u003d -1 by hand.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: \"Metzger, Markus T\" \u003cmarkus.t.metzger@intel.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5dfc80be73dd0c212d2e6dd8dbf5afa07e680bbe",
      "tree": "ac173fb3fcfe2970781591f620f22d30f4ce090c",
      "parents": [
        "39c626ae47c469abdfd30c6e42eff884931380d6"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:00 2009 -0700"
      },
      "message": "forget_original_parent: do not abuse child-\u003eptrace_entry\n\nBy discussion with Roland.\n\n- Use -\u003esibling instead of -\u003eptrace_entry to chain the need to be\n  release_task\u0027d childs. Nobody else can use -\u003esibling, this task\n  is EXIT_DEAD and nobody can find it on its own list.\n\n- rename ptrace_dead to dead_childs.\n\n- Now that we don\u0027t have the \"parallel\" untrace code, change back\n  reparent_thread() to return void, pass dead_childs as an argument.\n\nActually, I don\u0027t understand why do we notify /sbin/init when we\nreparent a zombie, probably it is better to reap it unconditionally.\n\n[akpm@linux-foundation.org: s/childs/children/]\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: \"Metzger, Markus T\" \u003cmarkus.t.metzger@intel.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "39c626ae47c469abdfd30c6e42eff884931380d6",
      "tree": "58cbe75bac79ce8ef55c94189df26448d0283918",
      "parents": [
        "7f5d3652d469cdf9eb2365dfea7ce3fb9e1409cc"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:00 2009 -0700"
      },
      "message": "forget_original_parent: split out the un-ptrace part\n\nBy discussion with Roland.\n\n- Rename ptrace_exit() to exit_ptrace(), and change it to do all the\n  necessary work with -\u003eptraced list by its own.\n\n- Move this code from exit.c to ptrace.c\n\n- Update the comment in ptrace_detach() to explain the rechecking of\n  the child-\u003eptrace.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: \"Metzger, Markus T\" \u003cmarkus.t.metzger@intel.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7f5d3652d469cdf9eb2365dfea7ce3fb9e1409cc",
      "tree": "590f845665e166694ba0f9ba0e6d2267e15d8aae",
      "parents": [
        "b1442b055c154699a6a2c436f3352f71b6beede3"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:17 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:59 2009 -0700"
      },
      "message": "reparent_thread: fix a zombie leak if /sbin/init ignores SIGCHLD\n\nIf /sbin/init ignores SIGCHLD and we re-parent a zombie, it is leaked.\nreparent_thread() does do_notify_parent() which sets -\u003eexit_signal \u003d -1 in\nthis case.  This means that nobody except us can reap it, the detached\ntask is not visible to do_wait().\n\nChange reparent_thread() to return a boolean (like __pthread_detach) to\nindicate that the thread is dead and must be released.  Also change\nforget_original_parent() to add the child to ptrace_dead list in this\ncase.\n\nThe naming becomes insane, the next patch does the cleanup.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b1442b055c154699a6a2c436f3352f71b6beede3",
      "tree": "dda315fddb15936bc74eb9c74bec29b64e65b71c",
      "parents": [
        "0a967a044a777e8b9c739120927114ddc0094298"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:16 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:59 2009 -0700"
      },
      "message": "reparent_thread: fix the \"is it traced\" check\n\nreparent_thread() uses ptrace_reparented() to check whether this thread is\nptraced, in that case we should not notify the new parent.\n\nBut ptrace_reparented() is not exactly correct when the reparented thread\nis traced by /sbin/init, because forget_original_parent() has already\nchanged -\u003ereal_parent.\n\nCurrently, the only problem is the false notification.  But with the next\npatch the kernel crash in this (yes, pathological) case.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0a967a044a777e8b9c739120927114ddc0094298",
      "tree": "aa1abba4c643e0f502623870045a4c978db5683b",
      "parents": [
        "4576145c1ecdaaea9ef8976a48335206aa1ebf91"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:15 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:59 2009 -0700"
      },
      "message": "reparent_thread: don\u0027t call kill_orphaned_pgrp() if task_detached()\n\nIf task_detached(p) \u003d\u003d T, then either\n\n  a) p is not the main thread, we will find the group leader on the\n     -\u003echildren list.\n\nor\n\n  b) p is the group leader but its -\u003eexit_state \u003d EXIT_DEAD.  This\n     can only happen when the last sub-thread has died, but in that case\n     that thread has already called kill_orphaned_pgrp() from\n     exit_notify().\n\nIn both cases kill_orphaned_pgrp() looks bogus.\n\nMove the task_detached() check up and simplify the code, this is also\nright from the \"common sense\" pov: we should do nothing with the detached\nchilds, except move them to the new parent\u0027s -\u003echildren list.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4576145c1ecdaaea9ef8976a48335206aa1ebf91",
      "tree": "b20b51848380b708f4158852b1bb4afa29ffc5f0",
      "parents": [
        "b1b4c6799fb59e710454bfe0ab477cb8523a8667"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:14 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:59 2009 -0700"
      },
      "message": "ptrace: fix possible zombie leak on PTRACE_DETACH\n\nWhen ptrace_detach() takes tasklist, the tracee can be SIGKILL\u0027ed.  If it\nhas already passed exit_notify() we can leak a zombie, because a) ptracing\ndisables the auto-reaping logic, and b) -\u003ereal_parent was not notified\nabout the child\u0027s death.\n\nptrace_detach() should follow the ptrace_exit\u0027s logic, change the code\naccordingly.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nTested-by: Denys Vlasenko \u003cdvlasenk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b1b4c6799fb59e710454bfe0ab477cb8523a8667",
      "tree": "1cdd19f00c584a8800ce0d3a5530b78d1cbd6e56",
      "parents": [
        "6d69cb87f05eef3b02370b2f7bae608ad2301a00"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:13 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:59 2009 -0700"
      },
      "message": "ptrace: reintroduce __ptrace_detach() as a callee of ptrace_exit()\n\nNo functional changes, preparation for the next patch.\n\nMove the \"should we release this child\" logic into the separate handler,\n__ptrace_detach().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Denys Vlasenko \u003cdvlasenk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6d69cb87f05eef3b02370b2f7bae608ad2301a00",
      "tree": "69f38afc49df51a1a75fc5c7792ced6888af329d",
      "parents": [
        "95c3eb76dc07fd81289888ffc42948196b34b444"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:12 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:59 2009 -0700"
      },
      "message": "ptrace: simplify ptrace_exit()-\u003eignoring_children() path\n\nignoring_children() takes parent-\u003esighand-\u003esiglock and checks\nk_sigaction[SIGCHLD] atomically.  But this buys nothing, we can\u0027t get the\n\"really\" wrong result even if we race with sigaction(SIGCHLD).  If we read\nthe \"stale\" sa_handler/sa_flags we can pretend it was changed right after\nthe check.\n\nRemove spin_lock(-\u003esiglock), and kill \"int ign\" which caches the result of\nignoring_children() which becomes rather trivial.\n\nPerhaps it makes sense to export this helper, do_notify_parent() can use\nit too.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Denys Vlasenko \u003cdvlasenk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "95c3eb76dc07fd81289888ffc42948196b34b444",
      "tree": "a656316699a090405387d0071bac2a03a7128f57",
      "parents": [
        "6588c1e3ff01418acafd938db0740e3477dc8cb7"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:11 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:59 2009 -0700"
      },
      "message": "ptrace: kill __ptrace_detach(), fix -\u003eexit_state check\n\nMove the code from __ptrace_detach() to its single caller and kill this\nhelper.\n\nAlso, fix the -\u003eexit_state check, we shouldn\u0027t wake up EXIT_DEAD tasks.\nActually, I think task_is_stopped_or_traced() makes more sense, but this\nneeds another patch.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Denys Vlasenko \u003cdvlasenk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6588c1e3ff01418acafd938db0740e3477dc8cb7",
      "tree": "b58beed5813667619be47c5d064f8f78804e92d1",
      "parents": [
        "b3bfa0cba867f23365b81658b47efd906830879b"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Thu Apr 02 16:58:09 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:58 2009 -0700"
      },
      "message": "signals: SI_USER: Masquerade si_pid when crossing pid ns boundary\n\nWhen sending a signal to a descendant namespace, set -\u003esi_pid to 0 since\nthe sender does not have a pid in the receiver\u0027s namespace.\n\nNote:\n\t- If rt_sigqueueinfo() sets si_code to SI_USER when sending a\n\t  signal across a pid namespace boundary, the value in -\u003esi_pid\n\t  will be cleared to 0.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b3bfa0cba867f23365b81658b47efd906830879b",
      "tree": "e54d9a9c4c23fc00bb2ff3ed57ef5317a0660ea5",
      "parents": [
        "e4da026f980df125a4918c3bb9fe93185c7ef12a"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Thu Apr 02 16:58:08 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:58 2009 -0700"
      },
      "message": "signals: protect cinit from blocked fatal signals\n\nNormally SIG_DFL signals to global and container-init are dropped early.\nBut if a signal is blocked when it is posted, we cannot drop the signal\nsince the receiver may install a handler before unblocking the signal.\nOnce this signal is queued however, the receiver container-init has no way\nof knowing if the signal was sent from an ancestor or descendant\nnamespace.  This patch ensures that contianer-init drops all SIG_DFL\nsignals in get_signal_to_deliver() except SIGKILL/SIGSTOP.\n\nIf SIGSTOP/SIGKILL originate from a descendant of container-init they are\nnever queued (i.e dropped in sig_ignored() in an earler patch).\n\nIf SIGSTOP/SIGKILL originate from parent namespace, the signal is queued\nand container-init processes the signal.\n\nIOW, if get_signal_to_deliver() sees a sig_kernel_only() signal for global\nor container-init, the signal must have been generated internally or must\nhave come from an ancestor ns and we process the signal.\n\nFurther, the signal_group_exit() check was needed to cover the case of a\nmulti-threaded init sending SIGKILL to other threads when doing an exit()\nor exec().  But since the new sig_kernel_only() check covers the SIGKILL,\nthe signal_group_exit() check is no longer needed and can be removed.\n\nFinally, now that we have all pieces in place, set SIGNAL_UNKILLABLE for\ncontainer-inits.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e4da026f980df125a4918c3bb9fe93185c7ef12a",
      "tree": "bb755bb687bca82feb05ba3bb6962ef57257dd9a",
      "parents": [
        "921cf9f63089c7442d44083477620132f4cea066"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Thu Apr 02 16:58:06 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:58 2009 -0700"
      },
      "message": "signals: zap_pid_ns_process() should use force_sig()\n\nsend_signal() assumes that signals with SEND_SIG_PRIV are generated from\nwithin the same namespace.  So any nested container-init processes become\nimmune to the SIGKILL generated by kill_proc_info() in\nzap_pid_ns_processes().\n\nUse force_sig() in zap_pid_ns_processes() instead - force_sig() clears the\nSIGNAL_UNKILLABLE flag ensuring the signal is processed by\ncontainer-inits.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "921cf9f63089c7442d44083477620132f4cea066",
      "tree": "2a79eb0f7328ba2f05759d1b2c1e141bcfe4aafc",
      "parents": [
        "7978b567d31555fc828b8f945c605ad29e117b22"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Thu Apr 02 16:58:05 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:58 2009 -0700"
      },
      "message": "signals: protect cinit from unblocked SIG_DFL signals\n\nDrop early any SIG_DFL or SIG_IGN signals to container-init from within\nthe same container.  But queue SIGSTOP and SIGKILL to the container-init\nif they are from an ancestor container.\n\nBlocked, fatal signals (i.e when SIG_DFL is to terminate) from within the\ncontainer can still terminate the container-init.  That will be addressed\nin the next patch.\n\nNote:\tTo be bisect-safe, SIGNAL_UNKILLABLE will be set for container-inits\n   \tin a follow-on patch. Until then, this patch is just a preparatory\n\tstep.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7978b567d31555fc828b8f945c605ad29e117b22",
      "tree": "a66d7880f3031e417c2afb76c990ed5340565816",
      "parents": [
        "f008faff0e2777c8b3fe853891b774ca465938d8"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Thu Apr 02 16:58:04 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:58 2009 -0700"
      },
      "message": "signals: add from_ancestor_ns parameter to send_signal()\n\nsend_signal() (or its helper) needs to determine the pid namespace of the\nsender.  But a signal sent via kill_pid_info_as_uid() comes from within\nthe kernel and send_signal() does not need to determine the pid namespace\nof the sender.  So define a helper for send_signal() which takes an\nadditional parameter, \u0027from_ancestor_ns\u0027 and have kill_pid_info_as_uid()\nuse that helper directly.\n\nThe \u0027from_ancestor_ns\u0027 parameter will be used in a follow-on patch.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f008faff0e2777c8b3fe853891b774ca465938d8",
      "tree": "d2f325995473a33652f7f7ead71e63d5298fbd01",
      "parents": [
        "43918f2bf4806675943416d539d9d5e4d585ebff"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:02 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:58 2009 -0700"
      },
      "message": "signals: protect init from unwanted signals more\n\n(This is a modified version of the patch submitted by Oleg Nesterov\nhttp://lkml.org/lkml/2008/11/18/249 and tries to address comments that\ncame up in that discussion)\n\ninit ignores the SIG_DFL signals but we queue them anyway, including\nSIGKILL.  This is mostly OK, the signal will be dropped silently when\ndequeued, but the pending SIGKILL has 2 bad implications:\n\n        - it implies fatal_signal_pending(), so we confuse things\n          like wait_for_completion_killable/lock_page_killable.\n\n        - for the sub-namespace inits, the pending SIGKILL can\n          mask (legacy_queue) the subsequent SIGKILL from the\n          parent namespace which must kill cinit reliably.\n          (preparation, cinits don\u0027t have SIGNAL_UNKILLABLE yet)\n\nThe patch can\u0027t help when init is ptraced, but ptracing of init is not\n\"safe\" anyway.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "43918f2bf4806675943416d539d9d5e4d585ebff",
      "tree": "1de2ea08eed647b181b7f008f95e4bc4ec34c343",
      "parents": [
        "90bc8d8b1a38f1ab131a2399a202e1889db95de8"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:00 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:58 2009 -0700"
      },
      "message": "signals: remove \u0027handler\u0027 parameter to tracehook functions\n\nContainer-init must behave like global-init to processes within the\ncontainer and hence it must be immune to unhandled fatal signals from\nwithin the container (i.e SIG_DFL signals that terminate the process).\n\nBut the same container-init must behave like a normal process to processes\nin ancestor namespaces and so if it receives the same fatal signal from a\nprocess in ancestor namespace, the signal must be processed.\n\nImplementing these semantics requires that send_signal() determine pid\nnamespace of the sender but since signals can originate from workqueues/\ninterrupt-handlers, determining pid namespace of sender may not always be\npossible or safe.\n\nThis patchset implements the design/simplified semantics suggested by\nOleg Nesterov.  The simplified semantics for container-init are:\n\n\t- container-init must never be terminated by a signal from a\n\t  descendant process.\n\n\t- container-init must never be immune to SIGKILL from an ancestor\n\t  namespace (so a process in parent namespace must always be able\n\t  to terminate a descendant container).\n\n\t- container-init may be immune to unhandled fatal signals (like\n\t  SIGUSR1) even if they are from ancestor namespace. SIGKILL/SIGSTOP\n\t  are the only reliable signals to a container-init from ancestor\n\t  namespace.\n\nThis patch:\n\nBased on an earlier patch submitted by Oleg Nesterov and comments from\nRoland McGrath (http://lkml.org/lkml/2008/11/19/258).\n\nThe handler parameter is currently unused in the tracehook functions.\nBesides, the tracehook functions are called with siglock held, so the\nfunctions can check the handler if they later need to.\n\nRemoving the parameter simiplifies changes to sig_ignored() in a follow-on\npatch.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\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": "90bc8d8b1a38f1ab131a2399a202e1889db95de8",
      "tree": "97001737dc3c1c7fd364ddd995bcbfc1c27b4c3a",
      "parents": [
        "6d7b2f5f9e88902b19f91d0c8a7ef58a5455f1a2"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:57:58 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:57 2009 -0700"
      },
      "message": "do_wait: fix waiting for the group stop with the dead leader\n\ndo_wait(WSTOPPED) assumes that p-\u003estate must be \u003d\u003d TASK_STOPPED, this is\nnot true if the leader is already dead.  Check SIGNAL_STOP_STOPPED instead\nand use signal-\u003egroup_exit_code.\n\nTrivial test-case:\n\n\tvoid *tfunc(void *arg)\n\t{\n\t\tpause();\n\t\treturn NULL;\n\t}\n\n\tint main(void)\n\t{\n\t\tpthread_t thr;\n\t\tpthread_create(\u0026thr, NULL, tfunc, NULL);\n\t\tpthread_exit(NULL);\n\t\treturn 0;\n\t}\n\nIt doesn\u0027t react to ^Z (and then to ^C or ^\\). The task is stopped, but\nbash can\u0027t see this.\n\nThe bug is very old, and it was reported multiple times. This patch was sent\nmore than a year ago (http://marc.info/?t\u003d119713920000003) but it was ignored.\n\nThis change also fixes other oddities (but not all) in this area.  For\nexample, before this patch:\n\n\t$ sleep 100\n\t^Z\n\t[1]+  Stopped                 sleep 100\n\t$ strace -p `pidof sleep`\n\tProcess 11442 attached - interrupt to quit\n\nstrace hangs in do_wait(), because -\u003eexit_code was already consumed by\nbash.  After this patch, strace happily proceeds:\n\n\t--- SIGTSTP (Stopped) @ 0 (0) ---\n\trestart_syscall(\u003c... resuming interrupted call ...\u003e\n\nTo me, this looks much more \"natural\" and correct.\n\nAnother example.  Let\u0027s suppose we have the main thread M and sub-thread\nT, the process is stopped, and its parent did wait(WSTOPPED).  Now we can\nptrace T but not M.  This looks at least strange to me.\n\nImho, do_wait() should not confuse the per-thread ptrace stops with the\nper-process job control stops.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Denys Vlasenko \u003cdvlasenk@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Jan Kratochvil \u003cjan.kratochvil@redhat.com\u003e\nCc: Kaz Kylheku \u003ckkylheku@gmail.com\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6d7b2f5f9e88902b19f91d0c8a7ef58a5455f1a2",
      "tree": "4ad594fcef55ad95424e58c39e10a723d1dcbe4f",
      "parents": [
        "db7f47cf4805e30decb0841764b21b7c4000f7dc"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Thu Apr 02 16:57:57 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:57 2009 -0700"
      },
      "message": "cpusets: prevent PF_THREAD_BOUND tasks from attaching to non-root cpusets\n\nKthreads that have the PF_THREAD_BOUND bit set in their flags are bound to a\nspecific cpu.  Thus, their set of allowed cpus shall not change.\n\nThis patch prevents such threads from attaching to non-root cpusets.  They do\nnot have mempolicies that restrict them to a subset of system nodes and, since\ntheir cpumask may never change, they cannot use any of the features of\ncpusets.\n\nThe tasks will forever be a member of the root cpuset and will be returned\nwhen listing the tasks attached to that cpuset.\n\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Dhaval Giani \u003cdhaval@linux.vnet.ibm.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "db7f47cf4805e30decb0841764b21b7c4000f7dc",
      "tree": "10a7ee574ae29fbd3c78a22bd6700e14efe80e65",
      "parents": [
        "a1bc5a4eee990a1f290735c8694d0aebdad095fa"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Apr 02 16:57:55 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:57 2009 -0700"
      },
      "message": "cpusets: allow cpusets to be configured/built on non-SMP systems\n\nAllow cpusets to be configured/built on non-SMP systems\n\nCurrently it\u0027s impossible to build cpusets under UML on x86-64, since\ncpusets depends on SMP and x86-64 UML doesn\u0027t support SMP.\n\nThere\u0027s code in cpusets that doesn\u0027t depend on SMP.  This patch surrounds\nthe minimum amount of cpusets code with #ifdef CONFIG_SMP in order to\nallow cpusets to build/run on UP systems (for testing purposes under UML).\n\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a1bc5a4eee990a1f290735c8694d0aebdad095fa",
      "tree": "f3e5849823444136df9c7f91f7217e1894235682",
      "parents": [
        "7f81b1ae18416b457e4d5ff23f0bd598e8a42224"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Thu Apr 02 16:57:54 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:57 2009 -0700"
      },
      "message": "cpusets: replace zone allowed functions with node allowed\n\nThe cpuset_zone_allowed() variants are actually only a function of the\nzone\u0027s node.\n\nCc: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7f81b1ae18416b457e4d5ff23f0bd598e8a42224",
      "tree": "8b484cec5b67d4cf00dfacd407b2648cd0d1b645",
      "parents": [
        "010cfac4ca0f9e85f54ba2117a372e72f4fb9a60"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:53 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:57 2009 -0700"
      },
      "message": "cpuset: remove struct cpuset_hotplug_scanner\n\nUse cgroup_scanner.data, instead of introducing cpuset_hotplug_scanner.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "010cfac4ca0f9e85f54ba2117a372e72f4fb9a60",
      "tree": "47b8ed65b2e3cdfe269794545995020947a667a6",
      "parents": [
        "3b6766fe668b83c8a03c6ed01bcc2ac77cbae848"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:52 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:57 2009 -0700"
      },
      "message": "cpuset: avoid changing cpuset\u0027s mems when errno returned\n\nWhen writing to cpuset.mems, cpuset has to update its mems_allowed before\ncalling update_tasks_nodemask(), but this function might return -ENOMEM.\n\nTo avoid this rare case, we allocate the memory before changing\nmems_allowed, and then pass to update_tasks_nodemask().  Similar to what\nupdate_cpumask() does.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3b6766fe668b83c8a03c6ed01bcc2ac77cbae848",
      "tree": "8b109576301d849406f080c61f4ce1809556ad0b",
      "parents": [
        "bd1a8ab73edd449fecda633449cc277b856ad4f5"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:51 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:57 2009 -0700"
      },
      "message": "cpuset: rewrite update_tasks_nodemask()\n\nThis patch uses cgroup_scan_tasks() to rebind tasks\u0027 vmas to new cpuset\u0027s\nmems_allowed.\n\nNot only simplify the code largely, but also avoid allocating an array to\nhold mm pointers of all the tasks in the cpuset.  This array can be big\n(size \u003e PAGESIZE) if we have lots of tasks in that cpuset, thus has a\nchance to fail the allocation when under memory stress.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bd1a8ab73edd449fecda633449cc277b856ad4f5",
      "tree": "66095c2a59f8706138e89190ec6c1d9cfaab6916",
      "parents": [
        "0b4217b3fdddc4a58939720d3ed809537577d48b"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:50 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:56 2009 -0700"
      },
      "message": "cgroups: add \u0027data\u0027 field to struct cgroup_scanner\n\nWe need to pass some data to test_task() or process_task() in some cases.\nWill be used later.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0b4217b3fdddc4a58939720d3ed809537577d48b",
      "tree": "9bda180eb4e9fed454453b4aeaf9447602c74022",
      "parents": [
        "83aae4c737866da3280f51fd15da58eddd788397"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:49 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:56 2009 -0700"
      },
      "message": "cpuset: fix possible races in cpu/memory hotplug\n\nChange to cpuset-\u003ecpus_allowed and cpuset-\u003emems_allowed should be protected\nby callback_mutex, otherwise the reader may read wrong cpus/mems. This is\ncpuset\u0027s lock rule.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "83aae4c737866da3280f51fd15da58eddd788397",
      "tree": "a4fdabfb02949e0d44743850b7f37ae52eaed757",
      "parents": [
        "627991a20b3f4d504d20466ab405fe035cb1a20a"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Thu Apr 02 16:57:48 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:56 2009 -0700"
      },
      "message": "memcg: cleanup cache_charge\n\nCurrent mem_cgroup_cache_charge is a bit complicated especially\nin the case of shmem\u0027s swap-in.\n\nThis patch cleans it up by using try_charge_swapin and commit_charge_swapin.\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "627991a20b3f4d504d20466ab405fe035cb1a20a",
      "tree": "ac1d7e0bc0881cf31c72ab1f830de904d52ef13e",
      "parents": [
        "a3b2d692690aef228e493b1beaafe5364cab3237"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:47 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:56 2009 -0700"
      },
      "message": "memcg: remove redundant message at swapon\n\nIt\u0027s pointed out that swap_cgroup\u0027s message at swapon() is nonsense.\nBecause\n\n  * It can be calculated very easily if all necessary information is\n    written in Kconfig.\n\n  * It\u0027s not necessary to annoying people at every swapon().\n\nIn other view, now, memory usage per swp_entry is reduced to 2bytes from\n8bytes(64bit) and I think it\u0027s reasonably small.\n\nReported-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a3b2d692690aef228e493b1beaafe5364cab3237",
      "tree": "d3ad99c5370462861a1b918b4136e7bd7ad78e52",
      "parents": [
        "3c776e64660028236313f0e54f3a9945764422df"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:45 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:56 2009 -0700"
      },
      "message": "cgroups: use css id in swap cgroup for saving memory v5\n\nTry to use CSS ID for records in swap_cgroup.  By this, on 64bit machine,\nsize of swap_cgroup goes down to 2 bytes from 8bytes.\n\nThis means, when 2GB of swap is equipped, (assume the page size is 4096bytes)\n\n\tFrom size of swap_cgroup \u003d 2G/4k * 8 \u003d 4Mbytes.\n\tTo   size of swap_cgroup \u003d 2G/4k * 2 \u003d 1Mbytes.\n\nReduction is large.  Of course, there are trade-offs.  This CSS ID will\nadd overhead to swap-in/swap-out/swap-free.\n\nBut in general,\n  - swap is a resource which the user tend to avoid use.\n  - If swap is never used, swap_cgroup area is not used.\n  - Reading traditional manuals, size of swap should be proportional to\n    size of memory. Memory size of machine is increasing now.\n\nI think reducing size of swap_cgroup makes sense.\n\nNote:\n  - ID-\u003eCSS lookup routine has no locks, it\u0027s under RCU-Read-Side.\n  - memcg can be obsolete at rmdir() but not freed while refcnt from\n    swap_cgroup is available.\n\nChangelog v4-\u003ev5:\n - reworked on to memcg-charge-swapcache-to-proper-memcg.patch\nChanglog -\u003ev4:\n - fixed not configured case.\n - deleted unnecessary comments.\n - fixed NULL pointer bug.\n - fixed message in dmesg.\n\n[nishimura@mxp.nes.nec.co.jp: css_tryget can be called twice in !PageCgroupUsed case]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3c776e64660028236313f0e54f3a9945764422df",
      "tree": "4268ca55283e572ab0e6570cd05030d64048af34",
      "parents": [
        "3918b96e03b2b8dd05889320623f6870e81d35ec"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Thu Apr 02 16:57:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:56 2009 -0700"
      },
      "message": "memcg: charge swapcache to proper memcg\n\nmemcg_test.txt says at 4.1:\n\n\tThis swap-in is one of the most complicated work. In do_swap_page(),\n\tfollowing events occur when pte is unchanged.\n\n\t(1) the page (SwapCache) is looked up.\n\t(2) lock_page()\n\t(3) try_charge_swapin()\n\t(4) reuse_swap_page() (may call delete_swap_cache())\n\t(5) commit_charge_swapin()\n\t(6) swap_free().\n\n\tConsidering following situation for example.\n\n\t(A) The page has not been charged before (2) and reuse_swap_page()\n\t    doesn\u0027t call delete_from_swap_cache().\n\t(B) The page has not been charged before (2) and reuse_swap_page()\n\t    calls delete_from_swap_cache().\n\t(C) The page has been charged before (2) and reuse_swap_page() doesn\u0027t\n\t    call delete_from_swap_cache().\n\t(D) The page has been charged before (2) and reuse_swap_page() calls\n\t    delete_from_swap_cache().\n\n\t    memory.usage/memsw.usage changes to this page/swp_entry will be\n\t Case          (A)      (B)       (C)     (D)\n         Event\n       Before (2)     0/ 1     0/ 1      1/ 1    1/ 1\n          \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n          (3)        +1/+1    +1/+1     +1/+1   +1/+1\n          (4)          -       0/ 0       -     -1/ 0\n          (5)         0/-1     0/ 0     -1/-1    0/ 0\n          (6)          -       0/-1       -      0/-1\n          \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n       Result         1/ 1     1/ 1      1/ 1    1/ 1\n\n       In any cases, charges to this page should be 1/ 1.\n\nIn case of (D), mem_cgroup_try_get_from_swapcache() returns NULL\n(because lookup_swap_cgroup() returns NULL), so \"+1/+1\" at (3) means\ncharges to the memcg(\"foo\") to which the \"current\" belongs.\nOTOH, \"-1/0\" at (4) and \"0/-1\" at (6) means uncharges from the memcg(\"baa\")\nto which the page has been charged.\n\nSo, if the \"foo\" and \"baa\" is different(for example because of task move),\nthis charge will be moved from \"baa\" to \"foo\".\n\nI think this is an unexpected behavior.\n\nThis patch fixes this by modifying mem_cgroup_try_get_from_swapcache()\nto return the memcg to which the swapcache has been charged if PCG_USED bit\nis set.\nIIUC, checking PCG_USED bit of swapcache is safe under page lock.\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3918b96e03b2b8dd05889320623f6870e81d35ec",
      "tree": "b00b009a4e7b2a2605e592c5faf262c6006f74f5",
      "parents": [
        "c137b5ece4b111e46981aae7da77315b9909809f"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:41 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:56 2009 -0700"
      },
      "message": "memcg: remove mem_cgroup_reclaim_imbalance() remnants\n\ncommit 4f98a2fee8acdb4ac84545df98cccecfd130f8db (vmscan: split LRU lists\ninto anon \u0026 file sets) removed mem_cgroup_reclaim_imbalance(), but there\nare some leftovers in memcontrol.h.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c137b5ece4b111e46981aae7da77315b9909809f",
      "tree": "99677d3ae0f9016e83f257743ff04d5886a6e998",
      "parents": [
        "e222432bfa7dcf6ec008622a978c9f284ed5e3a9"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:40 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:55 2009 -0700"
      },
      "message": "memcg: remove mem_cgroup_calc_mapped_ratio()\n\nCurrently, mem_cgroup_calc_mapped_ratio() is unused at all.  it can be\nremoved and KAMEZAWA-san suggested it.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e222432bfa7dcf6ec008622a978c9f284ed5e3a9",
      "tree": "b006f569cb66523a5644ad0ef1669b051ccda907",
      "parents": [
        "0b7f569e45bb6be142d87017030669a6a7d327a1"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Thu Apr 02 16:57:39 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:55 2009 -0700"
      },
      "message": "memcg: show memcg information during OOM\n\nAdd RSS and swap to OOM output from memcg\n\nDisplay memcg values like failcnt, usage and limit when an OOM occurs due\nto memcg.\n\nThanks to Johannes Weiner, Li Zefan, David Rientjes, Kamezawa Hiroyuki,\nDaisuke Nishimura and KOSAKI Motohiro for review.\n\nSample output\n-------------\n\nTask in /a/x killed as a result of limit of /a\nmemory: usage 1048576kB, limit 1048576kB, failcnt 4183\nmemory+swap: usage 1400964kB, limit 9007199254740991kB, failcnt 0\n\n[akpm@linux-foundation.org: compilation fix]\n[akpm@linux-foundation.org: fix kerneldoc and whitespace]\n[akpm@linux-foundation.org: add printk facility level]\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0b7f569e45bb6be142d87017030669a6a7d327a1",
      "tree": "8df7877b95c093ebf4cb4e1006cea16f75fc79b7",
      "parents": [
        "81d39c20f5ee2437d71709beb82597e2a38efbbc"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:38 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:55 2009 -0700"
      },
      "message": "memcg: fix OOM killer under memcg\n\nThis patch tries to fix OOM Killer problems caused by hierarchy.\nNow, memcg itself has OOM KILL function (in oom_kill.c) and tries to\nkill a task in memcg.\n\nBut, when hierarchy is used, it\u0027s broken and correct task cannot\nbe killed. For example, in following cgroup\n\n\t/groupA/\thierarchy\u003d1, limit\u003d1G,\n\t\t01\tnolimit\n\t\t02\tnolimit\nAll tasks\u0027 memory usage under /groupA, /groupA/01, groupA/02 is limited to\ngroupA\u0027s 1Gbytes but OOM Killer just kills tasks in groupA.\n\nThis patch provides makes the bad process be selected from all tasks\nunder hierarchy. BTW, currently, oom_jiffies is updated against groupA\nin above case. oom_jiffies of tree should be updated.\n\nTo see how oom_jiffies is used, please check mem_cgroup_oom_called()\ncallers.\n\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: const fix]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "81d39c20f5ee2437d71709beb82597e2a38efbbc",
      "tree": "56297eb00cfa2bc251b2c5e0e0330becafd39e33",
      "parents": [
        "14067bb3e24b96d92e22d19c18c0119edf5575e5"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:36 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:55 2009 -0700"
      },
      "message": "memcg: fix shrinking memory to return -EBUSY by fixing retry algorithm\n\nAs pointed out, shrinking memcg\u0027s limit should return -EBUSY after\nreasonable retries.  This patch tries to fix the current behavior of\nshrink_usage.\n\nBefore looking into \"shrink should return -EBUSY\" problem, we should fix\nhierarchical reclaim code.  It compares current usage and current limit,\nbut it only makes sense when the kernel reclaims memory because hit\nlimits.  This is also a problem.\n\nWhat this patch does are.\n\n  1. add new argument \"shrink\" to hierarchical reclaim. If \"shrink\u003d\u003dtrue\",\n     hierarchical reclaim returns immediately and the caller checks the kernel\n     should shrink more or not.\n     (At shrinking memory, usage is always smaller than limit. So check for\n      usage \u003c limit is useless.)\n\n  2. For adjusting to above change, 2 changes in \"shrink\"\u0027s retry path.\n     2-a. retry_count depends on # of children because the kernel visits\n\t  the children under hierarchy one by one.\n     2-b. rather than checking return value of hierarchical_reclaim\u0027s progress,\n\t  compares usage-before-shrink and usage-after-shrink.\n\t  If usage-before-shrink \u003c\u003d usage-after-shrink, retry_count is\n\t  decremented.\n\nReported-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "14067bb3e24b96d92e22d19c18c0119edf5575e5",
      "tree": "54af97e899bf4253b170938f6711097824b7364f",
      "parents": [
        "04046e1a0a34286382e913f8fc461440c21d88e8"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamzawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:55 2009 -0700"
      },
      "message": "memcg: hierarchical stat\n\nClean up memory.stat file routine and show \"total\" hierarchical stat.\n\nThis patch does\n  - renamed get_all_zonestat to be get_local_zonestat.\n  - remove old mem_cgroup_stat_desc, which is only for per-cpu stat.\n  - add mcs_stat to cover both of per-cpu/per-lru stat.\n  - add \"total\" stat of hierarchy (*)\n  - add a callback system to scan all memcg under a root.\n\u003d\u003d \"total\" is added.\n[kamezawa@localhost ~]$ cat /opt/cgroup/xxx/memory.stat\ncache 0\nrss 0\npgpgin 0\npgpgout 0\ninactive_anon 0\nactive_anon 0\ninactive_file 0\nactive_file 0\nunevictable 0\nhierarchical_memory_limit 50331648\nhierarchical_memsw_limit 9223372036854775807\ntotal_cache 65536\ntotal_rss 192512\ntotal_pgpgin 218\ntotal_pgpgout 155\ntotal_inactive_anon 0\ntotal_active_anon 135168\ntotal_inactive_file 61440\ntotal_active_file 4096\ntotal_unevictable 0\n\u003d\u003d\n(*) maybe the user can do calc hierarchical stat by his own program\n   in userland but if it can be written in clean way, it\u0027s worth to be\n   shown, I think.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "04046e1a0a34286382e913f8fc461440c21d88e8",
      "tree": "cab2b8a61e7474d509fbd3ea02e38b7c4137ce4b",
      "parents": [
        "b4046f00ee7c1e5615261b496cf7309683275b29"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:55 2009 -0700"
      },
      "message": "memcg: use CSS ID\n\nAssigning CSS ID for each memcg and use css_get_next() for scanning hierarchy.\n\n\tAssume folloing tree.\n\n\tgroup_A (ID\u003d3)\n\t\t/01 (ID\u003d4)\n\t\t   /0A (ID\u003d7)\n\t\t/02 (ID\u003d10)\n\tgroup_B (ID\u003d5)\n\tand task in group_A/01/0A hits limit at group_A.\n\n\treclaim will be done in following order (round-robin).\n\tgroup_A(3) -\u003e group_A/01 (4) -\u003e group_A/01/0A (7) -\u003e group_A/02(10)\n\t-\u003e group_A -\u003e .....\n\n\tRound robin by ID. The last visited cgroup is recorded and restart\n\tfrom it when it start reclaim again.\n\t(More smart algorithm can be implemented..)\n\n\tNo cgroup_mutex or hierarchy_mutex is required.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b4046f00ee7c1e5615261b496cf7309683275b29",
      "tree": "8ef312b95b03f362f7780a37620167c54bf55e8f",
      "parents": [
        "d969fbe69e07fcceb0558b35d4c75eb046041c5e"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:32 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:55 2009 -0700"
      },
      "message": "devcgroup: avoid using cgroup_lock\n\nThere is nothing special that has to be protected by cgroup_lock,\nso introduce devcgroup_mtuex for it\u0027s own use.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d969fbe69e07fcceb0558b35d4c75eb046041c5e",
      "tree": "e93bab346a32b061522a946fe3a012155c59c27c",
      "parents": [
        "0670e08bdfc67272f8c3087030417465629b8073"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:31 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:54 2009 -0700"
      },
      "message": "debug cgroup: remove unneeded cgroup_lock\n\nSince we are in cgroup write handler, so the cgrp is valid, so we don\u0027t\nhave to hold cgroup_mutex when calling cgroup_task_count().  One similar\nexample is in cgroup_tasks_open().\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0670e08bdfc67272f8c3087030417465629b8073",
      "tree": "44a4e3b6059aeb8c2a97d5fb8ccf743a2eaafd07",
      "parents": [
        "099fca3225b39f7a3ed853036038054172b55581"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:30 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:54 2009 -0700"
      },
      "message": "cgroups: don\u0027t change release_agent when remount failed\n\nRemount can fail in either case:\n  - wrong mount options is specified, or option \u0027noprefix\u0027 is changed.\n  - a to-be-added subsys is already mounted/active.\n\nWhen using remount to change \u0027release_agent\u0027, for the above former failure\ncase, remount will return errno with release_agent unchanged, but for the\nlatter case, remount will return EBUSY with relase_agent changed, which is\nunexpected I think:\n\n # mount -t cgroup -o cpu xxx /cgrp1\n # mount -t cgroup -o cpuset,release_agent\u003dagent1 yyy /cgrp2\n # cat /cgrp2/release_agent\n agent1\n # mount -t cgroup -o remount,cpuset,noprefix,release_agent\u003dagent2 yyy /cgrp2\n mount: /cgrp2 not mounted already, or bad option\n # cat /cgrp2/release_agent\n agent1     \u003c-- ok\n # mount -t cgroup -o remount,cpu,cpuset,release_agent\u003dagent2 yyy /cgrp2\n mount: /cgrp2 is busy\n # cat /cgrp2/release_agent\n agent2     \u003c-- unexpected!\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "099fca3225b39f7a3ed853036038054172b55581"
}
