)]}'
{
  "log": [
    {
      "commit": "4fe19a136a8871e5fc6e44d72979f18a4968c2ab",
      "tree": "785366514a250acd3f38f91686f2c886dc34cfb9",
      "parents": [
        "769cb858c23ba7379ea27208624b444cd7b61af2",
        "d692170037c0338b31dac5ac4722c1360a4b5257"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 21 17:10:29 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 21 17:10:29 2012 -0800"
      },
      "message": "Merge git://www.linux-watchdog.org/linux-watchdog\n\nPull watchdog updates from Wim Van Sebroeck:\n \"This includes some fixes and code improvements (like\n  clk_prepare_enable and clk_disable_unprepare), conversion from the\n  omap_wdt and twl4030_wdt drivers to the watchdog framework, addition\n  of the SB8x0 chipset support and the DA9055 Watchdog driver and some\n  OF support for the davinci_wdt driver.\"\n\n* git://www.linux-watchdog.org/linux-watchdog: (22 commits)\n  watchdog: mei: avoid oops in watchdog unregister code path\n  watchdog: Orion: Fix possible null-deference in orion_wdt_probe\n  watchdog: sp5100_tco: Add SB8x0 chipset support\n  watchdog: davinci_wdt: add OF support\n  watchdog: da9052: Fix invalid free of devm_ allocated data\n  watchdog: twl4030_wdt: Change TWL4030_MODULE_PM_RECEIVER to TWL_MODULE_PM_RECEIVER\n  watchdog: remove depends on CONFIG_EXPERIMENTAL\n  watchdog: Convert dev_printk(KERN_\u003cLEVEL\u003e to dev_\u003clevel\u003e(\n  watchdog: DA9055 Watchdog driver\n  watchdog: omap_wdt: eliminate goto\n  watchdog: omap_wdt: delete redundant platform_set_drvdata() calls\n  watchdog: omap_wdt: convert to devm_ functions\n  watchdog: omap_wdt: convert to new watchdog core\n  watchdog: WatchDog Timer Driver Core: fix comment\n  watchdog: s3c2410_wdt: use clk_prepare_enable and clk_disable_unprepare\n  watchdog: imx2_wdt: Select the driver via ARCH_MXC\n  watchdog: cpu5wdt.c: add missing del_timer call\n  watchdog: hpwdt.c: Increase version string\n  watchdog: Convert twl4030_wdt to watchdog core\n  davinci_wdt: preparation for switch to common clock framework\n  ...\n"
    },
    {
      "commit": "b49249d10324d0fd6fb29725c2807dfd80d0edbc",
      "tree": "9a8fa724e6c9f9283530979c6e32a311c74999d5",
      "parents": [
        "10532b560bacf23766f9c7dc09778b31b198ff45",
        "45e621d45e24ffc4cb2b2935e8438987b860063a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 21 17:08:06 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 21 17:08:06 2012 -0800"
      },
      "message": "Merge tag \u0027dm-3.8-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-dm\n\nPull dm update from Alasdair G Kergon:\n \"Miscellaneous device-mapper fixes, cleanups and performance\n  improvements.\n\n  Of particular note:\n   - Disable broken WRITE SAME support in all targets except linear and\n     striped.  Use it when kcopyd is zeroing blocks.\n   - Remove several mempools from targets by moving the data into the\n     bio\u0027s new front_pad area(which dm calls \u0027per_bio_data\u0027).\n   - Fix a race in thin provisioning if discards are misused.\n   - Prevent userspace from interfering with the ioctl parameters and\n     use kmalloc for the data buffer if it\u0027s small instead of vmalloc.\n   - Throttle some annoying error messages when I/O fails.\"\n\n* tag \u0027dm-3.8-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-dm: (36 commits)\n  dm stripe: add WRITE SAME support\n  dm: remove map_info\n  dm snapshot: do not use map_context\n  dm thin: dont use map_context\n  dm raid1: dont use map_context\n  dm flakey: dont use map_context\n  dm raid1: rename read_record to bio_record\n  dm: move target request nr to dm_target_io\n  dm snapshot: use per_bio_data\n  dm verity: use per_bio_data\n  dm raid1: use per_bio_data\n  dm: introduce per_bio_data\n  dm kcopyd: add WRITE SAME support to dm_kcopyd_zero\n  dm linear: add WRITE SAME support\n  dm: add WRITE SAME support\n  dm: prepare to support WRITE SAME\n  dm ioctl: use kmalloc if possible\n  dm ioctl: remove PF_MEMALLOC\n  dm persistent data: improve improve space map block alloc failure message\n  dm thin: use DMERR_LIMIT for errors\n  ...\n"
    },
    {
      "commit": "184e2516614f7055d4c3a2e63fd8a3eb95fff6d6",
      "tree": "9822dd3cc97f8cfed3cbda6167818b60355cc7ec",
      "parents": [
        "0264405b84505f60ae00625f261e75a32c7ddf56",
        "d72623b665d84b1e07fe43854e83387fce8dd134"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 21 16:40:26 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 21 16:40:26 2012 -0800"
      },
      "message": "Merge tag \u0027rdma-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband\n\nPull more infiniband changes from Roland Dreier:\n \"Second batch of InfiniBand/RDMA changes for 3.8:\n   - cxgb4 changes to fix lookup engine hash collisions\n   - mlx4 changes to make flow steering usable\n   - fix to IPoIB to avoid pinning dst reference for too long\"\n\n* tag \u0027rdma-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:\n  RDMA/cxgb4: Fix bug for active and passive LE hash collision path\n  RDMA/cxgb4: Fix LE hash collision bug for passive open connection\n  RDMA/cxgb4: Fix LE hash collision bug for active open connection\n  mlx4_core: Allow choosing flow steering mode\n  mlx4_core: Adjustments to Flow Steering activation logic for SR-IOV\n  mlx4_core: Fix error flow in the flow steering wrapper\n  mlx4_core: Add QPN enforcement for flow steering rules set by VFs\n  cxgb4: Add LE hash collision bug fix path in LLD driver\n  cxgb4: Add T4 filter support\n  IPoIB: Call skb_dst_drop() once skb is enqueued for sending\n"
    },
    {
      "commit": "7de3ee57da4b717050e79c9313a9bf66ccc72519",
      "tree": "dd9bf250c6d9139528e563167cabdb811c8fd6cb",
      "parents": [
        "ee18026ac69efba804144541171299efd41747d2"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Fri Dec 21 20:23:41 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:41 2012 +0000"
      },
      "message": "dm: remove map_info\n\nThis patch removes map_info from bio-based device mapper targets.\nmap_info is still used for request-based targets.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "ddbd658f6446a35e4d6ba84812fd71023320cae2",
      "tree": "6c5bf9fd1cab10d20c21eb8582a5cc73f1bccc85",
      "parents": [
        "42bc954f2a4525c9034667dedc9bd1c342208013"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Fri Dec 21 20:23:39 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:39 2012 +0000"
      },
      "message": "dm: move target request nr to dm_target_io\n\nThis patch moves target_request_nr from map_info to dm_target_io and\nmakes it accessible with dm_bio_get_target_request_nr.\n\nThis patch is a preparation for the next patch that removes map_info.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "c0820cf5ad09522bdd9ff68e84841a09c9f339d8",
      "tree": "04817d6d9a7d213ac96d1e014a9714f8f29ff07a",
      "parents": [
        "70d6c400acc386ea910c77318688541fc32e7ce8"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Fri Dec 21 20:23:38 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:38 2012 +0000"
      },
      "message": "dm: introduce per_bio_data\n\nIntroduce a field per_bio_data_size in struct dm_target.\n\nTargets can set this field in the constructor. If a target sets this\nfield to a non-zero value, \"per_bio_data_size\" bytes of auxiliary data\nare allocated for each bio submitted to the target. These data can be\nused for any purpose by the target and help us improve performance by\nremoving some per-target mempools.\n\nPer-bio data is accessed with dm_per_bio_data. The\nargument data_size must be the same as the value per_bio_data_size in\ndm_target.\n\nIf the target has a pointer to per_bio_data, it can get a pointer to\nthe bio with dm_bio_from_per_bio_data() function (data_size must be the\nsame as the value passed to dm_per_bio_data).\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "d54eaa5a0fde0a202e4e91f200f818edcef15bee",
      "tree": "bb40893166dc8cd1d0f84c8087d021b66774a007",
      "parents": [
        "9c5091f2eeeffe5eca2ffe8a1bc28d312c8a5083"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Fri Dec 21 20:23:36 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:36 2012 +0000"
      },
      "message": "dm: prepare to support WRITE SAME\n\nAllow targets to opt in to WRITE SAME support by setting\n\u0027num_write_same_requests\u0027 in the dm_target structure.\n\nA dm device will only advertise WRITE SAME support if all its\ntargets and all its underlying devices support it.\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "96680d2b9174668100824d763382240c71baa811",
      "tree": "ec84c2347df47913cc98e3cfc1d43f427d51fa1f",
      "parents": [
        "4c9a44aebeaef35570a67aed17b72a2cf8d0b219",
        "1ca39ab9d21ac93f94b9e3eb364ea9a5cf2aba06"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 20:11:52 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 20:11:52 2012 -0800"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.infradead.org/users/eparis/notify\n\nPull filesystem notification updates from Eric Paris:\n \"This pull mostly is about locking changes in the fsnotify system.  By\n  switching the group lock from a spin_lock() to a mutex() we can now\n  hold the lock across things like iput().  This fixes a problem\n  involving unmounting a fs and having inodes be busy, first pointed out\n  by FAT, but reproducible with tmpfs.\n\n  This also restores signal driven I/O for inotify, which has been\n  broken since about 2.6.32.\"\n\nUgh.  I *hate* the timing of this.  It was rebased after the merge\nwindow opened, and then left to sit with the pull request coming the day\nbefore the merge window closes.  That\u0027s just crap.  But apparently the\npatches themselves have been around for over a year, just gathering\ndust, so now it\u0027s suddenly critical.\n\nFixed up semantic conflict in fs/notify/fdinfo.c as per Stephen\nRothwell\u0027s fixes from -next.\n\n* \u0027for-next\u0027 of git://git.infradead.org/users/eparis/notify:\n  inotify: automatically restart syscalls\n  inotify: dont skip removal of watch descriptor if creation of ignored event failed\n  fanotify: dont merge permission events\n  fsnotify: make fasync generic for both inotify and fanotify\n  fsnotify: change locking order\n  fsnotify: dont put marks on temporary list when clearing marks by group\n  fsnotify: introduce locked versions of fsnotify_add_mark() and fsnotify_remove_mark()\n  fsnotify: pass group to fsnotify_destroy_mark()\n  fsnotify: use a mutex instead of a spinlock to protect a groups mark list\n  fanotify: add an extra flag to mark_remove_from_mask that indicates wheather a mark should be destroyed\n  fsnotify: take groups mark_lock before mark lock\n  fsnotify: use reference counting for groups\n  fsnotify: introduce fsnotify_get_group()\n  inotify, fanotify: replace fsnotify_put_group() with fsnotify_destroy_group()\n"
    },
    {
      "commit": "4c9a44aebeaef35570a67aed17b72a2cf8d0b219",
      "tree": "abb874fe7f50671627b282f6c7fb58db5e75a2e3",
      "parents": [
        "1f0377ff088ed2971c57debc9b0c3b846ec431fd",
        "cfde819088422503b5c69e03ab7bb90f87121d4d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 20:00:43 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 20:00:43 2012 -0800"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nMerge the rest of Andrew\u0027s patches for -rc1:\n \"A bunch of fixes and misc missed-out-on things.\n\n  That\u0027ll do for -rc1.  I still have a batch of IPC patches which still\n  have a possible bug report which I\u0027m chasing down.\"\n\n* emailed patches from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (25 commits)\n  keys: use keyring_alloc() to create module signing keyring\n  keys: fix unreachable code\n  sendfile: allows bypassing of notifier events\n  SGI-XP: handle non-fatal traps\n  fat: fix incorrect function comment\n  Documentation: ABI: remove testing/sysfs-devices-node\n  proc: fix inconsistent lock state\n  linux/kernel.h: fix DIV_ROUND_CLOSEST with unsigned divisors\n  memcg: don\u0027t register hotcpu notifier from -\u003ecss_alloc()\n  checkpatch: warn on uapi #includes that #include \u003cuapi/...\n  revert \"rtc: recycle id when unloading a rtc driver\"\n  mm: clean up transparent hugepage sysfs error messages\n  hfsplus: add error message for the case of failure of sync fs in delayed_sync_fs() method\n  hfsplus: rework processing of hfs_btree_write() returned error\n  hfsplus: rework processing errors in hfsplus_free_extents()\n  hfsplus: avoid crash on failed block map free\n  kcmp: include linux/ptrace.h\n  drivers/rtc/rtc-imxdi.c: must include \u003clinux/spinlock.h\u003e\n  mm: cma: WARN if freed memory is still in use\n  exec: do not leave bprm-\u003einterp on stack\n  ...\n"
    },
    {
      "commit": "1f0377ff088ed2971c57debc9b0c3b846ec431fd",
      "tree": "cd53c8981269e57e38e4285abd71cc990e1cfc67",
      "parents": [
        "54d46ea993744c5408e39ce0cb4851e13cbea716",
        "b729d75d19777a5dd34672020516eada43ff026f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 18:14:31 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 18:14:31 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull VFS update from Al Viro:\n \"fscache fixes, ESTALE patchset, vmtruncate removal series, assorted\n  misc stuff.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (79 commits)\n  vfs: make lremovexattr retry once on ESTALE error\n  vfs: make removexattr retry once on ESTALE\n  vfs: make llistxattr retry once on ESTALE error\n  vfs: make listxattr retry once on ESTALE error\n  vfs: make lgetxattr retry once on ESTALE\n  vfs: make getxattr retry once on an ESTALE error\n  vfs: allow lsetxattr() to retry once on ESTALE errors\n  vfs: allow setxattr to retry once on ESTALE errors\n  vfs: allow utimensat() calls to retry once on an ESTALE error\n  vfs: fix user_statfs to retry once on ESTALE errors\n  vfs: make fchownat retry once on ESTALE errors\n  vfs: make fchmodat retry once on ESTALE errors\n  vfs: have chroot retry once on ESTALE error\n  vfs: have chdir retry lookup and call once on ESTALE error\n  vfs: have faccessat retry once on an ESTALE error\n  vfs: have do_sys_truncate retry once on an ESTALE error\n  vfs: fix renameat to retry on ESTALE errors\n  vfs: make do_unlinkat retry once on ESTALE errors\n  vfs: make do_rmdir retry once on ESTALE errors\n  vfs: add a flags argument to user_path_parent\n  ...\n"
    },
    {
      "commit": "54d46ea993744c5408e39ce0cb4851e13cbea716",
      "tree": "8e38fa92cc2ae72e0353c44e1e68be9bf5a7a058",
      "parents": [
        "f59dc2bb5a50b26ea751f9eac1c81e4cc7de5257",
        "50ececcfa7d1acee085b2c518cad495062db6379"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 18:05:28 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 18:05:28 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal\n\nPull signal handling cleanups from Al Viro:\n \"sigaltstack infrastructure + conversion for x86, alpha and um,\n  COMPAT_SYSCALL_DEFINE infrastructure.\n\n  Note that there are several conflicts between \"unify\n  SS_ONSTACK/SS_DISABLE definitions\" and UAPI patches in mainline;\n  resolution is trivial - just remove definitions of SS_ONSTACK and\n  SS_DISABLED from arch/*/uapi/asm/signal.h; they are all identical and\n  include/uapi/linux/signal.h contains the unified variant.\"\n\nFixed up conflicts as per Al.\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal:\n  alpha: switch to generic sigaltstack\n  new helpers: __save_altstack/__compat_save_altstack, switch x86 and um to those\n  generic compat_sys_sigaltstack()\n  introduce generic sys_sigaltstack(), switch x86 and um to it\n  new helper: compat_user_stack_pointer()\n  new helper: restore_altstack()\n  unify SS_ONSTACK/SS_DISABLE definitions\n  new helper: current_user_stack_pointer()\n  missing user_stack_pointer() instances\n  Bury the conditionals from kernel_thread/kernel_execve series\n  COMPAT_SYSCALL_DEFINE: infrastructure\n"
    },
    {
      "commit": "c4e18497d8fd92eef2c6e7eadcc1a107ccd115ea",
      "tree": "9513b220cbdd633ad7c42299d61f2b46b9fb1561",
      "parents": [
        "154b454edaf6d94a69016db6c342c57fa935bbe9"
      ],
      "author": {
        "name": "Guenter Roeck",
        "email": "linux@roeck-us.net",
        "time": "Thu Dec 20 15:05:42 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 17:40:20 2012 -0800"
      },
      "message": "linux/kernel.h: fix DIV_ROUND_CLOSEST with unsigned divisors\n\nCommit 263a523d18bc (\"linux/kernel.h: Fix warning seen with W\u003d1 due to\nchange in DIV_ROUND_CLOSEST\") fixes a warning seen with W\u003d1 due to\nchange in DIV_ROUND_CLOSEST.\n\nUnfortunately, the C compiler converts divide operations with unsigned\ndivisors to unsigned, even if the dividend is signed and negative (for\nexample, -10 / 5U \u003d 858993457).  The C standard says \"If one operand has\nunsigned int type, the other operand is converted to unsigned int\", so\nthe compiler is not to blame.  As a result, DIV_ROUND_CLOSEST(0, 2U) and\nsimilar operations now return bad values, since the automatic conversion\nof expressions such as \"0 - 2U/2\" to unsigned was not taken into\naccount.\n\nFix by checking for the divisor variable type when deciding which\noperation to perform.  This fixes DIV_ROUND_CLOSEST(0, 2U), but still\nreturns bad values for negative dividends divided by unsigned divisors.\nMark the latter case as unsupported.\n\nOne observed effect of this problem is that the s2c_hwmon driver reports\na value of 4198403 instead of 0 if the ADC reads 0.\n\nOther impact is unpredictable.  Problem is seen if the divisor is an\nunsigned variable or constant and the dividend is less than (divisor/2).\n\nSigned-off-by: Guenter Roeck \u003clinux@roeck-us.net\u003e\nReported-by: Juergen Beisert \u003cjbe@pengutronix.de\u003e\nTested-by: Juergen Beisert \u003cjbe@pengutronix.de\u003e\nCc: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: \u003cstable@vger.kernel.org\u003e\t[3.7.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b66c5984017533316fd1951770302649baf1aa33",
      "tree": "78d1e5fc82a057c62699734602c8e5f7ca86b7a2",
      "parents": [
        "9f9c9cbb60576a1518d0bf93fb8e499cffccf377"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "keescook@chromium.org",
        "time": "Thu Dec 20 15:05:16 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 17:40:19 2012 -0800"
      },
      "message": "exec: do not leave bprm-\u003einterp on stack\n\nIf a series of scripts are executed, each triggering module loading via\nunprintable bytes in the script header, kernel stack contents can leak\ninto the command line.\n\nNormally execution of binfmt_script and binfmt_misc happens recursively.\nHowever, when modules are enabled, and unprintable bytes exist in the\nbprm-\u003ebuf, execution will restart after attempting to load matching\nbinfmt modules.  Unfortunately, the logic in binfmt_script and\nbinfmt_misc does not expect to get restarted.  They leave bprm-\u003einterp\npointing to their local stack.  This means on restart bprm-\u003einterp is\nleft pointing into unused stack memory which can then be copied into the\nuserspace argv areas.\n\nAfter additional study, it seems that both recursion and restart remains\nthe desirable way to handle exec with scripts, misc, and modules.  As\nsuch, we need to protect the changes to interp.\n\nThis changes the logic to require allocation for any changes to the\nbprm-\u003einterp.  To avoid adding a new kmalloc to every exec, the default\nvalue is left as-is.  Only when passing through binfmt_script or\nbinfmt_misc does an allocation take place.\n\nFor a proof of concept, see DoTest.sh from:\n\n   http://www.halfdog.net/Security/2012/LinuxKernelBinfmtScriptStackDataDisclosure/\n\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: halfdog \u003cme@halfdog.net\u003e\nCc: P J P \u003cppandit@redhat.com\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1ac12b4b6d707937f9de6d09622823b2fd0c93ef",
      "tree": "7ac3f66abfcce206615abe9effd9e55f26c117a9",
      "parents": [
        "7955119e02d9fdf78a39fba8073f19ca6152613e"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Dec 11 12:10:06 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 20 18:50:02 2012 -0500"
      },
      "message": "vfs: turn is_dir argument to kern_path_create into a lookup_flags arg\n\nWhere we can pass in LOOKUP_DIRECTORY or LOOKUP_REVAL. Any other flags\npassed in here are currently ignored.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b9d6ba94b875192ef5e2dab92d72beea33b83c3d",
      "tree": "a06e604535e10ec0c469300f0d36cb5aa8c2782d",
      "parents": [
        "21e89c0c48bb799beb09181740796fc80c9676e2"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Thu Dec 20 14:59:40 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 20 18:50:00 2012 -0500"
      },
      "message": "vfs: add a retry_estale helper function to handle retries on ESTALE\n\nThis function is expected to be called from path-based syscalls to help\nthem decide whether to try the lookup and call again in the event that\nthey got an -ESTALE return back on an earier try.\n\nCurrently, we only retry the call once on an ESTALE error, but in the\nevent that we decide that that\u0027s not enough in the future, we should be\nable to change the logic in this helper without too much effort.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "21e89c0c48bb799beb09181740796fc80c9676e2",
      "tree": "bd5aef34a980f189ad41c75e881d225bc854bf44",
      "parents": [
        "b911a6bdeef5848c468597d040e3407e0aee04ce",
        "91c7fbbf63f33c77d8d28de624834a21888842bb"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 20 18:49:14 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 20 18:49:14 2012 -0500"
      },
      "message": "Merge branch \u0027fscache\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs into for-linus\n"
    },
    {
      "commit": "471667391a92bf7bf2cd4ff31a3ad88e5dec934b",
      "tree": "cb07ce436ed20f5f50e0e3c1db386a105ed65434",
      "parents": [
        "b9f61c3c0c8daed9844870bc9358e6d9fdb7eb61"
      ],
      "author": {
        "name": "Alessio Igor Bogani",
        "email": "abogani@kernel.org",
        "time": "Thu Dec 13 12:22:39 2012 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 20 18:47:08 2012 -0500"
      },
      "message": "vfs: Remove useless function prototypes\n\nCommit 8e22cc88d68ca1a46d7d582938f979eb640ed30f removes the (un)lock_super\nfunction definitions but forgets to remove their prototypes.\n\nSigned-off-by: Alessio Igor Bogani \u003cabogani@kernel.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7898575fc81bd707ce0844cb06874d48e39bbe09",
      "tree": "ab30305f0d957854497fababde6caff644b2bfca",
      "parents": [
        "d30357f2f0ec0bfb67fd39f8f76d22d02d78631e"
      ],
      "author": {
        "name": "Marco Stornelli",
        "email": "marco.stornelli@gmail.com",
        "time": "Sat Dec 15 12:00:02 2012 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 20 18:46:29 2012 -0500"
      },
      "message": "mm: drop vmtruncate\n\nRemoved vmtruncate\n\nSigned-off-by: Marco Stornelli \u003cmarco.stornelli@gmail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d30357f2f0ec0bfb67fd39f8f76d22d02d78631e",
      "tree": "0923a2f8276af03293410cb2b78b2457d7fc6996",
      "parents": [
        "9014da7525dffef69131f717decf262e08ff3d58"
      ],
      "author": {
        "name": "Marco Stornelli",
        "email": "marco.stornelli@gmail.com",
        "time": "Sat Dec 15 11:59:20 2012 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 20 18:46:29 2012 -0500"
      },
      "message": "vfs: drop vmtruncate\n\nRemoved vmtruncate\n\nSigned-off-by: Marco Stornelli \u003cmarco.stornelli@gmail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1f372dff1da37e2b36ae9085368fa46896398598",
      "tree": "f47b00dc61c9cf6c0eaa6d437bd7f91bfcb4d76d",
      "parents": [
        "7ef001e937e8b9cbedb2fc1c31dd681ac3b31927"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Dec 13 20:03:13 2012 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Dec 20 22:34:00 2012 +0000"
      },
      "message": "FS-Cache: Mark cancellation of in-progress operation\n\nMark as cancelled an operation that is in progress rather than pending at the\ntime it is cancelled, and call fscache_complete_op() to cancel an operation so\nthat blocked ops can be started.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "36a02de5d7981435931d4608ee3e510b752e072b",
      "tree": "d0d8283ba3ab9bcb9224582677d8ec00ec987ef3",
      "parents": [
        "b4cf1e08c8ac95eff65faa53904f7f13ac78194b"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Dec 05 13:34:46 2012 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Dec 20 22:08:05 2012 +0000"
      },
      "message": "FS-Cache: Convert the object event ID #defines into an enum\n\nConvert the fscache_object event IDs from #defines into an enum.  Also add an\nextra label to the enum to carry the event count and redefine the event mask\nin terms of that.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "a02de9608595c8ef649ef03ae735b0b45e3d4396",
      "tree": "ca411825ecc8a30b70d869244a7e9412d0728486",
      "parents": [
        "ef778e7ae67cd426c30cad43378b908f5eb0bad5"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Dec 20 21:52:36 2012 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Dec 20 22:05:41 2012 +0000"
      },
      "message": "VFS: Make more complete truncate operation available to CacheFiles\n\nMake a more complete truncate operation available to CacheFiles (including\nsecurity checks and suchlike) so that it can use this to clear invalidated\ncache files.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "982197277c85018cc6eb77f1d3bef17933b0c5fd",
      "tree": "805fcef9ec7c1e83867b89332fd37f751594fae3",
      "parents": [
        "40889e8d9fc6355980cf2bc94ef4356c10dec4ec",
        "24ffb93872f7363a01ad639e3c8a9889b46c3f0a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 14:04:11 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 14:04:11 2012 -0800"
      },
      "message": "Merge branch \u0027for-3.8\u0027 of git://linux-nfs.org/~bfields/linux\n\nPull nfsd update from Bruce Fields:\n \"Included this time:\n\n   - more nfsd containerization work from Stanislav Kinsbursky: we\u0027re\n     not quite there yet, but should be by 3.9.\n\n   - NFSv4.1 progress: implementation of basic backchannel security\n     negotiation and the mandatory BACKCHANNEL_CTL operation.  See\n\n       http://wiki.linux-nfs.org/wiki/index.php/Server_4.0_and_4.1_issues\n\n     for remaining TODO\u0027s\n\n   - Fixes for some bugs that could be triggered by unusual compounds.\n     Our xdr code wasn\u0027t designed with v4 compounds in mind, and it\n     shows.  A more thorough rewrite is still a todo.\n\n   - If you\u0027ve ever seen \"RPC: multiple fragments per record not\n     supported\" logged while using some sort of odd userland NFS client,\n     that should now be fixed.\n\n   - Further work from Jeff Layton on our mechanism for storing\n     information about NFSv4 clients across reboots.\n\n   - Further work from Bryan Schumaker on his fault-injection mechanism\n     (which allows us to discard selective NFSv4 state, to excercise\n     rarely-taken recovery code paths in the client.)\n\n   - The usual mix of miscellaneous bugs and cleanup.\n\n  Thanks to everyone who tested or contributed this cycle.\"\n\n* \u0027for-3.8\u0027 of git://linux-nfs.org/~bfields/linux: (111 commits)\n  nfsd4: don\u0027t leave freed stateid hashed\n  nfsd4: free_stateid can use the current stateid\n  nfsd4: cleanup: replace rq_resused count by rq_next_page pointer\n  nfsd: warn on odd reply state in nfsd_vfs_read\n  nfsd4: fix oops on unusual readlike compound\n  nfsd4: disable zero-copy on non-final read ops\n  svcrpc: fix some printks\n  NFSD: Correct the size calculation in fault_inject_write\n  NFSD: Pass correct buffer size to rpc_ntop\n  nfsd: pass proper net to nfsd_destroy() from NFSd kthreads\n  nfsd: simplify service shutdown\n  nfsd: replace boolean nfsd_up flag by users counter\n  nfsd: simplify NFSv4 state init and shutdown\n  nfsd: introduce helpers for generic resources init and shutdown\n  nfsd: make NFSd service structure allocated per net\n  nfsd: make NFSd service boot time per-net\n  nfsd: per-net NFSd up flag introduced\n  nfsd: move per-net startup code to separated function\n  nfsd: pass net to __write_ports() and down\n  nfsd: pass net to nfsd_set_nrthreads()\n  ...\n"
    },
    {
      "commit": "ef778e7ae67cd426c30cad43378b908f5eb0bad5",
      "tree": "4893f19487cb99e8ec0eb835ec4391d952641a9c",
      "parents": [
        "9f10523f891928330b7529da54c1a3cc65180b1a"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Dec 20 21:52:36 2012 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Dec 20 22:04:07 2012 +0000"
      },
      "message": "FS-Cache: Provide proper invalidation\n\nProvide a proper invalidation method rather than relying on the netfs retiring\nthe cookie it has and getting a new one.  The problem with this is that isn\u0027t\neasy for the netfs to make sure that it has completed/cancelled all its\noutstanding storage and retrieval operations on the cookie it is retiring.\n\nInstead, have the cache provide an invalidation method that will cancel or wait\nfor all currently outstanding operations before invalidating the cache, and\nwill cause new operations to queue up behind that.  Whilst invalidation is in\nprogress, some requests will be rejected until the cache can stack a barrier on\nthe operation queue to cause new operations to be deferred behind it.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "40889e8d9fc6355980cf2bc94ef4356c10dec4ec",
      "tree": "c03f4e218477052c665cd9b01352f83e32c4a593",
      "parents": [
        "1ca22254b32657d65315af261ae0e699b8427fb7",
        "c3e946ce7276faf0b302acd25c7b874edbeba661"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 14:00:13 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 14:00:13 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\nPull Ceph update from Sage Weil:\n \"There are a few different groups of commits here.  The largest is\n  Alex\u0027s ongoing work to enable the coming RBD features (cloning,\n  striping).  There is some cleanup in libceph that goes along with it.\n\n  Cyril and David have fixed some problems with NFS reexport (leaking\n  dentries and page locks), and there is a batch of patches from Yan\n  fixing problems with the fs client when running against a clustered\n  MDS.  There are a few bug fixes mixed in for good measure, many of\n  which will be going to the stable trees once they\u0027re upstream.\n\n  My apologies for the late pull.  There is still a gremlin in the rbd\n  map/unmap code and I was hoping to include the fix for that as well,\n  but we haven\u0027t been able to confirm the fix is correct yet; I\u0027ll send\n  that in a separate pull once it\u0027s nailed down.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: (68 commits)\n  rbd: get rid of rbd_{get,put}_dev()\n  libceph: register request before unregister linger\n  libceph: don\u0027t use rb_init_node() in ceph_osdc_alloc_request()\n  libceph: init event-\u003enode in ceph_osdc_create_event()\n  libceph: init osd-\u003eo_node in create_osd()\n  libceph: report connection fault with warning\n  libceph: socket can close in any connection state\n  rbd: don\u0027t use ENOTSUPP\n  rbd: remove linger unconditionally\n  rbd: get rid of RBD_MAX_SEG_NAME_LEN\n  libceph: avoid using freed osd in __kick_osd_requests()\n  ceph: don\u0027t reference req after put\n  rbd: do not allow remove of mounted-on image\n  libceph: Unlock unprocessed pages in start_read() error path\n  ceph: call handle_cap_grant() for cap import message\n  ceph: Fix __ceph_do_pending_vmtruncate\n  ceph: Don\u0027t add dirty inode to dirty list if caps is in migration\n  ceph: Fix infinite loop in __wake_requests\n  ceph: Don\u0027t update i_max_size when handling non-auth cap\n  bdi_register: add __printf verification, fix arg mismatch\n  ...\n"
    },
    {
      "commit": "9f10523f891928330b7529da54c1a3cc65180b1a",
      "tree": "014731e89d44d1ca86cc665f4d39d8d2c25c69bf",
      "parents": [
        "ef46ed888efb1e8da33be5d33c9b54476289a43b"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Dec 20 21:52:35 2012 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Dec 20 21:58:26 2012 +0000"
      },
      "message": "FS-Cache: Fix operation state management and accounting\n\nFix the state management of internal fscache operations and the accounting of\nwhat operations are in what states.\n\nThis is done by:\n\n (1) Give struct fscache_operation a enum variable that directly represents the\n     state it\u0027s currently in, rather than spreading this knowledge over a bunch\n     of flags, who\u0027s processing the operation at the moment and whether it is\n     queued or not.\n\n     This makes it easier to write assertions to check the state at various\n     points and to prevent invalid state transitions.\n\n (2) Add an \u0027operation complete\u0027 state and supply a function to indicate the\n     completion of an operation (fscache_op_complete()) and make things call\n     it.  The final call to fscache_put_operation() can then check that an op\n     in the appropriate state (complete or cancelled).\n\n (3) Adjust the use of object-\u003en_ops, -\u003en_in_progress, -\u003en_exclusive to better\n     govern the state of an object:\n\n\t(a) The -\u003en_ops is now the number of extant operations on the object\n\t    and is now decremented by fscache_put_operation() only.\n\n\t(b) The -\u003en_in_progress is simply the number of objects that have been\n\t    taken off of the object\u0027s pending queue for the purposes of being\n\t    run.  This is decremented by fscache_op_complete() only.\n\n\t(c) The -\u003en_exclusive is the number of exclusive ops that have been\n\t    submitted and queued or are in progress.  It is decremented by\n\t    fscache_op_complete() and by fscache_cancel_op().\n\n     fscache_put_operation() and fscache_operation_gc() now no longer try to\n     clean up -\u003en_exclusive and -\u003en_in_progress.  That was leading to double\n     decrements against fscache_cancel_op().\n\n     fscache_cancel_op() now no longer decrements -\u003en_ops.  That was leading to\n     double decrements against fscache_put_operation().\n\n     fscache_submit_exclusive_op() now decides whether it has to queue an op\n     based on -\u003en_in_progress being \u003e 0 rather than -\u003en_ops \u003e 0 as the latter\n     will persist in being true even after all preceding operations have been\n     cancelled or completed.  Furthermore, if an object is active and there are\n     runnable ops against it, there must be at least one op running.\n\n (4) Add a remaining-pages counter (n_pages) to struct fscache_retrieval and\n     provide a function to record completion of the pages as they complete.\n\n     When n_pages reaches 0, the operation is deemed to be complete and\n     fscache_op_complete() is called.\n\n     Add calls to fscache_retrieval_complete() anywhere we\u0027ve finished with a\n     page we\u0027ve been given to read or allocate for.  This includes places where\n     we just return pages to the netfs for reading from the server and where\n     accessing the cache fails and we discard the proposed netfs page.\n\nThe bugs in the unfixed state management manifest themselves as oopses like the\nfollowing where the operation completion gets out of sync with return of the\ncookie by the netfs.  This is possible because the cache unlocks and returns\nall the netfs pages before recording its completion - which means that there\u0027s\nnothing to stop the netfs discarding them and returning the cookie.\n\n\nFS-Cache: Cookie \u0027NFS.fh\u0027 still has outstanding reads\n------------[ cut here ]------------\nkernel BUG at fs/fscache/cookie.c:519!\ninvalid opcode: 0000 [#1] SMP\nCPU 1\nModules linked in: cachefiles nfs fscache auth_rpcgss nfs_acl lockd sunrpc\n\nPid: 400, comm: kswapd0 Not tainted 3.1.0-rc7-fsdevel+ #1090                  /DG965RY\nRIP: 0010:[\u003cffffffffa007050a\u003e]  [\u003cffffffffa007050a\u003e] __fscache_relinquish_cookie+0x170/0x343 [fscache]\nRSP: 0018:ffff8800368cfb00  EFLAGS: 00010282\nRAX: 000000000000003c RBX: ffff880023cc8790 RCX: 0000000000000000\nRDX: 0000000000002f2e RSI: 0000000000000001 RDI: ffffffff813ab86c\nRBP: ffff8800368cfb50 R08: 0000000000000002 R09: 0000000000000000\nR10: ffff88003a1b7890 R11: ffff88001df6e488 R12: ffff880023d8ed98\nR13: ffff880023cc8798 R14: 0000000000000004 R15: ffff88003b8bf370\nFS:  0000000000000000(0000) GS:ffff88003bd00000(0000) knlGS:0000000000000000\nCS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b\nCR2: 00000000008ba008 CR3: 0000000023d93000 CR4: 00000000000006e0\nDR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\nDR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400\nProcess kswapd0 (pid: 400, threadinfo ffff8800368ce000, task ffff88003b8bf040)\nStack:\n ffff88003b8bf040 ffff88001df6e528 ffff88001df6e528 ffffffffa00b46b0\n ffff88003b8bf040 ffff88001df6e488 ffff88001df6e620 ffffffffa00b46b0\n ffff88001ebd04c8 0000000000000004 ffff8800368cfb70 ffffffffa00b2c91\nCall Trace:\n [\u003cffffffffa00b2c91\u003e] nfs_fscache_release_inode_cookie+0x3b/0x47 [nfs]\n [\u003cffffffffa008f25f\u003e] nfs_clear_inode+0x3c/0x41 [nfs]\n [\u003cffffffffa0090df1\u003e] nfs4_evict_inode+0x2f/0x33 [nfs]\n [\u003cffffffff810d8d47\u003e] evict+0xa1/0x15c\n [\u003cffffffff810d8e2e\u003e] dispose_list+0x2c/0x38\n [\u003cffffffff810d9ebd\u003e] prune_icache_sb+0x28c/0x29b\n [\u003cffffffff810c56b7\u003e] prune_super+0xd5/0x140\n [\u003cffffffff8109b615\u003e] shrink_slab+0x102/0x1ab\n [\u003cffffffff8109d690\u003e] balance_pgdat+0x2f2/0x595\n [\u003cffffffff8103e009\u003e] ? process_timeout+0xb/0xb\n [\u003cffffffff8109dba3\u003e] kswapd+0x270/0x289\n [\u003cffffffff8104c5ea\u003e] ? __init_waitqueue_head+0x46/0x46\n [\u003cffffffff8109d933\u003e] ? balance_pgdat+0x595/0x595\n [\u003cffffffff8104bf7a\u003e] kthread+0x7f/0x87\n [\u003cffffffff813ad6b4\u003e] kernel_thread_helper+0x4/0x10\n [\u003cffffffff81026b98\u003e] ? finish_task_switch+0x45/0xc0\n [\u003cffffffff813abcdd\u003e] ? retint_restore_args+0xe/0xe\n [\u003cffffffff8104befb\u003e] ? __init_kthread_worker+0x53/0x53\n [\u003cffffffff813ad6b0\u003e] ? gs_change+0xb/0xb\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "ef46ed888efb1e8da33be5d33c9b54476289a43b",
      "tree": "d538dc01a075162f95da416da1fb5d6fd676445a",
      "parents": [
        "37491a1339df26259b06dfa33f30e574e9e52034"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Dec 20 21:52:35 2012 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Dec 20 21:58:25 2012 +0000"
      },
      "message": "FS-Cache: Make cookie relinquishment wait for outstanding reads\n\nMake fscache_relinquish_cookie() log a warning and wait if there are any\noutstanding reads left on the cookie it was given.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "a13eea6bd9ee62ceacfc5243d54c84396bc86cb4",
      "tree": "46192468880c144f2b367deb5188267866ee1fac",
      "parents": [
        "fcc16882ac4532aaa644bff444f0c5d6228ba71e",
        "6666e6aa9f36b2bfd6b30072c07b34f2a24becf1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 13:54:51 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 13:54:52 2012 -0800"
      },
      "message": "Merge tag \u0027for-3.8-merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs\n\nPull new F2FS filesystem from Jaegeuk Kim:\n \"Introduce a new file system, Flash-Friendly File System (F2FS), to\n  Linux 3.8.\n\n  Highlights:\n   - Add initial f2fs source codes\n   - Fix an endian conversion bug\n   - Fix build failures on random configs\n   - Fix the power-off-recovery routine\n   - Minor cleanup, coding style, and typos patches\"\n\nFrom the Kconfig help text:\n\n  F2FS is based on Log-structured File System (LFS), which supports\n  versatile \"flash-friendly\" features. The design has been focused on\n  addressing the fundamental issues in LFS, which are snowball effect\n  of wandering tree and high cleaning overhead.\n\n  Since flash-based storages show different characteristics according to\n  the internal geometry or flash memory management schemes aka FTL, F2FS\n  and tools support various parameters not only for configuring on-disk\n  layout, but also for selecting allocation and cleaning algorithms.\n\nand there\u0027s an article by Neil Brown about it on lwn.net:\n\n  http://lwn.net/Articles/518988/\n\n* tag \u0027for-3.8-merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (36 commits)\n  f2fs: fix tracking parent inode number\n  f2fs: cleanup the f2fs_bio_alloc routine\n  f2fs: introduce accessor to retrieve number of dentry slots\n  f2fs: remove redundant call to f2fs_put_page in delete entry\n  f2fs: make use of GFP_F2FS_ZERO for setting gfp_mask\n  f2fs: rewrite f2fs_bio_alloc to make it simpler\n  f2fs: fix a typo in f2fs documentation\n  f2fs: remove unused variable\n  f2fs: move error condition for mkdir at proper place\n  f2fs: remove unneeded initialization\n  f2fs: check read only condition before beginning write out\n  f2fs: remove unneeded memset from init_once\n  f2fs: show error in case of invalid mount arguments\n  f2fs: fix the compiler warning for uninitialized use of variable\n  f2fs: resolve build failures\n  f2fs: adjust kernel coding style\n  f2fs: fix endian conversion bugs reported by sparse\n  f2fs: remove unneeded version.h header file from f2fs.h\n  f2fs: update the f2fs document\n  f2fs: update Kconfig and Makefile\n  ...\n"
    },
    {
      "commit": "c4d6d8dbf335c7fa47341654a37c53a512b519bb",
      "tree": "14f0b9c7146a39aa3770c26bc7c480cf0d2c4f56",
      "parents": [
        "1800098549fc310cffffefdcb3722adaad0edda8"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Dec 20 21:52:32 2012 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Dec 20 21:54:30 2012 +0000"
      },
      "message": "CacheFiles: Fix the marking of cached pages\n\nUnder some circumstances CacheFiles defers the marking of pages with PG_fscache\nso that it can take advantage of pagevecs to reduce the number of calls to\nfscache_mark_pages_cached() and the netfs\u0027s hook to keep track of this.\n\nThere are, however, two problems with this:\n\n (1) It can lead to the PG_fscache mark being applied _after_ the page is set\n     PG_uptodate and unlocked (by the call to fscache_end_io()).\n\n (2) CacheFiles\u0027s ref on the page is dropped immediately following\n     fscache_end_io() - and so may not still be held when the mark is applied.\n     This can lead to the page being passed back to the allocator before the\n     mark is applied.\n\nFix this by, where appropriate, marking the page before calling\nfscache_end_io() and releasing the page.  This means that we can\u0027t take\nadvantage of pagevecs and have to make a separate call for each page to the\nmarking routines.\n\nThe symptoms of this are Bad Page state errors cropping up under memory\npressure, for example:\n\nBUG: Bad page state in process tar  pfn:002da\npage:ffffea0000009fb0 count:0 mapcount:0 mapping:          (null) index:0x1447\npage flags: 0x1000(private_2)\nPid: 4574, comm: tar Tainted: G        W   3.1.0-rc4-fsdevel+ #1064\nCall Trace:\n [\u003cffffffff8109583c\u003e] ? dump_page+0xb9/0xbe\n [\u003cffffffff81095916\u003e] bad_page+0xd5/0xea\n [\u003cffffffff81095d82\u003e] get_page_from_freelist+0x35b/0x46a\n [\u003cffffffff810961f3\u003e] __alloc_pages_nodemask+0x362/0x662\n [\u003cffffffff810989da\u003e] __do_page_cache_readahead+0x13a/0x267\n [\u003cffffffff81098942\u003e] ? __do_page_cache_readahead+0xa2/0x267\n [\u003cffffffff81098d7b\u003e] ra_submit+0x1c/0x20\n [\u003cffffffff8109900a\u003e] ondemand_readahead+0x28b/0x29a\n [\u003cffffffff81098ee2\u003e] ? ondemand_readahead+0x163/0x29a\n [\u003cffffffff810990ce\u003e] page_cache_sync_readahead+0x38/0x3a\n [\u003cffffffff81091d8a\u003e] generic_file_aio_read+0x2ab/0x67e\n [\u003cffffffffa008cfbe\u003e] nfs_file_read+0xa4/0xc9 [nfs]\n [\u003cffffffff810c22c4\u003e] do_sync_read+0xba/0xfa\n [\u003cffffffff81177a47\u003e] ? security_file_permission+0x7b/0x84\n [\u003cffffffff810c25dd\u003e] ? rw_verify_area+0xab/0xc8\n [\u003cffffffff810c29a4\u003e] vfs_read+0xaa/0x13a\n [\u003cffffffff810c2a79\u003e] sys_read+0x45/0x6c\n [\u003cffffffff813ac37b\u003e] system_call_fastpath+0x16/0x1b\n\nAs can be seen, PG_private_2 (\u003d\u003d PG_fscache) is set in the page flags.\n\nInstrumenting fscache_mark_pages_cached() to verify whether page-\u003emapping was\nset appropriately showed that sometimes it wasn\u0027t.  This led to the discovery\nthat sometimes the page has apparently been reclaimed by the time the marker\ngot to see it.\n\nReported-by: M. Stevens \u003cm@tippett.com\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\n"
    },
    {
      "commit": "39e3c9553f34381a1b664c27b0c696a266a5735e",
      "tree": "f754789dccac7a017ee8feb602b01dd42b73023d",
      "parents": [
        "741b7c3f77937b2fb7c10aeb4c5c621463582583"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Nov 28 11:30:53 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 20 13:57:36 2012 -0500"
      },
      "message": "vfs: remove DCACHE_NEED_LOOKUP\n\nThe code that relied on that flag was ripped out of btrfs quite some\ntime ago, and never added back. Josef indicated that he was going to\ntake a different approach to the problem in btrfs, and that we\ncould just eliminate this flag.\n\nCc: Josef Bacik \u003cjbacik@fusionio.com\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "787314c35fbb97e02823a1b8eb8cfa58f366cd49",
      "tree": "3fe5a484c1846c80361217a726997484533e8344",
      "parents": [
        "6491d4d02893d9787ba67279595990217177b351",
        "9c6ecf6a3ade2dc4b03a239af68058b22897af41"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 10:07:25 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 10:07:25 2012 -0800"
      },
      "message": "Merge tag \u0027iommu-updates-v3.8\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu\n\nPull IOMMU updates from Joerg Roedel:\n \"A few new features this merge-window.  The most important one is\n  probably, that dma-debug now warns if a dma-handle is not checked with\n  dma_mapping_error by the device driver.  This requires minor changes\n  to some architectures which make use of dma-debug.  Most of these\n  changes have the respective Acks by the Arch-Maintainers.\n\n  Besides that there are updates to the AMD IOMMU driver for refactor\n  the IOMMU-Groups support and to make sure it does not trigger a\n  hardware erratum.\n\n  The OMAP changes (for which I pulled in a branch from Tony Lindgren\u0027s\n  tree) have a conflict in linux-next with the arm-soc tree.  The\n  conflict is in the file arch/arm/mach-omap2/clock44xx_data.c which is\n  deleted in the arm-soc tree.  It is safe to delete the file too so\n  solve the conflict.  Similar changes are done in the arm-soc tree in\n  the common clock framework migration.  A missing hunk from the patch\n  in the IOMMU tree will be submitted as a seperate patch when the\n  merge-window is closed.\"\n\n* tag \u0027iommu-updates-v3.8\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (29 commits)\n  ARM: dma-mapping: support debug_dma_mapping_error\n  ARM: OMAP4: hwmod data: ipu and dsp to use parent clocks instead of leaf clocks\n  iommu/omap: Adapt to runtime pm\n  iommu/omap: Migrate to hwmod framework\n  iommu/omap: Keep mmu enabled when requested\n  iommu/omap: Remove redundant clock handling on ISR\n  iommu/amd: Remove obsolete comment\n  iommu/amd: Don\u0027t use 512GB pages\n  iommu/tegra: smmu: Move bus_set_iommu after probe for multi arch\n  iommu/tegra: gart: Move bus_set_iommu after probe for multi arch\n  iommu/tegra: smmu: Remove unnecessary PTC/TLB flush all\n  tile: dma_debug: add debug_dma_mapping_error support\n  sh: dma_debug: add debug_dma_mapping_error support\n  powerpc: dma_debug: add debug_dma_mapping_error support\n  mips: dma_debug: add debug_dma_mapping_error support\n  microblaze: dma-mapping: support debug_dma_mapping_error\n  ia64: dma_debug: add debug_dma_mapping_error support\n  c6x: dma_debug: add debug_dma_mapping_error support\n  ARM64: dma_debug: add debug_dma_mapping_error support\n  intel-iommu: Prevent devices with RMRRs from being placed into SI Domain\n  ...\n"
    },
    {
      "commit": "b7dfde956daee23f4439d0c8562a5e38b43e79d9",
      "tree": "2ed71fb5c5eac6957fd1e1ad0a67be6c3282167a",
      "parents": [
        "03c850ec327c42a97e44c448b75983e12da417d9",
        "1b6370463e88b0c1c317de16d7b962acc1dab4f2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 08:37:04 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 08:37:05 2012 -0800"
      },
      "message": "Merge tag \u0027virtio-next-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux\n\nPull virtio update from Rusty Russell:\n \"Some nice cleanups, and even a patch my wife did as a \"live\" demo for\n  Latinoware 2012.\n\n  There\u0027s a slightly non-trivial merge in virtio-net, as we cleaned up\n  the virtio add_buf interface while DaveM accepted the mq virtio-net\n  patches.\"\n\n* tag \u0027virtio-next-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux: (27 commits)\n  virtio_console: Add support for remoteproc serial\n  virtio_console: Merge struct buffer_token into struct port_buffer\n  virtio: add drv_to_virtio to make code clearly\n  virtio: use dev_to_virtio wrapper in virtio\n  virtio-mmio: Fix irq parsing in command line parameter\n  virtio_console: Free buffers from out-queue upon close\n  virtio: Convert dev_printk(KERN_\u003cLEVEL\u003e to dev_\u003clevel\u003e(\n  virtio_console: Use kmalloc instead of kzalloc\n  virtio_console: Free buffer if splice fails\n  virtio: tools: make it clear that virtqueue_add_buf() no longer returns \u003e 0\n  virtio: scsi: make it clear that virtqueue_add_buf() no longer returns \u003e 0\n  virtio: rpmsg: make it clear that virtqueue_add_buf() no longer returns \u003e 0\n  virtio: net: make it clear that virtqueue_add_buf() no longer returns \u003e 0\n  virtio: console: make it clear that virtqueue_add_buf() no longer returns \u003e 0\n  virtio: make virtqueue_add_buf() returning 0 on success, not capacity.\n  virtio: console: don\u0027t rely on virtqueue_add_buf() returning capacity.\n  virtio_net: don\u0027t rely on virtqueue_add_buf() returning capacity.\n  virtio-net: remove unused skb_vnet_hdr-\u003enum_sg field\n  virtio-net: correct capacity math on ring full\n  virtio: move queue_index and num_free fields into core struct virtqueue.\n  ...\n"
    },
    {
      "commit": "1ffab3d4139533eff6e27b7568825307e575faa6",
      "tree": "eca25b2ef6b9b7c8168625c2a5dea6b08fd37756",
      "parents": [
        "ddedec28b1d5144bc2c765d97003997f3505fd3a",
        "4d1839138220e7e35bf9e31c854e4e0196dea7a1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 07:21:54 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 07:21:54 2012 -0800"
      },
      "message": "Merge tag \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc\n\nPull ARM SoC fixes from Olof Johansson:\n \"This is a batch of fixes for arm-soc platforms, most of it is for OMAP\n  but there are others too (i.MX, Tegra, ep93xx).  Fixes warnings, some\n  broken platforms and drivers, etc.  A bit all over the map really.\"\n\nThere was some concern about commit 68136b10 (\"RM: sunxi: Change device\ntree naming scheme for sunxi\"), but Tony says:\n \"Looks like that\u0027s trivial to fix as needed, no need to rebuild the\n  branch to fix that AFAIK.\n\n  The fix can be done once Olof is available online again.\n\n  Linus, I suggest that you go ahead and pull this if there are no other\n  issues with this branch.\"\n\n* tag \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (32 commits)\n  ARM: sunxi: Change device tree naming scheme for sunxi\n  ARM: ux500: fix missing include\n  ARM: u300: delete custom pin hog code\n  ARM: davinci: fix build break due to missing include\n  ARM: exynos: Fix warning due to missing \u0027inline\u0027 in stub\n  ARM: imx: Move platform-mx2-emma to arch/arm/mach-imx/devices\n  ARM i.MX51 clock: Fix regression since enabling MIPI/HSP clocks\n  ARM: dts: mx27: Fix the AIPI bus for FEC\n  ARM: OMAP2+: common: remove use of vram\n  ARM: OMAP3/4: cpuidle: fix sparse and checkpatch warnings\n  ARM: OMAP4: clock data: DPLLs are missing bypass clocks in their parent lists\n  ARM: OMAP4: clock data: div_iva_hs_clk is a power-of-two divider\n  ARM: OMAP4: Fix EMU clock domain always on\n  ARM: OMAP4460: Workaround ABE DPLL failing to turn-on\n  ARM: OMAP4: Enhance support for DPLLs with 4X multiplier\n  ARM: OMAP4: Add function table for non-M4X dplls\n  ARM: OMAP4: Update timer clock aliases\n  ARM: OMAP: Move plat/omap-serial.h to include/linux/platform_data/serial-omap.h\n  ARM: dts: Add build target for omap4-panda-a4\n  ARM: dts: OMAP2420: Correct H4 board memory size\n  ...\n"
    },
    {
      "commit": "ada65c74059f8c104f1b467c126205471634c435",
      "tree": "795e6bbf35c5a70b8778ec53bf5124ef546eefbb",
      "parents": [
        "b6fa0cd62c5b9d47f8e5d42cb2876677a5ed701e"
      ],
      "author": {
        "name": "Maarten Lankhorst",
        "email": "maarten.lankhorst@canonical.com",
        "time": "Wed Dec 12 10:23:03 2012 +0100"
      },
      "committer": {
        "name": "Sumit Semwal",
        "email": "sumit.semwal@linaro.org",
        "time": "Thu Dec 20 12:05:06 2012 +0530"
      },
      "message": "dma-buf: remove fallback for !CONFIG_DMA_SHARED_BUFFER\n\nDocumentation says that code requiring dma-buf should add it to\nselect, so inline fallbacks are not going to be used. A link error\nwill make it obvious what went wrong, instead of silently doing\nnothing at runtime.\n\nSigned-off-by: Maarten Lankhorst \u003cmaarten.lankhorst@canonical.com\u003e\nReviewed-by: Daniel Vetter \u003cdaniel.vetter@ffwll.ch\u003e\nReviewed-by: Rob Clark \u003crob.clark@linaro.org\u003e\nSigned-off-by: Sumit Semwal \u003csumit.semwal@linaro.org\u003e\n"
    },
    {
      "commit": "9eb127cc04c4005c8c0708ce92146d91da862b42",
      "tree": "bebab2c136110edf32d6cf32f898871df9fbb0e6",
      "parents": [
        "e32795503de02da4e7e74a5e039cc268f6a0ecfb",
        "152a2a8b5e1d4cbe91a7c66f1028db15164a3766"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 19 20:29:15 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 19 20:29:15 2012 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nPull networking fixes from David Miller:\n\n 1) Really fix tuntap SKB use after free bug, from Eric Dumazet.\n\n 2) Adjust SKB data pointer to point past the transport header before\n    calling icmpv6_notify() so that the headers are in the state which\n    that function expects.  From Duan Jiong.\n\n 3) Fix ambiguities in the new tuntap multi-queue APIs.  From Jason\n    Wang.\n\n 4) mISDN needs to use del_timer_sync(), from Konstantin Khlebnikov.\n\n 5) Don\u0027t destroy mutex after freeing up device private in mac802154,\n    fix also from Konstantin Khlebnikov.\n\n 6) Fix INET request socket leak in TCP and DCCP, from Christoph Paasch.\n\n 7) SCTP HMAC kconfig rework, from Neil Horman.\n\n 8) Fix SCTP jprobes function signature, otherwise things explode, from\n    Daniel Borkmann.\n\n 9) Fix typo in ipv6-offload Makefile variable reference, from Simon\n    Arlott.\n\n10) Don\u0027t fail USBNET open just because remote wakeup isn\u0027t supported,\n    from Oliver Neukum.\n\n11) be2net driver bug fixes from Sathya Perla.\n\n12) SOLOS PCI ATM driver bug fixes from Nathan Williams and David\n    Woodhouse.\n\n13) Fix MTU changing regression in 8139cp driver, from John Greene.\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (45 commits)\n  solos-pci: ensure all TX packets are aligned to 4 bytes\n  solos-pci: add firmware upgrade support for new models\n  solos-pci: remove superfluous debug output\n  solos-pci: add GPIO support for newer versions on Geos board\n  8139cp: Prevent dev_close/cp_interrupt race on MTU change\n  net: qmi_wwan: add ZTE MF880\n  drivers/net: Use of_match_ptr() macro in smsc911x.c\n  drivers/net: Use of_match_ptr() macro in smc91x.c\n  ipv6: addrconf.c: remove unnecessary \"if\"\n  bridge: Correctly encode addresses when dumping mdb entries\n  bridge: Do not unregister all PF_BRIDGE rtnl operations\n  use generic usbnet_manage_power()\n  usbnet: generic manage_power()\n  usbnet: handle PM failure gracefully\n  ksz884x: fix receive polling race condition\n  qlcnic: update driver version\n  qlcnic: fix unused variable warnings\n  net: fec: forbid FEC_PTP on SoCs that do not support\n  be2net: fix wrong frag_idx reported by RX CQ\n  be2net: fix be_close() to ensure all events are ack\u0027ed\n  ...\n"
    },
    {
      "commit": "e32795503de02da4e7e74a5e039cc268f6a0ecfb",
      "tree": "2520af6bb12359458846d73842733c7cd07416a3",
      "parents": [
        "dcd6a97d1d821335051cbf35b1e2be54955d6276",
        "ab28698d33af05abab0bcf8021eafe38f7434f24",
        "bc1008cf7d243cf6ad87b1e16d3dbbd8c8d6f35c",
        "d3601e56cf64a3f2df6f6380cccb3644274406e2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 19 20:26:16 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 19 20:26:16 2012 -0800"
      },
      "message": "Merge tags \u0027dt-for-linus\u0027, \u0027gpio-for-linus\u0027 and \u0027spi-for-linus\u0027 of git://git.secretlab.ca/git/linux-2.6\n\nPull devicetree, gpio and spi bugfixes from Grant Likely:\n \"Device tree v3.8 bug fix:\n   - Fixes an undefined struct device build error and a missing symbol\n     export.\n\n  GPIO device driver bug fixes:\n   - gpio/mvebu-gpio: Make mvebu-gpio depend on OF_CONFIG\n   - gpio/ich: Add missing spinlock init\n\n  SPI device driver bug fixes:\n   - Most of this is bug fixes to the core code and the sh-hspi and\n     s3c64xx device drivers.\n\n   - There is also a patch here to add DT support to the Atmel driver.\n     This one should have been in the first round, but I missed it.\n     It\u0027s a low risk change contained within a single driver and the\n     Atmel maintainer has requested it.\"\n\n* tag \u0027dt-for-linus\u0027 of git://git.secretlab.ca/git/linux-2.6:\n  of: define struct device in of_platform.h if !OF_DEVICE and !OF_ADDRESS\n  of: Fix export of of_find_matching_node_and_match()\n\n* tag \u0027gpio-for-linus\u0027 of git://git.secretlab.ca/git/linux-2.6:\n  gpio/mvebu-gpio: Make mvebu-gpio depend on OF_CONFIG\n  gpio/ich: Add missing spinlock init\n\n* tag \u0027spi-for-linus\u0027 of git://git.secretlab.ca/git/linux-2.6:\n  spi/sh-hspi: fix return value check in hspi_probe().\n  spi: fix tegra SPI binding examples\n  spi/atmel: add DT support\n  of/spi: Fix SPI module loading by using proper \"spi:\" modalias prefixes.\n  spi: Change FIFO flush operation and spi channel off\n  spi: Keep chipselect assertion during one message\n"
    },
    {
      "commit": "c40702c49faef05ae324f121d8b3e215244ee152",
      "tree": "b0b2a51b07e944497da5cb48fb461963a3762cad",
      "parents": [
        "9026843952adac5b123c7b8dc961e5c15828d9e1"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Nov 20 14:24:26 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 19 18:07:41 2012 -0500"
      },
      "message": "new helpers: __save_altstack/__compat_save_altstack, switch x86 and um to those\n\nnote that they are relying on access_ok() already checked by caller.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9026843952adac5b123c7b8dc961e5c15828d9e1",
      "tree": "4ef89cf05cf97427ceb2587fed94a6a12833d527",
      "parents": [
        "6bf9adfc90370b695cb111116e15fdc0e1906270"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Dec 14 14:47:53 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 19 18:07:41 2012 -0500"
      },
      "message": "generic compat_sys_sigaltstack()\n\nAgain, conditional on CONFIG_GENERIC_SIGALTSTACK\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6bf9adfc90370b695cb111116e15fdc0e1906270",
      "tree": "b8e4d369cadad21f33b7a5f7f69d43665f821ddc",
      "parents": [
        "9b064fc3f95a8e44e929fdf4d6037334ea03d15b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Dec 14 14:09:47 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 19 18:07:40 2012 -0500"
      },
      "message": "introduce generic sys_sigaltstack(), switch x86 and um to it\n\nConditional on CONFIG_GENERIC_SIGALTSTACK; architectures that do not\nselect it are completely unaffected\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9b064fc3f95a8e44e929fdf4d6037334ea03d15b",
      "tree": "dd1a2a6075667841f88b1ea8b62f4df2e18c3c68",
      "parents": [
        "5c49574ffd7ac07eae8c3b065d19e6ebc7e4760f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Dec 14 13:49:35 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 19 18:07:40 2012 -0500"
      },
      "message": "new helper: compat_user_stack_pointer()\n\nCompat counterpart of current_user_stack_pointer(); for most of the biarch\narchitectures those two are identical, but e.g. arm64 and arm use different\nregisters for stack pointer...\n\nNote that amd64 variants of current_user_stack_pointer/compat_user_stack_pointer\ndo *not* rely on pt_regs having been through FIXUP_TOP_OF_STACK.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5c49574ffd7ac07eae8c3b065d19e6ebc7e4760f",
      "tree": "10c25476b152eca9917eea82fbecff28718eb2fc",
      "parents": [
        "031b6566983ad9c0247087f039af22b3f87596a3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Nov 18 15:29:16 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 19 18:07:40 2012 -0500"
      },
      "message": "new helper: restore_altstack()\n\nto be used by rt_sigreturn instances\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1ca97bb541a1f5a735e697a8bba763cde3aab452",
      "tree": "548d835c0f13de780678922ba3b3ea4c841e8cd7",
      "parents": [
        "5208ba24e7826519d310474dedaed2f84b0ab6a0"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Nov 18 12:50:10 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 19 18:07:39 2012 -0500"
      },
      "message": "new helper: current_user_stack_pointer()\n\n\tCross-architecture equivalent of rdusp(); default is\nuser_stack_pointer(current_pt_regs()) - that works for almost all\nplatforms that have usp saved in pt_regs.  The only exception from\nthat is ia64 - we want memory stack, not the backing store for\nregister one.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ae903caae267154de7cf8576b130ff474630596b",
      "tree": "a39d238d7fd1742f7f20cacbd24a4d1b4957176e",
      "parents": [
        "468366138850f20543f1d4878028900672b23dae"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Dec 14 12:44:11 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 19 18:07:38 2012 -0500"
      },
      "message": "Bury the conditionals from kernel_thread/kernel_execve series\n\nAll architectures have\n\tCONFIG_GENERIC_KERNEL_THREAD\n\tCONFIG_GENERIC_KERNEL_EXECVE\n\t__ARCH_WANT_SYS_EXECVE\nNone of them have __ARCH_WANT_KERNEL_EXECVE and there are only two callers\nof kernel_execve() (which is a trivial wrapper for do_execve() now) left.\nKill the conditionals and make both callers use do_execve().\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "468366138850f20543f1d4878028900672b23dae",
      "tree": "89c694a8e8cbf60656ac69a7f783a34d75288c4a",
      "parents": [
        "541880d9a2c7871f6370071d55aa6662d329c51e"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Nov 23 09:12:59 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 19 18:06:58 2012 -0500"
      },
      "message": "COMPAT_SYSCALL_DEFINE: infrastructure\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "cf13a84d174947df4bb809edfb4887393642303e",
      "tree": "cdbe91423347d7d5ae02a01556ddae71dea26362",
      "parents": [
        "50d854c8a72b87ffa5523aa07c5013e2c6657714"
      ],
      "author": {
        "name": "Fabio Porcedda",
        "email": "fabio.porcedda@gmail.com",
        "time": "Fri Oct 05 12:16:09 2012 +0200"
      },
      "committer": {
        "name": "Wim Van Sebroeck",
        "email": "wim@iguana.be",
        "time": "Wed Dec 19 22:24:55 2012 +0100"
      },
      "message": "watchdog: WatchDog Timer Driver Core: fix comment\n\nSigned-off-by: Fabio Porcedda \u003cfabio.porcedda@gmail.com\u003e\nSigned-off-by: Wim Van Sebroeck \u003cwim@iguana.be\u003e\n"
    },
    {
      "commit": "ca2a88f56aa385890c7fd4ce9d2722b0848ca990",
      "tree": "935fd9cec938677d6529db203f24d803ed5f0b19",
      "parents": [
        "3935e89505a1c3ab3f3b0c7ef0eae54124f48905",
        "d4d4f1bf6a343b25220fdcdf559fd593dd3e25a7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 19 12:47:41 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 19 12:47:41 2012 -0800"
      },
      "message": "Merge tag \u0027for-linus-20121219\u0027 of git://git.infradead.org/linux-mtd\n\nPull MTD updates from David Woodhouse:\n - Various cleanups especially in NAND tests\n - Add support for NAND flash on BCMA bus\n - DT support for sh_flctl and denali NAND drivers\n - Kill obsolete/superceded drivers (fortunet, nomadik_nand)\n - Fix JFFS2 locking bug in ENOMEM failure path\n - New SPI flash chips, as usual\n - Support writing in \u0027reliable mode\u0027 for DiskOnChip G4\n - Debugfs support in nandsim\n\n* tag \u0027for-linus-20121219\u0027 of git://git.infradead.org/linux-mtd: (96 commits)\n  mtd: nand: typo in nand_id_has_period() comments\n  mtd: nand/gpio: use io{read,write}*_rep accessors\n  mtd: block2mtd: throttle writes by calling balance_dirty_pages_ratelimited.\n  mtd: nand: gpmi: reset BCH earlier, too, to avoid NAND startup problems\n  mtd: nand/docg4: fix and improve read of factory bbt\n  mtd: nand/docg4: reserve bb marker area in ecclayout\n  mtd: nand/docg4: add support for writing in reliable mode\n  mtd: mxc_nand: reorder part_probes to let cmdline override other sources\n  mtd: mxc_nand: fix unbalanced clk_disable() in error path\n  mtd: nandsim: Introduce debugfs infrastructure\n  mtd: physmap_of: error checking to prevent a NULL pointer dereference\n  mtg: docg3: potential divide by zero in doc_write_oob()\n  mtd: bcm47xxnflash: writing support\n  mtd: tests/read: initialize buffer for whole next page\n  mtd: at91: atmel_nand: return bit flips for the PMECC read_page()\n  mtd: fix recovery after failed write-buffer operation in cfi_cmdset_0002.c\n  mtd: nand: onfi need to be probed in 8 bits mode\n  mtd: nand: add NAND_BUSWIDTH_AUTO to autodetect bus width\n  mtd: nand: print flash size during detection\n  mted: nand_wait_ready timeout fix\n  ...\n"
    },
    {
      "commit": "2dd7c8cf29769f6b66f26b501db2364640c2c9d0",
      "tree": "4b1e49cc9ff436092fbf086d6748a0cf3f3940c1",
      "parents": [
        "a1c088e01b71d90852b0df5a77cdae46bd0e0c05"
      ],
      "author": {
        "name": "Oliver Neukum",
        "email": "oliver@neukum.org",
        "time": "Tue Dec 18 04:45:52 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 19 12:46:40 2012 -0800"
      },
      "message": "usbnet: generic manage_power()\n\nCentralise common code for manage_power() in usbnet\nby making a generic simple implementation\n\nSigned-off-by: Oliver Neukum \u003coneukum@suse.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a1c088e01b71d90852b0df5a77cdae46bd0e0c05",
      "tree": "5aa6cae3330418b279d8f77d2bb466f75eee9018",
      "parents": [
        "4945106d21926eadaaa1c5465d26d9a0d26a2420"
      ],
      "author": {
        "name": "Oliver Neukum",
        "email": "oliver@neukum.org",
        "time": "Tue Dec 18 04:45:29 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 19 12:46:40 2012 -0800"
      },
      "message": "usbnet: handle PM failure gracefully\n\nIf a device fails to do remote wakeup, this is no reason\nto abort an open totally. This patch just continues without\nruntime PM.\n\nSigned-off-by: Oliver Neukum \u003coneukum@suse.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3c439b5586e9200f7e6287ee77c175c4d5b0eeed",
      "tree": "8194cef0f549fbb81aa70985401220c91f228ee7",
      "parents": [
        "7b8157bedce2a7b5f07f7ec98c96cd6bd64a2a84"
      ],
      "author": {
        "name": "Jack Morgenstein",
        "email": "jackm@dev.mellanox.co.il",
        "time": "Thu Dec 06 17:12:00 2012 +0000"
      },
      "committer": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Wed Dec 19 11:47:22 2012 -0800"
      },
      "message": "mlx4_core: Allow choosing flow steering mode\n\nDevice managed flow steering will be enabled only under administrator\ndirective provided through setting the existing module parameter\nlog_num_mgm_entry_size to -1 (if the device actually supports flow\nsteering).  If flow steering isn\u0027t requested or not available, the\ndriver will use the value of log_num_mgm_entry_size and B0 steering.\n\nSigned-off-by: Jack Morgenstein \u003cjackm@dev.mellanox.co.il\u003e\nSigned-off-by: Or Gerlitz \u003cogerlitz@mellanox.com\u003e\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\n"
    },
    {
      "commit": "74779e22261172ea728b989310f6ecc991b57d62",
      "tree": "a6c71e02bf6cefc9e0d261dd1ab11f4a7433ed92",
      "parents": [
        "5031a2a7c12b837a0913c4139ebeb6bbff5e1aa5",
        "20e8ac3eea4dcfeea6ebeae57cd2c739fa48da11"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 19 08:19:07 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 19 08:19:07 2012 -0800"
      },
      "message": "Merge tag \u0027for-3.8-rc1\u0027 of git://gitorious.org/linux-pwm/linux-pwm\n\nPull pwm changes from Thierry Reding:\n \"A new driver has been added for the SPEAr platform and the\n  TWL4030/6030 driver has been replaced by two drivers that control the\n  regular PWMs and the PWM driven LEDs provided by the chips.\n\n  The vt8500, tiecap, tiehrpwm, i.MX, LPC32xx and Samsung drivers have\n  all been improved and the device tree bindings now support the PWM\n  signal polarity.\"\n\nFix up trivial conflicts due to __devinit/exit removal.\n\n* tag \u0027for-3.8-rc1\u0027 of git://gitorious.org/linux-pwm/linux-pwm: (21 commits)\n  pwm: samsung: add missing s3c-\u003epwm_id assignment\n  pwm: lpc32xx: Set the chip base for dynamic allocation\n  pwm: lpc32xx: Properly disable the clock on device removal\n  pwm: lpc32xx: Fix the PWM polarity\n  pwm: i.MX: eliminate build warning\n  pwm: Export of_pwm_xlate_with_flags()\n  pwm: Remove pwm-twl6030 driver\n  pwm: New driver to support PWM driven LEDs on TWL4030/6030 series of PMICs\n  pwm: New driver to support PWMs on TWL4030/6030 series of PMICs\n  pwm: pwm-tiehrpwm: pinctrl support\n  pwm: tiehrpwm: Add device-tree binding\n  pwm: pwm-tiehrpwm: Adding TBCLK gating support.\n  pwm: pwm-tiecap: pinctrl support\n  pwm: tiecap: Add device-tree binding\n  pwm: Add TI PWM subsystem driver\n  pwm: Device tree support for PWM polarity\n  pwm: vt8500: Ensure PWM clock is enabled during pwm_config\n  pwm: vt8500: Fix build error\n  pwm: spear: Staticize spear_pwm_config()\n  pwm: Add SPEAr PWM chip driver support\n  ...\n"
    },
    {
      "commit": "ab28698d33af05abab0bcf8021eafe38f7434f24",
      "tree": "a8f357f0352f4dc7408bfc16d88664783d2b5f4d",
      "parents": [
        "80c2022e5645a1a789531d13010292c5c18bf1db"
      ],
      "author": {
        "name": "Jonas Gorski",
        "email": "jogo@openwrt.org",
        "time": "Wed Dec 19 09:10:09 2012 -0600"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Wed Dec 19 16:15:17 2012 +0000"
      },
      "message": "of: define struct device in of_platform.h if !OF_DEVICE and !OF_ADDRESS\n\nFixes the following warning:\n\ninclude/linux/of_platform.h:106:13: warning: \u0027struct device\u0027 declared\ninside parameter list [enabled by default]\ninclude/linux/of_platform.h:106:13: warning: its scope is only this\ndefinition or declaration, which is probably not what you want [enabled\nby default]\n\nSigned-off-by: Jonas Gorski \u003cjogo@openwrt.org\u003e\nSigned-off-by: Rob Herring \u003crobherring2@gmail.com\u003e\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "7a684c452e2589f3ddd7e2d466b4f747d3715ad9",
      "tree": "fed803e7450770993575b37807ba2195eafd5b0e",
      "parents": [
        "7f2de8171ddf28fdb2ca7f9a683ee1207849f718",
        "e10e1774efbdaec54698454200619a03a01e1d64"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 19 07:55:08 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 19 07:55:08 2012 -0800"
      },
      "message": "Merge tag \u0027modules-next-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux\n\nPull module update from Rusty Russell:\n \"Nothing all that exciting; a new module-from-fd syscall for those who\n  want to verify the source of the module (ChromeOS) and/or use standard\n  IMA on it or other security hooks.\"\n\n* tag \u0027modules-next-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:\n  MODSIGN: Fix kbuild output when using default extra_certificates\n  MODSIGN: Avoid using .incbin in C source\n  modules: don\u0027t hand 0 to vmalloc.\n  module: Remove a extra null character at the top of module-\u003estrtab.\n  ASN.1: Use the ASN1_LONG_TAG and ASN1_INDEFINITE_LENGTH constants\n  ASN.1: Define indefinite length marker constant\n  moduleparam: use __UNIQUE_ID()\n  __UNIQUE_ID()\n  MODSIGN: Add modules_sign make target\n  powerpc: add finit_module syscall.\n  ima: support new kernel module syscall\n  add finit_module syscall to asm-generic\n  ARM: add finit_module syscall to ARM\n  security: introduce kernel_module_from_file hook\n  module: add flags arg to sys_finit_module()\n  module: add syscall to load module from fd\n"
    },
    {
      "commit": "7f2de8171ddf28fdb2ca7f9a683ee1207849f718",
      "tree": "d89da981ac762de3fd32e1c08ddc8041f3c37519",
      "parents": [
        "59771079c18c44e39106f0f30054025acafadb41",
        "cf66bb93e0f75e0a4ba1ec070692618fa028e994"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 19 07:52:48 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 19 07:52:48 2012 -0800"
      },
      "message": "Merge tag \u0027byteswap-for-linus-20121219\u0027 of git://git.infradead.org/users/dwmw2/byteswap\n\nPull preparatory gcc intrisics bswap patch from David Woodhouse:\n \"This single patch is effectively a no-op for now.  It enables\n  architectures to opt in to using GCC\u0027s __builtin_bswapXX() intrinsics\n  for byteswapping, and if we merge this now then the architecture\n  maintainers can enable it for their arch during the next cycle without\n  dependency issues.\n\n  It\u0027s worth making it a par-arch opt-in, because although in *theory*\n  the compiler should never do worse than hand-coded assembler (and of\n  course it also ought to do a lot better on platforms like Atom and\n  PowerPC which have load-and-swap or store-and-swap instructions), that\n  isn\u0027t always the case.  See\n\n     http://gcc.gnu.org/bugzilla/show_bug.cgi?id\u003d46453\n\n  for example.\"\n\n* tag \u0027byteswap-for-linus-20121219\u0027 of git://git.infradead.org/users/dwmw2/byteswap:\n  byteorder: allow arch to opt to use GCC intrinsics for byteswapping\n"
    },
    {
      "commit": "59771079c18c44e39106f0f30054025acafadb41",
      "tree": "9463781cf1d6f3055bc87840190cc322b59daa67",
      "parents": [
        "752451f01c4567b506bf4343082682dbb8fb30dd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 19 07:18:35 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 19 07:18:35 2012 -0800"
      },
      "message": "blk: avoid divide-by-zero with zero discard granularity\n\nCommit 8dd2cb7e880d (\"block: discard granularity might not be power of\n2\") changed a couple of \u0027binary and\u0027 operations into modulus operations.\nWhich turned the harmless case of a zero discard_granularity into a\npossible divide-by-zero.\n\nThe code also had a much more subtle bug: it was doing the modulus of a\nvalue in bytes using \u0027sector_t\u0027.  That was always conceptually wrong,\nbut didn\u0027t actually matter back when the code assumed a power-of-two\ngranularity: we only looked at the low bits anyway.\n\nBut with potentially arbitrary sector numbers, using a \u0027sector_t\u0027 to\nexpress bytes is very very wrong: depending on configuration it limits\nthe starting offset of the device to just 32 bits, and any overflow\nwould result in a wrong value if the modulus wasn\u0027t a power-of-two.\n\nSo re-write the code to not only protect against the divide-by-zero, but\nto do the starting sector arithmetic in sectors, and using the proper\ntypes.\n\n[ For any mathematicians out there: it also looks monumentally stupid to\n  do the \u0027modulo granularity\u0027 operation *twice*, never mind having a \"+\n  granularity\" in the second modulus op.\n\n  But that\u0027s the easiest way to avoid negative values or overflow, and\n  it is how the original code was done. ]\n\nReported-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nReported-by: Doug Anderson \u003cdianders@chromium.org\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Shaohua Li \u003cshli@fusionio.com\u003e\nAcked-by: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "752451f01c4567b506bf4343082682dbb8fb30dd",
      "tree": "ec2ec2989c93e567952ddc1ec879013aa2704f0a",
      "parents": [
        "673ab8783b596cda5b616b317b1a1b47480c66fd",
        "972deb4f49b5b6703d9c6117ba0aeda2180d4447"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 16:51:10 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 16:51:10 2012 -0800"
      },
      "message": "Merge branch \u0027i2c-embedded/for-next\u0027 of git://git.pengutronix.de/git/wsa/linux\n\nPull i2c-embedded changes from Wolfram Sang:\n - CBUS driver (an I2C variant)\n - continued rework of the omap driver\n - s3c2410 gets lots of fixes and gains pinctrl support\n - at91 gains DMA support\n - the GPIO muxer gains devicetree probing\n - typical fixes and additions all over\n\n* \u0027i2c-embedded/for-next\u0027 of git://git.pengutronix.de/git/wsa/linux: (45 commits)\n  i2c: omap: Remove the OMAP_I2C_FLAG_RESET_REGS_POSTIDLE flag\n  i2c: at91: add dma support\n  i2c: at91: change struct members indentation\n  i2c: at91: fix compilation warning\n  i2c: mxs: Do not disable the I2C SMBus quick mode\n  i2c: mxs: Handle i2c DMA failure properly\n  i2c: s3c2410: Remove recently introduced performance overheads\n  i2c: ocores: Move grlib set/get functions into #ifdef CONFIG_OF block\n  i2c: s3c2410: Add fix for i2c suspend/resume\n  i2c: s3c2410: Fix code to free gpios\n  i2c: i2c-cbus-gpio: introduce driver\n  i2c: ocores: Add support for the GRLIB port of the controller and use function pointers for getreg and setreg functions\n  i2c: ocores: Add irq support for sparc\n  i2c: omap: Move the remove constraint\n  ARM: dts: cfa10049: Add the i2c muxer buses to the CFA-10049\n  i2c: s3c2410: do not special case HDMIPHY stuck bus detection\n  i2c: s3c2410: use exponential back off while polling for bus idle\n  i2c: s3c2410: do not generate STOP for QUIRK_HDMIPHY\n  i2c: s3c2410: grab adapter lock while changing i2c clock\n  i2c: s3c2410: Add support for pinctrl\n  ...\n"
    },
    {
      "commit": "673ab8783b596cda5b616b317b1a1b47480c66fd",
      "tree": "d3fc9bb4279720c53d0dc69c2a34c40635cf05f3",
      "parents": [
        "d7b96ca5d08a8f2f836feb2b3b3bd721d2837a8e",
        "3cf23841b4b76eb94d3f8d0fb3627690e4431413"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:08:12 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:08:12 2012 -0800"
      },
      "message": "Merge branch \u0027akpm\u0027 (more patches from Andrew)\n\nMerge patches from Andrew Morton:\n \"Most of the rest of MM, plus a few dribs and drabs.\n\n  I still have quite a few irritating patches left around: ones with\n  dubious testing results, lack of review, ones which should have gone\n  via maintainer trees but the maintainers are slack, etc.\n\n  I need to be more activist in getting these things wrapped up outside\n  the merge window, but they\u0027re such a PITA.\"\n\n* emailed patches from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (48 commits)\n  mm/vmscan.c: avoid possible deadlock caused by too_many_isolated()\n  vmscan: comment too_many_isolated()\n  mm/kmemleak.c: remove obsolete simple_strtoul\n  mm/memory_hotplug.c: improve comments\n  mm/hugetlb: create hugetlb cgroup file in hugetlb_init\n  mm/mprotect.c: coding-style cleanups\n  Documentation: ABI: /sys/devices/system/node/\n  slub: drop mutex before deleting sysfs entry\n  memcg: add comments clarifying aspects of cache attribute propagation\n  kmem: add slab-specific documentation about the kmem controller\n  slub: slub-specific propagation changes\n  slab: propagate tunable values\n  memcg: aggregate memcg cache values in slabinfo\n  memcg/sl[au]b: shrink dead caches\n  memcg/sl[au]b: track all the memcg children of a kmem_cache\n  memcg: destroy memcg caches\n  sl[au]b: allocate objects from memcg cache\n  sl[au]b: always get the cache from its page in kmem_cache_free()\n  memcg: skip memcg kmem allocations in specified code regions\n  memcg: infrastructure to match an allocation to the right cache\n  ...\n"
    },
    {
      "commit": "7179e7bf4592ac5a7b30257a7df6259ee81e51da",
      "tree": "a3fb75a87e1a18b153c18aa7e4530d35c768e8b6",
      "parents": [
        "7d12efaea7e74bf8f4953412514e836313fa32ec"
      ],
      "author": {
        "name": "Jianguo Wu",
        "email": "wujianguo@huawei.com",
        "time": "Tue Dec 18 14:23:19 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:15 2012 -0800"
      },
      "message": "mm/hugetlb: create hugetlb cgroup file in hugetlb_init\n\nBuild kernel with CONFIG_HUGETLBFS\u003dy,CONFIG_HUGETLB_PAGE\u003dy and\nCONFIG_CGROUP_HUGETLB\u003dy, then specify hugepagesz\u003dxx boot option, system\nwill fail to boot.\n\nThis failure is caused by following code path:\n\n  setup_hugepagesz\n    hugetlb_add_hstate\n      hugetlb_cgroup_file_init\n        cgroup_add_cftypes\n          kzalloc \u003c--slab is *not available* yet\n\nFor this path, slab is not available yet, so memory allocated will be\nfailed, and cause WARN_ON() in hugetlb_cgroup_file_init().\n\nSo I move hugetlb_cgroup_file_init() into hugetlb_init().\n\n[akpm@linux-foundation.org: tweak coding-style, remove pointless __init on inlined function]\n[akpm@linux-foundation.org: fix warning]\nSigned-off-by: Jianguo Wu \u003cwujianguo@huawei.com\u003e\nSigned-off-by: Jiang Liu \u003cjiang.liu@huawei.com\u003e\nReviewed-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ebe945c27628fca03723582eba138acc2e2f3d15",
      "tree": "5998e8dd874aedf3b8873d0ffeaf658d10505655",
      "parents": [
        "92e793495597af4135d94314113bf13eafb0e663"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:23:10 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:15 2012 -0800"
      },
      "message": "memcg: add comments clarifying aspects of cache attribute propagation\n\nThis patch clarifies two aspects of cache attribute propagation.\n\nFirst, the expected context for the for_each_memcg_cache macro in\nmemcontrol.h.  The usages already in the codebase are safe.  In mm/slub.c,\nit is trivially safe because the lock is acquired right before the loop.\nIn mm/slab.c, it is less so: the lock is acquired by an outer function a\nfew steps back in the stack, so a VM_BUG_ON() is added to make sure it is\nindeed safe.\n\nA comment is also added to detail why we are returning the value of the\nparent cache and ignoring the children\u0027s when we propagate the attributes.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "107dab5c92d5f9c3afe962036e47c207363255c7",
      "tree": "17722e888fc00428ef1614a097bae82d1e9de87a",
      "parents": [
        "943a451a87d229ca564a27274b58eaeae35fde5d"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:23:05 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:14 2012 -0800"
      },
      "message": "slub: slub-specific propagation changes\n\nSLUB allows us to tune a particular cache behavior with sysfs-based\ntunables.  When creating a new memcg cache copy, we\u0027d like to preserve any\ntunables the parent cache already had.\n\nThis can be done by tapping into the store attribute function provided by\nthe allocator.  We of course don\u0027t need to mess with read-only fields.\nSince the attributes can have multiple types and are stored internally by\nsysfs, the best strategy is to issue a -\u003eshow() in the root cache, and\nthen -\u003estore() in the memcg cache.\n\nThe drawback of that, is that sysfs can allocate up to a page in buffering\nfor show(), that we are likely not to need, but also can\u0027t guarantee.  To\navoid always allocating a page for that, we can update the caches at store\ntime with the maximum attribute size ever stored to the root cache.  We\nwill then get a buffer big enough to hold it.  The corolary to this, is\nthat if no stores happened, nothing will be propagated.\n\nIt can also happen that a root cache has its tunables updated during\nnormal system operation.  In this case, we will propagate the change to\nall caches that are already active.\n\n[akpm@linux-foundation.org: tweak code to avoid __maybe_unused]\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "943a451a87d229ca564a27274b58eaeae35fde5d",
      "tree": "607a0bc1aba3911602dec1448be2ace190b5c1eb",
      "parents": [
        "749c54151a6e5b229e4ae067dbc651e54b161fbc"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:23:03 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:14 2012 -0800"
      },
      "message": "slab: propagate tunable values\n\nSLAB allows us to tune a particular cache behavior with tunables.  When\ncreating a new memcg cache copy, we\u0027d like to preserve any tunables the\nparent cache already had.\n\nThis could be done by an explicit call to do_tune_cpucache() after the\ncache is created.  But this is not very convenient now that the caches are\ncreated from common code, since this function is SLAB-specific.\n\nAnother method of doing that is taking advantage of the fact that\ndo_tune_cpucache() is always called from enable_cpucache(), which is\ncalled at cache initialization.  We can just preset the values, and then\nthings work as expected.\n\nIt can also happen that a root cache has its tunables updated during\nnormal system operation.  In this case, we will propagate the change to\nall caches that are already active.\n\nThis change will require us to move the assignment of root_cache in\nmemcg_params a bit earlier.  We need this to be already set - which\nmemcg_kmem_register_cache will do - when we reach __kmem_cache_create()\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "749c54151a6e5b229e4ae067dbc651e54b161fbc",
      "tree": "8d2d858e76e44d1bbf64439c189a57c18c8e60ae",
      "parents": [
        "22933152934f30de6f05b600c03f8a08f853a8d2"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:23:01 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:14 2012 -0800"
      },
      "message": "memcg: aggregate memcg cache values in slabinfo\n\nWhen we create caches in memcgs, we need to display their usage\ninformation somewhere.  We\u0027ll adopt a scheme similar to /proc/meminfo,\nwith aggregate totals shown in the global file, and per-group information\nstored in the group itself.\n\nFor the time being, only reads are allowed in the per-group cache.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7cf2798240a2a2230cb16a391beef98d8a7ad362",
      "tree": "989f28b74d08bf91938cc5a7fe632faa32e7542f",
      "parents": [
        "1f458cbf122288b23620ee822e19bcbb76c8d6ec"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:22:55 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:14 2012 -0800"
      },
      "message": "memcg/sl[au]b: track all the memcg children of a kmem_cache\n\nThis enables us to remove all the children of a kmem_cache being\ndestroyed, if for example the kernel module it\u0027s being used in gets\nunloaded.  Otherwise, the children will still point to the destroyed\nparent.\n\nSigned-off-by: Suleiman Souhlal \u003csuleiman@google.com\u003e\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1f458cbf122288b23620ee822e19bcbb76c8d6ec",
      "tree": "fa434b9ff6d6bdfd2daaf24fd7812cc975cba7b7",
      "parents": [
        "d79923fad95b0cdf7770e024677180c734cb7148"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:22:50 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:14 2012 -0800"
      },
      "message": "memcg: destroy memcg caches\n\nImplement destruction of memcg caches.  Right now, only caches where our\nreference counter is the last remaining are deleted.  If there are any\nother reference counters around, we just leave the caches lying around\nuntil they go away.\n\nWhen that happens, a destruction function is called from the cache code.\nCaches are only destroyed in process context, so we queue them up for\nlater processing in the general case.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d79923fad95b0cdf7770e024677180c734cb7148",
      "tree": "e7cf6e9fb151d3c0d5c773fa1ba723a71b1e9329",
      "parents": [
        "b9ce5ef49f00daf2254c6953c8d31f79aabccd34"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:22:48 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:14 2012 -0800"
      },
      "message": "sl[au]b: allocate objects from memcg cache\n\nWe are able to match a cache allocation to a particular memcg.  If the\ntask doesn\u0027t change groups during the allocation itself - a rare event,\nthis will give us a good picture about who is the first group to touch a\ncache page.\n\nThis patch uses the now available infrastructure by calling\nmemcg_kmem_get_cache() before all the cache allocations.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b9ce5ef49f00daf2254c6953c8d31f79aabccd34",
      "tree": "1da6afdbb3dc2e2d31f588dbfbf502e984af48a6",
      "parents": [
        "0e9d92f2d02d8c8320f0502307c688d07bdac2b3"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:22:46 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:14 2012 -0800"
      },
      "message": "sl[au]b: always get the cache from its page in kmem_cache_free()\n\nstruct page already has this information.  If we start chaining caches,\nthis information will always be more trustworthy than whatever is passed\ninto the function.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0e9d92f2d02d8c8320f0502307c688d07bdac2b3",
      "tree": "bbbdb6759579766c60679963497064e0db3a6f32",
      "parents": [
        "d7f25f8a2f81252d1ac134470ba1d0a287cf8fcd"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:22:42 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:14 2012 -0800"
      },
      "message": "memcg: skip memcg kmem allocations in specified code regions\n\nCreate a mechanism that skip memcg allocations during certain pieces of\nour core code.  It basically works in the same way as\npreempt_disable()/preempt_enable(): By marking a region under which all\nallocations will be accounted to the root memcg.\n\nWe need this to prevent races in early cache creation, when we\nallocate data using caches that are not necessarily created already.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nyCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d7f25f8a2f81252d1ac134470ba1d0a287cf8fcd",
      "tree": "ecde8b5d98762e15a6fa1984d098ddf86646942b",
      "parents": [
        "55007d849759252ddd573aeb36143b947202d509"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:22:40 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:14 2012 -0800"
      },
      "message": "memcg: infrastructure to match an allocation to the right cache\n\nThe page allocator is able to bind a page to a memcg when it is\nallocated.  But for the caches, we\u0027d like to have as many objects as\npossible in a page belonging to the same cache.\n\nThis is done in this patch by calling memcg_kmem_get_cache in the\nbeginning of every allocation function.  This function is patched out by\nstatic branches when kernel memory controller is not being used.\n\nIt assumes that the task allocating, which determines the memcg in the\npage allocator, belongs to the same cgroup throughout the whole process.\nMisaccounting can happen if the task calls memcg_kmem_get_cache() while\nbelonging to a cgroup, and later on changes.  This is considered\nacceptable, and should only happen upon task migration.\n\nBefore the cache is created by the memcg core, there is also a possible\nimbalance: the task belongs to a memcg, but the cache being allocated from\nis the global cache, since the child cache is not yet guaranteed to be\nready.  This case is also fine, since in this case the GFP_KMEMCG will not\nbe passed and the page allocator will not attempt any cgroup accounting.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "55007d849759252ddd573aeb36143b947202d509",
      "tree": "d042bc2f717922fb73f9d526592eeb331c2f0f70",
      "parents": [
        "2633d7a028239a738b793be5ca8fa6ac312f5793"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:22:38 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:13 2012 -0800"
      },
      "message": "memcg: allocate memory for memcg caches whenever a new memcg appears\n\nEvery cache that is considered a root cache (basically the \"original\"\ncaches, tied to the root memcg/no-memcg) will have an array that should be\nlarge enough to store a cache pointer per each memcg in the system.\n\nTheoreticaly, this is as high as 1 \u003c\u003c sizeof(css_id), which is currently\nin the 64k pointers range.  Most of the time, we won\u0027t be using that much.\n\nWhat goes in this patch, is a simple scheme to dynamically allocate such\nan array, in order to minimize memory usage for memcg caches.  Because we\nwould also like to avoid allocations all the time, at least for now, the\narray will only grow.  It will tend to be big enough to hold the maximum\nnumber of kmem-limited memcgs ever achieved.\n\nWe\u0027ll allocate it to be a minimum of 64 kmem-limited memcgs.  When we have\nmore than that, we\u0027ll start doubling the size of this array every time the\nlimit is reached.\n\nBecause we are only considering kmem limited memcgs, a natural point for\nthis to happen is when we write to the limit.  At that point, we already\nhave set_limit_mutex held, so that will become our natural synchronization\nmechanism.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2633d7a028239a738b793be5ca8fa6ac312f5793",
      "tree": "48a9f157b2c2a8218611aaade9667cacc2e018ec",
      "parents": [
        "6ccfb5bcf52bcf100fa085946f044fdbba015048"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:22:34 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:13 2012 -0800"
      },
      "message": "slab/slub: consider a memcg parameter in kmem_create_cache\n\nAllow a memcg parameter to be passed during cache creation.  When the slub\nallocator is being used, it will only merge caches that belong to the same\nmemcg.  We\u0027ll do this by scanning the global list, and then translating\nthe cache to a memcg-specific cache\n\nDefault function is created as a wrapper, passing NULL to the memcg\nversion.  We only merge caches that belong to the same memcg.\n\nA helper is provided, memcg_css_id: because slub needs a unique cache name\nfor sysfs.  Since this is visible, but not the canonical location for slab\ndata, the cache name is not used, the css_id should suffice.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ba6c496ed834a37a26fc6fc87fc9aecb0fa0014d",
      "tree": "cd229b78ca04817354865c9fdf57b564a6bf7852",
      "parents": [
        "d5bdae7d59451b9d63303f7794ef32bb76ba6330"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:22:27 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:13 2012 -0800"
      },
      "message": "slab/slub: struct memcg_params\n\nFor the kmem slab controller, we need to record some extra information in\nthe kmem_cache structure.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nSigned-off-by: Suleiman Souhlal \u003csuleiman@google.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2ad306b17c0ac5a1b1f250d5f772aeb87fdf1eba",
      "tree": "743e6092019959dd455091d75b3fab2aa7f0a2aa",
      "parents": [
        "c8b2a36fb1597e9390cf4c1a7f2dd394dc7d7b17"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:22:18 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:13 2012 -0800"
      },
      "message": "fork: protect architectures where THREAD_SIZE \u003e\u003d PAGE_SIZE against fork bombs\n\nBecause those architectures will draw their stacks directly from the page\nallocator, rather than the slab cache, we can directly pass __GFP_KMEMCG\nflag, and issue the corresponding free_pages.\n\nThis code path is taken when the architecture doesn\u0027t define\nCONFIG_ARCH_THREAD_INFO_ALLOCATOR (only ia64 seems to), and has\nTHREAD_SIZE \u003e\u003d PAGE_SIZE.  Luckily, most - if not all - of the remaining\narchitectures fall in this category.\n\nThis will guarantee that every stack page is accounted to the memcg the\nprocess currently lives on, and will have the allocations to fail if they\ngo over limit.\n\nFor the time being, I am defining a new variant of THREADINFO_GFP, not to\nmess with the other path.  Once the slab is also tracked by memcg, we can\nget rid of that flag.\n\nTested to successfully protect against :(){ :|:\u0026 };:\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nAcked-by: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a8964b9b84f99c0b1b5d7c09520f89f0700e742e",
      "tree": "468c57a6cd3bd03c91152ede7fdbcacc238341d2",
      "parents": [
        "7de37682bec35bbe0cd69b8112ef257bc5fb1c3e"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:22:09 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:13 2012 -0800"
      },
      "message": "memcg: use static branches when code not in use\n\nWe can use static branches to patch the code in or out when not used.\n\nBecause the _ACTIVE bit on kmem_accounted is only set after the increment\nis done, we guarantee that the root memcg will always be selected for kmem\ncharges until all call sites are patched (see memcg_kmem_enabled).  This\nguarantees that no mischarges are applied.\n\nStatic branch decrement happens when the last reference count from the\nkmem accounting in memcg dies.  This will only happen when the charges\ndrop down to 0.\n\nWhen that happens, we need to disable the static branch only on those\nmemcgs that enabled it.  To achieve this, we would be forced to complicate\nthe code by keeping track of which memcgs were the ones that actually\nenabled limits, and which ones got it from its parents.\n\nIt is a lot simpler just to do static_key_slow_inc() on every child\nthat is accounted.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik van Riel \u003criel@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": "50bdd430c20566b13d8bc59946184b08f5875de6",
      "tree": "15ccc558002367c3d2c6b092ccc1d49e6d14acf1",
      "parents": [
        "6a1a0d3b625a4091e7a0eb249aefc6a644385149"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:22:04 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:12 2012 -0800"
      },
      "message": "res_counter: return amount of charges after res_counter_uncharge()\n\nIt is useful to know how many charges are still left after a call to\nres_counter_uncharge.  While it is possible to issue a res_counter_read\nafter uncharge, this can be racy.\n\nIf we need, for instance, to take some action when the counters drop down\nto 0, only one of the callers should see it.  This is the same semantics\nas the atomic variables in the kernel.\n\nSince the current return value is void, we don\u0027t need to worry about\nanything breaking due to this change: nobody relied on that, and only\nusers appearing from now on will be checking this value.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Rik van Riel \u003criel@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": "6a1a0d3b625a4091e7a0eb249aefc6a644385149",
      "tree": "dcffaa5af65847680d1acdf7b4956d75a66e5885",
      "parents": [
        "7ae1e1d0f8ac2927ed7e3ca6d15e42d485903459"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:22:00 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:12 2012 -0800"
      },
      "message": "mm: allocate kernel pages to the right memcg\n\nWhen a process tries to allocate a page with the __GFP_KMEMCG flag, the\npage allocator will call the corresponding memcg functions to validate\nthe allocation.  Tasks in the root memcg can always proceed.\n\nTo avoid adding markers to the page - and a kmem flag that would\nnecessarily follow, as much as doing page_cgroup lookups for no reason,\nwhoever is marking its allocations with __GFP_KMEMCG flag is responsible\nfor telling the page allocator that this is such an allocation at\nfree_pages() time.  This is done by the invocation of\n__free_accounted_pages() and free_accounted_pages().\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: Rik van Riel \u003criel@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": "7ae1e1d0f8ac2927ed7e3ca6d15e42d485903459",
      "tree": "6b95f008400510bee9a7742ee21bf5316a59f851",
      "parents": [
        "7a64bf05b2a6fe3703062d13d389e3eb904741c6"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:21:56 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:12 2012 -0800"
      },
      "message": "memcg: kmem controller infrastructure\n\nIntroduce infrastructure for tracking kernel memory pages to a given\nmemcg.  This will happen whenever the caller includes the flag\n__GFP_KMEMCG flag, and the task belong to a memcg other than the root.\n\nIn memcontrol.h those functions are wrapped in inline acessors.  The idea\nis to later on, patch those with static branches, so we don\u0027t incur any\noverhead when no mem cgroups with limited kmem are being used.\n\nUsers of this functionality shall interact with the memcg core code\nthrough the following functions:\n\nmemcg_kmem_newpage_charge: will return true if the group can handle the\n                           allocation. At this point, struct page is not\n                           yet allocated.\n\nmemcg_kmem_commit_charge: will either revert the charge, if struct page\n                          allocation failed, or embed memcg information\n                          into page_cgroup.\n\nmemcg_kmem_uncharge_page: called at free time, will revert the charge.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7a64bf05b2a6fe3703062d13d389e3eb904741c6",
      "tree": "7de58cc32cd02f11de5a1695b650946e1d48023a",
      "parents": [
        "510fc4e11b772fd60f2c545c64d4c55abd07ce36"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:21:51 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:12 2012 -0800"
      },
      "message": "mm: add a __GFP_KMEMCG flag\n\nThis flag is used to indicate to the callees that this allocation is a\nkernel allocation in process context, and should be accounted to current\u0027s\nmemcg.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: JoonSoo Kim \u003cjs1304@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": "31564cbd77baa88405862d4aa0d00893ab1d8cb7",
      "tree": "2eaec947ab64ccfa2d94ca29bf14feb70b8a4b61",
      "parents": [
        "6842d98de7bb726dfddc719cb9ae022b26a0f2b8",
        "022573c275500e1a50889949f679d04b5446edf6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 12:46:37 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 12:46:37 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n\nPull second round of input updates from Dmitry Torokhov:\n \"As usual, there are a couple of new drivers, input core now supports\n  managed input devices (devres), a slew of drivers now have device tree\n  support and a bunch of fixes and cleanups.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (71 commits)\n  Input: walkera0701 - fix crash on startup\n  Input: matrix-keymap - provide a proper module license\n  Input: gpio_keys_polled - switch to using gpio_request_one()\n  Input: gpio_keys - switch to using gpio_request_one()\n  Input: wacom - fix touch support for Bamboo Fun CTH-461\n  Input: xpad - add a few new VID/PID combinations\n  Input: xpad - minor formatting fixes\n  Input: gpio-keys-polled - honor \u0027autorepeat\u0027 setting in platform data\n  Input: tca8418-keypad - switch to using managed resources\n  Input: tca8418_keypad - increase severity of failures in probe()\n  Input: tca8418_keypad - move device ID tables closer to where they are used\n  Input: tca8418_keypad - use dev_get_platdata() to retrieve platform data\n  Input: tca8418_keypad - use a temporary variable for parent device\n  Input: tca8418_keypad - add support for shared interrupt\n  Input: tca8418_keypad - add support for device tree bindings\n  Input: remove Compaq iPAQ H3600 (Bitsy) touchscreen driver\n  Input: bu21013_ts - add support for Device Tree booting\n  Input: bu21013_ts - move GPIO init and exit functions into the driver\n  Input: bu21013_ts - request regulator that actually exists\n  ARM: ux500: Strip out duplicate touch screen platform information\n  ...\n"
    },
    {
      "commit": "ae664dba2724e59ddd66291b895f7370e28b9a7a",
      "tree": "d6e214bdc9999bcb8b0a067053aa6934cfd9d60e",
      "parents": [
        "a2faf2fc534f57ba26bc4d613795236ed4f5fb1c",
        "08afe22c68d8c07e8e31ee6491c37f36199ba14b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 10:56:07 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 10:56:07 2012 -0800"
      },
      "message": "Merge branch \u0027slab/for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux\n\nPull SLAB changes from Pekka Enberg:\n \"This contains preparational work from Christoph Lameter and Glauber\n  Costa for SLAB memcg and cleanups and improvements from Ezequiel\n  Garcia and Joonsoo Kim.\n\n  Please note that the SLOB cleanup commit from Arnd Bergmann already\n  appears in your tree but I had also merged it myself which is why it\n  shows up in the shortlog.\"\n\n* \u0027slab/for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux:\n  mm/sl[aou]b: Common alignment code\n  slab: Use the new create_boot_cache function to simplify bootstrap\n  slub: Use statically allocated kmem_cache boot structure for bootstrap\n  mm, sl[au]b: create common functions for boot slab creation\n  slab: Simplify bootstrap\n  slub: Use correct cpu_slab on dead cpu\n  mm: fix slab.c kernel-doc warnings\n  mm/slob: use min_t() to compare ARCH_SLAB_MINALIGN\n  slab: Ignore internal flags in cache creation\n  mm/slob: Use free_page instead of put_page for page-size kmalloc allocations\n  mm/sl[aou]b: Move common kmem_cache_size() to slab.h\n  mm/slob: Use object_size field in kmem_cache_size()\n  mm/slob: Drop usage of page-\u003eprivate for storing page-sized allocations\n  slub: Commonize slab_cache field in struct page\n  sl[au]b: Process slabinfo_show in common code\n  mm/sl[au]b: Move print_slabinfo_header to slab_common.c\n  mm/sl[au]b: Move slabinfo processing to slab_common.c\n  slub: remove one code path and reduce lock contention in __slab_free()\n"
    },
    {
      "commit": "16e024f30ce96ef5fa651e2914e19d175a924cab",
      "tree": "d68106151a0b36e22625d7af7b23081a48c92e87",
      "parents": [
        "c36e0501ee91d7616a188efbf9714b1fce150032",
        "376bddd34433065aeb9b9a140870537feecf90ef"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 09:58:09 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 09:58:09 2012 -0800"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc\n\nPull powerpc update from Benjamin Herrenschmidt:\n \"The main highlight is probably some base POWER8 support.  There\u0027s more\n  to come such as transactional memory support but that will wait for\n  the next one.\n\n  Overall it\u0027s pretty quiet, or rather I\u0027ve been pretty poor at picking\n  things up from patchwork and reviewing them this time around and Kumar\n  no better on the FSL side it seems...\"\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (73 commits)\n  powerpc+of: Rename and fix OF reconfig notifier error inject module\n  powerpc: mpc5200: Add a3m071 board support\n  powerpc/512x: don\u0027t compile any platform DIU code if the DIU is not enabled\n  powerpc/mpc52xx: use module_platform_driver macro\n  powerpc+of: Export of_reconfig_notifier_[register,unregister]\n  powerpc/dma/raidengine: add raidengine device\n  powerpc/iommu/fsl: Add PAMU bypass enable register to ccsr_guts struct\n  powerpc/mpc85xx: Change spin table to cached memory\n  powerpc/fsl-pci: Add PCI controller ATMU PM support\n  powerpc/86xx: fsl_pcibios_fixup_bus requires CONFIG_PCI\n  drivers/virt: the Freescale hypervisor driver doesn\u0027t need to check MSR[GS]\n  powerpc/85xx: p1022ds: Use NULL instead of 0 for pointers\n  powerpc: Disable relocation on exceptions when kexecing\n  powerpc: Enable relocation on during exceptions at boot\n  powerpc: Move get_longbusy_msecs into hvcall.h and remove duplicate function\n  powerpc: Add wrappers to enable/disable relocation on exceptions\n  powerpc: Add set_mode hcall\n  powerpc: Setup relocation on exceptions for bare metal systems\n  powerpc: Move initial mfspr LPCR out of __init_LPCR\n  powerpc: Add relocation on exception vector handlers\n  ...\n"
    },
    {
      "commit": "2d4dce0070448bcb5ccd04553a4be4635417f565",
      "tree": "300915d2df0b8f28072d090c21d8ac084cd5f6c0",
      "parents": [
        "ea88eeac0cb8328014b53d80ca631e8dc0dc18dc",
        "cd6c5968582a273561464fe6b1e8cc8214be02df"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 09:36:34 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 09:36:34 2012 -0800"
      },
      "message": "Merge tag \u0027nfs-for-3.8-1\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\nPull NFS client updates from Trond Myklebust:\n \"Features include:\n\n   - Full audit of BUG_ON asserts in the NFS, SUNRPC and lockd client\n     code.  Remove altogether where possible, and replace with\n     WARN_ON_ONCE and appropriate error returns where not.\n   - NFSv4.1 client adds session dynamic slot table management.  There\n     is matching server side code that has been submitted to Bruce for\n     consideration.\n\n     Together, this code allows the server to dynamically manage the\n     amount of memory it allocates to the duplicate request cache for\n     each client.  It will constantly resize those caches to reserve\n     more memory for clients that are hot while shrinking caches for\n     those that are quiescent.\n\n  In addition, there are assorted bugfixes for the generic NFS write\n  code, fixes to deal with the drop_nlink() warnings, and yet another\n  fix for NFSv4 getacl.\"\n\n* tag \u0027nfs-for-3.8-1\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (106 commits)\n  SUNRPC: continue run over clients list on PipeFS event instead of break\n  NFS: Don\u0027t use SetPageError in the NFS writeback code\n  SUNRPC: variable \u0027svsk\u0027 is unused in function bc_send_request\n  SUNRPC: Handle ECONNREFUSED in xs_local_setup_socket\n  NFSv4.1: Deal effectively with interrupted RPC calls.\n  NFSv4.1: Move the RPC timestamp out of the slot.\n  NFSv4.1: Try to deal with NFS4ERR_SEQ_MISORDERED.\n  NFS: nfs_lookup_revalidate should not trust an inode with i_nlink \u003d\u003d 0\n  NFS: Fix calls to drop_nlink()\n  NFS: Ensure that we always drop inodes that have been marked as stale\n  nfs: Remove unused list nfs4_clientid_list\n  nfs: Remove duplicate function declaration in internal.h\n  NFS: avoid NULL dereference in nfs_destroy_server\n  SUNRPC handle EKEYEXPIRED in call_refreshresult\n  SUNRPC set gss gc_expiry to full lifetime\n  nfs: fix page dirtying in NFS DIO read codepath\n  nfs: don\u0027t zero out the rest of the page if we hit the EOF on a DIO READ\n  NFSv4.1: Be conservative about the client highest slotid\n  NFSv4.1: Handle NFS4ERR_BADSLOT errors correctly\n  nfs: don\u0027t extend writes to cover entire page if pagecache is invalid\n  ...\n"
    },
    {
      "commit": "ea88eeac0cb8328014b53d80ca631e8dc0dc18dc",
      "tree": "de605c1d0e7ab1e342eedad47c56061b65a6b790",
      "parents": [
        "848b81415c42ff3dc9a4204749087b015c37ef66",
        "a9add5d92b64ea57fb4c3b557c3891cdeb15fa0c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 09:32:44 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 09:32:44 2012 -0800"
      },
      "message": "Merge tag \u0027md-3.8\u0027 of git://neil.brown.name/md\n\nPull md update from Neil Brown:\n \"Mostly just little fixes.  Probably biggest part is AVX accelerated\n  RAID6 calculations.\"\n\n* tag \u0027md-3.8\u0027 of git://neil.brown.name/md:\n  md/raid5: add blktrace calls\n  md/raid5: use async_tx_quiesce() instead of open-coding it.\n  md: Use -\u003ecurr_resync as last completed request when cleanly aborting resync.\n  lib/raid6: build proper files on corresponding arch\n  lib/raid6: Add AVX2 optimized gen_syndrome functions\n  lib/raid6: Add AVX2 optimized recovery functions\n  md: Update checkpoint of resync/recovery based on time.\n  md:Add place to update -\u003erecovery_cp.\n  md.c: re-indent various \u0027switch\u0027 statements.\n  md: close race between removing and adding a device.\n  md: removed unused variable in calc_sb_1_csm.\n"
    },
    {
      "commit": "08afe22c68d8c07e8e31ee6491c37f36199ba14b",
      "tree": "875d203149b74fddb50522fd5df3d6b154f5fe1e",
      "parents": [
        "a304f836a2e6d257c1f918b3431f97ef6b33e02e",
        "4590685546a374fb0f60682ce0e3a6fd48911d46"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@kernel.org",
        "time": "Tue Dec 18 12:46:20 2012 +0200"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@kernel.org",
        "time": "Tue Dec 18 12:46:20 2012 +0200"
      },
      "message": "Merge branch \u0027slab/next\u0027 into slab/for-linus\n\nFix up a trivial merge conflict with commit baaf1dd (\"mm/slob: use\nmin_t() to compare ARCH_SLAB_MINALIGN\") that did not go through the slab\ntree.\n\nConflicts:\n\tmm/slob.c\n\nSigned-off-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\n"
    },
    {
      "commit": "848b81415c42ff3dc9a4204749087b015c37ef66",
      "tree": "391da3a73aea48632248220d2d6b8d45a88f7eae",
      "parents": [
        "992956189de58cae9f2be40585bc25105cd7c5ad",
        "6fd59a83b9261fa53eaf98fb5514abba504a3ea3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 20:58:12 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 20:58:12 2012 -0800"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nMerge misc patches from Andrew Morton:\n \"Incoming:\n\n   - lots of misc stuff\n\n   - backlight tree updates\n\n   - lib/ updates\n\n   - Oleg\u0027s percpu-rwsem changes\n\n   - checkpatch\n\n   - rtc\n\n   - aoe\n\n   - more checkpoint/restart support\n\n  I still have a pile of MM stuff pending - Pekka should be merging\n  later today after which that is good to go.  A number of other things\n  are twiddling thumbs awaiting maintainer merges.\"\n\n* emailed patches from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (180 commits)\n  scatterlist: don\u0027t BUG when we can trivially return a proper error.\n  docs: update documentation about /proc/\u003cpid\u003e/fdinfo/\u003cfd\u003e fanotify output\n  fs, fanotify: add @mflags field to fanotify output\n  docs: add documentation about /proc/\u003cpid\u003e/fdinfo/\u003cfd\u003e output\n  fs, notify: add procfs fdinfo helper\n  fs, exportfs: add exportfs_encode_inode_fh() helper\n  fs, exportfs: escape nil dereference if no s_export_op present\n  fs, epoll: add procfs fdinfo helper\n  fs, eventfd: add procfs fdinfo helper\n  procfs: add ability to plug in auxiliary fdinfo providers\n  tools/testing/selftests/kcmp/kcmp_test.c: print reason for failure in kcmp_test\n  breakpoint selftests: print failure status instead of cause make error\n  kcmp selftests: print fail status instead of cause make error\n  kcmp selftests: make run_tests fix\n  mem-hotplug selftests: print failure status instead of cause make error\n  cpu-hotplug selftests: print failure status instead of cause make error\n  mqueue selftests: print failure status instead of cause make error\n  vm selftests: print failure status instead of cause make error\n  ubifs: use prandom_bytes\n  mtd: nandsim: use prandom_bytes\n  ...\n"
    },
    {
      "commit": "9a2bdcc85d28506d4e5d4a9618fb133a3f40945d",
      "tree": "ac571e092d7542a5c5121d25b5f8f02cdfbb7a41",
      "parents": [
        "9bffdca8c64a72ac54c47a552734ab457bc720d4"
      ],
      "author": {
        "name": "Wanlong Gao",
        "email": "gaowanlong@cn.fujitsu.com",
        "time": "Mon Dec 10 16:38:33 2012 +0800"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Dec 18 15:20:43 2012 +1030"
      },
      "message": "virtio: add drv_to_virtio to make code clearly\n\nAdd drv_to_virtio wrapper to get virtio_driver from device_driver.\n\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: \"Michael S. Tsirkin\" \u003cmst@redhat.com\u003e\nSigned-off-by: Wanlong Gao \u003cgaowanlong@cn.fujitsu.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "9bffdca8c64a72ac54c47a552734ab457bc720d4",
      "tree": "c009f6f19b689ceac28122a2ea7109b4fccada95",
      "parents": [
        "40f9938c4c69183c5ceaca74b77aff636cc79623"
      ],
      "author": {
        "name": "Wanlong Gao",
        "email": "gaowanlong@cn.fujitsu.com",
        "time": "Tue Dec 11 11:04:50 2012 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Dec 18 15:20:42 2012 +1030"
      },
      "message": "virtio: use dev_to_virtio wrapper in virtio\n\nUse dev_to_virtio wrapper in virtio to make code clearly.\n\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: \"Michael S. Tsirkin\" \u003cmst@redhat.com\u003e\nSigned-off-by: Wanlong Gao \u003cgaowanlong@cn.fujitsu.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "06ca287dbac9cc19d04ac2901b8c4882c03795ff",
      "tree": "37574b40e4b18070fe92e88f722035159aa341fb",
      "parents": [
        "1ce6853aa0f8e1cc3ae811a85d50cde6ad0ef735"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 16 23:56:14 2012 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Dec 18 15:20:31 2012 +1030"
      },
      "message": "virtio: move queue_index and num_free fields into core struct virtqueue.\n\nThey\u0027re generic concepts, so hoist them.  This also avoids accessor\nfunctions (though kept around for merge with DaveM\u0027s net tree).\n\nThis goes even further than Jason Wang\u0027s 17bb6d4088 patch\n(\"virtio-ring: move queue_index to vring_virtqueue\") which moved the\nqueue_index from the specific transport.\n\nAcked-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "afc59400d6c65bad66d4ad0b2daf879cbff8e23e",
      "tree": "cc4c1c4dcf01106259d4f18d637cb2d1115ef980",
      "parents": [
        "79f77bf9a4e3dd5ead006b8f17e7c4ff07d8374e"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Dec 10 18:01:37 2012 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Dec 17 22:00:16 2012 -0500"
      },
      "message": "nfsd4: cleanup: replace rq_resused count by rq_next_page pointer\n\nIt may be a matter of personal taste, but I find this makes the code\nclearer.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "a93178a13dbd35850ec8a86b023e1f8953e80dae",
      "tree": "b1a61e91771a788c511964afb099e4dc758fac68",
      "parents": [
        "10be289d07a5327e2e7764bb3ccbffa215075103",
        "2cb85a7bd2ca6db3ab3d632d0a1b6ca3770ddcf4"
      ],
      "author": {
        "name": "Olof Johansson",
        "email": "olof@lixom.net",
        "time": "Mon Dec 17 18:39:47 2012 -0800"
      },
      "committer": {
        "name": "Olof Johansson",
        "email": "olof@lixom.net",
        "time": "Mon Dec 17 18:39:47 2012 -0800"
      },
      "message": "Merge tag \u0027omap-for-v3.8/fixes-for-merge-window-v4-signed\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes\n\nFrom Tony Lindgren:\n\nThese patches fixes a build error caused by a merge\nconflict with the fb code, few timer warnings, and longer\nterm regressions for tfp410 and omap h4 ethernet. Also\nincluded is a GPIO mode fix for the legacy mux code.\n\n* tag \u0027omap-for-v3.8/fixes-for-merge-window-v4-signed\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:\n  ARM: OMAP2+: common: remove use of vram\n  ARM: OMAP: Move plat/omap-serial.h to include/linux/platform_data/serial-omap.h\n  ARM: dts: Add build target for omap4-panda-a4\n  ARM: dts: OMAP2420: Correct H4 board memory size\n  mfd: omap-usb-host: get rid of cpu_is_omap..() macros\n  ARM: OMAP: Remove debug-devices.c\n  ARM: OMAP2420: Fix ethernet support for OMAP2420 H4\n  OMAP2+: mux: Fixed gpio mux mode analysis\n  OMAP: board-files: fix i2c_bus for tfp410\n  ARM: OMAP2+: Fix sparse warnings in timer.c\n  ARM: AM335x: Fix warning in timer.c\n  ARM: OMAP2+: Fix realtime_counter_init warning in timer.c\n"
    },
    {
      "commit": "711c7bf9914060d7aaf3c1a15f38094a5d5e748f",
      "tree": "9e77f75166d591c2a3979494253793add2df607a",
      "parents": [
        "ab49bdecc3ebb46ab661f5f05d5c5ea9606406c6"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@openvz.org",
        "time": "Mon Dec 17 16:05:08 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:27 2012 -0800"
      },
      "message": "fs, exportfs: add exportfs_encode_inode_fh() helper\n\nWe will need this helper in the next patch to provide a file handle for\ninotify marks in /proc/pid/fdinfo output.\n\nThe patch is rather providing the way to use inodes directly when dentry\nis not available (like in case of inotify system).\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andrey Vagin \u003cavagin@openvz.org\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: James Bottomley \u003cjbottomley@parallels.com\u003e\nCc: \"Aneesh Kumar K.V\" \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Matthew Helsley \u003cmatt.helsley@gmail.com\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: \"Aneesh Kumar K.V\" \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Tvrtko Ursulin \u003ctvrtko.ursulin@onelan.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "138d22b58696c506799f8de759804083ff9effae",
      "tree": "4c2af24ab90ececcfd30693cb6e17ab60e30bb86",
      "parents": [
        "cbac5542d48127b546a23d816380a7926eee1c25"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@openvz.org",
        "time": "Mon Dec 17 16:05:02 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:27 2012 -0800"
      },
      "message": "fs, epoll: add procfs fdinfo helper\n\nThis allows us to print out eventpoll target file descriptor, events and\ndata, the /proc/pid/fdinfo/fd consists of\n\n | pos:\t0\n | flags:\t02\n | tfd:        5 events:       1d data: ffffffffffffffff enabled: 1\n\n[avagin@: fix for unitialized ret variable]\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andrey Vagin \u003cavagin@openvz.org\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: James Bottomley \u003cjbottomley@parallels.com\u003e\nCc: \"Aneesh Kumar K.V\" \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Matthew Helsley \u003cmatt.helsley@gmail.com\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: \"Aneesh Kumar K.V\" \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Tvrtko Ursulin \u003ctvrtko.ursulin@onelan.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "55985dd72ab27b47530dcc8bdddd28b69f4abe8b",
      "tree": "9117b3f9bc9d46fe89ee3eccc959bab9b0e9db7b",
      "parents": [
        "2bf1cbf1c616b4dd85a3a8a715af9c5701c16a91"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@openvz.org",
        "time": "Mon Dec 17 16:04:55 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:27 2012 -0800"
      },
      "message": "procfs: add ability to plug in auxiliary fdinfo providers\n\nThis patch brings ability to print out auxiliary data associated with\nfile in procfs interface /proc/pid/fdinfo/fd.\n\nIn particular further patches make eventfd, evenpoll, signalfd and\nfsnotify to print additional information complete enough to restore\nthese objects after checkpoint.\n\nTo simplify the code we add show_fdinfo callback inside struct\nfile_operations (as Al and Pavel are proposing).\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andrey Vagin \u003cavagin@openvz.org\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: James Bottomley \u003cjbottomley@parallels.com\u003e\nCc: \"Aneesh Kumar K.V\" \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Matthew Helsley \u003cmatt.helsley@gmail.com\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: \"Aneesh Kumar K.V\" \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Tvrtko Ursulin \u003ctvrtko.ursulin@onelan.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6582c665d6b882dad8329e05749fbcf119f1ab88",
      "tree": "c40cbd6ed26fb1fea9d63d9244e6ce377d8196fd",
      "parents": [
        "496f2f93b1cc286f5a4f4f9acdc1e5314978683f"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Mon Dec 17 16:04:25 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:26 2012 -0800"
      },
      "message": "prandom: introduce prandom_bytes() and prandom_bytes_state()\n\nAdd functions to get the requested number of pseudo-random bytes.\n\nThe difference from get_random_bytes() is that it generates pseudo-random\nnumbers by prandom_u32().  It doesn\u0027t consume the entropy pool, and the\nsequence is reproducible if the same rnd_state is used.  So it is suitable\nfor generating random bytes for testing.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Artem Bityutskiy \u003cdedekind1@gmail.com\u003e\nCc: Adrian Hunter \u003cadrian.hunter@intel.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Eilon Greenstein \u003ceilong@broadcom.com\u003e\nCc: David Laight \u003cdavid.laight@aculab.com\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Robert Love \u003crobert.w.love@intel.com\u003e\nCc: Valdis Kletnieks \u003cvaldis.kletnieks@vt.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "496f2f93b1cc286f5a4f4f9acdc1e5314978683f",
      "tree": "464fa6bd115ad4e3bedc02a0b0796a9f9e055ccc",
      "parents": [
        "31279b1457f992f24eee8d45ddd647f5fce42cf6"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Mon Dec 17 16:04:23 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:26 2012 -0800"
      },
      "message": "random32: rename random32 to prandom\n\nThis renames all random32 functions to have \u0027prandom_\u0027 prefix as follows:\n\n  void prandom_seed(u32 seed);\t/* rename from srandom32() */\n  u32 prandom_u32(void);\t\t/* rename from random32() */\n  void prandom_seed_state(struct rnd_state *state, u64 seed);\n  \t\t\t\t/* rename from prandom32_seed() */\n  u32 prandom_u32_state(struct rnd_state *state);\n  \t\t\t\t/* rename from prandom32() */\n\nThe purpose of this renaming is to prevent some kernel developers from\nassuming that prandom32() and random32() might imply that only\nprandom32() was the one using a pseudo-random number generator by\nprandom32\u0027s \"p\", and the result may be a very embarassing security\nexposure.  This concern was expressed by Theodore Ts\u0027o.\n\nAnd furthermore, I\u0027m going to introduce new functions for getting the\nrequested number of pseudo-random bytes.  If I continue to use both\nprandom32 and random32 prefixes for these functions, the confusion\nis getting worse.\n\nAs a result of this renaming, \"prandom_\" is the common prefix for\npseudo-random number library.\n\nCurrently, srandom32() and random32() are preserved because it is\ndifficult to rename too many users at once.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Robert Love \u003crobert.w.love@intel.com\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Valdis Kletnieks \u003cvaldis.kletnieks@vt.edu\u003e\nCc: David Laight \u003cdavid.laight@aculab.com\u003e\nCc: Adrian Hunter \u003cadrian.hunter@intel.com\u003e\nCc: Artem Bityutskiy \u003cdedekind1@gmail.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Eilon Greenstein \u003ceilong@broadcom.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8529091e8e2ae25e0f4003086f619765ff255e4b",
      "tree": "8e0133cdaaab2455290a558fb05ff845d1ec0ae5",
      "parents": [
        "a5ba911ec3792168530d35e16a8ec3b6fc60bcb5"
      ],
      "author": {
        "name": "Josh Triplett",
        "email": "josh@joshtriplett.org",
        "time": "Mon Dec 17 16:03:24 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:23 2012 -0800"
      },
      "message": "linux/compiler.h: add __must_hold macro for functions called with a lock held\n\nlinux/compiler.h has macros to denote functions that acquire or release\nlocks, but not to denote functions called with a lock held that return\nwith the lock still held.  Add a __must_hold macro to cover that case.\n\nSigned-off-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nReported-by: Ed Cashin \u003cecashin@coraid.com\u003e\nTested-by: Ed Cashin \u003cecashin@coraid.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a5ba911ec3792168530d35e16a8ec3b6fc60bcb5",
      "tree": "1dbffcb920aabeb12dc166aa11299bbddba8a245",
      "parents": [
        "d740269867021faf4ce38a449353d2b986c34a67"
      ],
      "author": {
        "name": "Gao feng",
        "email": "gaofeng@cn.fujitsu.com",
        "time": "Mon Dec 17 16:03:22 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:23 2012 -0800"
      },
      "message": "pidns: remove unused is_container_init()\n\nSince commit 1cdcbec1a337 (\"CRED: Neuter sys_capset()\")\nis_container_init() has no callers.\n\nSigned-off-by: Gao feng \u003cgaofeng@cn.fujitsu.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d740269867021faf4ce38a449353d2b986c34a67",
      "tree": "e0476e1be1dfb6e852adbaa8fb72ecea87bdb088",
      "parents": [
        "8d238027b87e654be552eabdf492042a34c5c300"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "keescook@chromium.org",
        "time": "Mon Dec 17 16:03:20 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:23 2012 -0800"
      },
      "message": "exec: use -ELOOP for max recursion depth\n\nTo avoid an explosion of request_module calls on a chain of abusive\nscripts, fail maximum recursion with -ELOOP instead of -ENOEXEC. As soon\nas maximum recursion depth is hit, the error will fail all the way back\nup the chain, aborting immediately.\n\nThis also has the side-effect of stopping the user\u0027s shell from attempting\nto reexecute the top-level file as a shell script. As seen in the\ndash source:\n\n        if (cmd !\u003d path_bshell \u0026\u0026 errno \u003d\u003d ENOEXEC) {\n                *argv-- \u003d cmd;\n                *argv \u003d cmd \u003d path_bshell;\n                goto repeat;\n        }\n\nThe above logic was designed for running scripts automatically that lacked\nthe \"#!\" header, not to re-try failed recursion. On a legitimate -ENOEXEC,\nthings continue to behave as the shell expects.\n\nAdditionally, when tracking recursion, the binfmt handlers should not be\ninvolved. The recursion being tracked is the depth of calls through\nsearch_binary_handler(), so that function should be exclusively responsible\nfor tracking the depth.\n\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: halfdog \u003cme@halfdog.net\u003e\nCc: P J P \u003cppandit@redhat.com\u003e\nCc: Alexander 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": "992fb6e170639b0849bace8e49bf31bd37c4123c",
      "tree": "29f54e489ea095aba284fd4b1feb7201347eb70c",
      "parents": [
        "462e471107624fe9bd8b6353ac13e06305c3f3fd"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Dec 17 16:03:07 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:22 2012 -0800"
      },
      "message": "ptrace: introduce PTRACE_O_EXITKILL\n\nPtrace jailers want to be sure that the tracee can never escape\nfrom the control. However if the tracer dies unexpectedly the\ntracee continues to run in potentially unsafe mode.\n\nAdd the new ptrace option PTRACE_O_EXITKILL. If the tracer exits\nit sends SIGKILL to every tracee which has this bit set.\n\nNote that the new option is not equal to the last-option \u003c\u003c 1.  Because\ncurrently all options have an event, and the new one starts the eventless\ngroup.  It uses the random 20 bit, so we have the room for 12 more events,\nbut we can also add the new eventless options below this one.\n\nSuggested by Amnon Shiloh.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nTested-by: Amnon Shiloh \u003cu3557@miso.sublimeip.com\u003e\nCc: Denys Vlasenko \u003cdvlasenk@redhat.com\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nCc: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nCc: Chris Evans \u003cscarybeasts@gmail.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4c925d6031f719fad6ea8b1c94a636f4c0fea39b",
      "tree": "a27265311ff47951ab00d4df3b49350c1ae898ba",
      "parents": [
        "543f56c19c3e926d33b50a6bcbc37c408631601e"
      ],
      "author": {
        "name": "Eldad Zack",
        "email": "eldad@fogrefinery.com",
        "time": "Mon Dec 17 16:03:04 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:22 2012 -0800"
      },
      "message": "kstrto*: add documentation\n\nAs Bruce Fields pointed out, kstrto* is currently lacking kerneldoc\ncomments.  This patch adds kerneldoc comments to common variants of\nkstrto*: kstrto(u)l, kstrto(u)ll and kstrto(u)int.\n\nSigned-off-by: Eldad Zack \u003celdad@fogrefinery.com\u003e\nCc: J. Bruce Fields \u003cbfields@fieldses.org\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Rob Landley \u003crob@landley.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0ad50c3896afbb3c103409a18260e601b87a744c",
      "tree": "3a59c1e90b3ee62daf18bc9689cf454a31f164be",
      "parents": [
        "918854a65e856574523d94763ef2a2b48ad55a25"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Mon Dec 17 16:01:45 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:18 2012 -0800"
      },
      "message": "compat: generic compat_sys_sched_rr_get_interval() implementation\n\nThis function is used by sparc, powerpc tile and arm64 for compat support.\n The patch adds a generic implementation with a wrapper for PowerPC to do\nthe u32-\u003eint sign extension.\n\nThe reason for a single patch covering powerpc, tile, sparc and arm64 is\nto keep it bisectable, otherwise kernel building may fail with mismatched\nfunction declarations.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nAcked-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e  [for tile]\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Alexander 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": "8ebe34731a0d1a9d89b536430afd98d0fadec99b",
      "tree": "bb378645318ce7c9b1b5a389a5e522835916cbed",
      "parents": [
        "9390ef0c85fd065f01045fef708b046c98cda04c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Dec 17 16:01:38 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:18 2012 -0800"
      },
      "message": "percpu_rw_semaphore: add lockdep annotations\n\nAdd lockdep annotations.  Not only this can help to find the potential\nproblems, we do not want the false warnings if, say, the task takes two\ndifferent percpu_rw_semaphore\u0027s for reading.  IOW, at least -\u003erw_sem\nshould not use a single class.\n\nThis patch exposes this internal lock to lockdep so that it represents the\nwhole percpu_rw_semaphore.  This way we do not need to add another \"fake\"\n-\u003elockdep_map and lock_class_key.  More importantly, this also makes the\noutput from lockdep much more understandable if it finds the problem.\n\nIn short, with this patch from lockdep pov percpu_down_read() and\npercpu_up_read() acquire/release -\u003erw_sem for reading, this matches the\nactual semantics.  This abuses __up_read() but I hope this is fine and in\nfact I\u0027d like to have down_read_no_lockdep() as well,\npercpu_down_read_recursive_readers() will need it.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Anton Arapov \u003canton@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Michal Marek \u003cmmarek@suse.cz\u003e\nCc: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Srikar Dronamraju \u003csrikar@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"
    }
  ],
  "next": "9390ef0c85fd065f01045fef708b046c98cda04c"
}
