)]}'
{
  "log": [
    {
      "commit": "99987bea474ceca8ec6fb05f81d7d188634cdffd",
      "tree": "623e0222b4a85dfa66078db880a0e2828d42670a",
      "parents": [
        "65795efbd380a832ae508b04dba8f8e53f0b84d9"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "rolandd@cisco.com",
        "time": "Mon Jun 22 23:04:13 2009 -0700"
      },
      "committer": {
        "name": "Roland Dreier",
        "email": "rolandd@cisco.com",
        "time": "Mon Jun 22 23:04:13 2009 -0700"
      },
      "message": "IB/mthca: Replace dma_sync_single() use with proper functions\n\ndma_sync_single() is deprecated now, and the use in mthca is wrong:\nthere should be a dma_sync_single_for_cpu() before touching the memory\nfrom the CPU, and a dma_sync_single_for_device() afterwards.  Fix\nthis, prompted by a kick in the pants from a patch from FUJITA\nTomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e.\n\nSigned-off-by: Roland Dreier \u003crolandd@cisco.com\u003e\n"
    },
    {
      "commit": "65795efbd380a832ae508b04dba8f8e53f0b84d9",
      "tree": "a30261796868545d6b29ff062332433b460c3e2e",
      "parents": [
        "8d15b0ec32f20a57881dc073b2e8d11dea0ccceb",
        "4eaad8ad296a78689f148c8dcd383fc4e51ee123"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 21:26:42 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 21:26:42 2009 -0700"
      },
      "message": "Merge branch \u0027next-i2c\u0027 of git://aeryn.fluff.org.uk/bjdooks/linux\n\n* \u0027next-i2c\u0027 of git://aeryn.fluff.org.uk/bjdooks/linux:\n  i2c-stu300: Make driver depend on MACH_U300\n  i2c-s3c2410: use resource_size()\n  i2c: Use resource_size macro\n  i2c: ST DDC I2C U300 bus driver v3\n  i2c-bfin-twi: pull in io.h for ioremap()\n"
    },
    {
      "commit": "8d15b0ec32f20a57881dc073b2e8d11dea0ccceb",
      "tree": "8aa3d4dfd0660807c3ce2893b35292b3b0e3bf08",
      "parents": [
        "005411c3e9147bc3b78215390e847d688dbbc163",
        "cc8da5263fa743c33d6503f85113bcb70048e633"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 21:20:39 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 21:20:39 2009 -0700"
      },
      "message": "Merge branch \u0027drm-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6\n\n* \u0027drm-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:\n  drm/radeon: switch to using late_initcall\n  radeon legacy chips: tv dac bg/dac adj updates\n  drm/radeon: introduce kernel modesetting for radeon hardware\n  drm: Add the TTM GPU memory manager subsystem.\n  drm: Memory fragmentation from lost alignment blocks\n  drm/radeon: fix mobility flags on new PCI IDs.\n"
    },
    {
      "commit": "005411c3e9147bc3b78215390e847d688dbbc163",
      "tree": "ed10cb7c73135fbdf7a39798bb0f294e80f987a4",
      "parents": [
        "519d25679e8ae7433c758b9e74b19144f61b90f8"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Jun 16 21:36:49 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 21:20:14 2009 -0700"
      },
      "message": "AFS: Correctly translate auth error aborts and don\u0027t failover in such cases\n\nAuthentication error abort codes should be translated to appropriate\nLinux error codes, rather than all being translated to EREMOTEIO - which\nindicates that the server had internal problems.\n\nAdditionally, a server shouldn\u0027t be marked unavailable and the next\nserver tried if an authentication error occurs.  This will quickly make\nall the servers unavailable to the client.  Instead the error should be\nreturned straight to the user.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "519d25679e8ae7433c758b9e74b19144f61b90f8",
      "tree": "e458a5fbf4e37568133fd2488772e98c159fca2b",
      "parents": [
        "0dd5198672dd2bbeb933862e1fc82162e0b636be"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Jun 16 21:36:44 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 21:20:14 2009 -0700"
      },
      "message": "RxRPC: Don\u0027t attempt to reuse aborted connections\n\nConnections that have seen a connection-level abort should not be reused\nas the far end will just abort them again; instead a new connection\nshould be made.\n\nConnection-level aborts occur due to such things as authentication\nfailures.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0dd5198672dd2bbeb933862e1fc82162e0b636be",
      "tree": "c9efed20d90603c4d1626c21bd7aab1e7fc74a58",
      "parents": [
        "c868d550115b9ccc0027c67265b9520790f05601",
        "11c635a25b9f3a5d87409ce46cf2e05c500251ec"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 21:15:42 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 21:15:42 2009 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6: (425 commits)\n  V4L/DVB (11870): gspca - main: VIDIOC_ENUM_FRAMESIZES ioctl added.\n  V4L/DVB (12004): poll method lose race condition\n  V4L/DVB (11894): flexcop-pci: dmesg visible names broken\n  V4L/DVB (11892): Siano: smsendian - declare function as extern\n  V4L/DVB (11891): Siano: smscore - bind the GPIO SMS protocol\n  V4L/DVB (11890): Siano: smscore - remove redundant code\n  V4L/DVB (11889): Siano: smsdvb - add DVB v3 events\n  V4L/DVB (11888): Siano: smsusb - remove redundant ifdef\n  V4L/DVB (11887): Siano: smscards - add board (target) events\n  V4L/DVB (11886): Siano: smscore - fix some new GPIO definitions names\n  V4L/DVB (11885): Siano: Add new GPIO management interface\n  V4L/DVB (11884): Siano: smssdio - revert to stand alone module\n  V4L/DVB (11883): Siano: cards - add two additional (USB) devices\n  V4L/DVB (11824): Siano: smsusb - change exit func debug msg\n  V4L/DVB (11823): Siano: smsusb - fix typo in module description\n  V4L/DVB (11822): Siano: smscore - bug fix at get_device_mode\n  V4L/DVB (11821): Siano: smscore - fix isdb-t firmware name\n  V4L/DVB (11820): Siano: smscore - fix byte ordering bug\n  V4L/DVB (11819): Siano: smscore - fix get_common_buffer bug\n  V4L/DVB (11818): Siano: smscards - assign gpio to HPG targets\n  ...\n"
    },
    {
      "commit": "c868d550115b9ccc0027c67265b9520790f05601",
      "tree": "a3f9cde54f616e8d69005b217e917cd8025c33d3",
      "parents": [
        "517d08699b250021303f9a7cf0d758b6dc0748ed"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Jun 17 13:48:39 2009 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 21:14:42 2009 -0700"
      },
      "message": "mm: Move pgtable_cache_init() earlier\n\nSome architectures need to initialize SLAB caches to be able\nto allocate page tables. They do that from pgtable_cache_init()\nso the later should be called earlier now, best is before\nvmalloc_init().\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "517d08699b250021303f9a7cf0d758b6dc0748ed",
      "tree": "5e5b0134c3fffb78fe9d8b1641a64ff28fdd7bbc",
      "parents": [
        "8eeee4e2f04fc551f50c9d9847da2d73d7d33728",
        "a34601c5d84134055782ee031d58d82f5440e918"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:50:13 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:50:13 2009 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027\n\n* akpm: (182 commits)\n  fbdev: bf54x-lq043fb: use kzalloc over kmalloc/memset\n  fbdev: *bfin*: fix __dev{init,exit} markings\n  fbdev: *bfin*: drop unnecessary calls to memset\n  fbdev: bfin-t350mcqb-fb: drop unused local variables\n  fbdev: blackfin has __raw I/O accessors, so use them in fb.h\n  fbdev: s1d13xxxfb: add accelerated bitblt functions\n  tcx: use standard fields for framebuffer physical address and length\n  fbdev: add support for handoff from firmware to hw framebuffers\n  intelfb: fix a bug when changing video timing\n  fbdev: use framebuffer_release() for freeing fb_info structures\n  radeon: P2G2CLK_ALWAYS_ONb tested twice, should 2nd be P2G2CLK_DAC_ALWAYS_ONb?\n  s3c-fb: CPUFREQ frequency scaling support\n  s3c-fb: fix resource releasing on error during probing\n  carminefb: fix possible access beyond end of carmine_modedb[]\n  acornfb: remove fb_mmap function\n  mb862xxfb: use CONFIG_OF instead of CONFIG_PPC_OF\n  mb862xxfb: restrict compliation of platform driver to PPC\n  Samsung SoC Framebuffer driver: add Alpha Channel support\n  atmel-lcdc: fix pixclock upper bound detection\n  offb: use framebuffer_alloc() to allocate fb_info struct\n  ...\n\nManually fix up conflicts due to kmemcheck in mm/slab.c\n"
    },
    {
      "commit": "a34601c5d84134055782ee031d58d82f5440e918",
      "tree": "0d5eb699304589437b797bc6853b4fdbe1e9c332",
      "parents": [
        "8f09d74a6165c210d5d58d10c2bd58a8c13b0ca8"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Tue Jun 16 15:34:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:48:03 2009 -0700"
      },
      "message": "fbdev: bf54x-lq043fb: use kzalloc over kmalloc/memset\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: Krzysztof Helt \u003ckrzysztof.h1@poczta.fm\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8f09d74a6165c210d5d58d10c2bd58a8c13b0ca8",
      "tree": "d4d048bf00c82934fcb3772086f1a6339ed152ff",
      "parents": [
        "3608c66c2e6522952b4be219317b194ab27f4e78"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Tue Jun 16 15:34:42 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:48:03 2009 -0700"
      },
      "message": "fbdev: *bfin*: fix __dev{init,exit} markings\n\nThe remove member of the platform_driver bfin_t350mcqb_driver should use\n__devexit_p() to refer to the remove function, and that function should\nget __devexit markings.  Likewise, the probe function should be marked\nwith __devinit and not __init.\n\nAlso, module_init() functions should be marked with __init rather than\n__devinit.\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: Krzysztof Helt \u003ckrzysztof.h1@poczta.fm\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3608c66c2e6522952b4be219317b194ab27f4e78",
      "tree": "286a8542aa0c7be32b672aeeff5ea11198a2c640",
      "parents": [
        "9990bfd0e5d4aae9c33693aef8b0a36577c63677"
      ],
      "author": {
        "name": "Vivek Kutal",
        "email": "vivek.kutal@azingo.com",
        "time": "Tue Jun 16 15:34:42 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:48:01 2009 -0700"
      },
      "message": "fbdev: *bfin*: drop unnecessary calls to memset\n\nThe dma_alloc_* functions sets the memory to 0 before returning so there\nis no need to call memset after the allocation.  Also no point in clearing\nthe memory when disabling the buffer.\n\nSigned-off-by: Vivek Kutal \u003cvivek.kutal@azingo.com\u003e\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: Krzysztof Helt \u003ckrzysztof.h1@poczta.fm\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9990bfd0e5d4aae9c33693aef8b0a36577c63677",
      "tree": "35d1b3aa50ac35667ee7ba2ef5653c2cc0733663",
      "parents": [
        "00115e6690ed5aa90530e1e41c467cd895dd18fc"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Tue Jun 16 15:34:41 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:48:01 2009 -0700"
      },
      "message": "fbdev: bfin-t350mcqb-fb: drop unused local variables\n\nThe local fbinfo/info vars in the suspend functions don\u0027t actually get\nused which cause ugly gcc warnings, so drop them.\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: Krzysztof Helt \u003ckrzysztof.h1@poczta.fm\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "00115e6690ed5aa90530e1e41c467cd895dd18fc",
      "tree": "5c3b9629ba488b06a0dfa3c06ff2acc7198c6270",
      "parents": [
        "3ed167af96ed098187ea41353fe02d1af20d38a1"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Tue Jun 16 15:34:40 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:48:01 2009 -0700"
      },
      "message": "fbdev: blackfin has __raw I/O accessors, so use them in fb.h\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: Krzysztof Helt \u003ckrzysztof.h1@poczta.fm\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3ed167af96ed098187ea41353fe02d1af20d38a1",
      "tree": "d8a72beb84d380b961dd838cadee8667ef756910",
      "parents": [
        "fe3a1aa239a74bcbf25211aab33b6ecc80acf0f9"
      ],
      "author": {
        "name": "Kristoffer Ericson",
        "email": "kristoffer.ericson@gmail.com",
        "time": "Tue Jun 16 15:34:40 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:48:00 2009 -0700"
      },
      "message": "fbdev: s1d13xxxfb: add accelerated bitblt functions\n\nAdd accelerated bitblt functions to s1d13xxx based video chipsets, more\nspecificly functions copyarea and fillrect.\n\nIt has only been tested and activated for 13506 chipsets but is expected\nto work for the majority of s1d13xxx based chips.  This patch also cleans\nup the driver with respect of whitespaces and other formatting issues.  We\nupdate the current status comments.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Kristoffer Ericson \u003ckristoffer.ericson@gmail.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Krzysztof Helt \u003ckrzysztof.h1@poczta.fm\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fe3a1aa239a74bcbf25211aab33b6ecc80acf0f9",
      "tree": "a871d7de247d8ea1bdefdeb1f379a3d7ac700dee",
      "parents": [
        "4410f3910947dcea8672280b3adecd53cec4e85e"
      ],
      "author": {
        "name": "Krzysztof Helt",
        "email": "krzysztof.h1@wp.pl",
        "time": "Tue Jun 16 15:34:39 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:48:00 2009 -0700"
      },
      "message": "tcx: use standard fields for framebuffer physical address and length\n\nUse standard fields fbinfo.fix.smem_start and fbinfo.fix.smem_len for\nphysical address and length of framebuffer.\n\nThis also fixes output of the \u0027fbset -i\u0027 command - address and length of\nthe framebuffer are displayed correctly.\n\nSigned-off-by: Krzysztof Helt \u003ckrzysztof.h1@wp.pl\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4410f3910947dcea8672280b3adecd53cec4e85e",
      "tree": "814e1823cf773d8911b946df780faaec5c89d593",
      "parents": [
        "b586640141ab5f4ab3b194419bc2c0f039e91dbc"
      ],
      "author": {
        "name": "Dave Airlie",
        "email": "airlied@redhat.com",
        "time": "Tue Jun 16 15:34:38 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:48:00 2009 -0700"
      },
      "message": "fbdev: add support for handoff from firmware to hw framebuffers\n\nWith KMS we have ran into an issue where we really want the KMS fb driver\nto be the one running the console, so panics etc can be shown by switching\nout of X etc.\n\nHowever with vesafb/efifb built-in, we end up with those on fb0 and the\nKMS fb driver on fb1, driving the same piece of hw, so this adds an fb\ninfo flag to denote a firmware fbdev, and adds a new aperture base/size\nrange which can be compared when the hw drivers are installed to see if\nthere is a conflict with a firmware driver, and if there is the firmware\ndriver is unregistered and the hw driver takes over.\n\nIt uses new aperture_base/size members instead of comparing on the fix\nsmem_start/length, as smem_start/length might for example only cover the\nfirst 1MB of the PCI aperture, and we could allocate the kms fb from 8MB\ninto the aperture, thus they would never overlap.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Dave Airlie \u003cairlied@redhat.com\u003e\nAcked-by: Peter Jones \u003cpjones@redhat.com\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Krzysztof Helt \u003ckrzysztof.h1@poczta.fm\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b586640141ab5f4ab3b194419bc2c0f039e91dbc",
      "tree": "2d9bc7d43ac48d879d7cad086aa1cf69ddb02b03",
      "parents": [
        "491bcc9bf5d9a57f2d9cb3ce8ba0f6d48752c113"
      ],
      "author": {
        "name": "Paul Menzel",
        "email": "paulepanter@users.sourceforge.net",
        "time": "Tue Jun 16 15:34:37 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:48:00 2009 -0700"
      },
      "message": "intelfb: fix a bug when changing video timing\n\nWhen changing video timing dynamically via fbset the screen sporadically\nis rendered black.\n\nWith the attached fix which disables VCO prior to timing register change\nthe problem disappears.\n\nI had a look at the Xserver register setup code. Here the VCO is\ndisabled in the same way [1].\n\nThis patch is taken from vga-sync-field version 0.0.11 [2][3].\n\n[1] http://cgit.freedesktop.org/xorg/driver/xf86-video-intel/tree/src/i830_\u003d\ndriver.c\n[2] http://lowbyte.de/vga-sync-fields/vga-sync-fields-0.0.11.tgz\n[3] http://easy-vdr.de/git?p\u003dfrc.git/.git;a\u003dcommit;h\u003ddcc3b863e5a663652587619c357bd20075af6896\n2587619c357bd20075af6896\n\nSigned-off-by: Thomas Hilber \u003csparkie@lowbyte.de\u003e\nSigned-off-by: Paul Menzel \u003cpaulepanter@users.sourceforge.net\u003e\nCc: Krzysztof Helt \u003ckrzysztof.h1@poczta.fm\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "491bcc9bf5d9a57f2d9cb3ce8ba0f6d48752c113",
      "tree": "c0ef0205d06fd5c09dff1ee8dcec40e2ad28c9df",
      "parents": [
        "f73323de5a07e2a7bf3e9bca36dcc8057e5446d4"
      ],
      "author": {
        "name": "Krzysztof Helt",
        "email": "krzysztof.h1@wp.pl",
        "time": "Tue Jun 16 15:34:36 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:48:00 2009 -0700"
      },
      "message": "fbdev: use framebuffer_release() for freeing fb_info structures\n\nUse the framebuffer_release() for freeing fb_info structures allocated\nwith framebuffer_alloc().\n\nSigned-off-by: Krzysztof Helt \u003ckrzysztof.h1@wp.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f73323de5a07e2a7bf3e9bca36dcc8057e5446d4",
      "tree": "117a4b713099e79867953bd2f3010945744ae13b",
      "parents": [
        "0dac6ecdc056b83ac66e5b5c923fb73268f4332d"
      ],
      "author": {
        "name": "Roel Kluin",
        "email": "roel.kluin@gmail.com",
        "time": "Tue Jun 16 15:34:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:48:00 2009 -0700"
      },
      "message": "radeon: P2G2CLK_ALWAYS_ONb tested twice, should 2nd be P2G2CLK_DAC_ALWAYS_ONb?\n\nP2G2CLK_ALWAYS_ONb is tested twice, 2nd should be P2G2CLK_DAC_ALWAYS_ONb.\n\n[akpm@linux-foundation.org: remove duplicated bitwise-OR of PIXCLKS_CNTL__R300_P2G2CLK_ALWAYS_ONb too]\nSigned-off-by: Roel Kluin \u003croel.kluin@gmail.com\u003e\nAcked-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Krzysztof Helt \u003ckrzysztof.h1@poczta.fm\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0dac6ecdc056b83ac66e5b5c923fb73268f4332d",
      "tree": "9d7841f2c5b1e7a49b485cfa670a9a3728a509c3",
      "parents": [
        "ddc518d9f88d7cf82bd974737ce977193785335d"
      ],
      "author": {
        "name": "Ben Dooks",
        "email": "ben@simtec.co.uk",
        "time": "Tue Jun 16 15:34:34 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:59 2009 -0700"
      },
      "message": "s3c-fb: CPUFREQ frequency scaling support\n\nAdd support for CPU frequency scaling in the S3C24XX video driver.\n\nSigned-off-by: Simtec Linux Team \u003clinux@simtec.co.uk\u003e\nSigned-off-by: Ben Dooks \u003cben@simtec.co.uk\u003e\nCc: Dave Jones \u003cdavej@codemonkey.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": "ddc518d9f88d7cf82bd974737ce977193785335d",
      "tree": "d7041f8f0faba5079813d396362fa5e5d56d5508",
      "parents": [
        "493f139ecf9ee72f73ccbabd016325a145e884ee"
      ],
      "author": {
        "name": "Krzysztof Helt",
        "email": "krzysztof.h1@wp.pl",
        "time": "Tue Jun 16 15:34:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:59 2009 -0700"
      },
      "message": "s3c-fb: fix resource releasing on error during probing\n\nAll resources are released in s3c_fb_win_release so remove other places of\nresources releasing.  Add releasing of an allocated fb_info structure as\nwell.\n\nSigned-off-by: Krzysztof Helt \u003ckrzysztof.h1@wp.pl\u003e\nCc: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nCc: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nCc: Ben Dooks \u003cben-linux@fluff.org\u003e\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "493f139ecf9ee72f73ccbabd016325a145e884ee",
      "tree": "593fee921f62721bf785392ebb6cca04a745954e",
      "parents": [
        "34308fd4a22b4c24f54951e47d14e6ae5de6e150"
      ],
      "author": {
        "name": "Roel Kluin",
        "email": "roel.kluin@gmail.com",
        "time": "Tue Jun 16 15:34:32 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:59 2009 -0700"
      },
      "message": "carminefb: fix possible access beyond end of carmine_modedb[]\n\nThis check is off-by-one.\n\nSigned-off-by: Roel Kluin \u003croel.kluin@gmail.com\u003e\nCc: Sebastian Siewior \u003cbigeasy@linutronix.de\u003e\nCc: Krzysztof Helt \u003ckrzysztof.h1@poczta.fm\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "34308fd4a22b4c24f54951e47d14e6ae5de6e150",
      "tree": "b5582079e5c53baf899d4fb1b8c523888dcc31ed",
      "parents": [
        "24f01dcb53a950999f42f55123f7bc4ccda4ca57"
      ],
      "author": {
        "name": "Krzysztof Helt",
        "email": "krzysztof.h1@wp.pl",
        "time": "Tue Jun 16 15:34:32 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:59 2009 -0700"
      },
      "message": "acornfb: remove fb_mmap function\n\nThe driver\u0027s fb_mmap function is essentially the same as a generic fb_mmap\nfunction.  Delete driver\u0027s function and use the generic one.\n\nA difference is that generic function marks frame buffer memory as VM_IO |\nVM_RESERVED.  The driver\u0027s function marks it as VM_IO only.\n\nSigned-off-by: Krzysztof Helt \u003ckrzysztof.h1@wp.pl\u003e\nCc: Russell King \u003crmk@arm.linux.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": "24f01dcb53a950999f42f55123f7bc4ccda4ca57",
      "tree": "0d9694c185fcd8dbae66b22b9ed226f4ae25d811",
      "parents": [
        "336e747eebef7117b9acabb606bd817f1f1c5106"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Tue Jun 16 15:34:31 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:59 2009 -0700"
      },
      "message": "mb862xxfb: use CONFIG_OF instead of CONFIG_PPC_OF\n\nWith this change, the driver builds fine on Microblaze, which helps\nallyesconfig compile tests.\n\nI did not test sparc, but the change should have the same effect there.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Anatolij Gustschin \u003cagust@denx.de\u003e\nTested-by: Anatolij Gustschin \u003cagust@denx.de\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Michal Simek \u003cmonstr@monstr.eu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "336e747eebef7117b9acabb606bd817f1f1c5106",
      "tree": "db06e5f2e7d3d05fd58f4d7262c40c857e9aa24b",
      "parents": [
        "39000d654c2a22ca51fe92a39003d5fade59e9e4"
      ],
      "author": {
        "name": "Julian Calaby",
        "email": "julian.calaby@gmail.com",
        "time": "Tue Jun 16 15:34:29 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:59 2009 -0700"
      },
      "message": "mb862xxfb: restrict compliation of platform driver to PPC\n\nThe OpenFirmware part of this driver is uncompilable on SPARC due to it\u0027s\ndependance on several PPC specific functions.\n\nRestricting this to PPC to prevent these build errors:\n  CC      drivers/video/mb862xx/mb862xxfb.o\ndrivers/video/mb862xx/mb862xxfb.c: In function \u0027of_platform_mb862xx_probe\u0027:\ndrivers/video/mb862xx/mb862xxfb.c:559: error: implicit declaration of function \u0027of_address_to_resource\u0027\ndrivers/video/mb862xx/mb862xxfb.c:575: error: \u0027NO_IRQ\u0027 undeclared (first use in this function)\ndrivers/video/mb862xx/mb862xxfb.c:575: error: (Each undeclared identifier is reported only once\ndrivers/video/mb862xx/mb862xxfb.c:575: error: for each function it appears in.)\n\nThis was found using randconfig builds.\n\nSigned-off-by: Julian Calaby \u003cjulian.calaby@gmail.com\u003e\nSigned-off-by: Anatolij Gustschin \u003cagust@denx.de\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Anatolij Gustschin \u003cagust@denx.de\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Michal Simek \u003cmonstr@monstr.eu\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": "39000d654c2a22ca51fe92a39003d5fade59e9e4",
      "tree": "889f8915bb326204d4e7f15fec56b40c371c09c0",
      "parents": [
        "97b9a5a28b5fd02ceb3fcccee05e39dd62e4f474"
      ],
      "author": {
        "name": "InKi Dae",
        "email": "daeinki@gmail.com",
        "time": "Tue Jun 16 15:34:27 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:58 2009 -0700"
      },
      "message": "Samsung SoC Framebuffer driver: add Alpha Channel support\n\nAdd support for the ARGB1888 and ARGB4888 hardware to the Samsung SoC\nFramebuffer driver (s3c-fb.c).\n\nARGB1888 and ARGB4888 is decided by var-\u003etransp.length and this variable\nis set by s3c_fb_check_var().\n\nIn s3c_fb_check_var(), if var-\u003evits_per_pixel is 25 or 28, then\nvar-\u003etransp.length would be 1 or 3.\n\nTherefore alpha mode(ARGB1888 or ARGB4888) could be decided through that\nvariable.\n\nFor using alpha mode, you need to set the following: This code should be\nadded to your machine code as platform data.\n\nstatic struct s3c_fb_pd_win xxx_fb_win0 \u003d {\n\t/* this is to ensure we use win0 */\n\t.win_mode \u003d {\n\t\t.pixclock\t\t\u003d (8+8+8+240)*(38+4+38+400),\n\t\t.left_margin\t\u003d 8,\n\t\t.right_margin\t\u003d 8,\n\t\t.upper_margin\t\u003d 38,\n\t\t.lower_margin\t\u003d 38,\n\t\t.hsync_len\t\t\u003d 8,\n\t\t.vsync_len\t\t\u003d 4,\n\t\t.xres\t\t\t\u003d 240,\n\t\t.yres\t\t\t\u003d 400,\n\t},\n\t.max_bpp\t\t\u003d 32,\n\t.default_bpp\t\u003d 24,\n};\n\nstatic struct s3c_fb_pd_win xxx_fb_win1 \u003d {\n\t.win_mode \u003d {\n\t\t.pixclock\t\t\u003d (8+8+8+240)*(38+4+38+400),\n\t\t.left_margin\t\u003d 8,\n\t\t.right_margin\t\u003d 8,\n\t\t.upper_margin\t\u003d 38,\n\t\t.lower_margin\t\u003d 38,\n\t\t.hsync_len\t\t\u003d 8,\n\t\t.vsync_len\t\t\u003d 4,\n\t\t.xres\t\t\t\u003d 240,\n\t\t.yres\t\t\t\u003d 400,\n\t},\n\t.max_bpp\t\t\u003d 32,\n\t.default_bpp\t\u003d 28,\n};\n\nstatic struct s3c_fb_platdata xxx_lcd_pdata __initdata \u003d {\n\t.win[0]\t\t\u003d \u0026ncp_fb_win0,\n\t.win[1]\t\t\u003d \u0026ncp_fb_win1,\n\t.vidcon0\t\u003d VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,\n\t.vidcon1\t\u003d VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,\n\t.setup_gpio\t\u003d xxx_fb_gpio_setup,\n};\n\ns3c_fb_set_platdata(\u0026xxx_lcd_pdata);\n\nThe above code sets pixelformat for window0 layer to RGB888 and window1\nlayer to ARGB4888.\n\nSigned-off-by: InKi Dae \u003cinki.dae@samsung.com\u003e\nCc: Ben Dooks \u003cben-linux@fluff.org\u003e\nCc: Kyungmin Park \u003ckmpark@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "97b9a5a28b5fd02ceb3fcccee05e39dd62e4f474",
      "tree": "4f015ebdf8662960a115d666fe0d9ba65de0fb3e",
      "parents": [
        "4113819eb360555a91a8291f37bbbe9d26c5b275"
      ],
      "author": {
        "name": "Ben Nizette",
        "email": "bn@niasdigital.com",
        "time": "Tue Jun 16 15:34:24 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:58 2009 -0700"
      },
      "message": "atmel-lcdc: fix pixclock upper bound detection\n\nAFAICT the code which checks that the requested pixclock value is within\nbounds is incorrect.  It ensures that the lcdc core clock is at least\n(bytes per pixel) times higher than the pixel clock rather than just\ngreater than or equal to.\n\nThere are tighter restrictions on the pixclock value as a function of bus\nwidth for STN panels but even then it isn\u0027t a simple relationship as\ncurrently checked for.  IMO either something like the below patch should\nbe applied or else more detailed checking logic should be implemented\nwhich takes in to account the panel type as well.\n\nSigned-off-by: Ben Nizette \u003cbn@niasdigital.com\u003e\nAcked-by: Nicolas Ferre \u003cnicolas.ferre@atmel.com\u003e\nCc: Haavard Skinnemoen \u003chaavard.skinnemoen@atmel.com\u003e\nCc: Daniel Glockner \u003cdg@emlix.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4113819eb360555a91a8291f37bbbe9d26c5b275",
      "tree": "aaf774921257dab5bfc51926f65589abdde7fd1b",
      "parents": [
        "100b4a6eefb2ec335a2ae82356dad1b506ded8ed"
      ],
      "author": {
        "name": "Krzysztof Helt",
        "email": "krzysztof.h1@wp.pl",
        "time": "Tue Jun 16 15:34:23 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:58 2009 -0700"
      },
      "message": "offb: use framebuffer_alloc() to allocate fb_info struct\n\nUse the framebuffer_alloc() function to allocate the fb_info structure so\nthe structure is correctly initialized after allocation.\n\nSigned-off-by: Krzysztof Helt \u003ckrzysztof.h1@wp.pl\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nAcked-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "100b4a6eefb2ec335a2ae82356dad1b506ded8ed",
      "tree": "2b70177f35b18c7dd0c273263365b0a828f6fd87",
      "parents": [
        "7ec42d2659e81f068c5392fd5cb2f5b4bd35e880"
      ],
      "author": {
        "name": "Krzysztof Helt",
        "email": "krzysztof.h1@wp.pl",
        "time": "Tue Jun 16 15:34:23 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:58 2009 -0700"
      },
      "message": "igafb: use framebuffer_alloc() to allocate fb_info struct\n\nUse the framebuffer_alloc() function to allocate the fb_info\nstructure so the structure is correctly initialized after allocation.\n\nSigned-off-by: Krzysztof Helt \u003ckrzysztof.h1@wp.pl\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7ec42d2659e81f068c5392fd5cb2f5b4bd35e880",
      "tree": "fc6c33db25368f54198bff5da9602d566f9a66f2",
      "parents": [
        "2d9d2fdfae4cf7fda90178a9daf0f8f750043ae8"
      ],
      "author": {
        "name": "Krzysztof Helt",
        "email": "krzysztof.h1@wp.pl",
        "time": "Tue Jun 16 15:34:22 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:58 2009 -0700"
      },
      "message": "chipsfb: remove redundant assignment\n\nThe removed assignment is done inside the framebuffer_alloc() earlier.\n\nSigned-off-by: Krzysztof Helt \u003ckrzysztof.h1@wp.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2d9d2fdfae4cf7fda90178a9daf0f8f750043ae8",
      "tree": "1bb625fc771a0eb5a46b8667e44c10d0681099ee",
      "parents": [
        "27b7f2e3b587f01d2cc901b48716eed4bd90fbe4"
      ],
      "author": {
        "name": "Paul Menzel",
        "email": "paulepanter@users.sourceforge.net",
        "time": "Tue Jun 16 15:34:21 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:58 2009 -0700"
      },
      "message": "Documentation/fb/vesafb.txt: fix typo\n\nSigned-off-by: Paul Menzel \u003cpaulepanter@users.sourceforge.net\u003e\nCc: Gerd Knorr \u003ckraxel@goldbach.in-berlin.de\u003e\nCc: Nico Schmoigl \u003cschmoigl@rumms.uni-mannheim.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "27b7f2e3b587f01d2cc901b48716eed4bd90fbe4",
      "tree": "f8fd87c5fa4c6cc2ede0f67592e9175eb1af9ea5",
      "parents": [
        "ae52bb2384f721562f15f719de1acb8e934733cb"
      ],
      "author": {
        "name": "Paul Menzel",
        "email": "paulepanter@users.sourceforge.net",
        "time": "Tue Jun 16 15:34:20 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:58 2009 -0700"
      },
      "message": "fbdev: add video modes for resolutions and timings of PAL RGB\n\nThis patch was taken from vga-sync-field version 0.0.3 [1][2].\n\n[1] http://lowbyte.de/vga-sync-fields/vga-sync-fields-0.0.3.tgz\n[2] http://git.hellersdorfer-jugendchor.de/?p\u003d3Dvga2scart.git;a\u003d3Dcommit;h\u003d\n\u003d3Dc5c8ed6c51fc9879dbf38d8b91d5db6f4300ea03\n\nSigned-off-by: Thomas Hilber \u003csparkie@lowbyte.de\u003e\nSigned-off-by: Paul Menzel \u003cpaulepanter@users.sourceforge.net\u003e\nCc: Krzysztof Helt \u003ckrzysztof.h1@poczta.fm\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ae52bb2384f721562f15f719de1acb8e934733cb",
      "tree": "099e280e526a9aa3f8b44975b4494bd364c21861",
      "parents": [
        "a53c9d5b7115173fba9f82ff8120b624ef206f48"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "Geert.Uytterhoeven@sonycom.com",
        "time": "Tue Jun 16 15:34:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:57 2009 -0700"
      },
      "message": "fbdev: move logo externs to header file\n\nNow we have __initconst, we can finally move the external declarations for\nthe various Linux logo structures to \u003clinux/linux_logo.h\u003e.\n\nJames\u0027 ack dates back to the previous submission (way to long ago), when the\nlogos were still __initdata, which caused failures on some platforms with some\ntoolchain versions.\n\nSigned-off-by: Geert Uytterhoeven \u003cGeert.Uytterhoeven@sonycom.com\u003e\nAcked-by: James Simmons \u003cjsimmons@infradead.org\u003e\nCc: Krzysztof Helt \u003ckrzysztof.h1@poczta.fm\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": "a53c9d5b7115173fba9f82ff8120b624ef206f48",
      "tree": "156646edfab5b90589254c294b5d94b8713fffd9",
      "parents": [
        "8f3128e714ded7cf1e8c786c204a4f253b5d8ff4"
      ],
      "author": {
        "name": "Sam Ravnborg",
        "email": "sam@ravnborg.org",
        "time": "Tue Jun 16 15:34:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:57 2009 -0700"
      },
      "message": "fbdev: generated logo sources depend on scripts/pnmtologo\n\nThe generated logo sources are not automatically regenerated if\nscripts/pnmtologo.c has changed. Add the missing dependency to fix this.\n\nSigned-off-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\nTested-by: Geert Uytterhoeven \u003cGeert.Uytterhoeven@sonycom.com\u003e\nCc: Krzysztof Helt \u003ckrzysztof.h1@poczta.fm\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8f3128e714ded7cf1e8c786c204a4f253b5d8ff4",
      "tree": "cb3c1e9df2da5e4817acfeb75284e8d7b92eae33",
      "parents": [
        "0093716e6dd18dad554bef81cc788a4c50d32a09"
      ],
      "author": {
        "name": "Daniel Mack",
        "email": "daniel@caiaq.de",
        "time": "Tue Jun 16 15:34:17 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:57 2009 -0700"
      },
      "message": "lis3: add click function\n\nThe LIS302DL accelerometer chip has a \u0027click\u0027 feature which can be used to\ndetect sudden motion on any of the three axis.  Configuration data is\npassed via spi platform_data and no action is taken if that\u0027s not\nspecified, so it won\u0027t harm any existing platform.\n\nTo make the configuration effective, the IRQ lines need to be set up\nappropriately.  This patch also adds a way to do that from board support\ncode.\n\nThe DD_* definitions were factored out to an own enum because they are\nspecific to LIS3LV02D devices.\n\nSigned-off-by: Daniel Mack \u003cdaniel@caiaq.de\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nAcked-by: Eric Piel \u003ceric.piel@tremplin-utc.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0093716e6dd18dad554bef81cc788a4c50d32a09",
      "tree": "5e0005104794b8e40cb287eec722e6c70ab87e1c",
      "parents": [
        "dc6ea97bac6b8228c7a69740df35eed2be3407be"
      ],
      "author": {
        "name": "Eric Piel",
        "email": "eric.piel@tremplin-utc.net",
        "time": "Tue Jun 16 15:34:16 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:57 2009 -0700"
      },
      "message": "lis3: add three new laptop models\n\nSeparate the 6710 and 6715, and set the right axis information for the\n6715.\nReported-by: Isaac702 \u003cisaac702@gmail.com\u003e\n\nAdd the 6930.\nReported-by: Christian Weidle \u003cslateroni@gmail.com\u003e\n\nAdd the 2710.\nReported-by: Pavel Herrmann \u003cmorpheus.ibis@gmail.com\u003e\n\nSigned-off-by: Eric Piel \u003ceric.piel@tremplin-utc.net\u003e\nSigned-off-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dc6ea97bac6b8228c7a69740df35eed2be3407be",
      "tree": "68c14ab8e8c0c245f61d74671f2036386a0ef6ec",
      "parents": [
        "a002ee896dfd08ce9fba44e9ae513c9094699a27"
      ],
      "author": {
        "name": "Eric Piel",
        "email": "eric.piel@tremplin-utc.net",
        "time": "Tue Jun 16 15:34:15 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:57 2009 -0700"
      },
      "message": "lis3: use input_polled_device\n\nNow that there is no need to hookup on the open/close of the joystick,\nit\u0027s possible to use the simplified interface input_polled_device, instead\nof creating our own kthread.\n\n[randy.dunlap@oracle.com: fix Kconfig]\n[randy.dunlap@oracle.com: fix Kconfig some more]\nSigned-off-by: Eric Piel \u003ceric.piel@tremplin-utc.net\u003e\nSigned-off-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a002ee896dfd08ce9fba44e9ae513c9094699a27",
      "tree": "3a66ea80ad5523359e3f3f34be39d902d84706bb",
      "parents": [
        "c28842421cb6a29fd952043381bc5391bdf6be50"
      ],
      "author": {
        "name": "Eric Piel",
        "email": "eric.piel@tremplin-utc.net",
        "time": "Tue Jun 16 15:34:14 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:57 2009 -0700"
      },
      "message": "lis3: remove automatic shutdown of the device\n\nAfter measurement on my laptop, it seems that turning off the device does\nnot bring any energy saving (within 0.1W precision).  So let\u0027s keep the\ndevice always on.  It simplifies the code, and it avoids the problem of\nreading a wrong value sometimes just after turning the device on.\n\nMoreover, since commit ef2cfc790bf5f0ff189b01eabc0f4feb5e8524df had been\ntoo zealous, the device was actually never turned off anyway.  This patch\nalso restores the damages done by this commit concerning the\ninitialisation/poweroff.\n\nAlso do more clean up with the usage of the lis3_dev global variable.\n\nSigned-off-by: Eric Piel \u003ceric.piel@tremplin-utc.net\u003e\nSigned-off-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c28842421cb6a29fd952043381bc5391bdf6be50",
      "tree": "5d906c515d8374c61da58b1ccdc4d8125a5546fa",
      "parents": [
        "4b324126e0c6c3a5080ca3ec0981e8766ed6f1ee"
      ],
      "author": {
        "name": "Eric Piel",
        "email": "eric.piel@tremplin-utc.net",
        "time": "Tue Jun 16 15:34:13 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:56 2009 -0700"
      },
      "message": "lis3: fix misc device unregistering and printk\n\nCan only unregister the misc device if it was registered before.  Also\nremove debugging messages, which in addition were not properly formated.\n\nSigned-off-by: Eric Piel \u003ceric.piel@tremplin-utc.net\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4b324126e0c6c3a5080ca3ec0981e8766ed6f1ee",
      "tree": "f49edd4acf4963eb3377fd3a700982081970ba14",
      "parents": [
        "4c60117811171d867d4f27f17ea07d7419d45dae"
      ],
      "author": {
        "name": "Wolfram Strepp",
        "email": "wstrepp@gmx.de",
        "time": "Tue Jun 16 15:34:13 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:56 2009 -0700"
      },
      "message": "rb_tree: remove redundant if()-condition in rb_erase()\n\nFurthermore, notice that the initial checks:\n\n\tif (!node-\u003erb_left)\n\t\tchild \u003d node-\u003erb_right;\n\telse if (!node-\u003erb_right)\n\t\tchild \u003d node-\u003erb_left;\n\telse\n\t{\n\t\t...\n\t}\nguarantee that old-\u003erb_right is set in the final else branch, therefore\nwe can omit checking that again.\n\nSigned-off-by: Wolfram Strepp \u003cwstrepp@gmx.de\u003e\nSigned-off-by: 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": "4c60117811171d867d4f27f17ea07d7419d45dae",
      "tree": "9148532285b9276573f000b3125aee885afce411",
      "parents": [
        "16c047add3ceaf0ab882e3e094d1ec904d02312d"
      ],
      "author": {
        "name": "Wolfram Strepp",
        "email": "wstrepp@gmx.de",
        "time": "Tue Jun 16 15:34:12 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:56 2009 -0700"
      },
      "message": "rb_tree: make clear distinction between two different cases in rb_erase()\n\nThere are two cases when a node, having 2 childs, is erased:\n\u0027normal case\u0027: the successor is not the right-hand-child of the node to be erased\n\u0027special case\u0027: the successor is the right-hand child of the node to be erased\n\nHere some ascii-art, with following symbols (referring to the code):\nO: node to be deleted\nN: the successor of O\nP: parent of N\nC: child of N\nL: some other node\n\nnormal case:\n\n               O                         N\n              / \\                       / \\\n             /   \\                     /   \\\n            L     \\                   L     \\\n           / \\     P      ----\u003e      / \\     P\n                  / \\                       / \\\n                 /                         /\n                N                         C\n                 \\                       / \\\n                  \\\n                   C\n                  / \\\n\nspecial case:\n              O|P                        N\n              / \\                       / \\\n             /   \\                     /   \\\n            L     \\                   L     \\\n           / \\     N      ----\u003e      /       C\n                    \\                       / \\\n                     \\\n                      C\n                     / \\\n\nNotice that for the special case we don\u0027t have to reconnect C to N.\n\nSigned-off-by: Wolfram Strepp \u003cwstrepp@gmx.de\u003e\nSigned-off-by: 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": "16c047add3ceaf0ab882e3e094d1ec904d02312d",
      "tree": "80702a25fc558bec68e3214048fd6f8301e7d17d",
      "parents": [
        "130b76cf5295d74a2174d0843bb563bbf0a19dbb"
      ],
      "author": {
        "name": "Wolfram Strepp",
        "email": "wstrepp@gmx.de",
        "time": "Tue Jun 16 15:34:11 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:56 2009 -0700"
      },
      "message": "rb_tree: reorganize code in rb_erase() for additional changes\n\nFirst, move some code around in order to make the next change more obvious.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Wolfram Strepp \u003cwstrepp@gmx.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "130b76cf5295d74a2174d0843bb563bbf0a19dbb",
      "tree": "9417162fa0f42642a0607d0c9342e39f764e19cd",
      "parents": [
        "852f9bbbdec485d3015adc81b7b0c874c55705cc"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Jun 16 15:34:10 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:56 2009 -0700"
      },
      "message": "MAINTAINERS: add file patterns to TTY LAYER\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nCc: 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": "852f9bbbdec485d3015adc81b7b0c874c55705cc",
      "tree": "31d624968cd19ea77ffd69dbc0cbb17145c46de8",
      "parents": [
        "2a99921a5570381fc1da04a1bd9f7afe8692e49e"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Jun 16 15:34:09 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:56 2009 -0700"
      },
      "message": "MAINTAINERS: add Paul McKenney to RCU and RCUTORTURE\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@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": "2a99921a5570381fc1da04a1bd9f7afe8692e49e",
      "tree": "2282067bbb7d07f8bc75c5bf6fbff66e8fe15ff6",
      "parents": [
        "f70f873b8ffa0bca4aeccd20a3e4641b7645018a"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Jun 16 15:34:09 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:55 2009 -0700"
      },
      "message": "MAINTAINERS: add file pattern to CISCO FCOE HBA DRIVER\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f70f873b8ffa0bca4aeccd20a3e4641b7645018a",
      "tree": "7bdfc0c1dec4357d5747487fa3d8d3c5618cf886",
      "parents": [
        "b5472cddbe2c41fd434592ecf3c5b81a551d5bea"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Jun 16 15:34:08 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:55 2009 -0700"
      },
      "message": "MAINTAINERS: mention scripts/get_maintainer.pl in the preface\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b5472cddbe2c41fd434592ecf3c5b81a551d5bea",
      "tree": "eac2eb29c7a723e15b9cb1019801d655558fcf2b",
      "parents": [
        "93711660086d0ad2da071b6aba675e96277e995f"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Jun 16 15:34:07 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:55 2009 -0700"
      },
      "message": "MAINTAINERS: remove L: linux-kernel@vger.kernel.org from all but \"THE REST\"\n\nlkml is added to all CC lists via pattern matching on \"THE REST\"\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "93711660086d0ad2da071b6aba675e96277e995f",
      "tree": "eceaddfc60837fdaffca52fed4d4a86b285a589a",
      "parents": [
        "3f563d2503604b1d33d2474d99a32a6fb4cc7904"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Jun 16 15:34:07 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:55 2009 -0700"
      },
      "message": "MAINTAINERS: mark ALSA lists as moderated\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3f563d2503604b1d33d2474d99a32a6fb4cc7904",
      "tree": "2c8a144fd5067fb60773aa4938820c2beac8fa07",
      "parents": [
        "34d03cc16adc475118f7cfbb2288fca5af1e252f"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Jun 16 15:34:06 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:55 2009 -0700"
      },
      "message": "MAINTAINERS: update M32R file patterns after rename\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "34d03cc16adc475118f7cfbb2288fca5af1e252f",
      "tree": "4fc5689b20b27cf8154bf88799e5a8fe31ec07f0",
      "parents": [
        "866a36b73ecfaffbb4ba74f7fb3a18d71a982983"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Jun 16 15:34:06 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:55 2009 -0700"
      },
      "message": "MAINTAINERS: add file patterns to \"THE REST\"\n\nThese file patterns match all sources.\nBy default, scripts/get_maintainers.pl excludes Linus Torvalds\nfrom the CC: list.  Option --git-chief-penguins will include him.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "866a36b73ecfaffbb4ba74f7fb3a18d71a982983",
      "tree": "bb3de2525f4f269affaca68f83e0c030b08eb0ad",
      "parents": [
        "7f29fd2748ac8a8a47c949b26e5a9749b1b804fb"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Jun 16 15:34:05 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:54 2009 -0700"
      },
      "message": "MAINTAINERS: swap mismarked ECRYPT FS M: and P: entries\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7f29fd2748ac8a8a47c949b26e5a9749b1b804fb",
      "tree": "689e0aca5b3b52a30e05fc2a57be9c097db2595e",
      "parents": [
        "df4cc036828f6027689016a91adadee405eab104"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Jun 16 15:34:04 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:54 2009 -0700"
      },
      "message": "scripts/get_maintainer.pl: change \"die\" to \"warn\" when command line file is not a patch\n\nfixes git send-email with a cover letter\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "df4cc036828f6027689016a91adadee405eab104",
      "tree": "ec3ed49ec84230c447425a2aa7cf9fc481a06253",
      "parents": [
        "0a79c492bcb1022e9a2d0bcb5ed6c624ef6641a0"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Jun 16 15:34:04 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:54 2009 -0700"
      },
      "message": "scripts/get_maintainer.pl: allow 8 bit characters in email addresses\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0a79c492bcb1022e9a2d0bcb5ed6c624ef6641a0",
      "tree": "afa1b3b9f377efbb2dc44fe04308e06917941b88",
      "parents": [
        "5f2441e97684cfc787873f884c715e109ffcfbcd"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Jun 16 15:34:03 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:54 2009 -0700"
      },
      "message": "scripts/get_maintainer.pl: don\u0027t print maintainers when not requested\n\nFixed bug introduced after using rfc822 address checking.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5f2441e97684cfc787873f884c715e109ffcfbcd",
      "tree": "e11b81acea7e8b2465b0338b4a5cd4f833637893",
      "parents": [
        "d789504ab03c27b194170262cb4ffda38905c5c0"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Jun 16 15:34:02 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:54 2009 -0700"
      },
      "message": "scripts/get_maintainer.pl: support both \"P:/M:\" and integrated \"M:\" lines\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d789504ab03c27b194170262cb4ffda38905c5c0",
      "tree": "596c8a9f612526c9460466b1562d2ce21aefd18a",
      "parents": [
        "1b5e1cf64a7a376417457c7f2b3885decea276e4"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Jun 16 15:34:02 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:54 2009 -0700"
      },
      "message": "scripts/get_maintainer.pl: better email name quoting\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1b5e1cf64a7a376417457c7f2b3885decea276e4",
      "tree": "c51211d4dc65085f7a8dd58cf799c7ea11006dac",
      "parents": [
        "de2fc4922b7db1f5099585f821f854a86b5828eb"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Jun 16 15:34:01 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:53 2009 -0700"
      },
      "message": "scripts/get_maintainer.pl: support M: lines with names and multiple entries per M: line\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "de2fc4922b7db1f5099585f821f854a86b5828eb",
      "tree": "33615c89c483f1d8a140dc93f7cc3de06c01fd32",
      "parents": [
        "f5f5078db2c61bf42ed20527731c0a23bed86c11"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Jun 16 15:34:01 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:53 2009 -0700"
      },
      "message": "scripts/get_maintainer.pl: warn on missing git or git repository\n\nsupport older versions of grep (use -E not -P)\nno need to return data in routine recent_git_signoffs\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f5f5078db2c61bf42ed20527731c0a23bed86c11",
      "tree": "02a145e9cab8dac82d487027d2ed6df1947124c1",
      "parents": [
        "bdf7c685aa4639c95a752b52fa06741a7e3bb34e"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Jun 16 15:34:00 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:53 2009 -0700"
      },
      "message": "scripts/get_maintainer.pl: improve --git-chief-penquins (Linus Torvalds) filtering\n\nMoved linux-kernel@vger.kernel.org to MAINTAINERS\nlkml will be added to all CC lists via F: pattern match\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bdf7c685aa4639c95a752b52fa06741a7e3bb34e",
      "tree": "09d9d1710b9fe1e0b24ed6389702974cd65bdcad",
      "parents": [
        "290603c1205242691b8a0963f496d0aa80e9ca02"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Jun 16 15:33:59 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:53 2009 -0700"
      },
      "message": "scripts/get_maintainer.pl: better fix for subscriber-only mailing lists\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "290603c1205242691b8a0963f496d0aa80e9ca02",
      "tree": "973ee2b547070a12500099fbf99563bed2845955",
      "parents": [
        "8e8a2dea0ca91fe2cb7de7ea212124cfe8c82c35"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Jun 16 15:33:58 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:53 2009 -0700"
      },
      "message": "scripts/get_maintainer.pl: output first field only in mailing lists and after maintainers.\n\nFix mailing lists that are described, but not \"(subscriber-only)\"\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8e8a2dea0ca91fe2cb7de7ea212124cfe8c82c35",
      "tree": "96d07171a5c95e87c69fc18d4d0e582f90095d4e",
      "parents": [
        "69050eee8e08a6234f29fe71a56f8c7c7d4d7186"
      ],
      "author": {
        "name": "Zygo Blaxell",
        "email": "zygo.blaxell@xandros.com",
        "time": "Tue Jun 16 15:33:57 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:53 2009 -0700"
      },
      "message": "lib/genalloc.c: remove unmatched write_lock() in gen_pool_destroy\n\nThere is a call to write_lock() in gen_pool_destroy which is not balanced\nby any corresponding write_unlock().  This causes problems with preemption\nbecause the preemption-disable counter is incremented in the write_lock()\ncall, but never decremented by any call to write_unlock().  This bug is\ngen_pool_destroy, and one of them is non-x86 arch-specific code.\n\nSigned-off-by: Zygo Blaxell \u003czygo.blaxell@xandros.com\u003e\nCc: Jiri Kosina \u003ctrivial@kernel.org\u003e\nCc: Steve Wise \u003cswise@opengridcomputing.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": "69050eee8e08a6234f29fe71a56f8c7c7d4d7186",
      "tree": "1f2b25ff34c8fa04df2a3ac70a5cfc5b145f9f4e",
      "parents": [
        "55e331cf7ebe20665253770589cd9eb06048bf25"
      ],
      "author": {
        "name": "Tomas Szepe",
        "email": "szepe@pinerecords.com",
        "time": "Tue Jun 16 15:33:56 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:52 2009 -0700"
      },
      "message": "CONFIG_FILE_LOCKING should not depend on CONFIG_BLOCK\n\nCONFIG_FILE_LOCKING should not depend on CONFIG_BLOCK.\n\nThis makes it possible to run complete systems out of a CONFIG_BLOCK\u003dn\ninitramfs on current kernels again (this last worked on 2.6.27.*).\n\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": "55e331cf7ebe20665253770589cd9eb06048bf25",
      "tree": "4f64450d5839304fddd80733a703df2e518b9b24",
      "parents": [
        "f324edc85e5c1137e49e3b36a58cf436ab5b1fb3"
      ],
      "author": {
        "name": "Florian Fainelli",
        "email": "florian@openwrt.org",
        "time": "Tue Jun 16 15:33:53 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:52 2009 -0700"
      },
      "message": "drivers: add support for the TI VLYNQ bus\n\nAdd support for the TI VLYNQ high-speed, serial and packetized bus.\n\nThis bus allows external devices to be connected to the System-on-Chip and\nappear in the main system memory just like any memory mapped peripheral.\nIt is widely used in TI\u0027s networking and multimedia SoC, including the AR7\nSoC.\n\nSigned-off-by: Eugene Konev \u003cejka@imfi.kspu.ru\u003e\nSigned-off-by: Florian Fainelli \u003cflorian@openwrt.org\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f324edc85e5c1137e49e3b36a58cf436ab5b1fb3",
      "tree": "fa9aa0d219c10e5db6e459c4ea64884135e93c03",
      "parents": [
        "4764e280dc7dde1534161e148d38dbd792a2b8ab"
      ],
      "author": {
        "name": "Daniel Mack",
        "email": "daniel@caiaq.de",
        "time": "Tue Jun 16 15:33:52 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:52 2009 -0700"
      },
      "message": "console: make blank timeout value a boot option\n\nThe console blank timer is currently hardcoded to 10*60 seconds which\nmight be annoying on systems with no input devices attached to wake up the\nconsole again.  Especially during development, disabling the screen saver\ncan be handy - for example when debugging the root fs mount mechanism or\nother scenarios where no userspace program could be started to do that at\nruntime from userspace.\n\nThis patch defines a core_param for the variable in charge which allows\nusers to entirely disable the blank feature at boot time by setting it 0.\nThe value can still be overwritten at runtime using the standard ioctl\ncall - this just allows to conditionally change the default.\n\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": "4764e280dc7dde1534161e148d38dbd792a2b8ab",
      "tree": "373d3ecf3cf02eefc3a91db5d0eb6d11fd78b076",
      "parents": [
        "73d05163d15e4a400db63df906c55260a6dae987"
      ],
      "author": {
        "name": "Figo.zhang",
        "email": "figo1802@gmail.com",
        "time": "Tue Jun 16 15:33:51 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:52 2009 -0700"
      },
      "message": "Documentation/atomic_ops.txt: fix sample code\n\nlist_add() lost a parameter in sample code.\n\nSigned-off-by: Figo.zhang \u003cfigo1802@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": "73d05163d15e4a400db63df906c55260a6dae987",
      "tree": "1ac5aebb1cf3e8b8afd6490c40349df48ffe3ff3",
      "parents": [
        "cc6f26774136b7f5307abcd3887f08360c9b7554"
      ],
      "author": {
        "name": "Maciej W. Rozycki",
        "email": "macro@linux-mips.org",
        "time": "Tue Jun 16 15:33:50 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:52 2009 -0700"
      },
      "message": "eisa.ids: add Network Peripherals FDDI boards\n\nAdd EISA IDs for Network Peripherals FDDI boards.  Descriptions taken from\nthe respective EISA configuration files.\n\nIt\u0027s unlikely we\u0027ll ever support these cards, the problem being the lack\nof documentation.  Assuming the policy for the EISA ID database is the\nsame as for PCI I\u0027m sending these entries for the sake of completeness.\n\nSigned-off-by: Maciej W. Rozycki \u003cmacro@linux-mips.org\u003e\nCc: Marc Zyngier \u003cmaz@misterjones.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cc6f26774136b7f5307abcd3887f08360c9b7554",
      "tree": "f70e43b1e48abc611b8ef829710821b9577db937",
      "parents": [
        "e4c9dd0fbad60c098a026e9b06d9de1bc98c5e89"
      ],
      "author": {
        "name": "Masatake YAMATO",
        "email": "yamato@redhat.com",
        "time": "Tue Jun 16 15:33:49 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:52 2009 -0700"
      },
      "message": "syscalls.h: remove duplicated declarations for sys_pipe2\n\nsys_pipe2 is declared twice in include/linux/syscalls.h.\n\nSigned-off-by: Masatake YAMATO \u003cyamato@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": "e4c9dd0fbad60c098a026e9b06d9de1bc98c5e89",
      "tree": "033fd4035f0bcab64a0215d1a0b0f868c8b4de32",
      "parents": [
        "b8d9a86590fb334d28c5905a4c419ece7d08e37d"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue Jun 16 15:33:47 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:51 2009 -0700"
      },
      "message": "kmap_types: make most arches use generic header file\n\nConvert most arches to use asm-generic/kmap_types.h.\n\nMove the KM_FENCE_ macro additions into asm-generic/kmap_types.h,\ncontrolled by __WITH_KM_FENCE from each arch\u0027s kmap_types.h file.\n\nWould be nice to be able to add custom KM_types per arch, but I don\u0027t yet\nsee a nice, clean way to do that.\n\nBuilt on x86_64, i386, mips, sparc, alpha(tonyb), powerpc(tonyb), and\n68k(tonyb).\n\nNote: avr32 should be able to remove KM_PTE2 (since it\u0027s not used) and\nthen just use the generic kmap_types.h file.  Get avr32 maintainer\napproval.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Bryan Wu \u003ccooloney@kernel.org\u003e\nCc: Mikael Starvik \u003cstarvik@axis.com\u003e\nCc: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nCc: \"Luck Tony\" \u003ctony.luck@intel.com\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\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": "b8d9a86590fb334d28c5905a4c419ece7d08e37d",
      "tree": "61c294aeb88aaf87c1a103515431920dd84afc11",
      "parents": [
        "c67ae69b661f3c2fe1a9c8259bc948c68b082166"
      ],
      "author": {
        "name": "Jaswinder Singh Rajput",
        "email": "jaswinder@kernel.org",
        "time": "Tue Jun 16 15:33:46 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:51 2009 -0700"
      },
      "message": "Documentation/accounting/getdelays.c intialize the variable before using it\n\nFix compilation warning:\n\nDocumentation/accounting/getdelays.c: In function `main\u0027:\nDocumentation/accounting/getdelays.c:249: warning: `cmd_type\u0027 may be used uninitialized in this function\n\nThis is in fact a false positive.\n\nSigned-off-by: Jaswinder Singh Rajput \u003cjaswinderrajput@gmail.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@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": "c67ae69b661f3c2fe1a9c8259bc948c68b082166",
      "tree": "81ad71329c162167f2af11fbfea60062db0ced3b",
      "parents": [
        "a9c569539312cfd3c820b38036679a9d72c55331"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Jun 16 15:33:45 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:51 2009 -0700"
      },
      "message": "hexdump: remove the trailing space\n\nFor example:\n        hex_dump_to_buffer(\"AB\", 2, 16, 1, buf, 100, 0);\n        pr_info(\"[%s]\\n\", buf);\n\nI\u0027d expect the output to be \"[41 42]\", but actually it\u0027s \"[41 42 ]\"\n\nThis patch also makes the required buf to be minimum.  To print the hex\nformat of \"AB\", a buf with size 6 should be sufficient, but\nhex_dump_to_buffer() required at least 8.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: 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": "a9c569539312cfd3c820b38036679a9d72c55331",
      "tree": "c607645c5392febc6b35e127e6906547d02d2c61",
      "parents": [
        "009789f040b71699278e70a6664701c10065e430"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Tue Jun 16 15:33:44 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:50 2009 -0700"
      },
      "message": "use printk_once() in several places\n\nThere are some places to be able to use printk_once instead of hard coding.\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Dominik Brodowski \u003clinux@dominikbrodowski.net\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@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": "009789f040b71699278e70a6664701c10065e430",
      "tree": "83692d9eec2773e1d78628120f8e36807efe233b",
      "parents": [
        "b72b71c6cb6ecc564d4d5f9c512a7df269837846"
      ],
      "author": {
        "name": "Chris Peterson",
        "email": "cpeterso@cpeterso.com",
        "time": "Tue Jun 16 15:33:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:49 2009 -0700"
      },
      "message": "slow-work: use round_jiffies() for thread pool\u0027s cull and OOM timers\n\nRound the slow work queue\u0027s cull and OOM timeouts to whole second boundary\nwith round_jiffies().  The slow work queue uses a pair of timers to cull\nidle threads and, after OOM, to delay new thread creation.\n\nThis patch also extracts the mod_timer() logic for the cull timer into a\nseparate helper function.\n\nBy rounding non-time-critical timers such as these to whole seconds, they\nwill be batched up to fire at the same time rather than being spread out.\nThis allows the CPU wake up less, which saves power.\n\nSigned-off-by: Chris Peterson \u003ccpeterso@cpeterso.com\u003e\nSigned-off-by: David Howells \u003cdhowells@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": "b72b71c6cb6ecc564d4d5f9c512a7df269837846",
      "tree": "9923a6e1d59f92825df87cfd2bbd613d0f47a5f7",
      "parents": [
        "30639b6af85a92491b22dd14c17b14ca11da60e6"
      ],
      "author": {
        "name": "Huang Shijie",
        "email": "shijie8@gmail.com",
        "time": "Tue Jun 16 15:33:42 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:49 2009 -0700"
      },
      "message": "lib: do code optimization for radix_tree_lookup() and radix_tree_lookup_slot()\n\nradix_tree_lookup() and radix_tree_lookup_slot() have much the\nsame code except for the return value.\n\nIntroduce radix_tree_lookup_element() to do the real work.\n\n/*\n * is_slot \u003d\u003d 1 : search for the slot.\n * is_slot \u003d\u003d 0 : search for the node.\n */\nstatic void * radix_tree_lookup_element(struct radix_tree_root *root,\n\t\t\t\t\tunsigned long index, int is_slot);\n\nSigned-off-by: Huang Shijie \u003cshijie8@gmail.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "30639b6af85a92491b22dd14c17b14ca11da60e6",
      "tree": "f21c4dd631da5b8750678958b29947d4d0e90cb0",
      "parents": [
        "8b0b1db0133e4218a9b45c09e53793c039edebe1"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Jun 16 15:33:40 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:48 2009 -0700"
      },
      "message": "groups: move code to kernel/groups.c\n\nMove supplementary groups implementation to kernel/groups.c .\nkernel/sys.c already accumulated quite a few random stuff.\n\nDo strictly copy/paste + add required headers to compile.  Compile-tested\non many configs and archs.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8b0b1db0133e4218a9b45c09e53793c039edebe1",
      "tree": "551ec8a69652b9856cefcf537bdcfd262f356974",
      "parents": [
        "10fc89d01a7ea2ecc2a58d2f4e7700f47178cd62"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jun 16 15:33:39 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:48 2009 -0700"
      },
      "message": "remove put_cpu_no_resched()\n\nput_cpu_no_resched() is an optimization of put_cpu() which unfortunately\ncan cause high latencies.\n\nThe nfs iostats code uses put_cpu_no_resched() in a code sequence where a\nreschedule request caused by an interrupt between the get_cpu() and the\nput_cpu_no_resched() can delay the reschedule for at least HZ.\n\nThe other users of put_cpu_no_resched() optimize correctly in interrupt\ncode, but there is no real harm in using the put_cpu() function which is\nan alias for preempt_enable().  The extra check of the preemmpt count is\nnot as critical as the potential source of missing a reschedule.\n\nDebugged in the preempt-rt tree and verified in mainline.\n\nImpact: remove a high latency source\n\n[akpm@linux-foundation.org: build fix]\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "10fc89d01a7ea2ecc2a58d2f4e7700f47178cd62",
      "tree": "7c032430b77b4e7f08e924f36fa5ef591bfb580c",
      "parents": [
        "0d9c25dde878a636ee9a9b53923569171bf9a55b"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue Jun 16 15:33:38 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:48 2009 -0700"
      },
      "message": "drbd: add major number to major.h\n\nSince we have had a LANANA major number for years, and it is documented in\ndevices.txt, I think that this first patch can go upstream.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0d9c25dde878a636ee9a9b53923569171bf9a55b",
      "tree": "fea0a36db4dd8c8bcfbfdd5830170de3492917a4",
      "parents": [
        "4938d7e0233a455f04507bac81d0886c71529537"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Jun 16 15:33:37 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:48 2009 -0700"
      },
      "message": "headers: move module_bug_finalize()/module_bug_cleanup() definitions into module.h\n\nThey\u0027re in linux/bug.h at present, which causes include order tangles.  In\nparticular, linux/bug.h cannot be used by linux/atomic.h because,\naccording to Nikanth:\n\nlinux/bug.h pulls in linux/module.h \u003d\u003e linux/spinlock.h \u003d\u003e asm/spinlock.h\n(which uses atomic_inc) \u003d\u003e asm/atomic.h.\n\nbug.h is a pretty low-level thing and module.h is a higher-level thing,\nIMO.\n\nCc: Nikanth Karthikesan \u003cknikanth@novell.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": "4938d7e0233a455f04507bac81d0886c71529537",
      "tree": "6e0c6f0e8623ef44270890519f08b98e9db8afee",
      "parents": [
        "02d5341ae53d32681241b27a40397475caef1c83"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Tue Jun 16 15:33:36 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:48 2009 -0700"
      },
      "message": "poll: avoid extra wakeups in select/poll\n\nAfter introduction of keyed wakeups Davide Libenzi did on epoll, we are\nable to avoid spurious wakeups in poll()/select() code too.\n\nFor example, typical use of poll()/select() is to wait for incoming\nnetwork frames on many sockets.  But TX completion for UDP/TCP frames call\nsock_wfree() which in turn schedules thread.\n\nWhen scheduled, thread does a full scan of all polled fds and can sleep\nagain, because nothing is really available.  If number of fds is large,\nthis cause significant load.\n\nThis patch makes select()/poll() aware of keyed wakeups and useless\nwakeups are avoided.  This reduces number of context switches by about 50%\non some setups, and work performed by sofirq handlers.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Andi Kleen \u003cak@linux.intel.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "02d5341ae53d32681241b27a40397475caef1c83",
      "tree": "2f6712b7fb79be511cd7be430c70be4d8755e78d",
      "parents": [
        "b33112d1cc25e658c334125d127a6ae15d5a0ad6"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@crashcourse.ca",
        "time": "Tue Jun 16 15:33:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:48 2009 -0700"
      },
      "message": "ntfs: use is_power_of_2() function for clarity.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@crashcourse.ca\u003e\nCc: Anton Altaparmakov \u003caia21@cantab.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b33112d1cc25e658c334125d127a6ae15d5a0ad6",
      "tree": "a09dc0715c317198caf868010a6e10f67bf939c2",
      "parents": [
        "417dcdf99ec9f8d8d6917189130bdc17cb67c678"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@crashcourse.ca",
        "time": "Tue Jun 16 15:33:34 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:47 2009 -0700"
      },
      "message": "kernel/kfifo.c: replace conditional test with is_power_of_2()\n\nSigned-off-by: Robert P. J. Day \u003crpjday@crashcourse.ca\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "417dcdf99ec9f8d8d6917189130bdc17cb67c678",
      "tree": "4a97ab3ec286dda502ee7b3a16e0b6186cdc30d9",
      "parents": [
        "a7d932af06e8eee2163627d19898e18da5635449"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Tue Jun 16 15:33:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:47 2009 -0700"
      },
      "message": "atomic: only take lock when the counter drops to zero on UP as well\n\n_atomic_dec_and_lock() should not unconditionally take the lock before\ncalling atomic_dec_and_test() in the UP case.  For consistency reasons it\nshould behave exactly like in the SMP case.\n\nBesides that this works around the problem that with CONFIG_DEBUG_SPINLOCK\nthis spins in __spin_lock_debug() if the lock is already taken even if the\ncounter doesn\u0027t drop to 0.\n\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Valerie Aurora \u003cvaurora@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": "a7d932af06e8eee2163627d19898e18da5635449",
      "tree": "ddcf5e30e58f9758331f38ace3682f5691f44060",
      "parents": [
        "b08cd961cc3869e14d841a3ed1641f47b11348f3"
      ],
      "author": {
        "name": "Dan Smith",
        "email": "danms@us.ibm.com",
        "time": "Tue Jun 16 15:33:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:47 2009 -0700"
      },
      "message": "utsname.h: make new_utsname fields use the proper length constant\n\nThe members of the new_utsname structure are defined with magic numbers\nthat *should* correspond to the constant __NEW_UTS_LEN+1.  Everywhere\nelse, code assumes this and uses the constant, so this patch makes the\nstructure match.\n\nOriginally suggested by Serge here:\n\nhttps://lists.linux-foundation.org/pipermail/containers/2009-March/016258.html\n\nSigned-off-by: Dan Smith \u003cdanms@us.ibm.com\u003e\nAcked-by: Serge Hallyn \u003cserue@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": "b08cd961cc3869e14d841a3ed1641f47b11348f3",
      "tree": "e7c323fbfd938c9c07810367d1a6260c7ecf6f29",
      "parents": [
        "276c974ac7965e7335f0f4ab945729d8f30f11b5"
      ],
      "author": {
        "name": "Roel Kluin",
        "email": "roel.kluin@gmail.com",
        "time": "Tue Jun 16 15:33:32 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:47 2009 -0700"
      },
      "message": "uml: bad macro expansion, parameter is member\n\n`ELF_CORE_COPY_REGS(x, y)\u0027 will make expansions like:\n`(y)[0] \u003d (x)-\u003ex.gp[0]\u0027 but correct is `(y)[0] \u003d (x)-\u003eregs.gp[0]\u0027\n\nSigned-off-by: Roel Kluin \u003croel.kluin@gmail.com\u003e\nCc: WANG Cong \u003camwang@redhat.com\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "276c974ac7965e7335f0f4ab945729d8f30f11b5",
      "tree": "eee7b1b04d3507410b74a900124d770d4368d11d",
      "parents": [
        "6fa851c3e9746e3cf23694f0571a9e080107ba7c"
      ],
      "author": {
        "name": "Amerigo Wang",
        "email": "amwang@redhat.com",
        "time": "Tue Jun 16 15:33:30 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:47 2009 -0700"
      },
      "message": "uml: fix a section warning\n\nWhen compiling uml on x86_64:\n\n  MODPOST vmlinux.o\nWARNING: vmlinux.o (.__syscall_stub.2): unexpected non-allocatable section.\nDid you forget to use \"ax\"/\"aw\" in a .S file?\nNote that for example \u003clinux/init.h\u003e contains\nsection definitions for use in .S files.\n\nBecause modpost checks for missing SHF_ALLOC section flag.  So just add\nit.\n\nSigned-off-by: WANG Cong \u003camwang@redhat.com\u003e\nCc: Jeff Dike \u003cjdike@addtoit.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": "6fa851c3e9746e3cf23694f0571a9e080107ba7c",
      "tree": "11a86074de72e2c653a6f2530ee1b91a1d053fce",
      "parents": [
        "7e1cb780452809da09ee47860736a9c8d86d67c6"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jun 16 15:33:29 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:47 2009 -0700"
      },
      "message": "um: remove obsolete hw_interrupt_type\n\nThe defines and typedefs (hw_interrupt_type, no_irq_type, irq_desc_t) have\nbeen kept around for migration reasons.  After more than two years it\u0027s\ntime to remove them finally.\n\nThis patch cleans up one of the remaining users.  When all such patches\nhit mainline we can remove the defines and typedefs finally.\n\nImpact: cleanup\n\nConvert the last remaining users to struct irq_chip and remove the\ndefine.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7e1cb780452809da09ee47860736a9c8d86d67c6",
      "tree": "020f0cdac4dff957d9c3de368a682e2f43bafea3",
      "parents": [
        "189e91f5f5c09043ef78cad956a71ac339203a5d"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Tue Jun 16 15:33:28 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:46 2009 -0700"
      },
      "message": "uml: UML net driver does not allow for vlans\n\nSee ancient discussion at\nhttp://marc.info/?l\u003duser-mode-linux-devel\u0026m\u003d101990155831279\u0026w\u003d2\n\nAddresses http://bugzilla.kernel.org/show_bug.cgi?id\u003d7854\n\nSigned-off-by: Alan Cox \u003calan@linux.intel.com\u003e\nReported-by: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Roland Kletzing \u003cdevzero@web.de\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "189e91f5f5c09043ef78cad956a71ac339203a5d",
      "tree": "efcbc971304e86c7fed5cc91b4b8f123845421c0",
      "parents": [
        "fb26b3e63e9685ce250377bf905c78425a8e8b2b"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jun 16 15:33:26 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:46 2009 -0700"
      },
      "message": "m32r: remove obsolete hw_interrupt_type\n\nThe defines and typedefs (hw_interrupt_type, no_irq_type, irq_desc_t) have\nbeen kept around for migration reasons.  After more than two years it\u0027s\ntime to remove them finally.\n\nThis patch cleans up one of the remaining users.  When all such patches\nhit mainline we can remove the defines and typedefs finally.\n\nImpact: cleanup\n\nConvert the last remaining users to struct irq_chip and remove the\ndefine.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fb26b3e63e9685ce250377bf905c78425a8e8b2b",
      "tree": "856872ef8a4ceb5ff04773c66b368295733ae17e",
      "parents": [
        "44377f622ee4f23ea0afc9b83dba5d3ec2d560cd"
      ],
      "author": {
        "name": "Roel Kluin",
        "email": "roel.kluin@gmail.com",
        "time": "Tue Jun 16 15:33:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:46 2009 -0700"
      },
      "message": "alpha: bad macro expansion, parameter is member\n\n`for_each_mem_cluster(x, y, z)\u0027 will expand to\n`for ((x) \u003d (y)-\u003ex ...\u0027 but correct is `for ((x) \u003d (y)-\u003ecluster ...\u0027\n\nSigned-off-by: Roel Kluin \u003croel.kluin@gmail.com\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "44377f622ee4f23ea0afc9b83dba5d3ec2d560cd",
      "tree": "d1824622b62515e5e97a447d3b5aa6049250d178",
      "parents": [
        "ee993b135ec75a93bd5c45e636bb210d2975159b"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jun 16 15:33:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:46 2009 -0700"
      },
      "message": "alpha: remove obsolete hw_interrupt_type\n\nThe defines and typedefs (hw_interrupt_type, no_irq_type, irq_desc_t) have\nbeen kept around for migration reasons.  After more than two years it\u0027s\ntime to remove them finally.\n\nThis patch cleans up one of the remaining users.  When all such patches\nhit mainline we can remove the defines and typedefs finally.\n\nImpact: cleanup\n\nConvert the last remaining users to struct irq_chip and remove the\ndefine.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ee993b135ec75a93bd5c45e636bb210d2975159b",
      "tree": "edc7ca495c20b0ecd9c78ce22dad121c01459511",
      "parents": [
        "24cf72518c79cdcda486ed26074ff8151291cf65"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Jun 16 15:33:24 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:46 2009 -0700"
      },
      "message": "mm: fix lumpy reclaim lru handling at isolate_lru_pages\n\nAt lumpy reclaim, a page failed to be taken by __isolate_lru_page() can be\npushed back to \"src\" list by list_move().  But the page may not be from\n\"src\" list.  This pushes the page back to wrong LRU.  And list_move()\nitself is unnecessary because the page is not on top of LRU.  Then, leave\nit as it is if __isolate_lru_page() fails.\n\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\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": "24cf72518c79cdcda486ed26074ff8151291cf65",
      "tree": "0db04965fb57135e68edf62c332c3a3825c1e3b5",
      "parents": [
        "fa5e084e43eb14c14942027e1e2e894aeed96097"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Jun 16 15:33:23 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:46 2009 -0700"
      },
      "message": "vmscan: count the number of times zone_reclaim() scans and fails\n\nOn NUMA machines, the administrator can configure zone_reclaim_mode that\nis a more targetted form of direct reclaim.  On machines with large NUMA\ndistances for example, a zone_reclaim_mode defaults to 1 meaning that\nclean unmapped pages will be reclaimed if the zone watermarks are not\nbeing met.\n\nThere is a heuristic that determines if the scan is worthwhile but it is\npossible that the heuristic will fail and the CPU gets tied up scanning\nuselessly.  Detecting the situation requires some guesswork and\nexperimentation so this patch adds a counter \"zreclaim_failed\" to\n/proc/vmstat.  If during high CPU utilisation this counter is increasing\nrapidly, then the resolution to the problem may be to set\n/proc/sys/vm/zone_reclaim_mode to 0.\n\n[akpm@linux-foundation.org: name things consistently]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.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": "fa5e084e43eb14c14942027e1e2e894aeed96097",
      "tree": "3e7ebf714858e8dd1de7042fd1ef62294a3ec20f",
      "parents": [
        "90afa5de6f3fa89a733861e843377302479fcf7e"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Jun 16 15:33:22 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:45 2009 -0700"
      },
      "message": "vmscan: do not unconditionally treat zones that fail zone_reclaim() as full\n\nOn NUMA machines, the administrator can configure zone_reclaim_mode that\nis a more targetted form of direct reclaim.  On machines with large NUMA\ndistances for example, a zone_reclaim_mode defaults to 1 meaning that\nclean unmapped pages will be reclaimed if the zone watermarks are not\nbeing met.  The problem is that zone_reclaim() failing at all means the\nzone gets marked full.\n\nThis can cause situations where a zone is usable, but is being skipped\nbecause it has been considered full.  Take a situation where a large tmpfs\nmount is occuping a large percentage of memory overall.  The pages do not\nget cleaned or reclaimed by zone_reclaim(), but the zone gets marked full\nand the zonelist cache considers them not worth trying in the future.\n\nThis patch makes zone_reclaim() return more fine-grained information about\nwhat occured when zone_reclaim() failued.  The zone only gets marked full\nif it really is unreclaimable.  If it\u0027s a case that the scan did not occur\nor if enough pages were not reclaimed with the limited reclaim_mode, then\nthe zone is simply skipped.\n\nThere is a side-effect to this patch.  Currently, if zone_reclaim()\nsuccessfully reclaimed SWAP_CLUSTER_MAX, an allocation attempt would go\nahead.  With this patch applied, zone watermarks are rechecked after\nzone_reclaim() does some work.\n\nThis bug was introduced by commit 9276b1bc96a132f4068fdee00983c532f43d3a26\n(\"memory page_alloc zonelist caching speedup\") way back in 2.6.19 when the\nzonelist_cache was introduced.  It was not intended that zone_reclaim()\naggressively consider the zone to be full when it failed as full direct\nreclaim can still be an option.  Due to the age of the bug, it should be\nconsidered a -stable candidate.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\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": "90afa5de6f3fa89a733861e843377302479fcf7e",
      "tree": "2870878fa3361c27551b5a18c4732073ae1432bd",
      "parents": [
        "84a892456046921a40646114deed65e2df93a1bc"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Jun 16 15:33:20 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:45 2009 -0700"
      },
      "message": "vmscan: properly account for the number of page cache pages zone_reclaim() can reclaim\n\nA bug was brought to my attention against a distro kernel but it affects\nmainline and I believe problems like this have been reported in various\nguises on the mailing lists although I don\u0027t have specific examples at the\nmoment.\n\nThe reported problem was that malloc() stalled for a long time (minutes in\nsome cases) if a large tmpfs mount was occupying a large percentage of\nmemory overall.  The pages did not get cleaned or reclaimed by\nzone_reclaim() because the zone_reclaim_mode was unsuitable, but the lists\nare uselessly scanned frequencly making the CPU spin at near 100%.\n\nThis patchset intends to address that bug and bring the behaviour of\nzone_reclaim() more in line with expectations which were noticed during\ninvestigation.  It is based on top of mmotm and takes advantage of\nKosaki\u0027s work with respect to zone_reclaim().\n\nPatch 1 fixes the heuristics that zone_reclaim() uses to determine if the\n\tscan should go ahead. The broken heuristic is what was causing the\n\tmalloc() stall as it uselessly scanned the LRU constantly. Currently,\n\tzone_reclaim is assuming zone_reclaim_mode is 1 and historically it\n\tcould not deal with tmpfs pages at all. This fixes up the heuristic so\n\tthat an unnecessary scan is more likely to be correctly avoided.\n\nPatch 2 notes that zone_reclaim() returning a failure automatically means\n\tthe zone is marked full. This is not always true. It could have\n\tfailed because the GFP mask or zone_reclaim_mode were unsuitable.\n\nPatch 3 introduces a counter zreclaim_failed that will increment each\n\ttime the zone_reclaim scan-avoidance heuristics fail. If that\n\tcounter is rapidly increasing, then zone_reclaim_mode should be\n\tset to 0 as a temporarily resolution and a bug reported because\n\tthe scan-avoidance heuristic is still broken.\n\nThis patch:\n\nOn NUMA machines, the administrator can configure zone_reclaim_mode that\nis a more targetted form of direct reclaim.  On machines with large NUMA\ndistances for example, a zone_reclaim_mode defaults to 1 meaning that\nclean unmapped pages will be reclaimed if the zone watermarks are not\nbeing met.\n\nThere is a heuristic that determines if the scan is worthwhile but the\nproblem is that the heuristic is not being properly applied and is\nbasically assuming zone_reclaim_mode is 1 if it is enabled.  The lack of\nproper detection can manfiest as high CPU usage as the LRU list is scanned\nuselessly.\n\nHistorically, once enabled it was depending on NR_FILE_PAGES which may\ninclude swapcache pages that the reclaim_mode cannot deal with.  Patch\nvmscan-change-the-number-of-the-unmapped-files-in-zone-reclaim.patch by\nKosaki Motohiro noted that zone_page_state(zone, NR_FILE_PAGES) included\npages that were not file-backed such as swapcache and made a calculation\nbased on the inactive, active and mapped files.  This is far superior when\nzone_reclaim\u003d\u003d1 but if RECLAIM_SWAP is set, then NR_FILE_PAGES is a\nreasonable starting figure.\n\nThis patch alters how zone_reclaim() works out how many pages it might be\nable to reclaim given the current reclaim_mode.  If RECLAIM_SWAP is set in\nthe reclaim_mode it will either consider NR_FILE_PAGES as potential\ncandidates or else use NR_{IN}ACTIVE}_PAGES-NR_FILE_MAPPED to discount\nswapcache and other non-file-backed pages.  If RECLAIM_WRITE is not set,\nthen NR_FILE_DIRTY number of pages are not candidates.  If RECLAIM_SWAP is\nnot set, then NR_FILE_MAPPED are not.\n\n[kosaki.motohiro@jp.fujitsu.com: Estimate unmapped pages minus tmpfs pages]\n[fengguang.wu@intel.com: Fix underflow problem in Kosaki\u0027s estimate]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.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": "84a892456046921a40646114deed65e2df93a1bc",
      "tree": "2639b6031e55988b8780960c023618c381d61c55",
      "parents": [
        "81236810226f71bd9ff77321c8e8276dae7efc61"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Jun 16 15:33:17 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:45 2009 -0700"
      },
      "message": "writeback: skip new or to-be-freed inodes\n\n1) I_FREEING tests should be coupled with I_CLEAR\n\nThe two I_FREEING tests are racy because clear_inode() can set i_state to\nI_CLEAR between the clear of I_SYNC and the test of I_FREEING.\n\n2) skip I_WILL_FREE inodes in generic_sync_sb_inodes() to avoid possible\n   races with generic_forget_inode()\n\ngeneric_forget_inode() sets I_WILL_FREE call writeback on its own, so\ngeneric_sync_sb_inodes() shall not try to step in and create possible races:\n\n  generic_forget_inode\n    inode-\u003ei_state |\u003d I_WILL_FREE;\n    spin_unlock(\u0026inode_lock);\n                                       generic_sync_sb_inodes()\n                                         spin_lock(\u0026inode_lock);\n                                         __iget(inode);\n                                         __writeback_single_inode\n                                           // see non zero i_count\n may WARN here \u003d\u003d\u003e                         WARN_ON(inode-\u003ei_state \u0026 I_WILL_FREE);\n                                         spin_unlock(\u0026inode_lock);\n may call generic_forget_inode again \u003d\u003d\u003e iput(inode);\n\nThe above race and warning didn\u0027t turn up because writeback_inodes() holds\nthe s_umount lock, so generic_forget_inode() finds MS_ACTIVE and returns\nearly.  But we are not sure the UBIFS calls and future callers will\nguarantee that.  So skip I_WILL_FREE inodes for the sake of safety.\n\nCc: Eric Sandeen \u003csandeen@sandeen.net\u003e\nAcked-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nCc: Masayoshi MIZUMA \u003cm.mizuma@jp.fujitsu.com\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Artem Bityutskiy \u003cdedekind1@gmail.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Al Viro \u003cviro@zeniv.linux.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": "81236810226f71bd9ff77321c8e8276dae7efc61",
      "tree": "8194006c780be40bfac49a2c557ab037186a57e9",
      "parents": [
        "9198e96c06744517e3b18fce8be6db61e96a3227"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Jun 16 15:33:16 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:45 2009 -0700"
      },
      "message": "oom: only oom kill exiting tasks with attached memory\n\nWhen a task is chosen for oom kill and is found to be PF_EXITING,\n__oom_kill_task() is called to elevate the task\u0027s timeslice and give it\naccess to memory reserves so that it may quickly exit.\n\nThis privilege is unnecessary, however, if the task has already detached\nits mm.  Although its possible for the mm to become detached later since\ntask_lock() is not held, __oom_kill_task() will simply be a no-op in such\ncircumstances.\n\nSubsequently, it is no longer necessary to warn about killing mm-less\ntasks since it is a no-op.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@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": "9198e96c06744517e3b18fce8be6db61e96a3227",
      "tree": "3d79e58771cc27204980a0350abafaf6e7524447",
      "parents": [
        "3eb4140f0389bdada022d5e8efd88504ad30df14"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Tue Jun 16 15:33:15 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:45 2009 -0700"
      },
      "message": "vmscan: handle may_swap more strictly\n\nCommit 2e2e425989080cc534fc0fca154cae515f971cf5 (\"vmscan,memcg:\nreintroduce sc-\u003emay_swap) add may_swap flag and handle it at\nget_scan_ratio().\n\nBut the result of get_scan_ratio() is ignored when priority \u003d\u003d 0, so anon\nlru is scanned even if may_swap \u003d\u003d 0 or nr_swap_pages \u003d\u003d 0.  IMHO, this is\nnot an expected behavior.\n\nAs for memcg especially, because of this behavior many and many pages are\nswapped-out just in vain when oom is invoked by mem+swap limit.\n\nThis patch is for handling may_swap flag more strictly.\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3eb4140f0389bdada022d5e8efd88504ad30df14",
      "tree": "6f3f229a2a3bee1bd0a5846c7e7f7987a5cc602b",
      "parents": [
        "8cab4754d24a0f2e05920170c845bd84472814c6"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Jun 16 15:33:13 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:45 2009 -0700"
      },
      "message": "vmscan: merge duplicate code in shrink_active_list()\n\nThe \"move pages to active list\" and \"move pages to inactive list\" code\nblocks are mostly identical and can be served by a function.\n\nThanks to Andrew Morton for pointing this out.\n\nNote that buffer_heads_over_limit check will also be carried out for\nre-activated pages, which is slightly different from pre-2.6.28 kernels.\nAlso, Rik\u0027s \"vmscan: evict use-once pages first\" patch could totally stop\nscans of active file list when memory pressure is low.  So the net effect\ncould be, the number of buffer heads is now more likely to grow large.\n\nHowever that\u0027s fine according to Johannes\u0027 comments:\n\n  I don\u0027t think that this could be harmful.  We just preserve the buffer\n  mappings of what we consider the working set and with low memory\n  pressure, as you say, this set is not big.\n\n  As to stripping of reactivated pages: the only pages we re-activate\n  for now are those VM_EXEC mapped ones.  Since we don\u0027t expect IO from\n  or to these pages, removing the buffer mappings in case they grow too\n  large should be okay, I guess.\n\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@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": "8cab4754d24a0f2e05920170c845bd84472814c6",
      "tree": "99b1ec52daf8b81034f634777d2f24dd20d6d7c5",
      "parents": [
        "6fe6b7e35785e3232ffe7f81d3893f1316710a02"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Jun 16 15:33:12 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:44 2009 -0700"
      },
      "message": "vmscan: make mapped executable pages the first class citizen\n\nProtect referenced PROT_EXEC mapped pages from being deactivated.\n\nPROT_EXEC(or its internal presentation VM_EXEC) pages normally belong to some\ncurrently running executables and their linked libraries, they shall really be\ncached aggressively to provide good user experiences.\n\nThanks to Johannes Weiner for the advice to reuse the VMA walk in\npage_referenced() to get the PROT_EXEC bit.\n\n[more details]\n\n( The consequences of this patch will have to be discussed together with\n  Rik van Riel\u0027s recent patch \"vmscan: evict use-once pages first\". )\n\n( Some of the good points and insights are taken into this changelog.\n  Thanks to all the involved people for the great LKML discussions. )\n\nthe problem\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nFor a typical desktop, the most precious working set is composed of\n*actively accessed*\n\t(1) memory mapped executables\n\t(2) and their anonymous pages\n\t(3) and other files\n\t(4) and the dcache/icache/.. slabs\nwhile the least important data are\n\t(5) infrequently used or use-once files\n\nFor a typical desktop, one major problem is busty and large amount of (5)\nuse-once files flushing out the working set.\n\nInside the working set, (4) dcache/icache have already been too sticky ;-)\nSo we only have to care (2) anonymous and (1)(3) file pages.\n\nanonymous pages\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nAnonymous pages are effectively immune to the streaming IO attack, because we\nnow have separate file/anon LRU lists. When the use-once files crowd into the\nfile LRU, the list\u0027s \"quality\" is significantly lowered. Therefore the scan\nbalance policy in get_scan_ratio() will choose to scan the (low quality) file\nLRU much more frequently than the anon LRU.\n\nfile pages\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nRik proposed to *not* scan the active file LRU when the inactive list grows\nlarger than active list. This guarantees that when there are use-once streaming\nIO, and the working set is not too large(so that active_size \u003c inactive_size),\nthe active file LRU will *not* be scanned at all. So the not-too-large working\nset can be well protected.\n\nBut there are also situations where the file working set is a bit large so that\n(active_size \u003e\u003d inactive_size), or the streaming IOs are not purely use-once.\nIn these cases, the active list will be scanned slowly. Because the current\nshrink_active_list() policy is to deactivate active pages regardless of their\nreferenced bits. The deactivated pages become susceptible to the streaming IO\nattack: the inactive list could be scanned fast (500MB / 50MBps \u003d 10s) so that\nthe deactivated pages don\u0027t have enough time to get re-referenced. Because a\nuser tend to switch between windows in intervals from seconds to minutes.\n\nThis patch holds mapped executable pages in the active list as long as they\nare referenced during each full scan of the active list.  Because the active\nlist is normally scanned much slower, they get longer grace time (eg. 100s)\nfor further references, which better matches the pace of user operations.\n\nTherefore this patch greatly prolongs the in-cache time of executable code,\nwhen there are moderate memory pressures.\n\n\tbefore patch: guaranteed to be cached if reference intervals \u003c I\n\tafter  patch: guaranteed to be cached if reference intervals \u003c I+A\n\t\t      (except when randomly reclaimed by the lumpy reclaim)\nwhere\n\tA \u003d time to fully scan the   active file LRU\n\tI \u003d time to fully scan the inactive file LRU\n\nNote that normally A \u003e\u003e I.\n\nside effects\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nThis patch is safe in general, it restores the pre-2.6.28 mmap() behavior\nbut in a much smaller and well targeted scope.\n\nOne may worry about some one to abuse the PROT_EXEC heuristic.  But as\nAndrew Morton stated, there are other tricks to getting that sort of boost.\n\nAnother concern is the PROT_EXEC mapped pages growing large in rare cases,\nand therefore hurting reclaim efficiency. But a sane application targeted for\nlarge audience will never use PROT_EXEC for data mappings. If some home made\napplication tries to abuse that bit, it shall be aware of the consequences.\nIf it is abused to scale of 2/3 total memory, it gains nothing but overheads.\n\nbenchmarks\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\n1) memory tight desktop\n\n1.1) brief summary\n\n- clock time and major faults are reduced by 50%;\n- pswpin numbers are reduced to ~1/3.\n\nThat means X desktop responsiveness is doubled under high memory/swap pressure.\n\n1.2) test scenario\n\n- nfsroot gnome desktop with 512M physical memory\n- run some programs, and switch between the existing windows\n  after starting each new program.\n\n1.3) progress timing (seconds)\n\n  before       after    programs\n    0.02        0.02    N xeyes\n    0.75        0.76    N firefox\n    2.02        1.88    N nautilus\n    3.36        3.17    N nautilus --browser\n    5.26        4.89    N gthumb\n    7.12        6.47    N gedit\n    9.22        8.16    N xpdf /usr/share/doc/shared-mime-info/shared-mime-info-spec.pdf\n   13.58       12.55    N xterm\n   15.87       14.57    N mlterm\n   18.63       17.06    N gnome-terminal\n   21.16       18.90    N urxvt\n   26.24       23.48    N gnome-system-monitor\n   28.72       26.52    N gnome-help\n   32.15       29.65    N gnome-dictionary\n   39.66       36.12    N /usr/games/sol\n   43.16       39.27    N /usr/games/gnometris\n   48.65       42.56    N /usr/games/gnect\n   53.31       47.03    N /usr/games/gtali\n   58.60       52.05    N /usr/games/iagno\n   65.77       55.42    N /usr/games/gnotravex\n   70.76       61.47    N /usr/games/mahjongg\n   76.15       67.11    N /usr/games/gnome-sudoku\n   86.32       75.15    N /usr/games/glines\n   92.21       79.70    N /usr/games/glchess\n  103.79       88.48    N /usr/games/gnomine\n  113.84       96.51    N /usr/games/gnotski\n  124.40      102.19    N /usr/games/gnibbles\n  137.41      114.93    N /usr/games/gnobots2\n  155.53      125.02    N /usr/games/blackjack\n  179.85      135.11    N /usr/games/same-gnome\n  224.49      154.50    N /usr/bin/gnome-window-properties\n  248.44      162.09    N /usr/bin/gnome-default-applications-properties\n  282.62      173.29    N /usr/bin/gnome-at-properties\n  323.72      188.21    N /usr/bin/gnome-typing-monitor\n  363.99      199.93    N /usr/bin/gnome-at-visual\n  394.21      206.95    N /usr/bin/gnome-sound-properties\n  435.14      224.49    N /usr/bin/gnome-at-mobility\n  463.05      234.11    N /usr/bin/gnome-keybinding-properties\n  503.75      248.59    N /usr/bin/gnome-about-me\n  554.00      276.27    N /usr/bin/gnome-display-properties\n  615.48      304.39    N /usr/bin/gnome-network-preferences\n  693.03      342.01    N /usr/bin/gnome-mouse-properties\n  759.90      388.58    N /usr/bin/gnome-appearance-properties\n  937.90      508.47    N /usr/bin/gnome-control-center\n 1109.75      587.57    N /usr/bin/gnome-keyboard-properties\n 1399.05      758.16    N : oocalc\n 1524.64      830.03    N : oodraw\n 1684.31      900.03    N : ooimpress\n 1874.04      993.91    N : oomath\n 2115.12     1081.89    N : ooweb\n 2369.02     1161.99    N : oowriter\n\nNote that the last \": oo*\" commands are actually commented out.\n\n1.4) vmstat numbers (some relevant ones are marked with *)\n\n                            before    after\n nr_free_pages              1293      3898\n nr_inactive_anon           59956     53460\n nr_active_anon             26815     30026\n nr_inactive_file           2657      3218\n nr_active_file             2019      2806\n nr_unevictable             4         4\n nr_mlock                   4         4\n nr_anon_pages              26706     27859\n*nr_mapped                  3542      4469\n nr_file_pages              72232     67681\n nr_dirty                   1         0\n nr_writeback               123       19\n nr_slab_reclaimable        3375      3534\n nr_slab_unreclaimable      11405     10665\n nr_page_table_pages        8106      7864\n nr_unstable                0         0\n nr_bounce                  0         0\n*nr_vmscan_write            394776    230839\n nr_writeback_temp          0         0\n numa_hit                   6843353   3318676\n numa_miss                  0         0\n numa_foreign               0         0\n numa_interleave            1719      1719\n numa_local                 6843353   3318676\n numa_other                 0         0\n*pgpgin                     5954683   2057175\n*pgpgout                    1578276   922744\n*pswpin                     1486615   512238\n*pswpout                    394568    230685\n pgalloc_dma                277432    56602\n pgalloc_dma32              6769477   3310348\n pgalloc_normal             0         0\n pgalloc_movable            0         0\n pgfree                     7048396   3371118\n pgactivate                 2036343   1471492\n pgdeactivate               2189691   1612829\n pgfault                    3702176   3100702\n*pgmajfault                 452116    201343\n pgrefill_dma               12185     7127\n pgrefill_dma32             334384    653703\n pgrefill_normal            0         0\n pgrefill_movable           0         0\n pgsteal_dma                74214     22179\n pgsteal_dma32              3334164   1638029\n pgsteal_normal             0         0\n pgsteal_movable            0         0\n pgscan_kswapd_dma          1081421   1216199\n pgscan_kswapd_dma32        58979118  46002810\n pgscan_kswapd_normal       0         0\n pgscan_kswapd_movable      0         0\n pgscan_direct_dma          2015438   1086109\n pgscan_direct_dma32        55787823  36101597\n pgscan_direct_normal       0         0\n pgscan_direct_movable      0         0\n pginodesteal               3461      7281\n slabs_scanned              564864    527616\n kswapd_steal               2889797   1448082\n kswapd_inodesteal          14827     14835\n pageoutrun                 43459     21562\n allocstall                 9653      4032\n pgrotated                  384216    228631\n\n1.5) free numbers at the end of the tests\n\nbefore patch:\n                             total       used       free     shared    buffers     cached\n                Mem:           474        467          7          0          0        236\n                -/+ buffers/cache:        230        243\n                Swap:         1023        418        605\n\nafter patch:\n                             total       used       free     shared    buffers     cached\n                Mem:           474        457         16          0          0        236\n                -/+ buffers/cache:        221        253\n                Swap:         1023        404        619\n\n2) memory flushing in a file server\n\n2.1) brief summary\n\nThe number of major faults from 50 to 3 during 10% cache hot reads.\n\nThat means this patch successfully stops major faults when the active file\nlist is slowly scanned when there are partially cache hot streaming IO.\n\n2.2) test scenario\n\nDo 100000 pread(size\u003d110 pages, offset\u003d(i*100) pages), where 10% of the\npages will be activated:\n\n        for i in `seq 0 100 10000000`; do echo $i 110;  done \u003e pattern-hot-10\n        iotrace.rb --load pattern-hot-10 --play /b/sparse\n\tvmmon  nr_mapped nr_active_file nr_inactive_file   pgmajfault pgdeactivate pgfree\n\nand monitor /proc/vmstat during the time. The test box has 2G memory.\n\nI carried out tests on fresh booted console as well as X desktop, and\nfetched the vmstat numbers on\n\n(1) begin:     shortly after the big read IO starts;\n(2) end:       just before the big read IO stops;\n(3) restore:   the big read IO stops and the zsh working set restored\n(4) restore X: after IO, switch back and forth between the urxvt and firefox\n               windows to restore their working set.\n\n2.3) console mode results\n\n        nr_mapped   nr_active_file nr_inactive_file       pgmajfault     pgdeactivate           pgfree\n\n2.6.29 VM_EXEC protection ON:\nbegin:       2481             2237             8694              630                0           574299\nend:          275           231976           233914              633           776271         20933042\nrestore:      370           232154           234524              691           777183         20958453\n\n2.6.29 VM_EXEC protection ON (second run):\nbegin:       2434             2237             8493              629                0           574195\nend:          284           231970           233536              632           771918         20896129\nrestore:      399           232218           234789              690           774526         20957909\n\n2.6.30-rc4-mm VM_EXEC protection OFF:\nbegin:       2479             2344             9659              210                0           579643\nend:          284           232010           234142              260           772776         20917184\nrestore:      379           232159           234371              301           774888         20967849\n\nThe above console numbers show that\n\n- The startup pgmajfault of 2.6.30-rc4-mm is merely 1/3 that of 2.6.29.\n  I\u0027d attribute that improvement to the mmap readahead improvements :-)\n\n- The pgmajfault increment during the file copy is 633-630\u003d3 vs 260-210\u003d50.\n  That\u0027s a huge improvement - which means with the VM_EXEC protection logic,\n  active mmap pages is pretty safe even under partially cache hot streaming IO.\n\n- when active:inactive file lru size reaches 1:1, their scan rates is 1:20.8\n  under 10% cache hot IO. (computed with formula Dpgdeactivate:Dpgfree)\n  That roughly means the active mmap pages get 20.8 more chances to get\n  re-referenced to stay in memory.\n\n- The absolute nr_mapped drops considerably to 1/9 during the big IO, and the\n  dropped pages are mostly inactive ones. The patch has almost no impact in\n  this aspect, that means it won\u0027t unnecessarily increase memory pressure.\n  (In contrast, your 20% mmap protection ratio will keep them all, and\n  therefore eliminate the extra 41 major faults to restore working set\n  of zsh etc.)\n\nThe iotrace.rb read throughput is\n\t151.194384MB/s 284.198252s 100001x 450560b --load pattern-hot-10 --play /b/sparse\nwhich means the inactive list is rotated at the speed of 250MB/s,\nso a full scan of which takes about 3.5 seconds, while a full scan\nof active file list takes about 77 seconds.\n\n2.4) X mode results\n\nWe can reach roughly the same conclusions for X desktop:\n\n        nr_mapped   nr_active_file nr_inactive_file       pgmajfault     pgdeactivate           pgfree\n\n2.6.30-rc4-mm VM_EXEC protection ON:\nbegin:       9740             8920            64075              561                0           678360\nend:          768           218254           220029              565           798953         21057006\nrestore:      857           218543           220987              606           799462         21075710\nrestore X:   2414           218560           225344              797           799462         21080795\n\n2.6.30-rc4-mm VM_EXEC protection OFF:\nbegin:       9368             5035            26389              554                0           633391\nend:          770           218449           221230              661           646472         17832500\nrestore:     1113           218466           220978              710           649881         17905235\nrestore X:   2687           218650           225484              947           802700         21083584\n\n- the absolute nr_mapped drops considerably (to 1/13 of the original size)\n  during the streaming IO.\n- the delta of pgmajfault is 3 vs 107 during IO, or 236 vs 393\n  during the whole process.\n\nCc: Elladan \u003celladan@eskimo.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@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": "6fe6b7e35785e3232ffe7f81d3893f1316710a02",
      "tree": "6f47c03735504d8aab8f7b048465b87cc5b15861",
      "parents": [
        "608e8e66a154cbc3d591a59dcebfd9cbc9e3431a"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Jun 16 15:33:05 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:44 2009 -0700"
      },
      "message": "vmscan: report vm_flags in page_referenced()\n\nCollect vma-\u003evm_flags of the VMAs that actually referenced the page.\n\nThis is preparing for more informed reclaim heuristics, eg.  to protect\nexecutable file pages more aggressively.  For now only the VM_EXEC bit\nwill be used by the caller.\n\nThanks to Johannes, Peter and Minchan for all the good tips.\n\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "608e8e66a154cbc3d591a59dcebfd9cbc9e3431a"
}
