)]}'
{
  "log": [
    {
      "commit": "e5a3b95f581da62e2054ef79d3be2d383e9ed664",
      "tree": "6a55bf40033c92b2c82fa0643c2511dbe7124b32",
      "parents": [
        "33043cbb9fd49a957089f5948fe814764d7abbd6"
      ],
      "author": {
        "name": "Tetsuo Handa",
        "email": "penguin-kernel@I-love.SAKURA.ne.jp",
        "time": "Sat Feb 14 11:46:56 2009 +0900"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Feb 16 09:01:48 2009 +1100"
      },
      "message": "TOMOYO: Don\u0027t create securityfs entries unless registered.\n\nTOMOYO should not create /sys/kernel/security/tomoyo/ interface unless\nTOMOYO is registered.\n\nSigned-off-by: Kentaro Takeda \u003ctakedakn@nttdata.co.jp\u003e\nSigned-off-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nSigned-off-by: Toshiharu Harada \u003charadats@nttdata.co.jp\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "33043cbb9fd49a957089f5948fe814764d7abbd6",
      "tree": "66be66415be5a1108788291194cc5b2bc89fb6fe",
      "parents": [
        "26036651c562609d1f52d181f9d2cccbf89929b1"
      ],
      "author": {
        "name": "Tetsuo Handa",
        "email": "penguin-kernel@i-love.sakura.ne.jp",
        "time": "Fri Feb 13 16:00:58 2009 +0900"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Sat Feb 14 12:33:30 2009 +1100"
      },
      "message": "TOMOYO: Fix exception policy read failure.\n\nDue to wrong initialization, \"cat /sys/kernel/security/tomoyo/exception_policy\"\nreturned nothing.\n\nSigned-off-by: Kentaro Takeda \u003ctakedakn@nttdata.co.jp\u003e\nSigned-off-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nSigned-off-by: Toshiharu Harada \u003charadats@nttdata.co.jp\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "26036651c562609d1f52d181f9d2cccbf89929b1",
      "tree": "db68ab98d574d6763f562ac87cc7810385496f22",
      "parents": [
        "edf3d1aecd0d608acbd561b0c527e1d41abcb657"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Feb 12 14:51:04 2009 -0500"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Sat Feb 14 09:23:48 2009 +1100"
      },
      "message": "SELinux: convert the avc cache hash list to an hlist\n\nWe do not need O(1) access to the tail of the avc cache lists and so we are\nwasting lots of space using struct list_head instead of struct hlist_head.\nThis patch converts the avc cache to use hlists in which there is a single\npointer from the head which saves us about 4k of global memory.\n\nResulted in about a 1.5% decrease in time spent in avc_has_perm_noaudit based\non oprofile sampling of tbench.  Although likely within the noise....\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nReviewed-by: Paul Moore \u003cpaul.moore@hp.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "edf3d1aecd0d608acbd561b0c527e1d41abcb657",
      "tree": "49d88ec27a59f602784b47e2f951934d245f7de8",
      "parents": [
        "f1c6381a6e337adcecf84be2a838bd9e610e2365"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Feb 12 14:50:59 2009 -0500"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Sat Feb 14 09:23:45 2009 +1100"
      },
      "message": "SELinux: code readability with avc_cache\n\nThe code making use of struct avc_cache was not easy to read thanks to liberal\nuse of \u0026avc_cache.{slots_lock,slots}[hvalue] throughout.  This patch simply\ncreates local pointers and uses those instead of the long global names.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "f1c6381a6e337adcecf84be2a838bd9e610e2365",
      "tree": "a6e0857db27a38b0976fb422836f9443241b4b61",
      "parents": [
        "21193dcd1f3570ddfd8a04f4465e484c1f94252f"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Feb 12 14:50:54 2009 -0500"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Sat Feb 14 09:23:08 2009 +1100"
      },
      "message": "SELinux: remove unused av.decided field\n\nIt appears there was an intention to have the security server only decide\ncertain permissions and leave other for later as some sort of a portential\nperformance win.  We are currently always deciding all 32 bits of\npermissions and this is a useless couple of branches and wasted space.\nThis patch completely drops the av.decided concept.\n\nThis in a 17% reduction in the time spent in avc_has_perm_noaudit\nbased on oprofile sampling of a tbench benchmark.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nReviewed-by: Paul Moore \u003cpaul.moore@hp.com\u003e\nAcked-by:  Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "21193dcd1f3570ddfd8a04f4465e484c1f94252f",
      "tree": "b6cab3861103261a3ab27ff3ea3485cb53af5a92",
      "parents": [
        "906d27d9d28fd50fb40026e56842d8f6806a7a04"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Feb 12 14:50:49 2009 -0500"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Sat Feb 14 09:23:04 2009 +1100"
      },
      "message": "SELinux: more careful use of avd in avc_has_perm_noaudit\n\nwe are often needlessly jumping through hoops when it comes to avd\nentries in avc_has_perm_noaudit and we have extra initialization and memcpy\nwhich are just wasting performance.  Try to clean the function up a bit.\n\nThis patch resulted in a 13% drop in time spent in avc_has_perm_noaudit in my\noprofile sampling of a tbench benchmark.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nReviewed-by: Paul Moore \u003cpaul.moore@hp.com\u003e\nAcked-by:  Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "906d27d9d28fd50fb40026e56842d8f6806a7a04",
      "tree": "4f73e1396a09349a307f38b1de19767f558bedb1",
      "parents": [
        "a5dda683328f99c781f92c66cc52ffc0639bef58"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Feb 12 14:50:43 2009 -0500"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Sat Feb 14 09:22:37 2009 +1100"
      },
      "message": "SELinux: remove the unused ae.used\n\nCurrently SELinux code has an atomic which was intended to track how many\ntimes an avc entry was used and to evict entries when they haven\u0027t been\nused recently.  Instead we never let this atomic get above 1 and evict when\nit is first checked for eviction since it hits zero.  This is a total waste\nof time so I\u0027m completely dropping ae.used.\n\nThis change resulted in about a 3% faster avc_has_perm_noaudit when running\noprofile against a tbench benchmark.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nReviewed by: Paul Moore \u003cpaul.moore@hp.com\u003e\nAcked-by: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "a5dda683328f99c781f92c66cc52ffc0639bef58",
      "tree": "2432f51e505fd9242f7081d5bf4e21ff322b73d6",
      "parents": [
        "4cb912f1d1447077160ace9ce3b3a10696dd74e5"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Feb 12 14:50:11 2009 -0500"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Sat Feb 14 09:22:34 2009 +1100"
      },
      "message": "SELinux: check seqno when updating an avc_node\n\nThe avc update node callbacks do not check the seqno of the caller with the\nseqno of the node found.  It is possible that a policy change could happen\n(although almost impossibly unlikely) in which a permissive or\npermissive_domain decision is not valid for the entry found.  Simply pass\nand check that the seqno of the caller and the seqno of the node found\nmatch.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by:  Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "4cb912f1d1447077160ace9ce3b3a10696dd74e5",
      "tree": "916f112de07ca626b0f398a0fc85943f15306146",
      "parents": [
        "4ba0a8ad63e12a03ae01c039482967cc496b9174"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Feb 12 14:50:05 2009 -0500"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Sat Feb 14 09:22:30 2009 +1100"
      },
      "message": "SELinux: NULL terminate al contexts from disk\n\nWhen a context is pulled in from disk we don\u0027t know that it is null\nterminated.  This patch forecebly null terminates contexts when we pull\nthem from disk.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by:  Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "4ba0a8ad63e12a03ae01c039482967cc496b9174",
      "tree": "340aa55aa98cc42c33cff4297f0813f14f46b121",
      "parents": [
        "200ac532a4bc3134147ca06686c56a6420e66c46"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Feb 12 15:01:10 2009 -0500"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Sat Feb 14 09:22:27 2009 +1100"
      },
      "message": "SELinux: better printk when file with invalid label found\n\nCurrently when an inode is read into the kernel with an invalid label\nstring (can often happen with removable media) we output a string like:\n\nSELinux: inode_doinit_with_dentry:  context_to_sid([SOME INVALID LABEL])\nreturned -22 dor dev\u003d[blah] ino\u003d[blah]\n\nWhich is all but incomprehensible to all but a couple of us.  Instead, on\nEINVAL only, I plan to output a much more user friendly string and I plan to\nratelimit the printk since many of these could be generated very rapidly.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by:  Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "200ac532a4bc3134147ca06686c56a6420e66c46",
      "tree": "f9b1779458df389052c758ea23cf61695a021e67",
      "parents": [
        "b53fab9d48e9bd9aeba0b500dec550becd981a91"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Feb 12 15:01:04 2009 -0500"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Sat Feb 14 09:22:24 2009 +1100"
      },
      "message": "SELinux: call capabilities code directory\n\nFor cleanliness and efficiency remove all calls to secondary-\u003e and instead\ncall capabilities code directly.  capabilities are the only module that\nselinux stacks with and so the code should not indicate that other stacking\nmight be possible.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by:  Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "b53fab9d48e9bd9aeba0b500dec550becd981a91",
      "tree": "19e17d0aa255624bf6455ac35a5089ac550abdb6",
      "parents": [
        "35d50e60e8b12e4adc2fa317343a176d87294a72"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Thu Feb 12 09:54:14 2009 -0800"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Feb 13 09:27:56 2009 +1100"
      },
      "message": "ima: fix build error\n\nIMA_LSM_RULES requires AUDIT.  This is automatic if SECURITY_SELINUX\u003dy\nbut not when SECURITY_SMACK\u003dy (and SECURITY_SELINUX\u003dn), so make the\ndependency explicit.  This fixes the following build error:\n\nsecurity/integrity/ima/ima_policy.c:111:error: implicit declaration of function \u0027security_audit_rule_match\u0027\nsecurity/integrity/ima/ima_policy.c:230:error: implicit declaration of function \u0027security_audit_rule_init\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nAcked-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "35d50e60e8b12e4adc2fa317343a176d87294a72",
      "tree": "d4374d08677dafdf940fc8bdaaadc0aeefa06126",
      "parents": [
        "42d5aaa2d826f54924e260b58a8e410e59d54163"
      ],
      "author": {
        "name": "Tetsuo Handa",
        "email": "penguin-kernel@i-love.sakura.ne.jp",
        "time": "Thu Feb 12 15:53:38 2009 +0900"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Feb 12 20:21:10 2009 +1100"
      },
      "message": "tomoyo: fix sparse warning\n\nFix sparse warning.\n\n$ make C\u003d2 SUBDIRS\u003dsecurity/tomoyo CF\u003d\"-D__cold__\u003d\"\n CHECK   security/tomoyo/common.c\n CHECK   security/tomoyo/realpath.c\n CHECK   security/tomoyo/tomoyo.c\nsecurity/tomoyo/tomoyo.c:110:8: warning: symbol \u0027buf\u0027 shadows an earlier one\nsecurity/tomoyo/tomoyo.c:100:7: originally declared here\n\nSigned-off-by: Kentaro Takeda \u003ctakedakn@nttdata.co.jp\u003e\nSigned-off-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nSigned-off-by: Toshiharu Harada \u003charadats@nttdata.co.jp\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "42d5aaa2d826f54924e260b58a8e410e59d54163",
      "tree": "64e3c400671d3adf1ed40f5179e95655400ce1cc",
      "parents": [
        "d74db3b22a75fac474abe711f582ffe25eacce25"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Feb 12 16:29:04 2009 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Feb 12 16:29:04 2009 +1100"
      },
      "message": "security: change link order of LSMs so security\u003dtomoyo works\n\nLSMs need to be linked before root_plug to ensure the security\u003d\nboot parameter works with them.  Do this for Tomoyo.\n\n(root_plug probably needs to be taken out and shot at some point,\ntoo).\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "d74db3b22a75fac474abe711f582ffe25eacce25",
      "tree": "39e950d113d89060e2b24a2e7bd4294e51c42926",
      "parents": [
        "00d7d6f840ddc947237307e022de5e75ded4105f"
      ],
      "author": {
        "name": "Kentaro Takeda",
        "email": "takedakn@nttdata.co.jp",
        "time": "Thu Feb 05 17:18:18 2009 +0900"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Feb 12 15:19:01 2009 +1100"
      },
      "message": "MAINTAINERS info\n\nThe archive of tomoyo-users-en mailing list is available at\nhttp://lists.sourceforge.jp/mailman/archives/tomoyo-users-en/ .\nMailing lists for Japanese users are at\nhttp://lists.sourceforge.jp/mailman/archives/tomoyo-users/ and\nhttp://lists.sourceforge.jp/mailman/archives/tomoyo-dev/ .\n\nTOMOYO Linux English portal is at\nhttp://elinux.org/TomoyoLinux .\n\nSigned-off-by: Kentaro Takeda \u003ctakedakn@nttdata.co.jp\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "00d7d6f840ddc947237307e022de5e75ded4105f",
      "tree": "53669494101f93becdd401be2e70073bc7c6fe0b",
      "parents": [
        "f7433243770c77979c396b4c7449a10e9b3521db"
      ],
      "author": {
        "name": "Kentaro Takeda",
        "email": "takedakn@nttdata.co.jp",
        "time": "Thu Feb 05 17:18:17 2009 +0900"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Feb 12 15:19:00 2009 +1100"
      },
      "message": "Kconfig and Makefile\n\nTOMOYO uses LSM hooks for pathname based access control and securityfs support.\n\nSigned-off-by: Kentaro Takeda \u003ctakedakn@nttdata.co.jp\u003e\nSigned-off-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "f7433243770c77979c396b4c7449a10e9b3521db",
      "tree": "8bcb3d92ddb65b73f1802c5476d75f92814477d8",
      "parents": [
        "26a2a1c9eb88d9aca8891575b3b986812e073872"
      ],
      "author": {
        "name": "Kentaro Takeda",
        "email": "takedakn@nttdata.co.jp",
        "time": "Thu Feb 05 17:18:16 2009 +0900"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Feb 12 15:15:05 2009 +1100"
      },
      "message": "LSM adapter functions.\n\nDAC\u0027s permissions and TOMOYO\u0027s permissions are not one-to-one mapping.\n\nRegarding DAC, there are \"read\", \"write\", \"execute\" permissions.\nRegarding TOMOYO, there are \"allow_read\", \"allow_write\", \"allow_read/write\",\n\"allow_execute\", \"allow_create\", \"allow_unlink\", \"allow_mkdir\", \"allow_rmdir\",\n\"allow_mkfifo\", \"allow_mksock\", \"allow_mkblock\", \"allow_mkchar\",\n\"allow_truncate\", \"allow_symlink\", \"allow_rewrite\", \"allow_link\",\n\"allow_rename\" permissions.\n\n+----------------------------------+----------------------------------+\n| requested operation              | required TOMOYO\u0027s permission     |\n+----------------------------------+----------------------------------+\n| sys_open(O_RDONLY)               | allow_read                       |\n+----------------------------------+----------------------------------+\n| sys_open(O_WRONLY)               | allow_write                      |\n+----------------------------------+----------------------------------+\n| sys_open(O_RDWR)                 | allow_read/write                 |\n+----------------------------------+----------------------------------+\n| open_exec() from do_execve()     | allow_execute                    |\n+----------------------------------+----------------------------------+\n| open_exec() from !do_execve()    | allow_read                       |\n+----------------------------------+----------------------------------+\n| sys_read()                       | (none)                           |\n+----------------------------------+----------------------------------+\n| sys_write()                      | (none)                           |\n+----------------------------------+----------------------------------+\n| sys_mmap()                       | (none)                           |\n+----------------------------------+----------------------------------+\n| sys_uselib()                     | allow_read                       |\n+----------------------------------+----------------------------------+\n| sys_open(O_CREAT)                | allow_create                     |\n+----------------------------------+----------------------------------+\n| sys_open(O_TRUNC)                | allow_truncate                   |\n+----------------------------------+----------------------------------+\n| sys_truncate()                   | allow_truncate                   |\n+----------------------------------+----------------------------------+\n| sys_ftruncate()                  | allow_truncate                   |\n+----------------------------------+----------------------------------+\n| sys_open() without O_APPEND      | allow_rewrite                    |\n+----------------------------------+----------------------------------+\n| setfl() without O_APPEND         | allow_rewrite                    |\n+----------------------------------+----------------------------------+\n| sys_sysctl() for writing         | allow_write                      |\n+----------------------------------+----------------------------------+\n| sys_sysctl() for reading         | allow_read                       |\n+----------------------------------+----------------------------------+\n| sys_unlink()                     | allow_unlink                     |\n+----------------------------------+----------------------------------+\n| sys_mknod(S_IFREG)               | allow_create                     |\n+----------------------------------+----------------------------------+\n| sys_mknod(0)                     | allow_create                     |\n+----------------------------------+----------------------------------+\n| sys_mknod(S_IFIFO)               | allow_mkfifo                     |\n+----------------------------------+----------------------------------+\n| sys_mknod(S_IFSOCK)              | allow_mksock                     |\n+----------------------------------+----------------------------------+\n| sys_bind(AF_UNIX)                | allow_mksock                     |\n+----------------------------------+----------------------------------+\n| sys_mknod(S_IFBLK)               | allow_mkblock                    |\n+----------------------------------+----------------------------------+\n| sys_mknod(S_IFCHR)               | allow_mkchar                     |\n+----------------------------------+----------------------------------+\n| sys_symlink()                    | allow_symlink                    |\n+----------------------------------+----------------------------------+\n| sys_mkdir()                      | allow_mkdir                      |\n+----------------------------------+----------------------------------+\n| sys_rmdir()                      | allow_rmdir                      |\n+----------------------------------+----------------------------------+\n| sys_link()                       | allow_link                       |\n+----------------------------------+----------------------------------+\n| sys_rename()                     | allow_rename                     |\n+----------------------------------+----------------------------------+\n\nTOMOYO requires \"allow_execute\" permission of a pathname passed to do_execve()\nbut does not require \"allow_read\" permission of that pathname.\nLet\u0027s consider 3 patterns (statically linked, dynamically linked,\nshell script). This description is to some degree simplified.\n\n  $ cat hello.c\n  #include \u003cstdio.h\u003e\n  int main() {\n          printf(\"Hello\\n\");\n          return 0;\n  }\n  $ cat hello.sh\n  #! /bin/sh\n  echo \"Hello\"\n  $ gcc -static -o hello-static hello.c\n  $ gcc -o hello-dynamic hello.c\n  $ chmod 755 hello.sh\n\nCase 1 -- Executing hello-static from bash.\n\n  (1) The bash process calls fork() and the child process requests\n      do_execve(\"hello-static\").\n\n  (2) The kernel checks \"allow_execute hello-static\" from \"bash\" domain.\n\n  (3) The kernel calculates \"bash hello-static\" as the domain to transit to.\n\n  (4) The kernel overwrites the child process by \"hello-static\".\n\n  (5) The child process transits to \"bash hello-static\" domain.\n\n  (6) The \"hello-static\" starts and finishes.\n\nCase 2 -- Executing hello-dynamic from bash.\n\n  (1) The bash process calls fork() and the child process requests\n      do_execve(\"hello-dynamic\").\n\n  (2) The kernel checks \"allow_execute hello-dynamic\" from \"bash\" domain.\n\n  (3) The kernel calculates \"bash hello-dynamic\" as the domain to transit to.\n\n  (4) The kernel checks \"allow_read ld-linux.so\" from \"bash hello-dynamic\"\n      domain. I think permission to access ld-linux.so should be charged\n      hello-dynamic program, for \"hello-dynamic needs ld-linux.so\" is not\n      a fault of bash program.\n\n  (5) The kernel overwrites the child process by \"hello-dynamic\".\n\n  (6) The child process transits to \"bash hello-dynamic\" domain.\n\n  (7) The \"hello-dynamic\" starts and finishes.\n\nCase 3 -- Executing hello.sh from bash.\n\n  (1) The bash process calls fork() and the child process requests\n      do_execve(\"hello.sh\").\n\n  (2) The kernel checks \"allow_execute hello.sh\" from \"bash\" domain.\n\n  (3) The kernel calculates \"bash hello.sh\" as the domain to transit to.\n\n  (4) The kernel checks \"allow_read /bin/sh\" from \"bash hello.sh\" domain.\n      I think permission to access /bin/sh should be charged hello.sh program,\n      for \"hello.sh needs /bin/sh\" is not a fault of bash program.\n\n  (5) The kernel overwrites the child process by \"/bin/sh\".\n\n  (6) The child process transits to \"bash hello.sh\" domain.\n\n  (7) The \"/bin/sh\" requests open(\"hello.sh\").\n\n  (8) The kernel checks \"allow_read hello.sh\" from  \"bash hello.sh\" domain.\n\n  (9) The \"/bin/sh\" starts and finishes.\n\nWhether a file is interpreted as a program or not depends on an application.\nThe kernel cannot know whether the file is interpreted as a program or not.\nThus, TOMOYO treats \"hello-static\" \"hello-dynamic\" \"ld-linux.so\" \"hello.sh\"\n\"/bin/sh\" equally as merely files; no distinction between executable and\nnon-executable. Therefore, TOMOYO doesn\u0027t check DAC\u0027s execute permission.\nTOMOYO checks \"allow_read\" permission instead.\n\nCalling do_execve() is a bold gesture that an old program\u0027s instance (i.e.\ncurrent process) is ready to be overwritten by a new program and is ready to\ntransfer control to the new program. To split purview of programs, TOMOYO\nrequires \"allow_execute\" permission of the new program against the old\nprogram\u0027s instance and performs domain transition. If do_execve() succeeds,\nthe old program is no longer responsible against the consequence of the new\nprogram\u0027s behavior. Only the new program is responsible for all consequences.\n\nBut TOMOYO doesn\u0027t require \"allow_read\" permission of the new program.\nIf TOMOYO requires \"allow_read\" permission of the new program, TOMOYO will\nallow an attacker (who hijacked the old program\u0027s instance) to open the new\nprogram and steal data from the new program. Requiring \"allow_read\" permission\nwill widen purview of the old program.\n\nNot requiring \"allow_read\" permission of the new program against the old\nprogram\u0027s instance is my design for reducing purview of the old program.\nTo be able to know whether the current process is in do_execve() or not,\nI want to add in_execve flag to \"task_struct\".\n\nSigned-off-by: Kentaro Takeda \u003ctakedakn@nttdata.co.jp\u003e\nSigned-off-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nSigned-off-by: Toshiharu Harada \u003charadats@nttdata.co.jp\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "26a2a1c9eb88d9aca8891575b3b986812e073872",
      "tree": "4abec8ee7800aa52c1055ad74185156c7894e743",
      "parents": [
        "b69a54ee582373d76e4b5560970db5b8c618b12a"
      ],
      "author": {
        "name": "Kentaro Takeda",
        "email": "takedakn@nttdata.co.jp",
        "time": "Thu Feb 05 17:18:15 2009 +0900"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Feb 12 15:15:05 2009 +1100"
      },
      "message": "Domain transition handler.\n\nThis file controls domain creation/deletion/transition.\n\nEvery process belongs to a domain in TOMOYO Linux.\nDomain transition occurs when execve(2) is called\nand the domain is expressed as \u0027process invocation history\u0027,\nsuch as \u0027\u003ckernel\u003e /sbin/init /etc/init.d/rc\u0027.\nDomain information is stored in current-\u003ecred-\u003esecurity field.\n\nSigned-off-by: Kentaro Takeda \u003ctakedakn@nttdata.co.jp\u003e\nSigned-off-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nSigned-off-by: Toshiharu Harada \u003charadats@nttdata.co.jp\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "b69a54ee582373d76e4b5560970db5b8c618b12a",
      "tree": "5889c074f7885187104906c921da0bab318bfe64",
      "parents": [
        "9590837b89aaa4523209ac91c52db5ea0d9142fd"
      ],
      "author": {
        "name": "Kentaro Takeda",
        "email": "takedakn@nttdata.co.jp",
        "time": "Thu Feb 05 17:18:14 2009 +0900"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Feb 12 15:15:05 2009 +1100"
      },
      "message": "File operation restriction part.\n\nThis file controls file related operations of TOMOYO Linux.\n\ntomoyo/tomoyo.c calls the following six functions in this file.\nEach function handles the following access types.\n\n * tomoyo_check_file_perm\nsysctl()\u0027s \"read\" and \"write\".\n\n * tomoyo_check_exec_perm\n\"execute\".\n\n * tomoyo_check_open_permission\nopen(2) for \"read\" and \"write\".\n\n * tomoyo_check_1path_perm\n\"create\", \"unlink\", \"mkdir\", \"rmdir\", \"mkfifo\",\n\"mksock\", \"mkblock\", \"mkchar\", \"truncate\" and \"symlink\".\n\n * tomoyo_check_2path_perm\n\"rename\" and \"unlink\".\n\n * tomoyo_check_rewrite_permission\n\"rewrite\".\n(\"rewrite\" are operations which may lose already recorded data of a file,\ni.e. open(!O_APPEND) || open(O_TRUNC) || truncate() || ftruncate())\n\nThe functions which actually checks ACLs are the following three functions.\nEach function handles the following access types.\nACL directive is expressed by \"allow_\u003caccess type\u003e\".\n\n * tomoyo_check_file_acl\nOpen() operation and execve() operation.\n(\"read\", \"write\", \"read/write\" and \"execute\")\n\n * tomoyo_check_single_write_acl\nDirectory modification operations with 1 pathname.\n(\"create\", \"unlink\", \"mkdir\", \"rmdir\", \"mkfifo\", \"mksock\",\n \"mkblock\", \"mkchar\", \"truncate\", \"symlink\" and \"rewrite\")\n\n * tomoyo_check_double_write_acl\nDirectory modification operations with 2 pathname.\n(\"link\" and \"rename\")\n\nAlso, this file contains handlers of some utility directives\nfor file related operations.\n\n * \"allow_read\":   specifies globally (for all domains) readable files.\n * \"path_group\":   specifies pathname macro.\n * \"deny_rewrite\": restricts rewrite operation.\n\nSigned-off-by: Kentaro Takeda \u003ctakedakn@nttdata.co.jp\u003e\nSigned-off-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nSigned-off-by: Toshiharu Harada \u003charadats@nttdata.co.jp\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "9590837b89aaa4523209ac91c52db5ea0d9142fd",
      "tree": "0e7e3febb1f6106be0e45c281309078f6c1cd7e6",
      "parents": [
        "c73bd6d473ceb5d643d3afd7e75b7dc2e6918558"
      ],
      "author": {
        "name": "Kentaro Takeda",
        "email": "takedakn@nttdata.co.jp",
        "time": "Thu Feb 05 17:18:13 2009 +0900"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Feb 12 15:15:04 2009 +1100"
      },
      "message": "Common functions for TOMOYO Linux.\n\nThis file contains common functions (e.g. policy I/O, pattern matching).\n\n-------------------- About pattern matching --------------------\n\nSince TOMOYO Linux is a name based access control, TOMOYO Linux seriously\nconsiders \"safe\" string representation.\n\nTOMOYO Linux\u0027s string manipulation functions make reviewers feel crazy,\nbut there are reasons why TOMOYO Linux needs its own string manipulation\nfunctions.\n\n----- Part 1 : preconditions -----\n\nPeople definitely want to use wild card.\n\n  To support pattern matching, we have to support wild card characters.\n\n  In a typical Linux system, filenames are likely consists of only alphabets,\n  numbers, and some characters (e.g. + - ~ . / ).\n  But theoretically, the Linux kernel accepts all characters but NUL character\n  (which is used as a terminator of a string).\n\n    Some Linux systems can have filenames which contain * ? ** etc.\n\nTherefore, we have to somehow modify string so that we can distinguish\nwild card characters and normal characters.\n\n  It might be possible for some application\u0027s configuration files to restrict\n  acceptable characters.\n  It is impossible for kernel to restrict acceptable characters.\n\n    We can\u0027t accept approaches which will cause troubles for applications.\n\n----- Part 2 : commonly used approaches -----\n\nText formatted strings separated by space character (0x20) and new line\ncharacter (0x0A) is more preferable for users over array of NUL-terminated\nstring.\n\n  Thus, people use text formatted configuration files separated by space\n  character and new line.\n\nWe sometimes need to handle non-printable characters.\n\n  Thus, people use \\ character (0x5C) as escape character and represent\n  non-printable characters using octal or hexadecimal format.\n\nAt this point, we remind (at least) 3 approaches.\n\n  (1) Shell glob style expression\n  (2) POSIX regular expression (UNIX style regular expression)\n  (3) Maverick wild card expression\n\nOn the surface, (1) and (2) sound good choices. But they have a big pitfall.\nAll meta-characters in (1) and (2) are legal characters for representing\na pathname, and users easily write incorrect expression. What is worse, users\nunlikely notice incorrect expressions because characters used for regular\npathnames unlikely contain meta-characters. This incorrect use of\nmeta-characters in pathname representation reveals vulnerability\n(e.g. unexpected results) only when irregular pathname is specified.\n\nThe authors of TOMOYO Linux think that approaches which adds some character\nfor interpreting meta-characters as normal characters (i.e. (1) and (2)) are\nnot suitable for security use.\n\nTherefore, the authors of TOMOYO Linux propose (3).\n\n----- Part 3: consideration points -----\n\nWe need to solve encoding problem.\n\n  A single character can be represented in several ways using encodings.\n\n    For Japanese language, there are \"ShiftJIS\", \"ISO-2022-JP\", \"EUC-JP\",\n    \"UTF-8\" and more.\n\n  Some languages (e.g. Japanese language) supports multi-byte characters\n  (where a single character is represented using several bytes).\n\n    Some multi-byte characters may match the escape character.\n\n    For Japanese language, some characters in \"ShiftJIS\" encoding match\n    \\ character, and bothering Web\u0027s CGI developers.\n\n  It is important that the kernel string is not bothered by encoding problem.\n\n    Linus said, \"I really would expect that kernel strings don\u0027t have\n    an encoding. They\u0027re just C strings: a NUL-terminated stream of bytes.\"\n    http://lkml.org/lkml/2007/11/6/142\n\n    Yes. The kernel strings are just C strings.\n    We are talking about how to store and carry \"kernel strings\" safely.\n\n  If we store \"kernel string\" into policy file as-is, the \"kernel string\" will\n  be interpreted differently depending on application\u0027s encoding settings.\n  One application may interpret \"kernel string\" as \"UTF-8\",\n  another application may interpret \"kernel string\" as \"ShiftJIS\".\n\n    Therefore, we propose to represent strings using ASCII encoding.\n    In this way, we are no longer bothered by encoding problems.\n\nWe need to avoid information loss caused by display.\n\n  It is difficult to input and display non-printable characters, but we have to\n  be able to handle such characters because the kernel string is a C string.\n\n  If we use only ASCII printable characters (from 0x21 to 0x7E) and space\n  character (0x20) and new line character (0x0A), it is easy to input from\n  keyboard and display on all terminals which is running Linux.\n\n  Therefore, we propose to represent strings using only characters which value\n  is one of \"from 0x21 to 0x7E\", \"0x20\", \"0x0A\".\n\nWe need to consider ease of splitting strings from a line.\n\n  If we use an approach which uses \"\\ \" for representing a space character\n  within a string, we have to count the string from the beginning to check\n  whether this space character is accompanied with \\ character or not.\n  As a result, we cannot monotonically split a line using space character.\n\n  If we use an approach which uses \"\\040\" for representing a space character\n  within a string, we can monotonically split a line using space character.\n\n  If we use an approach which uses NUL character as a delimiter, we cannot\n  use string manipulation functions for splitting strings from a line.\n\n  Therefore, we propose that we represent space character as \"\\040\".\n\nWe need to avoid wrong designations (incorrect use of special characters).\n\n  Not all users can understand and utilize POSIX\u0027s regular expressions\n  correctly and perfectly.\n\n  If a character acts as a wild card by default, the user will get unexpected\n  result if that user didn\u0027t know the meaning of that character.\n\n    Therefore, we propose that all characters but \\ character act as\n    a normal character and let the user add \\ character to make a character\n    act as a wild card.\n\n    In this way, users needn\u0027t to know all wild card characters beforehand.\n    They can learn when they encountered an unseen wild card character\n    for their first time.\n\n----- Part 4: supported wild card expressions -----\n\nAt this point, we have wild card expressions listed below.\n\n  +-----------+--------------------------------------------------------------+\n  | Wild card | Meaning and example                                          |\n  +-----------+--------------------------------------------------------------+\n  |   \\*      | More than or equals to 0 character other than \u0027/\u0027.           |\n  |           |           /var/log/samba/\\*                                  |\n  +-----------+--------------------------------------------------------------+\n  |   \\@      | More than or equals to 0 character other than \u0027/\u0027 or \u0027.\u0027.    |\n  |           |           /var/www/html/\\@.html                              |\n  +-----------+--------------------------------------------------------------+\n  |   \\?      | 1 byte character other than \u0027/\u0027.                             |\n  |           |           /tmp/mail.\\?\\?\\?\\?\\?\\?                             |\n  +-----------+--------------------------------------------------------------+\n  |   \\$      | More than or equals to 1 decimal digit.                      |\n  |           |           /proc/\\$/cmdline                                   |\n  +-----------+--------------------------------------------------------------+\n  |   \\+      | 1 decimal digit.                                             |\n  |           |           /var/tmp/my_work.\\+                                |\n  +-----------+--------------------------------------------------------------+\n  |   \\X      | More than or equals to 1 hexadecimal digit.                  |\n  |           |           /var/tmp/my-work.\\X                                |\n  +-----------+--------------------------------------------------------------+\n  |   \\x      | 1 hexadecimal digit.                                         |\n  |           |           /tmp/my-work.\\x                                    |\n  +-----------+--------------------------------------------------------------+\n  |   \\A      | More than or equals to 1 alphabet character.                 |\n  |           |           /var/log/my-work/\\$-\\A-\\$.log                      |\n  +-----------+--------------------------------------------------------------+\n  |   \\a      | 1 alphabet character.                                        |\n  |           |           /home/users/\\a/\\*/public_html/\\*.html              |\n  +-----------+--------------------------------------------------------------+\n  |   \\-      | Pathname subtraction operator.                               |\n  |           | +---------------------+------------------------------------+ |\n  |           | | Example             | Meaning                            | |\n  |           | +---------------------+------------------------------------+ |\n  |           | | /etc/\\*             | All files in /etc/ directory.      | |\n  |           | +---------------------+------------------------------------+ |\n  |           | | /etc/\\*\\-\\*shadow\\* | /etc/\\* other than /etc/\\*shadow\\* | |\n  |           | +---------------------+------------------------------------+ |\n  |           | | /\\*\\-proc\\-sys/     | /\\*/ other than /proc/ /sys/       | |\n  |           | +---------------------+------------------------------------+ |\n  +-----------+--------------------------------------------------------------+\n\n  +----------------+---------------------------------------------------------+\n  | Representation | Meaning and example                                     |\n  +----------------+---------------------------------------------------------+\n  |   \\\\           | backslash character itself.                             |\n  +----------------+---------------------------------------------------------+\n  |   \\ooo         | 1 byte character.                                       |\n  |                | ooo is 001 \u003c\u003d ooo \u003c\u003d 040 || 177 \u003c\u003d ooo \u003c\u003d 377.          |\n  |                |                                                         |\n  |                |           \\040 for space character.                     |\n  |                |           \\177 for del character.                       |\n  |                |                                                         |\n  +----------------+---------------------------------------------------------+\n\n----- Part 5: Advantages -----\n\nWe can obtain extensibility.\n\n  Since our proposed approach adds \\ to a character to interpret as a wild\n  card, we can introduce new wild card in future while maintaining backward\n  compatibility.\n\nWe can process monotonically.\n\n  Since our proposed approach separates strings using a space character,\n  we can split strings using existing string manipulation functions.\n\nWe can reliably analyze access logs.\n\n  It is guaranteed that a string doesn\u0027t contain space character (0x20) and\n  new line character (0x0A).\n\n  It is guaranteed that a string won\u0027t be converted by FTP and won\u0027t be damaged\n  by a terminal\u0027s settings.\n\n  It is guaranteed that a string won\u0027t be affected by encoding converters\n  (except encodings which insert NUL character (e.g. UTF-16)).\n\n----- Part 6: conclusion -----\n\nTOMOYO Linux is using its own encoding with reasons described above.\nThere is a disadvantage that we need to introduce a series of new string\nmanipulation functions. But TOMOYO Linux\u0027s encoding is useful for all users\n(including audit and AppArmor) who want to perform pattern matching and\nsafely exchange string information between the kernel and the userspace.\n\n-------------------- About policy interface --------------------\n\nTOMOYO Linux creates the following files on securityfs (normally\nmounted on /sys/kernel/security) as interfaces between kernel and\nuserspace. These files are for TOMOYO Linux management tools *only*,\nnot for general programs.\n\n  * profile\n  * exception_policy\n  * domain_policy\n  * manager\n  * meminfo\n  * self_domain\n  * version\n  * .domain_status\n  * .process_status\n\n** /sys/kernel/security/tomoyo/profile **\n\nThis file is used to read or write profiles.\n\n\"profile\" means a running mode of process. A profile lists up\nfunctions and their modes in \"$number-$variable\u003d$value\" format. The\n$number is profile number between 0 and 255. Each domain is assigned\none profile. To assign profile to domains, use \"ccs-setprofile\" or\n\"ccs-editpolicy\" or \"ccs-loadpolicy\" commands.\n\n(Example)\n[root@tomoyo]# cat /sys/kernel/security/tomoyo/profile\n0-COMMENT\u003d-----Disabled Mode-----\n0-MAC_FOR_FILE\u003ddisabled\n0-MAX_ACCEPT_ENTRY\u003d2048\n0-TOMOYO_VERBOSE\u003ddisabled\n1-COMMENT\u003d-----Learning Mode-----\n1-MAC_FOR_FILE\u003dlearning\n1-MAX_ACCEPT_ENTRY\u003d2048\n1-TOMOYO_VERBOSE\u003ddisabled\n2-COMMENT\u003d-----Permissive Mode-----\n2-MAC_FOR_FILE\u003dpermissive\n2-MAX_ACCEPT_ENTRY\u003d2048\n2-TOMOYO_VERBOSE\u003denabled\n3-COMMENT\u003d-----Enforcing Mode-----\n3-MAC_FOR_FILE\u003denforcing\n3-MAX_ACCEPT_ENTRY\u003d2048\n3-TOMOYO_VERBOSE\u003denabled\n\n- MAC_FOR_FILE:\nSpecifies access control level regarding file access requests.\n- MAX_ACCEPT_ENTRY:\nLimits the max number of ACL entries that are automatically appended\nduring learning mode. Default is 2048.\n- TOMOYO_VERBOSE:\nSpecifies whether to print domain policy violation messages or not.\n\n** /sys/kernel/security/tomoyo/manager **\n\nThis file is used to read or append the list of programs or domains\nthat can write to /sys/kernel/security/tomoyo interface. By default,\nonly processes with both UID \u003d 0 and EUID \u003d 0 can modify policy via\n/sys/kernel/security/tomoyo interface. You can use keyword\n\"manage_by_non_root\" to allow policy modification by non root user.\n\n(Example)\n[root@tomoyo]# cat /sys/kernel/security/tomoyo/manager\n/usr/lib/ccs/loadpolicy\n/usr/lib/ccs/editpolicy\n/usr/lib/ccs/setlevel\n/usr/lib/ccs/setprofile\n/usr/lib/ccs/ld-watch\n/usr/lib/ccs/ccs-queryd\n\n** /sys/kernel/security/tomoyo/exception_policy **\n\nThis file is used to read and write system global settings. Each line\nhas a directive and operand pair. Directives are listed below.\n\n- initialize_domain:\nTo initialize domain transition when specific program is executed,\nuse initialize_domain directive.\n  * initialize_domain \"program\" from \"domain\"\n  * initialize_domain \"program\" from \"the last program part of domain\"\n  * initialize_domain \"program\"\nIf the part \"from\" and after is not given, the entry is applied to\nall domain. If the \"domain\" doesn\u0027t start with \"\u003ckernel\u003e\", the entry\nis applied to all domain whose domainname ends with \"the last program\npart of domain\".\nThis directive is intended to aggregate domain transitions for daemon\nprogram and program that are invoked by the kernel on demand, by\ntransiting to different domain.\n\n- keep_domain\nTo prevent domain transition when program is executed from specific\ndomain, use keep_domain directive.\n  * keep_domain \"program\" from \"domain\"\n  * keep_domain \"program\" from \"the last program part of domain\"\n  * keep_domain \"domain\"\n  * keep_domain \"the last program part of domain\"\nIf the part \"from\" and before is not given, this entry is applied to\nall program. If the \"domain\" doesn\u0027t start with \"\u003ckernel\u003e\", the entry\nis applied to all domain whose domainname ends with \"the last program\npart of domain\".\nThis directive is intended to reduce total number of domains and\nmemory usage by suppressing unneeded domain transitions.\nTo declare domain keepers, use keep_domain directive followed by\ndomain definition.\nAny process that belongs to any domain declared with this directive,\nthe process stays at the same domain unless any program registered\nwith initialize_domain directive is executed.\n\nIn order to control domain transition in detail, you can use\nno_keep_domain/no_initialize_domain keywrods.\n\n- alias:\nTo allow executing programs using the name of symbolic links, use\nalias keyword followed by dereferenced pathname and reference\npathname. For example, /sbin/pidof is a symbolic link to\n/sbin/killall5 . In normal case, if /sbin/pidof is executed, the\ndomain is defined as if /sbin/killall5 is executed. By specifying\n\"alias /sbin/killall5 /sbin/pidof\", you can run /sbin/pidof in the\ndomain for /sbin/pidof .\n(Example)\nalias /sbin/killall5 /sbin/pidof\n\n- allow_read:\nTo grant unconditionally readable permissions, use allow_read keyword\nfollowed by canonicalized file. This keyword is intended to reduce\nsize of domain policy by granting read access to library files such\nas GLIBC and locale files. Exception is, if ignore_global_allow_read\nkeyword is given to a domain, entries specified by this keyword are\nignored.\n(Example)\nallow_read /lib/libc-2.5.so\n\n- file_pattern:\nTo declare pathname pattern, use file_pattern keyword followed by\npathname pattern. The pathname pattern must be a canonicalized\nPathname. This keyword is not applicable to neither granting execute\npermissions nor domain definitions.\nFor example, canonicalized pathname that contains a process ID\n(i.e. /proc/PID/ files) needs to be grouped in order to make access\ncontrol work well.\n(Example)\nfile_pattern /proc/\\$/cmdline\n\n- path_group\nTo declare pathname group, use path_group keyword followed by name of\nthe group and pathname pattern. For example, if you want to group all\nfiles under home directory, you can define\n   path_group HOME-DIR-FILE /home/\\*/\\*\n   path_group HOME-DIR-FILE /home/\\*/\\*/\\*\n   path_group HOME-DIR-FILE /home/\\*/\\*/\\*/\\*\nin the exception policy and use like\n   allow_read @HOME-DIR-FILE\nto grant file access permission.\n\n- deny_rewrite:\nTo deny overwriting already written contents of file (such as log\nfiles) by default, use deny_rewrite keyword followed by pathname\npattern. Files whose pathname match the patterns are not permitted to\nopen for writing without append mode or truncate unless the pathnames\nare explicitly granted using allow_rewrite keyword in domain policy.\n(Example)\ndeny_rewrite /var/log/\\*\n\n- aggregator\nTo deal multiple programs as a single program, use aggregator keyword\nfollowed by name of original program and aggregated program. This\nkeyword is intended to aggregate similar programs.\nFor example, /usr/bin/tac and /bin/cat are similar. By specifying\n\"aggregator /usr/bin/tac /bin/cat\", you can run /usr/bin/tac in the\ndomain for /bin/cat .\nFor example, /usr/sbin/logrotate for Fedora Core 3 generates programs\nlike /tmp/logrotate.\\?\\?\\?\\?\\?\\? and run them, but TOMOYO Linux\ndoesn\u0027t allow using patterns for granting execute permission and\ndefining domains. By specifying\n\"aggregator /tmp/logrotate.\\?\\?\\?\\?\\?\\? /tmp/logrotate.tmp\", you can\nrun /tmp/logrotate.\\?\\?\\?\\?\\?\\? as if /tmp/logrotate.tmp is running.\n\n** /sys/kernel/security/tomoyo/domain_policy **\n\nThis file contains definition of all domains and permissions that are\ngranted to each domain.\n\nLines from the next line to a domain definition ( any lines starting\nwith \"\u003ckernel\u003e\") to the previous line to the next domain definitions\nare interpreted as access permissions for that domain.\n\n** /sys/kernel/security/tomoyo/meminfo **\n\nThis file is to show the total RAM used to keep policy in the kernel\nby TOMOYO Linux in bytes.\n(Example)\n[root@tomoyo]# cat /sys/kernel/security/tomoyo/meminfo\nShared:       61440\nPrivate:      69632\nDynamic:        768\nTotal:       131840\n\nYou can set memory quota by writing to this file.\n(Example)\n[root@tomoyo]# echo Shared: 2097152 \u003e /sys/kernel/security/tomoyo/meminfo\n[root@tomoyo]# echo Private: 2097152 \u003e /sys/kernel/security/tomoyo/meminfo\n\n** /sys/kernel/security/tomoyo/self_domain **\n\nThis file is to show the name of domain the caller process belongs to.\n(Example)\n[root@etch]# cat /sys/kernel/security/tomoyo/self_domain\n\u003ckernel\u003e /usr/sbin/sshd /bin/zsh /bin/cat\n\n** /sys/kernel/security/tomoyo/version **\n\nThis file is used for getting TOMOYO Linux\u0027s version.\n(Example)\n[root@etch]# cat /sys/kernel/security/tomoyo/version\n2.2.0-pre\n\n** /sys/kernel/security/tomoyo/.domain_status **\n\nThis is a view (of a DBMS) that contains only profile number and\ndomainnames of domain so that \"ccs-setprofile\" command can do\nline-oriented processing easily.\n\n** /sys/kernel/security/tomoyo/.process_status **\n\nThis file is used by \"ccs-ccstree\" command to show \"list of processes\ncurrently running\" and \"domains which each process belongs to\" and\n\"profile number which the domain is currently assigned\" like \"pstree\"\ncommand. This file is writable by programs that aren\u0027t registered as\npolicy manager.\n\nSigned-off-by: Kentaro Takeda \u003ctakedakn@nttdata.co.jp\u003e\nSigned-off-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nSigned-off-by: Toshiharu Harada \u003charadats@nttdata.co.jp\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "c73bd6d473ceb5d643d3afd7e75b7dc2e6918558",
      "tree": "76a800f3080d000215ec74f4c66fc73560b83a8f",
      "parents": [
        "f9ce1f1cda8b73a36f47e424975a9dfa78b7840c"
      ],
      "author": {
        "name": "Kentaro Takeda",
        "email": "takedakn@nttdata.co.jp",
        "time": "Thu Feb 05 17:18:12 2009 +0900"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Feb 12 15:15:04 2009 +1100"
      },
      "message": "Memory and pathname management functions.\n\nTOMOYO Linux performs pathname based access control.\nTo remove factors that make pathname based access control difficult\n(e.g. symbolic links, \"..\", \"//\" etc.), TOMOYO Linux derives realpath\nof requested pathname from \"struct dentry\" and \"struct vfsmount\".\n\nThe maximum length of string data is limited to 4000 including trailing \u0027\\0\u0027.\nSince TOMOYO Linux uses \u0027\\ooo\u0027 style representation for non ASCII printable\ncharacters, maybe TOMOYO Linux should be able to support 16336 (which means\n(NAME_MAX * (PATH_MAX / (NAME_MAX + 1)) * 4 + (PATH_MAX / (NAME_MAX + 1)))\nincluding trailing \u0027\\0\u0027), but I think 4000 is enough for practical use.\n\nTOMOYO uses only 0x21 - 0x7E (as printable characters) and 0x20 (as word\ndelimiter) and 0x0A (as line delimiter).\n0x01 - 0x20 and 0x80 - 0xFF is handled in \\ooo style representation.\nThe reason to use \\ooo is to guarantee that \"%s\" won\u0027t damage logs.\nUserland program can request\n\n open(\"/tmp/file granted.\\nAccess /tmp/file \", O_WRONLY | O_CREAT, 0600)\n\nand logging such crazy pathname using \"Access %s denied.\\n\" format will cause\n\"fabrication of logs\" like\n\n Access /tmp/file granted.\n Access /tmp/file denied.\n\nTOMOYO converts such characters to \\ooo so that the logs will become\n\n Access /tmp/file\\040granted.\\012Access\\040/tmp/file denied.\n\nand the administrator can read the logs safely using /bin/cat .\nLikewise, a crazy request like\n\n open(\"/tmp/\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\x09\", O_WRONLY | O_CREAT, 0600)\n\nwill be processed safely by converting to\n\n Access /tmp/\\001\\002\\003\\004\\005\\006\\007\\010\\011 denied.\n\nSigned-off-by: Kentaro Takeda \u003ctakedakn@nttdata.co.jp\u003e\nSigned-off-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nSigned-off-by: Toshiharu Harada \u003charadats@nttdata.co.jp\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "f9ce1f1cda8b73a36f47e424975a9dfa78b7840c",
      "tree": "66138b33dbf627f99f5ec67e0e39ce15ab830080",
      "parents": [
        "523979adfa0b79d4e3aa053220c37a9233294206"
      ],
      "author": {
        "name": "Kentaro Takeda",
        "email": "takedakn@nttdata.co.jp",
        "time": "Thu Feb 05 17:18:11 2009 +0900"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Feb 12 15:15:03 2009 +1100"
      },
      "message": "Add in_execve flag into task_struct.\n\nThis patch allows LSM modules to determine whether current process is in an\nexecve operation or not so that they can behave differently while an execve\noperation is in progress.\n\nThis patch is needed by TOMOYO. Please see another patch titled \"LSM adapter\nfunctions.\" for backgrounds.\n\nSigned-off-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "523979adfa0b79d4e3aa053220c37a9233294206",
      "tree": "15ff42f935f9d443220edb118f3980432f924360",
      "parents": [
        "ed850a52af971528b048812c4215cef298af0d3b"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Wed Feb 11 11:12:28 2009 -0500"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Feb 12 09:40:14 2009 +1100"
      },
      "message": "integrity: audit update\n\nBased on discussions on linux-audit, as per Steve Grubb\u0027s request\nhttp://lkml.org/lkml/2009/2/6/269, the following changes were made:\n- forced audit result to be either 0 or 1.\n- made template names const\n- Added new stand-alone message type: AUDIT_INTEGRITY_RULE\n\nSigned-off-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nAcked-by: Steve Grubb \u003csgrubb@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "ed850a52af971528b048812c4215cef298af0d3b",
      "tree": "e78fdb9e91e61dd297df2b126527340b483ae2a2",
      "parents": [
        "cb5629b10d64a8006622ce3a52bc887d91057d69"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Tue Feb 10 23:01:19 2009 -0500"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Feb 11 15:27:15 2009 +1100"
      },
      "message": "integrity: shmem zero fix\n\nBased on comments from Mike Frysinger and Randy Dunlap:\n(http://lkml.org/lkml/2009/2/9/262)\n- moved ima.h include before CONFIG_SHMEM test to fix compiler error\n  on Blackfin:\nmm/shmem.c: In function \u0027shmem_zero_setup\u0027:\nmm/shmem.c:2670: error: implicit declaration of function \u0027ima_shm_check\u0027\n\n- added \u0027struct linux_binprm\u0027 in ima.h to fix compiler warning on Blackfin:\nIn file included from mm/shmem.c:32:\ninclude/linux/ima.h:25: warning: \u0027struct linux_binprm\u0027 declared inside\nparameter list\ninclude/linux/ima.h:25: warning: its scope is only this definition or\ndeclaration, which is probably not what you want\n\n- moved fs.h include within _LINUX_IMA_H definition\n\nSigned-off-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "cb5629b10d64a8006622ce3a52bc887d91057d69",
      "tree": "7c06d8f30783115e3384721046258ce615b129c5",
      "parents": [
        "8920d5ad6ba74ae8ab020e90cc4d976980e68701",
        "f01d1d546abb2f4028b5299092f529eefb01253a"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Feb 06 11:01:45 2009 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Feb 06 11:01:45 2009 +1100"
      },
      "message": "Merge branch \u0027master\u0027 into next\n\nConflicts:\n\tfs/namei.c\n\nManually merged per:\n\ndiff --cc fs/namei.c\nindex 734f2b5,bbc15c2..0000000\n--- a/fs/namei.c\n+++ b/fs/namei.c\n@@@ -860,9 -848,8 +849,10 @@@ static int __link_path_walk(const char\n  \t\tnd-\u003eflags |\u003d LOOKUP_CONTINUE;\n  \t\terr \u003d exec_permission_lite(inode);\n  \t\tif (err \u003d\u003d -EAGAIN)\n- \t\t\terr \u003d vfs_permission(nd, MAY_EXEC);\n+ \t\t\terr \u003d inode_permission(nd-\u003epath.dentry-\u003ed_inode,\n+ \t\t\t\t\t       MAY_EXEC);\n +\t\tif (!err)\n +\t\t\terr \u003d ima_path_check(\u0026nd-\u003epath, MAY_EXEC);\n   \t\tif (err)\n  \t\t\tbreak;\n\n@@@ -1525,14 -1506,9 +1509,14 @@@ int may_open(struct path *path, int acc\n  \t\tflag \u0026\u003d ~O_TRUNC;\n  \t}\n\n- \terror \u003d vfs_permission(nd, acc_mode);\n+ \terror \u003d inode_permission(inode, acc_mode);\n  \tif (error)\n  \t\treturn error;\n +\n- \terror \u003d ima_path_check(\u0026nd-\u003epath,\n++\terror \u003d ima_path_check(path,\n +\t\t\t       acc_mode \u0026 (MAY_READ | MAY_WRITE | MAY_EXEC));\n +\tif (error)\n +\t\treturn error;\n  \t/*\n  \t * An append-only file must be opened in append mode for writing.\n  \t */\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "f01d1d546abb2f4028b5299092f529eefb01253a",
      "tree": "625a9f9923ae53cc9bf75cf46fcebbbeb8ac84a8",
      "parents": [
        "33da8892a2f9e7d4b2d9a35fc80833ba2d2b1aa6"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Feb 06 00:30:05 2009 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 05 14:18:14 2009 -0800"
      },
      "message": "seq_file: fix big-enough lseek() + read()\n\nlseek() further than length of the file will leave stale -\u003eindex\n(second-to-last during iteration). Next seq_read() will not notice\nthat -\u003ef_pos is big enough to return 0, but will print last item\nas if -\u003ef_pos is pointing to it.\n\nIntroduced in commit cb510b8172602a66467f3551b4be1911f5a7c8c2\naka \"seq_file: more atomicity in traverse()\".\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8920d5ad6ba74ae8ab020e90cc4d976980e68701",
      "tree": "0ab5e0f47ed226a91e5520d9dcceee7d76ac7cac",
      "parents": [
        "64c61d80a6e4c935a09ac5ff1d952967ca1268f8"
      ],
      "author": {
        "name": "Rajiv Andrade",
        "email": "srajiv@linux.vnet.ibm.com",
        "time": "Thu Feb 05 13:06:30 2009 -0200"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Feb 06 09:06:43 2009 +1100"
      },
      "message": "TPM: integrity fix\n\nFix to function which is called by IMA, now tpm_chip_find_get() considers the case in which the machine doesn\u0027t have a TPM or, if it has, its TPM isn\u0027t enabled.\n\nSigned-off-by: Mimi Zohar \u003czohar@linux.vnet.ibm.com\u003e\nSigned-off-by: Rajiv Andrade \u003csrajiv@linux.vnet.ibm.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "64c61d80a6e4c935a09ac5ff1d952967ca1268f8",
      "tree": "80d109d7b3218c925ee48d22254d704e23d31199",
      "parents": [
        "aa7168f47d912459a99a01c93714f447b44bfa72"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Feb 05 09:28:26 2009 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Feb 06 09:05:34 2009 +1100"
      },
      "message": "IMA: fix ima_delete_rules() definition\n\nFix ima_delete_rules() definition so sparse doesn\u0027t complain.\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "aa7168f47d912459a99a01c93714f447b44bfa72",
      "tree": "b5aa97f90a0133ef33c489c1ea7960ddad5d29c6",
      "parents": [
        "1df9f0a73178718969ae47d813b8e7aab2cf073c"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Wed Feb 04 09:07:03 2009 -0500"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Feb 06 09:05:33 2009 +1100"
      },
      "message": "Integrity: IMA update maintainers\n\nSigned-off-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "1df9f0a73178718969ae47d813b8e7aab2cf073c",
      "tree": "6bd3d8838858f0e93acd8f7969b7d0e5ce2bfb08",
      "parents": [
        "f4bd857bc8ed997c25ec06b56ef8064aafa6d4f3"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Wed Feb 04 09:07:02 2009 -0500"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Feb 06 09:05:33 2009 +1100"
      },
      "message": "Integrity: IMA file free imbalance\n\nThe number of calls to ima_path_check()/ima_file_free()\nshould be balanced.  An extra call to fput(), indicates\nthe file could have been accessed without first being\nmeasured.\n\nAlthough f_count is incremented/decremented in places other\nthan fget/fput, like fget_light/fput_light and get_file, the\ncurrent task must already hold a file refcnt.  The call to\n__fput() is delayed until the refcnt becomes 0, resulting\nin ima_file_free() flagging any changes.\n\n- add hook to increment opencount for IPC shared memory(SYSV),\n  shmat files, and /dev/zero\n- moved NULL iint test in opencount_get()\n\nSigned-off-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "f4bd857bc8ed997c25ec06b56ef8064aafa6d4f3",
      "tree": "5326caddadc6144a1e7dee17a6714344ccefbb11",
      "parents": [
        "4af4662fa4a9dc62289c580337ae2506339c4729"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Wed Feb 04 09:07:01 2009 -0500"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Feb 06 09:05:32 2009 +1100"
      },
      "message": "integrity: IMA policy open\n\nSequentialize access to the policy file\n- permit multiple attempts to replace default policy with a valid policy\n\nSigned-off-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "4af4662fa4a9dc62289c580337ae2506339c4729",
      "tree": "faec95258d2456eb35515f289eb688914ce3b54f",
      "parents": [
        "bab739378758a1e2b2d7ddcee7bc06cf4c591c3c"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Wed Feb 04 09:07:00 2009 -0500"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Feb 06 09:05:31 2009 +1100"
      },
      "message": "integrity: IMA policy\n\nSupport for a user loadable policy through securityfs\nwith support for LSM specific policy data.\n- free invalid rule in ima_parse_add_rule()\n\nSigned-off-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "bab739378758a1e2b2d7ddcee7bc06cf4c591c3c",
      "tree": "5465ab3ccaf20ab8fb4f649aad8d1b08bfe49232",
      "parents": [
        "3323eec921efd815178a23107ab63588c605c0b2"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Wed Feb 04 09:06:59 2009 -0500"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Feb 06 09:05:31 2009 +1100"
      },
      "message": "integrity: IMA display\n\nMake the measurement lists available through securityfs.\n- removed test for NULL return code from securityfs_create_file/dir\n\nSigned-off-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "3323eec921efd815178a23107ab63588c605c0b2",
      "tree": "bc9e9714ac4881ebc515c1bd155674c52c356d6a",
      "parents": [
        "6146f0d5e47ca4047ffded0fb79b6c25359b386c"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Wed Feb 04 09:06:58 2009 -0500"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Feb 06 09:05:30 2009 +1100"
      },
      "message": "integrity: IMA as an integrity service provider\n\nIMA provides hardware (TPM) based measurement and attestation for\nfile measurements. As the Trusted Computing (TPM) model requires,\nIMA measures all files before they are accessed in any way (on the\nintegrity_bprm_check, integrity_path_check and integrity_file_mmap\nhooks), and commits the measurements to the TPM. Once added to the\nTPM, measurements can not be removed.\n\nIn addition, IMA maintains a list of these file measurements, which\ncan be used to validate the aggregate value stored in the TPM.  The\nTPM can sign these measurements, and thus the system can prove, to\nitself and to a third party, the system\u0027s integrity in a way that\ncannot be circumvented by malicious or compromised software.\n\n- alloc ima_template_entry before calling ima_store_template()\n- log ima_add_boot_aggregate() failure\n- removed unused IMA_TEMPLATE_NAME_LEN\n- replaced hard coded string length with #define name\n\nSigned-off-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "6146f0d5e47ca4047ffded0fb79b6c25359b386c",
      "tree": "edd792e52ad56d4a5d3ac6caa8437d3283fc157e",
      "parents": [
        "659aaf2bb5496a425ba14036b5b5900f593e4484"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Wed Feb 04 09:06:57 2009 -0500"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Feb 06 09:05:30 2009 +1100"
      },
      "message": "integrity: IMA hooks\n\nThis patch replaces the generic integrity hooks, for which IMA registered\nitself, with IMA integrity hooks in the appropriate places directly\nin the fs directory.\n\nSigned-off-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "33da8892a2f9e7d4b2d9a35fc80833ba2d2b1aa6",
      "tree": "4261b553653438775461fd408669f1942a383d2e",
      "parents": [
        "361916a943cd9dbda1c0b00879d0225cc919d868"
      ],
      "author": {
        "name": "Eric Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Feb 04 15:12:25 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 05 12:56:49 2009 -0800"
      },
      "message": "seq_file: move traverse so it can be used from seq_read\n\nIn 2.6.25 some /proc files were converted to use the seq_file\ninfrastructure.  But seq_files do not correctly support pread(), which\nbroke some usersapce applications.\n\nTo handle pread correctly we can\u0027t assume that f_pos is where we left it\nin seq_read.  So move traverse() so that we can eventually use it in\nseq_read and do thus some day support pread().\n\nSigned-off-by: Eric Biederman \u003cebiederm@xmission.com\u003e\nCc: Paul Turner \u003cpjt@google.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": "361916a943cd9dbda1c0b00879d0225cc919d868",
      "tree": "e9b30d230248baa4dd3e9718b683e4aa74830f43",
      "parents": [
        "fb9a68001175cc04bbbe711e6e29e1c6c353107b"
      ],
      "author": {
        "name": "Dean Nelson",
        "email": "dcn@sgi.com",
        "time": "Wed Feb 04 15:12:24 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 05 12:56:49 2009 -0800"
      },
      "message": "sgi-xp: fix writing past the end of kzalloc()\u0027d space\n\nA missing type cast results in writing way beyond the end of a kzalloc()\u0027d\nmemory segment resulting in slab corruption. But it seems like the better\nsolution is to define -\u003erecv_msg_slots as a \u0027void *\u0027 rather than a\n\u0027struct xpc_notify_mq_msg_uv *\u0027 and add the type cast.\n\nSigned-off-by: Dean Nelson \u003cdcn@sgi.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fb9a68001175cc04bbbe711e6e29e1c6c353107b",
      "tree": "cb9d4fd37894b21573dd59ab85f3a21a7d59e83b",
      "parents": [
        "736d54533aedbcbde8cfb2f9ccd542595db4d78d"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Feb 04 15:12:21 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 05 12:56:49 2009 -0800"
      },
      "message": "alpha: fixup BUG macro\n\nDo usual do {} while (0) dance, otherwise\n\nfs/gfs2/util.c:99: error: expected expression before \u0027else\u0027\ndrivers/scsi/lpfc/lpfc_sli.c:363: error: expected expression before \u0027else\u0027\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "736d54533aedbcbde8cfb2f9ccd542595db4d78d",
      "tree": "83fbdc15a5ad032e47c9d237617a67866303767b",
      "parents": [
        "fe86175bce50bc3d65ff09c287fed955c4da1eb3"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Wed Feb 04 15:12:20 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 05 12:56:48 2009 -0800"
      },
      "message": "sx.c: fix missed unlock_kernel() on error path in sx_fw_ioctl()\n\nIf we return directly with -EPERM then lock_kernel() is still held.\n\nThis was found with a code checker (http://repo.or.cz/w/smatch.git/).\n\n[akpm@linux-foundation.org: fix another such path - missed func_exit()]\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nCc: \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": "fe86175bce50bc3d65ff09c287fed955c4da1eb3",
      "tree": "00cdc9fffe9b539dfbf901d2338c0f337d2faf2f",
      "parents": [
        "cd29cf7d112aa022cfcfb257ffe3d89ffbd1d820"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Wed Feb 04 15:12:20 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 05 12:56:48 2009 -0800"
      },
      "message": "atyfb: fix CONFIG_ namespace violations\n\nFix namespace violations by changing non-kconfig CONFIG_ names to CNFG_*.\n\nFixes breakage in staging/, which adds a real CONFIG_PANEL.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cd29cf7d112aa022cfcfb257ffe3d89ffbd1d820",
      "tree": "7101504f35d76774355dfb73be12bee3e682e8a5",
      "parents": [
        "ce43ae538b540cf3e9f5036d8023b88bf9f8fa40"
      ],
      "author": {
        "name": "Manish Katiyar",
        "email": "mkatiyar@gmail.com",
        "time": "Wed Feb 04 15:12:19 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 05 12:56:48 2009 -0800"
      },
      "message": "rtc-ds1390: fix compilation warnings in drivers/rtc/rtc-ds1390.c\n\ndrivers/rtc/rtc-ds1390.c:125: warning: unused variable \u0027rtc\u0027\n\nSigned-off-by: Manish Katiyar \u003cmkatiyar@gmail.com\u003e\nSigned-off-by: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ce43ae538b540cf3e9f5036d8023b88bf9f8fa40",
      "tree": "487994e6b1e1295befbc1ff729d55aa263bc9015",
      "parents": [
        "dfecb7164eb81fbfae93fee1ad1da2ac58bb224d"
      ],
      "author": {
        "name": "Mike Rapoport",
        "email": "mike@compulab.co.il",
        "time": "Wed Feb 04 15:12:18 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 05 12:56:48 2009 -0800"
      },
      "message": "drivers/video/backlight: rename da903x to da903x_bl\n\nCurrently both da903x backlight and voltage reulator drivers have the\nsame name. Rename the backlight driver to allow use of both drivers as\nmodules.\n\nSigned-off-by: Mike Rapoport \u003cmike@compulab.co.il\u003e\nAcked-by: Eric Miao \u003ceric.miao@marvell.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dfecb7164eb81fbfae93fee1ad1da2ac58bb224d",
      "tree": "44dc3ffe7d75ab73417f561f12914137bef8c1aa",
      "parents": [
        "ab92661d5d9514647346047f30f67a7f35ffea67"
      ],
      "author": {
        "name": "Hans-Christian Egtvedt",
        "email": "hans-christian.egtvedt@atmel.com",
        "time": "Wed Feb 04 15:12:17 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 05 12:56:48 2009 -0800"
      },
      "message": "atmel-ssc: fix misuse of dev_dbg when requested ssc instance is not found\n\nThe ssc pointer is not valid when the id is not found in the list.\nConvert the message from a debug one into an error message and avoid\ndereferencing the bad pointer.\n\nSigned-off-by: Hans-Christian Egtvedt \u003chans-christian.egtvedt@atmel.com\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: Huang Weiyi \u003cweiyi.huang@gmail.com\u003e\nAcked-by: Haavard Skinnemoen \u003chaavard.skinnemoen@atmel.com\u003e\nCc: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ab92661d5d9514647346047f30f67a7f35ffea67",
      "tree": "3ed67a71d7cce6dbd5b6bd559966f7fc137c8f00",
      "parents": [
        "777c6c5f1f6e757ae49ecca2ed72d6b1f523c007"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Wed Feb 04 15:12:16 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 05 12:56:48 2009 -0800"
      },
      "message": "do_wp_page: fix regression with execute in place\n\nFix do_wp_page for VM_MIXEDMAP mappings.\n\nIn the case where pfn_valid returns 0 for a pfn at the beginning of\ndo_wp_page and the mapping is not shared writable, the code branches to\nlabel `gotten:\u0027 with old_page \u003d\u003d NULL.\n\nIn case the vma is locked (vma-\u003evm_flags \u0026 VM_LOCKED), lock_page,\nclear_page_mlock, and unlock_page try to access the old_page.\n\nThis patch checks whether old_page is valid before it is dereferenced.\n\nThe regression was introduced by \"mlock: mlocked pages are unevictable\"\n(commit b291f000393f5a0b679012b39d79fbc85c018233).\n\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.28.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "777c6c5f1f6e757ae49ecca2ed72d6b1f523c007",
      "tree": "342b79faee43af9705b5a8ca406565fda0ad08fd",
      "parents": [
        "40b0bb1e734700b81d2ec69367c035cd1537f4fa"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Feb 04 15:12:14 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 05 12:56:48 2009 -0800"
      },
      "message": "wait: prevent exclusive waiter starvation\n\nWith exclusive waiters, every process woken up through the wait queue must\nensure that the next waiter down the line is woken when it has finished.\n\nInterruptible waiters don\u0027t do that when aborting due to a signal.  And if\nan aborting waiter is concurrently woken up through the waitqueue, noone\nwill ever wake up the next waiter.\n\nThis has been observed with __wait_on_bit_lock() used by\nlock_page_killable(): the first contender on the queue was aborting when\nthe actual lock holder woke it up concurrently.  The aborted contender\ndidn\u0027t acquire the lock and therefor never did an unlock followed by\nwaking up the next waiter.\n\nAdd abort_exclusive_wait() which removes the process\u0027 wait descriptor from\nthe waitqueue, iff still queued, or wakes up the next waiter otherwise.\nIt does so under the waitqueue lock.  Racing with a wake up means the\naborting process is either already woken (removed from the queue) and will\nwake up the next waiter, or it will remove itself from the queue and the\nconcurrent wake up will apply to the next waiter after it.\n\nUse abort_exclusive_wait() in __wait_event_interruptible_exclusive() and\n__wait_on_bit_lock() when they were interrupted by other means than a wake\nup through the queue.\n\n[akpm@linux-foundation.org: coding-style fixes]\nReported-by: Chris Mason \u003cchris.mason@oracle.com\u003e\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nMentored-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: Chuck Lever \u003ccel@citi.umich.edu\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[\"after some testing\"]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "40b0bb1e734700b81d2ec69367c035cd1537f4fa",
      "tree": "703b5ccabdcd820e01ce7e61421f73caa9a71a13",
      "parents": [
        "87357d277a024934389ddc37808290c53c74339e"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Wed Feb 04 15:12:13 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 05 12:56:47 2009 -0800"
      },
      "message": "maintainers: general@lists.openfabrics.org is moderated\n\nI got the \"list is moderated message,\" so add it here.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Roland Dreier \u003crolandd@cisco.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "87357d277a024934389ddc37808290c53c74339e",
      "tree": "2ac98eea38e6f1c746f22088db8245c5ab570f39",
      "parents": [
        "c77a022d2994b0ccfb583c7dfd6392e3cd0391fe"
      ],
      "author": {
        "name": "Martin Kebert",
        "email": "gkmarty@gmail.com",
        "time": "Wed Feb 04 15:12:12 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 05 12:56:47 2009 -0800"
      },
      "message": "lis3lv02d: add axes knowledge for HP 6710\n\nAdd support for the HP laptops of model 6710x for having correctly setup\naxes.\n\nSigned-off-by: Martin Kebert \u003cgkmarty@gmail.com\u003e\nSigned-off-by: Eric Piel \u003ceric.piel@tremplin-utc.net\u003e\nAcked-by: Pavel Machek \u003cpavel@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": "c77a022d2994b0ccfb583c7dfd6392e3cd0391fe",
      "tree": "5181d171af1c126d07bdf159a064f7ef0e33ec25",
      "parents": [
        "80eda5fb5885d601ed2c712a0530770c0a23cc04"
      ],
      "author": {
        "name": "Pavel Herrmann",
        "email": "morpheus.ibis@gmail.com",
        "time": "Wed Feb 04 15:12:11 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 05 12:56:47 2009 -0800"
      },
      "message": "lis3lv02d: add axes knowledge for HP 6730\n\nAdd support for the HP laptops of model 6730x for having correctly setup\naxes.\n\nSigned-off-by: Pavel Herrmann \u003cmorpheus.ibis@gmail.com\u003e\nSigned-off-by: Eric Piel \u003ceric.piel@tremplin-utc.net\u003e\nAcked-by: Pavel Machek \u003cpavel@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": "80eda5fb5885d601ed2c712a0530770c0a23cc04",
      "tree": "91f5eba014223c57ec4e743b7ca4cdc246adeb73",
      "parents": [
        "6bfef2b3cfe1144bd1dc3aface9c63a3f06732a7"
      ],
      "author": {
        "name": "Eric Piel",
        "email": "eric.piel@tremplin-utc.net",
        "time": "Wed Feb 04 15:12:11 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 05 12:56:47 2009 -0800"
      },
      "message": "lis3lv02d: add axes knowledge for HP 6530\n\nAdd support for the HP laptops of model 6530x for having correctly setup\naxes.\n\nReported-by: Jerome Poulin \u003cjeromepoulin@gmail.com\u003e\nSigned-off-by: Eric Piel \u003ceric.piel@tremplin-utc.net\u003e\nAcked-by: Pavel Machek \u003cpavel@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": "6bfef2b3cfe1144bd1dc3aface9c63a3f06732a7",
      "tree": "e7cdb79ad1dfbb4721c10d894481892de3848997",
      "parents": [
        "44f0606d52d98ff05b3b62bb694821857e36819d"
      ],
      "author": {
        "name": "Jiri Tersel",
        "email": "tersel@mail.muni.cz",
        "time": "Wed Feb 04 15:12:09 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 05 12:56:47 2009 -0800"
      },
      "message": "lis3lv02d: add axes knowledge for HP 6510b\n\nAccording to dmesg my laptop model HP 6510b is not being recognized by this\ndriver. After I have modified \"lis3lv02d.c\" axes in Neverball are OK.\n\nSigned-off-by: Jiri Tersel \u003ctersel@mail.muni.cz\u003e\nSigned-off-by: Eric Piel \u003ceric.piel@tremplin-utc.net\u003e\nAcked-by: Pavel Machek \u003cpavel@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": "44f0606d52d98ff05b3b62bb694821857e36819d",
      "tree": "9aec0abf691fbe2d264c653dc7d445e63523f696",
      "parents": [
        "60fd760fb9ff7034360bab7137c917c0330628c2"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed Feb 04 15:12:07 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 05 12:56:47 2009 -0800"
      },
      "message": "hp-wmi: fix error path in hp_wmi_bios_setup()\n\nThe error-path code can call rfkill_unregister() with a pointer which does\nnot contain the result of a call to rfkill_register().  It goes BUG().\n\nAddresses http://bugzilla.kernel.org/show_bug.cgi?id\u003d12560.\n\nCc: Frans Pop \u003celendil@planet.nl\u003e\nCc: Larry Finger \u003cLarry.Finger@lwfinger.net\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nAcked-by: Matthew Garrett \u003cmjg@redhat.com\u003e\nReported-by: Helge Deller \u003cdeller@gmx.de\u003e\nTestted-by: Helge Deller \u003cdeller@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": "60fd760fb9ff7034360bab7137c917c0330628c2",
      "tree": "2498b0456b49dc0f4e7db34a9c1d3858e2b5eaf9",
      "parents": [
        "a68e61e8ff2d46327a37b69056998b47745db6fa"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed Feb 04 15:12:06 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 05 12:56:47 2009 -0800"
      },
      "message": "revert \"rlimit: permit setting RLIMIT_NOFILE to RLIM_INFINITY\"\n\nRevert commit 0c2d64fb6cae9aae480f6a46cfe79f8d7d48b59f because it causes\n(arguably poorly designed) existing userspace to spend interminable\nperiods closing billions of not-open file descriptors.\n\nWe could bring this back, with some sort of opt-in tunable in /proc, which\ndefaults to \"off\".\n\nPeter\u0027s alanysis follows:\n\n: I spent several hours trying to get to the bottom of a serious\n: performance issue that appeared on one of our servers after upgrading to\n: 2.6.28.  In the end it\u0027s what could be considered a userspace bug that\n: was triggered by a change in 2.6.28.  Since this might also affect other\n: people I figured I\u0027d at least document what I found here, and maybe we\n: can even do something about it:\n:\n:\n: So, I upgraded some of debian.org\u0027s machines to 2.6.28.1 and immediately\n: the team maintaining our ftp archive complained that one of their\n: scripts that previously ran in a few minutes still hadn\u0027t even come\n: close to being done after an hour or so.  Downgrading to 2.6.27 fixed\n: that.\n:\n: Turns out that script is forking a lot and something in it or python or\n: whereever closes all the file descriptors it doesn\u0027t want to pass on.\n: That is, it starts at zero and goes up to ulimit -n/RLIMIT_NOFILE and\n: closes them all with a few exceptions.\n:\n: Turns out that takes a long time when your limit -n is now 2^20 (1048576).\n:\n: With 2.6.27.* the ulimit -n was the standard 1024, but with 2.6.28 it is\n: now a thousand times that.\n:\n: 2.6.28 included a patch titled \"rlimit: permit setting RLIMIT_NOFILE to\n: RLIM_INFINITY\" (0c2d64fb6cae9aae480f6a46cfe79f8d7d48b59f)[1] that\n: allows, as the title implies, to set the limit for number of files to\n: infinity.\n:\n: Closer investigation showed that the broken default ulimit did not apply\n: to \"system\" processes (like stuff started from init).  In the end I\n: could establish that all processes that passed through pam_limit at one\n: point had the bad resource limit.\n:\n: Apparently the pam library in Debian etch (4.0) initializes the limits\n: to some default values when it doesn\u0027t have any settings in limit.conf\n: to override them.  Turns out that for nofiles this is RLIM_INFINITY.\n: Commenting out \"case RLIMIT_NOFILE\" in pam_limit.c:267 of our pam\n: package version 0.79-5 fixes that - tho I\u0027m not sure what side effects\n: that has.\n:\n: Debian lenny (the upcoming 5.0 version) doesn\u0027t have this issue as it\n: uses a different pam (version).\n\nReported-by: Peter Palfrader \u003cweasel@debian.org\u003e\nCc: Adam Tkac \u003cvonsch@gmail.com\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.28.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a68e61e8ff2d46327a37b69056998b47745db6fa",
      "tree": "2445097933785b26d91577e6f4b41329e8bcd639",
      "parents": [
        "1f5e31d7e55ac7fbd4ec5e5b20c8868b0e4564c9"
      ],
      "author": {
        "name": "Tony Battersby",
        "email": "tonyb@cybernetics.com",
        "time": "Wed Feb 04 15:12:04 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 05 12:56:47 2009 -0800"
      },
      "message": "shm: fix shmctl(SHM_INFO) lockup with !CONFIG_SHMEM\n\nshm_get_stat() assumes that the inode is a \"struct shmem_inode_info\",\nwhich is incorrect for !CONFIG_SHMEM (see fs/ramfs/inode.c:\nramfs_get_inode() vs.  mm/shmem.c: shmem_get_inode()).\n\nThis bad assumption can cause shmctl(SHM_INFO) to lockup when\nshm_get_stat() tries to spin_lock(\u0026info-\u003elock).  Users of !CONFIG_SHMEM\nmay encounter this lockup simply by invoking the \u0027ipcs\u0027 command.\n\nReported by Jiri Olsa back in February 2008:\nhttp://lkml.org/lkml/2008/2/29/74\n\nSigned-off-by: Tony Battersby \u003ctonyb@cybernetics.com\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nReported-by: Jiri Olsa \u003colsajiri@gmail.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.everything]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1f5e31d7e55ac7fbd4ec5e5b20c8868b0e4564c9",
      "tree": "713d0ace63c95da9b989aafce8ec84ebb1d1cbc3",
      "parents": [
        "afd8d0f940ba5078f38e435440089117ac7d9eb4"
      ],
      "author": {
        "name": "Andrea Righi",
        "email": "righi.andrea@gmail.com",
        "time": "Wed Feb 04 15:12:03 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 05 12:56:46 2009 -0800"
      },
      "message": "fbmem: don\u0027t call copy_from/to_user() with mutex held\n\nAvoid calling copy_from/to_user() with fb_info-\u003elock mutex held in fbmem\nioctl().\n\nfb_mmap() is called under mm-\u003emmap_sem (A) held, that also acquires\nfb_info-\u003elock (B); fb_ioctl() takes fb_info-\u003elock (B) and does\ncopy_from/to_user() that might acquire mm-\u003emmap_sem (A), causing a\ndeadlock.\n\nNOTE: it doesn\u0027t push down the fb_info-\u003elock in each own driver\u0027s\nfb_ioctl(), so there are still potential deadlocks elsewhere.\n\nSigned-off-by: Andrea Righi \u003crighi.andrea@gmail.com\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Johannes Weiner \u003channes@saeurebad.de\u003e\nCc: Krzysztof Helt \u003ckrzysztof.h1@wp.pl\u003e\nCc: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nCc: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "afd8d0f940ba5078f38e435440089117ac7d9eb4",
      "tree": "1f494035691b04175ed21ed3703593ce37957925",
      "parents": [
        "77a592655cdb8d838b85fd7ecf8f36fd2870abfc"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Wed Feb 04 15:12:01 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 05 12:56:46 2009 -0800"
      },
      "message": "rtc: rtc-dm355evm driver\n\nSimple RTC driver for the MSP430 firmware on the DM355 EVM board.  Other\nthan not supporting atomic reads/writes of all four bytes, this is\nreasonable as a basic no-alarm RTC.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Kevin Hilman \u003ckhilman@deeprootsystems.com\u003e\nAcked-by: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "77a592655cdb8d838b85fd7ecf8f36fd2870abfc",
      "tree": "477e5eb079acf01efff362cc7d0692a074766c2b",
      "parents": [
        "ac7b9004909d03d67016368093e81d37cae72895"
      ],
      "author": {
        "name": "Matthew Garrett",
        "email": "mjg59@srcf.ucam.org",
        "time": "Wed Feb 04 15:12:00 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 05 12:56:46 2009 -0800"
      },
      "message": "misc: dell-laptop should depend on POWER_SUPPLY\n\ndell-laptop makes use of the power supply class information to choose\nwhich backlight interface to change. Add a depends on it.\n\nSigned-off-by: Matthew Garrett \u003cmjg@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Len Brown \u003clenb@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": "ac7b9004909d03d67016368093e81d37cae72895",
      "tree": "089cd0432d3c93b14dbd9d0178bfe2fa19690fd1",
      "parents": [
        "c073b2db006ba9370be1eecc36a1be1d9ce31310"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Wed Feb 04 15:11:59 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 05 12:56:46 2009 -0800"
      },
      "message": "generic swap(): don\u0027t return a value from swap()\n\nThe swap() macro is accidentally retuning the value of its first argument.\nChange it into a doesn\u0027t-return-anything macro before someone goes and\nrelies upon this behaviour.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Wu Fengguang \u003cwfg@linux.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": "c073b2db006ba9370be1eecc36a1be1d9ce31310",
      "tree": "6aed14266d19840b943d9e14c4bdeb3830296ec9",
      "parents": [
        "58763a297405024d23d8f1d0bba3e6603660c4b6"
      ],
      "author": {
        "name": "David Altobelli",
        "email": "david.altobelli@hp.com",
        "time": "Wed Feb 04 15:11:58 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 05 12:56:46 2009 -0800"
      },
      "message": "hpilo: open/close fix\n\nThe device can take a while to respond to an open/close request, so\nincrease the time kernel will wait for response (1 ms to 10ms).\n\nAlso, properly clean up a channel on a failed open, by calling the channel\nclose routine.  Just freeing the memory isn\u0027t sufficient, the device needs\nto be informed that the channel is no longer open, and the device memory\ncleared of references to freed dma buffer.\n\nSigned-off-by: David Altobelli \u003cdavid.altobelli@hp.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "58763a297405024d23d8f1d0bba3e6603660c4b6",
      "tree": "2ccbddc449bb704326070e373c5b10a8ae35e07a",
      "parents": [
        "647802d6db5f2e62e53f44bfdc61416547ba7f5b"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed Feb 04 15:11:58 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 05 12:56:46 2009 -0800"
      },
      "message": "kernel/async.c: fix printk warnings\n\nalpha:\n\nkernel/async.c: In function \u0027run_one_entry\u0027:\nkernel/async.c:141: warning: format \u0027%lli\u0027 expects type \u0027long long int\u0027, but argument 2 has type \u0027async_cookie_t\u0027\nkernel/async.c:149: warning: format \u0027%lli\u0027 expects type \u0027long long int\u0027, but argument 2 has type \u0027async_cookie_t\u0027\nkernel/async.c:149: warning: format \u0027%lld\u0027 expects type \u0027long long int\u0027, but argument 4 has type \u0027s64\u0027\nkernel/async.c: In function \u0027async_synchronize_cookie_special\u0027:\nkernel/async.c:250: warning: format \u0027%lli\u0027 expects type \u0027long long int\u0027, but argument 3 has type \u0027s64\u0027\n\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "647802d6db5f2e62e53f44bfdc61416547ba7f5b",
      "tree": "57b24ba72db7a553a5d59d5aa5b5bd4f6ed940ac",
      "parents": [
        "3e561f975cd6db846b2bbd684cd107a27f5d8aaa",
        "bb960a1e42042e82447a5bc0941b3ab6d614bac3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 04 13:58:50 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 04 13:58:50 2009 -0800"
      },
      "message": "Merge branch \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86: APIC: enable workaround on AMD Fam10h CPUs\n  xen: disable interrupts before saving in percpu\n  x86: add x86@kernel.org to MAINTAINERS\n  x86: push old stack address on irqstack for unwinder\n  irq, x86: fix lock status with numa_migrate_irq_desc\n  x86: add cache descriptors for Intel Core i7\n  x86/Voyager: make it build and boot\n"
    },
    {
      "commit": "3e561f975cd6db846b2bbd684cd107a27f5d8aaa",
      "tree": "c7b5b2d0a744cbe096c6f2572ce7803ccd399deb",
      "parents": [
        "9f96ae6ee049b78dc334965a38fb441f7a16201f",
        "35626129abcd6a7547e84c817ef5b6eff7a8758b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 04 13:58:37 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 04 13:58:37 2009 -0800"
      },
      "message": "Merge branch \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: add missing kernel-doc in sched.h\n"
    },
    {
      "commit": "9f96ae6ee049b78dc334965a38fb441f7a16201f",
      "tree": "cf13468728ec5ac5895b3b15b33937b2bb765076",
      "parents": [
        "9dfea1b46d9f147478ccdfa4a4ef472fdc98d6dd",
        "229c4ef8ae56d69f8dec64533bf1c7f8070c1a4a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 04 13:58:24 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 04 13:58:24 2009 -0800"
      },
      "message": "Merge branch \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  ftrace: do_each_pid_task() needs rcu lock\n"
    },
    {
      "commit": "9dfea1b46d9f147478ccdfa4a4ef472fdc98d6dd",
      "tree": "4338700a76ef4f79142048b9363adff55575bc1f",
      "parents": [
        "eda58a85ec3fc05855a26654d97a2b53f0e715b9",
        "7df0eb424d7f5bfb948c921500e0470f4a27c4cb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 04 09:39:12 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 04 09:39:12 2009 -0800"
      },
      "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: pcm_oss: AFMT_S24_LE is set twice in return value\n  ALSA: ASoC: email - update email addresses.\n  OMAP: ASoC: Fix spinlock misuse in omap-pcm.c\n  ALSA: hda - No widget selection for volume knob widgets in proc output\n  ALSA: hda - Add support of iMac 24 Aluminium\n  ALSA: alsa: time reaches -1, tested 0\n  ALSA: hda - Add quirk for another HP dv5 model\n"
    },
    {
      "commit": "7df0eb424d7f5bfb948c921500e0470f4a27c4cb",
      "tree": "9b598439ee962adf627b5138f3fec71375833963",
      "parents": [
        "af7af690397296b663c8bc152a5f79f32abcef24",
        "64ca0404eed57f6c92290d55e949a7f46cbe4bf4"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Wed Feb 04 18:19:11 2009 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Wed Feb 04 18:19:11 2009 +0100"
      },
      "message": "Merge branch \u0027fix/asoc\u0027 into for-linus\n"
    },
    {
      "commit": "af7af690397296b663c8bc152a5f79f32abcef24",
      "tree": "6628327a0cbe8680ba2fac5a0480cebdb7c418fa",
      "parents": [
        "7924f0cadcf52cb316d6eca60a6ae3fc9e42b465",
        "516a1ced456a6d118db738f0f09fce0cb0f42794"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Wed Feb 04 18:19:07 2009 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Wed Feb 04 18:19:07 2009 +0100"
      },
      "message": "Merge branch \u0027fix/hda\u0027 into for-linus\n"
    },
    {
      "commit": "7924f0cadcf52cb316d6eca60a6ae3fc9e42b465",
      "tree": "04189b579d60b49983ee3c258ec59f630f057cbc",
      "parents": [
        "67d8a3c1221bc883c821e7695ba6d327a5d6f2af"
      ],
      "author": {
        "name": "Roel Kluin",
        "email": "roel.kluin@gmail.com",
        "time": "Wed Feb 04 18:14:55 2009 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Wed Feb 04 18:18:03 2009 +0100"
      },
      "message": "ALSA: pcm_oss: AFMT_S24_LE is set twice in return value\n\nAFMT_S24_LE is set twice in return value\n\nvi sound/core/oss/pcm_oss.c +640\n#define AFMT_S24_LE      0x00008000\n#define AFMT_S24_BE      0x00010000\n\nSigned-off-by: Roel Kluin \u003croel.kluin@gmail.com\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "eda58a85ec3fc05855a26654d97a2b53f0e715b9",
      "tree": "de995f6f0e38c3f35e866519c6de7e331ce6cc91",
      "parents": [
        "024bb9617e01716c5ac7d235f54483cc6018978f",
        "c8e674125e03c5f36ccfd61d83b933e6956074b0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 04 07:56:25 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 04 07:56:25 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/blackfin-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/blackfin-2.6: (40 commits)\n  Blackfin arch: Remove outdated code\n  Blackfin arch: Fix udelay implementation\n  Blackfin arch: Update Copyright information\n  Blackfin arch: Add BF561 PPI POLS, POLC Masks\n  Blackfin arch: Update CM-BF527 kernel config\n  Blackfin arch: define bfin_memmap as static since it is only used here\n  Blackfin arch: cplb mananger: use a do...while loop rather than a for loop\n  Blackfin arch: fix bug - traps test case 19 for exception 0x2d fails\n  Blackfin arch: add platform device bfin_mii-bus and KSZ8893M switch driver platform resources to board files\n  Blackfin arch: build jtag tty driver as a module by default\n  Blackfin arch: fix 2 bugs related to debug\n  Blackfin arch: Add ANOMALY_05000380 to BF54x to kill the compile warning\n  Blackfin arch: Fix bug - 561 SMP kernel can\u0027t boot from jffs2\n  Blackfin arch: base SIC_IWR# programming on whether the MMR exists\n  Blackfin arch: read SYSCR on newer parts that mirror the bits of SWRST in it\n  Blackfin arch: fixup board init function name\n  Blackfin arch: drop CONFIG_I2C_BOARDINFO ifdefs\n  Blackfin arch: bfin_reset-\u003e_bfin_reset redirection no longer needed\n  Blackfin arch: sync reboot handler with version in u-boot\n  Blackfin arch: Faster Implementation of csum_tcpudp_nofold()\n  ...\n"
    },
    {
      "commit": "024bb9617e01716c5ac7d235f54483cc6018978f",
      "tree": "995fa77058bb980b891ca7cbe383399e1e81a8cb",
      "parents": [
        "25431e900dc47abb312c9ae8599e8c8ae038eb5a",
        "9b02605826903203d5301049c1f52e722584785c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 04 07:54:00 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 04 07:54:00 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:\n  sparc64: Kill bogus TPC/address truncation during 32-bit faults.\n  sparc: fixup for sparseirq changes\n  sparc64: Validate kernel generated fault addresses on sparc64.\n  sparc64: On non-Niagara, need to touch NMI watchdog in NOHZ mode.\n  sparc64: Implement NMI watchdog on capable cpus.\n  sparc: Probe PMU type and record in sparc_pmu_type.\n  sparc64: Move generic PCR support code to seperate file.\n"
    },
    {
      "commit": "25431e900dc47abb312c9ae8599e8c8ae038eb5a",
      "tree": "3d67ac01e65668d673bfee18cfeb0ed8bc0027fa",
      "parents": [
        "0d7a063fa7b918d2a61cdd63232286d4131774de",
        "55128bc23e9ab44e97f81f6cd349035230ee59a6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 04 07:52:21 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 04 07:52:21 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:\n  sunrpc: fix rdma dependencies\n  e1000: Fix PCI enable to honor the need_ioport flag\n  sgi-xp: link XPNET\u0027s net_device_ops to its net_device structure\n  pcnet_cs: Fix misuse of the equality operator.\n  hso: add new device id\u0027s\n  dca: redesign locks to fix deadlocks\n  cassini/sungem: limit reaches -1, but 0 tested\n  net: variables reach -1, but 0 tested\n  qlge: bugfix: Add missing netif_napi_del call.\n  qlge: bugfix: Add flash offset for second port.\n  qlge: bugfix: Fix endian issue when reading flash.\n  udp: increments sk_drops in __udp_queue_rcv_skb()\n  net: Fix userland breakage wrt. linux/if_tunnel.h\n  net: packet socket packet_lookup_frame fix\n"
    },
    {
      "commit": "0d7a063fa7b918d2a61cdd63232286d4131774de",
      "tree": "c43c7a5cd2cf556a3978d4af4cb755aa1d4042c7",
      "parents": [
        "dcf6a79dda5cc2a2bec183e50d829030c0972aaa",
        "9e6f8ed7c3a303d37eb119847dd3029701e37e28"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 04 07:40:54 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 04 07:40:54 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.o-hand.com/linux-mfd\n\n* \u0027for-linus\u0027 of git://git.o-hand.com/linux-mfd:\n  mfd: Remove non exported references from pcf50633\n"
    },
    {
      "commit": "bb960a1e42042e82447a5bc0941b3ab6d614bac3",
      "tree": "d2295a923fabb1b01b25bb015c4c2e42ee9df5ca",
      "parents": [
        "858770619debfb9269add63e4ba8b7c6b5538dd1",
        "06fc732c33a7ff5e4c91bcf4a6ca86b5e335ad9a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 04 14:54:56 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 04 14:54:56 2009 +0100"
      },
      "message": "Merge branch \u0027core/xen\u0027 into x86/urgent\n"
    },
    {
      "commit": "c8e674125e03c5f36ccfd61d83b933e6956074b0",
      "tree": "65d77a6bc0da07db03c4e8e990162d1607cb99a3",
      "parents": [
        "4e653e04cc1c3553af539ffc81fb56d83d83c733"
      ],
      "author": {
        "name": "Michael Hennerich",
        "email": "michael.hennerich@analog.com",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "committer": {
        "name": "Bryan Wu",
        "email": "cooloney@kernel.org",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "message": "Blackfin arch: Remove outdated code\n\nThe removed version with the loop registers saved on the stack was\noriginally intended to workaround the missing toolchain support for\nLoopReg Clobbers.\n\nSince our toolchain now supports these there is no point in keeping this\nworkaround. And since we don\u0027t touch LoopRegs anymore we\u0027re no longer\nsubject for ANOMALY_05000312.\n\nSigned-off-by: Michael Hennerich \u003cmichael.hennerich@analog.com\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\n\n"
    },
    {
      "commit": "4e653e04cc1c3553af539ffc81fb56d83d83c733",
      "tree": "6d5ab0a6e8033901ccb6c193daa15f0c20e008ab",
      "parents": [
        "972de7d9292439c9429c301cf377fbf56b6e654e"
      ],
      "author": {
        "name": "Michael Hennerich",
        "email": "michael.hennerich@analog.com",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "committer": {
        "name": "Bryan Wu",
        "email": "cooloney@kernel.org",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "message": "Blackfin arch: Fix udelay implementation\n\nAvoid possible overflow during 32*32-\u003e32 multiplies.\n\nReported-by: Marco Reppenhagen \u003cmarco.reppenhagen@auerswald.de\u003e\nSigned-off-by: Michael Hennerich \u003cmichael.hennerich@analog.com\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\n\n"
    },
    {
      "commit": "972de7d9292439c9429c301cf377fbf56b6e654e",
      "tree": "0db90fd39c39dab0d5272d4a0be2aead5258577f",
      "parents": [
        "772c258fd056a77fd808385a1c551dcd141cf8a3"
      ],
      "author": {
        "name": "Michael Hennerich",
        "email": "michael.hennerich@analog.com",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "committer": {
        "name": "Bryan Wu",
        "email": "cooloney@kernel.org",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "message": "Blackfin arch: Update Copyright information\n\nSigned-off-by: Michael Hennerich \u003cmichael.hennerich@analog.com\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\n\n"
    },
    {
      "commit": "772c258fd056a77fd808385a1c551dcd141cf8a3",
      "tree": "85d838be65a27b8f830a2830ecfc0911615211ec",
      "parents": [
        "dfd700baf2ddab395cc059ce9f294306bf56a735"
      ],
      "author": {
        "name": "Michael Hennerich",
        "email": "michael.hennerich@analog.com",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "committer": {
        "name": "Bryan Wu",
        "email": "cooloney@kernel.org",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "message": "Blackfin arch: Add BF561 PPI POLS, POLC Masks\n\nSigned-off-by: Michael Hennerich \u003cmichael.hennerich@analog.com\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\n\n"
    },
    {
      "commit": "dfd700baf2ddab395cc059ce9f294306bf56a735",
      "tree": "9d9fc573eab96e051076e00058a6efaa6af53432",
      "parents": [
        "af4c7d4b4eddc297bbb516abdd6154bffc8e05e5"
      ],
      "author": {
        "name": "Michael Hennerich",
        "email": "michael.hennerich@analog.com",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "committer": {
        "name": "Bryan Wu",
        "email": "cooloney@kernel.org",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "message": "Blackfin arch: Update CM-BF527 kernel config\n\nSigned-off-by: Michael Hennerich \u003cmichael.hennerich@analog.com\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\n\n"
    },
    {
      "commit": "af4c7d4b4eddc297bbb516abdd6154bffc8e05e5",
      "tree": "27945a38d025c8e6aa0a2d79724ba9e2d2d1b986",
      "parents": [
        "d04dfc4c0e6056350175edc36b900a69703e9467"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier.adi@gmail.com",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "committer": {
        "name": "Bryan Wu",
        "email": "cooloney@kernel.org",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "message": "Blackfin arch: define bfin_memmap as static since it is only used here\n\nSigned-off-by: Mike Frysinger \u003cvapier.adi@gmail.com\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\n\n"
    },
    {
      "commit": "d04dfc4c0e6056350175edc36b900a69703e9467",
      "tree": "6c9839eec8d88066ddfa017d96dfec8dff04af5b",
      "parents": [
        "bf324cb81a2f7da357eba00b6b1ef1cf38c264b8"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier.adi@gmail.com",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "committer": {
        "name": "Bryan Wu",
        "email": "cooloney@kernel.org",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "message": "Blackfin arch: cplb mananger: use a do...while loop rather than a for loop\n\nuse a do...while loop rather than a for loop to get slightly better\noptimization and to avoid gcc \"may be used uninitialized\" warnings ...\nwe know that the [id]cplb_nr_bounds variables will never be 0, so this\nis OK\n\nSigned-off-by: Mike Frysinger \u003cvapier.adi@gmail.com\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\n\n"
    },
    {
      "commit": "bf324cb81a2f7da357eba00b6b1ef1cf38c264b8",
      "tree": "499f8e81d595b0a16652429116587244330bf061",
      "parents": [
        "65319628db2c7a630daadfeec4d371aaca788482"
      ],
      "author": {
        "name": "Bernd Schmidt",
        "email": "bernds_cb1@t-online.de",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "committer": {
        "name": "Bryan Wu",
        "email": "cooloney@kernel.org",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "message": "Blackfin arch: fix bug - traps test case 19 for exception 0x2d fails\n\nEnable null pointer checking for ICPLBs. The code was there but for\nsome reason I had commented it out at some stage during development.\n\nShould restrict this to 1K since atomic ops start there.\n\nSigned-off-by: Bernd Schmidt \u003cbernds_cb1@t-online.de\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\n\n"
    },
    {
      "commit": "65319628db2c7a630daadfeec4d371aaca788482",
      "tree": "b783043647e0c3f097ad0d1cbafebc16b2ef83c5",
      "parents": [
        "583947c6bc397854a3a57d45539654c9d8223966"
      ],
      "author": {
        "name": "Graf Yang",
        "email": "graf.yang@analog.com",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "committer": {
        "name": "Bryan Wu",
        "email": "cooloney@kernel.org",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "message": "Blackfin arch: add platform device bfin_mii-bus and KSZ8893M switch driver platform resources to board files\n\nSigned-off-by: Graf Yang \u003cgraf.yang@analog.com\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\n\n"
    },
    {
      "commit": "583947c6bc397854a3a57d45539654c9d8223966",
      "tree": "461f15522276b3d01eb59773a1a72e72ab63f60b",
      "parents": [
        "3aee91bafef01bd5c59853346f1fcb85f701fdc1"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier.adi@gmail.com",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "committer": {
        "name": "Bryan Wu",
        "email": "cooloney@kernel.org",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "message": "Blackfin arch: build jtag tty driver as a module by default\n\nSigned-off-by: Mike Frysinger \u003cvapier.adi@gmail.com\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\n\n"
    },
    {
      "commit": "3aee91bafef01bd5c59853346f1fcb85f701fdc1",
      "tree": "790252ea13d88b9d27b0ff74b5934b73472bc72c",
      "parents": [
        "1c302b6ccb1296bda3754708099233290f6cf689"
      ],
      "author": {
        "name": "Jie Zhang",
        "email": "jie.zhang@analog.com",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "committer": {
        "name": "Bryan Wu",
        "email": "cooloney@kernel.org",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "message": "Blackfin arch: fix 2 bugs related to debug\n\n - unable to single step over emuexcpt instruction\n - gdbproxy goes into infinite loop when doing gdb does \"next\" over\n   \"emuexcpt\"\n\nDon\u0027t decrement PC after software breakpoint.\n\nSigned-off-by: Jie Zhang \u003cjie.zhang@analog.com\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\n\n"
    },
    {
      "commit": "1c302b6ccb1296bda3754708099233290f6cf689",
      "tree": "c48a96195c3593be045855426dc4841030c7ba1a",
      "parents": [
        "9960aa6a07bc41223a3bf2df1dfd284698486eb0"
      ],
      "author": {
        "name": "Bryan Wu",
        "email": "cooloney@kernel.org",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "committer": {
        "name": "Bryan Wu",
        "email": "cooloney@kernel.org",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "message": "Blackfin arch: Add ANOMALY_05000380 to BF54x to kill the compile warning\n\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\n\n"
    },
    {
      "commit": "9960aa6a07bc41223a3bf2df1dfd284698486eb0",
      "tree": "16710e013031c25e5972464c414cd59daa79470e",
      "parents": [
        "be1d8543a82d3a8f466509bbd355a5861193135f"
      ],
      "author": {
        "name": "Graf Yang",
        "email": "graf.yang@analog.com",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "committer": {
        "name": "Bryan Wu",
        "email": "cooloney@kernel.org",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "message": "Blackfin arch: Fix bug - 561 SMP kernel can\u0027t boot from jffs2\n\nbss_l2 section is garbage when the data in this section is used by\n_bfin_relocate_l1_mem, so move the zero out function ahead.\n\nSigned-off-by: Graf Yang \u003cgraf.yang@analog.com\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\n\n"
    },
    {
      "commit": "be1d8543a82d3a8f466509bbd355a5861193135f",
      "tree": "b94f4af791e445464e2446940376f3f71ad9396d",
      "parents": [
        "ed1fb6048c3eef68df5fe19e9022fdad6e53357d"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier.adi@gmail.com",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "committer": {
        "name": "Bryan Wu",
        "email": "cooloney@kernel.org",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "message": "Blackfin arch: base SIC_IWR# programming on whether the MMR exists\n\nbase SIC_IWR# programming on whether the MMR exists\nrather than having to maintain another list of processors\n\nSigned-off-by: Mike Frysinger \u003cvapier.adi@gmail.com\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\n\n"
    },
    {
      "commit": "ed1fb6048c3eef68df5fe19e9022fdad6e53357d",
      "tree": "9fc321ff4092ceedef200b56ccafa64980a8e5d9",
      "parents": [
        "7f6678c52fea7ff3e7eb6a5f0e0b705c1991eaa2"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier.adi@gmail.com",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "committer": {
        "name": "Bryan Wu",
        "email": "cooloney@kernel.org",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "message": "Blackfin arch: read SYSCR on newer parts that mirror the bits of SWRST in it\n\nSigned-off-by: Mike Frysinger \u003cvapier.adi@gmail.com\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\n\n"
    },
    {
      "commit": "7f6678c52fea7ff3e7eb6a5f0e0b705c1991eaa2",
      "tree": "4cc8bc88d6635004ba8c60d4aaf735133e9d21e7",
      "parents": [
        "2678479c33774f297ea2a5d232cad11c4d56ef6c"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier.adi@gmail.com",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "committer": {
        "name": "Bryan Wu",
        "email": "cooloney@kernel.org",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "message": "Blackfin arch: fixup board init function name\n\nSigned-off-by: Mike Frysinger \u003cvapier.adi@gmail.com\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\n\n"
    },
    {
      "commit": "2678479c33774f297ea2a5d232cad11c4d56ef6c",
      "tree": "e811e7dd790c2a30ce0f54868b878d930458d34e",
      "parents": [
        "a6595bf04b9cc9a4997e6d849b62d69439dd1eff"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier.adi@gmail.com",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "committer": {
        "name": "Bryan Wu",
        "email": "cooloney@kernel.org",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "message": "Blackfin arch: drop CONFIG_I2C_BOARDINFO ifdefs\n\nDrop CONFIG_I2C_BOARDINFO ifdefs as the common i2c header handles this\nalready by stubbing things out\n\nSigned-off-by: Mike Frysinger \u003cvapier.adi@gmail.com\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\n\n"
    },
    {
      "commit": "a6595bf04b9cc9a4997e6d849b62d69439dd1eff",
      "tree": "821e085184c960fa6e67df5762cfeec31ae8df6e",
      "parents": [
        "adab7eb883a0b0fb7f13b1d7b30b596139f6f40d"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier.adi@gmail.com",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "committer": {
        "name": "Bryan Wu",
        "email": "cooloney@kernel.org",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "message": "Blackfin arch: bfin_reset-\u003e_bfin_reset redirection no longer needed\n\nSigned-off-by: Mike Frysinger \u003cvapier.adi@gmail.com\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\n\n"
    },
    {
      "commit": "adab7eb883a0b0fb7f13b1d7b30b596139f6f40d",
      "tree": "13891052c36d173d71964d2cf93d2ca52aac6643",
      "parents": [
        "aa9c33b496ca9434f26beaa1b447a6e2e5d8ad6a"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier.adi@gmail.com",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "committer": {
        "name": "Bryan Wu",
        "email": "cooloney@kernel.org",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "message": "Blackfin arch: sync reboot handler with version in u-boot\n\nSigned-off-by: Mike Frysinger \u003cvapier.adi@gmail.com\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\n\n"
    },
    {
      "commit": "aa9c33b496ca9434f26beaa1b447a6e2e5d8ad6a",
      "tree": "c47851ad65934ed0a3825902673173451d098780",
      "parents": [
        "0ce5eaf8ec156926a29313de877d9d5e0a692054"
      ],
      "author": {
        "name": "Michael Hennerich",
        "email": "michael.hennerich@analog.com",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "committer": {
        "name": "Bryan Wu",
        "email": "cooloney@kernel.org",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "message": "Blackfin arch: Faster Implementation of csum_tcpudp_nofold()\n\nAvoid conditional branch instructions during carry bit additions.\nSpecial thanks to Bernd.\nSimplify: Use ((len + proto) \u003c\u003c 8) like every other __LITTLE_ENDIAN__ machine\n\nCc: Bernd Schmidt \u003cbernds_cb1@t-online.de\u003e\nSigned-off-by: Michael Hennerich \u003cmichael.hennerich@analog.com\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\n\n"
    },
    {
      "commit": "0ce5eaf8ec156926a29313de877d9d5e0a692054",
      "tree": "01e728442c05e580e17c10b4b2caba3d03ea1a81",
      "parents": [
        "047481f348668340fab7164b12be130ca2ad2522"
      ],
      "author": {
        "name": "Graf Yang",
        "email": "graf.yang@analog.com",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "committer": {
        "name": "Bryan Wu",
        "email": "cooloney@kernel.org",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "message": "Blackfin arch: Fix bug - BF518 port F, G, and H have different mux offset compare to BF527\n\n[Mike Frysinger \u003cvapier.adi@gmail.com\u003e: keep the ifdef nest down]\n\nSigned-off-by: Graf Yang \u003cgraf.yang@analog.com\u003e\nSigned-off-by: Mike Frysinger \u003cvapier.adi@gmail.com\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\n\n"
    },
    {
      "commit": "047481f348668340fab7164b12be130ca2ad2522",
      "tree": "44ee338c51b3db463c433d3a39448c81f23e4788",
      "parents": [
        "b52dae3139066765a7d96563e9cd33d9e60efe33"
      ],
      "author": {
        "name": "Grace Pan",
        "email": "grace.pan@analog.com",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "committer": {
        "name": "Bryan Wu",
        "email": "cooloney@kernel.org",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "message": "Blackfin arch: Add in cflag to support mlong-calls for kgdb_test\n\nSigned-off-by: Grace Pan \u003cgrace.pan@analog.com\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\n\n"
    },
    {
      "commit": "b52dae3139066765a7d96563e9cd33d9e60efe33",
      "tree": "da26ba9d26fc0c89bd19261815cf7dfa09499152",
      "parents": [
        "5b93e13ffa8b06ff80eaa8e0ae92e44ebf61cde9"
      ],
      "author": {
        "name": "Sonic Zhang",
        "email": "sonic.zhang@analog.com",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "committer": {
        "name": "Bryan Wu",
        "email": "cooloney@kernel.org",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "message": "Blackfin arch: Fix bug - Run \"reboot\" hangs bf518-ezbrd\n\n[Mike Frysinger \u003cvapier.adi@gmail.com\u003e:\n - setup P_DEFAULT_BOOT_SPI_CS  for every arch based on\n   the default bootrom behavior and convert all our boards\n   to it\n - revert previous anomaly change ... bf51x is not affected\n   by anomaly 05000353]\n\nSigned-off-by: Sonic Zhang \u003csonic.zhang@analog.com\u003e\nSigned-off-by: Mike Frysinger \u003cvapier.adi@gmail.com\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\n\n"
    },
    {
      "commit": "5b93e13ffa8b06ff80eaa8e0ae92e44ebf61cde9",
      "tree": "36fb9f294b61603a944848a4495ab6b3d2978988",
      "parents": [
        "3605fb09652beeb2e8244c52a9db5b76cc12295e"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier.adi@gmail.com",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "committer": {
        "name": "Bryan Wu",
        "email": "cooloney@kernel.org",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "message": "MAINTIANERS: Blackfin: remove subscribers-only marking\n\nremove subscribers-only marking as the list is\nautomatically \u0026 silently moderated for people\n\nSigned-off-by: Mike Frysinger \u003cvapier.adi@gmail.com\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\n\n"
    },
    {
      "commit": "3605fb09652beeb2e8244c52a9db5b76cc12295e",
      "tree": "cff8f711f585fa201c741f0e060ed681cbc12bb3",
      "parents": [
        "0be58939146f28394a04b61fec7e0676cdafa47e"
      ],
      "author": {
        "name": "Robin Getz",
        "email": "rgetz@blackfin.uclinux.org",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "committer": {
        "name": "Bryan Wu",
        "email": "cooloney@kernel.org",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "message": "Blackfin arch: Add ability to count and display number of NMI interrupts\n\nSigned-off-by: Robin Getz \u003crgetz@blackfin.uclinux.org\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\n\n"
    },
    {
      "commit": "0be58939146f28394a04b61fec7e0676cdafa47e",
      "tree": "4c0daaa4fe5ffd84c1d3e993eb3134121371fc86",
      "parents": [
        "e48df47c1adabece6823395657ea6c677eb653db"
      ],
      "author": {
        "name": "Robin Getz",
        "email": "rgetz@blackfin.uclinux.org",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "committer": {
        "name": "Bryan Wu",
        "email": "cooloney@kernel.org",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "message": "Blackfin arch: Add a few more instructions that can cause the trace buffer to be discontiguous\n\nSigned-off-by: Robin Getz \u003crgetz@blackfin.uclinux.org\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\n\n"
    },
    {
      "commit": "e48df47c1adabece6823395657ea6c677eb653db",
      "tree": "d1dcdc96d78da391a1a51225c3062e4dd2dfdc84",
      "parents": [
        "f556309ea0d6a4adb0ad9775e5a18aa3564a0e4f"
      ],
      "author": {
        "name": "Robin Getz",
        "email": "rgetz@blackfin.uclinux.org",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "committer": {
        "name": "Bryan Wu",
        "email": "cooloney@kernel.org",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "message": "Blackfin arch: Fix URL\n\nSigned-off-by: Robin Getz \u003crgetz@blackfin.uclinux.org\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\n\n"
    },
    {
      "commit": "f556309ea0d6a4adb0ad9775e5a18aa3564a0e4f",
      "tree": "117a8d8421622a3125cc3656dff729bc644b268f",
      "parents": [
        "881eb621fc191e58fa638c533073683be2b63c24"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier.adi@gmail.com",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "committer": {
        "name": "Bryan Wu",
        "email": "cooloney@kernel.org",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "message": "Blackfin arch: cleanup bf54x ifdef mess in gpio code\n\nmerge more of the bf54x and !bf54x gpio code together to\ncut down on #ifdef mess\n\nSigned-off-by: Mike Frysinger \u003cvapier.adi@gmail.com\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\n\n"
    },
    {
      "commit": "881eb621fc191e58fa638c533073683be2b63c24",
      "tree": "f7e7d4bc6695d88cd09377468cc1e142d3047b31",
      "parents": [
        "45c4f2a0b6c6302c5617534b8189c0e9b5a4a048"
      ],
      "author": {
        "name": "Jie Zhang",
        "email": "jie.zhang@analog.com",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "committer": {
        "name": "Bryan Wu",
        "email": "cooloney@kernel.org",
        "time": "Wed Feb 04 16:49:45 2009 +0800"
      },
      "message": "Blackfin arch: Add one more check on `fp\u0027 to prevent double fault\n\nSigned-off-by: Jie Zhang \u003cjie.zhang@analog.com\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\n\n"
    }
  ],
  "next": "45c4f2a0b6c6302c5617534b8189c0e9b5a4a048"
}
