)]}'
{
  "log": [
    {
      "commit": "b7f9a11a6cf1ea9ee6be3eb2b90d91327a09ad14",
      "tree": "7d5a5f469aea8ac2b3e1ab41e05a6abafcb2b694",
      "parents": [
        "51a7b448d4134e3e8eec633435e3e8faee14a828"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed May 02 09:59:21 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 01 12:58:48 2012 -0400"
      },
      "message": "new helper: sigmask_to_save()\n\nreplace boilerplate \"should we use -\u003esaved_sigmask or -\u003eblocked?\"\nwith calls of obvious inlined helper...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "51a7b448d4134e3e8eec633435e3e8faee14a828",
      "tree": "8fc58560ffee1c944ec5e198029d5c2e6f7c0bd3",
      "parents": [
        "4ebefe3ec729003443daf153ed6fad1739271283"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon May 21 23:33:55 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 01 12:58:47 2012 -0400"
      },
      "message": "new helper: restore_saved_sigmask()\n\nfirst fruits of ..._restore_sigmask() helpers: now we can take\nboilerplate \"signal didn\u0027t have a handler, clear RESTORE_SIGMASK\nand restore the blocked mask from -\u003esaved_mask\" into a common\nhelper.  Open-coded instances switched...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4ebefe3ec729003443daf153ed6fad1739271283",
      "tree": "cea05e7086314d200886fd3b76867e8fb5e6574b",
      "parents": [
        "754421c8cab1a568be844a7069fe04c1cf6391b8"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Apr 26 22:29:20 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 01 12:58:47 2012 -0400"
      },
      "message": "new helpers: {clear,test,test_and_clear}_restore_sigmask()\n\nhelpers parallel to set_restore_sigmask(), used in the next commits\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "754421c8cab1a568be844a7069fe04c1cf6391b8",
      "tree": "71fa1f54e664ff45289fccfa946747a18e20727f",
      "parents": [
        "fb21affa49204acd409328415b49bfe90136653c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Apr 26 18:31:00 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 01 12:58:46 2012 -0400"
      },
      "message": "HAVE_RESTORE_SIGMASK is defined on all architectures now\n\nEveryone either defines it in arch thread_info.h or has TIF_RESTORE_SIGMASK\nand picks default set_restore_sigmask() in linux/thread_info.h.  Kill the\nifdefs, slap #error in linux/thread_info.h to catch breakage when new ones\nget merged.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "fb21affa49204acd409328415b49bfe90136653c",
      "tree": "3535dbe0c0aad049a38cadfcffe78409397a1b32",
      "parents": [
        "a00b6151a2ae4c52576c35d3998e144a993d50b8",
        "f23ca335462e3c84f13270b9e65f83936068ec2c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 18:47:30 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 18:47:30 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal\n\nPull second pile of signal handling patches from Al Viro:\n \"This one is just task_work_add() series + remaining prereqs for it.\n\n  There probably will be another pull request from that tree this\n  cycle - at least for helpers, to get them out of the way for per-arch\n  fixes remaining in the tree.\"\n\nFix trivial conflict in kernel/irq/manage.c: the merge of Andrew\u0027s pile\nhad brought in commit 97fd75b7b8e0 (\"kernel/irq/manage.c: use the\npr_foo() infrastructure to prefix printks\") which changed one of the\npr_err() calls that this merge moves around.\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal:\n  keys: kill task_struct-\u003ereplacement_session_keyring\n  keys: kill the dummy key_replace_session_keyring()\n  keys: change keyctl_session_to_parent() to use task_work_add()\n  genirq: reimplement exit_irq_thread() hook via task_work_add()\n  task_work_add: generic process-context callbacks\n  avr32: missed _TIF_NOTIFY_RESUME on one of do_notify_resume callers\n  parisc: need to check NOTIFY_RESUME when exiting from syscall\n  move key_repace_session_keyring() into tracehook_notify_resume()\n  TIF_NOTIFY_RESUME is defined on all targets now\n"
    },
    {
      "commit": "a00b6151a2ae4c52576c35d3998e144a993d50b8",
      "tree": "fc312be05c4deb4dead7a6afa09e88017d3a0146",
      "parents": [
        "08615d7d85e5aa02c05bf6c4dde87d940e7f85f6",
        "b108fe6b08f3f61c2c465649b20b7d4b4c185728"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 18:18:11 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 18:18:11 2012 -0700"
      },
      "message": "Merge branch \u0027for-3.5-take-2\u0027 of git://linux-nfs.org/~bfields/linux\n\nPull nfsd update from Bruce Fields.\n\n* \u0027for-3.5-take-2\u0027 of git://linux-nfs.org/~bfields/linux: (23 commits)\n  nfsd: trivial: use SEEK_SET instead of 0 in vfs_llseek\n  SUNRPC: split upcall function to extract reusable parts\n  nfsd: allocate id-to-name and name-to-id caches in per-net operations.\n  nfsd: make name-to-id cache allocated per network namespace context\n  nfsd: make id-to-name cache allocated per network namespace context\n  nfsd: pass network context to idmap init/exit functions\n  nfsd: allocate export and expkey caches in per-net operations.\n  nfsd: make expkey cache allocated per network namespace context\n  nfsd: make export cache allocated per network namespace context\n  nfsd: pass pointer to export cache down to stack wherever possible.\n  nfsd: pass network context to export caches init/shutdown routines\n  Lockd: pass network namespace to creation and destruction routines\n  NFSd: remove hard-coded dereferences to name-to-id and id-to-name caches\n  nfsd: pass pointer to expkey cache down to stack wherever possible.\n  nfsd: use hash table from cache detail in nfsd export seq ops\n  nfsd: pass svc_export_cache pointer as private data to \"exports\" seq file ops\n  nfsd: use exp_put() for svc_export_cache put\n  nfsd: use cache detail pointer from svc_export structure on cache put\n  nfsd: add link to owner cache detail to svc_export structure\n  nfsd: use passed cache_detail pointer expkey_parse()\n  ...\n"
    },
    {
      "commit": "08615d7d85e5aa02c05bf6c4dde87d940e7f85f6",
      "tree": "18906149d313d25914160aca21cedf54b3a7e818",
      "parents": [
        "9fdadb2cbaf4b482dfd6086e8bd3d2db071a1702",
        "0a4dd35c67b144d8ef9432120105f1aab9293ee9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 18:10:18 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 18:10:18 2012 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nMerge misc patches from Andrew Morton:\n\n - the \"misc\" tree - stuff from all over the map\n\n - checkpatch updates\n\n - fatfs\n\n - kmod changes\n\n - procfs\n\n - cpumask\n\n - UML\n\n - kexec\n\n - mqueue\n\n - rapidio\n\n - pidns\n\n - some checkpoint-restore feature work.  Reluctantly.  Most of it\n   delayed a release.  I\u0027m still rather worried that we don\u0027t have a\n   clear roadmap to completion for this work.\n\n* emailed from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (78 patches)\n  kconfig: update compression algorithm info\n  c/r: prctl: add ability to set new mm_struct::exe_file\n  c/r: prctl: extend PR_SET_MM to set up more mm_struct entries\n  c/r: procfs: add arg_start/end, env_start/end and exit_code members to /proc/$pid/stat\n  syscalls, x86: add __NR_kcmp syscall\n  fs, proc: introduce /proc/\u003cpid\u003e/task/\u003ctid\u003e/children entry\n  sysctl: make kernel.ns_last_pid control dependent on CHECKPOINT_RESTORE\n  aio/vfs: cleanup of rw_copy_check_uvector() and compat_rw_copy_check_uvector()\n  eventfd: change int to __u64 in eventfd_signal()\n  fs/nls: add Apple NLS\n  pidns: make killed children autoreap\n  pidns: use task_active_pid_ns in do_notify_parent\n  rapidio/tsi721: add DMA engine support\n  rapidio: add DMA engine support for RIO data transfers\n  ipc/mqueue: add rbtree node caching support\n  tools/selftests: add mq_perf_tests\n  ipc/mqueue: strengthen checks on mqueue creation\n  ipc/mqueue: correct mq_attr_ok test\n  ipc/mqueue: improve performance of send/recv\n  selftests: add mq_open_tests\n  ...\n"
    },
    {
      "commit": "b32dfe377102ce668775f8b6b1461f7ad428f8b6",
      "tree": "f89be6bd34eb757c471f3ca506e0ce92224f9bc5",
      "parents": [
        "fe8c7f5cbf91124987106faa3bdf0c8b955c4cf7"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@openvz.org",
        "time": "Thu May 31 16:26:46 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:32 2012 -0700"
      },
      "message": "c/r: prctl: add ability to set new mm_struct::exe_file\n\nWhen we do restore we would like to have a way to setup a former\nmm_struct::exe_file so that /proc/pid/exe would point to the original\nexecutable file a process had at checkpoint time.\n\nFor this the PR_SET_MM_EXE_FILE code is introduced.  This option takes a\nfile descriptor which will be set as a source for new /proc/$pid/exe\nsymlink.\n\nNote it allows to change /proc/$pid/exe if there are no VM_EXECUTABLE\nvmas present for current process, simply because this feature is a special\nto C/R and mm::num_exe_file_vmas become meaningless after that.\n\nTo minimize the amount of transition the /proc/pid/exe symlink might have,\nthis feature is implemented in one-shot manner.  Thus once changed the\nsymlink can\u0027t be changed again.  This should help sysadmins to monitor the\nsymlinks over all process running in a system.\n\nIn particular one could make a snapshot of processes and ring alarm if\nthere unexpected changes of /proc/pid/exe\u0027s in a system.\n\nNote -- this feature is available iif CONFIG_CHECKPOINT_RESTORE is set and\nthe caller must have CAP_SYS_RESOURCE capability granted, otherwise the\nrequest to change symlink will be rejected.\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nReviewed-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nCc: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fe8c7f5cbf91124987106faa3bdf0c8b955c4cf7",
      "tree": "3ddb0013465d7cd09ef6bc2fab18cb59055a309b",
      "parents": [
        "5b172087f99189416d5f47fd7ab5e6fb762a9ba3"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@openvz.org",
        "time": "Thu May 31 16:26:45 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:32 2012 -0700"
      },
      "message": "c/r: prctl: extend PR_SET_MM to set up more mm_struct entries\n\nDuring checkpoint we dump whole process memory to a file and the dump\nincludes process stack memory.  But among stack data itself, the stack\ncarries additional parameters such as command line arguments, environment\ndata and auxiliary vector.\n\nSo when we do restore procedure and once we\u0027ve restored stack data itself\nwe need to setup mm_struct::arg_start/end, env_start/end, so restored\nprocess would be able to find command line arguments and environment data\nit had at checkpoint time.  The same applies to auxiliary vector.\n\nFor this reason additional PR_SET_MM_(ARG_START | ARG_END | ENV_START |\nENV_END | AUXV) codes are introduced.\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nAcked-by: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Andrew Vagin \u003cavagin@openvz.org\u003e\nCc: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nCc: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nCc: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@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": "d97b46a64674a267bc41c9e16132ee2a98c3347d",
      "tree": "316f77d212c84aef226684eb05d5d33f40743ac9",
      "parents": [
        "818411616baf46ceba0cff6f05af3a9b294734f7"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@openvz.org",
        "time": "Thu May 31 16:26:44 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:32 2012 -0700"
      },
      "message": "syscalls, x86: add __NR_kcmp syscall\n\nWhile doing the checkpoint-restore in the user space one need to determine\nwhether various kernel objects (like mm_struct-s of file_struct-s) are\nshared between tasks and restore this state.\n\nThe 2nd step can be solved by using appropriate CLONE_ flags and the\nunshare syscall, while there\u0027s currently no ways for solving the 1st one.\n\nOne of the ways for checking whether two tasks share e.g.  mm_struct is to\nprovide some mm_struct ID of a task to its proc file, but showing such\ninfo considered to be not that good for security reasons.\n\nThus after some debates we end up in conclusion that using that named\n\u0027comparison\u0027 syscall might be the best candidate.  So here is it --\n__NR_kcmp.\n\nIt takes up to 5 arguments - the pids of the two tasks (which\ncharacteristics should be compared), the comparison type and (in case of\ncomparison of files) two file descriptors.\n\nLookups for pids are done in the caller\u0027s PID namespace only.\n\nAt moment only x86 is supported and tested.\n\n[akpm@linux-foundation.org: fix up selftests, warnings]\n[akpm@linux-foundation.org: include errno.h]\n[akpm@linux-foundation.org: tweak comment text]\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nCc: Andrey Vagin \u003cavagin@openvz.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: Pekka Enberg \u003cpenberg@kernel.org\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Valdis.Kletnieks@vt.edu\nCc: Michal Marek \u003cmmarek@suse.cz\u003e\nCc: Frederic Weisbecker \u003cfweisbec@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": "ac34ebb3a67e699edcb5ac72f19d31679369dfaa",
      "tree": "21785208005952128545c0d7804c2dddf177766f",
      "parents": [
        "ee62c6b2dc93c09585b51fad18449dc5edb9977f"
      ],
      "author": {
        "name": "Christopher Yeoh",
        "email": "cyeoh@au1.ibm.com",
        "time": "Thu May 31 16:26:42 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:32 2012 -0700"
      },
      "message": "aio/vfs: cleanup of rw_copy_check_uvector() and compat_rw_copy_check_uvector()\n\nA cleanup of rw_copy_check_uvector and compat_rw_copy_check_uvector after\nchanges made to support CMA in an earlier patch.\n\nRather than having an additional check_access parameter to these\nfunctions, the first paramater type is overloaded to allow the caller to\nspecify CHECK_IOVEC_ONLY which means check that the contents of the iovec\nare valid, but do not check the memory that they point to.  This is used\nby process_vm_readv/writev where we need to validate that a iovec passed\nto the syscall is valid but do not want to check the memory that it points\nto at this point because it refers to an address space in another process.\n\nSigned-off-by: Chris Yeoh \u003cyeohc@au1.ibm.com\u003e\nReviewed-by: Oleg Nesterov \u003coleg@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": "ee62c6b2dc93c09585b51fad18449dc5edb9977f",
      "tree": "538f5338f6a00d1a4cee9e69ba74082747a452aa",
      "parents": [
        "71ca97da9d027009d318d319cbacf54a72f666c1"
      ],
      "author": {
        "name": "Sha Zhengju",
        "email": "handai.szj@taobao.com",
        "time": "Thu May 31 16:26:41 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:32 2012 -0700"
      },
      "message": "eventfd: change int to __u64 in eventfd_signal()\n\neventfd_ctx-\u003ecount is an __u64 counter which is allowed to reach\nULLONG_MAX.  eventfd_write() adds a __u64 value to \"count\", but the kernel\nside eventfd_signal() only adds an int value to it.  Make them consistent.\n\n[akpm@linux-foundation.org: update interface documentation]\nSigned-off-by: Sha Zhengju \u003chandai.szj@taobao.com\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e42d98ebe7d754a2c9fbccd6186721d3ca8679f6",
      "tree": "eed734672410f2eb8fab07fbd14f88bfaf8a882f",
      "parents": [
        "ce2d52cc1364a22fc1a161781e60ee3cbb499a6d"
      ],
      "author": {
        "name": "Alexandre Bounine",
        "email": "alexandre.bounine@idt.com",
        "time": "Thu May 31 16:26:38 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:31 2012 -0700"
      },
      "message": "rapidio: add DMA engine support for RIO data transfers\n\nAdds DMA Engine framework support into RapidIO subsystem.\n\nUses DMA Engine DMA_SLAVE interface to generate data transfers to/from\nremote RapidIO target devices.\n\nIntroduces RapidIO-specific wrapper for prep_slave_sg() interface with an\nextra parameter to pass target specific information.\n\nUses scatterlist to describe local data buffer.  Address flat data buffer\non a remote side.\n\nSigned-off-by: Alexandre Bounine \u003calexandre.bounine@idt.com\u003e\nCc: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-by: Vinod Koul \u003cvinod.koul@linux.intel.com\u003e\nCc: Li Yang \u003cleoli@freescale.com\u003e\nCc: Matt Porter \u003cmporter@kernel.crashing.org\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cef0184c115e5e4e10498f6548d9526465e72478",
      "tree": "752c4116e0f93328239db9ff2c2ed730fef3ce0e",
      "parents": [
        "fd1f87d24d492fda464bedf10a5dd5174ff9b065"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Thu May 31 16:26:33 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:31 2012 -0700"
      },
      "message": "mqueue: separate mqueue default value from maximum value\n\nCommit b231cca4381e (\"message queues: increase range limits\") changed\nmqueue default value when attr parameter is specified NULL from hard\ncoded value to fs.mqueue.{msg,msgsize}_max sysctl value.\n\nThis made large side effect.  When user need to use two mqueue\napplications 1) using !NULL attr parameter and it require big message\nsize and 2) using NULL attr parameter and only need small size message,\napp (1) require to raise fs.mqueue.msgsize_max and app (2) consume large\nmemory size even though it doesn\u0027t need.\n\nDoug Ledford propsed to switch back it to static hard coded value.\nHowever it also has a compatibility problem.  Some applications might\nstarted depend on the default value is tunable.\n\nThe solution is to separate default value from maximum value.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Doug Ledford \u003cdledford@redhat.com\u003e\nAcked-by: Doug Ledford \u003cdledford@redhat.com\u003e\nAcked-by: Joe Korty \u003cjoe.korty@ccur.com\u003e\nCc: Amerigo Wang \u003camwang@redhat.com\u003e\nAcked-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Jiri Slaby \u003cjslaby@suse.cz\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e6315bb154e778391ce64b194756bd3d108dadf6",
      "tree": "6b0df724ed5e52058f61261d93f807ea0ee77d11",
      "parents": [
        "5b5c4d1a1440e94994c73dddbad7be0676cd8b9a"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Thu May 31 16:26:31 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:31 2012 -0700"
      },
      "message": "mqueue: revert bump up DFLT_*MAX\n\nMqueue limitation is slightly naieve parameter likes other ipcs because\nunprivileged user can consume kernel memory by using ipcs.\n\nThus, too aggressive raise bring us security issue.  Example, current\nsetting allow evil unprivileged user use 256GB (\u003d 256 * 1024 * 1024*1024)\nand it\u0027s enough large to system will belome unresponsive.  Don\u0027t do that.\n\nInstead, every admin should adjust the knobs for their own systems.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Doug Ledford \u003cdledford@redhat.com\u003e\nAcked-by: Joe Korty \u003cjoe.korty@ccur.com\u003e\nCc: Amerigo Wang \u003camwang@redhat.com\u003e\nAcked-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Jiri Slaby \u003cjslaby@suse.cz\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5b5c4d1a1440e94994c73dddbad7be0676cd8b9a",
      "tree": "fe00ef0f888fbfc40b7542fd8a66cf3368d3d2c7",
      "parents": [
        "02967ea08ede0f8cc7e0526aedffdae65a099b07"
      ],
      "author": {
        "name": "Doug Ledford",
        "email": "dledford@redhat.com",
        "time": "Thu May 31 16:26:30 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:30 2012 -0700"
      },
      "message": "ipc/mqueue: update maximums for the mqueue subsystem\n\nCommit b231cca4381e (\"message queues: increase range limits\") changed the\nmaximum size of a message in a message queue from INT_MAX to 8192*128.\nUnfortunately, we had customers that relied on a size much larger than\n8192*128 on their production systems.  After reviewing POSIX, we found\nthat it is silent on the maximum message size.  We did find a couple other\nareas in which it was not silent.  Fix up the mqueue maximums so that the\ncustomer\u0027s system can continue to work, and document both the POSIX and\nreal world requirements in ipc_namespace.h so that we don\u0027t have this\nissue crop back up.\n\nAlso, commit 9cf18e1dd74cd0 (\"ipc: HARD_MSGMAX should be higher not lower\non 64bit\") fiddled with HARD_MSGMAX without realizing that the number was\nintentionally in place to limit the msg queue depth to one that was small\nenough to kmalloc an array of pointers (hence why we divided 128k by\nsizeof(long)).  If we wish to meet POSIX requirements, we have no choice\nbut to change our allocation to a vmalloc instead (at least for the large\nqueue size case).  With that, it\u0027s possible to increase our allowed\nmaximum to the POSIX requirements (or more if we choose).\n\n[sfr@canb.auug.org.au: using vmalloc requires including vmalloc.h]\nSigned-off-by: Doug Ledford \u003cdledford@redhat.com\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Amerigo Wang \u003camwang@redhat.com\u003e\nCc: Joe Korty \u003cjoe.korty@ccur.com\u003e\nCc: Jiri Slaby \u003cjslaby@suse.cz\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "858ee3784e8105467f1f3017f4ece51cb51d4830",
      "tree": "c95f55ff8bd29be3a8648acc21118a47b07d117b",
      "parents": [
        "93e6f119c0ce8a1bba6e81dc8dd97d67be360844"
      ],
      "author": {
        "name": "Doug Ledford",
        "email": "dledford@redhat.com",
        "time": "Thu May 31 16:26:29 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:30 2012 -0700"
      },
      "message": "ipc/mqueue: switch back to using non-max values on create\n\nCommit b231cca4381e (\"message queues: increase range limits\") changed\nhow we create a queue that does not include an attr struct passed to\nopen so that it creates the queue with whatever the maximum values are.\nHowever, if the admin has set the maximums to allow flexibility in\ncreating a queue (aka, both a large size and large queue are allowed,\nbut combined they create a queue too large for the RLIMIT_MSGQUEUE of\nthe user), then attempts to create a queue without an attr struct will\nfail.  Switch back to using acceptable defaults regardless of what the\nmaximums are.\n\nNote: so far, we only know of a few applications that rely on this\nbehavior (specifically, set the maximums in /proc, then run the\napplication which calls mq_open() without passing in an attr struct, and\nthe application expects the newly created message queue to have the\nmaximum sizes that were set in /proc used on the mq_open() call, and all\nof those applications that we know of are actually part of regression\ntest suites that were coded to do something like this:\n\nfor size in 4096 65536 $((1024 * 1024)) $((16 * 1024 * 1024)); do\n\techo $size \u003e /proc/sys/fs/mqueue/msgsize_max\n\tmq_open || echo \"Error opening mq with size $size\"\ndone\n\nThese test suites that depend on any behavior like this are broken.  The\nconcept that programs should rely upon the system wide maximum in order\nto get their desired results instead of simply using a attr struct to\nspecify what they want is fundamentally unfriendly programming practice\nfor any multi-tasking OS.\n\nFixing this will break those few apps that we know of (and those app\nauthors recognize the brokenness of their code and the need to fix it).\nHowever, the following patch \"mqueue: separate mqueue default value\"\nallows a workaround in the form of new knobs for the default msg queue\ncreation parameters for any software out there that we don\u0027t already\nknow about that might rely on this behavior at the moment.\n\nSigned-off-by: Doug Ledford \u003cdledford@redhat.com\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Amerigo Wang \u003camwang@redhat.com\u003e\nCc: Joe Korty \u003cjoe.korty@ccur.com\u003e\nCc: Jiri Slaby \u003cjslaby@suse.cz\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "93e6f119c0ce8a1bba6e81dc8dd97d67be360844",
      "tree": "6d5131b4134d7aa6ba680a6a55f016bd6e03f319",
      "parents": [
        "29a5c67e7a78815fda0567a867adce467f6e6e5a"
      ],
      "author": {
        "name": "Doug Ledford",
        "email": "dledford@redhat.com",
        "time": "Thu May 31 16:26:28 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:30 2012 -0700"
      },
      "message": "ipc/mqueue: cleanup definition names and locations\n\nSince commit b231cca4381e (\"message queues: increase range limits\") on\nOct 18, 2008, calls to mq_open() that did not pass in an attribute\nstruct and expected to get default values for the size of the queue and\nthe max message size now get the system wide maximums instead of\nhardwired defaults like they used to get.\n\nThis was uncovered when one of the earlier patches in this patch set\nincreased the default system wide maximums at the same time it increased\nthe hard ceiling on the system wide maximums (a customer specifically\nneeded the hard ceiling brought back up, the new ceiling that commit\nb231cca4381e introduced was too low for their production systems).  By\nincreasing the default maximums and not realising they were tied to any\nattempt to create a message queue without an attribute struct, I had\ninadvertently made it such that all message queue creation attempts\nwithout an attribute struct were failing because the new default\nmaximums would create a queue that exceeded the default rlimit for\nmessage queue bytes.\n\nAs a result, the system wide defaults were brought back down to their\nprevious levels, and the system wide ceilings on the maximums were\nraised to meet the customer\u0027s needs.  However, the fact that the no\nattribute struct behavior of mq_open() could be broken by changing the\nsystem wide maximums for message queues was seen as fundamentally broken\nitself.  So we hardwired the no attribute case back like it used to be.\nBut, then we realized that on the very off chance that some piece of\nsoftware in the wild depended on that behavior, we could work around\nthat issue by adding two new knobs to /proc that allowed setting the\ndefaults for message queues created without an attr struct separately\nfrom the system wide maximums.\n\nWhat is not an option IMO is to leave the current behavior in place.  No\npiece of software should ever rely on setting the system wide maximums\nin order to get a desired message queue.  Such a reliance would be so\nfundamentally multitasking OS unfriendly as to not really be tolerable.\nFortunately, we don\u0027t know of any software in the wild that uses this\nexcept for a regression test program that caught the issue in the first\nplace.  If there is though, we have made accommodations with the two new\n/proc knobs (and that\u0027s all the accommodations such fundamentally broken\nsoftware can be allowed)..\n\nThis patch:\n\nThe various defines for minimums and maximums of the sysctl controllable\nmqueue values are scattered amongst different files and named\ninconsistently.  Move them all into ipc_namespace.h and make them have\nconsistent names.  Additionally, make the number of queues per namespace\nalso have a minimum and maximum and use the same sysctl function as the\nother two settable variables.\n\nSigned-off-by: Doug Ledford \u003cdledford@redhat.com\u003e\nAcked-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Amerigo Wang \u003camwang@redhat.com\u003e\nCc: Joe Korty \u003cjoe.korty@ccur.com\u003e\nCc: Jiri Slaby \u003cjslaby@suse.cz\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "29a5c67e7a78815fda0567a867adce467f6e6e5a",
      "tree": "79033c85c4d2a4875e4b17e292f015495b97457b",
      "parents": [
        "e4cc2f873ad0833aa5c4aca56bebe15b9603a1e7"
      ],
      "author": {
        "name": "maximilian attems",
        "email": "max@stro.at",
        "time": "Thu May 31 16:26:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:30 2012 -0700"
      },
      "message": "kexec: export kexec.h to user space\n\nAdd userspace definitions, guard all relevant kernel structures.  While at\nit document stuff and remove now useless userspace hint.\n\nIt is easy to add the relevant system call to respective libc\u0027s, but it\nseems pointless to have to duplicate the data structures.\n\nThis is based on the kexec-tools headers, with the exception of just using\nint on return (succes or failure) and using size_t instead of \u0027unsigned\nlong int\u0027 for the number of segments argument of kexec_load().\n\nSigned-off-by: maximilian attems \u003cmax@stro.at\u003e\nCc: Simon Horman \u003chorms@verge.net.au\u003e\nCc: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nCc: Haren Myneni \u003chbabu@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cb79295e20a8088a2fd6a9b3cb5f2d889ec36b4d",
      "tree": "e749be4ebd059d9dd1ff109c1cecb7b63109d2e0",
      "parents": [
        "f7505d64f2db5da2d7d94873ddf2cd2524847061"
      ],
      "author": {
        "name": "Anton Vorontsov",
        "email": "anton.vorontsov@linaro.org",
        "time": "Thu May 31 16:26:22 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:29 2012 -0700"
      },
      "message": "cpu: introduce clear_tasks_mm_cpumask() helper\n\nMany architectures clear tasks\u0027 mm_cpumask like this:\n\n\tread_lock(\u0026tasklist_lock);\n\tfor_each_process(p) {\n\t\tif (p-\u003emm)\n\t\t\tcpumask_clear_cpu(cpu, mm_cpumask(p-\u003emm));\n\t}\n\tread_unlock(\u0026tasklist_lock);\n\nDepending on the context, the code above may have several problems,\nsuch as:\n\n1. Working with task-\u003emm w/o getting mm or grabing the task lock is\n   dangerous as -\u003emm might disappear (exit_mm() assigns NULL under\n   task_lock(), so tasklist lock is not enough).\n\n2. Checking for process-\u003emm is not enough because process\u0027 main\n   thread may exit or detach its mm via use_mm(), but other threads\n   may still have a valid mm.\n\nThis patch implements a small helper function that does things\ncorrectly, i.e.:\n\n1. We take the task\u0027s lock while whe handle its mm (we can\u0027t use\n   get_task_mm()/mmput() pair as mmput() might sleep);\n\n2. To catch exited main thread case, we use find_lock_task_mm(),\n   which walks up all threads and returns an appropriate task\n   (with task lock held).\n\nAlso, Per Peter Zijlstra\u0027s idea, now we don\u0027t grab tasklist_lock in\nthe new helper, instead we take the rcu read lock. We can do this\nbecause the function is called after the cpu is taken down and marked\noffline, so no new tasks will get this cpu set in their mm mask.\n\nSigned-off-by: Anton Vorontsov \u003canton.vorontsov@linaro.org\u003e\nCc: Richard Weinberger \u003crichard@nod.at\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "43e13cc107cf6cd3c15fbe1cef849435c2223d50",
      "tree": "9a1b3aa79ec2e8374944c23cf57a73790a3fc6ce",
      "parents": [
        "9b3c98cd663750c33434572ff76ba306505eba5a"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu May 31 16:26:16 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:28 2012 -0700"
      },
      "message": "cred: remove task_is_dead() from __task_cred() validation\n\nCommit 8f92054e7ca1 (\"CRED: Fix __task_cred()\u0027s lockdep check and banner\ncomment\"):\n\n    add the following validation condition:\n\n        task-\u003eexit_state \u003e\u003d 0\n\n    to permit the access if the target task is dead and therefore\n    unable to change its own credentials.\n\nOK, but afaics currently this can only help wait_task_zombie() which calls\n__task_cred() without rcu lock.\n\nRemove this validation and change wait_task_zombie() to use task_uid()\ninstead.  This means we do rcu_read_lock() only to shut up the lockdep,\nbut we already do the same in, say, wait_task_stopped().\n\ntask_is_dead() should die, task-\u003eexit_state !\u003d 0 means that this task has\npassed exit_notify(), only do_wait-like code paths should use this.\n\nUnfortunately, we can\u0027t kill task_is_dead() right now, it has already\nacquired buggy users in drivers/staging.  The fix already exists.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nReviewed-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Jiri Olsa \u003cjolsa@redhat.com\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "785042f2e275089e22c36b462f6495ce8d91732d",
      "tree": "4e847408b4e675c7c616d357ae9b330f7104fbc0",
      "parents": [
        "81ab6e7b26b453a795d46f2616ed0e31d97f05b9"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Thu May 31 16:26:15 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:28 2012 -0700"
      },
      "message": "kmod: move call_usermodehelper_fns() to .c file and unexport all it\u0027s helpers\n\nIf we move call_usermodehelper_fns() to kmod.c file and EXPORT_SYMBOL it\nwe can avoid exporting all it\u0027s helper functions:\n\tcall_usermodehelper_setup\n\tcall_usermodehelper_setfns\n\tcall_usermodehelper_exec\nAnd make all of them static to kmod.c\n\nSince the optimizer will see all these as a single call site it will\ninline them inside call_usermodehelper_fns().  So we loose the call to\n_fns but gain 3 calls to the helpers.  (Not that it matters)\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ae3cef7300e9fddc35ad251dd5f27c5b88c8594a",
      "tree": "d1f057eaeac5234e9056b3e9fa186c1bd7873bc5",
      "parents": [
        "f0aac6162e945590057dcfb841bdce8fd18ed4f6"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Thu May 31 16:26:14 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:28 2012 -0700"
      },
      "message": "kmod: unexport call_usermodehelper_freeinfo()\n\ncall_usermodehelper_freeinfo() is not used outside of kmod.c.  So unexport\nit, and make it static to kmod.c\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "020ac5b6bef15785f9dde9de89d2734ff97da733",
      "tree": "18724448be398af715d45dea42966bf276d2febb",
      "parents": [
        "7bc1bac77a69011550ce0613f4a23712a002d7ad"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Thu May 31 16:26:12 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:27 2012 -0700"
      },
      "message": "fat: introduce special inode for managing the FSINFO block\n\nThis is patchset makes fatfs stop using the VFS \u0027-\u003ewrite_super()\u0027 method\nfor writing out the FSINFO block.\n\nThe final goal is to get rid of the \u0027sync_supers()\u0027 kernel thread.  This\nkernel thread wakes up every 5 seconds (by default) and calls\n\u0027-\u003ewrite_super()\u0027 for all mounted file-systems.  And the bad thing is that\nthis is done even if all the superblocks are clean.  Moreover, some\nfile-systems do not even need this end they do not register the\n\u0027-\u003ewrite_super()\u0027 method at all (e.g., btrfs).\n\nSo \u0027sync_supers()\u0027 most often just generates useless wake-ups and wastes\npower.  I am trying to make all file-systems independent of\n\u0027-\u003ewrite_super()\u0027 and plan to remove \u0027sync_supers()\u0027 and \u0027-\u003ewrite_super\u0027\ncompletely once there are no more users.\n\nThe \u0027-\u003ewrite_supers()\u0027 method is mostly used by baroque file-systems like\nhfs, udf, etc.  Modern file-systems like btrfs and xfs do not use it.\nThis justifies removing this stuff from VFS completely and make every FS\nself-manage own superblock.\n\nTested with xfstests.\n\nThis patch:\n\nPreparation for further changes.  It introduces a special inode\n(\u0027fsinfo_inode\u0027) in FAT file-system which we\u0027ll later use for managing the\nFSINFO block.  Note, this there is already one special inode (\u0027fat_inode\u0027)\nwhich is used for managing the FAT tables.\n\nIntroduce new \u0027MSDOS_FSINFO_INO\u0027 constant for this special inode.  It is\nsafe to do because FAT file-system does not store inode numbers on the\nmedia but generates them run-time.\n\nI\u0027ve also cleaned up the comment to existing \u0027MSDOS_ROOT_INO\u0027 constant,\nwhile on it.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nCc: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "133fd9f5cda2d86904126f4b9fa4e8f4330c9569",
      "tree": "0e60bfcec85f123243cf1ffe735264527efd6d0e",
      "parents": [
        "725fe002d315c2501c110b7245d3eb4f4535f4d6"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Thu May 31 16:26:08 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:27 2012 -0700"
      },
      "message": "vsprintf: further optimize decimal conversion\n\nPrevious code was using optimizations which were developed to work well\neven on narrow-word CPUs (by today\u0027s standards).  But Linux runs only on\n32-bit and wider CPUs.  We can use that.\n\nFirst: using 32x32-\u003e64 multiply and trivial 32-bit shift, we can correctly\ndivide by 10 much larger numbers, and thus we can print groups of 9 digits\ninstead of groups of 5 digits.\n\nNext: there are two algorithms to print larger numbers.  One is generic:\ndivide by 1000000000 and repeatedly print groups of (up to) 9 digits.\nIt\u0027s conceptually simple, but requires an (unsigned long long) /\n1000000000 division.\n\nSecond algorithm splits 64-bit unsigned long long into 16-bit chunks,\nmanipulates them cleverly and generates groups of 4 decimal digits.  It so\nhappens that it does NOT require long long division.\n\nIf long is \u003e 32 bits, division of 64-bit values is relatively easy, and we\nwill use the first algorithm.  If long long is \u003e 64 bits (strange\narchitecture with VERY large long long), second algorithm can\u0027t be used,\nand we again use the first one.\n\nElse (if long is 32 bits and long long is 64 bits) we use second one.\n\nAnd third: there is a simple optimization which takes fast path not only\nfor zero as was done before, but for all one-digit numbers.\n\nIn all tested cases new code is faster than old one, in many cases by 30%,\nin few cases by more than 50% (for example, on x86-32, conversion of\n12345678).  Code growth is ~0 in 32-bit case and ~130 bytes in 64-bit\ncase.\n\nThis patch is based upon an original from Michal Nazarewicz.\n\n[akpm@linux-foundation.org: checkpatch fixes]\nSigned-off-by: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\nCc: Douglas W Jones \u003cjones@cs.uiowa.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a3860c1c5dd1137db23d7786d284939c5761d517",
      "tree": "48d688c6c391ef45f79bdd60815450ca06c5cc1a",
      "parents": [
        "15837294d4ce717f69942f7366e99d4d1d3d9923"
      ],
      "author": {
        "name": "Xi Wang",
        "email": "xi.wang@gmail.com",
        "time": "Thu May 31 16:26:04 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:26 2012 -0700"
      },
      "message": "introduce SIZE_MAX\n\nULONG_MAX is often used to check for integer overflow when calculating\nallocation size.  While ULONG_MAX happens to work on most systems, there\nis no guarantee that `size_t\u0027 must be the same size as `long\u0027.\n\nThis patch introduces SIZE_MAX, the maximum value of `size_t\u0027, to improve\nportability and readability for allocation size validation.\n\nSigned-off-by: Xi Wang \u003cxi.wang@gmail.com\u003e\nAcked-by: Alex Elder \u003celder@dreamhost.com\u003e\nCc: David Airlie \u003cairlied@linux.ie\u003e\nCc: Pekka Enberg \u003cpenberg@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": "76f901eb4659779ecacd0e4eba49f55442daef53",
      "tree": "0761f03211ffdfc06216eabeb61b02ef6d598d3c",
      "parents": [
        "bd0e162d0312aa95e8b85ba883efddebf27be121",
        "96facd23e45e6d5020be135c8ab392ba9e044fa4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 12:10:15 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 12:10:15 2012 -0700"
      },
      "message": "Merge tag \u0027for-v3.5\u0027 of git://git.infradead.org/battery-2.6\n\nPull battery updates from Anton Vorontsov:\n \"A bunch of fixes for v3.5, nothing extraordinary.\"\n\n* tag \u0027for-v3.5\u0027 of git://git.infradead.org/battery-2.6: (27 commits)\n  smb347-charger: Include missing \u003clinux/err.h\u003e\n  smb347-charger: Clean up battery attributes\n  max17042_battery: Add support for max17047/50 chip\n  sbs-battery.c: Capacity attr \u003d remaining relative capacity\n  isp1704_charger: Use after free on probe error\n  ds2781_battery: Use DS2781_PARAM_EEPROM_SIZE and DS2781_USER_EEPROM_SIZE\n  power_supply: Fix a typo in BATTERY_DS2781 Kconfig entry\n  charger-manager: Provide cm_notify_event function for in-kernel use\n  charger-manager: Poll battery health in normal state\n  smb347-charger: Convert to regmap API\n  smb347-charger: Move IRQ enabling to the end of probe\n  smb347-charger: Rename few functions to match better what they are doing\n  smb347-charger: Convert to use module_i2c_driver()\n  smb347_charger: Cleanup power supply registration code in probe\n  ab8500: Clean up probe routines\n  ab8500_fg: Harden platform data check\n  ab8500_btemp: Harden platform data check\n  ab8500_charger: Harden platform data check\n  MAINTAINERS: Fix \u0027F\u0027 entry for the power supply class\n  max17042_battery: Handle irq request failure case\n  ...\n"
    },
    {
      "commit": "bd0e162d0312aa95e8b85ba883efddebf27be121",
      "tree": "5401fd64650a2c5965e43dccaa636bc814072043",
      "parents": [
        "054552272e6e152ff40f8b7f164dd390a5a62097",
        "56457f38f212344fb38b250cfa7e7311c065022f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 12:09:07 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 12:09:07 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/virt/kvm/kvm\n\nPull two small kvm fixes from Avi Kivity:\n \"A build fix for non-kvm archs and a transparent hugepage refcount\n  bugfix on hosts with 4M pages.\"\n\n* git://git.kernel.org/pub/scm/virt/kvm/kvm:\n  KVM: Export asm-generic/kvm_para.h\n  KVM: MMU: fix huge page adapted on non-PAE host\n"
    },
    {
      "commit": "054552272e6e152ff40f8b7f164dd390a5a62097",
      "tree": "9be4ee91a0ea090672f6ea1be2f6e6eef027d810",
      "parents": [
        "5b461209d07ab9a9284760f6ffe696de558031a3",
        "1ff2f40305772b159a91c19590ee159d3a504afc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 12:02:41 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 12:02:41 2012 -0700"
      },
      "message": "Merge tag \u0027scsi-misc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi\n\nPull final round of SCSI updates from James Bottomley:\n \"This is primarily another round of driver updates (bnx2fc, qla2xxx,\n  qla4xxx) including the target mode driver for qla2xxx.  We\u0027ve also got\n  a couple of regression fixes (async scanning, broken this merge window\n  and a fix to a long standing break in the scsi_wait_scan module).\"\n\n* tag \u0027scsi-misc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (45 commits)\n  [SCSI] fix scsi_wait_scan\n  [SCSI] fix async probe regression\n  [SCSI] be2iscsi: fix dma free size mismatch regression\n  [SCSI] qla4xxx: Update driver version to 5.02.00-k17\n  [SCSI] qla4xxx: Capture minidump for ISP82XX on firmware failure\n  [SCSI] qla4xxx: Add change_queue_depth API support\n  [SCSI] qla4xxx: Fix clear ddb mbx command failure issue.\n  [SCSI] qla4xxx: Fix kernel panic during discovery logout.\n  [SCSI] qla4xxx: Correct early completion of pending mbox.\n  [SCSI] fcoe, bnx2fc, libfcoe: SW FCoE and bnx2fc use FCoE Syfs\n  [SCSI] libfcoe: Add fcoe_sysfs\n  [SCSI] bnx2fc: Allocate fcoe_ctlr with bnx2fc_interface, not as a member\n  [SCSI] fcoe: Allocate fcoe_ctlr with fcoe_interface, not as a member\n  [SCSI] Fix dm-multipath starvation when scsi host is busy\n  [SCSI] ufs: fix potential NULL pointer dereferencing error in ufshcd_prove.\n  [SCSI] qla2xxx: don\u0027t free pool that wasn\u0027t allocated\n  [SCSI] mptfusion: unlock on error in mpt_config()\n  [SCSI] tcm_qla2xxx: Add \u003e\u003d 24xx series fabric module for target-core\n  [SCSI] qla2xxx: Add LLD target-mode infrastructure for \u003e\u003d 24xx series\n  [SCSI] Revert \"qla2xxx: During loopdown perform Diagnostic loopback.\"\n  ...\n"
    },
    {
      "commit": "1d59d61f606547f0712aa6971f91f71154071c99",
      "tree": "cb2fd4b9ce3e3ee9440d566d43ea350221edfc8e",
      "parents": [
        "2d117403b30cd7301af60d7d54b279a9f566d10d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu May 31 12:22:33 2012 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 11:41:36 2012 -0700"
      },
      "message": "NFS: Ensure that setattr and getattr wait for O_DIRECT write completion\n\nUse the same mechanism as the block devices are using, but move the\nhelper functions from fs/direct-io.c into fs/inode.c to remove the\ndependency on CONFIG_BLOCK.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "13199a0845729492fc51d1ba87938cdfe341b141",
      "tree": "544267bc4076fff6b2eaae119372b13f23aa8932",
      "parents": [
        "af56e0aa35f3ae2a4c1a6d1000702df1dd78cb76",
        "2e1d4a065a77d076a679df22a4eddbc7e33cad98"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 10:32:36 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 10:32:36 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nPull networking changes from David S. Miller:\n\n 1) Fix IPSEC header length calculation for transport mode in ESP.  The\n    issue is whether to do the calculation before or after alignment.\n    Fix from Benjamin Poirier.\n\n 2) Fix regression in IPV6 IPSEC fragment length calculations, from Gao\n    Feng.  This is another transport vs tunnel mode issue.\n\n 3) Handle AF_UNSPEC connect()s properly in L2TP to avoid OOPSes.  Fix\n    from James Chapman.\n\n 4) Fix USB ASIX driver\u0027s reception of full sized VLAN packets, from\n    Eric Dumazet.\n\n 5) Allow drop monitor (and, more generically, all generic netlink\n    protocols) to be automatically loaded as a module.  From Neil\n    Horman.\n\nFix up trivial conflict in Documentation/feature-removal-schedule.txt\ndue to new entries added next to each other at the end. As usual.\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (38 commits)\n  net/smsc911x: Repair broken failure paths\n  virtio-net: remove useless disable on freeze\n  netdevice: Update netif_dbg for CONFIG_DYNAMIC_DEBUG\n  drop_monitor: Add module alias to enable automatic module loading\n  genetlink: Build a generic netlink family module alias\n  net: add MODULE_ALIAS_NET_PF_PROTO_NAME\n  r6040: Do a Proper deinit at errorpath and also when driver unloads (calling r6040_remove_one)\n  r6040: disable pci device if the subsequent calls (after pci_enable_device) fails\n  skb: avoid unnecessary reallocations in __skb_cow\n  net: sh_eth: fix the rxdesc pointer when rx descriptor empty happens\n  asix: allow full size 8021Q frames to be received\n  rds_rdma: don\u0027t assume infiniband device is PCI\n  l2tp: fix oops in L2TP IP sockets for connect() AF_UNSPEC case\n  mac80211: fix ADDBA declined after suspend with wowlan\n  wlcore: fix undefined symbols when CONFIG_PM is not defined\n  mac80211: fix flag check for QoS NOACK frames\n  ath9k_hw: apply internal regulator settings on AR933x\n  ath9k_hw: update AR933x initvals to fix issues with high power devices\n  ath9k: fix a use-after-free-bug when ath_tx_setup_buffer() fails\n  ath9k: stop rx dma before stopping tx\n  ...\n"
    },
    {
      "commit": "0053ea9c34a41865ec89ffbf3d3033f9a503bccc",
      "tree": "61782bc13e30d1e78d401f4d7ccd6ce1d02261cd",
      "parents": [
        "a0f68763e1c7dd57fa2dae3c07bc50651e2eac29"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Wed May 30 07:43:34 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 30 16:34:27 2012 -0400"
      },
      "message": "netdevice: Update netif_dbg for CONFIG_DYNAMIC_DEBUG\n\nMake netif_dbg use dynamic debugging whenever\nCONFIG_DYNAMIC_DEBUG is enabled.\n\ncommit b558c96ffa53\n(\"dynamic_debug: make dynamic-debug supersede DEBUG ccflag\")\nmissed updating the netif_dbg variant.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "af56e0aa35f3ae2a4c1a6d1000702df1dd78cb76",
      "tree": "304bd85e5db2d07efa2913aa7c6313b918cfbfdb",
      "parents": [
        "65a50c951a38e9827dd9655b6e686bde912e799b",
        "6bd9adbdf9ca6a052b0b7455ac67b925eb38cfad"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 30 11:17:19 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 30 11:17:19 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\nPull ceph updates from Sage Weil:\n \"There are some updates and cleanups to the CRUSH placement code, a bug\n  fix with incremental maps, several cleanups and fixes from Josh Durgin\n  in the RBD block device code, a series of cleanups and bug fixes from\n  Alex Elder in the messenger code, and some miscellaneous bounds\n  checking and gfp cleanups/fixes.\"\n\nFix up trivial conflicts in net/ceph/{messenger.c,osdmap.c} due to the\nnetworking people preferring \"unsigned int\" over just \"unsigned\".\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: (45 commits)\n  libceph: fix pg_temp updates\n  libceph: avoid unregistering osd request when not registered\n  ceph: add auth buf in prepare_write_connect()\n  ceph: rename prepare_connect_authorizer()\n  ceph: return pointer from prepare_connect_authorizer()\n  ceph: use info returned by get_authorizer\n  ceph: have get_authorizer methods return pointers\n  ceph: ensure auth ops are defined before use\n  ceph: messenger: reduce args to create_authorizer\n  ceph: define ceph_auth_handshake type\n  ceph: messenger: check return from get_authorizer\n  ceph: messenger: rework prepare_connect_authorizer()\n  ceph: messenger: check prepare_write_connect() result\n  ceph: don\u0027t set WRITE_PENDING too early\n  ceph: drop msgr argument from prepare_write_connect()\n  ceph: messenger: send banner in process_connect()\n  ceph: messenger: reset connection kvec caller\n  libceph: don\u0027t reset kvec in prepare_write_banner()\n  ceph: ignore preferred_osd field\n  ceph: fully initialize new layout\n  ...\n"
    },
    {
      "commit": "42fe55ce905212542426fa6407a76534a5fb696a",
      "tree": "874c5984e4222ea253b78c5be4755b3d31da54e2",
      "parents": [
        "19ce0a995ff230b364c7329fd488c70e91c171d9",
        "14674e70119ea01549ce593d8901a797f8a90f74"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 30 10:03:46 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 30 10:03:46 2012 -0700"
      },
      "message": "Merge branch \u0027i2c-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging\n\nPull i2c updates from Jean Delvare.\n\n* \u0027i2c-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:\n  i2c: Split I2C_M_NOSTART support out of I2C_FUNC_PROTOCOL_MANGLING\n  i2c-dev: Add support for I2C_M_RECV_LEN\n"
    },
    {
      "commit": "19ce0a995ff230b364c7329fd488c70e91c171d9",
      "tree": "e24fe57a87d16a54cbffd087fb6af2083f7f2ad0",
      "parents": [
        "6bb340c7868fbfd7bd0e8a0e23397a2bcb528429",
        "4b98b32aefb2c143a40cdaa254eb905f1bb06b5d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 30 09:59:13 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 30 09:59:13 2012 -0700"
      },
      "message": "Merge git://www.linux-watchdog.org/linux-watchdog\n\nPull second set of watchdog updates from Wim Van Sebroeck:\n \"This changeset contains following changes:\n   * Add support for multiple watchdog devices.  We use dynamically\n     allocated device id\u0027s for this.\n   * Add locking into the generic watchdog infrastructure.\n   * Add support for dynamically allocated watchdog_device structs so\n     that we can deal with devices that get unbound.\n   * convert following drivers to the generic watchdog framework:\n     sch5627, sch5636 and sp805_wdt.\n   * Add DA9052/53 PMIC watchdog support\n   * Fix printk format warnings for iTCO_wdt.c\"\n\n* git://www.linux-watchdog.org/linux-watchdog:\n  watchdog: iTCO_wdt.c: fix printk format warnings\n  watchdog: sp805_wdt: Add clk_{un}prepare support\n  watchdog: sp805_wdt: convert to watchdog core\n  hwmon/sch56xx: Depend on watchdog for watchdog core functions\n  watchdog: sch56xx-common: set correct bits in register()\n  Watchdog: DA9052/53 PMIC watchdog support\n  watchdog: sch56xx-common: Add proper ref-counting of watchdog data\n  watchdog: sch56xx: Remove unnecessary checks for register changes\n  watchdog: sch56xx: Use watchdog core\n  watchdog: Add support for dynamically allocated watchdog_device structs\n  watchdog: Add Locking support\n  watchdog: watchdog_dev: Rewrite wrapper code\n  watchdog: use dev_ functions\n  watchdog: create all the proper device files\n  watchdog: Add a flag to indicate the watchdog doesn\u0027t reboot things\n  watchdog: Add multiple device support\n  watchdog: watchdog_core.h: make functions extern\n  watchdog: correct the name of the watchdog_core inlude file\n  watchdog: Add watchdog_active() routine\n  watchdog: watchdog_dev: include private header to pickup global symbol prototypes\n"
    },
    {
      "commit": "a70f35af4e49f87ba4b6c4b30220fbb66cd74af6",
      "tree": "f81d1c68d332f7ed32048085fa2972c057f62419",
      "parents": [
        "0d167518e045cc8bb63f0a8a0a85ad4fa4e0044f",
        "4fd1ffaa122cf66bfb710ced43679413df4f3605"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 30 09:05:47 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 30 09:05:47 2012 -0700"
      },
      "message": "Merge branch \u0027for-3.5/drivers\u0027 of git://git.kernel.dk/linux-block\n\nPull block driver updates from Jens Axboe:\n \"Here are the driver related changes for 3.5.  It contains:\n\n   - The floppy changes from Jiri.  Jiri is now also marked as the\n     maintainer of floppy.c, I shall be publically branding his forehead\n     with red hot iron at the next opportune moment.\n\n   - A batch of drbd updates and fixes from the linbit crew, as well as\n     fixes from others.\n\n   - Two small fixes for xen-blkfront courtesy of Jan.\"\n\n* \u0027for-3.5/drivers\u0027 of git://git.kernel.dk/linux-block: (70 commits)\n  floppy: take over maintainership\n  floppy: remove floppy-specific O_EXCL handling\n  floppy: convert to delayed work and single-thread wq\n  xen-blkfront: module exit handling adjustments\n  xen-blkfront: properly name all devices\n  drbd: grammar fix in log message\n  drbd: check MODULE for THIS_MODULE\n  drbd: Restore the request restart logic\n  drbd: introduce a bio_set to allocate housekeeping bios from\n  drbd: remove unused define\n  drbd: bm_page_async_io: properly initialize page-\u003eprivate\n  drbd: use the newly introduced page pool for bitmap IO\n  drbd: add page pool to be used for meta data IO\n  drbd: allow bitmap to change during writeout from resync_finished\n  drbd: fix race between drbdadm invalidate/verify and finishing resync\n  drbd: fix resend/resubmit of frozen IO\n  drbd: Ensure that data_size is not 0 before using data_size-1 as index\n  drbd: Delay/reject other state changes while establishing a connection\n  drbd: move put_ldev from __req_mod() to the endio callback\n  drbd: fix WRITE_ACKED_BY_PEER_AND_SIS to not set RQ_NET_DONE\n  ...\n"
    },
    {
      "commit": "0d167518e045cc8bb63f0a8a0a85ad4fa4e0044f",
      "tree": "101a9b5d425d79f663e4f25f1e90b7a8cc6604f1",
      "parents": [
        "2f83766d4b18774c856329a8fca4c9338dfeda39",
        "ff26eaadf4d914e397872b99885d45756104e9ae"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 30 08:52:42 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 30 08:52:42 2012 -0700"
      },
      "message": "Merge branch \u0027for-3.5/core\u0027 of git://git.kernel.dk/linux-block\n\nMerge block/IO core bits from Jens Axboe:\n \"This is a bit bigger on the core side than usual, but that is purely\n  because we decided to hold off on parts of Tejun\u0027s submission on 3.4\n  to give it a bit more time to simmer.  As a consequence, it\u0027s seen a\n  long cycle in for-next.\n\n  It contains:\n\n   - Bug fix from Dan, wrong locking type.\n   - Relax splice gifting restriction from Eric.\n   - A ton of updates from Tejun, primarily for blkcg.  This improves\n     the code a lot, making the API nicer and cleaner, and also includes\n     fixes for how we handle and tie policies and re-activate on\n     switches.  The changes also include generic bug fixes.\n   - A simple fix from Vivek, along with a fix for doing proper delayed\n     allocation of the blkcg stats.\"\n\nFix up annoying conflict just due to different merge resolution in\nDocumentation/feature-removal-schedule.txt\n\n* \u0027for-3.5/core\u0027 of git://git.kernel.dk/linux-block: (92 commits)\n  blkcg: tg_stats_alloc_lock is an irq lock\n  vmsplice: relax alignement requirements for SPLICE_F_GIFT\n  blkcg: use radix tree to index blkgs from blkcg\n  blkcg: fix blkcg-\u003ecss ref leak in __blkg_lookup_create()\n  block: fix elvpriv allocation failure handling\n  block: collapse blk_alloc_request() into get_request()\n  blkcg: collapse blkcg_policy_ops into blkcg_policy\n  blkcg: embed struct blkg_policy_data in policy specific data\n  blkcg: mass rename of blkcg API\n  blkcg: style cleanups for blk-cgroup.h\n  blkcg: remove blkio_group-\u003epath[]\n  blkcg: blkg_rwstat_read() was missing inline\n  blkcg: shoot down blkgs if all policies are deactivated\n  blkcg: drop stuff unused after per-queue policy activation update\n  blkcg: implement per-queue policy activation\n  blkcg: add request_queue-\u003eroot_blkg\n  blkcg: make request_queue bypassing on allocation\n  blkcg: make sure blkg_lookup() returns %NULL if @q is bypassing\n  blkcg: make blkg_conf_prep() take @pol and return with queue lock held\n  blkcg: remove static policy ID enums\n  ...\n"
    },
    {
      "commit": "2f83766d4b18774c856329a8fca4c9338dfeda39",
      "tree": "a19ea2165755f5700d7f37a61ece7edce231744f",
      "parents": [
        "4523e1458566a0e8ecfaff90f380dd23acc44d27",
        "28f8571e1e84782244cc7bf1b129baf6cdc0832e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 30 08:49:28 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 30 08:49:28 2012 -0700"
      },
      "message": "Merge tag \u0027iommu-updates-v3.5\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu\n\nPull IOMMU updates from Joerg Roedel:\n \"Not much stuff this time.  The only change to the IOMMU core code is\n  the addition of a handle to the fault handling code.  A few updates to\n  the AMD IOMMU driver to work around new errata.  The other patches are\n  mostly fixes and enhancements to the existing ARM IOMMU drivers and\n  documentation updates.\n\n  A new IOMMU driver for the Exynos platform was also underway but got\n  merged via the Samsung tree and is not part of this tree.\"\n\n* tag \u0027iommu-updates-v3.5\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:\n  Documentation: kernel-parameters.txt Add amd_iommu_dump\n  iommu/core: pass a user-provided token to fault handlers\n  iommu/tegra: gart: Fix register offset correctly\n  iommu: OMAP: device detach on domain destroy\n  iommu: tegra/gart: Add device tree support\n  iommu: tegra/gart: use correct gart_device\n  iommu/tegra: smmu: Print device name correctly\n  iommu/amd: Add workaround for event log erratum\n  iommu/amd: Check for the right TLP prefix bit\n  dma-debug: release free_entries_lock before saving stack trace\n"
    },
    {
      "commit": "14674e70119ea01549ce593d8901a797f8a90f74",
      "tree": "15474236bfa505aa396bf2892cbbee65e842b94b",
      "parents": [
        "838bfa6049fb84dc66c9c9bbeb3a968ec987fd3d"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed May 30 10:55:34 2012 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Wed May 30 10:55:34 2012 +0200"
      },
      "message": "i2c: Split I2C_M_NOSTART support out of I2C_FUNC_PROTOCOL_MANGLING\n\nSince there are uses for I2C_M_NOSTART which are much more sensible and\nstandard than most of the protocol mangling functionality (the main one\nbeing gather writes to devices where something like a register address\nneeds to be inserted before a block of data) create a new I2C_FUNC_NOSTART\nfor this feature and update all the users to use it.\n\nAlso strengthen the disrecommendation of the protocol mangling while we\u0027re\nat it.\n\nIn the case of regmap-i2c we remove the requirement for mangling as\nI2C_M_NOSTART is the only mangling feature which is being used.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nAcked-by: Wolfram Sang \u003cw.sang@pengutronix.de\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "e907df32725204d6d2cb79b872529911c8eadcdf",
      "tree": "3e90c58ea0ee9c2d77c1c4b0854dc046f6efb6a0",
      "parents": [
        "f4e9c82f64b524314a390b13d3ba7d483f09258f"
      ],
      "author": {
        "name": "Hans de Goede",
        "email": "hdegoede@redhat.com",
        "time": "Tue May 22 11:40:26 2012 +0200"
      },
      "committer": {
        "name": "Wim Van Sebroeck",
        "email": "wim@iguana.be",
        "time": "Wed May 30 07:55:31 2012 +0200"
      },
      "message": "watchdog: Add support for dynamically allocated watchdog_device structs\n\nIf a driver\u0027s watchdog_device struct is part of a dynamically allocated\nstruct (which it often will be), merely locking the module is not enough,\neven with a drivers module locked, the driver can be unbound from the device,\nexamples:\n1) The root user can unbind it through sysfd\n2) The i2c bus master driver being unloaded for an i2c watchdog\n\nI will gladly admit that these are corner cases, but we still need to handle\nthem correctly.\n\nThe fix for this consists of 2 parts:\n1) Add ref / unref operations, so that the driver can refcount the struct\n   holding the watchdog_device struct and delay freeing it until any\n   open filehandles referring to it are closed\n2) Most driver operations will do IO on the device and the driver should not\n   do any IO on the device after it has been unbound. Rather then letting each\n   driver deal with this internally, it is better to ensure at the watchdog\n   core level that no operations (other then unref) will get called after\n   the driver has called watchdog_unregister_device(). This actually is the\n   bulk of this patch.\n\nSigned-off-by: Hans de Goede \u003chdegoede@redhat.com\u003e\nSigned-off-by: Wim Van Sebroeck \u003cwim@iguana.be\u003e\n"
    },
    {
      "commit": "f4e9c82f64b524314a390b13d3ba7d483f09258f",
      "tree": "82d688ae7782234dc01c6a340596bac21531aae4",
      "parents": [
        "7a87982420e5e126bfefeb42232d1fd92052794e"
      ],
      "author": {
        "name": "Hans de Goede",
        "email": "hdegoede@redhat.com",
        "time": "Tue May 22 11:40:26 2012 +0200"
      },
      "committer": {
        "name": "Wim Van Sebroeck",
        "email": "wim@iguana.be",
        "time": "Wed May 30 07:55:23 2012 +0200"
      },
      "message": "watchdog: Add Locking support\n\nThis patch fixes some potential multithreading issues, despite only\nallowing one process to open the /dev/watchdog device, we can still get\ncalled multiple times at the same time, since a program could be using thread,\nor could share the fd after a fork.\n\nThis causes 2 potential problems:\n1) watchdog_start / open do an unlocked test_n_set / test_n_clear,\n   if these 2 race, the watchdog could be stopped while the active\n   bit indicates it is running or visa versa.\n\n2) Most watchdog_dev drivers probably assume that only one\n   watchdog-op will get called at a time, this is not necessary\n   true atm.\n\nSigned-off-by: Hans de Goede \u003chdegoede@redhat.com\u003e\nSigned-off-by: Wim Van Sebroeck \u003cwim@iguana.be\u003e\n"
    },
    {
      "commit": "d6b469d915ae348b3bb8b25034063d6870ff4a00",
      "tree": "7bc00fa1870ba2fb1a7943c1a1d9e524752cb299",
      "parents": [
        "2bbeed016dd96045ec82c3a309afddcc3a0db1d2"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@linux.intel.com",
        "time": "Fri May 11 12:00:20 2012 +0200"
      },
      "committer": {
        "name": "Wim Van Sebroeck",
        "email": "wim@iguana.be",
        "time": "Wed May 30 07:54:46 2012 +0200"
      },
      "message": "watchdog: create all the proper device files\n\nCreate the watchdog class and it\u0027s associated devices.\n\nSigned-off-by: Alan Cox \u003calan@linux.intel.com\u003e\nSigned-off-by: Hans de Goede \u003chdegoede@redhat.com\u003e\nSigned-off-by: Wim Van Sebroeck \u003cwim@iguana.be\u003e\n"
    },
    {
      "commit": "2bbeed016dd96045ec82c3a309afddcc3a0db1d2",
      "tree": "291e73618f5b088702308210a1fc6134a21dba4f",
      "parents": [
        "45f5fed30a6460ec58f159ff297a2974153a97de"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@linux.intel.com",
        "time": "Fri May 11 12:00:19 2012 +0200"
      },
      "committer": {
        "name": "Wim Van Sebroeck",
        "email": "wim@iguana.be",
        "time": "Wed May 30 07:54:40 2012 +0200"
      },
      "message": "watchdog: Add a flag to indicate the watchdog doesn\u0027t reboot things\n\nSome watchdogs merely trigger external alarms and controls. In a managed\nenvironment this is very useful but we want drivers to be able to figure\nout which is which now multiple dogs can be loaded. Thus add an ALARMONLY\nfeature flag.\n\nSigned-off-by: Alan Cox \u003calan@linux.intel.com\u003e\nSigned-off-by: Hans de Goede \u003chdegoede@redhat.com\u003e\nSigned-off-by: Wim Van Sebroeck \u003cwim@iguana.be\u003e\n"
    },
    {
      "commit": "45f5fed30a6460ec58f159ff297a2974153a97de",
      "tree": "d173b2d22ed1187fb7ed2cb85015ddf5c545da05",
      "parents": [
        "fb5f6658163412dce22724e906e324ab7fd62c18"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@linux.intel.com",
        "time": "Thu May 10 21:48:59 2012 +0200"
      },
      "committer": {
        "name": "Wim Van Sebroeck",
        "email": "wim@iguana.be",
        "time": "Wed May 30 07:54:25 2012 +0200"
      },
      "message": "watchdog: Add multiple device support\n\nWe keep the old /dev/watchdog interface file for the first watchdog via\nmiscdev. This is basically a cut and paste of the relevant interface code\nfrom the rtc driver layer tweaked for watchdog.\n\nRevised to fix problems noted by Hans de Goede\n\nSigned-off-by: Alan Cox \u003calan@linux.intel.com\u003e\nSigned-off-by: Hans de Goede \u003chdegoede@redhat.com\u003e\nSigned-off-by: Tomas Winkler \u003ctomas.winkler@intel.com\u003e\nSigned-off-by: Wim Van Sebroeck \u003cwim@iguana.be\u003e\n"
    },
    {
      "commit": "257f8c4aae392654d4ab846030b9f4518f16ed32",
      "tree": "54b97861301fa1097126f9d6d42633e835adff72",
      "parents": [
        "09a46e739780aab2eadf47afdefa70c9cd69d83d"
      ],
      "author": {
        "name": "Viresh Kumar",
        "email": "viresh.kumar@st.com",
        "time": "Mon Mar 12 09:51:56 2012 +0530"
      },
      "committer": {
        "name": "Wim Van Sebroeck",
        "email": "wim@iguana.be",
        "time": "Wed May 30 07:53:46 2012 +0200"
      },
      "message": "watchdog: Add watchdog_active() routine\n\nSome watchdog may need to check if watchdog is ACTIVE or not, for example in\ntheir suspend/resume hooks.\n\nThis patch adds this routine and changes the core drivers to use it.\n\nSigned-off-by: Viresh Kumar \u003cviresh.kumar@st.com\u003e\nSigned-off-by: Wim Van Sebroeck \u003cwim@iguana.be\u003e\n"
    },
    {
      "commit": "e9412c37082b5c932e83364aaed0c38c2ce33acb",
      "tree": "479e716c478173830e378f432d3d0b24c6979541",
      "parents": [
        "2033e9bf06f07e049bbc77e9452856df846714cc"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Tue May 29 09:30:41 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue May 29 22:33:56 2012 -0400"
      },
      "message": "genetlink: Build a generic netlink family module alias\n\nGeneric netlink searches for -type- formatted aliases when requesting a module to\nfulfill a protocol request (i.e. net-pf-16-proto-16-type-\u003cx\u003e, where x is a type\nvalue).  However generic netlink protocols have no well defined type numbers,\nthey have string names.  Modify genl_ctrl_getfamily to request an alias in the\nformat net-pf-16-proto-16-family-\u003cx\u003e instead, where x is a generic string, and\nadd a macro that builds on the previously added MODULE_ALIAS_NET_PF_PROTO_NAME\nmacro to allow modules to specifify those generic strings.\n\nNote, l2tp previously hacked together an net-pf-16-proto-16-type-l2tp alias\nusing the MODULE_ALIAS macro, with these updates we can convert that to use the\nPROTO_NAME macro.\n\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nCC: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: James Chapman \u003cjchapman@katalix.com\u003e\nCC: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2033e9bf06f07e049bbc77e9452856df846714cc",
      "tree": "6efbc29328e50f7d5df626ba8c3c75f1565f73bb",
      "parents": [
        "20571d8894d1ee5a181e34e8d07ed8472acd30c4"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Tue May 29 09:30:40 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue May 29 22:33:55 2012 -0400"
      },
      "message": "net: add MODULE_ALIAS_NET_PF_PROTO_NAME\n\nThe MODULE_ALAIS_NET_PF macro set is missing a variant that allows for the\nappending of an arbitrary string to the net-pf-\u003cx\u003e-proto-\u003cy\u003e base.  while\nMODULE_ALIAS_NET_PF_PROTO_NAME_TYPE allows an appending of a numerical type, we\nneed to be able to append a generic string to support generic netlink families\nthat have neither a fix numberical protocol nor type number\n\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nCC: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "87a5af24e54857e7b15c1f1b0468512ee65c94e3",
      "tree": "ee346852a0fc27f172a5eb57b6e3c7bf111f2fad",
      "parents": [
        "7e5b2db77b05746613516599c916a8cc2e321077",
        "0bf09e829dd4b07227ed5a8bc4ac85752a044458"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 18:32:37 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 18:32:37 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac\n\nPull EDAC internal API changes from Mauro Carvalho Chehab:\n \"This changeset is the first part of a series of patches that fixes the\n  EDAC sybsystem.  On this set, it changes the Kernel EDAC API in order\n  to properly represent the Intel i3/i5/i7, Xeon 3xxx/5xxx/7xxx, and\n  Intel E5-xxxx memory controllers.\n\n  The EDAC core used to assume that:\n\n       - the DRAM chip select pin is directly accessed by the memory\n         controller\n\n       - when multiple channels are used, they\u0027re all filled with the\n         same type of memory.\n\n  None of the above premises is true on Intel memory controllers since\n  2002, when RAMBUS and FB-DIMMs were introduced, and Advanced Memory\n  Buffer or by some similar technologies hides the direct access to the\n  DRAM pins.\n\n  So, the existing drivers for those chipsets had to lie to the EDAC\n  core, in general telling that just one channel is filled.  That\n  produces some hard to understand error messages like:\n\n       EDAC MC0: CE row 3, channel 0, label \"DIMM1\": 1 Unknown error(s): memory read error on FATAL area : cpu\u003d0 Err\u003d0008:00c2 (ch\u003d2), addr \u003d 0xad1f73480 \u003d\u003e socket\u003d0, Channel\u003d0(mask\u003d2), rank\u003d1\n\n  The location information there (row3 channel 0) is completely bogus:\n  it has no physical meaning, and are just some random values that the\n  driver uses to talk with the EDAC core.  The error actually happened\n  at CPU socket 0, channel 0, slot 1, but this is not reported anywhere,\n  as the EDAC core doesn\u0027t know anything about the memory layout.  So,\n  only advanced users that know how the EDAC driver works and that tests\n  their systems to see how DIMMs are mapped can actually benefit for\n  such error logs.\n\n  This patch series fixes the error report logic, in order to allow the\n  EDAC to expose the memory architecture used by them to the EDAC core.\n  So, as the EDAC core now understands how the memory is organized, it\n  can provide an useful report:\n\n       EDAC MC0: CE memory read error on DIMM1 (channel:0 slot:1 page:0x364b1b offset:0x600 grain:32 syndrome:0x0 - count:1 area:DRAM err_code:0001:0090 socket:0 channel_mask:1 rank:4)\n\n  The location of the DIMM where the error happened is reported by \"MC0\"\n  (cpu socket #0), at \"channel:0 slot:1\" location, and matches the\n  physical location of the DIMM.\n\n  There are two remaining issues not covered by this patch series:\n\n       - The EDAC sysfs API will still report bogus values.  So,\n         userspace tools like edac-utils will still use the bogus data;\n\n       - Add a new tracepoint-based way to get the binary information\n         about the errors.\n\n  Those are on a second series of patches (also at -next), but will\n  probably miss the train for 3.5, due to the slow review process.\"\n\nFix up trivial conflict (due to spelling correction of removed code) in\ndrivers/edac/edac_device.c\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac: (42 commits)\n  i7core: fix ranks information at the per-channel struct\n  i5000: Fix the fatal error handling\n  i5100_edac: Fix a warning when compiled with 32 bits\n  i82975x_edac: Test nr_pages earlier to save a few CPU cycles\n  e752x_edac: provide more info about how DIMMS/ranks are mapped\n  i5000_edac: Fix the logic that retrieves memory information\n  i5400_edac: improve debug messages to better represent the filled memory\n  edac: Cleanup the logs for i7core and sb edac drivers\n  edac: Initialize the dimm label with the known information\n  edac: Remove the legacy EDAC ABI\n  x38_edac: convert driver to use the new edac ABI\n  tile_edac: convert driver to use the new edac ABI\n  sb_edac: convert driver to use the new edac ABI\n  r82600_edac: convert driver to use the new edac ABI\n  ppc4xx_edac: convert driver to use the new edac ABI\n  pasemi_edac: convert driver to use the new edac ABI\n  mv64x60_edac: convert driver to use the new edac ABI\n  mpc85xx_edac: convert driver to use the new edac ABI\n  i82975x_edac: convert driver to use the new edac ABI\n  i82875p_edac: convert driver to use the new edac ABI\n  ...\n"
    },
    {
      "commit": "7e5b2db77b05746613516599c916a8cc2e321077",
      "tree": "c3ec333ff7b77bcc8e456a3a3d19bf20f5c651b8",
      "parents": [
        "227d1e4319ffd8729781941d92f4ae4d85beecd9",
        "c819baf31f5f91fbb06b2c93de2d5b8c8d096f3f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 18:27:19 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 18:27:19 2012 -0700"
      },
      "message": "Merge branch \u0027upstream\u0027 of git://git.linux-mips.org/pub/scm/ralf/upstream-linus\n\nPull MIPS updates from Ralf Baechle:\n \"The whole series has been sitting in -next for quite a while with no\n  complaints.  The last change to the series was before the weekend the\n  removal of an SPI patch which Grant - even though previously acked by\n  himself - appeared to raise objections.  So I removed it until the\n  situation is clarified.  Other than that all the patches have the acks\n  from their respective maintainers, all MIPS and x86 defconfigs are\n  building fine and I\u0027m not aware of any problems introduced by this\n  series.\n\n  Among the key features for this patch series is a sizable patchset for\n  Lantiq which among other things introduces support for Lantiq\u0027s\n  flagship product, the FALCON SOC.  It also means that the opensource\n  developers behind this patchset have overtaken Lantiq\u0027s competing\n  inhouse development team that was working behind closed doors.\n\n  Less noteworthy the ath79 patchset which adds support for a few more\n  chip variants, cleanups and fixes.  Finally the usual dose of tweaking\n  of generic code.\"\n\nFix up trivial conflicts in arch/mips/lantiq/xway/gpio_{ebu,stp}.c where\nprintk spelling fixes clashed with file move and eventual removal of the\nprintk.\n\n* \u0027upstream\u0027 of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (81 commits)\n  MIPS: lantiq: remove orphaned code\n  MIPS: Remove all -Wall and almost all -Werror usage from arch/mips.\n  MIPS: lantiq: implement support for FALCON soc\n  MTD: MIPS: lantiq: verify that the NOR interface is available on falcon soc\n  MTD: MIPS: lantiq: implement OF support\n  watchdog: MIPS: lantiq: implement OF support and minor fixes\n  SERIAL: MIPS: lantiq: implement OF support\n  GPIO: MIPS: lantiq: convert gpio-stp-xway to OF\n  GPIO: MIPS: lantiq: convert gpio-mm-lantiq to OF and of_mm_gpio\n  GPIO: MIPS: lantiq: move gpio-stp and gpio-ebu to the subsystem folder\n  MIPS: pci: convert lantiq driver to OF\n  MIPS: lantiq: convert dma to platform driver\n  MIPS: lantiq: implement support for clkdev api\n  MIPS: lantiq: drop ltq_gpio_request() and gpio_to_irq()\n  OF: MIPS: lantiq: implement irq_domain support\n  OF: MIPS: lantiq: implement OF support\n  MIPS: lantiq: drop mips_machine support\n  OF: PCI: const usage needed by MIPS\n  MIPS: Cavium: Remove smp_reserve_lock.\n  MIPS: Move cache setup to setup_arch().\n  ...\n"
    },
    {
      "commit": "eb86c3064b3c53837fdfea17df1483d825919894",
      "tree": "0d408fe43f43248477bb521fdd5b6856878199b0",
      "parents": [
        "f8ae97019ff79559416dc2ae9c14af92c2054cba"
      ],
      "author": {
        "name": "Wolfram Sang",
        "email": "w.sang@pengutronix.de",
        "time": "Tue May 29 15:07:38 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:33 2012 -0700"
      },
      "message": "rtc: ds1307: add trickle charger support\n\nSome DS13XX devices have \"trickle chargers\".  Its configuration register\nis at different locations, the setup is the same, though.  Since the\nconfiguration is board specific, introduce a platform_data to this driver.\nTested with a DS1339 on a custom board.\n\nSigned-off-by: Wolfram Sang \u003cw.sang@pengutronix.de\u003e\nCc: Alessandro Zummo \u003calessandro.zummo@towertech.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e311c9295912209dcf8e54de5401f8518112b7f8",
      "tree": "e1016bbb7d43aa6086ea0ee5d1935b309d43d81c",
      "parents": [
        "84d56b38b9abd36565f74cbf68501cee6206761e"
      ],
      "author": {
        "name": "Alexander Stein",
        "email": "alexander.stein@systec-electronic.com",
        "time": "Tue May 29 15:07:36 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:33 2012 -0700"
      },
      "message": "rtc: add ioctl to get/clear battery low voltage status\n\nCurrently there is no generic way to get the RTC battery status within an\napplication.  So add an ioctl to read the status bit.  The idea is that\nthe bit is set once a low voltage is detected.  It stays there until it is\nreset using the RTC_VL_CLR ioctl.\n\nSigned-off-by: Alexander Stein \u003calexander.stein@systec-electronic.com\u003e\nCc: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4796dd200db943e36f876e7029552212e5bbdf33",
      "tree": "a594c2b1ce1f4dbc96b25a516e49655917a9fa30",
      "parents": [
        "05a6c8a9226599f921bd0b6e439dbc04df96a6fc"
      ],
      "author": {
        "name": "Stephen Boyd",
        "email": "sboyd@codeaurora.org",
        "time": "Tue May 29 15:07:33 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:32 2012 -0700"
      },
      "message": "vsprintf: fix %ps on non symbols when using kallsyms\n\nUsing %ps in a printk format will sometimes fail silently and print the\nempty string if the address passed in does not match a symbol that\nkallsyms knows about.  But using %pS will fall back to printing the full\naddress if kallsyms can\u0027t find the symbol.  Make %ps act the same as %pS\nby falling back to printing the address.\n\nWhile we\u0027re here also make %ps print the module that a symbol comes from\nso that it matches what %pS already does.  Take this simple function for\nexample (in a module):\n\n\tstatic void test_printk(void)\n\t{\n\t\tint test;\n\t\tpr_info(\"with pS: %pS\\n\", \u0026test);\n\t\tpr_info(\"with ps: %ps\\n\", \u0026test);\n\t}\n\nBefore this patch:\n\n with pS: 0xdff7df44\n with ps:\n\nAfter this patch:\n\n with pS: 0xdff7df44\n with ps: 0xdff7df44\n\nSigned-off-by: Stephen Boyd \u003csboyd@codeaurora.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8035a50224302f9eb129d210daf263405d5a91fd",
      "tree": "bbb04a17c4efac3ebff5458759fd5dde9f53be5a",
      "parents": [
        "1381187991a196a8a7d046e97bd50eec6c37e8df"
      ],
      "author": {
        "name": "Kim, Milo",
        "email": "Milo.Kim@ti.com",
        "time": "Tue May 29 15:07:28 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:32 2012 -0700"
      },
      "message": "include/linux/led-lm3530.h: comment correction about the range of brightness\n\nmax brightness is 127, so the range of brt_val should be from 0 to 127\n\nSigned-off-by: Milo(Woogyom) Kim \u003cmilo.kim@ti.com\u003e\nAcked-by: Linus Walleij \u003clinus.walleij@linaro.org\u003e\nCc: Shreshtha Kumar SAHU \u003cshreshthakumar.sahu@stericsson.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nCc: Bryan Wu \u003cbryan.wu@canonical.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b00961824a33aadec4a825eaeccfbe3db8ec7032",
      "tree": "f3af8c9307bdf3b06b9fc21df9aea0356b89e2b5",
      "parents": [
        "1daef6d27b558d0bde72302ba7062b746887a643"
      ],
      "author": {
        "name": "Shuah Khan",
        "email": "shuahkhan@gmail.com",
        "time": "Tue May 29 15:07:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:31 2012 -0700"
      },
      "message": "leds: add new field to led_classdev struct to save activation state\n\nAdd a new field to led_classdev to save activattion state after activate\nroutine is successful.  This saved state is used in deactivate routine to\ndo cleanup such as removing device files, and free memory allocated during\nactivation.  Currently trigger_data not being null is used for this\npurpose.\n\nExisting triggers will need changes to use this new field.\n\nSigned-off-by: Shuah Khan \u003cshuahkhan@gmail.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nCc: Bryan Wu \u003cbryan.wu@canonical.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1615d210dbc9c67c38b66bcff53233452dbaae22",
      "tree": "06974bb5bef5fc3ac6e9c46ac47bcae4e2bbb363",
      "parents": [
        "d54ad83f3d56228a42e1021b97fc52bfbad7d560"
      ],
      "author": {
        "name": "H Hartley Sweeten",
        "email": "hartleys@visionengravers.com",
        "time": "Tue May 29 15:07:14 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:29 2012 -0700"
      },
      "message": "drivers/video/backlight/apple_bl.c: include header for exported symbol prototypes\n\nInclude the header to pickup the exported symbol prototype.\n\nQuiets the sparse warning:\n\n  warning: symbol \u0027apple_bl_register\u0027 was not declared. Should it be static?\n  warning: symbol \u0027apple_bl_unregister\u0027 was not declared. Should it be static?\n\n[akpm@linux-foundation.org: fix resulting build error]\nSigned-off-by: H Hartley Sweeten \u003chsweeten@visionengravers.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Florian Tobias Schandinat \u003cFlorianSchandinat@gmx.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d54ad83f3d56228a42e1021b97fc52bfbad7d560",
      "tree": "bf4a27b9df5b86e03938a6c11d1e993e010e431e",
      "parents": [
        "bf05929f41d6c3c79ec1961d90d808a634f09dd9"
      ],
      "author": {
        "name": "Inki Dae",
        "email": "inki.dae@samsung.com",
        "time": "Tue May 29 15:07:13 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:29 2012 -0700"
      },
      "message": "lcd: add callbacks for early fb event blank support\n\nThis patchset adds early fb blank feature that a callback of lcd panel\ndriver is called prior to specific fb driver\u0027s one.  In the case of\nMIPI-DSI based video mode LCD Panel, for lcd power off, the power off\ncommands should be transferred to lcd panel with display and mipi-dsi\ncontroller enabled because the commands is set to lcd panel at vsync porch\nperiod.  and in opposite case, the callback of fb driver should be called\nprior to lcd panel driver\u0027s one because of same issue.  Also if fb_blank\nmode is changed to FB_BLANK_POWERDOWN then display controller would be\noff(clock disable) but lcd panel would be still on.  at this time, you\ncould see some issue like sparkling on lcd panel because video clock to be\ndelivered to ldi module of lcd panel was disabled.  this issue could\noccurs for all lcd panels.\n\nThe callback order is as the following:\n\nat fb_blank function of fbmem.c\n-\u003e fb_notifier_call_chain(FB_EARLY_EVENT_BLANK)\n       -\u003e lcd panel driver\u0027s early_set_power()\n-\u003e info-\u003efbops-\u003efb_blank()\n       -\u003e spcefic fb driver\u0027s fb_blank()\n-\u003e fb_notifier_call_chain(FB_EVENT_BLANK)\n       -\u003e lcd panel driver\u0027s set_power()\n   -\u003e fb_notifier_call_chain(FB_R_EARLY_EVENT_BLANK) if\ninfo-\u003efops-\u003efb_blank() was failed.\n\nfb_notifier_call_chain(FB_R_EARLY_EVENT_BLANK) would be called to revert\nthe effects of previous FB_EARLY_EVENT_BLANK call.  and note that if\nearly_set_power() of lcd_ops is NULL then early fb blank callback would be\nignored.\n\nThis patch:\n\nAdd early_set_power and r_early_set_power callbacks.  early_set_power\ncallback is called prior to fb_blank() of fbmem.c and r_early_set_power\ncallback is called if fb_blank() was failed to revert the effects of the\nearly_set_power call of lcd panel driver.\n\nSigned-off-by: Inki Dae \u003cinki.dae@samsung.com\u003e\nSigned-off-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nCc: Lars-Peter Clausen \u003clars@metafoo.de\u003e\nCc: Florian Tobias Schandinat \u003cFlorianSchandinat@gmx.de\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bf05929f41d6c3c79ec1961d90d808a634f09dd9",
      "tree": "71afacc10d3a3cf46cd72b98beb1ccddeaa2bd31",
      "parents": [
        "aa523a82ee1be3f50560338e06151918fd8613e7"
      ],
      "author": {
        "name": "Inki Dae",
        "email": "inki.dae@samsung.com",
        "time": "Tue May 29 15:07:12 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:28 2012 -0700"
      },
      "message": "fbdev: add events for early fb event support\n\nAdd FB_EARLY_EVENT_BLANK and FB_R_EARLY_EVENT_BLANK event mode supports.\nfirst, fb_notifier_call_chain() is called with FB_EARLY_EVENT_BLANK and\nfb_blank() of specific fb driver is called and then\nfb_notifier_call_chain() is called with FB_EVENT_BLANK again at\nfb_blank().  and if fb_blank() was failed then fb_nitifier_call_chain()\nwould be called with FB_R_EARLY_EVENT_BLANK to revert the previous\neffects.\n\nSigned-off-by: Inki Dae \u003cinki.dae@samsung.com\u003e\nSigned-off-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nCc: Lars-Peter Clausen \u003clars@metafoo.de\u003e\nAcked-by: Florian Tobias Schandinat \u003cFlorianSchandinat@gmx.de\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3f134619393cb6c6dfab7890a617d0ceca6d05d7",
      "tree": "39e05b42c99189cd4496e61a3e16107e065b0f04",
      "parents": [
        "3afe36b1fe7d1e3f66752bb9548a763942f3a104"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue May 29 15:07:11 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:28 2012 -0700"
      },
      "message": "memcg: decrement static keys at real destroy time\n\nWe call the destroy function when a cgroup starts to be removed, such as\nby a rmdir event.\n\nHowever, because of our reference counters, some objects are still\ninflight.  Right now, we are decrementing the static_keys at destroy()\ntime, meaning that if we get rid of the last static_key reference, some\nobjects will still have charges, but the code to properly uncharge them\nwon\u0027t be run.\n\nThis becomes a problem specially if it is ever enabled again, because now\nnew charges will be added to the staled charges making keeping it pretty\nmuch impossible.\n\nWe just need to be careful with the static branch activation: since there\nis no particular preferred order of their activation, we need to make sure\nthat we only start using it after all call sites are active.  This is\nachieved by having a per-memcg flag that is only updated after\nstatic_key_slow_inc() returns.  At this time, we are sure all sites are\nactive.\n\nThis is made per-memcg, not global, for a reason: it also has the effect\nof making socket accounting more consistent.  The first memcg to be\nlimited will trigger static_key() activation, therefore, accounting.  But\nall the others will then be accounted no matter what.  After this patch,\nonly limited memcgs will have its sockets accounted.\n\n[akpm@linux-foundation.org: move enum sock_flag_bits into sock.h,\n                            document enum sock_flag_bits,\n                            convert memcg_proto_active() and memcg_proto_activated() to test_bit(),\n                            redo tcp_update_limit() comment to 80 cols]\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Li Zefan \u003clizefan@huawei.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fa9add641b1b1c564db916accac1db346e7a2759",
      "tree": "875e74ec4d7fed0018fdbc134ad899949c5e3384",
      "parents": [
        "75b00af77ed5b5a3d55549f9e0c33f3969b9330c"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Tue May 29 15:07:09 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:28 2012 -0700"
      },
      "message": "mm/memcg: apply add/del_page to lruvec\n\nTake lruvec further: pass it instead of zone to add_page_to_lru_list() and\ndel_page_from_lru_list(); and pagevec_lru_move_fn() pass lruvec down to\nits target functions.\n\nThis cleanup eliminates a swathe of cruft in memcontrol.c, including\nmem_cgroup_lru_add_list(), mem_cgroup_lru_del_list() and\nmem_cgroup_lru_move_lists() - which never actually touched the lists.\n\nIn their place, mem_cgroup_page_lruvec() to decide the lruvec, previously\na side-effect of add, and mem_cgroup_update_lru_size() to maintain the\nlru_size stats.\n\nWhilst these are simplifications in their own right, the goal is to bring\nthe evaluation of lruvec next to the spin_locking of the lrus, in\npreparation for a future patch.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4d7dcca213921fbaf08ee05359d28e4aaf2245f1",
      "tree": "1c31ea8e8f9f88ca60864fbdaf9dfa74b09be96f",
      "parents": [
        "af7c4b0ec257ea9abb9c6749dd5a5ba0b8fae1fd"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Tue May 29 15:07:08 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:28 2012 -0700"
      },
      "message": "mm/memcg: get_lru_size not get_lruvec_size\n\nKonstantin just introduced mem_cgroup_get_lruvec_size() and\nget_lruvec_size(), I\u0027m about to add mem_cgroup_update_lru_size(): but\nwe\u0027re dealing with the same thing, lru_size[lru].  We ought to agree on\nthe naming, and I do think lru_size is the more correct: so rename his\nones to get_lru_size().\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "04eac7ffdea1090f81bc33bd8f4bf072b1fe5bdb",
      "tree": "8ee96376aa4c1d21500dcaa52e074ef5dfe71a58",
      "parents": [
        "2f3479b1478e223f142fe9cd27a2d2a4c3573c53"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue May 29 15:07:05 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:27 2012 -0700"
      },
      "message": "rescounter: remove __must_check from res_counter_charge_nofail()\n\nSince we will succeed with the allocation no matter what, there isn\u0027t a\nneed to use __must_check with it.  It can very well be optional.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nReviewed-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2bb2ba9d51a8044a71a29608d2c4ef8f5b2d57a2",
      "tree": "5e58869c606c541d41a9bfa62aa6e8bc42cae5ac",
      "parents": [
        "f9be23d6da035241b7687b25e64401171986dcef"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue May 29 15:07:03 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:27 2012 -0700"
      },
      "message": "rescounters: add res_counter_uncharge_until()\n\nWhen killing a res_counter which is a child of other counter, we need to\ndo\n\n\tres_counter_uncharge(child, xxx)\n\tres_counter_charge(parent, xxx)\n\nThis is not atomic and wastes CPU.  This patch adds\nres_counter_uncharge_until().  This function\u0027s uncharge propagates to\nancestors until specified res_counter.\n\n\tres_counter_uncharge_until(child, parent, xxx)\n\nNow the operation is atomic and efficient.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: Glauber Costa \u003cglommer@parallels.com\u003e\nReviewed-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c56d5c7dfeb5cc754e17fa3d423086a3c551c219",
      "tree": "4c89ad9692dbd3a2e0eaf96de0162a5d3066925e",
      "parents": [
        "074291fea8bcedeabf295360e2ddd9bbb5830b4a"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Tue May 29 15:07:00 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:26 2012 -0700"
      },
      "message": "mm/vmscan: push lruvec pointer into inactive_list_is_low()\n\nSwitch mem_cgroup_inactive_anon_is_low() to lruvec pointers,\nmem_cgroup_get_lruvec_size() is more effective than\nmem_cgroup_zone_nr_lru_pages()\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Hugh Dickins \u003chughd@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": "074291fea8bcedeabf295360e2ddd9bbb5830b4a",
      "tree": "01531a2ca7e9b648a4d8cd9bc772aa484ed2190d",
      "parents": [
        "27ac81d85e5cfcc755dd5fa3f04dc883ab5d821b"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Tue May 29 15:07:00 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:26 2012 -0700"
      },
      "message": "mm/vmscan: replace zone_nr_lru_pages() with get_lruvec_size()\n\nIf memory cgroup is enabled we always use lruvecs which are embedded into\nstruct mem_cgroup_per_zone, so we can reach lru_size counters via\ncontainer_of().\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Hugh Dickins \u003chughd@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": "7f5e86c2ccc1480946d2c869d7f7d5278e828092",
      "tree": "704612422963868042c9d240b4a395bd7bce8469",
      "parents": [
        "9e3b2f8cd340e13353a44c9a34caef2848131ed7"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Tue May 29 15:06:58 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:26 2012 -0700"
      },
      "message": "mm: add link from struct lruvec to struct zone\n\nThis is the first stage of struct mem_cgroup_zone removal.  Further\npatches replace struct mem_cgroup_zone with a pointer to struct lruvec.\n\nIf CONFIG_CGROUP_MEM_RES_CTLR\u003dn lruvec_zone() is just container_of().\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Hugh Dickins \u003chughd@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": "bbf808ed7de68fdf626fd4f9718d88cf03ce13a9",
      "tree": "91f3dc3eb619f2b809cdd9c1239a6db0e62c97ed",
      "parents": [
        "f3fd4a61928a5edf5b033a417e761b488b43e203"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Tue May 29 15:06:54 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:25 2012 -0700"
      },
      "message": "mm/memcg: kill mem_cgroup_lru_del()\n\nThis patch kills mem_cgroup_lru_del(), we can use\nmem_cgroup_lru_del_list() instead.  On 0-order isolation we already have\nright lru list id.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Minchan Kim \u003cminchan@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": "f3fd4a61928a5edf5b033a417e761b488b43e203",
      "tree": "f56c5b6f4a4c732c9167e4cacb3e9c25ced0d000",
      "parents": [
        "014483bcccc5edbf861d89dc1a6f7cdc02f9f4c0"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Tue May 29 15:06:54 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:25 2012 -0700"
      },
      "message": "mm: remove lru type checks from __isolate_lru_page()\n\nAfter patch \"mm: forbid lumpy-reclaim in shrink_active_list()\" we can\ncompletely remove anon/file and active/inactive lru type filters from\n__isolate_lru_page(), because isolation for 0-order reclaim always\nisolates pages from right lru list.  And pages-isolation for lumpy\nshrink_inactive_list() or memory-compaction anyway allowed to isolate\npages from all evictable lru lists.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Minchan Kim \u003cminchan@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": "014483bcccc5edbf861d89dc1a6f7cdc02f9f4c0",
      "tree": "82bd32af5d1d7322b7ad1cc00b2c6ded99834031",
      "parents": [
        "3cb9945179bd04e9282f31a1173ac11b1300c462"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Tue May 29 15:06:53 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:25 2012 -0700"
      },
      "message": "mm: mark mm-inline functions as __always_inline\n\nGCC sometimes ignores \"inline\" directives even for small and simple functions.\nThis supposed to be fixed in gcc 4.7, but it was released only yesterday.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Minchan Kim \u003cminchan@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": "89abfab133ef1f5902abafb744df72793213ac19",
      "tree": "29df29e2a34a0af3649417d2e430480c7e7e5fa1",
      "parents": [
        "c3c787e8c38557ccf44c670d73aebe630a2b1479"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Tue May 29 15:06:53 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:25 2012 -0700"
      },
      "message": "mm/memcg: move reclaim_stat into lruvec\n\nWith mem_cgroup_disabled() now explicit, it becomes clear that the\nzone_reclaim_stat structure actually belongs in lruvec, per-zone when\nmemcg is disabled but per-memcg per-zone when it\u0027s enabled.\n\nWe can delete mem_cgroup_get_reclaim_stat(), and change\nupdate_page_reclaim_stat() to update just the one set of stats, the one\nwhich get_scan_count() will actually use.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nReviewed-by: Minchan Kim \u003cminchan@kernel.org\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4b91355e9dc9ac1eb3d69e56de093899ff2677ef",
      "tree": "b6d18618013eadd3b3e3144c90b16d0d5f07b3af",
      "parents": [
        "181eb39425f2b9275afcb015eaa547d11f71a02f"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue May 29 15:06:51 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:24 2012 -0700"
      },
      "message": "memcg: fix/change behavior of shared anon at moving task\n\nThis patch changes memcg\u0027s behavior at task_move().\n\nAt task_move(), the kernel scans a task\u0027s page table and move the changes\nfor mapped pages from source cgroup to target cgroup.  There has been a\nbug at handling shared anonymous pages for a long time.\n\nBefore patch:\n  - The spec says \u0027shared anonymous pages are not moved.\u0027\n  - The implementation was \u0027shared anonymoys pages may be moved\u0027.\n    If page_mapcount \u003c\u003d2, shared anonymous pages\u0027s charge were moved.\n\nAfter patch:\n  - The spec says \u0027all anonymous pages are moved\u0027.\n  - The implementation is \u0027all anonymous pages are moved\u0027.\n\nConsidering usage of memcg, this will not affect user\u0027s experience.\n\u0027shared anonymous\u0027 pages only exists between a tree of processes which\ndon\u0027t do exec().  Moving one of process without exec() seems not sane.\nFor example, libcgroup will not be affected by this change.  (Anyway, no\none noticed the implementation for a long time...)\n\nBelow is a discussion log:\n\n - current spec/implementation are complex\n - Now, shared file caches are moved\n - It adds unclear check as page_mapcount(). To do correct check,\n   we should check swap users, etc.\n - No one notice this implementation behavior. So, no one get benefit\n   from the design.\n - In general, once task is moved to a cgroup for running, it will not\n   be moved....\n - Finally, we have control knob as memory.move_charge_at_immigrate.\n\nHere is a patch to allow moving shared pages, completely. This makes\nmemcg simpler and fix current broken code.\n\nSuggested-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: Glauber Costa \u003cglommer@parallels.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5bf5f03c271907978489868a4c72aeb42b5127d2",
      "tree": "2d6b283fa5ee83b723fd4b4a8f070ae53c60ebe9",
      "parents": [
        "dbda591d920b4c7692725b13e3f68ecb251e9080"
      ],
      "author": {
        "name": "Pravin B Shelar",
        "email": "pshelar@nicira.com",
        "time": "Tue May 29 15:06:49 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:24 2012 -0700"
      },
      "message": "mm: fix slab-\u003epage flags corruption\n\nTransparent huge pages can change page-\u003eflags (PG_compound_lock) without\ntaking Slab lock.  Since THP can not break slab pages we can safely access\ncompound page without taking compound lock.\n\nSpecifically this patch fixes a race between compound_unlock() and slab\nfunctions which perform page-flags updates.  This can occur when\nget_page()/put_page() is called on a page from slab.\n\n[akpm@linux-foundation.org: tweak comment text, fix comment layout, fix label indenting]\nReported-by: Amey Bhide \u003cabhide@nicira.com\u003e\nSigned-off-by: Pravin B Shelar \u003cpshelar@nicira.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux.com\u003e\nAcked-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "26c191788f18129af0eb32a358cdaea0c7479626",
      "tree": "21d30812d2e092a940ba81750f75080ce5eb5ae4",
      "parents": [
        "a7f638f999ff42310e9582273b1fe25ea6e469ba"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Tue May 29 15:06:49 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:24 2012 -0700"
      },
      "message": "mm: pmd_read_atomic: fix 32bit PAE pmd walk vs pmd_populate SMP race condition\n\nWhen holding the mmap_sem for reading, pmd_offset_map_lock should only\nrun on a pmd_t that has been read atomically from the pmdp pointer,\notherwise we may read only half of it leading to this crash.\n\nPID: 11679  TASK: f06e8000  CPU: 3   COMMAND: \"do_race_2_panic\"\n #0 [f06a9dd8] crash_kexec at c049b5ec\n #1 [f06a9e2c] oops_end at c083d1c2\n #2 [f06a9e40] no_context at c0433ded\n #3 [f06a9e64] bad_area_nosemaphore at c043401a\n #4 [f06a9e6c] __do_page_fault at c0434493\n #5 [f06a9eec] do_page_fault at c083eb45\n #6 [f06a9f04] error_code (via page_fault) at c083c5d5\n    EAX: 01fb470c EBX: fff35000 ECX: 00000003 EDX: 00000100 EBP:\n    00000000\n    DS:  007b     ESI: 9e201000 ES:  007b     EDI: 01fb4700 GS:  00e0\n    CS:  0060     EIP: c083bc14 ERR: ffffffff EFLAGS: 00010246\n #7 [f06a9f38] _spin_lock at c083bc14\n #8 [f06a9f44] sys_mincore at c0507b7d\n #9 [f06a9fb0] system_call at c083becd\n                         start           len\n    EAX: ffffffda  EBX: 9e200000  ECX: 00001000  EDX: 6228537f\n    DS:  007b      ESI: 00000000  ES:  007b      EDI: 003d0f00\n    SS:  007b      ESP: 62285354  EBP: 62285388  GS:  0033\n    CS:  0073      EIP: 00291416  ERR: 000000da  EFLAGS: 00000286\n\nThis should be a longstanding bug affecting x86 32bit PAE without THP.\nOnly archs with 64bit large pmd_t and 32bit unsigned long should be\naffected.\n\nWith THP enabled the barrier() in pmd_none_or_trans_huge_or_clear_bad()\nwould partly hide the bug when the pmd transition from none to stable,\nby forcing a re-read of the *pmd in pmd_offset_map_lock, but when THP is\nenabled a new set of problem arises by the fact could then transition\nfreely in any of the none, pmd_trans_huge or pmd_trans_stable states.\nSo making the barrier in pmd_none_or_trans_huge_or_clear_bad()\nunconditional isn\u0027t good idea and it would be a flakey solution.\n\nThis should be fully fixed by introducing a pmd_read_atomic that reads\nthe pmd in order with THP disabled, or by reading the pmd atomically\nwith cmpxchg8b with THP enabled.\n\nLuckily this new race condition only triggers in the places that must\nalready be covered by pmd_none_or_trans_huge_or_clear_bad() so the fix\nis localized there but this bug is not related to THP.\n\nNOTE: this can trigger on x86 32bit systems with PAE enabled with more\nthan 4G of ram, otherwise the high part of the pmd will never risk to be\ntruncated because it would be zero at all times, in turn so hiding the\nSMP race.\n\nThis bug was discovered and fully debugged by Ulrich, quote:\n\n----\n[..]\npmd_none_or_trans_huge_or_clear_bad() loads the content of edx and\neax.\n\n    496 static inline int pmd_none_or_trans_huge_or_clear_bad(pmd_t\n    *pmd)\n    497 {\n    498         /* depend on compiler for an atomic pmd read */\n    499         pmd_t pmdval \u003d *pmd;\n\n                                // edi \u003d pmd pointer\n0xc0507a74 \u003csys_mincore+548\u003e:   mov    0x8(%esp),%edi\n...\n                                // edx \u003d PTE page table high address\n0xc0507a84 \u003csys_mincore+564\u003e:   mov    0x4(%edi),%edx\n...\n                                // eax \u003d PTE page table low address\n0xc0507a8e \u003csys_mincore+574\u003e:   mov    (%edi),%eax\n\n[..]\n\nPlease note that the PMD is not read atomically. These are two \"mov\"\ninstructions where the high order bits of the PMD entry are fetched\nfirst. Hence, the above machine code is prone to the following race.\n\n-  The PMD entry {high|low} is 0x0000000000000000.\n   The \"mov\" at 0xc0507a84 loads 0x00000000 into edx.\n\n-  A page fault (on another CPU) sneaks in between the two \"mov\"\n   instructions and instantiates the PMD.\n\n-  The PMD entry {high|low} is now 0x00000003fda38067.\n   The \"mov\" at 0xc0507a8e loads 0xfda38067 into eax.\n----\n\nReported-by: Ulrich Obergfell \u003cuobergfe@redhat.com\u003e\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Larry Woodman \u003clwoodman@redhat.com\u003e\nCc: Petr Matousek \u003cpmatouse@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\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": "a7f638f999ff42310e9582273b1fe25ea6e469ba",
      "tree": "174dec4d849b78023a23a15d5947cf1d3be9f564",
      "parents": [
        "fe35004fbf9eaf67482b074a2e032abb9c89b1dd"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue May 29 15:06:47 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:24 2012 -0700"
      },
      "message": "mm, oom: normalize oom scores to oom_score_adj scale only for userspace\n\nThe oom_score_adj scale ranges from -1000 to 1000 and represents the\nproportion of memory available to the process at allocation time.  This\nmeans an oom_score_adj value of 300, for example, will bias a process as\nthough it was using an extra 30.0% of available memory and a value of\n-350 will discount 35.0% of available memory from its usage.\n\nThe oom killer badness heuristic also uses this scale to report the oom\nscore for each eligible process in determining the \"best\" process to\nkill.  Thus, it can only differentiate each process\u0027s memory usage by\n0.1% of system RAM.\n\nOn large systems, this can end up being a large amount of memory: 256MB\non 256GB systems, for example.\n\nThis can be fixed by having the badness heuristic to use the actual\nmemory usage in scoring threads and then normalizing it to the\noom_score_adj scale for userspace.  This results in better comparison\nbetween eligible threads for kill and no change from the userspace\nperspective.\n\nSuggested-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nTested-by: Dave Jones \u003cdavej@redhat.com\u003e\nSigned-off-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": "17cf28afea2a1112f240a3a2da8af883be024811",
      "tree": "ed9e3eb9b1d44118a12e4ecdf369e3b9b3208be1",
      "parents": [
        "3f31d07571eeea18a7d34db9af21d2285b807a17"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Tue May 29 15:06:41 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:23 2012 -0700"
      },
      "message": "mm/fs: remove truncate_range\n\nRemove vmtruncate_range(), and remove the truncate_range method from\nstruct inode_operations: only tmpfs ever supported it, and tmpfs has now\nconverted over to using the fallocate method of file_operations.\n\nUpdate Documentation accordingly, adding (setlease and) fallocate lines.\nAnd while we\u0027re in mm.h, remove duplicate declarations of shmem_lock() and\nshmem_file_setup(): everyone is now using the ones in shmem_fs.h.\n\nBased-on-patch-by: Cong Wang \u003camwang@redhat.com\u003e\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Cong Wang \u003camwang@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bde05d1ccd512696b09db9dd2e5f33ad19152605",
      "tree": "affa2c836136cac6ec0e503ce8996670d385ebbb",
      "parents": [
        "5ceb9ce6fe9462a298bb2cd5c9f1ca6cb80a0199"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Tue May 29 15:06:38 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:22 2012 -0700"
      },
      "message": "shmem: replace page if mapping excludes its zone\n\nThe GMA500 GPU driver uses GEM shmem objects, but with a new twist: the\nbacking RAM has to be below 4GB.  Not a problem while the boards\nsupported only 4GB: but now Intel\u0027s D2700MUD boards support 8GB, and\ntheir GMA3600 is managed by the GMA500 driver.\n\nshmem/tmpfs has never pretended to support hardware restrictions on the\nbacking memory, but it might have appeared to do so before v3.1, and\neven now it works fine until a page is swapped out then back in.  When\nread_cache_page_gfp() supplied a freshly allocated page for copy, that\ncompensated for whatever choice might have been made by earlier swapin\nreadahead; but swapoff was likely to destroy the illusion.\n\nWe\u0027d like to continue to support GMA500, so now add a new\nshmem_should_replace_page() check on the zone when about to move a page\nfrom swapcache to filecache (in swapin and swapoff cases), with\nshmem_replace_page() to allocate and substitute a suitable page (given\ngma500/gem.c\u0027s mapping_set_gfp_mask GFP_KERNEL | __GFP_DMA32).\n\nThis does involve a minor extension to mem_cgroup_replace_page_cache()\n(the page may or may not have already been charged); and I\u0027ve removed a\ncomment and call to mem_cgroup_uncharge_cache_page(), which in fact is\nalways a no-op while PageSwapCache.\n\nAlso removed optimization of an unlikely path in shmem_getpage_gfp(),\nnow that we need to check PageSwapCache more carefully (a racing caller\nmight already have made the copy).  And at one point shmem_unuse_inode()\nneeds to use the hitherto private page_swapcount(), to guard against\nracing with inode eviction.\n\nIt would make sense to extend shmem_should_replace_page(), to cover\ncpuset and NUMA mempolicy restrictions too, but set that aside for now:\nneeds a cleanup of shmem mempolicy handling, and more testing, and ought\nto handle swap faults in do_swap_page() as well as shmem.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Stephane Marchesin \u003cmarcheu@chromium.org\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Dave Airlie \u003cairlied@gmail.com\u003e\nCc: Daniel Vetter \u003cdaniel@ffwll.ch\u003e\nCc: Rob Clark \u003crob.clark@linaro.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5ceb9ce6fe9462a298bb2cd5c9f1ca6cb80a0199",
      "tree": "52a6d3c27eceb8848a8e8d7e3de9e39ff8cc680c",
      "parents": [
        "238305bb4d418c95977162ba13c11880685fc731"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "b.zolnierkie@samsung.com",
        "time": "Tue May 29 15:06:37 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:22 2012 -0700"
      },
      "message": "mm: compaction: handle incorrect MIGRATE_UNMOVABLE type pageblocks\n\nWhen MIGRATE_UNMOVABLE pages are freed from MIGRATE_UNMOVABLE type\npageblock (and some MIGRATE_MOVABLE pages are left in it) waiting until an\nallocation takes ownership of the block may take too long.  The type of\nthe pageblock remains unchanged so the pageblock cannot be used as a\nmigration target during compaction.\n\nFix it by:\n\n* Adding enum compact_mode (COMPACT_ASYNC_[MOVABLE,UNMOVABLE], and\n  COMPACT_SYNC) and then converting sync field in struct compact_control\n  to use it.\n\n* Adding nr_pageblocks_skipped field to struct compact_control and\n  tracking how many destination pageblocks were of MIGRATE_UNMOVABLE type.\n   If COMPACT_ASYNC_MOVABLE mode compaction ran fully in\n  try_to_compact_pages() (COMPACT_COMPLETE) it implies that there is not a\n  suitable page for allocation.  In this case then check how if there were\n  enough MIGRATE_UNMOVABLE pageblocks to try a second pass in\n  COMPACT_ASYNC_UNMOVABLE mode.\n\n* Scanning the MIGRATE_UNMOVABLE pageblocks (during COMPACT_SYNC and\n  COMPACT_ASYNC_UNMOVABLE compaction modes) and building a count based on\n  finding PageBuddy pages, page_count(page) \u003d\u003d 0 or PageLRU pages.  If all\n  pages within the MIGRATE_UNMOVABLE pageblock are in one of those three\n  sets change the whole pageblock type to MIGRATE_MOVABLE.\n\nMy particular test case (on a ARM EXYNOS4 device with 512 MiB, which means\n131072 standard 4KiB pages in \u0027Normal\u0027 zone) is to:\n\n- allocate 120000 pages for kernel\u0027s usage\n- free every second page (60000 pages) of memory just allocated\n- allocate and use 60000 pages from user space\n- free remaining 60000 pages of kernel memory\n  (now we have fragmented memory occupied mostly by user space pages)\n- try to allocate 100 order-9 (2048 KiB) pages for kernel\u0027s usage\n\nThe results:\n- with compaction disabled I get 11 successful allocations\n- with compaction enabled - 14 successful allocations\n- with this patch I\u0027m able to get all 100 successful allocations\n\nNOTE: If we can make kswapd aware of order-0 request during compaction, we\ncan enhance kswapd with changing mode to COMPACT_ASYNC_FULL\n(COMPACT_ASYNC_MOVABLE + COMPACT_ASYNC_UNMOVABLE).  Please see the\nfollowing thread:\n\n\thttp://marc.info/?l\u003dlinux-mm\u0026m\u003d133552069417068\u0026w\u003d2\n\n[minchan@kernel.org: minor cleanups]\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cb.zolnierkie@samsung.com\u003e\nSigned-off-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "238305bb4d418c95977162ba13c11880685fc731",
      "tree": "43f578a711e85af44b1b1b43e8f32ef86490486f",
      "parents": [
        "e9079911e6c8fb7882de142de76f3ee49b54e000"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Tue May 29 15:06:36 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:22 2012 -0700"
      },
      "message": "mm: remove sparsemem allocation details from the bootmem allocator\n\nalloc_bootmem_section() derives allocation area constraints from the\nspecified sparsemem section.  This is a bit specific for a generic memory\nallocator like bootmem, though, so move it over to sparsemem.\n\nAs __alloc_bootmem_node_nopanic() already retries failed allocations with\nrelaxed area constraints, the fallback code in sparsemem.c can be removed\nand the code becomes a bit more compact overall.\n\n[akpm@linux-foundation.org: fix build]\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Gavin Shan \u003cshangw@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2099597401c7710c00b0d7c32b24a44a193836e1",
      "tree": "863cf3549736abd10d747405708aceb21f9c5114",
      "parents": [
        "e30d539b3fe76f5bb71e069dcbfa47a1c2e6da3b"
      ],
      "author": {
        "name": "Alex Shi",
        "email": "alex.shi@intel.com",
        "time": "Tue May 29 15:06:31 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:21 2012 -0700"
      },
      "message": "mm: move is_vma_temporary_stack() declaration to huge_mm.h\n\nWhen transparent_hugepage_enabled() is used outside mm/, such as in\narch/x86/xx/tlb.c:\n\n+       if (!cpu_has_invlpg || vma-\u003evm_flags \u0026 VM_HUGETLB\n+                       || transparent_hugepage_enabled(vma)) {\n+               flush_tlb_mm(vma-\u003evm_mm);\n\nis_vma_temporary_stack() isn\u0027t referenced in huge_mm.h, so it has compile\nerrors:\n\n  arch/x86/mm/tlb.c: In function `flush_tlb_range\u0027:\n  arch/x86/mm/tlb.c:324:4: error: implicit declaration of function `is_vma_temporary_stack\u0027 [-Werror\u003dimplicit-function-declaration]\n\nSince is_vma_temporay_stack() is just used in rmap.c and huge_memory.c, it\nis better to move it to huge_mm.h from rmap.h to avoid such errors.\n\nSigned-off-by: Alex Shi \u003calex.shi@intel.com\u003e\nCc: Andrea Arcangeli \u003caarcange@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": "9295b7a07c859a42346221b5839be0ae612333b0",
      "tree": "67efb39934130c62eb899d02214c0fd68d4128f5",
      "parents": [
        "a62e2f4f508863da8e0c2f2b42f5252a87330297"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@akkadia.org",
        "time": "Tue May 29 15:06:30 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:21 2012 -0700"
      },
      "message": "kbuild: install kernel-page-flags.h\n\nPrograms using /proc/kpageflags need to know about the various flags.  The\n\u003clinux/kernel-page-flags.h\u003e provides them and the comments in the file\nindicate that it is supposed to be used by user-level code.  But the file\nis not installed.\n\nInstall the headers and mark the unstable flags as out-of-bounds.  The\npage-type tool is also adjusted to not duplicate the definitions\n\nSigned-off-by: Ulrich Drepper \u003cdrepper@gmail.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "02602a18c32d76f0e0f50eefa91b2d53c8a3a751",
      "tree": "64a2645d05cd57731e7d2f5bd0ef390de8b5e76b",
      "parents": [
        "baf05aa9271bdbc07d3160035a231abc5fbd429a"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Tue May 29 15:06:28 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:20 2012 -0700"
      },
      "message": "bug: completely remove code generated by disabled VM_BUG_ON()\n\nEven if CONFIG_DEBUG_VM\u003dn gcc genereates code for some VM_BUG_ON()\n\nfor example VM_BUG_ON(!PageCompound(page) || !PageHead(page)); in\ndo_huge_pmd_wp_page() generates 114 bytes of code.\n\nBut they mostly disappears when I split this VM_BUG_ON into two:\n\n  -VM_BUG_ON(!PageCompound(page) || !PageHead(page));\n  +VM_BUG_ON(!PageCompound(page));\n  +VM_BUG_ON(!PageHead(page));\n\nweird... but anyway after this patch code disappears completely.\n\n  add/remove: 0/0 grow/shrink: 7/97 up/down: 135/-1784 (-1649)\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Cong Wang \u003cxiyou.wangcong@gmail.com\u003e\nCc: Hugh Dickins \u003chughd@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": "baf05aa9271bdbc07d3160035a231abc5fbd429a",
      "tree": "201c4f1df332fa2baef4ddfeda6806faf9e2dbc8",
      "parents": [
        "5febcbe99d4766cc383909c447e002e63d8b4592"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Tue May 29 15:06:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:20 2012 -0700"
      },
      "message": "bug: introduce BUILD_BUG_ON_INVALID() macro\n\nSometimes we want to check some expressions correctness at compile time.\n\"(void)(e);\" or \"if (e);\" can be dangerous if the expression has\nside-effects, and gcc sometimes generates a lot of code, even if the\nexpression has no effect.\n\nThis patch introduces macro BUILD_BUG_ON_INVALID() for such checks, it\nforces a compilation error if expression is invalid without any extra\ncode.\n\n[Cast to \"long\" required because sizeof does not work for bit-fields.]\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Cong Wang \u003cxiyou.wangcong@gmail.com\u003e\nCc: Hugh Dickins \u003chughd@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": "c3ac9a8ade65ccbfd145fbff895ae8d8d62d09b0",
      "tree": "4df684151388ffa6407d714dd39d1fe94f72d424",
      "parents": [
        "91c63734f6908425903aed69c04035592f18d398"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Tue May 29 15:06:25 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:20 2012 -0700"
      },
      "message": "mm: memcg: count pte references from every member of the reclaimed hierarchy\n\nThe rmap walker checking page table references has historically ignored\nreferences from VMAs that were not part of the memcg that was being\nreclaimed during memcg hard limit reclaim.\n\nWhen transitioning global reclaim to memcg hierarchy reclaim, I missed\nthat bit and now references from outside a memcg are ignored even during\nglobal reclaim.\n\nReverting back to traditional behaviour - count all references during\nglobal reclaim and only mind references of the memcg being reclaimed\nduring limit reclaim would be one option.\n\nHowever, the more generic idea is to ignore references exactly then when\nthey are outside the hierarchy that is currently under reclaim; because\nonly then will their reclamation be of any use to help the pressure\nsituation.  It makes no sense to ignore references from a sibling memcg\nand then evict a page that will be immediately refaulted by that sibling\nwhich contributes to the same usage of the common ancestor under\nreclaim.\n\nThe solution: make the rmap walker ignore references from VMAs that are\nnot part of the hierarchy that is being reclaimed.\n\nFlat limit reclaim will stay the same, hierarchical limit reclaim will\nmind the references only to pages that the hierarchy owns.  Global\nreclaim, since it reclaims from all memcgs, will be fixed to regard all\nreferences.\n\n[akpm@linux-foundation.org: name the args in the declaration]\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReported-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nAcked-by: Konstantin Khlebnikov\u003ckhlebnikov@openvz.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.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": "0ce72d4f7333248efbef1f3309770c7edb1b2625",
      "tree": "a4de6ed7c23962ed62a9f4f64a05c75db51a9833",
      "parents": [
        "4a5b18cc1971046d9ca3a29fdcafbe5648629585"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue May 29 15:06:24 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:20 2012 -0700"
      },
      "message": "mm: do_migrate_pages(): rename arguments\n\ns/from_nodes/from and s/to_nodes/to/.  The \"_nodes\" is redundant - it\nduplicates the argument\u0027s type.\n\nDone in a fit of irritation over 80-col issues :(\n\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003cmkosaki@redhat.com\u003e\nCc: Larry Woodman \u003clwoodman@redhat.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": "23b9da55c5b0feb484bd5e8615f4eb1ce4169453",
      "tree": "84ce2cce4aca6c5e5ca4b7066faa21db1148b370",
      "parents": [
        "41ac1999c3e3563e1810b14878a869c79c9368bb"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue May 29 15:06:20 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:19 2012 -0700"
      },
      "message": "mm: vmscan: remove reclaim_mode_t\n\nThere is little motiviation for reclaim_mode_t once RECLAIM_MODE_[A]SYNC\nand lumpy reclaim have been removed.  This patch gets rid of\nreclaim_mode_t as well and improves the documentation about what\nreclaim/compaction is and when it is triggered.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "41ac1999c3e3563e1810b14878a869c79c9368bb",
      "tree": "3ee7d3778dd638ae1f429444af4ea0360cca191f",
      "parents": [
        "c53919adc045bf803252e912f23028a68525753d"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue May 29 15:06:19 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:19 2012 -0700"
      },
      "message": "mm: vmscan: do not stall on writeback during memory compaction\n\nThis patch stops reclaim/compaction entering sync reclaim as this was\nonly intended for lumpy reclaim and an oversight.  Page migration has\nits own logic for stalling on writeback pages if necessary and memory\ncompaction is already using it.\n\nWaiting on page writeback is bad for a number of reasons but the primary\none is that waiting on writeback to a slow device like USB can take a\nconsiderable length of time.  Page reclaim instead uses\nwait_iff_congested() to throttle if too many dirty pages are being\nscanned.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c53919adc045bf803252e912f23028a68525753d",
      "tree": "352361d84125b06ca890f3a2b3568512cc14c458",
      "parents": [
        "e709ffd6169ccd259eb5874e853303e91e94e829"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue May 29 15:06:19 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:19 2012 -0700"
      },
      "message": "mm: vmscan: remove lumpy reclaim\n\nThis series removes lumpy reclaim and some stalling logic that was\nunintentionally being used by memory compaction.  The end result is that\nstalling on dirty pages during page reclaim now depends on\nwait_iff_congested().\n\nFour kernels were compared\n\n  3.3.0     vanilla\n  3.4.0-rc2 vanilla\n  3.4.0-rc2 lumpyremove-v2 is patch one from this series\n  3.4.0-rc2 nosync-v2r3 is the full series\n\nRemoving lumpy reclaim saves almost 900 bytes of text whereas the full\nseries removes 1200 bytes.\n\n     text     data      bss       dec     hex  filename\n  6740375  1927944  2260992  10929311  a6c49f  vmlinux-3.4.0-rc2-vanilla\n  6739479  1927944  2260992  10928415  a6c11f  vmlinux-3.4.0-rc2-lumpyremove-v2\n  6739159  1927944  2260992  10928095  a6bfdf  vmlinux-3.4.0-rc2-nosync-v2\n\nThere are behaviour changes in the series and so tests were run with\nmonitoring of ftrace events.  This disrupts results so the performance\nresults are distorted but the new behaviour should be clearer.\n\nfs-mark running in a threaded configuration showed little of interest as\nit did not push reclaim aggressively\n\n  FS-Mark Multi Threaded\n                          3.3.0-vanilla       rc2-vanilla       lumpyremove-v2r3       nosync-v2r3\n  Files/s  min           3.20 ( 0.00%)        3.20 ( 0.00%)        3.20 ( 0.00%)        3.20 ( 0.00%)\n  Files/s  mean          3.20 ( 0.00%)        3.20 ( 0.00%)        3.20 ( 0.00%)        3.20 ( 0.00%)\n  Files/s  stddev        0.00 ( 0.00%)        0.00 ( 0.00%)        0.00 ( 0.00%)        0.00 ( 0.00%)\n  Files/s  max           3.20 ( 0.00%)        3.20 ( 0.00%)        3.20 ( 0.00%)        3.20 ( 0.00%)\n  Overhead min      508667.00 ( 0.00%)   521350.00 (-2.49%)   544292.00 (-7.00%)   547168.00 (-7.57%)\n  Overhead mean     551185.00 ( 0.00%)   652690.73 (-18.42%)   991208.40 (-79.83%)   570130.53 (-3.44%)\n  Overhead stddev    18200.69 ( 0.00%)   331958.29 (-1723.88%)  1579579.43 (-8578.68%)     9576.81 (47.38%)\n  Overhead max      576775.00 ( 0.00%)  1846634.00 (-220.17%)  6901055.00 (-1096.49%)   585675.00 (-1.54%)\n  MMTests Statistics: duration\n  Sys Time Running Test (seconds)             309.90    300.95    307.33    298.95\n  User+Sys Time Running Test (seconds)        319.32    309.67    315.69    307.51\n  Total Elapsed Time (seconds)               1187.85   1193.09   1191.98   1193.73\n\n  MMTests Statistics: vmstat\n  Page Ins                                       80532       82212       81420       79480\n  Page Outs                                  111434984   111456240   111437376   111582628\n  Swap Ins                                           0           0           0           0\n  Swap Outs                                          0           0           0           0\n  Direct pages scanned                           44881       27889       27453       34843\n  Kswapd pages scanned                        25841428    25860774    25861233    25843212\n  Kswapd pages reclaimed                      25841393    25860741    25861199    25843179\n  Direct pages reclaimed                         44881       27889       27453       34843\n  Kswapd efficiency                                99%         99%         99%         99%\n  Kswapd velocity                            21754.791   21675.460   21696.029   21649.127\n  Direct efficiency                               100%        100%        100%        100%\n  Direct velocity                               37.783      23.375      23.031      29.188\n  Percentage direct scans                           0%          0%          0%          0%\n\nftrace showed that there was no stalling on writeback or pages submitted\nfor IO from reclaim context.\n\npostmark was similar and while it was more interesting, it also did not\npush reclaim heavily.\n\n  POSTMARK\n                                       3.3.0-vanilla       rc2-vanilla  lumpyremove-v2r3       nosync-v2r3\n  Transactions per second:               16.00 ( 0.00%)    20.00 (25.00%)    18.00 (12.50%)    17.00 ( 6.25%)\n  Data megabytes read per second:        18.80 ( 0.00%)    24.27 (29.10%)    22.26 (18.40%)    20.54 ( 9.26%)\n  Data megabytes written per second:     35.83 ( 0.00%)    46.25 (29.08%)    42.42 (18.39%)    39.14 ( 9.24%)\n  Files created alone per second:        28.00 ( 0.00%)    38.00 (35.71%)    34.00 (21.43%)    30.00 ( 7.14%)\n  Files create/transact per second:       8.00 ( 0.00%)    10.00 (25.00%)     9.00 (12.50%)     8.00 ( 0.00%)\n  Files deleted alone per second:       556.00 ( 0.00%)  1224.00 (120.14%)  3062.00 (450.72%)  6124.00 (1001.44%)\n  Files delete/transact per second:       8.00 ( 0.00%)    10.00 (25.00%)     9.00 (12.50%)     8.00 ( 0.00%)\n\n  MMTests Statistics: duration\n  Sys Time Running Test (seconds)             113.34    107.99    109.73    108.72\n  User+Sys Time Running Test (seconds)        145.51    139.81    143.32    143.55\n  Total Elapsed Time (seconds)               1159.16    899.23    980.17   1062.27\n\n  MMTests Statistics: vmstat\n  Page Ins                                    13710192    13729032    13727944    13760136\n  Page Outs                                   43071140    42987228    42733684    42931624\n  Swap Ins                                           0           0           0           0\n  Swap Outs                                          0           0           0           0\n  Direct pages scanned                               0           0           0           0\n  Kswapd pages scanned                         9941613     9937443     9939085     9929154\n  Kswapd pages reclaimed                       9940926     9936751     9938397     9928465\n  Direct pages reclaimed                             0           0           0           0\n  Kswapd efficiency                                99%         99%         99%         99%\n  Kswapd velocity                             8576.567   11051.058   10140.164    9347.109\n  Direct efficiency                               100%        100%        100%        100%\n  Direct velocity                                0.000       0.000       0.000       0.000\n\nIt looks like here that the full series regresses performance but as\nftrace showed no usage of wait_iff_congested() or sync reclaim I am\nassuming it\u0027s a disruption due to monitoring.  Other data such as memory\nusage, page IO, swap IO all looked similar.\n\nRunning a benchmark with a plain DD showed nothing very interesting.\nThe full series stalled in wait_iff_congested() slightly less but stall\ntimes on vanilla kernels were marginal.\n\nRunning a benchmark that hammered on file-backed mappings showed stalls\ndue to congestion but not in sync writebacks\n\n  MICRO\n                                       3.3.0-vanilla       rc2-vanilla  lumpyremove-v2r3       nosync-v2r3\n  MMTests Statistics: duration\n  Sys Time Running Test (seconds)             308.13    294.50    298.75    299.53\n  User+Sys Time Running Test (seconds)        330.45    316.28    318.93    320.79\n  Total Elapsed Time (seconds)               1814.90   1833.88   1821.14   1832.91\n\n  MMTests Statistics: vmstat\n  Page Ins                                      108712      120708       97224      110344\n  Page Outs                                  155514576   156017404   155813676   156193256\n  Swap Ins                                           0           0           0           0\n  Swap Outs                                          0           0           0           0\n  Direct pages scanned                         2599253     1550480     2512822     2414760\n  Kswapd pages scanned                        69742364    71150694    68839041    69692533\n  Kswapd pages reclaimed                      34824488    34773341    34796602    34799396\n  Direct pages reclaimed                         53693       94750       61792       75205\n  Kswapd efficiency                                49%         48%         50%         49%\n  Kswapd velocity                            38427.662   38797.901   37799.972   38022.889\n  Direct efficiency                                 2%          6%          2%          3%\n  Direct velocity                             1432.174     845.464    1379.807    1317.446\n  Percentage direct scans                           3%          2%          3%          3%\n  Page writes by reclaim                             0           0           0           0\n  Page writes file                                   0           0           0           0\n  Page writes anon                                   0           0           0           0\n  Page reclaim immediate                             0           0           0        1218\n  Page rescued immediate                             0           0           0           0\n  Slabs scanned                                  15360       16384       13312       16384\n  Direct inode steals                                0           0           0           0\n  Kswapd inode steals                             4340        4327        1630        4323\n\n  FTrace Reclaim Statistics: congestion_wait\n  Direct number congest     waited                 0          0          0          0\n  Direct time   congest     waited               0ms        0ms        0ms        0ms\n  Direct full   congest     waited                 0          0          0          0\n  Direct number conditional waited               900        870        754        789\n  Direct time   conditional waited               0ms        0ms        0ms       20ms\n  Direct full   conditional waited                 0          0          0          0\n  KSwapd number congest     waited              2106       2308       2116       1915\n  KSwapd time   congest     waited          139924ms   157832ms   125652ms   132516ms\n  KSwapd full   congest     waited              1346       1530       1202       1278\n  KSwapd number conditional waited             12922      16320      10943      14670\n  KSwapd time   conditional waited               0ms        0ms        0ms        0ms\n  KSwapd full   conditional waited                 0          0          0          0\n\nReclaim statistics are not radically changed.  The stall times in kswapd\nare massive but it is clear that it is due to calls to congestion_wait()\nand that is almost certainly the call in balance_pgdat().  Otherwise\nstalls due to dirty pages are non-existant.\n\nI ran a benchmark that stressed high-order allocation.  This is very\nartifical load but was used in the past to evaluate lumpy reclaim and\ncompaction.  Generally I look at allocation success rates and latency\nfigures.\n\n  STRESS-HIGHALLOC\n                   3.3.0-vanilla       rc2-vanilla  lumpyremove-v2r3       nosync-v2r3\n  Pass 1          81.00 ( 0.00%)    28.00 (-53.00%)    24.00 (-57.00%)    28.00 (-53.00%)\n  Pass 2          82.00 ( 0.00%)    39.00 (-43.00%)    38.00 (-44.00%)    43.00 (-39.00%)\n  while Rested    88.00 ( 0.00%)    87.00 (-1.00%)    88.00 ( 0.00%)    88.00 ( 0.00%)\n\n  MMTests Statistics: duration\n  Sys Time Running Test (seconds)             740.93    681.42    685.14    684.87\n  User+Sys Time Running Test (seconds)       2922.65   3269.52   3281.35   3279.44\n  Total Elapsed Time (seconds)               1161.73   1152.49   1159.55   1161.44\n\n  MMTests Statistics: vmstat\n  Page Ins                                     4486020     2807256     2855944     2876244\n  Page Outs                                    7261600     7973688     7975320     7986120\n  Swap Ins                                       31694           0           0           0\n  Swap Outs                                      98179           0           0           0\n  Direct pages scanned                           53494       57731       34406      113015\n  Kswapd pages scanned                         6271173     1287481     1278174     1219095\n  Kswapd pages reclaimed                       2029240     1281025     1260708     1201583\n  Direct pages reclaimed                          1468       14564       16649       92456\n  Kswapd efficiency                                32%         99%         98%         98%\n  Kswapd velocity                             5398.133    1117.130    1102.302    1049.641\n  Direct efficiency                                 2%         25%         48%         81%\n  Direct velocity                               46.047      50.092      29.672      97.306\n  Percentage direct scans                           0%          4%          2%          8%\n  Page writes by reclaim                       1616049           0           0           0\n  Page writes file                             1517870           0           0           0\n  Page writes anon                               98179           0           0           0\n  Page reclaim immediate                        103778       27339        9796       17831\n  Page rescued immediate                             0           0           0           0\n  Slabs scanned                                1096704      986112      980992      998400\n  Direct inode steals                              223      215040      216736      247881\n  Kswapd inode steals                           175331       61548       68444       63066\n  Kswapd skipped wait                            21991           0           1           0\n  THP fault alloc                                    1         135         125         134\n  THP collapse alloc                               393         311         228         236\n  THP splits                                        25          13           7           8\n  THP fault fallback                                 0           0           0           0\n  THP collapse fail                                  3           5           7           7\n  Compaction stalls                                865        1270        1422        1518\n  Compaction success                               370         401         353         383\n  Compaction failures                              495         869        1069        1135\n  Compaction pages moved                        870155     3828868     4036106     4423626\n  Compaction move failure                        26429       23865       29742       27514\n\nSuccess rates are completely hosed for 3.4-rc2 which is almost certainly\ndue to commit fe2c2a106663 (\"vmscan: reclaim at order 0 when compaction\nis enabled\").  I expected this would happen for kswapd and impair\nallocation success rates (https://lkml.org/lkml/2012/1/25/166) but I did\nnot anticipate this much a difference: 80% less scanning, 37% less\nreclaim by kswapd\n\nIn comparison, reclaim/compaction is not aggressive and gives up easily\nwhich is the intended behaviour.  hugetlbfs uses __GFP_REPEAT and would\nbe much more aggressive about reclaim/compaction than THP allocations\nare.  The stress test above is allocating like neither THP or hugetlbfs\nbut is much closer to THP.\n\nMainline is now impaired in terms of high order allocation under heavy\nload although I do not know to what degree as I did not test with\n__GFP_REPEAT.  Keep this in mind for bugs related to hugepage pool\nresizing, THP allocation and high order atomic allocation failures from\nnetwork devices.\n\nIn terms of congestion throttling, I see the following for this test\n\n  FTrace Reclaim Statistics: congestion_wait\n  Direct number congest     waited                 3          0          0          0\n  Direct time   congest     waited               0ms        0ms        0ms        0ms\n  Direct full   congest     waited                 0          0          0          0\n  Direct number conditional waited               957        512       1081       1075\n  Direct time   conditional waited               0ms        0ms        0ms        0ms\n  Direct full   conditional waited                 0          0          0          0\n  KSwapd number congest     waited                36          4          3          5\n  KSwapd time   congest     waited            3148ms      400ms      300ms      500ms\n  KSwapd full   congest     waited                30          4          3          5\n  KSwapd number conditional waited             88514        197        332        542\n  KSwapd time   conditional waited            4980ms        0ms        0ms        0ms\n  KSwapd full   conditional waited                49          0          0          0\n\nThe \"conditional waited\" times are the most interesting as this is\ndirectly impacted by the number of dirty pages encountered during scan.\nAs lumpy reclaim is no longer scanning contiguous ranges, it is finding\nfewer dirty pages.  This brings wait times from about 5 seconds to 0.\nkswapd itself is still calling congestion_wait() so it\u0027ll still stall but\nit\u0027s a lot less.\n\nIn terms of the type of IO we were doing, I see this\n\n  FTrace Reclaim Statistics: mm_vmscan_writepage\n  Direct writes anon  sync                         0          0          0          0\n  Direct writes anon  async                        0          0          0          0\n  Direct writes file  sync                         0          0          0          0\n  Direct writes file  async                        0          0          0          0\n  Direct writes mixed sync                         0          0          0          0\n  Direct writes mixed async                        0          0          0          0\n  KSwapd writes anon  sync                         0          0          0          0\n  KSwapd writes anon  async                    91682          0          0          0\n  KSwapd writes file  sync                         0          0          0          0\n  KSwapd writes file  async                   822629          0          0          0\n  KSwapd writes mixed sync                         0          0          0          0\n  KSwapd writes mixed async                        0          0          0          0\n\nIn 3.2, kswapd was doing a bunch of async writes of pages but\nreclaim/compaction was never reaching a point where it was doing sync\nIO.  This does not guarantee that reclaim/compaction was not calling\nwait_on_page_writeback() but I would consider it unlikely.  It indicates\nthat merging patches 2 and 3 to stop reclaim/compaction calling\nwait_on_page_writeback() should be safe.\n\nThis patch:\n\nLumpy reclaim had a purpose but in the mind of some, it was to kick the\nsystem so hard it trashed.  For others the purpose was to complicate\nvmscan.c.  Over time it was giving softer shoes and a nicer attitude but\nmemory compaction needs to step up and replace it so this patch sends\nlumpy reclaim to the farm.\n\nThe tracepoint format changes for isolating LRU pages with this patch\napplied.  Furthermore reclaim/compaction can no longer queue dirty pages\nin pageout() if the underlying BDI is congested.  Lumpy reclaim used\nthis logic and reclaim/compaction was using it in error.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e709ffd6169ccd259eb5874e853303e91e94e829",
      "tree": "796b56c2507b8581492da73e354d651c9dd7076b",
      "parents": [
        "edad9d2c337d43278a9d5aeb0ed531c2e838f8a6"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Tue May 29 15:06:18 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:19 2012 -0700"
      },
      "message": "mm: remove swap token code\n\nThe swap token code no longer fits in with the current VM model.  It\ndoes not play well with cgroups or the better NUMA placement code in\ndevelopment, since we have only one swap token globally.\n\nIt also has the potential to mess with scalability of the system, by\nincreasing the number of non-reclaimable pages on the active and\ninactive anon LRU lists.\n\nLast but not least, the swap token code has been broken for a year\nwithout complaints, as reported by Konstantin Khlebnikov.  This suggests\nwe no longer have much use for it.\n\nThe days of sub-1G memory systems with heavy use of swap are over.  If\nwe ever need thrashing reducing code in the future, we will have to\nimplement something that does scale.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: Bob Picco \u003cbpicco@meloft.net\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "af2e840971dee21ba9b87e9ecee7d5cc6109baaa",
      "tree": "f1326d0a1873e03a36d6be6a53313331b64a0659",
      "parents": [
        "4b781474682434e7881f20e9dfbe6687ea619795"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Tue May 29 15:06:14 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:18 2012 -0700"
      },
      "message": "pagemap.h: fix warning about possibly used before init var\n\nCommit f56f821feb7b (\"mm: extend prefault helpers to fault in more than\nPAGE_SIZE\") added in the new functions: fault_in_multipages_writeable()\nand fault_in_multipages_readable().\n\nHowever, we currently see:\n\n  include/linux/pagemap.h:492: warning: \u0027ret\u0027 may be used uninitialized in this function\n  include/linux/pagemap.h:492: note: \u0027ret\u0027 was declared here\n\nUnlike a lot of gcc nags, this one appears somewhat legit.  i.e.  passing\nin an invalid negative value of \"size\" does make it look like all the\nconditionals in there would be bypassed and the uninitialized value would\nbe returned.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nCc: Daniel Vetter \u003cdaniel.vetter@ffwll.ch\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "617c8c11236716dcbda877e764b7bf37c6fd8063",
      "tree": "78211c03e4e80eb1ea448c45139ce07534ccd238",
      "parents": [
        "79fba9f51755c704c0a7d7b7f0df10874dc0a744"
      ],
      "author": {
        "name": "Felix Fietkau",
        "email": "nbd@openwrt.org",
        "time": "Tue May 29 03:35:08 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue May 29 17:30:08 2012 -0400"
      },
      "message": "skb: avoid unnecessary reallocations in __skb_cow\n\nAt the beginning of __skb_cow, headroom gets set to a minimum of\nNET_SKB_PAD. This causes unnecessary reallocations if the buffer was not\ncloned and the headroom is just below NET_SKB_PAD, but still more than the\namount requested by the caller.\nThis was showing up frequently in my tests on VLAN tx, where\nvlan_insert_tag calls skb_cow_head(skb, VLAN_HLEN).\n\nLocally generated packets should have enough headroom, and for forward\npaths, we already have NET_SKB_PAD bytes of headroom, so we don\u0027t need to\nadd any extra space here.\n\nSigned-off-by: Felix Fietkau \u003cnbd@openwrt.org\u003e\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4b781474682434e7881f20e9dfbe6687ea619795",
      "tree": "bdd976645ead7f04900e60017502e6a41b03e601",
      "parents": [
        "53f2c4a8fd882009a2a75c5b72d6898c0808616e",
        "29f772d41c01ad6b72c3de705e79779857badcde"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 11:53:11 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 11:53:11 2012 -0700"
      },
      "message": "Merge tag \u0027mfd-3.5-1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6\n\nPull MFD changes from Samuel Ortiz:\n \"Besides the usual cleanups, this one brings:\n\n   * Support for 5 new chipsets: Intel\u0027s ICH LPC and SCH Centerton,\n     ST-E\u0027s STAX211, Samsung\u0027s MAX77693 and TI\u0027s LM3533.\n\n   * Device tree support for the twl6040, tps65910, da9502 and ab8500\n     drivers.\n\n   * Fairly big tps56910, ab8500 and db8500 updates.\n\n   * i2c support for mc13xxx.\n\n   * Our regular update for the wm8xxx driver from Mark.\"\n\nFix up various conflicts with other trees, largely due to ab5500 removal\netc.\n\n* tag \u0027mfd-3.5-1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6: (106 commits)\n  mfd: Fix build break of max77693 by adding REGMAP_I2C option\n  mfd: Fix twl6040 build failure\n  mfd: Fix max77693 build failure\n  mfd: ab8500-core should depend on MFD_DB8500_PRCMU\n  gpio: tps65910: dt: process gpio specific device node info\n  mfd: Remove the parsing of dt info for tps65910 gpio\n  mfd: Save device node parsed platform data for tps65910 sub devices\n  mfd: Add r_select to lm3533 platform data\n  gpio: Add Intel Centerton support to gpio-sch\n  mfd: Emulate active low IRQs as well as active high IRQs for wm831x\n  mfd: Mark two lm3533 zone registers as volatile\n  mfd: Fix return type of lm533 attribute is_visible\n  mfd: Enable Device Tree support in the ab8500-pwm driver\n  mfd: Enable Device Tree support in the ab8500-sysctrl driver\n  mfd: Add support for Device Tree to twl6040\n  mfd: Register the twl6040 child for the ASoC codec unconditionally\n  mfd: Allocate twl6040 IRQ numbers dynamically\n  mfd: twl6040 code cleanup in interrupt initialization part\n  mfd: Enable ab8500-gpadc driver for Device Tree\n  mfd: Prevent unassigned pointer from being used in ab8500-gpadc driver\n  ...\n"
    },
    {
      "commit": "53f2c4a8fd882009a2a75c5b72d6898c0808616e",
      "tree": "922293a1056c0c2358203cdab832f0e0891e628a",
      "parents": [
        "8f6576ad476b2a22d05ddafd2ddaee102577a4ed",
        "cc0a98436820b161b595b8cc1d2329bcf7328107"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 10:43:51 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 10:43:51 2012 -0700"
      },
      "message": "Merge tag \u0027nfs-for-3.5-1\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\nPull NFS client updates from Trond Myklebust:\n \"New features include:\n   - Rewrite the O_DIRECT code so that it can share the same coalescing\n     and pNFS functionality as the page cache code.\n   - Allow the server to provide hints as to when we should use pNFS,\n     and when it is more efficient to read and write through the\n     metadata server.\n   - NFS cache consistency updates:\n     * Use the ctime to emulate a change attribute for NFSv2/v3 so that\n       all NFS versions can share the same cache management code.\n     * New cache management code will only look at the change attribute\n       and size attribute when deciding whether or not our cached data\n       is still valid or not.\n     * Don\u0027t request NFSv4 post-op attributes on writes in cases such as\n       O_DIRECT, where we don\u0027t care about data cache consistency, or\n       when we have a write delegation, and know that our cache is still\n       consistent.\n     * Don\u0027t request NFSv4 post-op attributes on operations such as\n       COMMIT, where there are no expected metadata updates.\n     * Don\u0027t request NFSv4 directory post-op attributes in cases where\n       the operations themselves already return change attribute\n       updates: i.e. operations such as OPEN, CREATE, REMOVE, LINK and\n       RENAME.\n   - Speed up \u0027ls\u0027 and friends by using READDIR rather than READDIRPLUS\n     if we detect no attempts to lookup filenames.\n   - Improve the code sharing between NFSv2/v3 and v4 mounts\n   - NFSv4.1 state management efficiency improvements\n   - More patches in preparation for NFSv4/v4.1 migration functionality.\"\n\nFix trivial conflict in fs/nfs/nfs4proc.c that was due to the dcache\nqstr name initialization changes (that made the length/hash a 64-bit\nunion)\n\n* tag \u0027nfs-for-3.5-1\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (146 commits)\n  NFSv4: Add debugging printks to state manager\n  NFSv4: Map NFS4ERR_SHARE_DENIED into an EACCES error instead of EIO\n  NFSv4: update_changeattr does not need to set NFS_INO_REVAL_PAGECACHE\n  NFSv4.1: nfs4_reset_session should use nfs4_handle_reclaim_lease_error\n  NFSv4.1: Handle other occurrences of NFS4ERR_CONN_NOT_BOUND_TO_SESSION\n  NFSv4.1: Handle NFS4ERR_CONN_NOT_BOUND_TO_SESSION in the state manager\n  NFSv4.1: Handle errors in nfs4_bind_conn_to_session\n  NFSv4.1: nfs4_bind_conn_to_session should drain the session\n  NFSv4.1: Don\u0027t clobber the seqid if exchange_id returns a confirmed clientid\n  NFSv4.1: Add DESTROY_CLIENTID\n  NFSv4.1: Ensure we use the correct credentials for bind_conn_to_session\n  NFSv4.1: Ensure we use the correct credentials for session create/destroy\n  NFSv4.1: Move NFSPROC4_CLNT_BIND_CONN_TO_SESSION to the end of the operations\n  NFSv4.1: Handle NFS4ERR_SEQ_MISORDERED when confirming the lease\n  NFSv4: When purging the lease, we must clear NFS4CLNT_LEASE_CONFIRM\n  NFSv4: Clean up the error handling for nfs4_reclaim_lease\n  NFSv4.1: Exchange ID must use GFP_NOFS allocation mode\n  nfs41: Use BIND_CONN_TO_SESSION for CB_PATH_DOWN*\n  nfs4.1: add BIND_CONN_TO_SESSION operation\n  NFSv4.1 test the mdsthreshold hint parameters\n  ...\n"
    },
    {
      "commit": "56457f38f212344fb38b250cfa7e7311c065022f",
      "tree": "a507984aba15733966a9db135870b4e39169bafc",
      "parents": [
        "c35866678391861942b3836c219a8898a259255a"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon May 28 17:35:22 2012 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue May 29 12:31:01 2012 +0300"
      },
      "message": "KVM: Export asm-generic/kvm_para.h\n\nPrevents build failures on non-KVM archs.\n\nTested-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "5926ff502f6b93ca0c1654f8a5c5317ea236dbdb",
      "tree": "d70b074f959e7cb2007bdcb19e79aaba4458dd9a",
      "parents": [
        "ca0907b9e413bb1d1f3ea123b663535b74928846"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Thu Feb 09 11:05:20 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:13:50 2012 -0300"
      },
      "message": "edac: Initialize the dimm label with the known information\n\nWhile userspace doesn\u0027t fill the dimm labels, add there the dimm location,\nas described by the used memory model. This could eventually match what\nis described at the dmidecode, making easier for people to identify the\nmemory.\n\nFor example, on an Intel motherboard where the DMI table is reliable,\nthe first memory stick is described as:\n\nMemory Device\n\tArray Handle: 0x0029\n\tError Information Handle: Not Provided\n\tTotal Width: 64 bits\n\tData Width: 64 bits\n\tSize: 2048 MB\n\tForm Factor: DIMM\n\tSet: 1\n\tLocator: A1_DIMM0\n\tBank Locator: A1_Node0_Channel0_Dimm0\n\tType: \u003cOUT OF SPEC\u003e\n\tType Detail: Synchronous\n\tSpeed: 800 MHz\n\tManufacturer: A1_Manufacturer0\n\tSerial Number: A1_SerNum0\n\tAsset Tag: A1_AssetTagNum0\n\tPart Number: A1_PartNum0\n\nThe memory named as \"A1_DIMM0\" is physically located at the first\nmemory controller (node 0), at channel 0, dimm slot 0.\n\nAfter this patch, the memory label will be filled with:\n\t/sys/devices/system/edac/mc/csrow0/ch0_dimm_label:mc#0channel#0slot#0\n\nAnd (after the new EDAC API patches) as:\n\t/sys/devices/system/edac/mc/mc0/dimm0/dimm_label:mc#0channel#0slot#0\n\nSo, even if the memory label is not initialized on userspace, an useful\ninformation with the error location is filled there, expecially since\nseveral systems/motherboards are provided with enough info to map from\nchannel/slot (or branch/channel/slot) into the DIMM label. So, letting the\nEDAC core fill it by default is a good thing.\n\nIt should noticed that, as the label filling happens at the\nedac_mc_alloc(), drivers can override it to better describe the memories\n(and some actually do it).\n\nCc: Aristeu Rozanski \u003carozansk@redhat.com\u003e\nCc: Doug Thompson \u003cnorsk5@yahoo.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "4275be63559719c3149b19751029f1b0f1b26775",
      "tree": "d215a184f4278d7bc9095f18eb4c748149e241f3",
      "parents": [
        "982216a4290543fe73ae4f0a156f3d7906bd9b73"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Wed Apr 18 15:20:50 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:10:59 2012 -0300"
      },
      "message": "edac: Change internal representation to work with layers\n\nChange the EDAC internal representation to work with non-csrow\nbased memory controllers.\n\nThere are lots of those memory controllers nowadays, and more\nare coming. So, the EDAC internal representation needs to be\nchanged, in order to work with those memory controllers, while\npreserving backward compatibility with the old ones.\n\nThe edac core was written with the idea that memory controllers\nare able to directly access csrows.\n\nThis is not true for FB-DIMM and RAMBUS memory controllers.\n\nAlso, some recent advanced memory controllers don\u0027t present a per-csrows\nview. Instead, they view memories as DIMMs, instead of ranks.\n\nSo, change the allocation and error report routines to allow\nthem to work with all types of architectures.\n\nThis will allow the removal of several hacks with FB-DIMM and RAMBUS\nmemory controllers.\n\nAlso, several tests were done on different platforms using different\nx86 drivers.\n\nTODO: a multi-rank DIMMs are currently represented by multiple DIMM\nentries in struct dimm_info. That means that changing a label for one\nrank won\u0027t change the same label for the other ranks at the same DIMM.\nThis bug is present since the beginning of the EDAC, so it is not a big\ndeal. However, on several drivers, it is possible to fix this issue, but\nit should be a per-driver fix, as the csrow \u003d\u003e DIMM arrangement may not\nbe equal for all. So, don\u0027t try to fix it here yet.\n\nI tried to make this patch as short as possible, preceding it with\nseveral other patches that simplified the logic here. Yet, as the\ninternal API changes, all drivers need changes. The changes are\ngenerally bigger in the drivers for FB-DIMMs.\n\nCc: Aristeu Rozanski \u003carozansk@redhat.com\u003e\nCc: Doug Thompson \u003cnorsk5@yahoo.com\u003e\nCc: Borislav Petkov \u003cborislav.petkov@amd.com\u003e\nCc: Mark Gross \u003cmark.gross@intel.com\u003e\nCc: Jason Uhlenkott \u003cjuhlenko@akamai.com\u003e\nCc: Tim Small \u003ctim@buttersideup.com\u003e\nCc: Ranganathan Desikan \u003cravi@jetztechnologies.com\u003e\nCc: \"Arvind R.\" \u003carvino55@gmail.com\u003e\nCc: Olof Johansson \u003colof@lixom.net\u003e\nCc: Egor Martovetsky \u003cegor@pasemi.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Michal Marek \u003cmmarek@suse.cz\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: Dmitry Eremin-Solenikov \u003cdbaryshkov@gmail.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Hitoshi Mitake \u003ch.mitake@gmail.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: \"Niklas Söderlund\" \u003cniklas.soderlund@ericsson.com\u003e\nCc: Shaohui Xie \u003cShaohui.Xie@freescale.com\u003e\nCc: Josh Boyer \u003cjwboyer@gmail.com\u003e\nCc: linuxppc-dev@lists.ozlabs.org\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "982216a4290543fe73ae4f0a156f3d7906bd9b73",
      "tree": "0555488d5bc70a88ea5a89ccb22a24537ad97091",
      "parents": [
        "93e4fe64ece4eccf0ff4ac69bceb389290b8ab7c"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon Apr 16 13:04:46 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:10:59 2012 -0300"
      },
      "message": "edac.h: Add generic layers for describing a memory location\n\nThe edac core were written with the idea that memory controllers\nare able to directly access csrows, and that the channels are\nused inside a csrows select.\n\nThis is not true for FB-DIMM and RAMBUS memory controllers.\n\nAlso, some recent advanced memory controllers don\u0027t present a per-csrows\nview. Instead, they view memories as DIMMs, instead of ranks, accessed\nvia csrow/channel.\n\nSo, changes are needed in order to allow the EDAC core to\nwork with all types of architectures.\n\nIn preparation for handling non-csrows based memory controllers,\nadd some memory structs and a macro:\n\nenum hw_event_mc_err_type: describes the type of error\n\t\t\t   (corrected, uncorrected, fatal)\n\nTo be used by the new edac_mc_handle_error function;\n\nenum edac_mc_layer: describes the type of a given memory\narchitecture layer (branch, channel, slot, csrow).\n\nstruct edac_mc_layer: describes the properties of a memory\n\t\t      layer (type, size, and if the layer\n\t\t      will be used on a virtual csrow.\n\nEDAC_DIMM_PTR() - as the number of layers can vary from 1 to 3,\nthis macro converts from an address with up to 3 layers into\na linear address.\n\nReviewed-by: Borislav Petkov \u003cbp@amd64.org\u003e\nCc: Doug Thompson \u003cnorsk5@yahoo.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "a895bf8b1e1ea4c032a8fa8a09475a2ce09fe77a",
      "tree": "79a1110d0f4a6f2d50d870fa77d11a5311fee4fc",
      "parents": [
        "5e2af0c09e60d11dd8297e259a9ca2b3d92d2cf4"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Sat Jan 28 09:09:38 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:10:58 2012 -0300"
      },
      "message": "edac: move nr_pages to dimm struct\n\nThe number of pages is a dimm property. Move it to the dimm struct.\n\nAfter this change, it is possible to add sysfs nodes for the DIMM\u0027s that\nwill properly represent the DIMM stick properties, including its size.\n\nA TODO fix here is to properly represent dual-rank/quad-rank DIMMs when\nthe memory controller represents the memory via chip select rows.\n\nReviewed-by: Aristeu Rozanski \u003carozansk@redhat.com\u003e\nAcked-by: Borislav Petkov \u003cborislav.petkov@amd.com\u003e\nAcked-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Doug Thompson \u003cnorsk5@yahoo.com\u003e\nCc: Mark Gross \u003cmark.gross@intel.com\u003e\nCc: Jason Uhlenkott \u003cjuhlenko@akamai.com\u003e\nCc: Tim Small \u003ctim@buttersideup.com\u003e\nCc: Ranganathan Desikan \u003cravi@jetztechnologies.com\u003e\nCc: \"Arvind R.\" \u003carvino55@gmail.com\u003e\nCc: Olof Johansson \u003colof@lixom.net\u003e\nCc: Egor Martovetsky \u003cegor@pasemi.com\u003e\nCc: Michal Marek \u003cmmarek@suse.cz\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: Dmitry Eremin-Solenikov \u003cdbaryshkov@gmail.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Hitoshi Mitake \u003ch.mitake@gmail.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: \"Niklas Söderlund\" \u003cniklas.soderlund@ericsson.com\u003e\nCc: Shaohui Xie \u003cShaohui.Xie@freescale.com\u003e\nCc: Josh Boyer \u003cjwboyer@gmail.com\u003e\nCc: linuxppc-dev@lists.ozlabs.org\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "084a4fccef39ac7abb039511f32380f28d0b67e6",
      "tree": "0596612000c7ec3a848b10f7cc4acdb573218076",
      "parents": [
        "a7d7d2e1a07e3811dc49af2962c940fd8bbb6c8f"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Fri Jan 27 18:38:08 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:10:58 2012 -0300"
      },
      "message": "edac: move dimm properties to struct dimm_info\n\nOn systems based on chip select rows, all channels need to use memories\nwith the same properties, otherwise the memories on channels A and B\nwon\u0027t be recognized.\n\nHowever, such assumption is not true for all types of memory\ncontrollers.\n\nControllers for FB-DIMM\u0027s don\u0027t have such requirements.\n\nAlso, modern Intel controllers seem to be capable of handling such\ndifferences.\n\nSo, we need to get rid of storing the DIMM information into a per-csrow\ndata, storing it, instead at the right place.\n\nThe first step is to move grain, mtype, dtype and edac_mode to the\nper-dimm struct.\n\nReviewed-by: Aristeu Rozanski \u003carozansk@redhat.com\u003e\nReviewed-by: Borislav Petkov \u003cborislav.petkov@amd.com\u003e\nAcked-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Doug Thompson \u003cnorsk5@yahoo.com\u003e\nCc: Borislav Petkov \u003cborislav.petkov@amd.com\u003e\nCc: Mark Gross \u003cmark.gross@intel.com\u003e\nCc: Jason Uhlenkott \u003cjuhlenko@akamai.com\u003e\nCc: Tim Small \u003ctim@buttersideup.com\u003e\nCc: Ranganathan Desikan \u003cravi@jetztechnologies.com\u003e\nCc: \"Arvind R.\" \u003carvino55@gmail.com\u003e\nCc: Olof Johansson \u003colof@lixom.net\u003e\nCc: Egor Martovetsky \u003cegor@pasemi.com\u003e\nCc: Michal Marek \u003cmmarek@suse.cz\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: Dmitry Eremin-Solenikov \u003cdbaryshkov@gmail.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Hitoshi Mitake \u003ch.mitake@gmail.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@parallels.com\u003e\nCc: \"Niklas Söderlund\" \u003cniklas.soderlund@ericsson.com\u003e\nCc: Shaohui Xie \u003cShaohui.Xie@freescale.com\u003e\nCc: Josh Boyer \u003cjwboyer@gmail.com\u003e\nCc: Mike Williams \u003cmike@mikebwilliams.com\u003e\nCc: linuxppc-dev@lists.ozlabs.org\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "a7d7d2e1a07e3811dc49af2962c940fd8bbb6c8f",
      "tree": "6c3ac39bf25fb7810668f57476c7b5872d5b418b",
      "parents": [
        "76e10d158efb6d4516018846f60c2ab5501900bc"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Fri Jan 27 14:12:32 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 28 19:10:57 2012 -0300"
      },
      "message": "edac: Create a dimm struct and move the labels into it\n\nThe way a DIMM is currently represented implies that they\u0027re\nlinked into a per-csrow struct. However, some drivers don\u0027t see\ncsrows, as they\u0027re ridden behind some chip like the AMB\u0027s\non FBDIMM\u0027s, for example.\n\nThis forced drivers to fake^Wvirtualize a csrow struct, and to create\na mess under csrow/channel original\u0027s concept.\n\nMove the DIMM labels into a per-DIMM struct, and add there\nthe real location of the socket, in terms of csrow/channel.\nLatter patches will modify the location to properly represent the\nmemory architecture.\n\nAll other drivers will use a per-csrow type of location.\nSome of those drivers will require a latter conversion, as\nthey also fake the csrows internally.\n\nTODO: While this patch doesn\u0027t change the existing behavior, on\ncsrows-based memory controllers, a csrow/channel pair points to a memory\nrank. There\u0027s a known bug at the EDAC core that allows having different\nlabels for the same DIMM, if it has more than one rank. A latter patch\nis need to merge the several ranks for a DIMM into the same dimm_info\nstruct, in order to avoid having different labels for the same DIMM.\n\nThe edac_mc_alloc() will now contain a per-dimm initialization loop that\nwill be changed by latter patches in order to match other types of\nmemory architectures.\n\nReviewed-by: Aristeu Rozanski \u003carozansk@redhat.com\u003e\nReviewed-by: Borislav Petkov \u003cborislav.petkov@amd.com\u003e\nCc: Doug Thompson \u003cnorsk5@yahoo.com\u003e\nCc: Ranganathan Desikan \u003cravi@jetztechnologies.com\u003e\nCc: \"Arvind R.\" \u003carvino55@gmail.com\u003e\nCc: \"Niklas Söderlund\" \u003cniklas.soderlund@ericsson.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "90324cc1b11a211e37eabd8cb863e1a1561d6b1d",
      "tree": "c8b79c6850420a114ca6660c1b44fc486b1ba86d",
      "parents": [
        "fb8b00675eb6462aacab56bca31ed6107bda5314",
        "169ebd90131b2ffca74bb2dbe7eeacd39fb83714"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 28 09:54:45 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 28 09:54:45 2012 -0700"
      },
      "message": "Merge tag \u0027writeback\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux\n\nPull writeback tree from Wu Fengguang:\n \"Mainly from Jan Kara to avoid iput() in the flusher threads.\"\n\n* tag \u0027writeback\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux:\n  writeback: Avoid iput() from flusher thread\n  vfs: Rename end_writeback() to clear_inode()\n  vfs: Move waiting for inode writeback from end_writeback() to evict_inode()\n  writeback: Refactor writeback_single_inode()\n  writeback: Remove wb-\u003elist_lock from writeback_single_inode()\n  writeback: Separate inode requeueing after writeback\n  writeback: Move I_DIRTY_PAGES handling\n  writeback: Move requeueing when I_SYNC set to writeback_sb_inodes()\n  writeback: Move clearing of I_SYNC into inode_sync_complete()\n  writeback: initialize global_dirty_limit\n  fs: remove 8 bytes of padding from struct writeback_control on 64 bit builds\n  mm: page-writeback.c: local functions should not be exposed globally\n"
    },
    {
      "commit": "0c1833797a5a6ec23ea9261d979aa18078720b74",
      "tree": "1ea0d0ee1fb3915b30f7b40a91c0d047db5aeac3",
      "parents": [
        "91657eafb64b4cb53ec3a2fbc4afc3497f735788"
      ],
      "author": {
        "name": "Gao feng",
        "email": "gaofeng@cn.fujitsu.com",
        "time": "Sat May 26 01:30:53 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun May 27 01:11:22 2012 -0400"
      },
      "message": "ipv6: fix incorrect ipsec fragment\n\nSince commit ad0081e43a\n\"ipv6: Fragment locally generated tunnel-mode IPSec6 packets as needed\"\nthe fragment of packets is incorrect.\nbecause tunnel mode needs IPsec headers and trailer for all fragments,\nwhile on transport mode it is sufficient to add the headers to the\nfirst fragment and the trailer to the last.\n\nso modify mtu and maxfraglen base on ipsec mode and if fragment is first\nor last.\n\nwith my test,it work well(every fragment\u0027s size is the mtu)\nand does not trigger slow fragment path.\n\nChanges from v1:\n\tthough optimization, mtu_prev and maxfraglen_prev can be delete.\n\treplace xfrm mode codes with dst_entry\u0027s new frag DST_XFRM_TUNNEL.\n\tadd fuction ip6_append_data_mtu to make codes clearer.\n\nSigned-off-by: Gao feng \u003cgaofeng@cn.fujitsu.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ],
  "next": "1e2aec873ad6d16538512dbb96853caa1fa076af"
}
