)]}'
{
  "log": [
    {
      "commit": "7a8587e7c8e4e32ba778bfbbb822a0a7e8d5f3e3",
      "tree": "b76abee21fd80b5556d95494f94813589c4e7eef",
      "parents": [
        "31c2659d78c8be970833bc1e633593d291553ed3"
      ],
      "author": {
        "name": "Shirish Pargaonkar",
        "email": "shirishpargaonkar@gmail.com",
        "time": "Sat Jan 29 13:54:58 2011 -0600"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Jan 31 17:29:18 2011 +0000"
      },
      "message": "cifs: No need to check crypto blockcipher allocation\n\nMissed one change as per earlier suggestion.\n\nSigned-off-by: Shirish Pargaonkar \u003cshirishpargaonkar@gmail.com\u003e\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "31c2659d78c8be970833bc1e633593d291553ed3",
      "tree": "87042600840124ea3a8e905a6961bd5009e44fec",
      "parents": [
        "f855f6cbeb4f94cd4e4a225c2246ee8012c384a2"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Mon Jan 31 07:24:46 2011 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Jan 31 15:39:10 2011 +0000"
      },
      "message": "cifs: clean up some compiler warnings\n\nNew compiler warnings that I noticed when building a patchset based\non recent Fedora kernel:\n\nfs/cifs/cifssmb.c: In function \u0027CIFSSMBSetFileSize\u0027:\nfs/cifs/cifssmb.c:4813:8: warning: variable \u0027data_offset\u0027 set but not used\n[-Wunused-but-set-variable]\n\nfs/cifs/file.c: In function \u0027cifs_open\u0027:\nfs/cifs/file.c:349:24: warning: variable \u0027pCifsInode\u0027 set but not used\n[-Wunused-but-set-variable]\nfs/cifs/file.c: In function \u0027cifs_partialpagewrite\u0027:\nfs/cifs/file.c:1149:23: warning: variable \u0027cifs_sb\u0027 set but not used\n[-Wunused-but-set-variable]\nfs/cifs/file.c: In function \u0027cifs_iovec_write\u0027:\nfs/cifs/file.c:1740:9: warning: passing argument 6 of \u0027CIFSSMBWrite2\u0027 from\nincompatible pointer type [enabled by default]\nfs/cifs/cifsproto.h:337:12: note: expected \u0027unsigned int *\u0027 but argument is\nof type \u0027size_t *\u0027\n\nfs/cifs/readdir.c: In function \u0027cifs_readdir\u0027:\nfs/cifs/readdir.c:767:23: warning: variable \u0027cifs_sb\u0027 set but not used\n[-Wunused-but-set-variable]\n\nfs/cifs/cifs_dfs_ref.c: In function \u0027cifs_dfs_d_automount\u0027:\nfs/cifs/cifs_dfs_ref.c:342:2: warning: \u0027rc\u0027 may be used uninitialized in\nthis function [-Wuninitialized]\nfs/cifs/cifs_dfs_ref.c:278:6: note: \u0027rc\u0027 was declared here\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nReviewed-by: Pavel Shilovsky \u003cpiastry@etersoft.ru\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "f855f6cbeb4f94cd4e4a225c2246ee8012c384a2",
      "tree": "82d4082af9b923f0476c5176d92ebf2554f59c15",
      "parents": [
        "92a4e0f0169498867ecb19c2244510dd4beba149"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Mon Jan 31 08:41:36 2011 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Jan 31 15:26:07 2011 +0000"
      },
      "message": "cifs: make CIFS depend on CRYPTO_MD4\n\nRecently CIFS was changed to use the kernel crypto API for MD4 hashes,\nbut the Kconfig dependencies were not changed to reflect this.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nReported-and-Tested-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nReviewed-by: Shirish Pargaonkar \u003cshirishpargaonkar@gmail.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "92a4e0f0169498867ecb19c2244510dd4beba149",
      "tree": "031011d451bf3d19813fbbceabceacfb9ce76db8",
      "parents": [
        "d804d41d163c0975d2890c82d7135ada7a2f23a4"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Sat Jan 29 07:02:28 2011 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Jan 31 04:38:15 2011 +0000"
      },
      "message": "cifs: force a reconnect if there are too many MIDs in flight\n\nCurrently, we allow the pending_mid_q to grow without bound with\nSIGKILL\u0027ed processes. This could eventually be a DoS\u0027able problem. An\nunprivileged user could a process that does a long-running call and then\nSIGKILL it.\n\nIf he can also intercept the NT_CANCEL calls or the replies from the\nserver, then the pending_mid_q could grow very large, possibly even to\n2^16 entries which might leave GetNextMid in an infinite loop. Fix this\nby imposing a hard limit of 32k calls per server. If we cross that\nlimit, set the tcpStatus to CifsNeedReconnect to force cifsd to\neventually reconnect the socket and clean out the pending_mid_q.\n\nWhile we\u0027re at it, clean up the function a bit and eliminate an\nunnecessary NULL pointer check.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nReviewed-by: Shirish Pargaonkar \u003cshirishpargaonkar@gmail.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "d804d41d163c0975d2890c82d7135ada7a2f23a4",
      "tree": "1e67966f3206a8e3c254d73d5e53cabe15d0e4a9",
      "parents": [
        "68abaffa6bbd3cadfaa4b7216d10bcd32406090b"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Jan 28 15:05:43 2011 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Jan 31 04:32:21 2011 +0000"
      },
      "message": "cifs: don\u0027t pop a printk when sending on a socket is interrupted\n\nIf we kill the process while it\u0027s sending on a socket then the\nkernel_sendmsg will return -EINTR. This is normal. No need to spam the\nring buffer with this info.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "68abaffa6bbd3cadfaa4b7216d10bcd32406090b",
      "tree": "bcc6daaddbf65798a6fa27451a3456c2415cd46e",
      "parents": [
        "2db7c5815555d8daabf7d4ab1253ce690852c140"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Jan 28 15:05:42 2011 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Jan 31 04:30:37 2011 +0000"
      },
      "message": "cifs: simplify SMB header check routine\n\n...just cleanup. There should be no behavior change.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nReviewed-by: Pavel Shilovsky \u003cpiastryyy@gmail.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "2db7c5815555d8daabf7d4ab1253ce690852c140",
      "tree": "f93abfb6d900da8ebd851703784d45d2cd54600b",
      "parents": [
        "1be912dde772b77aaaa21770eeabb0a7a5e297a6"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Jan 28 07:08:28 2011 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Jan 31 04:24:38 2011 +0000"
      },
      "message": "cifs: send an NT_CANCEL request when a process is signalled\n\nUse the new send_nt_cancel function to send an NT_CANCEL when the\nprocess is delivered a fatal signal. This is a \"best effort\" enterprise\nhowever, so don\u0027t bother to check the return code. There\u0027s nothing we\ncan reasonably do if it fails anyway.\n\nReviewed-by: Pavel Shilovsky \u003cpiastryyy@gmail.com\u003e\nReviewed-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "1be912dde772b77aaaa21770eeabb0a7a5e297a6",
      "tree": "2f3a01093c80ea90675b2d8102ecc7f5dcf9ccae",
      "parents": [
        "58b8a5b45a097b477c037bc376e65dc5f214bf3d"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Jan 28 07:08:28 2011 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Jan 31 04:23:31 2011 +0000"
      },
      "message": "cifs: handle cancelled requests better\n\nCurrently, when a request is cancelled via signal, we delete the mid\nimmediately. If the request was already transmitted however, the client\nis still likely to receive a response. When it does, it won\u0027t recognize\nit however and will pop a printk.\n\nIt\u0027s also a little dangerous to just delete the mid entry like this. We\nmay end up reusing that mid. If we do then we could potentially get the\nresponse from the first request confused with the later one.\n\nPrevent the reuse of mids by marking them as cancelled and keeping them\non the pending_mid_q list. If the reply comes in, we\u0027ll delete it from\nthe list then. If it never comes, then we\u0027ll delete it at reconnect\nor when cifsd comes down.\n\nReviewed-by: Pavel Shilovsky \u003cpiastryyy@gmail.com\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "58b8a5b45a097b477c037bc376e65dc5f214bf3d",
      "tree": "9fa2538a113fbd3aaa322d9c972aca3ca16b7e30",
      "parents": [
        "ffeb414a59291d5891f09727beb793c109f19f08",
        "70d1f365568e0cdbc9f4ab92428e1830fdb09ab0"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Jan 31 04:17:03 2011 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Jan 31 04:17:03 2011 +0000"
      },
      "message": "Merge branch \u0027master\u0027 of /pub/scm/linux/kernel/git/torvalds/linux-2.6\n"
    },
    {
      "commit": "ffeb414a59291d5891f09727beb793c109f19f08",
      "tree": "1880441bc56981be5978d3f86cecb8dbd526af4c",
      "parents": [
        "ee2c9258501f83d3ed0fd09ce5df1cec53312cf0"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Sat Jan 29 07:03:02 2011 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Jan 31 03:15:57 2011 +0000"
      },
      "message": "cifs: fix two compiler warning about uninitialized vars\n\nfs/cifs/link.c: In function ‘symlink_hash’:\nfs/cifs/link.c:58:3: warning: ‘rc’ may be used uninitialized in this\nfunction [-Wuninitialized]\n\nfs/cifs/smbencrypt.c: In function ‘mdfour’:\nfs/cifs/smbencrypt.c:61:3: warning: ‘rc’ may be used uninitialized in this\nfunction [-Wuninitialized]\n\nReviewed-by: Shirish Pargaonkar \u003cshirishpargaonkar@gmail.com\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "70d1f365568e0cdbc9f4ab92428e1830fdb09ab0",
      "tree": "5cb3ebcaf1a75f19c1026c31213df04cf5f5936b",
      "parents": [
        "54e74b87e2a9941c6fa82189f270b47cceeba714",
        "3a0592b1dd69cfc403ee7514c47b9d57d8bbd6d7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 31 13:04:51 2011 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 31 13:04:51 2011 +1000"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.infradead.org/ubi-2.6\n\n* \u0027for-linus\u0027 of git://git.infradead.org/ubi-2.6:\n  Revert \"UBI: use mtd-\u003ewritebufsize to set minimal I/O unit size\"\n"
    },
    {
      "commit": "54e74b87e2a9941c6fa82189f270b47cceeba714",
      "tree": "4a41222df8d4f525a9686947d10884642eb95211",
      "parents": [
        "1ca05b7fc2672ea870bd58f45dc8d36d2b980f94"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Jan 28 23:33:29 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 31 13:04:11 2011 +1000"
      },
      "message": "Input: rc-keymap - return KEY_RESERVED for unknown mappings\n\nDo not respond with -EINVAL to EVIOCGKEYCODE for not-yet-mapped\nscancodes, but rather return KEY_RESERVED.\n\nThis fixes breakage with Ubuntu\u0027s input-kbd utility that stopped\nreturning full keymaps for remote controls.\n\nTested-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\nTested-by: Mark Lord \u003ckernel@teksavvy.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1ca05b7fc2672ea870bd58f45dc8d36d2b980f94",
      "tree": "7dc8da0d6e0ad9d115fa81504b9cbdc9c372506f",
      "parents": [
        "aa5bd67dcfdf9af34c7fa36ebc87d4e1f7e91873",
        "c63fe0a41fd2374be0ebe93c053820a0eed9cefe"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 31 13:02:34 2011 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 31 13:02:34 2011 +1000"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:\n  Input: synaptics - retry failed resets when reconnecting\n  Input: synaptics - fix reconnect logic on MT devices\n  Input: tegra-kbc - fix keymap entry for LeftMeta key\n  Input: tegra-kbc - fix build error\n"
    },
    {
      "commit": "aa5bd67dcfdf9af34c7fa36ebc87d4e1f7e91873",
      "tree": "95196496421cd8e7ad4c655becf2fa3309c88052",
      "parents": [
        "2f215a7d6d1d8ed0bbdda4fc4f7d64e3a1d46acc"
      ],
      "author": {
        "name": "Kacper Kornet",
        "email": "kornet@camk.edu.pl",
        "time": "Sat Jan 29 00:21:04 2011 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 31 13:01:27 2011 +1000"
      },
      "message": "Fix prlimit64 for suid/sgid processes\n\nSince check_prlimit_permission always fails in the case of SUID/GUID\nprocesses, such processes are not able to read or set their own limits.\nThis commit changes this by assuming that process can always read/change\nits own limits.\n\nSigned-off-by: Kacper Kornet \u003ckornet@camk.edu.pl\u003e\nAcked-by: Jiri Slaby \u003cjslaby@suse.cz\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2f215a7d6d1d8ed0bbdda4fc4f7d64e3a1d46acc",
      "tree": "68b35604c41dfd7885ed99de616578486ef64b23",
      "parents": [
        "af5eb745efe97d91d2cbe793029838b3311c15da"
      ],
      "author": {
        "name": "Huang Weiyi",
        "email": "weiyi.huang@gmail.com",
        "time": "Fri Jan 28 22:05:25 2011 +0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 31 12:59:34 2011 +1000"
      },
      "message": "intel_scu_ipc: remove duplicated #include\n\nRemove duplicated #include(\u0027s) in\n  drivers/platform/x86/intel_scu_ipc.c\n\nSigned-off-by: Huang Weiyi \u003cweiyi.huang@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "af5eb745efe97d91d2cbe793029838b3311c15da",
      "tree": "c2e410318a3f38928255ebf9ab18332b871e17f0",
      "parents": [
        "9fbf0c08d441888b977f7c459c8aa57f2c0cb6ad"
      ],
      "author": {
        "name": "Anton Altaparmakov",
        "email": "anton@tuxera.com",
        "time": "Fri Jan 28 20:45:28 2011 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 31 12:58:11 2011 +1000"
      },
      "message": "NTFS: Fix invalid pointer dereference in ntfs_mft_record_alloc().\n\nIn ntfs_mft_record_alloc() when mapping the new extent mft record with\nmap_extent_mft_record() we overwrite @m with the return value and on\nerror, we then try to use the old @m but that is no longer there as @m\nnow contains an error code instead so we crash when dereferencing the\nerror code as if it were a pointer.\n\nThe simple fix is to use a temporary variable to store the return value\nthus preserving the original @m for later use.  This is a backport from\nthe commercial Tuxera-NTFS driver and is well tested...\n\nThanks go to Julia Lawall for pointing this out (whilst I had fixed it\nin the commercial driver I had failed to fix it in the Linux kernel).\n\nSigned-off-by: Anton Altaparmakov \u003canton@tuxera.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9fbf0c08d441888b977f7c459c8aa57f2c0cb6ad",
      "tree": "000bfa464562b2432e7f9e7c371a40f4f24e4c7a",
      "parents": [
        "4fda116852fe21a3897c478ce64b77bb1ec6b3d6",
        "ee2c9258501f83d3ed0fd09ce5df1cec53312cf0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 31 12:56:27 2011 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 31 12:56:27 2011 +1000"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:\n  cifs: More crypto cleanup (try #2)\n  CIFS: Add strictcache mount option\n  CIFS: Implement cifs_strict_writev (try #4)\n  [CIFS] Replace cifs md5 hashing functions with kernel crypto APIs\n"
    },
    {
      "commit": "4fda116852fe21a3897c478ce64b77bb1ec6b3d6",
      "tree": "ae1dbc17d1223ba0debe3ca7f309e2eca82b6447",
      "parents": [
        "52cea8a4b0634421ddafcfef98c07cf5c378a71f",
        "6ae4bd1f0bc479984f30061b5e5116060c24a267"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 31 12:55:38 2011 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 31 12:55:38 2011 +1000"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-2.6-cm\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-2.6-cm:\n  kmemleak: Allow kmemleak metadata allocations to fail\n  kmemleak: remove memset by using kzalloc\n"
    },
    {
      "commit": "52cea8a4b0634421ddafcfef98c07cf5c378a71f",
      "tree": "cdf901b08256c7aaaa4e007e985bcc44c530d1d2",
      "parents": [
        "7bfeea05d9b1cc75c2d7410b92b7774870688379",
        "5f92acc896564ac91df84cc133d09f9820f00061"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 31 12:54:54 2011 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 31 12:54:54 2011 +1000"
      },
      "message": "Merge branch \u0027zerolen\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/misc-2.6\n\n* \u0027zerolen\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/misc-2.6:\n  Delete zero-length drivers/staging/vme/bridges/Module.symvers\n"
    },
    {
      "commit": "7bfeea05d9b1cc75c2d7410b92b7774870688379",
      "tree": "39627048b18ab9bd2e7437af046579ea67ea53e2",
      "parents": [
        "f9a3d1d74bdacf8a5ef8025233e61546cb809dc8",
        "dcc3c4c016481de3fdb99c1f6ecb04d4229513d4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 31 12:53:12 2011 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 31 12:53:12 2011 +1000"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:\n  ALSA: HDA: Fix automute on Thinkpad L412/L512\n  ALSA: HDA: Fix dmesg output of HDMI supported bits\n  ALSA: fix invalid hardware.h include in ac97c for AVR32 architecture\n  ASoC: correct link specifications for corgi, poodle and spitz\n  ASoC: Samsung: Fix outdated cpu_dai_name for s3c24xx i2s\n  ASoC: Fix codec device id format used by some dai_links\n  ALSA: azt3328 -  fix broken AZF_FMT_XLATE macro\n  ALSA: Xonar, CS43xx: Don\u0027t overrun static array\n  ASoC: Handle low measured DC offsets for wm_hubs devices\n  ASoC: da8xx/omap-l1xx: match codec_name with i2c ids\n  ASoC: WM8994: fix wrong value in tristate function\n  ASoC: WM8995: Fix incorrect use of snd_soc_update_bits()\n"
    },
    {
      "commit": "f9a3d1d74bdacf8a5ef8025233e61546cb809dc8",
      "tree": "722c80597d16cfab200cbd186bb08a88942a3606",
      "parents": [
        "ef9f2fa17f3d6973a479a7677a023ee3604a52cb",
        "729a6a300e628a48cf12bac93a964a535e83cd1d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 31 12:51:28 2011 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 31 12:51:28 2011 +1000"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:\n  libata: set queue DMA alignment to sector size for ATAPI too\n  libata: DVR-212D can\u0027t do SETXFER DVD-RW DVR-212D\n  ahci: add HFLAG_YES_FBS and apply it to 88SE9128\n  pata_hpt37x: inherit prereset() method for HPT374\n  ahci: AHCI mode SATA patch for Intel DH89xxCC DeviceIDs\n  pata_hpt37x: fold \u0027if\u0027 statement into \u0027switch\u0027\n  pata_hpt{37x|3x2n}: use pr_*(DRV_NAME ...) instead of printk(KERN_* ...)\n  pata_hpt{366|37x}: use pr_warning(...) instead of printk(KERN_WARNING ...)\n  pata_mpc52xx: inherit from ata_bmdma_port_ops\n"
    },
    {
      "commit": "ef9f2fa17f3d6973a479a7677a023ee3604a52cb",
      "tree": "6d4883210974774a4478f32f1306f0467717bb6f",
      "parents": [
        "1f0324caefd39985e9fe052fac97da31694db31e",
        "b48b5f51568977592f1bfce91c1c6378b0a5a4f5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 31 12:49:26 2011 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 31 12:49:26 2011 +1000"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://android.git.kernel.org/kernel/tegra\n\n* \u0027for-linus\u0027 of git://android.git.kernel.org/kernel/tegra:\n  ARM: tegra: clock: Add forward reference to struct clk\n  ARM: tegra: irq: Rename gic pointers to avoid conflicts\n  arm/tegra: Fix tegra irq_data conversion\n"
    },
    {
      "commit": "3a0592b1dd69cfc403ee7514c47b9d57d8bbd6d7",
      "tree": "b98f0e7cc2dc25cdffcd52dee0f070ab033b5f05",
      "parents": [
        "1bae4ce27c9c90344f23c65ea6966c50ffeae2f5"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sat Jan 29 18:27:13 2011 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sat Jan 29 18:27:13 2011 +0200"
      },
      "message": "Revert \"UBI: use mtd-\u003ewritebufsize to set minimal I/O unit size\"\n\nThis reverts commit a121f643993474548fe98144514c50dd4f3dbe76.\n\nUnfortunately, this commit breaks UBIFS backward compatibility and\nmakes new UBIFS refuse older UBIFS-formatted media:\n\nUBIFS error: validate_sb: min. I/O unit mismatch: 8 in superblock, 64 real\n\nThus, we have to revert this patch and work on a better solution.\n\nReported-by: Holger Brunck \u003cholger.brunck@keymile.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "c63fe0a41fd2374be0ebe93c053820a0eed9cefe",
      "tree": "dd9e365dc6579b698fbc89e08df8a10c994917df",
      "parents": [
        "baddf58963241307b29e027a9fb28dfe55939db8"
      ],
      "author": {
        "name": "Alexandre Peixoto Ferreira",
        "email": "alexandref75@gmail.com",
        "time": "Fri Jan 28 22:05:14 2011 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Jan 28 22:32:07 2011 -0800"
      },
      "message": "Input: synaptics - retry failed resets when reconnecting\n\nOn some machines, like Dell Studio XPS 16 (1640), touchpad fails to\nrespond to the standard query after first reset but may start\nresponding later, so let\u0027s repeat reset sequence several (3) times.\n\nSigned-off-by: Alexandre Peixoto Ferreira \u003calexandref75@gmail.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "baddf58963241307b29e027a9fb28dfe55939db8",
      "tree": "79026952120eb0105a8839a2fe0cc11ef26a68a8",
      "parents": [
        "e7acc84a27fe53b198cd98cc7deaabb5dd0f20c4"
      ],
      "author": {
        "name": "Alexandre Peixoto Ferreira",
        "email": "alexandref75@gmail.com",
        "time": "Fri Jan 28 22:05:14 2011 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Jan 28 22:32:03 2011 -0800"
      },
      "message": "Input: synaptics - fix reconnect logic on MT devices\n\nsynaptics_set_advanced_gesture_mode() affect capabilities bits we should\nperform comparison after calling this function, otherwise they will never\nmatch and we will be forced to perform full reconnect.\n\nSigned-off-by: Alexandre Peixoto Ferreira \u003calexandref75@gmail.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "e7acc84a27fe53b198cd98cc7deaabb5dd0f20c4",
      "tree": "71a258c000426b662847fb48376cee8e0650bcb0",
      "parents": [
        "7530c4a197f3dd63f1381c1cdf93e4d2b8429ef5"
      ],
      "author": {
        "name": "Rakesh Iyer",
        "email": "riyer@nvidia.com",
        "time": "Fri Jan 28 22:05:14 2011 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Jan 28 22:31:57 2011 -0800"
      },
      "message": "Input: tegra-kbc - fix keymap entry for LeftMeta key\n\nCorrect key mapping for Left Meta key.\n\nSigned-off-by: Rakesh Iyer \u003criyer@nvidia.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "7530c4a197f3dd63f1381c1cdf93e4d2b8429ef5",
      "tree": "cdc07812969ee3a294ff506e6cce859d162afefc",
      "parents": [
        "409550f2902470f0387fe40a7db441526e16b2c0"
      ],
      "author": {
        "name": "Rakesh Iyer",
        "email": "riyer@nvidia.com",
        "time": "Fri Jan 28 22:05:14 2011 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Jan 28 22:31:53 2011 -0800"
      },
      "message": "Input: tegra-kbc - fix build error\n\nFix build error introduced by variable name change.\n\nSigned-off-by: Rakesh Iyer \u003criyer@nvidia.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "5f92acc896564ac91df84cc133d09f9820f00061",
      "tree": "7c2acf77574bcf043c10604b629e63cd89b6dfda",
      "parents": [
        "1bae4ce27c9c90344f23c65ea6966c50ffeae2f5"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Jan 28 03:23:42 2011 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri Jan 28 03:23:42 2011 -0500"
      },
      "message": "Delete zero-length drivers/staging/vme/bridges/Module.symvers\n\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "729a6a300e628a48cf12bac93a964a535e83cd1d",
      "tree": "716472edea8c210c4f498c742c3c9ea21d546469",
      "parents": [
        "4a5610a04d415ed94af75bb1159d2621d62c8328"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Jan 20 13:59:06 2011 +0100"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri Jan 28 03:16:20 2011 -0500"
      },
      "message": "libata: set queue DMA alignment to sector size for ATAPI too\n\nata_pio_sectors() expects buffer for each sector to be contained in a\nsingle page; otherwise, it ends up overrunning the first page.  This\nis achieved by setting queue DMA alignment.  If sector_size is smaller\nthan PAGE_SIZE and all buffers are sector_size aligned, buffer for\neach sector is always contained in a single page.\n\nThis wasn\u0027t applied to ATAPI devices but IDENTIFY_PACKET is executed\nas ATA_PROT_PIO and thus uses ata_pio_sectors().  Newer versions of\nudev issue IDENTIFY_PACKET with unaligned buffer triggering the\nproblem and causing oops.\n\nThis patch fixes the problem by setting sdev-\u003esector_size to\nATA_SECT_SIZE on ATATPI devices and always setting DMA alignment to\nsector_size.  While at it, add a warning for the unlikely but still\npossible scenario where sector_size is larger than PAGE_SIZE, in which\ncase the alignment wouldn\u0027t be enough.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: John Stanley \u003cjpsinthemix@verizon.net\u003e\nTested-by: John Stanley \u003cjpsinthemix@verizon.net\u003e\nCc: stable@kernel.org\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "4a5610a04d415ed94af75bb1159d2621d62c8328",
      "tree": "78e9066d1c2f26b13faf7d5aa4361053b3975112",
      "parents": [
        "10aca06c82a85fe7dcb3d8ad1b0b66e8635c8b8b"
      ],
      "author": {
        "name": "Francesco Antonacci",
        "email": "fraanto@gmail.com",
        "time": "Tue Jan 25 11:54:43 2011 +0100"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri Jan 28 03:16:04 2011 -0500"
      },
      "message": "libata: DVR-212D can\u0027t do SETXFER DVD-RW DVR-212D\n\nPIONEER DVR-212D can\u0027t do SETXFER like its sibling DVRTD08.  Add\nATA_HORKAGE_NOSETXFER for it.  Reported in bko#27502.\n\n  https://bugzilla.kernel.org/show_bug.cgi?id\u003d27502\n\nSigned-off-by: Francesco Antonacci \u003cfraanto@gmail.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "10aca06c82a85fe7dcb3d8ad1b0b66e8635c8b8b",
      "tree": "6a10c28ccf952df3e7959b4795629398249c5f55",
      "parents": [
        "defed5593149e65cd7b7eaa32ccbf2e795ea55f1"
      ],
      "author": {
        "name": "Anssi Hannula",
        "email": "anssi.hannula@iki.fi",
        "time": "Tue Jan 18 20:03:26 2011 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri Jan 28 03:07:04 2011 -0500"
      },
      "message": "ahci: add HFLAG_YES_FBS and apply it to 88SE9128\n\nCommit 5f173107ecad83a50 added HFLAG_YES_FBS workaround for 88SE9128\n(1b4b:9123).\n\nHowever, that change inadvertently caused the legacy IDE interface of\nthe controller (with the same pci id) to become associated with the AHCI\ndriver as well, causing the driver to try to bring the interface up in\nvain.\n\nFix that by matching against class as well.\n\nSigned-off-by: Anssi Hannula \u003canssi.hannula@iki.fi\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "defed5593149e65cd7b7eaa32ccbf2e795ea55f1",
      "tree": "d1d39a979a2bee4c22016d57ff6c2348e1eb5d71",
      "parents": [
        "a4a461a6df6c0481d5a3d61660ed97f5b539cf16"
      ],
      "author": {
        "name": "Sergei Shtylyov",
        "email": "sshtylyov@ru.mvista.com",
        "time": "Tue Jan 11 21:01:23 2011 +0300"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri Jan 28 03:07:04 2011 -0500"
      },
      "message": "pata_hpt37x: inherit prereset() method for HPT374\n\nCommit ab81a505ae6be069be5b67acd7e1bab3cfb53968 (pata_hpt37x: unify -\u003epre_reset\nmethods) neglected to remove the initializer for the prereset() method from\n\u0027hpt374_fn1_port_ops\u0027 (it\u0027s inherited from \u0027hpt372_port_ops\u0027 anyway), as well\nas to update the comment in hpt37x_init_one()...\n\nSigned-off-by: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "a4a461a6df6c0481d5a3d61660ed97f5b539cf16",
      "tree": "052837c005a3a5ef3f4541cf5568278915be57b2",
      "parents": [
        "910f7bb164fa888ff925e337bf8fd479abb157f9"
      ],
      "author": {
        "name": "Seth Heasley",
        "email": "seth.heasley@intel.com",
        "time": "Mon Jan 10 12:57:17 2011 -0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri Jan 28 03:07:04 2011 -0500"
      },
      "message": "ahci: AHCI mode SATA patch for Intel DH89xxCC DeviceIDs\n\nThis patch adds the AHCI-mode SATA DeviceID for the Intel DH89xxCC PCH.\n\nSigned-off-by: Seth Heasley \u003cseth.heasley@intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "910f7bb164fa888ff925e337bf8fd479abb157f9",
      "tree": "87c834ebff3a9c60a3e48a8d76fdfde349eff449",
      "parents": [
        "40d69ba029c8d5de51aaeb5358999266c482d00a"
      ],
      "author": {
        "name": "Sergei Shtylyov",
        "email": "sshtylyov@ru.mvista.com",
        "time": "Mon Jan 10 22:31:13 2011 +0300"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri Jan 28 03:07:04 2011 -0500"
      },
      "message": "pata_hpt37x: fold \u0027if\u0027 statement into \u0027switch\u0027\n\nhpt37x_init_one() has a large *if* statement which should really be folded into\nthe *switch* statement that currently constitutes its *else* branch, reducing\none level of indentation...\n\nSigned-off-by: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "40d69ba029c8d5de51aaeb5358999266c482d00a",
      "tree": "cf9c820db74fff99ab1cd9c3bfb44a017cf96ddc",
      "parents": [
        "bfdd7c58cf3392333bba161491a2ef0741b970ba"
      ],
      "author": {
        "name": "Sergei Shtylyov",
        "email": "sshtylyov@ru.mvista.com",
        "time": "Mon Jan 10 21:39:34 2011 +0300"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri Jan 28 03:07:04 2011 -0500"
      },
      "message": "pata_hpt{37x|3x2n}: use pr_*(DRV_NAME ...) instead of printk(KERN_* ...)\n\n... the same as the \u0027pata_hpt366\u0027 driver does.\n\nSigned-off-by: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "bfdd7c58cf3392333bba161491a2ef0741b970ba",
      "tree": "6aea2aef6ce3e8b8ca7c4f6435d00d2c09ae104d",
      "parents": [
        "77c5fd19075d299fe820bb59bb21b0b113676e20"
      ],
      "author": {
        "name": "Sergei Shtylyov",
        "email": "sshtylyov@ru.mvista.com",
        "time": "Mon Jan 10 21:34:27 2011 +0300"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri Jan 28 03:07:04 2011 -0500"
      },
      "message": "pata_hpt{366|37x}: use pr_warning(...) instead of printk(KERN_WARNING ...)\n\n... in hpt_dma_blacklisted().\n\nSigned-off-by: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "77c5fd19075d299fe820bb59bb21b0b113676e20",
      "tree": "c8de23b171fc2fb39236fccb6d76aef96c9a9ab3",
      "parents": [
        "1bae4ce27c9c90344f23c65ea6966c50ffeae2f5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Jan 09 17:48:20 2011 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri Jan 28 03:07:04 2011 -0500"
      },
      "message": "pata_mpc52xx: inherit from ata_bmdma_port_ops\n\npata_mpc52xx supports BMDMA but inherits ata_sff_port_ops which\ntriggers BUG_ON() when a DMA command is issued.  Fix it.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Roman Fietze \u003croman.fietze@telemotive.de\u003e\nCc: Sergei Shtylyov \u003csshtylyov@mvista.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "dcc3c4c016481de3fdb99c1f6ecb04d4229513d4",
      "tree": "d3d40306e6dfe0971c6f7fca6a0e37bbe66d2215",
      "parents": [
        "ded9f5238bb719737f82b0b5b957937cb0203804",
        "a3adfa00e8089aa72826c6ba04bcb18cfceaf0a9"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Fri Jan 28 08:25:43 2011 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Fri Jan 28 08:25:43 2011 +0100"
      },
      "message": "Merge branch \u0027fix/asoc\u0027 into for-linus\n"
    },
    {
      "commit": "1f0324caefd39985e9fe052fac97da31694db31e",
      "tree": "1be0e2ac86c404273159570bf302ffe040869d85",
      "parents": [
        "0b6bb66d1247601e4a2560bb048d64c606bd7b73",
        "23febeddbe67e5160929f7c48f7bfe83c2eecb99"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 28 12:24:34 2011 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 28 12:24:34 2011 +1000"
      },
      "message": "Merge branch \u0027stable/bug-fixes-rc2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen\n\n* \u0027stable/bug-fixes-rc2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:\n  xen/setup: Route halt operations to safe_halt pvop.\n  xen/e820: Guard against E820_RAM not having page-aligned size or start.\n  xen/p2m: Mark INVALID_P2M_ENTRY the mfn_list past max_pfn.\n"
    },
    {
      "commit": "0b6bb66d1247601e4a2560bb048d64c606bd7b73",
      "tree": "74319fede412aab03d19034a30eaf164d3dc2498",
      "parents": [
        "b12ece7d852efbc8db45371c068900fcc62002d4"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@linbit.com",
        "time": "Wed Jan 26 15:55:36 2011 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 28 12:16:59 2011 +1000"
      },
      "message": "Export the augmented rbtree helper functions\n\nThe augmented rbtree helper functions are not exported to modules right\nnow.\n\n(We have started using augmented rbtrees in the upcoming version of\ndrbd.)\n\nSigned-off-by: Andreas Gruenbacher \u003cagruen@linbit.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b12ece7d852efbc8db45371c068900fcc62002d4",
      "tree": "6344b69d72415224f784ac3c0d855ae334a612d2",
      "parents": [
        "363aab29eb89b46d14d44e4a44a5fff57e30bcfc",
        "d66bbd441c08fe00ed2add1cf70cb243ebc2b27e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 28 12:12:58 2011 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 28 12:12:58 2011 +1000"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:\n  ceph: avoid picking MDS that is not active\n  ceph: avoid immediate cap check after import\n  ceph: fix flushing of caps vs cap import\n  ceph: fix erroneous cap flush to non-auth mds\n  ceph: fix cap_wanted_delay_{min,max} mount option initialization\n  ceph: fix xattr rbtree search\n  ceph: fix getattr on directory when using norbytes\n"
    },
    {
      "commit": "363aab29eb89b46d14d44e4a44a5fff57e30bcfc",
      "tree": "e4f3f897d0c537ab77c1195d7cb4681c86820f75",
      "parents": [
        "bffb276fffc93000e05a19ee0bdee844dff6a88d",
        "b9020c9e5953f6938e1968ba0034b46292ac5d51"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 28 12:10:13 2011 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 28 12:10:13 2011 +1000"
      },
      "message": "Merge branch \u0027drm-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6\n\n* \u0027drm-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:\n  drm/nv50: fix regression on IGPs\n  drm/radeon/kms: re-emit full context state for evergreen blits\n  drm/radeon/kms: release CMASK access in preclose_kms\n  drm/radeon/kms: fix r6xx+ scanout on BE systems\n  drm/radeon/kms: clean up some magic numbers\n  drm/radeon/kms: only enable HDMI mode if radeon audio is enabled\n  radeon/kms: fix dp displayport mode validation\n  drm/nvc0/grctx: correct an off-by-one\n  drm/nv50: Fix race with PFIFO during PGRAPH context destruction.\n  drm/nouveau: Workaround incorrect DCB entry on a GeForce3 Ti 200.\n  drm/nvc0: implement irq handler for whatever\u0027s at 0x14xxxx\n  drm/nvc0: fix incorrect TPC register setup\n  drm/nouveau: probe for adt7473 before f75375\n  drm/nouveau: remove dead function definition\n"
    },
    {
      "commit": "b9020c9e5953f6938e1968ba0034b46292ac5d51",
      "tree": "a5155fc1a616da4832711e41bb761e4a7cec8d45",
      "parents": [
        "1e644d6dce366a7bae22484f60133b61ba322911",
        "153e019ff398063b8486acadfad9adb806e99474"
      ],
      "author": {
        "name": "Dave Airlie",
        "email": "airlied@gmail.com",
        "time": "Fri Jan 28 11:12:53 2011 +1000"
      },
      "committer": {
        "name": "Dave Airlie",
        "email": "airlied@gmail.com",
        "time": "Fri Jan 28 11:12:53 2011 +1000"
      },
      "message": "Merge branch \u0027drm-nouveau-next\u0027 of git://git.freedesktop.org/git/nouveau/linux-2.6 into drm-fixes\n\n* \u0027drm-nouveau-next\u0027 of git://git.freedesktop.org/git/nouveau/linux-2.6:\n  drm/nv50: fix regression on IGPs\n"
    },
    {
      "commit": "153e019ff398063b8486acadfad9adb806e99474",
      "tree": "873812dd5057707068cd87c1c03fdf8749f3fa9a",
      "parents": [
        "5d07929808a6430d3d844db4da828dfadbc49cd2"
      ],
      "author": {
        "name": "Ben Skeggs",
        "email": "bskeggs@redhat.com",
        "time": "Thu Jan 27 10:42:50 2011 +1000"
      },
      "committer": {
        "name": "Ben Skeggs",
        "email": "bskeggs@redhat.com",
        "time": "Fri Jan 28 11:10:34 2011 +1000"
      },
      "message": "drm/nv50: fix regression on IGPs\n\nSigned-off-by: Ben Skeggs \u003cbskeggs@redhat.com\u003e\n"
    },
    {
      "commit": "1e644d6dce366a7bae22484f60133b61ba322911",
      "tree": "12eb2e66e98ba7cef9d0464a1783d9559638d7b9",
      "parents": [
        "dca0d6129f3ec77bcf42ce85bcd64c87e5cf0c04"
      ],
      "author": {
        "name": "Alex Deucher",
        "email": "alexdeucher@gmail.com",
        "time": "Thu Jan 27 17:01:52 2011 -0500"
      },
      "committer": {
        "name": "Dave Airlie",
        "email": "airlied@gmail.com",
        "time": "Fri Jan 28 10:59:31 2011 +1000"
      },
      "message": "drm/radeon/kms: re-emit full context state for evergreen blits\n\nclear state doesn\u0027t seem to work properly in some cases\n\nFixes hangs in heavy 3D on some evergreen cards reported on\nIRC.\n\nMay fix:\nhttps://bugs.freedesktop.org/show_bug.cgi?id\u003d33381\npossibly others.\n\nSigned-off-by: Alex Deucher \u003calexdeucher@gmail.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Dave Airlie \u003cairlied@gmail.com\u003e\n"
    },
    {
      "commit": "dca0d6129f3ec77bcf42ce85bcd64c87e5cf0c04",
      "tree": "83b8dad1365a7bc2e08029693b1d90f8ff2a705a",
      "parents": [
        "fa6bee46a655a750afb9a78a7ddf9a3bcda97db8"
      ],
      "author": {
        "name": "Marek Olšák",
        "email": "maraeo@gmail.com",
        "time": "Thu Jan 27 22:46:15 2011 +0100"
      },
      "committer": {
        "name": "Dave Airlie",
        "email": "airlied@gmail.com",
        "time": "Fri Jan 28 10:59:12 2011 +1000"
      },
      "message": "drm/radeon/kms: release CMASK access in preclose_kms\n\nSigned-off-by: Marek Olšák \u003cmaraeo@gmail.com\u003e\nSigned-off-by: Dave Airlie \u003cairlied@gmail.com\u003e\n"
    },
    {
      "commit": "bffb276fffc93000e05a19ee0bdee844dff6a88d",
      "tree": "57e0a6e59f0487e096d362d3150cbba3e536109f",
      "parents": [
        "f7b548fa3d74f0db9af4fd41fbef973231d384fd",
        "05ca62c6ca17f39b88fa956d5ebc1fa6e93ad5e3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 28 06:45:04 2011 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 28 06:45:04 2011 +1000"
      },
      "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: Use rq-\u003eclock_task instead of rq-\u003eclock for correctly maintaining load averages\n  sched: Fix/remove redundant cfs_rq checks\n  sched: Fix sign under-flows in wake_affine\n"
    },
    {
      "commit": "f7b548fa3d74f0db9af4fd41fbef973231d384fd",
      "tree": "ef4eee8f3b293599e378e30c58903eab425ecb49",
      "parents": [
        "95f9354b4cd23902e0556348325366378cb5e621",
        "889a7a6a5d5e64063effd40056bdc7b8fb336bd1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 28 06:43:41 2011 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 28 06:43:41 2011 +1000"
      },
      "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  percpu, x86: Fix percpu_xchg_op()\n  x86: Remove left over system_64.h\n  x86-64: Don\u0027t use pointer to out-of-scope variable in dump_trace()\n"
    },
    {
      "commit": "95f9354b4cd23902e0556348325366378cb5e621",
      "tree": "b0bb2fa664856104eab26cef636e3bb7c08ff49e",
      "parents": [
        "7205649778ca4a110d6098f8defd7312f0bb7289",
        "a34650f0f1ca589cda09c48cb62baf15e680a247"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 28 06:39:08 2011 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 28 06:39:08 2011 +1000"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc:\n  mmc: bfin_sdh: fix alloc size for private data\n  mmc: sdhci-s3c: add platform_8bit_width() hook\n  mmc: jz4740: don\u0027t treat NULL clk as an error\n  mmc: mmci: don\u0027t read command response when invalid\n  mmc: ushc: Remove duplicate include of usb.h\n"
    },
    {
      "commit": "7205649778ca4a110d6098f8defd7312f0bb7289",
      "tree": "1e056fcdf578a62e5639e0a2b5cb8cd393115491",
      "parents": [
        "0b711cac8b9e604c93b32ca6e0b6b73261056d65",
        "4bb9ebc78097376b3734c6d3001a96aecac0f7bb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 28 06:35:51 2011 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 28 06:35:51 2011 +1000"
      },
      "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: (43 commits)\n  bnx2: Eliminate AER error messages on systems not supporting it\n  cnic: Fix big endian bug\n  xfrm6: Don\u0027t forget to propagate peer into ipsec route.\n  tg3: Use new VLAN code\n  bonding: update documentation - alternate configuration.\n  TCP: fix a bug that triggers large number of TCP RST by mistake\n  MAINTAINERS: remove Reinette Chatre as iwlwifi maintainer\n  rt2x00: add device id for windy31 usb device\n  mac80211: fix a crash in ieee80211_beacon_get_tim on change_interface\n  ipv6: Revert \u0027administrative down\u0027 address handling changes.\n  textsearch: doc - fix spelling in lib/textsearch.c.\n  USB NET KL5KUSB101: Fix mem leak in error path of kaweth_download_firmware()\n  pch_gbe: don\u0027t use flush_scheduled_work()\n  bnx2: Always set ETH_FLAG_TXVLAN\n  net: clear heap allocation for ethtool_get_regs()\n  ipv6: Always clone offlink routes.\n  dcbnl: make get_app handling symmetric for IEEE and CEE DCBx\n  tcp: fix bug in listening_get_next()\n  inetpeer: Use correct AVL tree base pointer in inet_getpeer().\n  GRO: fix merging a paged skb after non-paged skbs\n  ...\n"
    },
    {
      "commit": "0b711cac8b9e604c93b32ca6e0b6b73261056d65",
      "tree": "fb3b8ebfe11689ae46150b259ae292d2b49a0ab3",
      "parents": [
        "b17b849946e581ad58af74933d4fb63ad8812937",
        "a20f0bc10c47fcf62be027e1a50b62791052ab56"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 28 06:34:19 2011 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 28 06:34:19 2011 +1000"
      },
      "message": "Merge branch \u0027hwmon-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/staging\n\n* \u0027hwmon-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/staging:\n  hwmon: (lis3) turn down the no IRQ message\n  hwmon: (asus_atk0110) Override interface detection on Sabertooth X58\n  hwmon: (applesmc) Properly initialize lockdep attributes\n"
    },
    {
      "commit": "b17b849946e581ad58af74933d4fb63ad8812937",
      "tree": "6319a8785faab60cd3f6f9e76b8b8ba733533763",
      "parents": [
        "785eb10b9f1cf1a1b9e3bb5175da04dc0ffba553",
        "c3810c88788d505d4ffd786addd111b745e42161"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 28 06:32:49 2011 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 28 06:32:49 2011 +1000"
      },
      "message": "Merge branch \u0027pm-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6\n\n* \u0027pm-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6:\n  PM / Runtime: Don\u0027t enable interrupts while running in_interrupt\n"
    },
    {
      "commit": "785eb10b9f1cf1a1b9e3bb5175da04dc0ffba553",
      "tree": "3085fd015d9e3b0a504a729e049a6a9f1ca500d8",
      "parents": [
        "6fb1b304255efc5c4c93874ac8c066272e257e28",
        "6cb8e872c800be55496a56d1e1a6aafba8fa936d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 28 06:32:05 2011 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 28 06:32:05 2011 +1000"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/egtvedt/avr32-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/egtvedt/avr32-2.6:\n  avr32: add missing include causing undefined pgtable_page_* references\n"
    },
    {
      "commit": "ee2c9258501f83d3ed0fd09ce5df1cec53312cf0",
      "tree": "2690ab3e75343be23a4969846a0c71f0df842dc7",
      "parents": [
        "d39454ffe4a3c85428483b8a8a8e5e797b6363d5"
      ],
      "author": {
        "name": "Shirish Pargaonkar",
        "email": "shirishpargaonkar@gmail.com",
        "time": "Thu Jan 27 09:58:04 2011 -0600"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Jan 27 19:58:13 2011 +0000"
      },
      "message": "cifs: More crypto cleanup (try #2)\n\nReplaced md4 hashing function local to cifs module with kernel crypto APIs.\nAs a result, md4 hashing function and its supporting functions in\nfile md4.c are not needed anymore.\n\nCleaned up function declarations, removed forward function declarations,\nand removed a header file that is being deleted from being included.\n\nVerified that sec\u003dntlm/i, sec\u003dntlmv2/i, and sec\u003dntlmssp/i work correctly.\n\nSigned-off-by: Shirish Pargaonkar \u003cshirishpargaonkar@gmail.com\u003e\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "6ae4bd1f0bc479984f30061b5e5116060c24a267",
      "tree": "d697010cf38907785a6283a26c02a081f0ea1e96",
      "parents": [
        "0a08739e81671de2cb690774937fe510c000b27f"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Jan 27 10:30:26 2011 +0000"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Jan 27 18:32:06 2011 +0000"
      },
      "message": "kmemleak: Allow kmemleak metadata allocations to fail\n\nThis patch adds __GFP_NORETRY and __GFP_NOMEMALLOC flags to the kmemleak\nmetadata allocations so that it has a smaller effect on the users of the\nkernel slab allocator. Since kmemleak allocations can now fail more\noften, this patch also reduces the verbosity by passing __GFP_NOWARN and\nnot dumping the stack trace when a kmemleak allocation fails.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nReported-by: Toralf Förster \u003ctoralf.foerster@gmx.de\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Ted Ts\u0027o \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "0a08739e81671de2cb690774937fe510c000b27f",
      "tree": "132c09b71ccb54cfbf26e7ee96f074783708b9c6",
      "parents": [
        "3c0eee3fe6a3a1c745379547c7e7c904aa64f6d5"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Sat Oct 30 23:43:05 2010 +0200"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Jan 27 18:31:51 2011 +0000"
      },
      "message": "kmemleak: remove memset by using kzalloc\n\nWe don\u0027t need to memset if we just use kzalloc() rather than kmalloc() in\nkmemleak_test_init().\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\n"
    },
    {
      "commit": "23febeddbe67e5160929f7c48f7bfe83c2eecb99",
      "tree": "0a5ce5f89e7ec1a8c1d30452677a077ad8753243",
      "parents": [
        "7cb31b752c71e0bd405c1139e1907c3335877dff"
      ],
      "author": {
        "name": "Stefano Stabellini",
        "email": "stefano.stabellini@eu.citrix.com",
        "time": "Wed Jan 26 17:07:27 2011 +0000"
      },
      "committer": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Thu Jan 27 12:00:24 2011 -0500"
      },
      "message": "xen/setup: Route halt operations to safe_halt pvop.\n\nWith this patch, the cpuidle driver does not load and\ndoes not issue the mwait operations. Instead the hypervisor\nis doing them (b/c we call the safe_halt pvops call).\n\nThis fixes quite a lot of bootup issues wherein the user had\nto force interrupts for the continuation of the bootup.\n\nDetails are discussed in:\n\nhttp://lists.xensource.com/archives/html/xen-devel/2011-01/msg00535.html\n\n[v2: Wrote the commit description]\n\nReported-by: Daniel De Graaf \u003cdgdegra@tycho.nsa.gov\u003e\nTested-by: Daniel De Graaf \u003cdgdegra@tycho.nsa.gov\u003e\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\n"
    },
    {
      "commit": "7cb31b752c71e0bd405c1139e1907c3335877dff",
      "tree": "fb867bd74a89ddff24075907080faa41b33797f2",
      "parents": [
        "cf04d120d9413de581437cf9a29f138ec1178f65"
      ],
      "author": {
        "name": "Stefano Stabellini",
        "email": "stefano.stabellini@eu.citrix.com",
        "time": "Thu Jan 27 10:13:25 2011 -0500"
      },
      "committer": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Thu Jan 27 10:49:35 2011 -0500"
      },
      "message": "xen/e820: Guard against E820_RAM not having page-aligned size or start.\n\nUnder Dell Inspiron 1525, and Intel SandyBridge SDP\u0027s the\nBIOS e820 RAM is not page-aligned:\n\n[   0.000000]  Xen: 0000000000100000 - 00000000df66d800 (usable)\n\nWe were not handling that and ended up setting up a pagetable\nthat included up to df66e000 with the disastrous effect that when\n\n        memset(NODE_DATA(nodeid), 0, sizeof(pg_data_t));\n\ntried to clear the page it would crash at the 2K mark.\n\nInitially reported by Michael Young @\nhttp://lists.xensource.com/archives/html/xen-devel/2011-01/msg00108.html\n\nThe fix is to page-align the size and also take into consideration\nthe start of the E820 (in case that is not page-aligned either). This\nfixes the bootup failure on those affected machines.\n\nThis patch is a rework of the Micheal A Young initial patch and\nconsiders the case if the start is not page-aligned.\n\nReported-by: Michael A Young \u003cm.a.young@durham.ac.uk\u003e\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nSigned-off-by: Michael A Young \u003cm.a.young@durham.ac.uk\u003e\n"
    },
    {
      "commit": "cf04d120d9413de581437cf9a29f138ec1178f65",
      "tree": "29de479bca1f9b059eb219881bf0e6f6d8d13c88",
      "parents": [
        "1bae4ce27c9c90344f23c65ea6966c50ffeae2f5"
      ],
      "author": {
        "name": "Stefan Bader",
        "email": "stefan.bader@canonical.com",
        "time": "Thu Jan 27 10:03:14 2011 -0500"
      },
      "committer": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Thu Jan 27 10:49:34 2011 -0500"
      },
      "message": "xen/p2m: Mark INVALID_P2M_ENTRY the mfn_list past max_pfn.\n\nIn case the mfn_list does not have enough entries to fill\na p2m page we do not want the entries from max_pfn up to\nthe boundary to be filled with unknown values. Hence\nset them to INVALID_P2M_ENTRY.\n\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\n"
    },
    {
      "commit": "b48b5f51568977592f1bfce91c1c6378b0a5a4f5",
      "tree": "fdf32a96847b5c90531dca94131c171f287da37d",
      "parents": [
        "cc939754db459d9caf3d77eef4f8a58bd8e15077"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sat Jan 22 21:24:14 2011 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jan 26 21:28:06 2011 -0800"
      },
      "message": "ARM: tegra: clock: Add forward reference to struct clk\n\nSigned-off-by: Colin Cross \u003cccross@android.com\u003e\n"
    },
    {
      "commit": "cc939754db459d9caf3d77eef4f8a58bd8e15077",
      "tree": "d0ce82110197b55289e6973c6012f23a235a1d7a",
      "parents": [
        "867996cb4fc51aeccb2148f30356a00352e0f22f"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sun Nov 28 20:14:53 2010 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jan 26 21:28:06 2011 -0800"
      },
      "message": "ARM: tegra: irq: Rename gic pointers to avoid conflicts\n\nA future patch will export gic_mask_irq and gic_unmask_irq.\nRename the pointers in arch/arm/mach-tegra/irq.c to avoid\na compile error.\n\nSigned-off-by: Colin Cross \u003cccross@android.com\u003e\n"
    },
    {
      "commit": "867996cb4fc51aeccb2148f30356a00352e0f22f",
      "tree": "237461003564991b3300c231bacf31ce1b2239ff",
      "parents": [
        "1bae4ce27c9c90344f23c65ea6966c50ffeae2f5"
      ],
      "author": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Sat Jan 15 22:41:27 2011 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jan 26 21:28:06 2011 -0800"
      },
      "message": "arm/tegra: Fix tegra irq_data conversion\n\nCommit 37337a8d5e68d6e19075dbdb3acf4f1011dae972, \"ARM: tegra: irq_data\nconversion.\" missed changing one reference to \u0027irq\u0027 in the function\ntegra_gpio_irq_set_type().  This patch fixes the build error.\n\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nAcked-by: Lennert Buytenhek \u003cbuytenh@secretlab.ca\u003e\nAcked-by: Olof Johansson \u003colof@lixom.net\u003e\nSigned-off-by: Colin Cross \u003cccross@android.com\u003e\n"
    },
    {
      "commit": "fa6bee46a655a750afb9a78a7ddf9a3bcda97db8",
      "tree": "899ff04db8e6ab05b2179037645c762117b9355c",
      "parents": [
        "d75ee3be44380040b9d2c7925298dc52e049768d"
      ],
      "author": {
        "name": "Alex Deucher",
        "email": "alexdeucher@gmail.com",
        "time": "Tue Jan 25 11:55:50 2011 -0500"
      },
      "committer": {
        "name": "Dave Airlie",
        "email": "airlied@gmail.com",
        "time": "Thu Jan 27 13:54:13 2011 +1000"
      },
      "message": "drm/radeon/kms: fix r6xx+ scanout on BE systems\n\nR6xx+ have per-block swappers.  BE content in the\nframebuffer will now be swapped properly during scanout.\nUntested, however, the same code is reported working in\nthe UMS ddx.\n\nSigned-off-by: Alex Deucher \u003calexdeucher@gmail.com\u003e\nSigned-off-by: Dave Airlie \u003cairlied@gmail.com\u003e\n"
    },
    {
      "commit": "d75ee3be44380040b9d2c7925298dc52e049768d",
      "tree": "b7677fdbe19922c8e226dcb1419f9d94d17c51a2",
      "parents": [
        "9453d621186426500aa50049dfa0a8b15c86201d"
      ],
      "author": {
        "name": "Alex Deucher",
        "email": "alexdeucher@gmail.com",
        "time": "Mon Jan 24 23:24:59 2011 -0500"
      },
      "committer": {
        "name": "Dave Airlie",
        "email": "airlied@gmail.com",
        "time": "Thu Jan 27 13:53:30 2011 +1000"
      },
      "message": "drm/radeon/kms: clean up some magic numbers\n\nSigned-off-by: Alex Deucher \u003calexdeucher@gmail.com\u003e\nSigned-off-by: Dave Airlie \u003cairlied@gmail.com\u003e\n"
    },
    {
      "commit": "9453d621186426500aa50049dfa0a8b15c86201d",
      "tree": "110d40f8de05d4f243a14896a4af3e1ca513862d",
      "parents": [
        "6bba2e116808ca12e30c8d88dfedabf8b8d67390"
      ],
      "author": {
        "name": "Alex Deucher",
        "email": "alexdeucher@gmail.com",
        "time": "Mon Jan 24 22:25:48 2011 -0500"
      },
      "committer": {
        "name": "Dave Airlie",
        "email": "airlied@gmail.com",
        "time": "Thu Jan 27 13:52:49 2011 +1000"
      },
      "message": "drm/radeon/kms: only enable HDMI mode if radeon audio is enabled\n\nForce DVI mode if the user specifies radeon.audio\u003d0.  The driver\ndoesn\u0027t handle HDMI mode properly in some cases.\n\nFixes:\nhttps://bugs.freedesktop.org/show_bug.cgi?id\u003d27731\n\nSigned-off-by: Alex Deucher \u003calexdeucher@gmail.com\u003e\nSigned-off-by: Dave Airlie \u003cairlied@gmail.com\u003e\n"
    },
    {
      "commit": "6bba2e116808ca12e30c8d88dfedabf8b8d67390",
      "tree": "92df638a6de6df44a63bab207404ed67c76dba67",
      "parents": [
        "52bb4a7391321b9f32c0b6e032d0a5e1796f1968"
      ],
      "author": {
        "name": "Jerome Glisse",
        "email": "jglisse@redhat.com",
        "time": "Wed Jan 26 17:51:03 2011 -0500"
      },
      "committer": {
        "name": "Dave Airlie",
        "email": "airlied@gmail.com",
        "time": "Thu Jan 27 13:52:05 2011 +1000"
      },
      "message": "radeon/kms: fix dp displayport mode validation\n\nCheck if there is a big enough dp clock \u0026 enough dp lane to\ndrive the video mode provided.\n\nSigned-off-by: Jerome Glisse \u003cjglisse@redhat.com\u003e\nReviewed-By: Alex Deucher \u003calexdeucher@gmail.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Dave Airlie \u003cairlied@gmail.com\u003e\n"
    },
    {
      "commit": "4bb9ebc78097376b3734c6d3001a96aecac0f7bb",
      "tree": "6f6d54fa1b27782a97cea8446012d0fc073a0917",
      "parents": [
        "5138826b52f8bc441770069b1b305e1d1426ae9e"
      ],
      "author": {
        "name": "Michael Chan",
        "email": "mchan@broadcom.com",
        "time": "Tue Jan 25 22:14:51 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jan 26 14:28:52 2011 -0800"
      },
      "message": "bnx2: Eliminate AER error messages on systems not supporting it\n\nOn PPC for example, AER is not supported and we see unnecessary AER\nerror message without this patch:\n\nbnx2 0003:01:00.1: pci_cleanup_aer_uncorrect_error_status failed 0xfffffffb\n\nReported-by: Breno Leitao \u003cleitao@linux.vnet.ibm.com\u003e\nSigned-off-by: Michael Chan \u003cmchan@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5138826b52f8bc441770069b1b305e1d1426ae9e",
      "tree": "f1275b4ae1848783272e0b194e10c843016c606f",
      "parents": [
        "7cc2edb83447775a34ed3bf9d29d8295a434b523"
      ],
      "author": {
        "name": "Michael Chan",
        "email": "mchan@broadcom.com",
        "time": "Tue Jan 25 22:14:50 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jan 26 14:26:00 2011 -0800"
      },
      "message": "cnic: Fix big endian bug\n\nThe chip\u0027s page tables did not set up properly on big endian machines,\ncausing EEH errors on PPC machines.\n\nReported-by: Breno Leitao \u003cleitao@linux.vnet.ibm.com\u003e\nSigned-off-by: Michael Chan \u003cmchan@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7cc2edb83447775a34ed3bf9d29d8295a434b523",
      "tree": "cdcbae599c95d6902fcb29989c75810b08f04707",
      "parents": [
        "34c92049ac15dcb731dc455d165b4c3c1df569cf"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jan 26 13:41:03 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jan 26 13:41:03 2011 -0800"
      },
      "message": "xfrm6: Don\u0027t forget to propagate peer into ipsec route.\n\nLike ipv4, we have to propagate the ipv6 route peer into\nthe ipsec top-level route during instantiation.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "34c92049ac15dcb731dc455d165b4c3c1df569cf",
      "tree": "afc7c685df97e636112cf49bc48bccbf5f7afd13",
      "parents": [
        "9b6941d8b103fe95d1a90b7996046be9ee0e55e4"
      ],
      "author": {
        "name": "Matt Carlson",
        "email": "mcarlson@broadcom.com",
        "time": "Wed Jan 26 13:13:10 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jan 26 13:13:10 2011 -0800"
      },
      "message": "tg3: Use new VLAN code\n\nThis patch pivots the tg3 driver to the new VLAN infrastructure.\nAll references to vlgrp have been removed.  The driver still attempts to\ndisable VLAN tag stripping if CONFIG_VLAN_8021Q or\nCONFIG_VLAN_8021Q_MODULE is not defined.\n\nSigned-off-by: Matt Carlson \u003cmcarlson@broadcom.com\u003e\nReviewed-by: Michael Chan \u003cmchan@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9b6941d8b103fe95d1a90b7996046be9ee0e55e4",
      "tree": "03c4e26abb8d6212741c3821061f2f40f2b5c8ec",
      "parents": [
        "de221bd5eb5e754806fcc39c40bb12b96515d9c5",
        "acd9f9cc305ca2e5da2a39f6f6160cd4b476e38b"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jan 26 11:49:49 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jan 26 11:49:49 2011 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6\n"
    },
    {
      "commit": "ded9f5238bb719737f82b0b5b957937cb0203804",
      "tree": "c42fcdf5ce8f0815686174e9a74ea26a2839a9e2",
      "parents": [
        "d757534ed15387202e322854cd72dc58bbb975de"
      ],
      "author": {
        "name": "David Henningsson",
        "email": "david.henningsson@canonical.com",
        "time": "Wed Jan 26 11:46:12 2011 +0100"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Wed Jan 26 14:37:53 2011 +0100"
      },
      "message": "ALSA: HDA: Fix automute on Thinkpad L412/L512\n\nBugLink: http://bugs.launchpad.net/bugs/707902\n\nMore Thinkpad machines with invalid SKU found, that disables\nautomute between speakers and headphones on these machines.\n\nSigned-off-by: David Henningsson \u003cdavid.henningsson@canonical.com\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "6cb8e872c800be55496a56d1e1a6aafba8fa936d",
      "tree": "d39ebe71cebd757066eb81dcdaf706dd1f447f38",
      "parents": [
        "1bae4ce27c9c90344f23c65ea6966c50ffeae2f5"
      ],
      "author": {
        "name": "Hans-Christian Egtvedt",
        "email": "hans-christian.egtvedt@atmel.com",
        "time": "Mon Jan 24 13:51:58 2011 +0100"
      },
      "committer": {
        "name": "Hans-Christian Egtvedt",
        "email": "hans-christian.egtvedt@atmel.com",
        "time": "Wed Jan 26 12:35:15 2011 +0100"
      },
      "message": "avr32: add missing include causing undefined pgtable_page_* references\n\nThis patch adds the linux/mm.h header file to the AVR32 arch pgalloc.c\nimplementation to fix the undefined reference to pgtable_page_ctor() and\npgtable_page_dtor().\n\nSigned-off-by: Hans-Christian Egtvedt \u003chans-christian.egtvedt@atmel.com\u003e\n"
    },
    {
      "commit": "05ca62c6ca17f39b88fa956d5ebc1fa6e93ad5e3",
      "tree": "a56f4f47dd23ef65ebb5c579adb1fbb29ba3faed",
      "parents": [
        "b815f1963e47b9b69bb17e0588bd5af5b1114ae0"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Fri Jan 21 20:45:02 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 26 12:31:03 2011 +0100"
      },
      "message": "sched: Use rq-\u003eclock_task instead of rq-\u003eclock for correctly maintaining load averages\n\nThe delta in clock_task is a more fair attribution of how much time a tg has\nbeen contributing load to the current cpu.\n\nWhile not really important it also means we\u0027re more in sync (by magnitude)\nwith respect to periodic updates (since __update_curr deltas are clock_task\nbased).\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20110122044852.007092349@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b815f1963e47b9b69bb17e0588bd5af5b1114ae0",
      "tree": "b7c087fbf80f0e46fabfc919c619827e73963592",
      "parents": [
        "e37b6a7b27b400c3aa488db8c6629a05095bc79c"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Fri Jan 21 20:45:00 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 26 12:31:02 2011 +0100"
      },
      "message": "sched: Fix/remove redundant cfs_rq checks\n\nSince updates are against an entity\u0027s queuing cfs_rq it\u0027s not possible to\nenter update_cfs_{shares,load} with a NULL cfs_rq.  (Indeed, update_cfs_load\nwould crash prior to the check if we did anyway since we load is examined\nduring the initializers).\n\nAlso, in the update_cfs_load case there\u0027s no point\nin maintaining averages for rq-\u003ecfs_rq since we don\u0027t perform shares\ndistribution at that level -- NULL check is replaced accordingly.\n\nThanks to Dan Carpenter for pointing out the deference before NULL check.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20110122044851.825284940@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e37b6a7b27b400c3aa488db8c6629a05095bc79c",
      "tree": "b27ed41b74eb7e69d2e6b02cc659c4fab3ef12ef",
      "parents": [
        "6663050edd9c2e8b1e1f55c09459144d84c045f0"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Fri Jan 21 20:44:59 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 26 12:31:01 2011 +0100"
      },
      "message": "sched: Fix sign under-flows in wake_affine\n\nWhile care is taken around the zero-point in effective_load to not exceed\nthe instantaneous rq-\u003eweight, it\u0027s still possible (e.g. using wake_idx !\u003d 0)\nfor (load + effective_load) to underflow.\n\nIn this case the comparing the unsigned values can result in incorrect balanced\ndecisions.\n\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20110122044851.734245014@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "52bb4a7391321b9f32c0b6e032d0a5e1796f1968",
      "tree": "e8d51066bc584605b41054c1c55a457efbed6e06",
      "parents": [
        "6663050edd9c2e8b1e1f55c09459144d84c045f0",
        "5d07929808a6430d3d844db4da828dfadbc49cd2"
      ],
      "author": {
        "name": "Dave Airlie",
        "email": "airlied@gmail.com",
        "time": "Wed Jan 26 17:12:42 2011 +1000"
      },
      "committer": {
        "name": "Dave Airlie",
        "email": "airlied@gmail.com",
        "time": "Wed Jan 26 17:12:42 2011 +1000"
      },
      "message": "Merge branch \u0027drm-nouveau-next\u0027 of git://git.freedesktop.org/git/nouveau/linux-2.6 into drm-fixes\n\n* \u0027drm-nouveau-next\u0027 of git://git.freedesktop.org/git/nouveau/linux-2.6:\n  drm/nvc0/grctx: correct an off-by-one\n  drm/nv50: Fix race with PFIFO during PGRAPH context destruction.\n  drm/nouveau: Workaround incorrect DCB entry on a GeForce3 Ti 200.\n  drm/nvc0: implement irq handler for whatever\u0027s at 0x14xxxx\n  drm/nvc0: fix incorrect TPC register setup\n  drm/nouveau: probe for adt7473 before f75375\n  drm/nouveau: remove dead function definition\n"
    },
    {
      "commit": "889a7a6a5d5e64063effd40056bdc7b8fb336bd1",
      "tree": "84f366024832785f6eff971c96129be6e131f6c8",
      "parents": [
        "9a57c3e487d25f69715705dfeef6eb9e4d666ad7"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Jan 25 17:31:54 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 26 08:10:49 2011 +0100"
      },
      "message": "percpu, x86: Fix percpu_xchg_op()\n\nThese recent percpu commits:\n\n  2485b6464cf8: x86,percpu: Move out of place 64 bit ops into X86_64 section\n  8270137a0d50: cpuops: Use cmpxchg for xchg to avoid lock semantics\n\nCaused this \u0027perf top\u0027 crash:\n\n Kernel panic - not syncing: Fatal exception in interrupt\n Pid: 0, comm: swapper Tainted: G     D\n 2.6.38-rc2-00181-gef71723 #413 Call Trace: \u003cIRQ\u003e [\u003cffffffff810465b5\u003e]\n    ? panic\n    ? kmsg_dump\n    ? kmsg_dump\n    ? oops_end\n    ? no_context\n    ? __bad_area_nosemaphore\n    ? perf_output_begin\n    ? bad_area_nosemaphore\n    ? do_page_fault\n    ? __task_pid_nr_ns\n    ? perf_event_tid\n    ? __perf_event_header__init_id\n    ? validate_chain\n    ? perf_output_sample\n    ? trace_hardirqs_off\n    ? page_fault\n    ? irq_work_run\n    ? update_process_times\n    ? tick_sched_timer\n    ? tick_sched_timer\n    ? __run_hrtimer\n    ? hrtimer_interrupt\n    ? account_system_vtime\n    ? smp_apic_timer_interrupt\n    ? apic_timer_interrupt\n ...\n\nLooking at assembly code, I found:\n\nlist \u003d this_cpu_xchg(irq_work_list, NULL);\n\ngives this wrong code : (gcc-4.1.2 cross compiler)\n\nffffffff810bc45e:\n\tmov    %gs:0xead0,%rax\n\tcmpxchg %rax,%gs:0xead0\n\tjne    ffffffff810bc45e \u003cirq_work_run+0x3e\u003e\n\ttest   %rax,%rax\n\tje     ffffffff810bc4aa \u003cirq_work_run+0x8a\u003e\n\nTell gcc we dirty eax/rax register in percpu_xchg_op()\n\nCompiler must use another register to store pxo_new__\n\nWe also dont need to reload percpu value after a jump,\nsince a \u0027failed\u0027 cmpxchg already updated eax/rax\n\nWrong generated code was :\n\txor     %rax,%rax   /* load 0 into %rax */\n1:\tmov     %gs:0xead0,%rax\n\tcmpxchg %rax,%gs:0xead0\n\tjne     1b\n\ttest    %rax,%rax\n\nAfter patch :\n\n\txor     %rdx,%rdx   /* load 0 into %rdx */\n\tmov     %gs:0xead0,%rax\n1:\tcmpxchg %rdx,%gs:0xead0\n\tjne     1b:\n\ttest    %rax,%rax\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nLKML-Reference: \u003c1295973114.3588.312.camel@edumazet-laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9a57c3e487d25f69715705dfeef6eb9e4d666ad7",
      "tree": "3a3cc633062db4048d742219db53313befb15f95",
      "parents": [
        "2e5aa6824d9e0248d734573dad8858a2cc279cfe"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Mon Jan 24 17:13:53 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 26 08:05:58 2011 +0100"
      },
      "message": "x86: Remove left over system_64.h\n\nLeft-over from the x86 merge ...\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nLKML-Reference: \u003c4D3E23D1.7010405@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6fb1b304255efc5c4c93874ac8c066272e257e28",
      "tree": "67b4193e20d3a5470f56b26d912ed791dba20f13",
      "parents": [
        "ac751efa6a0d70f2c9daef5c7e3a92270f5c2dff",
        "409550f2902470f0387fe40a7db441526e16b2c0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 26 16:31:44 2011 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 26 16:31:44 2011 +1000"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:\n  Input: wacom - pass touch resolution to clients through input_absinfo\n  Input: wacom - add 2 Bamboo Pen and touch models\n  Input: sysrq - ensure sysrq_enabled and __sysrq_enabled are consistent\n  Input: sparse-keymap - fix KEY_VSW handling in sparse_keymap_setup\n  Input: tegra-kbc - add tegra keyboard driver\n  Input: gpio_keys - switch to using request_any_context_irq\n  Input: serio - allow registered drivers to get status flag\n  Input: ct82710c - return proper error code for ct82c710_open\n  Input: bu21013_ts - added regulator support\n  Input: bu21013_ts - remove duplicate resolution parameters\n  Input: tnetv107x-ts - don\u0027t treat NULL clk as an error\n  Input: tnetv107x-keypad - don\u0027t treat NULL clk as an error\n\nFix up trivial conflicts in drivers/input/keyboard/Makefile due to\nadditions of tc3589x/Tegra drivers\n"
    },
    {
      "commit": "a34650f0f1ca589cda09c48cb62baf15e680a247",
      "tree": "a3d327b9f7b5c7eccd3242c4942317ac3e4a8cc4",
      "parents": [
        "548f07d2a36a4b085c059edb25edb3cd8d71fe3e"
      ],
      "author": {
        "name": "Sonic Zhang",
        "email": "sonic.zhang@analog.com",
        "time": "Tue Jan 11 22:39:35 2011 -0500"
      },
      "committer": {
        "name": "Chris Ball",
        "email": "cjb@laptop.org",
        "time": "Wed Jan 26 00:28:41 2011 -0500"
      },
      "message": "mmc: bfin_sdh: fix alloc size for private data\n\nThe bfin_sdh driver allocates the wrong size for the private data\nin the mmc_host.  The first parameter of mmc_alloc_host should be\nthe size of the local driver struct rather than the common mmc_host.\n\nSigned-off-by: Sonic Zhang \u003csonic.zhang@analog.com\u003e\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Chris Ball \u003ccjb@laptop.org\u003e\n"
    },
    {
      "commit": "548f07d2a36a4b085c059edb25edb3cd8d71fe3e",
      "tree": "59a60ef6ec54d26e271ba2deb6fc1466a60363c8",
      "parents": [
        "3119cbda858fc9ae10a69919e5f278abd6d93bb5"
      ],
      "author": {
        "name": "Jaehoon Chung",
        "email": "jh80.chung@samsung.com",
        "time": "Wed Jan 12 11:59:12 2011 +0900"
      },
      "committer": {
        "name": "Chris Ball",
        "email": "cjb@laptop.org",
        "time": "Wed Jan 26 00:27:57 2011 -0500"
      },
      "message": "mmc: sdhci-s3c: add platform_8bit_width() hook\n\nWe have 8-bit width support but is not a v3 controller.\nSo we need platform_8bit_width() to support 8-bit buswidth.\nAlso we need MMC_CAP_8_BIT_DATA, so we add it in platdata.\n\nThis gets 8-bit support working again on s3c, after we previously\ndisabled 8-bit by default on non-v3 controllers.\n\nSigned-off-by: Jaehoon Chung \u003cjh80.chung@samsung.com\u003e\nSigned-off-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nSigned-off-by: Chris Ball \u003ccjb@laptop.org\u003e\n"
    },
    {
      "commit": "3119cbda858fc9ae10a69919e5f278abd6d93bb5",
      "tree": "0ac3212b916871cb979e4bf4d454d95988b96b4b",
      "parents": [
        "9047b435a0b43952f5d1f7eb15a9b63a36efc7f2"
      ],
      "author": {
        "name": "Jamie Iles",
        "email": "jamie@jamieiles.com",
        "time": "Tue Jan 11 12:43:50 2011 +0000"
      },
      "committer": {
        "name": "Chris Ball",
        "email": "cjb@laptop.org",
        "time": "Tue Jan 25 21:53:51 2011 -0500"
      },
      "message": "mmc: jz4740: don\u0027t treat NULL clk as an error\n\nclk_get() returns a struct clk cookie to the driver and some platforms\nmay return NULL if they only support a single clock.  clk_get() has only\nfailed if it returns a ERR_PTR() encoded pointer.\n\nSigned-off-by: Jamie Iles \u003cjamie@jamieiles.com\u003e\nSigned-off-by: Chris Ball \u003ccjb@laptop.org\u003e\n"
    },
    {
      "commit": "9047b435a0b43952f5d1f7eb15a9b63a36efc7f2",
      "tree": "065f85eb0a24659a3b79059c20e092afaaa3be08",
      "parents": [
        "021cb59ae3869fb18ebc9fceb959f379c5ca835c"
      ],
      "author": {
        "name": "Russell King - ARM Linux",
        "email": "linux@arm.linux.org.uk",
        "time": "Tue Jan 11 16:35:56 2011 +0000"
      },
      "committer": {
        "name": "Chris Ball",
        "email": "cjb@laptop.org",
        "time": "Tue Jan 25 21:53:46 2011 -0500"
      },
      "message": "mmc: mmci: don\u0027t read command response when invalid\n\nDon\u0027t read the command response from the registers when either the\ncommand timed out (because there was no response from the card) or\nthe checksum on the response was invalid.\n\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nSigned-off-by: Chris Ball \u003ccjb@laptop.org\u003e\n"
    },
    {
      "commit": "021cb59ae3869fb18ebc9fceb959f379c5ca835c",
      "tree": "8446c7ce368008edb9113125f43cd05bb1d835c3",
      "parents": [
        "6663050edd9c2e8b1e1f55c09459144d84c045f0"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Mon Jan 10 21:56:08 2011 +0100"
      },
      "committer": {
        "name": "Chris Ball",
        "email": "cjb@laptop.org",
        "time": "Tue Jan 25 21:53:43 2011 -0500"
      },
      "message": "mmc: ushc: Remove duplicate include of usb.h\n\nIncluding usb.h once is enough in drivers/mmc/host/ushc.c\nThis removes the duplicate.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nSigned-off-by: Chris Ball \u003ccjb@laptop.org\u003e\n"
    },
    {
      "commit": "409550f2902470f0387fe40a7db441526e16b2c0",
      "tree": "078db2747bc707fefcecd97925bffc14a11c41ef",
      "parents": [
        "d38acb49b7368ac4e8ec0db0055155be0805db5d"
      ],
      "author": {
        "name": "Ping Cheng",
        "email": "pinglinux@gmail.com",
        "time": "Tue Jan 25 18:03:13 2011 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Jan 25 18:04:05 2011 -0800"
      },
      "message": "Input: wacom - pass touch resolution to clients through input_absinfo\n\nAlso remove fake ABS_RX/ABS_RY \"axes\" that were used to report physical\ndimensions now that we have better way.\n\nSigned-off-by: Ping Cheng \u003cpingc@wacom.com\u003e\nReviewed-by: Henrik Rydberg \u003crydberg@euromail.se\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "ac751efa6a0d70f2c9daef5c7e3a92270f5c2dff",
      "tree": "e2d3f799e20e2cbca80891ea17af7484f21d628f",
      "parents": [
        "3689456b4bd36027022b3215eb2acba51cd0e6b5"
      ],
      "author": {
        "name": "Torben Hohn",
        "email": "torbenh@gmx.de",
        "time": "Tue Jan 25 15:07:35 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 26 10:50:06 2011 +1000"
      },
      "message": "console: rename acquire/release_console_sem() to console_lock/unlock()\n\nThe -rt patches change the console_semaphore to console_mutex.  As a\nresult, a quite large chunk of the patches changes all\nacquire/release_console_sem() to acquire/release_console_mutex()\n\nThis commit makes things use more neutral function names which dont make\nimplications about the underlying lock.\n\nThe only real change is the return value of console_trylock which is\ninverted from try_acquire_console_sem()\n\nThis patch also paves the way to switching console_sem from a semaphore to\na mutex.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: make console_trylock return 1 on success, per Geert]\nSigned-off-by: Torben Hohn \u003ctorbenh@gmx.de\u003e\nCc: Thomas Gleixner \u003ctglx@tglx.de\u003e\nCc: Greg KH \u003cgregkh@suse.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3689456b4bd36027022b3215eb2acba51cd0e6b5",
      "tree": "8233856d31d744feacf6d91b0fb7dbe7fbcf2803",
      "parents": [
        "ac15ee691fe84cb46cbd2497ddcb10e246f7ee47"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@lougher.demon.co.uk",
        "time": "Tue Jan 25 15:07:34 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 26 10:50:05 2011 +1000"
      },
      "message": "squashfs: fix use of uninitialised variable in zlib \u0026 xz decompressors\n\nFix potential use of uninitialised variable caused by recent\ndecompressor code optimisations.\n\nIn zlib_uncompress (zlib_wrapper.c) we have\n\n\tint zlib_err, zlib_init \u003d 0;\n\t...\n\tdo {\n\t\t...\n\t\t\tif (avail \u003d\u003d 0) {\n\t\t\t\toffset \u003d 0;\n\t\t\t\tput_bh(bh[k++]);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t...\n\t\tzlib_err \u003d zlib_inflate(stream, Z_SYNC_FLUSH);\n\t\t...\n\t} while (zlib_err \u003d\u003d Z_OK);\n\nIf continue is executed (avail \u003d\u003d 0) then the while condition will be\nevaluated testing zlib_err, which is uninitialised first time around the\nloop.\n\nFix this by getting rid of the \u0027if (avail \u003d\u003d 0)\u0027 condition test, this\nedge condition should not be being handled in the decompressor code, and\ninstead handle it generically in the caller code.\n\nSimilarly for xz_wrapper.c.\n\nIncidentally, on most architectures (bar Mips and Parisc), no\nuninitialised variable warning is generated by gcc, this is because the\nwhile condition test on continue is optimised out and not performed\n(when executing continue zlib_err has not been changed since entering\nthe loop, and logically if the while condition was true previously, then\nit\u0027s still true).\n\nSigned-off-by: Phillip Lougher \u003cphillip@lougher.demon.co.uk\u003e\nReported-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ac15ee691fe84cb46cbd2497ddcb10e246f7ee47",
      "tree": "6f9b37d61833b6170b71fb6ce8b3f2a14196dc33",
      "parents": [
        "1817dc0370873caff77b924b53ae489edaf9b1e2"
      ],
      "author": {
        "name": "Toshiyuki Okajima",
        "email": "toshi.okajima@jp.fujitsu.com",
        "time": "Tue Jan 25 15:07:32 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 26 10:50:04 2011 +1000"
      },
      "message": "radix_tree: radix_tree_gang_lookup_tag_slot() may never return\n\nExecuted command: fsstress -d /mnt -n 600 -p 850\n\n  crash\u003e bt\n  PID: 7947   TASK: ffff880160546a70  CPU: 0   COMMAND: \"fsstress\"\n   #0 [ffff8800dfc07d00] machine_kexec at ffffffff81030db9\n   #1 [ffff8800dfc07d70] crash_kexec at ffffffff810a7952\n   #2 [ffff8800dfc07e40] oops_end at ffffffff814aa7c8\n   #3 [ffff8800dfc07e70] die_nmi at ffffffff814aa969\n   #4 [ffff8800dfc07ea0] do_nmi_callback at ffffffff8102b07b\n   #5 [ffff8800dfc07f10] do_nmi at ffffffff814aa514\n   #6 [ffff8800dfc07f50] nmi at ffffffff814a9d60\n      [exception RIP: __lookup_tag+100]\n      RIP: ffffffff812274b4  RSP: ffff88016056b998  RFLAGS: 00000287\n      RAX: 0000000000000000  RBX: 0000000000000002  RCX: 0000000000000006\n      RDX: 000000000000001d  RSI: ffff88016056bb18  RDI: ffff8800c85366e0\n      RBP: ffff88016056b9c8   R8: ffff88016056b9e8   R9: 0000000000000000\n      R10: 000000000000000e  R11: ffff8800c8536908  R12: 0000000000000010\n      R13: 0000000000000040  R14: ffffffffffffffc0  R15: ffff8800c85366e0\n      ORIG_RAX: ffffffffffffffff  CS: 0010  SS: 0018\n  \u003cNMI exception stack\u003e\n   #7 [ffff88016056b998] __lookup_tag at ffffffff812274b4\n   #8 [ffff88016056b9d0] radix_tree_gang_lookup_tag_slot at ffffffff81227605\n   #9 [ffff88016056ba20] find_get_pages_tag at ffffffff810fc110\n  #10 [ffff88016056ba80] pagevec_lookup_tag at ffffffff81105e85\n  #11 [ffff88016056baa0] write_cache_pages at ffffffff81104c47\n  #12 [ffff88016056bbd0] generic_writepages at ffffffff81105014\n  #13 [ffff88016056bbe0] do_writepages at ffffffff81105055\n  #14 [ffff88016056bbf0] __filemap_fdatawrite_range at ffffffff810fb2cb\n  #15 [ffff88016056bc40] filemap_write_and_wait_range at ffffffff810fb32a\n  #16 [ffff88016056bc70] generic_file_direct_write at ffffffff810fb3dc\n  #17 [ffff88016056bce0] __generic_file_aio_write at ffffffff810fcee5\n  #18 [ffff88016056bda0] generic_file_aio_write at ffffffff810fd085\n  #19 [ffff88016056bdf0] do_sync_write at ffffffff8114f9ea\n  #20 [ffff88016056bf00] vfs_write at ffffffff8114fcf8\n  #21 [ffff88016056bf30] sys_write at ffffffff81150691\n  #22 [ffff88016056bf80] system_call_fastpath at ffffffff8100c0b2\n\nI think this root cause is the following:\n\n radix_tree_range_tag_if_tagged() always tags the root tag with settag\n if the root tag is set with iftag even if there are no iftag tags\n in the specified range (Of course, there are some iftag tags\n outside the specified range).\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[[[Detailed description]]]\n\n(1) Why cannot radix_tree_gang_lookup_tag_slot() return forever?\n\n__lookup_tag():\n - Return with 0.\n - Return with the index which is not bigger than the old one as the\n   input parameter.\n\nTherefore the following \"while\" repeats forever because the above\nconditions cause \"ret\" not to be updated and the cur_index cannot be\nchanged into the bigger one.\n\n(So, radix_tree_gang_lookup_tag_slot() cannot return forever.)\n\nradix_tree_gang_lookup_tag_slot():\n1178         while (ret \u003c max_items) {\n1179                 unsigned int slots_found;\n1180                 unsigned long next_index;       /* Index of next search */\n1181\n1182                 if (cur_index \u003e max_index)\n1183                         break;\n1184                 slots_found \u003d __lookup_tag(node, results + ret,\n1185                                 cur_index, max_items - ret, \u0026next_index,\ntag);\n1186                 ret +\u003d slots_found;\n\t\t\t// cannot update ret because slots_found \u003d\u003d 0.\n\t\t\t// so, this while loops forever.\n1187                 if (next_index \u003d\u003d 0)\n1188                         break;\n1189                 cur_index \u003d next_index;\n1190         }\n\n(2) Why does __lookup_tag() return with 0 and doesn\u0027t update the index?\n\nAssuming the following:\n  - the one of the slot in radix_tree_node is NULL.\n  - the one of the tag which corresponds to the slot sets with\n    PAGECACHE_TAG_TOWRITE or other.\n  - In a certain height(!\u003d0), the corresponding index is 0.\n\na) __lookup_tag() notices that the tag is set.\n\n1005 static unsigned int\n1006 __lookup_tag(struct radix_tree_node *slot, void ***results, unsigned long index,\n1007         unsigned int max_items, unsigned long *next_index, unsigned int tag)\n1008 {\n1009         unsigned int nr_found \u003d 0;\n1010         unsigned int shift, height;\n1011\n1012         height \u003d slot-\u003eheight;\n1013         if (height \u003d\u003d 0)\n1014                 goto out;\n1015         shift \u003d (height-1) * RADIX_TREE_MAP_SHIFT;\n1016\n1017         while (height \u003e 0) {\n1018                 unsigned long i \u003d (index \u003e\u003e shift) \u0026 RADIX_TREE_MAP_MASK ;\n1019\n1020                 for (;;) {\n1021                         if (tag_get(slot, tag, i))\n1022                                 break;\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n* the index is not updated yet.\n\nb) __lookup_tag() notices that the slot is NULL.\n\n1023                         index \u0026\u003d ~((1UL \u003c\u003c shift) - 1);\n1024                         index +\u003d 1UL \u003c\u003c shift;\n1025                         if (index \u003d\u003d 0)\n1026                                 goto out;       /* 32-bit wraparound */\n1027                         i++;\n1028                         if (i \u003d\u003d RADIX_TREE_MAP_SIZE)\n1029                                 goto out;\n1030                 }\n1031                 height--;\n1032                 if (height \u003d\u003d 0) {      /* Bottom level: grab some items */\n...\n1055                 }\n1056                 shift -\u003d RADIX_TREE_MAP_SHIFT;\n1057                 slot \u003d rcu_dereference_raw(slot-\u003eslots[i]);\n1058                 if (slot \u003d\u003d NULL)\n1059                         break;\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nc) __lookup_tag() doesn\u0027t update the index and return with 0.\n\n1060         }\n1061 out:\n1062         *next_index \u003d index;\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n1063         return nr_found;\n1064 }\n\n(3) Why is the slot NULL even if the tag is set?\n\nBecause radix_tree_range_tag_if_tagged() always sets the root tag with\nPAGECACHE_TAG_TOWRITE if the root tag is set with PAGECACHE_TAG_DIRTY,\neven if there is no tag which can be set with PAGECACHE_TAG_TOWRITE\nin the specified range (from *first_indexp to last_index). Of course,\nsome PAGECACHE_TAG_DIRTY nodes must exist outside the specified range.\n(radix_tree_range_tag_if_tagged() is called only from tag_pages_for_writeback())\n\n 640 unsigned long radix_tree_range_tag_if_tagged(struct radix_tree_root\n*root,\n 641                 unsigned long *first_indexp, unsigned long last_index,\n 642                 unsigned long nr_to_tag,\n 643                 unsigned int iftag, unsigned int settag)\n 644 {\n 645         unsigned int height \u003d root-\u003eheight;\n 646         struct radix_tree_path path[height];\n 647         struct radix_tree_path *pathp \u003d path;\n 648         struct radix_tree_node *slot;\n 649         unsigned int shift;\n 650         unsigned long tagged \u003d 0;\n 651         unsigned long index \u003d *first_indexp;\n 652\n 653         last_index \u003d min(last_index, radix_tree_maxindex(height));\n 654         if (index \u003e last_index)\n 655                 return 0;\n 656         if (!nr_to_tag)\n 657                 return 0;\n 658         if (!root_tag_get(root, iftag)) {\n 659                 *first_indexp \u003d last_index + 1;\n 660                 return 0;\n 661         }\n 662         if (height \u003d\u003d 0) {\n 663                 *first_indexp \u003d last_index + 1;\n 664                 root_tag_set(root, settag);\n 665                 return 1;\n 666         }\n...\n 733         root_tag_set(root, settag);\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n 734         *first_indexp \u003d index;\n 735\n 736         return tagged;\n 737 }\n\nAs the result, there is no radix_tree_node which is set with\nPAGECACHE_TAG_TOWRITE but the root tag(radix_tree_root) is set with\nPAGECACHE_TAG_TOWRITE.\n\n[figure: inside radix_tree]\n(Please see the figure with typewriter font)\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n          [roottag \u003d DIRTY]\n                 |             tag\u003d0:NOTHING\n         tag[0 0 0 1]              1:DIRTY\n            [x x x +]              2:WRITEBACK\n                   |               3:DIRTY,WRITEBACK\n                   p               4:TOWRITE\n             \u003c---\u003e                 5:DIRTY,TOWRITE ...\n     specified range (index: 0 to 2)\n\n* There is no DIRTY tag within the specified range.\n (But there is a DIRTY tag outside that range.)\n\n            | | | | | | | | |\n    after calling tag_pages_for_writeback()\n            | | | | | | | | |\n            v v v v v v v v v\n\n          [roottag \u003d DIRTY,TOWRITE]\n                 |                 p is \"page\".\n         tag[0 0 0 1]              x is NULL.\n            [x x x +]              +- is a pointer to \"page\".\n                   |\n                   p\n\n* But TOWRITE tag is set on the root tag.\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nAfter that, radix_tree_extend() via radix_tree_insert() is called\nwhen the page is added.\nThis function sets the new radix_tree_node with PAGECACHE_TAG_TOWRITE\nto succeed the status of the root tag.\n\n 246 static int radix_tree_extend(struct radix_tree_root *root, unsigned long\nindex)\n 247 {\n 248         struct radix_tree_node *node;\n 249         unsigned int height;\n 250         int tag;\n 251\n 252         /* Figure out what the height should be.  */\n 253         height \u003d root-\u003eheight + 1;\n 254         while (index \u003e radix_tree_maxindex(height))\n 255                 height++;\n 256\n 257         if (root-\u003ernode \u003d\u003d NULL) {\n 258                 root-\u003eheight \u003d height;\n 259                 goto out;\n 260         }\n 261\n 262         do {\n 263                 unsigned int newheight;\n 264                 if (!(node \u003d radix_tree_node_alloc(root)))\n 265                         return -ENOMEM;\n 266\n 267                 /* Increase the height.  */\n 268                 node-\u003eslots[0] \u003d radix_tree_indirect_to_ptr(root-\u003ernode);\n 269\n 270                 /* Propagate the aggregated tag info into the new root */\n 271                 for (tag \u003d 0; tag \u003c RADIX_TREE_MAX_TAGS; tag++) {\n 272                         if (root_tag_get(root, tag))\n 273                                 tag_set(node, tag, 0);\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n 274                 }\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n          [roottag \u003d DIRTY,TOWRITE]\n                 |     :\n         tag[0 0 0 1] [0 0 0 0]\n            [x x x +] [+ x x x]\n                   |   |\n                   p   p (new page)\n\n            | | | | | | | | |\n    after calling radix_tree_insert\n            | | | | | | | | |\n            v v v v v v v v v\n\n          [roottag \u003d DIRTY,TOWRITE]\n                 |\n         tag [5 0 0 0]    *  DIRTY and TOWRITE tags are\n             [+ + x x]       succeeded to the new node.\n              | |\n  tag [0 0 0 1] [0 0 0 0]\n      [x x x +] [+ x x x]\n             |   |\n             p   p\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nAfter that, the index 3 page is released by remove_from_page_cache().\nThen we can make the situation that the tag is set with PAGECACHE_TAG_TOWRITE\nand that the slot which corresponds to the tag is NULL.\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n          [roottag \u003d DIRTY,TOWRITE]\n                 |\n         tag [5 0 0 0]\n             [+ + x x]\n              | |\n  tag [0 0 0 1] [0 0 0 0]\n      [x x x +] [+ x x x]\n             |   |\n             p   p\n         (remove)\n\n            | | | | | | | | |\n    after calling remove_page_cache\n            | | | | | | | | |\n            v v v v v v v v v\n\n          [roottag \u003d DIRTY,TOWRITE]\n                 |\n         tag [4 0 0 0]      * Only DIRTY tag is cleared\n             [x + x x]        because no TOWRITE tag is existed\n                |             in the bottom node.\n                [0 0 0 0]\n                [+ x x x]\n                 |\n                 p\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nTo solve this problem\n\nChange to that radix_tree_tag_if_tagged() doesn\u0027t tag the root tag\nif it doesn\u0027t set any tags within the specified range.\n\nLike this.\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n 640 unsigned long radix_tree_range_tag_if_tagged(struct radix_tree_root\n*root,\n 641                 unsigned long *first_indexp, unsigned long last_index,\n 642                 unsigned long nr_to_tag,\n 643                 unsigned int iftag, unsigned int settag)\n 644 {\n 650         unsigned long tagged \u003d 0;\n...\n 733 \t     if (tagged)\n^^^^^^^^^^^^^^^^^^^^^^^^\n 734            root_tag_set(root, settag);\n 735         *first_indexp \u003d index;\n 736\n 737         return tagged;\n 738 }\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: Toshiyuki Okajima \u003ctoshi.okajima@jp.fujitsu.com\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1817dc0370873caff77b924b53ae489edaf9b1e2",
      "tree": "504f5d5e89c57c8b089cb022d1aa0191b48d9187",
      "parents": [
        "52dbb9050936fd33ceb45f10529dbc992507c058"
      ],
      "author": {
        "name": "Voss, Nikolaus",
        "email": "N.Voss@weinmann.de",
        "time": "Tue Jan 25 15:07:29 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 26 10:50:04 2011 +1000"
      },
      "message": "drivers/clocksource/tcb_clksrc.c: fix init sequence\n\nsetup_irq() was called before clockevents_register_device() which is\nneeded by the irq handler.  Bug was reproducible by restarting the\nkernel using kexec (reliable crash).\n\nSigned-off-by: Nikolaus Voss \u003cn.voss@weinmann.de\u003e\nCc: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "52dbb9050936fd33ceb45f10529dbc992507c058",
      "tree": "1c3663f50b7dec0bd852b02d76095b9a5618d7b7",
      "parents": [
        "3d37c4a9199920964ffdfaec6335d93b9dcf9ca5"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Jan 25 15:07:29 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 26 10:50:04 2011 +1000"
      },
      "message": "memcg: fix race at move_parent around compound_order()\n\nA fix up mem_cgroup_move_parent() which use compound_order() in\nasynchronous manner.  This compound_order() may return unknown value\nbecause we don\u0027t take lock.  Use PageTransHuge() and HPAGE_SIZE instead\nof it.\n\nAlso clean up for mem_cgroup_move_parent().\n - remove unnecessary initialization of local variable.\n - rename charge_size -\u003e page_size\n - remove unnecessary (wrong) comment.\n - added a comment about THP.\n\nNote:\n Current design take compound_page_lock() in caller of move_account().\n This should be revisited when we implement direct move_task of hugepage\n without splitting.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3d37c4a9199920964ffdfaec6335d93b9dcf9ca5",
      "tree": "ee37989687d869817aa870a7fb4c405b7907c030",
      "parents": [
        "01c88e2d6b7330c0cc5867fe2297e7d826e1337d"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Jan 25 15:07:28 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 26 10:50:03 2011 +1000"
      },
      "message": "memcg: bugfix check mem_cgroup_disabled() at split fixup\n\nmem_cgroup_disabled() should be checked at splitting.  If disabled, no\nheavy work is necesary.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "01c88e2d6b7330c0cc5867fe2297e7d826e1337d",
      "tree": "0a905aa1558af7fd401d768ead121e2b11a4a2f4",
      "parents": [
        "28bd65781c848d95ba6a7f58b5c4b8265a804ec6"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Jan 25 15:07:27 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 26 10:50:03 2011 +1000"
      },
      "message": "memcg: fix account leak at failure of memsw acconting\n\nCommit 4b53433468 (\"memcg: clean up try_charge main loop\") removes a\ncancel of charge at case: memory charge-\u003e success.  mem+swap charge-\u003e\nfailure.\n\nThis leaks usage of memory.  Fix it.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: \u003cstable@kernel.org\u003e\t[2.6.36+]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "28bd65781c848d95ba6a7f58b5c4b8265a804ec6",
      "tree": "158a70f9b08644e1c3ca958dc376a853759e3745",
      "parents": [
        "33a938774fdb9933e9c77504b035f4f87c0859df"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Tue Jan 25 15:07:26 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 26 10:50:02 2011 +1000"
      },
      "message": "mm: migration: clarify migrate_pages() comment\n\nCallers of migrate_pages should putback_lru_pages to return pages\nisolated to LRU or free list.  Now comment is rather confusing.  It says\ncaller always have to call it.\n\nIt is more clear to point out that the caller has to call it if\nmigrate_pages\u0027s return value isn\u0027t zero.\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "33a938774fdb9933e9c77504b035f4f87c0859df",
      "tree": "fad15b1b98845672b130c6b5e5fb26dcb2f2aef1",
      "parents": [
        "8dba474f034c322d96ada39cb20cac711d80dcb2"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Tue Jan 25 15:07:25 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 26 10:50:02 2011 +1000"
      },
      "message": "mm: compaction: don\u0027t depend on HUGETLB_PAGE\n\nCommit 5d6892407 (\"thp: select CONFIG_COMPACTION if TRANSPARENT_HUGEPAGE\nenabled\") causes this warning during the configuration process:\n\n  warning: (TRANSPARENT_HUGEPAGE) selects COMPACTION which has unmet\n  direct dependencies (EXPERIMENTAL \u0026\u0026 HUGETLB_PAGE \u0026\u0026 MMU)\n\nCOMPACTION doesn\u0027t depend on HUGETLB_PAGE, it doesn\u0027t depend on THP\neither, it is also useful for regular alloc_pages(order \u003e 0) including\nthe very kernel stack during fork (THREAD_ORDER \u003d 1).  It\u0027s always\nbetter to enable COMPACTION.\n\nThe warning should be an error because we would end up with MIGRATION\nnot selected, and COMPACTION wouldn\u0027t work without migration (despite it\nseems to build with an inline migrate_pages returning -ENOSYS).\n\nI\u0027d also like to remove EXPERIMENTAL: compaction has been in the kernel\nfor some releases (for full safety the default remains disabled which I\nthink is enough).\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nReported-by: Luca Tettamanti \u003ckronos.it@gmail.com\u003e\nTested-by: Luca Tettamanti \u003ckronos.it@gmail.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8dba474f034c322d96ada39cb20cac711d80dcb2",
      "tree": "ef007c5c3088b2ef83be074a7720892b6b8e5e4b",
      "parents": [
        "2ff754fa8f416e82327f2d8f1354a033b66286df"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Tue Jan 25 15:07:24 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 26 10:50:01 2011 +1000"
      },
      "message": "mm/memcontrol.c: fix uninitialized variable use in mem_cgroup_move_parent()\n\nIn mm/memcontrol.c::mem_cgroup_move_parent() there\u0027s a path that jumps\nto the \u0027put_back\u0027 label\n\n  \tret \u003d __mem_cgroup_try_charge(NULL, gfp_mask, \u0026parent, false, charge);\n  \tif (ret || !parent)\n  \t\tgoto put_back;\n\nwhere we\u0027ll\n\n  \tif (charge \u003e PAGE_SIZE)\n  \t\tcompound_unlock_irqrestore(page, flags);\n\nbut, we have not assigned anything to \u0027flags\u0027 at this point, nor have we\ncalled \u0027compound_lock_irqsave()\u0027 (which is what sets \u0027flags\u0027).  The\n\u0027put_back\u0027 label should be moved below the call to\ncompound_unlock_irqrestore() as per this patch.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: \"Kirill A. Shutemov\" \u003ckirill@shutemov.name\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2ff754fa8f416e82327f2d8f1354a033b66286df",
      "tree": "5da792406aa1f2d3d4fea34e9d45f9b2fc984ecc",
      "parents": [
        "f33261d75b88f55a08e6a9648cef73509979bfba"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Jan 25 15:07:23 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 26 10:50:01 2011 +1000"
      },
      "message": "mm: clear pages_scanned only if draining a pcp adds pages to the buddy allocator\n\nCommit 0e093d99763e (\"writeback: do not sleep on the congestion queue if\nthere are no congested BDIs or if significant congestion is not being\nencountered in the current zone\") uncovered a livelock in the page\nallocator that resulted in tasks infinitely looping trying to find\nmemory and kswapd running at 100% cpu.\n\nThe issue occurs because drain_all_pages() is called immediately\nfollowing direct reclaim when no memory is freed and try_to_free_pages()\nreturns non-zero because all zones in the zonelist do not have their\nall_unreclaimable flag set.\n\nWhen draining the per-cpu pagesets back to the buddy allocator for each\nzone, the zone-\u003epages_scanned counter is cleared to avoid erroneously\nsetting zone-\u003eall_unreclaimable later.  The problem is that no pages may\nactually be drained and, thus, the unreclaimable logic never fails\ndirect reclaim so the oom killer may be invoked.\n\nThis apparently only manifested after wait_iff_congested() was\nintroduced and the zone was full of anonymous memory that would not\ncongest the backing store.  The page allocator would infinitely loop if\nthere were no other tasks waiting to be scheduled and clear\nzone-\u003epages_scanned because of drain_all_pages() as the result of this\nchange before kswapd could scan enough pages to trigger the reclaim\nlogic.  Additionally, with every loop of the page allocator and in the\nreclaim path, kswapd would be kicked and would end up running at 100%\ncpu.  In this scenario, current and kswapd are all running continuously\nwith kswapd incrementing zone-\u003epages_scanned and current clearing it.\n\nThe problem is even more pronounced when current swaps some of its\nmemory to swap cache and the reclaimable logic then considers all active\nanonymous memory in the all_unreclaimable logic, which requires a much\nhigher zone-\u003epages_scanned value for try_to_free_pages() to return zero\nthat is never attainable in this scenario.\n\nBefore wait_iff_congested(), the page allocator would incur an\nunconditional timeout and allow kswapd to elevate zone-\u003epages_scanned to\na level that the oom killer would be called the next time it loops.\n\nThe fix is to only attempt to drain pcp pages if there is actually a\nquantity to be drained.  The unconditional clearing of\nzone-\u003epages_scanned in free_pcppages_bulk() need not be changed since\nother callers already ensure that draining will occur.  This patch\nensures that free_pcppages_bulk() will actually free memory before\ncalling into it from drain_all_pages() so zone-\u003epages_scanned is only\ncleared if appropriate.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f33261d75b88f55a08e6a9648cef73509979bfba",
      "tree": "f3d8b4f41c860e9f6d054173870319a75c14c155",
      "parents": [
        "4f542e3dd90a96ee0f8fcb8173cb4104f5f753e6"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Jan 25 15:07:20 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 26 10:50:00 2011 +1000"
      },
      "message": "mm: fix deferred congestion timeout if preferred zone is not allowed\n\nBefore 0e093d99763e (\"writeback: do not sleep on the congestion queue if\nthere are no congested BDIs or if significant congestion is not being\nencountered in the current zone\"), preferred_zone was only used for NUMA\nstatistics, to determine the zoneidx from which to allocate from given\nthe type requested, and whether to utilize memory compaction.\n\nwait_iff_congested(), though, uses preferred_zone to determine if the\ncongestion wait should be deferred because its dirty pages are backed by\na congested bdi.  This incorrectly defers the timeout and busy loops in\nthe page allocator with various cond_resched() calls if preferred_zone\nis not allowed in the current context, usually consuming 100% of a cpu.\n\nThis patch ensures preferred_zone is an allowed zone in the fastpath\ndepending on whether current is constrained by its cpuset or nodes in\nits mempolicy (when the nodemask passed is non-NULL).  This is correct\nsince the fastpath allocation always passes ALLOC_CPUSET when trying to\nallocate memory.  In the slowpath, this patch resets preferred_zone to\nthe first zone of the allowed type when the allocation is not\nconstrained by current\u0027s cpuset, i.e.  it does not pass ALLOC_CPUSET.\n\nThis patch also ensures preferred_zone is from the set of allowed nodes\nwhen called from within direct reclaim since allocations are always\nconstrained by cpusets in this context (it is blockable).\n\nBoth of these uses of cpuset_current_mems_allowed are protected by\nget_mems_allowed().\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4f542e3dd90a96ee0f8fcb8173cb4104f5f753e6",
      "tree": "1127d2abe1aa2a98ccf6d8a336f8dd68a285340e",
      "parents": [
        "a783ac4453405b579ab7732ba3c0efc07a4b7a61"
      ],
      "author": {
        "name": "Alexander Gordeev",
        "email": "lasaine@lvk.cs.msu.su",
        "time": "Tue Jan 25 15:07:19 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 26 10:50:00 2011 +1000"
      },
      "message": "pps: claim parallel port exclusively\n\nBoth pps_parport and pps_gen_parport are written in a way that they\ncan\u0027t share a port with any other driver.  This can result in locking up\nthe process that loads modules or even the whole kernel if the modules\nare compiled in.  Use PARPORT_FLAG_EXCL to indicate this.\n\nSigned-off-by: Alexander Gordeev \u003clasaine@lvk.cs.msu.su\u003e\nCc: Alexander Gordeev \u003clasaine@lvk.cs.msu.su\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a783ac4453405b579ab7732ba3c0efc07a4b7a61",
      "tree": "f75c54140edc755e91da6980ae13a5e96c05a362",
      "parents": [
        "cbeb4b7ad5346516d2ee726395eb5722b25a0a01"
      ],
      "author": {
        "name": "Rodolfo Giometti",
        "email": "giometti@linux.it",
        "time": "Tue Jan 25 15:07:17 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 26 10:49:59 2011 +1000"
      },
      "message": "pps ktimer: remove noisy message\n\nSigned-off-by: Rodolfo Giometti \u003cgiometti@linux.it\u003e\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Alexander Gordeev \u003clasaine@lvk.cs.msu.su\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "cbeb4b7ad5346516d2ee726395eb5722b25a0a01"
}
