)]}'
{
  "log": [
    {
      "commit": "b0e77598f87107001a00b8a4ece9c95e4254ccc4",
      "tree": "2738276570e4faa7c92a64521c192f04dca93801",
      "parents": [
        "b515498f5bb5f38fc0e390b4ff7d00b6077de127"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serge@hallyn.com",
        "time": "Wed Mar 23 16:43:24 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:47:08 2011 -0700"
      },
      "message": "userns: user namespaces: convert several capable() calls\n\nCAP_IPC_OWNER and CAP_IPC_LOCK can be checked against current_user_ns(),\nbecause the resource comes from current\u0027s own ipc namespace.\n\nsetuid/setgid are to uids in own namespace, so again checks can be against\ncurrent_user_ns().\n\nChangelog:\n\tJan 11: Use task_ns_capable() in place of sched_capable().\n\tJan 11: Use nsown_capable() as suggested by Bastian Blank.\n\tJan 11: Clarify (hopefully) some logic in futex and sched.c\n\tFeb 15: use ns_capable for ipc, not nsown_capable\n\tFeb 23: let copy_ipcs handle setting ipc_ns-\u003euser_ns\n\tFeb 23: pass ns down rather than taking it from current\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nAcked-by: David Howells \u003cdhowells@redhat.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": "b515498f5bb5f38fc0e390b4ff7d00b6077de127",
      "tree": "b76dfc56415adee9aec5d8619124059ed3ab02a5",
      "parents": [
        "fc832ad3645f0507f24d11752544525a50a83c71"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serge@hallyn.com",
        "time": "Wed Mar 23 16:43:23 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:47:07 2011 -0700"
      },
      "message": "userns: add a user namespace owner of ipc ns\n\nChangelog:\n\tFeb 15: Don\u0027t set new ipc-\u003euser_ns if we didn\u0027t create a new\n\t\tipc_ns.\n\tFeb 23: Move extern declaration to ipc_namespace.h, and group\n\t\tfwd declarations at top.\n\nSigned-off-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nAcked-by: David Howells \u003cdhowells@redhat.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": "fc832ad3645f0507f24d11752544525a50a83c71",
      "tree": "d02dd477d94cdeaa42286dbeffcb60467fb30fb7",
      "parents": [
        "3263245de48344ad7bdd0e7256bf1606d2592f88"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serge@hallyn.com",
        "time": "Wed Mar 23 16:43:22 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:47:06 2011 -0700"
      },
      "message": "userns: user namespaces: convert all capable checks in kernel/sys.c\n\nThis allows setuid/setgid in containers.  It also fixes some corner cases\nwhere kernel logic foregoes capability checks when uids are equivalent.\nThe latter will need to be done throughout the whole kernel.\n\nChangelog:\n\tJan 11: Use nsown_capable() as suggested by Bastian Blank.\n\tJan 11: Fix logic errors in uid checks pointed out by Bastian.\n\tFeb 15: allow prlimit to current (was regression in previous version)\n\tFeb 23: remove debugging printks, uninline set_one_prio_perm and\n\t\tmake it bool, and document its return value.\n\nSigned-off-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nAcked-by: David Howells \u003cdhowells@redhat.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": "3263245de48344ad7bdd0e7256bf1606d2592f88",
      "tree": "a6fa31305f5b6558d882b2dad29ed9a720167ee0",
      "parents": [
        "8409cca7056113bee3236cb6a8e4d8d4d1eef102"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serge.hallyn@canonical.com",
        "time": "Wed Mar 23 16:43:21 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:47:06 2011 -0700"
      },
      "message": "userns: make has_capability* into real functions\n\nSo we can let type safety keep things sane, and as a bonus we can remove\nthe declaration of init_user_ns in capability.h.\n\nSigned-off-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nCc: David Howells \u003cdhowells@redhat.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": "8409cca7056113bee3236cb6a8e4d8d4d1eef102",
      "tree": "d9f1ced0d47070fcdf8b399021f33770c150b1ec",
      "parents": [
        "39fd33933b0209e4b6254743f2cede07c5ad4c52"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serge@hallyn.com",
        "time": "Wed Mar 23 16:43:20 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:47:05 2011 -0700"
      },
      "message": "userns: allow ptrace from non-init user namespaces\n\nptrace is allowed to tasks in the same user namespace according to the\nusual rules (i.e.  the same rules as for two tasks in the init user\nnamespace).  ptrace is also allowed to a user namespace to which the\ncurrent task the has CAP_SYS_PTRACE capability.\n\nChangelog:\n\tDec 31: Address feedback by Eric:\n\t\t. Correct ptrace uid check\n\t\t. Rename may_ptrace_ns to ptrace_capable\n\t\t. Also fix the cap_ptrace checks.\n\tJan  1: Use const cred struct\n\tJan 11: use task_ns_capable() in place of ptrace_capable().\n\tFeb 23: same_or_ancestore_user_ns() was not an appropriate\n\t\tcheck to constrain cap_issubset.  Rather, cap_issubset()\n\t\tonly is meaningful when both capsets are in the same\n\t\tuser_ns.\n\nSigned-off-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nAcked-by: David Howells \u003cdhowells@redhat.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": "39fd33933b0209e4b6254743f2cede07c5ad4c52",
      "tree": "394f09178324fd1e31847a6c71d81f01e6236b02",
      "parents": [
        "bb96a6f50be27390dc959ff67d9ea0ea0cfbe177"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serge@hallyn.com",
        "time": "Wed Mar 23 16:43:19 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:47:04 2011 -0700"
      },
      "message": "userns: allow killing tasks in your own or child userns\n\nChangelog:\n\tDec  8: Fixed bug in my check_kill_permission pointed out by\n\t        Eric Biederman.\n\tDec 13: Apply Eric\u0027s suggestion to pass target task into kill_ok_by_cred()\n\t        for clarity\n\tDec 31: address comment by Eric Biederman:\n\t\tdon\u0027t need cred/tcred in check_kill_permission.\n\tJan  1: use const cred struct.\n\tJan 11: Per Bastian Blank\u0027s advice, clean up kill_ok_by_cred().\n\tFeb 16: kill_ok_by_cred: fix bad parentheses\n\tFeb 23: per akpm, let compiler inline kill_ok_by_cred\n\nSigned-off-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nAcked-by: David Howells \u003cdhowells@redhat.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": "bb96a6f50be27390dc959ff67d9ea0ea0cfbe177",
      "tree": "478253434235baeb1e4760a25c0a0f01293fbb8a",
      "parents": [
        "3486740a4f32a6a466f5ac931654d154790ba648"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serge@hallyn.com",
        "time": "Wed Mar 23 16:43:18 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:47:03 2011 -0700"
      },
      "message": "userns: allow sethostname in a container\n\nChangelog:\n\tFeb 23: let clone_uts_ns() handle setting uts-\u003euser_ns\n\t\tTo do so we need to pass in the task_struct who\u0027ll\n\t\tget the utsname, so we can get its user_ns.\n\tFeb 23: As per Oleg\u0027s coment, just pass in tsk, instead of two\n\t\tof its members.\n\nSigned-off-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nAcked-by: David Howells \u003cdhowells@redhat.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": "3486740a4f32a6a466f5ac931654d154790ba648",
      "tree": "ac5d968a66057fa84933b8f89fd3e916270dffed",
      "parents": [
        "59607db367c57f515183cb203642291bb14d9c40"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serge@hallyn.com",
        "time": "Wed Mar 23 16:43:17 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:47:02 2011 -0700"
      },
      "message": "userns: security: make capabilities relative to the user namespace\n\n- Introduce ns_capable to test for a capability in a non-default\n  user namespace.\n- Teach cap_capable to handle capabilities in a non-default\n  user namespace.\n\nThe motivation is to get to the unprivileged creation of new\nnamespaces.  It looks like this gets us 90% of the way there, with\nonly potential uid confusion issues left.\n\nI still need to handle getting all caps after creation but otherwise I\nthink I have a good starter patch that achieves all of your goals.\n\nChangelog:\n\t11/05/2010: [serge] add apparmor\n\t12/14/2010: [serge] fix capabilities to created user namespaces\n\tWithout this, if user serge creates a user_ns, he won\u0027t have\n\tcapabilities to the user_ns he created.  THis is because we\n\twere first checking whether his effective caps had the caps\n\the needed and returning -EPERM if not, and THEN checking whether\n\the was the creator.  Reverse those checks.\n\t12/16/2010: [serge] security_real_capable needs ns argument in !security case\n\t01/11/2011: [serge] add task_ns_capable helper\n\t01/11/2011: [serge] add nsown_capable() helper per Bastian Blank suggestion\n\t02/16/2011: [serge] fix a logic bug: the root user is always creator of\n\t\t    init_user_ns, but should not always have capabilities to\n\t\t    it!  Fix the check in cap_capable().\n\t02/21/2011: Add the required user_ns parameter to security_capable,\n\t\t    fixing a compile failure.\n\t02/23/2011: Convert some macros to functions as per akpm comments.  Some\n\t\t    couldn\u0027t be converted because we can\u0027t easily forward-declare\n\t\t    them (they are inline if !SECURITY, extern if SECURITY).  Add\n\t\t    a current_user_ns function so we can use it in capability.h\n\t\t    without #including cred.h.  Move all forward declarations\n\t\t    together to the top of the #ifdef __KERNEL__ section, and use\n\t\t    kernel-doc format.\n\t02/23/2011: Per dhowells, clean up comment in cap_capable().\n\t02/23/2011: Per akpm, remove unreachable \u0027return -EPERM\u0027 in cap_capable.\n\n(Original written and signed off by Eric;  latest, modified version\nacked by him)\n\n[akpm@linux-foundation.org: fix build]\n[akpm@linux-foundation.org: export current_user_ns() for ecryptfs]\n[serge.hallyn@canonical.com: remove unneeded extra argument in selinux\u0027s task_has_capability]\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Serge E. Hallyn \u003cserge.hallyn@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": "59607db367c57f515183cb203642291bb14d9c40",
      "tree": "9097cfc3a72820c5624de6a24c9fa9cf28b6cb35",
      "parents": [
        "52e9fc76d0d4b1e8adeee736172c6c23180059b2"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serge@hallyn.com",
        "time": "Wed Mar 23 16:43:16 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:59 2011 -0700"
      },
      "message": "userns: add a user_namespace as creator/owner of uts_namespace\n\nThe expected course of development for user namespaces targeted\ncapabilities is laid out at https://wiki.ubuntu.com/UserNamespace.\n\nGoals:\n\n- Make it safe for an unprivileged user to unshare namespaces.  They\n  will be privileged with respect to the new namespace, but this should\n  only include resources which the unprivileged user already owns.\n\n- Provide separate limits and accounting for userids in different\n  namespaces.\n\nStatus:\n\n  Currently (as of 2.6.38) you can clone with the CLONE_NEWUSER flag to\n  get a new user namespace if you have the CAP_SYS_ADMIN, CAP_SETUID, and\n  CAP_SETGID capabilities.  What this gets you is a whole new set of\n  userids, meaning that user 500 will have a different \u0027struct user\u0027 in\n  your namespace than in other namespaces.  So any accounting information\n  stored in struct user will be unique to your namespace.\n\n  However, throughout the kernel there are checks which\n\n  - simply check for a capability.  Since root in a child namespace\n    has all capabilities, this means that a child namespace is not\n    constrained.\n\n  - simply compare uid1 \u003d\u003d uid2.  Since these are the integer uids,\n    uid 500 in namespace 1 will be said to be equal to uid 500 in\n    namespace 2.\n\n  As a result, the lxc implementation at lxc.sf.net does not use user\n  namespaces.  This is actually helpful because it leaves us free to\n  develop user namespaces in such a way that, for some time, user\n  namespaces may be unuseful.\n\nBugs aside, this patchset is supposed to not at all affect systems which\nare not actively using user namespaces, and only restrict what tasks in\nchild user namespace can do.  They begin to limit privilege to a user\nnamespace, so that root in a container cannot kill or ptrace tasks in the\nparent user namespace, and can only get world access rights to files.\nSince all files currently belong to the initila user namespace, that means\nthat child user namespaces can only get world access rights to *all*\nfiles.  While this temporarily makes user namespaces bad for system\ncontainers, it starts to get useful for some sandboxing.\n\nI\u0027ve run the \u0027runltplite.sh\u0027 with and without this patchset and found no\ndifference.\n\nThis patch:\n\ncopy_process() handles CLONE_NEWUSER before the rest of the namespaces.\nSo in the case of clone(CLONE_NEWUSER|CLONE_NEWUTS) the new uts namespace\nwill have the new user namespace as its owner.  That is what we want,\nsince we want root in that new userns to be able to have privilege over\nit.\n\nChangelog:\n\tFeb 15: don\u0027t set uts_ns-\u003euser_ns if we didn\u0027t create\n\t\ta new uts_ns.\n\tFeb 23: Move extern init_user_ns declaration from\n\t\tinit/version.c to utsname.h.\n\nSigned-off-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nAcked-by: David Howells \u003cdhowells@redhat.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": "52e9fc76d0d4b1e8adeee736172c6c23180059b2",
      "tree": "61fd430bd5848fc1598373675f8f6810e4af08b4",
      "parents": [
        "4308eebbeb2026827d4492ce8c23d99f7f144a82"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Mar 23 16:43:14 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:58 2011 -0700"
      },
      "message": "procfs: kill the global proc_mnt variable\n\nAfter the previous cleanup in proc_get_sb() the global proc_mnt has no\nreasons to exists, kill it.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Serge E. Hallyn \u003cserge@hallyn.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4308eebbeb2026827d4492ce8c23d99f7f144a82",
      "tree": "3781e227988b4d986bf98dcc0390df17c6fe8f10",
      "parents": [
        "45a68628d37222e655219febce9e91b6484789b2"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Mar 23 16:43:13 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:58 2011 -0700"
      },
      "message": "pidns: call pid_ns_prepare_proc() from create_pid_namespace()\n\nReorganize proc_get_sb() so it can be called before the struct pid of the\nfirst process is allocated.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Serge E. Hallyn \u003cserge@hallyn.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "45a68628d37222e655219febce9e91b6484789b2",
      "tree": "6acb5c45e8b11022358a1c28691c9b2c75a7df91",
      "parents": [
        "bfdc0b497faa82a0ba2f9dddcf109231dd519fcc"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Mar 23 16:43:12 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:57 2011 -0700"
      },
      "message": "pid: remove the child_reaper special case in init/main.c\n\nThis patchset is a cleanup and a preparation to unshare the pid namespace.\nThese prerequisites prepare for Eric\u0027s patchset to give a file descriptor\nto a namespace and join an existing namespace.\n\nThis patch:\n\nIt turns out that the existing assignment in copy_process of the\nchild_reaper can handle the initial assignment of child_reaper we just\nneed to generalize the test in kernel/fork.c\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Serge E. Hallyn \u003cserge@hallyn.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bfdc0b497faa82a0ba2f9dddcf109231dd519fcc",
      "tree": "932897262447dacb7158b81209748a295d93e20b",
      "parents": [
        "cb16e95fa2996743a6e80a665ed2ed0590bd38cf"
      ],
      "author": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Wed Mar 23 16:43:11 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:54 2011 -0700"
      },
      "message": "sysctl: restrict write access to dmesg_restrict\n\nWhen dmesg_restrict is set to 1 CAP_SYS_ADMIN is needed to read the kernel\nring buffer.  But a root user without CAP_SYS_ADMIN is able to reset\ndmesg_restrict to 0.\n\nThis is an issue when e.g.  LXC (Linux Containers) are used and complete\nuser space is running without CAP_SYS_ADMIN.  A unprivileged and jailed\nroot user can bypass the dmesg_restrict protection.\n\nWith this patch writing to dmesg_restrict is only allowed when root has\nCAP_SYS_ADMIN.\n\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\nAcked-by: Dan Rosenberg \u003cdrosenberg@vsecurity.com\u003e\nAcked-by: Serge E. Hallyn \u003cserge@hallyn.com\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: Kees Cook \u003ckees.cook@canonical.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Eugene Teo \u003ceugeneteo@kernel.org\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cb16e95fa2996743a6e80a665ed2ed0590bd38cf",
      "tree": "7128a7d03a94a68dd9550f33ac66876bf6854ad0",
      "parents": [
        "256c53a65128cbc8a766b1503f3f25a52a8d07cb"
      ],
      "author": {
        "name": "Petr Holasek",
        "email": "pholasek@redhat.com",
        "time": "Wed Mar 23 16:43:09 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:51 2011 -0700"
      },
      "message": "sysctl: add some missing input constraint checks\n\nAdd boundaries of allowed input ranges for: dirty_expire_centisecs,\ndrop_caches, overcommit_memory, page-cluster and panic_on_oom.\n\nSigned-off-by: Petr Holasek \u003cpholasek@redhat.com\u003e\nAcked-by: Dave Young \u003chidave.darkstar@gmail.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "256c53a65128cbc8a766b1503f3f25a52a8d07cb",
      "tree": "aa15c1cd93ad2d99609016fa0bcf46f305d64d58",
      "parents": [
        "814ecf6e5b7854504ae83255173e53836c5d8420"
      ],
      "author": {
        "name": "Denis Kirjanov",
        "email": "dkirjanov@kernel.org",
        "time": "Wed Mar 23 16:43:08 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:51 2011 -0700"
      },
      "message": "sysctl_check: drop dead code\n\nDrop dead code.\n\nSigned-off-by: Denis Kirjanov \u003cdkirjanov@kernel.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "814ecf6e5b7854504ae83255173e53836c5d8420",
      "tree": "0e6ba9405264833b672b5b640aadc93e4050d56d",
      "parents": [
        "ad4ac17ad1e2f0bd0ce38b2585c5d7fa2b0780dc"
      ],
      "author": {
        "name": "Denis Kirjanov",
        "email": "dkirjanov@kernel.org",
        "time": "Wed Mar 23 16:43:08 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:50 2011 -0700"
      },
      "message": "sysctl_check: drop table-\u003eprocname checks\n\nSince the for loop checks for the table-\u003eprocname drop useless\ntable-\u003eprocname checks inside the loop body\n\nSigned-off-by: Denis Kirjanov \u003cdkirjanov@kernel.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ad4ac17ad1e2f0bd0ce38b2585c5d7fa2b0780dc",
      "tree": "cfc612adbeb9a5d0a6b0e1ee35d14eb963058e77",
      "parents": [
        "c1256ebe6a10bb3e104ecb2d1a458f9907ee49fb"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "[error27@gmail.com]",
        "time": "Wed Mar 23 16:43:07 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:44 2011 -0700"
      },
      "message": "rapidio: fix potential null deref on failure path\n\nIf rio is not a switch then \"rswitch\" is null.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nCc: Matt Porter \u003cmporter@kernel.crashing.org\u003e\nCc: Kumar Gala \u003cgalak@kernel.crashing.org\u003e\nSigned-off-by: Alexandre Bounine \u003calexandre.bounine@idt.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c1256ebe6a10bb3e104ecb2d1a458f9907ee49fb",
      "tree": "d34852c275d6a47d63487ce2338401708d5bcab3",
      "parents": [
        "569fccb6b48878d654310e1ffaf9a5a6e46b3144"
      ],
      "author": {
        "name": "Alexandre Bounine",
        "email": "alexandre.bounine@idt.com",
        "time": "Wed Mar 23 16:43:06 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:43 2011 -0700"
      },
      "message": "rapidio: remove mport resource reservation from common RIO code\n\nRemoves resource reservation from the common sybsystem initialization code\nand make it part of mport driver initialization.  This resolves conflict\nwith resource reservation by device specific mport drivers.\n\nSigned-off-by: Alexandre Bounine \u003calexandre.bounine@idt.com\u003e\nCc: Kumar Gala \u003cgalak@kernel.crashing.org\u003e\nCc: Matt Porter \u003cmporter@kernel.crashing.org\u003e\nCc: Li Yang \u003cleoli@freescale.com\u003e\nCc: Thomas Moll \u003cthomas.moll@sysgo.com\u003e\nCc: Micha Nelissen \u003cmicha@neli.hopto.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "569fccb6b48878d654310e1ffaf9a5a6e46b3144",
      "tree": "20e6ded48adf7b36e9cfe71b8a0ed3721b977669",
      "parents": [
        "2f809985d2cbc78078b8da1cbed1f1ce1f4a0d5f"
      ],
      "author": {
        "name": "Alexandre Bounine",
        "email": "alexandre.bounine@idt.com",
        "time": "Wed Mar 23 16:43:05 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:43 2011 -0700"
      },
      "message": "rapidio: modify mport ID assignment\n\nChanges mport ID and host destination ID assignment to implement unified\nmethod common to all mport drivers.  Makes \"riohdid\u003d\" kernel command line\nparameter common for all architectures with support for more that one host\ndestination ID assignment.\n\nSigned-off-by: Alexandre Bounine \u003calexandre.bounine@idt.com\u003e\nCc: Kumar Gala \u003cgalak@kernel.crashing.org\u003e\nCc: Matt Porter \u003cmporter@kernel.crashing.org\u003e\nCc: Li Yang \u003cleoli@freescale.com\u003e\nCc: Thomas Moll \u003cthomas.moll@sysgo.com\u003e\nCc: Micha Nelissen \u003cmicha@neli.hopto.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2f809985d2cbc78078b8da1cbed1f1ce1f4a0d5f",
      "tree": "6ce67e43f25700ca08f84e4a87b74c0be0d7ee7f",
      "parents": [
        "388b78adc9899f0299128610f566051d0b1a57f6"
      ],
      "author": {
        "name": "Alexandre Bounine",
        "email": "alexandre.bounine@idt.com",
        "time": "Wed Mar 23 16:43:04 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:42 2011 -0700"
      },
      "message": "rapidio: modify subsystem and driver initialization sequence\n\nSubsystem initialization sequence modified to support presence of multiple\nRapidIO controllers in the system.  The new sequence is compatible with\ninitialization of PCI devices.\n\nSigned-off-by: Alexandre Bounine \u003calexandre.bounine@idt.com\u003e\nCc: Kumar Gala \u003cgalak@kernel.crashing.org\u003e\nCc: Matt Porter \u003cmporter@kernel.crashing.org\u003e\nCc: Li Yang \u003cleoli@freescale.com\u003e\nCc: Thomas Moll \u003cthomas.moll@sysgo.com\u003e\nCc: Micha Nelissen \u003cmicha@neli.hopto.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "388b78adc9899f0299128610f566051d0b1a57f6",
      "tree": "f64e7151235c82ae3652fc5b4ca23c2a017ff464",
      "parents": [
        "f8f0626989c85b3d8bd67eff29d9dd3d14a5e71f"
      ],
      "author": {
        "name": "Alexandre Bounine",
        "email": "alexandre.bounine@idt.com",
        "time": "Wed Mar 23 16:43:03 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:42 2011 -0700"
      },
      "message": "rapidio: modify configuration to support PCI-SRIO controller\n\n1. Add an option to include RapidIO support if the PCI is available.\n2. Add FSL_RIO configuration option to enable controller selection.\n3. Add RapidIO support option into x86 and MIPS architectures.\n\nSigned-off-by: Alexandre Bounine \u003calexandre.bounine@idt.com\u003e\nAcked-by: Kumar Gala \u003cgalak@kernel.crashing.org\u003e\nCc: Matt Porter \u003cmporter@kernel.crashing.org\u003e\nCc: Li Yang \u003cleoli@freescale.com\u003e\nCc: Thomas Moll \u003cthomas.moll@sysgo.com\u003e\nCc: Micha Nelissen \u003cmicha@neli.hopto.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f8f0626989c85b3d8bd67eff29d9dd3d14a5e71f",
      "tree": "1132c3ca38b6f68c00864df0ded229c45230d4c5",
      "parents": [
        "e15b4d687f3015aa7953687e5a80f1cc4ba9b736"
      ],
      "author": {
        "name": "Alexandre Bounine",
        "email": "alexandre.bounine@idt.com",
        "time": "Wed Mar 23 16:43:02 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:41 2011 -0700"
      },
      "message": "rapidio: add architecture specific callbacks\n\nThis set of patches eliminates RapidIO dependency on PowerPC architecture\nand makes it available to other architectures (x86 and MIPS).  It also\nenables support of new platform independent RapidIO controllers such as\nPCI-to-SRIO and PCI Express-to-SRIO.\n\nThis patch:\n\nExtend number of mport callback functions to eliminate direct linking of\narchitecture specific mport operations.\n\nSigned-off-by: Alexandre Bounine \u003calexandre.bounine@idt.com\u003e\nCc: Kumar Gala \u003cgalak@kernel.crashing.org\u003e\nCc: Matt Porter \u003cmporter@kernel.crashing.org\u003e\nCc: Li Yang \u003cleoli@freescale.com\u003e\nCc: Thomas Moll \u003cthomas.moll@sysgo.com\u003e\nCc: Micha Nelissen \u003cmicha@neli.hopto.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e15b4d687f3015aa7953687e5a80f1cc4ba9b736",
      "tree": "f3a9d41eb37ee53da3794ab0b0a28212c7b9b9f6",
      "parents": [
        "cd8b974fad4f993bde74d820f83bd0a88ad82491"
      ],
      "author": {
        "name": "Alexandre Bounine",
        "email": "alexandre.bounine@idt.com",
        "time": "Wed Mar 23 16:43:00 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:41 2011 -0700"
      },
      "message": "rapidio: add RapidIO documentation\n\nAdd RapidIO documentation files as it was discussed earlier (see thread\nhttp://marc.info/?l\u003dlinux-kernel\u0026m\u003d129202338918062\u0026w\u003d2)\n\nSigned-off-by: Alexandre Bounine \u003calexandre.bounine@idt.com\u003e\nCc: Kumar Gala \u003cgalak@kernel.crashing.org\u003e\nCc: Matt Porter \u003cmporter@kernel.crashing.org\u003e\nCc: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cd8b974fad4f993bde74d820f83bd0a88ad82491",
      "tree": "fc68e756681d2fa1857a6ab56284d7e50db3ed3a",
      "parents": [
        "cfaf346cb2741ca648d83527df173b759381e607"
      ],
      "author": {
        "name": "Alexandre Bounine",
        "email": "alexandre.bounine@idt.com",
        "time": "Wed Mar 23 16:42:59 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:41 2011 -0700"
      },
      "message": "rapidio: add new sysfs attributes\n\nAdd new sysfs attributes.\n\n1. Routing information required to to reach the RIO device:\ndestid - device destination ID (real for for endpoint, route for switch)\nhopcount - hopcount for maintenance requests (switches only)\n\n2. device linking information:\nlprev - name of device that precedes the given device in the enumeration\n        or discovery order (displayed along with of the port to which it\n        is attached).\nlnext - names of devices (with corresponding port numbers) that are\n        attached to the given device as next in the enumeration or\n        discovery order (switches only)\n\nSigned-off-by: Alexandre Bounine \u003calexandre.bounine@idt.com\u003e\nCc: Kumar Gala \u003cgalak@kernel.crashing.org\u003e\nCc: Matt Porter \u003cmporter@kernel.crashing.org\u003e\nCc: Li Yang \u003cleoli@freescale.com\u003e\nCc: Thomas Moll \u003cthomas.moll@sysgo.com\u003e\nCc: Micha Nelissen \u003cmicha@neli.hopto.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cfaf346cb2741ca648d83527df173b759381e607",
      "tree": "578b3d6ce766950fb20f29839c6fbae5aad41a36",
      "parents": [
        "115bcd156a7c4b4dad950f3bd2e4d023688c2ee7"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Wed Mar 23 16:42:58 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:40 2011 -0700"
      },
      "message": "drivers/char/mem.c: clean up the code\n\nReduce the lines of code and simplify the logic.\n\nSigned-off-by: Changli Gao \u003cxiaosuo@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": "115bcd156a7c4b4dad950f3bd2e4d023688c2ee7",
      "tree": "2124bc65ab61f8e72b4bfd959970ccc2b8a90949",
      "parents": [
        "d9d691f584bd012d235c35279c043a2ccd23d7d7"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Wed Mar 23 16:42:57 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:39 2011 -0700"
      },
      "message": "drivers/staging/tty/specialix.c: convert func_enter to func_exit\n\nConvert calls to func_enter on leaving a function to func_exit.\n\nThe semantic patch that fixes this problem is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\n@@\n\n- func_enter();\n+ func_exit();\n  return...;\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Roger Wolff \u003cR.E.Wolff@BitWizard.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d9d691f584bd012d235c35279c043a2ccd23d7d7",
      "tree": "9094c048d6df951f14e2fb1cc790366791fdd7d5",
      "parents": [
        "73210a135b9dd53ba59beb4ced5a55633ae65b2f"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Wed Mar 23 16:42:56 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:39 2011 -0700"
      },
      "message": "drivers/tty/bfin_jtag_comm.c: avoid calling put_tty_driver on NULL\n\nput_tty_driver calls tty_driver_kref_put on its argument, and then\ntty_driver_kref_put calls kref_put on the address of a field of this\nargument.  kref_put checks for NULL, but in this case the field is likely\nto have some offset and so the result of taking its address will not be\nNULL.  Labels are added to be able to skip over the call to put_tty_driver\nwhen the argument will be NULL.\n\nThe semantic match that finds this problem is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\nexpression *x;\n@@\n\n*if (x \u003d\u003d NULL)\n{ ...\n* put_tty_driver(x);\n  ...\n  return ...;\n}\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Torben Hohn \u003ctorbenh@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": "73210a135b9dd53ba59beb4ced5a55633ae65b2f",
      "tree": "23d1ffa9f18bbd0c26aabcd874af9b21788241b6",
      "parents": [
        "0dcf334c44d99cd08515f4fc5cc9075abd92b2ff"
      ],
      "author": {
        "name": "Niranjana Vishwanathapura",
        "email": "nvishwan@codeaurora.org",
        "time": "Wed Mar 23 16:42:55 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:38 2011 -0700"
      },
      "message": "drivers/char: add MSM smd_pkt driver\n\nAdd smd_pkt driver which provides device interface to smd packet ports.\n\nSigned-off-by: Niranjana Vishwanathapura \u003cnvishwan@codeaurora.org\u003e\nCc: Brian Swetland \u003cswetland@google.com\u003e\nCc: Greg KH \u003cgregkh@suse.de\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: David Brown \u003cdavidb@codeaurora.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0dcf334c44d99cd08515f4fc5cc9075abd92b2ff",
      "tree": "c0bdffa37435f5a0aec884dcf598bfab0f11149c",
      "parents": [
        "5883f57ca0008ffc93e09cbb9847a1928e50c6f3"
      ],
      "author": {
        "name": "Sergey Senozhatsky",
        "email": "sergey.senozhatsky@gmail.com",
        "time": "Wed Mar 23 16:42:54 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:38 2011 -0700"
      },
      "message": "drivers/char/ipmi/ipmi_si_intf.c: fix cleanup_one_si section mismatch\n\ncommit d2478521afc2022 (\"char/ipmi: fix OOPS caused by\npnp_unregister_driver on unregistered driver\") introduced a section\nmismatch by calling __exit cleanup_ipmi_si from __devinit init_ipmi_si.\n\nRemove __exit annotation from cleanup_ipmi_si.\n\nSigned-off-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nAcked-by: Corey Minyard \u003ccminyard@mvista.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5883f57ca0008ffc93e09cbb9847a1928e50c6f3",
      "tree": "f7559549b81f1648b089ddfaa202644bf353b3b0",
      "parents": [
        "312ec7e50c4d3f40b3762af651d1aa79a67f556a"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "kees.cook@canonical.com",
        "time": "Wed Mar 23 16:42:53 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:37 2011 -0700"
      },
      "message": "proc: protect mm start_code/end_code in /proc/pid/stat\n\nWhile mm-\u003estart_stack was protected from cross-uid viewing (commit\nf83ce3e6b02d5 (\"proc: avoid information leaks to non-privileged\nprocesses\")), the start_code and end_code values were not.  This would\nallow the text location of a PIE binary to leak, defeating ASLR.\n\nNote that the value \"1\" is used instead of \"0\" for a protected value since\n\"ps\", \"killall\", and likely other readers of /proc/pid/stat, take\nstart_code of \"0\" to mean a kernel thread and will misbehave.  Thanks to\nBrad Spengler for pointing this out.\n\nAddresses CVE-2011-0726\n\nSigned-off-by: Kees Cook \u003ckees.cook@canonical.com\u003e\nCc: \u003cstable@kernel.org\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Eugene Teo \u003ceugeneteo@kernel.sg\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Brad Spengler \u003cspender@grsecurity.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "312ec7e50c4d3f40b3762af651d1aa79a67f556a",
      "tree": "98112d9c80aacd011e313268b5f5d8caf5b5b727",
      "parents": [
        "fc3d8767b2b6de955579852d7a150f1734265eaf"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Mar 23 16:42:52 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:37 2011 -0700"
      },
      "message": "proc: make struct proc_dir_entry::namelen unsigned int\n\n1. namelen is declared \"unsigned short\" which hints for \"maybe space savings\".\n   Indeed in 2.4 struct proc_dir_entry looked like:\n\n        struct proc_dir_entry {\n                unsigned short low_ino;\n                unsigned short namelen;\n\n   Now, low_ino is \"unsigned int\", all savings were gone for a long time.\n   \"struct proc_dir_entry\" is not that countless to worry about it\u0027s size,\n   anyway.\n\n2. converting from unsigned short to int/unsigned int can only create\n   problems, we better play it safe.\n\nSpace is not really conserved, because of natural alignment for the next\nfield.  sizeof(struct proc_dir_entry) remains the same.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fc3d8767b2b6de955579852d7a150f1734265eaf",
      "tree": "282762d459af3ebdf0bf8661a9422d55fc74dbb1",
      "parents": [
        "0db0c01b53a1a421513f91573241aabafb87802a"
      ],
      "author": {
        "name": "Jovi Zhang",
        "email": "bookjovi@gmail.com",
        "time": "Wed Mar 23 16:42:51 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:36 2011 -0700"
      },
      "message": "procfs: fix some wrong error code usage\n\n[root@wei 1]# cat /proc/1/mem\ncat: /proc/1/mem: No such process\n\nerror code -ESRCH is wrong in this situation.  Return -EPERM instead.\n\nSigned-off-by: Jovi Zhang \u003cbookjovi@gmail.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.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": "0db0c01b53a1a421513f91573241aabafb87802a",
      "tree": "beb48c1fe733509945d6cfda2f830ebe3104aa02",
      "parents": [
        "51e031496d50f87ff519a63cfd4fc2f415f03336"
      ],
      "author": {
        "name": "Aaro Koskinen",
        "email": "aaro.koskinen@nokia.com",
        "time": "Wed Mar 23 16:42:50 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:36 2011 -0700"
      },
      "message": "procfs: fix /proc/\u003cpid\u003e/maps heap check\n\nThe current code fails to print the \"[heap]\" marking if the heap is split\ninto multiple mappings.\n\nFix the check so that the marking is displayed in all possible cases:\n\t1. vma matches exactly the heap\n\t2. the heap vma is merged e.g. with bss\n\t3. the heap vma is splitted e.g. due to locked pages\n\nTest cases. In all cases, the process should have mapping(s) with\n[heap] marking:\n\n\t(1) vma matches exactly the heap\n\n\t#include \u003cstdio.h\u003e\n\t#include \u003cunistd.h\u003e\n\t#include \u003csys/types.h\u003e\n\n\tint main (void)\n\t{\n\t\tif (sbrk(4096) !\u003d (void *)-1) {\n\t\t\tprintf(\"check /proc/%d/maps\\n\", (int)getpid());\n\t\t\twhile (1)\n\t\t\t\tsleep(1);\n\t\t}\n\t\treturn 0;\n\t}\n\n\t# ./test1\n\tcheck /proc/553/maps\n\t[1] + Stopped                    ./test1\n\t# cat /proc/553/maps | head -4\n\t00008000-00009000 r-xp 00000000 01:00 3113640    /test1\n\t00010000-00011000 rw-p 00000000 01:00 3113640    /test1\n\t00011000-00012000 rw-p 00000000 00:00 0          [heap]\n\t4006f000-40070000 rw-p 00000000 00:00 0\n\n\t(2) the heap vma is merged\n\n\t#include \u003cstdio.h\u003e\n\t#include \u003cunistd.h\u003e\n\t#include \u003csys/types.h\u003e\n\n\tchar foo[4096] \u003d \"foo\";\n\tchar bar[4096];\n\n\tint main (void)\n\t{\n\t\tif (sbrk(4096) !\u003d (void *)-1) {\n\t\t\tprintf(\"check /proc/%d/maps\\n\", (int)getpid());\n\t\t\twhile (1)\n\t\t\t\tsleep(1);\n\t\t}\n\t\treturn 0;\n\t}\n\n\t# ./test2\n\tcheck /proc/556/maps\n\t[2] + Stopped                    ./test2\n\t# cat /proc/556/maps | head -4\n\t00008000-00009000 r-xp 00000000 01:00 3116312    /test2\n\t00010000-00012000 rw-p 00000000 01:00 3116312    /test2\n\t00012000-00014000 rw-p 00000000 00:00 0          [heap]\n\t4004a000-4004b000 rw-p 00000000 00:00 0\n\n\t(3) the heap vma is splitted (this fails without the patch)\n\n\t#include \u003cstdio.h\u003e\n\t#include \u003cunistd.h\u003e\n\t#include \u003csys/mman.h\u003e\n\t#include \u003csys/types.h\u003e\n\n\tint main (void)\n\t{\n\t\tif ((sbrk(4096) !\u003d (void *)-1) \u0026\u0026 !mlockall(MCL_FUTURE) \u0026\u0026\n\t\t    (sbrk(4096) !\u003d (void *)-1)) {\n\t\t\tprintf(\"check /proc/%d/maps\\n\", (int)getpid());\n\t\t\twhile (1)\n\t\t\t\tsleep(1);\n\t\t}\n\t\treturn 0;\n\t}\n\n\t# ./test3\n\tcheck /proc/559/maps\n\t[1] + Stopped                    ./test3\n\t# cat /proc/559/maps|head -4\n\t00008000-00009000 r-xp 00000000 01:00 3119108    /test3\n\t00010000-00011000 rw-p 00000000 01:00 3119108    /test3\n\t00011000-00012000 rw-p 00000000 00:00 0          [heap]\n\t00012000-00013000 rw-p 00000000 00:00 0          [heap]\n\nIt looks like the bug has been there forever, and since it only results in\nsome information missing from a procfile, it does not fulfil the -stable\n\"critical issue\" criteria.\n\nSigned-off-by: Aaro Koskinen \u003caaro.koskinen@nokia.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "51e031496d50f87ff519a63cfd4fc2f415f03336",
      "tree": "75c177b8aeba82fffb80960eed1c77bb4188c362",
      "parents": [
        "523fb486bfd94e3a3b16a42bcb21b1959cf14df8"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Wed Mar 23 16:42:48 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:36 2011 -0700"
      },
      "message": "proc: hide kernel addresses via %pK in /proc/\u003cpid\u003e/stack\n\nThis file is readable for the task owner.  Hide kernel addresses from\nunprivileged users, leave them function names and offsets.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nAcked-by: Kees Cook \u003ckees.cook@canonical.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "523fb486bfd94e3a3b16a42bcb21b1959cf14df8",
      "tree": "34c1b15a9bc55ef7a3bafb87cce3d3d184d78906",
      "parents": [
        "ee24d3797780eee6ffe581a7b78d27896f9b494a"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Mar 23 16:42:48 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:35 2011 -0700"
      },
      "message": "cpuset: hold callback_mutex in cpuset_post_clone()\n\nChaning cpuset-\u003emems/cpuset-\u003ecpus should be protected under\ncallback_mutex.\n\ncpuset_clone() doesn\u0027t follow this rule. It\u0027s ok because it\u0027s\ncalled when creating and initializing a cgroup, but we\u0027d better\nhold the lock to avoid subtil break in the future.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Miao Xie \u003cmiaox@cn.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": "ee24d3797780eee6ffe581a7b78d27896f9b494a",
      "tree": "8034dac124ab8f0a29bc6f238c030915b2e08398",
      "parents": [
        "c8163ca8afcac0fc54593fc60d1e1110edbd0eb2"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Mar 23 16:42:47 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:35 2011 -0700"
      },
      "message": "cpuset: fix unchecked calls to NODEMASK_ALLOC()\n\nThose functions that use NODEMASK_ALLOC() can\u0027t propagate errno\nto users, but will fail silently.\n\nFix it by using a static nodemask_t variable for each function, and\nthose variables are protected by cgroup_mutex;\n\n[akpm@linux-foundation.org: fix comment spelling, strengthen cgroup_lock comment]\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Miao Xie \u003cmiaox@cn.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": "c8163ca8afcac0fc54593fc60d1e1110edbd0eb2",
      "tree": "55a363ed73b91d8350d2df7083abf49c5c97b20d",
      "parents": [
        "9303e0c4814d2a6afca878cc35433291e862169c"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Mar 23 16:42:46 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:34 2011 -0700"
      },
      "message": "cpuset: remove unneeded NODEMASK_ALLOC() in cpuset_attach()\n\noldcs-\u003emems_allowed is not modified during cpuset_attach(), so we don\u0027t\nhave to copy it to a buffer allocated by NODEMASK_ALLOC().  Just pass it\nto cpuset_migrate_mm().\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Miao Xie \u003cmiaox@cn.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": "9303e0c4814d2a6afca878cc35433291e862169c",
      "tree": "786866f6f0639edcc2996d4157ea7128b2400898",
      "parents": [
        "f9434ad1552427fab49336e1a6e3ef121895b9d1"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Mar 23 16:42:45 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:34 2011 -0700"
      },
      "message": "cpuset: remove unneeded NODEMASK_ALLOC() in cpuset_sprintf_memlist()\n\nIt\u0027s not necessary to copy cpuset-\u003emems_allowed to a buffer allocated by\nNODEMASK_ALLOC().  Just pass it to nodelist_scnprintf().\n\nAs spotted by Paul, a side effect is we fix a bug that the function can\nreturn -ENOMEM but the caller doesn\u0027t expect negative return value.\nTherefore change the return value of cpuset_sprintf_cpulist() and\ncpuset_sprintf_memlist() from int to size_t.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Miao Xie \u003cmiaox@cn.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": "f9434ad1552427fab49336e1a6e3ef121895b9d1",
      "tree": "5284bccbf71e601d056d138e894c27726047dc82",
      "parents": [
        "5a6475a4e162200f43855e2d42bbf55bcca1a9f2"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Wed Mar 23 16:42:44 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:33 2011 -0700"
      },
      "message": "memcg: give current access to memory reserves if it\u0027s trying to die\n\nWhen a memcg is oom and current has already received a SIGKILL, then give\nit access to memory reserves with a higher scheduling priority so that it\nmay quickly exit and free its memory.\n\nThis is identical to the global oom killer and is done even before\nchecking for panic_on_oom: a pending SIGKILL here while panic_on_oom is\nselected is guaranteed to have come from userspace; the thread only needs\naccess to memory reserves to exit and thus we don\u0027t unnecessarily panic\nthe machine until the kernel has no last resort to free memory.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5a6475a4e162200f43855e2d42bbf55bcca1a9f2",
      "tree": "361ef686ef833cd1560e884ca1420d512e4d06bb",
      "parents": [
        "6cfddb261555dd0c0529a5fb7cf8bc5b85ad95a5"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Mar 23 16:42:42 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:33 2011 -0700"
      },
      "message": "memcg: fix leak on wrong LRU with FUSE\n\nfs/fuse/dev.c::fuse_try_move_page() does\n\n   (1) remove a page by -\u003esteal()\n   (2) re-add the page to page cache\n   (3) link the page to LRU if it was not on LRU at (1)\n\nThis implies the page is _on_ LRU when it\u0027s added to radix-tree.  So, the\npage is added to memory cgroup while it\u0027s on LRU.  because LRU is lazy and\nno one flushs it.\n\nThis is the same behavior as SwapCache and needs special care as\n - remove page from LRU before overwrite pc-\u003emem_cgroup.\n - add page to LRU after overwrite pc-\u003emem_cgroup.\n\nAnd we need to taking care of pagevec.\n\nIf PageLRU(page) is set before we add PCG_USED bit, the page will not be\nadded to memcg\u0027s LRU (in short period).  So, regardlress of PageLRU(page)\nvalue before commit_charge(), we need to check PageLRU(page) after\ncommit_charge().\n\nAddresses https://bugzilla.kernel.org/show_bug.cgi?id\u003d30432\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nReported-by: Daniel Poelzleithner \u003cpoelzi@poelzi.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6cfddb261555dd0c0529a5fb7cf8bc5b85ad95a5",
      "tree": "d6c966290c7a8224171c850098767a6fbfa5747b",
      "parents": [
        "dde79e005a769d800166687c9e00d50d93e411ff"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Wed Mar 23 16:42:41 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:33 2011 -0700"
      },
      "message": "memcg: page_cgroup array is never stored on reserved pages\n\nKAMEZAWA Hiroyuki noted that free_pages_cgroup doesn\u0027t have to check for\nPageReserved because we never store the array on reserved pages (neither\nalloc_pages_exact nor vmalloc use those pages).\n\nSo we can replace the check by a BUG_ON.\n\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dde79e005a769d800166687c9e00d50d93e411ff",
      "tree": "a38166f535b48063bd680deb64edbedf4395cfed",
      "parents": [
        "4be4489feae6da890765cc1bdc1af5e4f8c4b75f"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Wed Mar 23 16:42:40 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:32 2011 -0700"
      },
      "message": "page_cgroup: reduce allocation overhead for page_cgroup array for CONFIG_SPARSEMEM\n\nCurrently we are allocating a single page_cgroup array per memory section\n(stored in mem_section-\u003ebase) when CONFIG_SPARSEMEM is selected.  This is\ncorrect but memory inefficient solution because the allocated memory\n(unless we fall back to vmalloc) is not kmalloc friendly:\n\n        - 32b - 16384 entries (20B per entry) fit into 327680B so the\n          524288B slab cache is used\n        - 32b with PAE - 131072 entries with 2621440B fit into 4194304B\n        - 64b - 32768 entries (40B per entry) fit into 2097152 cache\n\nThis is ~37% wasted space per memory section and it sumps up for the whole\nmemory.  On a x86_64 machine it is something like 6MB per 1GB of RAM.\n\nWe can reduce the internal fragmentation by using alloc_pages_exact which\nallocates PAGE_SIZE aligned blocks so we will get down to \u003c4kB wasted\nmemory per section which is much better.\n\nWe still need a fallback to vmalloc because we have no guarantees that we\nwill have a continuous memory of that size (order-10) later on during the\nhotplug events.\n\n[hannes@cmpxchg.org: do not define unused free_page_cgroup() without memory hotplug]\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: 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": "4be4489feae6da890765cc1bdc1af5e4f8c4b75f",
      "tree": "c7c1154aaba8e59523024c119fdf769284023a35",
      "parents": [
        "7a159cc9d7987cdb4853f8711f5f89e01cfffe42"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed Mar 23 16:42:39 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:32 2011 -0700"
      },
      "message": "mm/memcontrol.c: suppress uninitialized-var warning with older gcc\u0027s\n\nmm/memcontrol.c: In function \u0027mem_cgroup_force_empty\u0027:\nmm/memcontrol.c:2280: warning: \u0027flags\u0027 may be used uninitialized in this function\n\nIt\u0027s a false positive.\n\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7a159cc9d7987cdb4853f8711f5f89e01cfffe42",
      "tree": "027e8468d40bfdb51ad9694ec1d5256bb2fdb36f",
      "parents": [
        "e9f8974f2f559b00c87ccfba67bca3903f913d50"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Mar 23 16:42:38 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:31 2011 -0700"
      },
      "message": "memcg: use native word page statistics counters\n\nThe statistic counters are in units of pages, there is no reason to make\nthem 64-bit wide on 32-bit machines.\n\nMake them native words.  Since they are signed, this leaves 31 bit on\n32-bit machines, which can represent roughly 8TB assuming a page size of\n4k.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Greg Thelen \u003cgthelen@google.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e9f8974f2f559b00c87ccfba67bca3903f913d50",
      "tree": "d19f8f7d15eb56e7af98c7ad63db8e86d5873fff",
      "parents": [
        "7ec99d6213b579a84c85ad37f2aa8ded4857c53c"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Mar 23 16:42:37 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:31 2011 -0700"
      },
      "message": "memcg: break out event counters from other stats\n\nFor increasing and decreasing per-cpu cgroup usage counters it makes sense\nto use signed types, as single per-cpu values might go negative during\nupdates.  But this is not the case for only-ever-increasing event\ncounters.\n\nAll the counters have been signed 64-bit so far, which was enough to count\nevents even with the sign bit wasted.\n\nThis patch:\n- divides s64 counters into signed usage counters and unsigned\n  monotonically increasing event counters.\n- converts unsigned event counters into \u0027unsigned long\u0027 rather than\n  \u0027u64\u0027.  This matches the type used by the /proc/vmstat event counters.\n\nThe next patch narrows the signed usage counters type (on 32-bit CPUs,\nthat is).\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Greg Thelen \u003cgthelen@google.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7ec99d6213b579a84c85ad37f2aa8ded4857c53c",
      "tree": "d05bb74c5ca30650ff0622cd1ffd2fd6ddecebd6",
      "parents": [
        "7ffd4ca7a2cdd7a18f0b499a4e9e0e7cf36ba018"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Mar 23 16:42:36 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:30 2011 -0700"
      },
      "message": "memcg: unify charge/uncharge quantities to units of pages\n\nThere is no clear pattern when we pass a page count and when we pass a\nbyte count that is a multiple of PAGE_SIZE.\n\nWe never charge or uncharge subpage quantities, so convert it all to page\ncounts.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7ffd4ca7a2cdd7a18f0b499a4e9e0e7cf36ba018",
      "tree": "1a2678ce91b9dfb2118d19e0ec457ca5582793f9",
      "parents": [
        "11c9ea4e80fc3be83485667204c68d0a732f3757"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Mar 23 16:42:35 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:30 2011 -0700"
      },
      "message": "memcg: convert uncharge batching from bytes to page granularity\n\nWe never uncharge subpage quantities.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "11c9ea4e80fc3be83485667204c68d0a732f3757",
      "tree": "71f68fb56e427c3ebe12e205e6ea56d72e7bd6ea",
      "parents": [
        "e7018b8d27e0c9aa2200e5b393e0fe9093c6565c"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Mar 23 16:42:34 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:29 2011 -0700"
      },
      "message": "memcg: convert per-cpu stock from bytes to page granularity\n\nWe never keep subpage quantities in the per-cpu stock.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e7018b8d27e0c9aa2200e5b393e0fe9093c6565c",
      "tree": "13a4d92cd78bc6f97d9a2b6d77880c9ea5d67aa1",
      "parents": [
        "bf1ff2635a5fda207fc870df348bfc766e8dcd4d"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Mar 23 16:42:33 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:29 2011 -0700"
      },
      "message": "memcg: keep only one charge cancelling function\n\nWe have two charge cancelling functions: one takes a page count, the other\na page size.  The second one just divides the parameter by PAGE_SIZE and\nthen calls the first one.  This is trivial, no need for an extra function.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bf1ff2635a5fda207fc870df348bfc766e8dcd4d",
      "tree": "d4085b3bdbe608f6c8f708cb93080051b341d7fe",
      "parents": [
        "4dc03de1b29901b61cb27e4cab44a7f578dc0fc9"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Mar 23 16:42:32 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:29 2011 -0700"
      },
      "message": "memcg: remove memcg-\u003ereclaim_param_lock\n\nThe reclaim_param_lock is only taken around single reads and writes to\ninteger variables and is thus superfluous.  Drop it.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@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": "4dc03de1b29901b61cb27e4cab44a7f578dc0fc9",
      "tree": "4edca28cf1636015eacd8012023804e4f27b2e34",
      "parents": [
        "6b3ae58efca06623c197fd6d91ded4aa3a8fe039"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Mar 23 16:42:31 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:28 2011 -0700"
      },
      "message": "memcg: charged pages always have valid per-memcg zone info\n\npage_cgroup_zoneinfo() will never return NULL for a charged page, remove\nthe check for it in mem_cgroup_get_reclaim_stat_from_page().\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@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": "6b3ae58efca06623c197fd6d91ded4aa3a8fe039",
      "tree": "6460e4e1ce206d391b862a3d398a9e22e33ecb3c",
      "parents": [
        "5564e88ba6fd2f6dcd83a592771810cd84b5ae80"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Mar 23 16:42:30 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:28 2011 -0700"
      },
      "message": "memcg: remove direct page_cgroup-to-page pointer\n\nIn struct page_cgroup, we have a full word for flags but only a few are\nreserved.  Use the remaining upper bits to encode, depending on\nconfiguration, the node or the section, to enable page_cgroup-to-page\nlookups without a direct pointer.\n\nThis saves a full word for every page in a system with memory cgroups\nenabled.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5564e88ba6fd2f6dcd83a592771810cd84b5ae80",
      "tree": "e2b3a0835067825308a254c7531c891d4d69e701",
      "parents": [
        "de3638d9cdc89ac899225996b8dcedbcbc53bdd2"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Mar 23 16:42:29 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:27 2011 -0700"
      },
      "message": "memcg: condense page_cgroup-to-page lookup points\n\nThe per-cgroup LRU lists string up \u0027struct page_cgroup\u0027s.  To get from\nthose structures to the page they represent, a lookup is required.\nCurrently, the lookup is done through a direct pointer in struct\npage_cgroup, so a lot of functions down the callchain do this lookup by\nthemselves instead of receiving the page pointer from their callers.\n\nThe next patch removes this pointer, however, and the lookup is no longer\nthat straight-forward.  In preparation for that, this patch only leaves\nthe non-optional lookups when coming directly from the LRU list and passes\nthe page down the stack.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Minchan Kim \u003cminchan.kim@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": "de3638d9cdc89ac899225996b8dcedbcbc53bdd2",
      "tree": "86293e32728fdd5696cd321bc65aec09c89d17f3",
      "parents": [
        "97a6c37b34f46feed2544bd40891ee6dd0fd1554"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Mar 23 16:42:28 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:27 2011 -0700"
      },
      "message": "memcg: fold __mem_cgroup_move_account into caller\n\nIt is one logical function, no need to have it split up.\n\nAlso, get rid of some checks from the inner function that ensured the\nsanity of the outer function.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Minchan Kim \u003cminchan.kim@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": "97a6c37b34f46feed2544bd40891ee6dd0fd1554",
      "tree": "6135189ba1f589d7a3b10c5e24da9a42ea9036f5",
      "parents": [
        "ad324e94475a04cfcdfdb11ad20f8ea81268e411"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Mar 23 16:42:27 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:26 2011 -0700"
      },
      "message": "memcg: change page_cgroup_zoneinfo signature\n\nInstead of passing a whole struct page_cgroup to this function, let it\ntake only what it really needs from it: the struct mem_cgroup and the\npage.\n\nThis has the advantage that reading pc-\u003emem_cgroup is now done at the same\nplace where the ordering rules for this pointer are enforced and\nexplained.\n\nIt is also in preparation for removing the pc-\u003epage backpointer.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Minchan Kim \u003cminchan.kim@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": "ad324e94475a04cfcdfdb11ad20f8ea81268e411",
      "tree": "4326bb602a3528071ffd6f3030c3a82c76a3454e",
      "parents": [
        "f212ad7cf9c73f8a7fa160e223dcb3f074441a72"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Mar 23 16:42:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:26 2011 -0700"
      },
      "message": "memcg: no uncharged pages reach page_cgroup_zoneinfo\n\nThis patch series removes the direct page pointer from struct page_cgroup,\nwhich saves 20% of per-page memcg memory overhead (Fedora and Ubuntu\nenable memcg per default, openSUSE apparently too).\n\nThe node id or section number is encoded in the remaining free bits of\npc-\u003eflags which allows calculating the corresponding page without the\nextra pointer.\n\nI ran, what I think is, a worst-case microbenchmark that just cats a large\nsparse file to /dev/null, because it means that walking the LRU list on\nbehalf of per-cgroup reclaim and looking up pages from page_cgroups is\nhappening constantly and at a high rate.  But it made no measurable\ndifference.  A profile reported a 0.11% share of the new\nlookup_cgroup_page() function in this benchmark.\n\nThis patch:\n\nAll callsites check PCG_USED before passing pc-\u003emem_cgroup, so the latter\nis never NULL.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Minchan Kim \u003cminchan.kim@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": "f212ad7cf9c73f8a7fa160e223dcb3f074441a72",
      "tree": "95789ef7ce662e86a3e4aded5dfb97c51dc7b0a0",
      "parents": [
        "af4a662144884a7dbb19acbef70878b3b955f928"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Wed Mar 23 16:42:25 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:25 2011 -0700"
      },
      "message": "memcg: add memcg sanity checks at allocating and freeing pages\n\nAdd checks at allocating or freeing a page whether the page is used (iow,\ncharged) from the view point of memcg.\n\nThis check may be useful in debugging a problem and we did similar checks\nbefore the commit 52d4b9ac(memcg: allocate all page_cgroup at boot).\n\nThis patch adds some overheads at allocating or freeing memory, so it\u0027s\nenabled only when CONFIG_DEBUG_VM is enabled.\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Minchan Kim \u003cminchan.kim@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": "af4a662144884a7dbb19acbef70878b3b955f928",
      "tree": "f16b04ed13de1ad1938af551e406879b90d4b0ca",
      "parents": [
        "c14f35c70e068392ccae0b2d6f755baea5eed4d6"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Mar 23 16:42:24 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:25 2011 -0700"
      },
      "message": "memcg: remove NULL check from lookup_page_cgroup() result\n\nThe page_cgroup array is set up before even fork is initialized.  I\nseriously doubt that this code executes before the array is alloc\u0027d.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Minchan Kim \u003cminchan.kim@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": "c14f35c70e068392ccae0b2d6f755baea5eed4d6",
      "tree": "1e3265ba63a859ee0b45ae89303afea4de19012c",
      "parents": [
        "3403968d7a7dc373901cad0cad56b3afcb09cc50"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Mar 23 16:42:23 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:24 2011 -0700"
      },
      "message": "memcg: remove impossible conditional when committing\n\nNo callsite ever passes a NULL pointer for a struct mem_cgroup * to the\ncommitting function.  There is no need to check for it.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Minchan Kim \u003cminchan.kim@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": "3403968d7a7dc373901cad0cad56b3afcb09cc50",
      "tree": "9c73d17914dab16fd90dcbae4bac303a98987da0",
      "parents": [
        "9d11ea9f163a14920487bdda77461e64d600fd48"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Mar 23 16:42:22 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:24 2011 -0700"
      },
      "message": "memcg: remove unused page flag bitfield defines\n\nThese definitions have been unused since \u00274b3bde4 memcg: remove the\noverhead associated with the root cgroup\u0027.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Minchan Kim \u003cminchan.kim@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": "9d11ea9f163a14920487bdda77461e64d600fd48",
      "tree": "9435e30836ee97f3e8c235451bc944cdc8a345c4",
      "parents": [
        "b7c6167848fa36e32f1874b95c1edc02881cd040"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Mar 23 16:42:21 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:23 2011 -0700"
      },
      "message": "memcg: simplify the way memory limits are checked\n\nSince transparent huge pages, checking whether memory cgroups are below\ntheir limits is no longer enough, but the actual amount of chargeable\nspace is important.\n\nTo not have more than one limit-checking interface, replace\nmemory_cgroup_check_under_limit() and memory_cgroup_check_margin() with a\nsingle memory_cgroup_margin() that returns the chargeable space and leaves\nthe comparison to the callsite.\n\nSoft limits are now checked the other way round, by using the already\nexisting function that returns the amount by which soft limits are\nexceeded: res_counter_soft_limit_excess().\n\nAlso remove all the corresponding functions on the res_counter side that\nare now no longer used.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Minchan Kim \u003cminchan.kim@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": "b7c6167848fa36e32f1874b95c1edc02881cd040",
      "tree": "d160acb871f2be4e0e7095c662b647e12a199dac",
      "parents": [
        "56039efa18f2530fc23e8ef19e716b65ee2a1d1e"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Mar 23 16:42:20 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:23 2011 -0700"
      },
      "message": "memcg: soft limit reclaim should end at limit not below\n\nSoft limit reclaim continues until the usage is below the current soft\nlimit, but the documented semantics are actually that soft limit reclaim\nwill push usage back until the soft limits are met again.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Minchan Kim \u003cminchan.kim@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": "56039efa18f2530fc23e8ef19e716b65ee2a1d1e",
      "tree": "a61cbd2f760e93363657622de2cd1591db028458",
      "parents": [
        "6c191cd01a935e5b53ef43c9403c771bb7a32b60"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Mar 23 16:42:19 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:22 2011 -0700"
      },
      "message": "memcg: fix ugly initialization of return value is in caller\n\nRemove initialization of vaiable in caller of memory cgroup function.\nActually, it\u0027s return value of memcg function but it\u0027s initialized in\ncaller.\n\nSome memory cgroup uses following style to bring the result of start\nfunction to the end function for avoiding races.\n\n   mem_cgroup_start_A(\u0026(*ptr))\n   /* Something very complicated can happen here. */\n   mem_cgroup_end_A(*ptr)\n\nIn some calls, *ptr should be initialized to NULL be caller.  But it\u0027s\nugly.  This patch fixes that *ptr is initialized by _start function.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6c191cd01a935e5b53ef43c9403c771bb7a32b60",
      "tree": "70c49b4cb52406ea1d8c60f73ad7733f60f9cee9",
      "parents": [
        "61f2e7b0f474225b4226772830ae4b29a3a21f8d"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Mar 23 16:42:18 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:22 2011 -0700"
      },
      "message": "memcg: res_counter_read_u64(): fix potential races on 32-bit machines\n\nres_counter_read_u64 reads u64 value without lock.  It\u0027s dangerous in a\n32bit environment.  Add locking.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Minchan Kim \u003cminchan.kim@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": "61f2e7b0f474225b4226772830ae4b29a3a21f8d",
      "tree": "52f880fe6feec8efe5e5e028a3e0637629a500b7",
      "parents": [
        "3fca5af7860f87eb2cd706c2d7dda4ad03230a07"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:42:16 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:22 2011 -0700"
      },
      "message": "bitops: remove minix bitops from asm/bitops.h\n\nminix bit operations are only used by minix filesystem and useless by\nother modules.  Because byte order of inode and block bitmaps is different\non each architecture like below:\n\nm68k:\n\tbig-endian 16bit indexed bitmaps\n\nh8300, microblaze, s390, sparc, m68knommu:\n\tbig-endian 32 or 64bit indexed bitmaps\n\nm32r, mips, sh, xtensa:\n\tbig-endian 32 or 64bit indexed bitmaps for big-endian mode\n\tlittle-endian bitmaps for little-endian mode\n\nOthers:\n\tlittle-endian bitmaps\n\nIn order to move minix bit operations from asm/bitops.h to architecture\nindependent code in minix filesystem, this provides two config options.\n\nCONFIG_MINIX_FS_BIG_ENDIAN_16BIT_INDEXED is only selected by m68k.\nCONFIG_MINIX_FS_NATIVE_ENDIAN is selected by the architectures which use\nnative byte order bitmaps (h8300, microblaze, s390, sparc, m68knommu,\nm32r, mips, sh, xtensa).  The architectures which always use little-endian\nbitmaps do not select these options.\n\nFinally, we can remove minix bit operations from asm/bitops.h for all\narchitectures.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Greg Ungerer \u003cgerg@uclinux.org\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: Andreas Schwab \u003cschwab@linux-m68k.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Yoshinori Sato \u003cysato@users.sourceforge.jp\u003e\nCc: Michal Simek \u003cmonstr@monstr.eu\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nAcked-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Chris Zankel \u003cchris@zankel.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3fca5af7860f87eb2cd706c2d7dda4ad03230a07",
      "tree": "f89b0df7317c250ccd6998fa2b1fa2f91ade4353",
      "parents": [
        "f312eff8164879e04923d41e9dd23e7850937d85"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:42:15 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:21 2011 -0700"
      },
      "message": "m68k: remove inline asm from minix_find_first_zero_bit\n\nAs a preparation for moving minix bit operations from asm/bitops.h to\narchitecture independent code in minix filesystem, this removes inline asm\nfrom minix_find_first_zero_bit() for m68k.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: Andreas Schwab \u003cschwab@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f312eff8164879e04923d41e9dd23e7850937d85",
      "tree": "9f4f6fd00ebf12afd5b070c44d12b55a29440360",
      "parents": [
        "bb5cda3d706f44e5696533c9a7353c458f2871e0"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:42:14 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:21 2011 -0700"
      },
      "message": "bitops: remove ext2 non-atomic bitops from asm/bitops.h\n\nAs the result of conversions, there are no users of ext2 non-atomic bit\noperations except for ext2 filesystem itself.  Now we can put them into\narchitecture independent code in ext2 filesystem, and remove from\nasm/bitops.h for all architectures.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bb5cda3d706f44e5696533c9a7353c458f2871e0",
      "tree": "ad720028d76caf0f6ce69fd7f52086972177757b",
      "parents": [
        "6b33aff368def952be78102c0935ebd219f9a748"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:42:13 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:20 2011 -0700"
      },
      "message": "dm: use little-endian bitops\n\nAs a preparation for removing ext2 non-atomic bit operations from\nasm/bitops.h.  This converts ext2 non-atomic bit operations to\nlittle-endian bit operations.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Alasdair Kergon \u003cagk@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": "6b33aff368def952be78102c0935ebd219f9a748",
      "tree": "d8f06ac51fb13bf34d1fc3791db02761c8662a22",
      "parents": [
        "3cdc7125c364b2baad8aba69c058b26d3dca5f52"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:42:13 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:20 2011 -0700"
      },
      "message": "md: use little-endian bitops\n\nAs a preparation for removing ext2 non-atomic bit operations from\nasm/bitops.h.  This converts ext2 non-atomic bit operations to\nlittle-endian bit operations.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nAcked-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3cdc7125c364b2baad8aba69c058b26d3dca5f52",
      "tree": "a26cc3fc4b4102f645da3971bea46a73e897ae36",
      "parents": [
        "9ad1e1e405fb2c1ff35f2ec67cc6ba4c6765f192"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:42:11 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:19 2011 -0700"
      },
      "message": "ufs: use little-endian bitops\n\nAs a preparation for removing ext2 non-atomic bit operations from\nasm/bitops.h.  This converts ext2 non-atomic bit operations to\nlittle-endian bit operations.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Evgeniy Dushistov \u003cdushistov@mail.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9ad1e1e405fb2c1ff35f2ec67cc6ba4c6765f192",
      "tree": "668dff5e8992b5d28e644e156a3f75287fac9b2d",
      "parents": [
        "b9b9144a5336f0d85428e2870e1010641f27b3f4"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:42:11 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:19 2011 -0700"
      },
      "message": "udf: use little-endian bitops\n\nAs a preparation for removing ext2 non-atomic bit operations from\nasm/bitops.h.  This converts ext2 non-atomic bit operations to\nlittle-endian bit operations.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b9b9144a5336f0d85428e2870e1010641f27b3f4",
      "tree": "f009d3b0beb33aa5a58c4434a9f61e53689958ad",
      "parents": [
        "a49ebbabb084d345991b72818a119616431416f2"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:42:10 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:18 2011 -0700"
      },
      "message": "reiserfs: use little-endian bitops\n\nAs a preparation for removing ext2 non-atomic bit operations from\nasm/bitops.h.  This converts ext2 non-atomic bit operations to\nlittle-endian bit operations.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@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": "a49ebbabb084d345991b72818a119616431416f2",
      "tree": "9e89ac864c70ccd83c9f83df5c94d7466c28b394",
      "parents": [
        "c4354d0d6812ad6729ac33d3c8bc64585cfdb890"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:42:08 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:18 2011 -0700"
      },
      "message": "nilfs2: use little-endian bitops\n\nAs a preparation for removing ext2 non-atomic bit operations from\nasm/bitops.h.  This converts ext2 non-atomic bit operations to\nlittle-endian bit operations.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nAcked-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c4354d0d6812ad6729ac33d3c8bc64585cfdb890",
      "tree": "e4cc200aeae32e65578702b8f20e22b0b9047a72",
      "parents": [
        "50e0168cc3406fc1a04d57eb08f500a173d1660d"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:42:08 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:17 2011 -0700"
      },
      "message": "ocfs2: use little-endian bitops\n\nAs a preparation for removing ext2 non-atomic bit operations from\nasm/bitops.h.  This converts ext2 non-atomic bit operations to\nlittle-endian bit operations.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "50e0168cc3406fc1a04d57eb08f500a173d1660d",
      "tree": "19f8e15048c37bfface138e19eb93855e02c266c",
      "parents": [
        "0795ccea24714c790187e3d4f23c8e5be515f42d"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:42:07 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:17 2011 -0700"
      },
      "message": "ext4: use little-endian bitops\n\nAs a preparation for removing ext2 non-atomic bit operations from\nasm/bitops.h.  This converts ext2 non-atomic bit operations to\nlittle-endian bit operations.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nAcked-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Andreas Dilger \u003cadilger.kernel@dilger.ca\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0795ccea24714c790187e3d4f23c8e5be515f42d",
      "tree": "643e48522c01936d3a203fdf45e0373cfb4e7a20",
      "parents": [
        "e1dc1c81b9d1c823f2a529b9b9cf8bf5dacbce6a"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:42:06 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:17 2011 -0700"
      },
      "message": "ext3: use little-endian bitops\n\nAs a preparation for removing ext2 non-atomic bit operations from\nasm/bitops.h.  This converts ext2 non-atomic bit operations to\nlittle-endian bit operations.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Andreas Dilger \u003cadilger.kernel@dilger.ca\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e1dc1c81b9d1c823f2a529b9b9cf8bf5dacbce6a",
      "tree": "fe680c335b011615572390ebf224887e556c9469",
      "parents": [
        "cd7e48c5de223f400bbfe52dc531a70f7b668e8c"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:42:05 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:16 2011 -0700"
      },
      "message": "rds: use little-endian bitops\n\nAs a preparation for removing ext2 non-atomic bit operations from\nasm/bitops.h.  This converts ext2 non-atomic bit operations to\nlittle-endian bit operations.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Andy Grover \u003candy.grover@oracle.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cd7e48c5de223f400bbfe52dc531a70f7b668e8c",
      "tree": "fa231c42d2e79f5e959ca1ccc6b6087337980be4",
      "parents": [
        "c56530055a7c16eed03d31bedd0a49976923f8cf"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:42:04 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:16 2011 -0700"
      },
      "message": "kvm: use little-endian bitops\n\nAs a preparation for removing ext2 non-atomic bit operations from\nasm/bitops.h.  This converts ext2 non-atomic bit operations to\nlittle-endian bit operations.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@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": "c56530055a7c16eed03d31bedd0a49976923f8cf",
      "tree": "89e06e8c617e9aa1930a3f219046a86618d97e90",
      "parents": [
        "861b5ae7cde96ca081914e21dedfa7e8a38da622"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:42:04 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:15 2011 -0700"
      },
      "message": "asm-generic: use little-endian bitops\n\nAs a preparation for removing ext2 non-atomic bit operations from\nasm/bitops.h.  This converts ext2 non-atomic bit operations to\nlittle-endian bit operations.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "861b5ae7cde96ca081914e21dedfa7e8a38da622",
      "tree": "376cae55475cce2bb45b96213b1f91b330db0448",
      "parents": [
        "c1e6ca7a501f0139e5ec2a01f8420eeb21c97a52"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:42:02 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:15 2011 -0700"
      },
      "message": "bitops: introduce little-endian bitops for most architectures\n\nIntroduce little-endian bit operations to the big-endian architectures\nwhich do not have native little-endian bit operations and the\nlittle-endian architectures.  (alpha, avr32, blackfin, cris, frv, h8300,\nia64, m32r, mips, mn10300, parisc, sh, sparc, tile, x86, xtensa)\n\nThese architectures can just include generic implementation\n(asm-generic/bitops/le.h).\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Mikael Starvik \u003cstarvik@axis.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Yoshinori Sato \u003cysato@users.sourceforge.jp\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Matthew Wilcox \u003cwilly@debian.org\u003e\nCc: Grant Grundler \u003cgrundler@parisc-linux.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Kazumoto Kojima \u003ckkojima@rr.iij4u.or.jp\u003e\nCc: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Chris Zankel \u003cchris@zankel.net\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Hans-Christian Egtvedt \u003chans-christian.egtvedt@atmel.com\u003e\nAcked-by: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c1e6ca7a501f0139e5ec2a01f8420eeb21c97a52",
      "tree": "538f5424eedda1039dec6d6cc5f81cbee16e2e1b",
      "parents": [
        "0664996b7c2fdb1b7f90954469cc242274abd7db"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:42:00 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:14 2011 -0700"
      },
      "message": "m68knommu: introduce little-endian bitops\n\nIntroduce little-endian bit operations by renaming native ext2 bit\noperations.  The ext2 bit operations are kept as wrapper macros using\nlittle-endian bit operations to maintain bisectability until the\nconversions are finished.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nAcked-by: Greg Ungerer \u003cgerg@uclinux.org\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: Andreas Schwab \u003cschwab@linux-m68k.org\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0664996b7c2fdb1b7f90954469cc242274abd7db",
      "tree": "21bcf25afb94791f87fc5aa8c7e79ac1a8845ad8",
      "parents": [
        "3f5527fe7e0fb50556b97b8addbe3832985f793e"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:41:59 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:14 2011 -0700"
      },
      "message": "bitops: introduce CONFIG_GENERIC_FIND_BIT_LE\n\nThis introduces CONFIG_GENERIC_FIND_BIT_LE to tell whether to use generic\nimplementation of find_*_bit_le() in lib/find_next_bit.c or not.\n\nFor now we select CONFIG_GENERIC_FIND_BIT_LE for all architectures which\nenable CONFIG_GENERIC_FIND_NEXT_BIT.\n\nBut m68knommu wants to define own faster find_next_zero_bit_le() and\ncontinues using generic find_next_{,zero_}bit().\n(CONFIG_GENERIC_FIND_NEXT_BIT and !CONFIG_GENERIC_FIND_BIT_LE)\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Greg Ungerer \u003cgerg@uclinux.org\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3f5527fe7e0fb50556b97b8addbe3832985f793e",
      "tree": "c4716151c4db4f436f19e0e6d9de4db3ef2c0308",
      "parents": [
        "f6b57e322f85f9d69db15ca112ee33cab33041b8"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:41:58 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:13 2011 -0700"
      },
      "message": "m68k: introduce little-endian bitops\n\nIntroduce little-endian bit operations by renaming native ext2 bit\noperations and changing find_*_bit_le() to take a \"void *\".  The ext2 bit\noperations are kept as wrapper macros using little-endian bit operations\nto maintain bisectability until the conversions are finished.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: Andreas Schwab \u003cschwab@linux-m68k.org\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f6b57e322f85f9d69db15ca112ee33cab33041b8",
      "tree": "b532c0f0088bece8af632ac5273672f79f5cb127",
      "parents": [
        "50b9b475c5b3e6649c22e1d39ab3ced3dbf21758"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:41:57 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:13 2011 -0700"
      },
      "message": "arm: introduce little-endian bitops\n\nIntroduce little-endian bit operations by renaming native ext2 bit\noperations.  The ext2 and minix bit operations are kept as wrapper macros\nusing little-endian bit operations to maintain bisectability until the\nconversions are finished.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "50b9b475c5b3e6649c22e1d39ab3ced3dbf21758",
      "tree": "4072a30d4a95585e72377b99da3e86ceb62ac6e5",
      "parents": [
        "f57d7ff1b8798eccbc778552df34ed9f154ecebb"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:41:57 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:12 2011 -0700"
      },
      "message": "s390: introduce little-endian bitops\n\nIntroduce little-endian bit operations by renaming native ext2 bit\noperations.  The ext2 bit operations are kept as wrapper macros using\nlittle-endian bit operations to maintain bisectability until the\nconversions are finished.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f57d7ff1b8798eccbc778552df34ed9f154ecebb",
      "tree": "cbd0d81ae617d35b737714d33b7921be415d9830",
      "parents": [
        "a56560b3b233238e85205d4e8d7bded904ac2306"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:41:56 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:12 2011 -0700"
      },
      "message": "powerpc: introduce little-endian bitops\n\nIntroduce little-endian bit operations by renaming existing powerpc native\nlittle-endian bit operations and changing them to take any pointer types.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a56560b3b233238e85205d4e8d7bded904ac2306",
      "tree": "3965be2ab5fcf6c70fc09604861c14ef554915e8",
      "parents": [
        "c4945b9ed472e8796e352f10df9dbc2841ba7b61"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:41:50 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:12 2011 -0700"
      },
      "message": "asm-generic: change little-endian bitops to take any pointer types\n\nThis makes the little-endian bitops take any pointer types by changing the\nprototypes and adding casts in the preprocessor macros.\n\nThat would seem to at least make all the filesystem code happier, and they\ncan continue to do just something like\n\n  #define ext2_set_bit __test_and_set_bit_le\n\n(or whatever the exact sequence ends up being).\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Mikael Starvik \u003cstarvik@axis.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Yoshinori Sato \u003cysato@users.sourceforge.jp\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Matthew Wilcox \u003cwilly@debian.org\u003e\nCc: Grant Grundler \u003cgrundler@parisc-linux.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Kazumoto Kojima \u003ckkojima@rr.iij4u.or.jp\u003e\nCc: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Chris Zankel \u003cchris@zankel.net\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Hans-Christian Egtvedt \u003chans-christian.egtvedt@atmel.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c4945b9ed472e8796e352f10df9dbc2841ba7b61",
      "tree": "6e2fa896f3a153d3bb16e7a07c87620cabf1ebd6",
      "parents": [
        "63ab595fb6b34234f116f05f95dc752dd5f8affb"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:41:47 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:11 2011 -0700"
      },
      "message": "asm-generic: rename generic little-endian bitops functions\n\nAs a preparation for providing little-endian bitops for all architectures,\nThis renames generic implementation of little-endian bitops.  (remove\n\"generic_\" prefix and postfix \"_le\")\n\ns/generic_find_next_le_bit/find_next_bit_le/\ns/generic_find_next_zero_le_bit/find_next_zero_bit_le/\ns/generic_find_first_zero_le_bit/find_first_zero_bit_le/\ns/generic___test_and_set_le_bit/__test_and_set_bit_le/\ns/generic___test_and_clear_le_bit/__test_and_clear_bit_le/\ns/generic_test_le_bit/test_bit_le/\ns/generic___set_le_bit/__set_bit_le/\ns/generic___clear_le_bit/__clear_bit_le/\ns/generic_test_and_set_le_bit/test_and_set_bit_le/\ns/generic_test_and_clear_le_bit/test_and_clear_bit_le/\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Hans-Christian Egtvedt \u003chans-christian.egtvedt@atmel.com\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: Andreas Schwab \u003cschwab@linux-m68k.org\u003e\nCc: Greg Ungerer \u003cgerg@uclinux.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "63ab595fb6b34234f116f05f95dc752dd5f8affb",
      "tree": "37bf0cd86463e24df2f0162190be38e75c4af7b6",
      "parents": [
        "12ce22423abacca70bf1dfbcb8543b3e2b74aad4"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:41:46 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:11 2011 -0700"
      },
      "message": "bitops: merge little and big endian definisions in asm-generic/bitops/le.h\n\nThis patch series introduces little-endian bit operations in asm/bitops.h\nfor all architectures and converts all ext2 non-atomic and minix bit\noperations to use little-endian bit operations.  It enables us to remove\next2 non-atomic and minix bit operations from asm/bitops.h.  The reason\nthey should be removed from asm/bitops.h is as follows:\n\nFor ext2 non-atomic bit operations, they are used for little-endian byte\norder bitmap access by some filesystems and modules.  But using ext2_*()\nfunctions on a module other than ext2 filesystem makes some feel strange.\n\nFor minix bit operations, they are only used by minix filesystem and are\nuseless by other modules.  Because byte order of inode and block bitmap is\n\nThis patch:\n\nIn order to make the forthcoming changes smaller, this merges macro\ndefinisions in asm-generic/bitops/le.h for big-endian and little-endian as\nmuch as possible.\n\nThis also removes unused BITOP_WORD macro.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "12ce22423abacca70bf1dfbcb8543b3e2b74aad4",
      "tree": "0b88b1e70187c59994c2e0ef0dcc3e6ba888c858",
      "parents": [
        "5140a357ea77527f4a93c5846217417658fdb35d"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:41:45 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:10 2011 -0700"
      },
      "message": "rds: stop including asm-generic/bitops/le.h directly\n\nasm-generic/bitops/le.h is only intended to be included directly from\nasm-generic/bitops/ext2-non-atomic.h or asm-generic/bitops/minix-le.h\nwhich implements generic ext2 or minix bit operations.\n\nThis stops including asm-generic/bitops/le.h directly and use ext2\nnon-atomic bit operations instead.\n\nIt seems odd to use ext2_*_bit() on rds, but it will replaced with\n__{set,clear,test}_bit_le() after introducing little endian bit operations\nfor all architectures.  This indirect step is necessary to maintain\nbisectability for some architectures which have their own little-endian\nbit operations.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Andy Grover \u003candy.grover@oracle.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5140a357ea77527f4a93c5846217417658fdb35d",
      "tree": "a7df66f84e40d739dc00c50976954adbc4d6a761",
      "parents": [
        "135a9fcf45f8d41b4ab008114792f4f6c6572675"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:41:44 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:10 2011 -0700"
      },
      "message": "kvm: stop including asm-generic/bitops/le.h directly\n\nasm-generic/bitops/le.h is only intended to be included directly from\nasm-generic/bitops/ext2-non-atomic.h or asm-generic/bitops/minix-le.h\nwhich implements generic ext2 or minix bit operations.\n\nThis stops including asm-generic/bitops/le.h directly and use ext2\nnon-atomic bit operations instead.\n\nIt seems odd to use ext2_set_bit() on kvm, but it will replaced with\n__set_bit_le() after introducing little endian bit operations for all\narchitectures.  This indirect step is necessary to maintain bisectability\nfor some architectures which have their own little-endian bit operations.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@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": "135a9fcf45f8d41b4ab008114792f4f6c6572675",
      "tree": "aac70afe1c2e456f14ca52c34dccbb758fdc8b13",
      "parents": [
        "f48fea035b439fa0c75138d0a113ef409dc9caa0"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed Mar 23 16:41:43 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:09 2011 -0700"
      },
      "message": "fs/adfs/adfs.h: fix unsigned comparison\n\nfs/adfs/adfs.h: In function \u0027append_filetype_suffix\u0027:\nfs/adfs/adfs.h:115: warning: comparison is always false due to limited range of data type\n\nReported-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Stuart Swales \u003cstuart.swales.croftnuisk@gmail.com\u003e\nCc: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f48fea035b439fa0c75138d0a113ef409dc9caa0",
      "tree": "ee9172f4661331f6b454c5eb561c0caf8ed95d96",
      "parents": [
        "968b503e69a6b90aa4a3b9162960f605b6abd821"
      ],
      "author": {
        "name": "Luck, Tony",
        "email": "tony.luck@intel.com",
        "time": "Wed Mar 23 16:41:43 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:09 2011 -0700"
      },
      "message": "ia64: fix build breakage in asm/thread_info.h\n\nIn commit 504f52b5439aaf26d3e2c1d45ec10fce38c8dd27\n    mm: NUMA aware alloc_task_struct_node()\n\nEric Dumazet forgot a \"\\\".  Add it.\n\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "968b503e69a6b90aa4a3b9162960f605b6abd821",
      "tree": "b11144867500373dc33b1d85413dbf575e849c90",
      "parents": [
        "4bbba111d94781d34081c37856bbc5eb33f6c72a"
      ],
      "author": {
        "name": "Chris Wilson",
        "email": "chris@chris-wilson.co.uk",
        "time": "Wed Mar 23 18:16:55 2011 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:45:06 2011 -0700"
      },
      "message": "Revert \"drm/i915: Don\u0027t save/restore hardware status page address register\"\n\nThis reverts commit a7a75c8f70d6f6a2f16c9f627f938bbee2d32718.\n\nThere are two different variations on how Intel hardware addresses the\n\"Hardware Status Page\". One as a location in physical memory and the\nother as an offset into the virtual memory of the GPU, used in more\nrecent chipsets. (The HWS itself is a cacheable region of memory which\nthe GPU can write to without requiring CPU synchronisation, used for\nupdating various details of hardware state, such as the position of\nthe GPU head in the ringbuffer, the last breadcrumb seqno, etc).\n\nThese two types of addresses were updated in different locations of code\n- one inline with the ringbuffer initialisation, and the other during\ndevice initialisation. (The HWS page is logically associated with\nthe rings, and there is one HWS page per ring.) During resume, only the\nringbuffers were being re-initialised along with the virtual HWS page,\nleaving the older physical address HWS untouched. This then caused a\nhang on the older gen3/4 (915GM, 945GM, 965GM) the first time we tried\nto synchronise the GPU as the breadcrumbs were never being updated.\n\nReported-and-tested-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nReported-by: Jan Niehusmann \u003cjan@gondor.com\u003e\nReported-by: Justin P. Mattock \u003cjustinmattock@gmail.com\u003e\nReported-and-tested-by: Michael \"brot\" Groh \u003cbrot@minad.de\u003e\nCc: Zhenyu Wang \u003czhenyuw@linux.intel.com\u003e\nSigned-off-by: Chris Wilson \u003cchris@chris-wilson.co.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4bbba111d94781d34081c37856bbc5eb33f6c72a",
      "tree": "b4d5358f92e6a0f695f34bef41f3df9158398f21",
      "parents": [
        "2130781e2aaab66e5a9f2fdc8af35da0153f405c",
        "ce24f58a1187ca3058d72c3f897e3b574209ab20"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 07:58:09 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 07:58:09 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:\n  ALSA: HDA: Realtek: Avoid unnecessary volume control index on Surround/Side\n  ASoC: Support !REGULATOR build for sgtl5000\n  ALSA: hda - VIA: Fix VT1708 can\u0027t build up Headphone control issue\n  ALSA: hda - VIA: Correct stream names for VT1818S\n  ALSA: hda - VIA: Fix codec type for VT1708BCE at the right timing\n  ALSA: hda - VIA: Fix invalid A-A path volume adjust issue\n  ALSA: hda - VIA: Add missing support for VT1718S in A-A path\n  ALSA: hda - VIA: Fix independent headphone no sound issue\n  ALSA: hda - VIA: Fix stereo mixer recording no sound issue\n  ALSA: hda - Set EAPD for Realtek ALC665\n  ALSA: usb - Remove trailing spaces from USB card name strings\n  sound: read i_size with i_size_read()\n  ASoC: Remove bogus check for register validity in debugfs write\n  ASoC: mini2440: Fix uda134x codec problem.\n"
    },
    {
      "commit": "2130781e2aaab66e5a9f2fdc8af35da0153f405c",
      "tree": "ccd654b948587a39b219f74e6cfd73ef6daa3658",
      "parents": [
        "04948c7f80b9446009c1c4791bb93e79729724fb"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 23:03:13 2011 -0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 07:54:22 2011 -0700"
      },
      "message": "sys_swapon: fix inode locking\n\nA conflict between 52c50567d8ab (\"mm: swap: unlock swapfile inode mutex\nbefore closing file on bad swapfiles\") and 83ef99befc32 (\"sys_swapon:\nremove did_down variable\") caused a double unlock of the inode mutex\n(once in bad_swap: before the filp_close, once at the end just before\nreturning).\n\nThe patch which added the extra unlock cleared did_down to avoid\nunlocking twice, but the other patch removed the did_down variable.\n\nTo fix, set inode to NULL after the first unlock, since it will be used\nafter that point only for the final unlock.\n\nWhile checking this patch, I found a path which could unlock without\nlocking, in case the same inode was added as a swapfile twice. To fix,\nmove the setting of the inode variable further down, to just before\nclaim_swapfile, which will lock the inode before doing anything else.\n\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "04948c7f80b9446009c1c4791bb93e79729724fb",
      "tree": "3ee9859148561fdf7cb4f52afe17db594104ea83",
      "parents": [
        "6447f55da90b77faec1697d499ed7986bb4f6de6"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Mar 23 08:24:58 2011 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 07:48:42 2011 -0700"
      },
      "message": "smp: add missing init.h include\n\nCommit 34db18a054c6 (\"smp: move smp setup functions to kernel/smp.c\")\ncauses this build error on s390 because of a missing init.h include:\n\n  CC      arch/s390/kernel/asm-offsets.s\n  In file included from /home2/heicarst/linux-2.6/arch/s390/include/asm/spinlock.h:14:0,\n  from include/linux/spinlock.h:87,\n  from include/linux/seqlock.h:29,\n  from include/linux/time.h:8,\n  from include/linux/timex.h:56,\n  from include/linux/sched.h:57,\n  from arch/s390/kernel/asm-offsets.c:10:\n  include/linux/smp.h:117:20: error: expected \u0027\u003d\u0027, \u0027,\u0027, \u0027;\u0027, \u0027asm\u0027 or \u0027__attribute__\u0027 before \u0027setup_nr_cpu_ids\u0027\n  include/linux/smp.h:118:20: error: expected \u0027\u003d\u0027, \u0027,\u0027, \u0027;\u0027, \u0027asm\u0027 or \u0027__attribute__\u0027 before \u0027smp_init\u0027\n\nFix it by adding the include statement.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nAcked-by: WANG Cong \u003camwang@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ce24f58a1187ca3058d72c3f897e3b574209ab20",
      "tree": "f84384469aca4c6660c4f12bee3e99deb16221ec",
      "parents": [
        "5a8826463c19b0d1a2fc60b2adac0ec318047844",
        "333802e90d3f0366c4a1cb767e2783d2e1df73a8"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Wed Mar 23 12:05:01 2011 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Wed Mar 23 12:05:01 2011 +0100"
      },
      "message": "Merge branch \u0027topic/asoc\u0027 into for-linus\n"
    },
    {
      "commit": "5a8826463c19b0d1a2fc60b2adac0ec318047844",
      "tree": "413c2369d166805aa5906d713fdd462bf9f58ce6",
      "parents": [
        "ee3c35c0827de02de414d08b2ddcbb910c2263ab"
      ],
      "author": {
        "name": "David Henningsson",
        "email": "david.henningsson@canonical.com",
        "time": "Wed Mar 23 08:35:07 2011 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Wed Mar 23 09:22:02 2011 +0100"
      },
      "message": "ALSA: HDA: Realtek: Avoid unnecessary volume control index on Surround/Side\n\nSimilar to commit 7e59e097c09b82760bb0fe08b0fa2b704d76c3f4, this patch\navoids unnecessary volume control indices for more\nRealtek auto-parsers, e g the ALC66x family, on the \"Surround\" and \"Side\"\ncontrols.\nThese indices cause these volume controls to be ignored by PulseAudio and\nvmaster and should be removed whenever possible.\n\nCc: stable@kernel.org\nReported-by: Jan Losinski \u003closinski@wh2.tu-dresden.de\u003e\nSigned-off-by: David Henningsson \u003cdavid.henningsson@canonical.com\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "6447f55da90b77faec1697d499ed7986bb4f6de6",
      "tree": "2d360d48121bdaa354d1ef19fed48467d08dfb1f",
      "parents": [
        "c50e3f512a5a15a73acd94e6ec8ed63cd512e04f",
        "3ea205c449d2b5996d0256aa8b2894f7aea228a2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:53:13 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:53:13 2011 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx: (66 commits)\n  avr32: at32ap700x: fix typo in DMA master configuration\n  dmaengine/dmatest: Pass timeout via module params\n  dma: let IMX_DMA depend on IMX_HAVE_DMA_V1 instead of an explicit list of SoCs\n  fsldma: make halt behave nicely on all supported controllers\n  fsldma: reduce locking during descriptor cleanup\n  fsldma: support async_tx dependencies and automatic unmapping\n  fsldma: fix controller lockups\n  fsldma: minor codingstyle and consistency fixes\n  fsldma: improve link descriptor debugging\n  fsldma: use channel name in printk output\n  fsldma: move related helper functions near each other\n  dmatest: fix automatic buffer unmap type\n  drivers, pch_dma: Fix warning when CONFIG_PM\u003dn.\n  dmaengine/dw_dmac fix: use readl \u0026 writel instead of __raw_readl \u0026 __raw_writel\n  avr32: at32ap700x: Specify DMA Flow Controller, Src and Dst msize\n  dw_dmac: Setting Default Burst length for transfers as 16.\n  dw_dmac: Allow src/dst msize \u0026 flow controller to be configured at runtime\n  dw_dmac: Changing type of src_master and dest_master to u8.\n  dw_dmac: Pass Channel Priority from platform_data\n  dw_dmac: Pass Channel Allocation Order from platform_data\n  ...\n"
    }
  ],
  "next": "c50e3f512a5a15a73acd94e6ec8ed63cd512e04f"
}
