)]}'
{
  "log": [
    {
      "commit": "4438a02fc4956f5f61918095708f183f5c63a9d3",
      "tree": "cc37b89534e3679d8e4e9c95935d040758a9de74",
      "parents": [
        "fb4b10ab5fadcf5012983e4306aec3131b808b1b",
        "4cd72c6e72e8a36a975decb53d70086008f386db"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 03 15:43:15 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 03 15:43:15 2011 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (42 commits)\n  MAINTAINERS: Add Andy Gospodarek as co-maintainer.\n  r8169: disable ASPM\n  RxRPC: Fix v1 keys\n  AF_RXRPC: Handle receiving ACKALL packets\n  cnic: Fix lost interrupt on bnx2x\n  cnic: Prevent status block race conditions with hardware\n  net: dcbnl: check correct ops in dcbnl_ieee_set()\n  e1000e: disable broken PHY wakeup for ICH10 LOMs, use MAC wakeup instead\n  igb: fix sparse warning\n  e1000: fix sparse warning\n  netfilter: nf_log: avoid oops in (un)bind with invalid nfproto values\n  dccp: fix oops on Reset after close\n  ipvs: fix dst_lock locking on dest update\n  davinci_emac: Add Carrier Link OK check in Davinci RX Handler\n  bnx2x: update driver version to 1.62.00-6\n  bnx2x: properly calculate lro_mss\n  bnx2x: perform statistics \"action\" before state transition.\n  bnx2x: properly configure coefficients for MinBW algorithm (NPAR mode).\n  bnx2x: Fix ethtool -t link test for MF (non-pmf) devices.\n  bnx2x: Fix nvram test for single port devices.\n  ...\n"
    },
    {
      "commit": "e3fa3aff0cb198e7c53d894f52146121d9592872",
      "tree": "69746e934e9b4cdff8ae686caafb471770755e73",
      "parents": [
        "f5a45325284ec10a907b96052ebf2168e7166b5c"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Mon Feb 28 12:38:25 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Feb 28 12:38:25 2011 -0800"
      },
      "message": "net: fix nla_policy_len to actually _iterate_ over the policy\n\nCurrently nla_policy_len always returns n * NLA_HDRLEN:\nIt loops, but does not advance it\u0027s iterator.\nNLA_UNSPEC \u003d\u003d 0 does not contain a .len in any policy.\n\nTrivially fixed by adding p++.\n\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fba99fa38b023224680308a482e12a0eca87e4e1",
      "tree": "c4dba5806fbe88b626805293cf14e6c2b08ca870",
      "parents": [
        "f8407f26b4c9a36aab74fcdbd6e14ffe4f8d9476"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Fri Feb 25 14:44:16 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 25 15:07:36 2011 -0800"
      },
      "message": "swiotlb: fix wrong panic\n\nswiotlb\u0027s map_page wrongly calls panic() when it can\u0027t find a buffer fit\nfor device\u0027s dma mask.  It should return an error instead.\n\nDevices with an odd dma mask (i.e.  under 4G) like b44 network card hit\nthis bug (the system crashes):\n\n   http://marc.info/?l\u003dlinux-kernel\u0026m\u003d129648943830106\u0026w\u003d2\n\nIf swiotlb returns an error, b44 driver can use the own bouncing\nmechanism.\n\nReported-by: Chuck Ebbert \u003ccebbert@redhat.com\u003e\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nTested-by: Arkadiusz Miskiewicz \u003carekm@maven.pl\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3c18d4de86e4a7f93815c081e50e0543fa27200f",
      "tree": "adea22bccd076266bf94cbda3ed6d9a98eea1206",
      "parents": [
        "2a324ce7b79a3a90cc2d4ade5d5f960a99000caa"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 18 11:32:28 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 18 11:32:28 2011 -0800"
      },
      "message": "Expand CONFIG_DEBUG_LIST to several other list operations\n\nWhen list debugging is enabled, we aim to readably show list corruption\nerrors, and the basic list_add/list_del operations end up having extra\ndebugging code in them to do some basic validation of the list entries.\n\nHowever, \"list_del_init()\" and \"list_move[_tail]()\" ended up avoiding\nthe debug code due to how they were written. This fixes that.\n\nSo the _next_ time we have list_move() problems with stale list entries,\nwe\u0027ll hopefully have an easier time finding them..\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "73020415564a3fe4931f3f70f500a5db13eea946",
      "tree": "9363beed576c0b1fae011f7e8bebeb6a73934e4f",
      "parents": [
        "100b33c8bd8a3235fd0b7948338d6cbb3db3c63d"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "geert@linux-m68k.org",
        "time": "Sat Jan 22 22:35:38 2011 +0100"
      },
      "committer": {
        "name": "Greg Ungerer",
        "email": "gerg@uclinux.org",
        "time": "Tue Feb 08 15:07:44 2011 +1000"
      },
      "message": "m68knommu: Remove dependencies on nonexistent M68KNOMMU\n\nM68KNOMMU is set nowhere.\n\nSigned-off-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Greg Ungerer \u003cgerg@uclinux.org\u003e\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": "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": "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": "de0368d5fec7b9ef95228510f2edb79610beb448",
      "tree": "614abfbcef4a3c5918f1bc146abed735caf719a5",
      "parents": [
        "986e3f6e2b4582d9a7e61de5090042d5af85da44"
      ],
      "author": {
        "name": "Jesper Dangaard Brouer",
        "email": "hawk@comx.dk",
        "time": "Mon Jan 24 02:41:37 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 24 23:33:30 2011 -0800"
      },
      "message": "textsearch: doc - fix spelling in lib/textsearch.c.\n\nFound the following spelling errors while reading the textsearch code:\n  \"facitilies\"  -\u003e \"facilities\"\n  \"continously\" -\u003e \"continuously\"\n  \"arbitary\"    -\u003e \"arbitrary\"\n  \"patern\"      -\u003e \"pattern\"\n  \"occurences\"  -\u003e \"occurrences\"\n\nI\u0027ll try to push this patch through DaveM, given the only users\nof textsearch is in the net/ tree (nf_conntrack_amanda.c, xt_string.c\nand em_text.c)\n\nSigned-off-by: Jesper Sander \u003csander.contrib@gmail.com\u003e\nSigned-off-by: Jesper Dangaard Brouer \u003chawk@comx.dk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6a108a14fa356ef607be308b68337939e56ea94e",
      "tree": "1bf260572bd8f95ed867307a2bcf5d881c8ae4a6",
      "parents": [
        "12fcdba1b7ae8b25696433f420b775aeb556d89b"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Thu Jan 20 14:44:16 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 20 17:02:05 2011 -0800"
      },
      "message": "kconfig: rename CONFIG_EMBEDDED to CONFIG_EXPERT\n\nThe meaning of CONFIG_EMBEDDED has long since been obsoleted; the option\nis used to configure any non-standard kernel with a much larger scope than\nonly small devices.\n\nThis patch renames the option to CONFIG_EXPERT in init/Kconfig and fixes\nreferences to the option throughout the kernel.  A new CONFIG_EMBEDDED\noption is added that automatically selects CONFIG_EXPERT when enabled and\ncan be used in the future to isolate options that should only be\nconsidered for embedded systems (RISC architectures, SLOB, etc).\n\nCalling the option \"EXPERT\" more accurately represents its intention: only\nexpert users who understand the impact of the configuration changes they\nare making should enable it.\n\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: David Woodhouse \u003cdavid.woodhouse@intel.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Greg KH \u003cgregkh@suse.de\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Robin Holt \u003cholt@sgi.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "52cfd503ad7176d23a5dd7af3981744feb60622f",
      "tree": "0a8aeaaf4acbc86ac682f18632b8070c1c6b7ba1",
      "parents": [
        "dc8e7e3ec60bd5ef7868aa88755e9d4c948dc5cc",
        "4263d9a3ae4d15785897d0543bb59316c84ee605"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 20:15:35 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 20:15:35 2011 -0800"
      },
      "message": "Merge branch \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6\n\n* \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (59 commits)\n  ACPI / PM: Fix build problems for !CONFIG_ACPI related to NVS rework\n  ACPI: fix resource check message\n  ACPI / Battery: Update information on info notification and resume\n  ACPI: Drop device flag wake_capable\n  ACPI: Always check if _PRW is present before trying to evaluate it\n  ACPI / PM: Check status of power resources under mutexes\n  ACPI / PM: Rename acpi_power_off_device()\n  ACPI / PM: Drop acpi_power_nocheck\n  ACPI / PM: Drop acpi_bus_get_power()\n  Platform / x86: Make fujitsu_laptop use acpi_bus_update_power()\n  ACPI / Fan: Rework the handling of power resources\n  ACPI / PM: Register power resource devices as soon as they are needed\n  ACPI / PM: Register acpi_power_driver early\n  ACPI / PM: Add function for updating device power state consistently\n  ACPI / PM: Add function for device power state initialization\n  ACPI / PM: Introduce __acpi_bus_get_power()\n  ACPI / PM: Introduce function for refcounting device power resources\n  ACPI / PM: Add functions for manipulating lists of power resources\n  ACPI / PM: Prevent acpi_power_get_inferred_state() from making changes\n  ACPICA: Update version to 20101209\n  ...\n"
    },
    {
      "commit": "008d23e4852d78bb2618f2035f8b2110b6a6b968",
      "tree": "81c88f744f6f3fc84132527c1ddc0b4da410c5e2",
      "parents": [
        "8f685fbda43deccd130d192c9fcef1444649eaca",
        "bfc672dcf323877228682aff79dff8ecd9f30ff8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:05:56 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:05:56 2011 -0800"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (43 commits)\n  Documentation/trace/events.txt: Remove obsolete sched_signal_send.\n  writeback: fix global_dirty_limits comment runtime -\u003e real-time\n  ppc: fix comment typo singal -\u003e signal\n  drivers: fix comment typo diable -\u003e disable.\n  m68k: fix comment typo diable -\u003e disable.\n  wireless: comment typo fix diable -\u003e disable.\n  media: comment typo fix diable -\u003e disable.\n  remove doc for obsolete dynamic-printk kernel-parameter\n  remove extraneous \u0027is\u0027 from Documentation/iostats.txt\n  Fix spelling milisec -\u003e ms in snd_ps3 module parameter description\n  Fix spelling mistakes in comments\n  Revert conflicting V4L changes\n  i7core_edac: fix typos in comments\n  mm/rmap.c: fix comment\n  sound, ca0106: Fix assignment to \u0027channel\u0027.\n  hrtimer: fix a typo in comment\n  init/Kconfig: fix typo\n  anon_inodes: fix wrong function name in comment\n  fix comment typos concerning \"consistent\"\n  poll: fix a typo in comment\n  ...\n\nFix up trivial conflicts in:\n - drivers/net/wireless/iwlwifi/iwl-core.c (moved to iwl-legacy.c)\n - fs/ext4/ext4.h\n\nAlso fix missed \u0027diabled\u0027 typo in drivers/net/bnx2x/bnx2x.h while at it.\n"
    },
    {
      "commit": "1da914e0648ace34e1c3738d9584e8b2cd6fe64a",
      "tree": "d52798bed2086ea7fd9182ff1e9ddae8b09c4740",
      "parents": [
        "303148045aac34b70db722a54e5ad94a3a6625c6"
      ],
      "author": {
        "name": "Lasse Collin",
        "email": "lasse.collin@tukaani.org",
        "time": "Wed Jan 12 17:01:25 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 08:03:25 2011 -0800"
      },
      "message": "decompressors: check input size in decompress_inflate.c\n\nCheck for end of the input buffer when skipping over the filename field in\nthe .gz file header.\n\nSigned-off-by: Lasse Collin \u003classe.collin@tukaani.org\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Alain Knaff \u003calain@knaff.lu\u003e\nCc: Albin Tonnerre \u003calbin.tonnerre@free-electrons.com\u003e\nCc: Phillip Lougher \u003cphillip@lougher.demon.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3ebe12439ba7fc62e1d6ecb569b7287771716ca1",
      "tree": "65945a63ad1474489d80c8ca1fb1c1c8091fb7a2",
      "parents": [
        "24fa0402a9b6a537e87e38341e78b7da86486846"
      ],
      "author": {
        "name": "Lasse Collin",
        "email": "lasse.collin@tukaani.org",
        "time": "Wed Jan 12 17:01:23 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 08:03:25 2011 -0800"
      },
      "message": "decompressors: add boot-time XZ support\n\nThis implements the API defined in \u003clinux/decompress/generic.h\u003e which is\nused for kernel, initramfs, and initrd decompression.  This patch together\nwith the first patch is enough for XZ-compressed initramfs and initrd;\nXZ-compressed kernel will need arch-specific changes.\n\nThe buffering requirements described in decompress_unxz.c are stricter\nthan with gzip, so the relevant changes should be done to the\narch-specific code when adding support for XZ-compressed kernel.\nSimilarly, the heap size in arch-specific pre-boot code may need to be\nincreased (30 KiB is enough).\n\nThe XZ decompressor needs memmove(), memeq() (memcmp() \u003d\u003d 0), and\nmemzero() (memset(ptr, 0, size)), which aren\u0027t available in all\narch-specific pre-boot environments.  I\u0027m including simple versions in\ndecompress_unxz.c, but a cleaner solution would naturally be nicer.\n\nSigned-off-by: Lasse Collin \u003classe.collin@tukaani.org\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Alain Knaff \u003calain@knaff.lu\u003e\nCc: Albin Tonnerre \u003calbin.tonnerre@free-electrons.com\u003e\nCc: Phillip Lougher \u003cphillip@lougher.demon.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "24fa0402a9b6a537e87e38341e78b7da86486846",
      "tree": "06adb32802cf8a3491dff1f4e5cad464c676040a",
      "parents": [
        "fb7fa589fd3ecc212fabd7867a4ecc3b175260c1"
      ],
      "author": {
        "name": "Lasse Collin",
        "email": "lasse.collin@tukaani.org",
        "time": "Wed Jan 12 17:01:22 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 08:03:24 2011 -0800"
      },
      "message": "decompressors: add XZ decompressor module\n\nIn userspace, the .lzma format has become mostly a legacy file format that\ngot superseded by the .xz format.  Similarly, LZMA Utils was superseded by\nXZ Utils.\n\nThese patches add support for XZ decompression into the kernel.  Most of\nthe code is as is from XZ Embedded \u003chttp://tukaani.org/xz/embedded.html\u003e.\nIt was written for the Linux kernel but is usable in other projects too.\n\nAdvantages of XZ over the current LZMA code in the kernel:\n  - Nice API that can be used by other kernel modules; it\u0027s\n    not limited to kernel, initramfs, and initrd decompression.\n  - Integrity check support (CRC32)\n  - BCJ filters improve compression of executable code on\n    certain architectures. These together with LZMA2 can\n    produce a few percent smaller kernel or Squashfs images\n    than plain LZMA without making the decompression slower.\n\nThis patch: Add the main decompression code (xz_dec), testing module\n(xz_dec_test), wrapper script (xz_wrap.sh) for the xz command line tool,\nand documentation.  The xz_dec module is enough to have a usable XZ\ndecompressor e.g.  for Squashfs.\n\nSigned-off-by: Lasse Collin \u003classe.collin@tukaani.org\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Alain Knaff \u003calain@knaff.lu\u003e\nCc: Albin Tonnerre \u003calbin.tonnerre@free-electrons.com\u003e\nCc: Phillip Lougher \u003cphillip@lougher.demon.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fb7fa589fd3ecc212fabd7867a4ecc3b175260c1",
      "tree": "785e193aaaf9537136140084f8cf2f5ea0d1fb9f",
      "parents": [
        "5a3f81a7029daff5f08aad146f4c4510e790da49"
      ],
      "author": {
        "name": "Lasse Collin",
        "email": "lasse.collin@tukaani.org",
        "time": "Wed Jan 12 17:01:21 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 08:03:24 2011 -0800"
      },
      "message": "Decompressors: fix callback-to-callback mode in decompress_unlzo.c\n\nCallback-to-callback decompression mode is used for initrd (not\ninitramfs).  The LZO wrapper is broken for this use case for two reasons:\n\n  - The argument validation is needlessly too strict by\n    requiring that \"posp\" is non-NULL when \"fill\" is non-NULL.\n\n  - The buffer handling code didn\u0027t work at all for this\n    use case.\n\nI tested with LZO-compressed kernel, initramfs, initrd, and corrupt\n(truncated) initramfs and initrd images.\n\nSigned-off-by: Lasse Collin \u003classe.collin@tukaani.org\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Alain Knaff \u003calain@knaff.lu\u003e\nCc: Albin Tonnerre \u003calbin.tonnerre@free-electrons.com\u003e\nCc: Phillip Lougher \u003cphillip@lougher.demon.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5a3f81a7029daff5f08aad146f4c4510e790da49",
      "tree": "08f0dfe372ebb5db518de2e80c4fb1d7c81f70be",
      "parents": [
        "8f9b54a35a70b604ebd2b2f2e7e04eabd0ff8a54"
      ],
      "author": {
        "name": "Lasse Collin",
        "email": "lasse.collin@tukaani.org",
        "time": "Wed Jan 12 17:01:21 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 08:03:24 2011 -0800"
      },
      "message": "Decompressors: check input size in decompress_unlzo.c\n\nThe code assumes that the input is valid and not truncated.  Add checks to\navoid reading past the end of the input buffer.  Change the type of \"skip\"\nfrom u8 to int to fix a possible integer overflow.\n\nSigned-off-by: Lasse Collin \u003classe.collin@tukaani.org\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Alain Knaff \u003calain@knaff.lu\u003e\nCc: Albin Tonnerre \u003calbin.tonnerre@free-electrons.com\u003e\nCc: Phillip Lougher \u003cphillip@lougher.demon.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8f9b54a35a70b604ebd2b2f2e7e04eabd0ff8a54",
      "tree": "c71b832a9c1c571c00dba35b39b5b94d03764c2d",
      "parents": [
        "eb0cf3e19b4940a2d26dcdea03510ae16a580fcd"
      ],
      "author": {
        "name": "Lasse Collin",
        "email": "lasse.collin@tukaani.org",
        "time": "Wed Jan 12 17:01:20 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 08:03:24 2011 -0800"
      },
      "message": "Decompressors: check for write errors in decompress_unlzo.c\n\nThe return value of flush() is not checked in unlzo().  This means that\nthe decompressor won\u0027t stop even if the caller doesn\u0027t want more data.\nThis can happen e.g.  with a corrupt LZO-compressed initramfs image.\n\nSigned-off-by: Lasse Collin \u003classe.collin@tukaani.org\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Alain Knaff \u003calain@knaff.lu\u003e\nCc: Albin Tonnerre \u003calbin.tonnerre@free-electrons.com\u003e\nCc: Phillip Lougher \u003cphillip@lougher.demon.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "eb0cf3e19b4940a2d26dcdea03510ae16a580fcd",
      "tree": "fb7eabafd37cdddee9c082bb29844474699f6a8f",
      "parents": [
        "528941ca05734f24a7568c1c082125f2b635c4eb"
      ],
      "author": {
        "name": "Lasse Collin",
        "email": "lasse.collin@tukaani.org",
        "time": "Wed Jan 12 17:01:19 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 08:03:24 2011 -0800"
      },
      "message": "Decompressors: validate match distance in decompress_unlzma.c\n\nValidate the newly decoded distance (rep0) in process_bit1().  This is to\ndetect corrupt LZMA data quickly.  The old code can run for long time\nproducing garbage until it hits the end of the input.\n\nSigned-off-by: Lasse Collin \u003classe.collin@tukaani.org\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Alain Knaff \u003calain@knaff.lu\u003e\nCc: Albin Tonnerre \u003calbin.tonnerre@free-electrons.com\u003e\nCc: Phillip Lougher \u003cphillip@lougher.demon.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "528941ca05734f24a7568c1c082125f2b635c4eb",
      "tree": "1fb14770f7605c09863175787671217408203c26",
      "parents": [
        "278208d9d631524d04152574f87b9b88919ce663"
      ],
      "author": {
        "name": "Lasse Collin",
        "email": "lasse.collin@tukaani.org",
        "time": "Wed Jan 12 17:01:18 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 08:03:24 2011 -0800"
      },
      "message": "Decompressors: check for write errors in decompress_unlzma.c\n\nThe return value of wr-\u003eflush() is not checked in write_byte().  This\nmeans that the decompressor won\u0027t stop even if the caller doesn\u0027t want\nmore data.  This can happen e.g.  with corrupt LZMA-compressed initramfs.\nReturning the error quickly allows the user to see the error message\nquicker.\n\nThere is a similar missing check for wr.flush() near the end of unlzma().\n\nSigned-off-by: Lasse Collin \u003classe.collin@tukaani.org\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Alain Knaff \u003calain@knaff.lu\u003e\nCc: Albin Tonnerre \u003calbin.tonnerre@free-electrons.com\u003e\nCc: Phillip Lougher \u003cphillip@lougher.demon.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "278208d9d631524d04152574f87b9b88919ce663",
      "tree": "ee50d75ba3589c76b45525a8b0c30eb85d6634a7",
      "parents": [
        "8218a437234309faa5725f82c33c3523788d5f68"
      ],
      "author": {
        "name": "Lasse Collin",
        "email": "lasse.collin@tukaani.org",
        "time": "Wed Jan 12 17:01:17 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 08:03:24 2011 -0800"
      },
      "message": "Decompressors: check for read errors in decompress_unlzma.c\n\nReturn value of rc-\u003efill() is checked in rc_read() and error() is called\nwhen needed, but then the code continues as if nothing had happened.\n\nrc_read() is a void function and it\u0027s on the top of performance critical\ncall stacks, so propagating the error code via return values doesn\u0027t sound\nlike the best fix.  It seems better to check rc-\u003ebuffer_size (which holds\nthe return value of rc-\u003efill()) in the main loop.  It does nothing bad\nthat the code runs a little with unknown data after a failed rc-\u003efill().\n\nThis fixes an infinite loop in initramfs decompression if the\nLZMA-compressed initramfs image is corrupt.\n\nSigned-off-by: Lasse Collin \u003classe.collin@tukaani.org\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Alain Knaff \u003calain@knaff.lu\u003e\nCc: Albin Tonnerre \u003calbin.tonnerre@free-electrons.com\u003e\nCc: Phillip Lougher \u003cphillip@lougher.demon.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8218a437234309faa5725f82c33c3523788d5f68",
      "tree": "9d21b42e47fa5a450df28246c4d26221d6ef6105",
      "parents": [
        "22e4420820bdab66fee8c0b0a8acdd35c1000595"
      ],
      "author": {
        "name": "Lasse Collin",
        "email": "lasse.collin@tukaani.org",
        "time": "Wed Jan 12 17:01:17 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 08:03:24 2011 -0800"
      },
      "message": "Decompressors: fix header validation in decompress_unlzma.c\n\nValidation of header.pos calls error() but doesn\u0027t make the function\nreturn to indicate an error to the caller.  Instead the decoding is\nattempted with invalid header.pos.  This fixes it.\n\nSigned-off-by: Lasse Collin \u003classe.collin@tukaani.org\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Alain Knaff \u003calain@knaff.lu\u003e\nCc: Albin Tonnerre \u003calbin.tonnerre@free-electrons.com\u003e\nCc: Phillip Lougher \u003cphillip@lougher.demon.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "22e4420820bdab66fee8c0b0a8acdd35c1000595",
      "tree": "470e487a7d828fb0dd27e92dced1628840d8f14a",
      "parents": [
        "2b6b5caa6d05579bd1501006e34feec1b2aef8c4"
      ],
      "author": {
        "name": "Lasse Collin",
        "email": "lasse.collin@tukaani.org",
        "time": "Wed Jan 12 17:01:16 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 08:03:23 2011 -0800"
      },
      "message": "Decompressors: remove unused function from lib/decompress_unlzma.c\n\nSigned-off-by: Lasse Collin \u003classe.collin@tukaani.org\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Alain Knaff \u003calain@knaff.lu\u003e\nCc: Albin Tonnerre \u003calbin.tonnerre@free-electrons.com\u003e\nCc: Phillip Lougher \u003cphillip@lougher.demon.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2b6b5caa6d05579bd1501006e34feec1b2aef8c4",
      "tree": "9345fc087fab818c36bf348a563ba1f83c350bda",
      "parents": [
        "93685ad247ef65b7d6f90ffe97b44f5cfeaf40d3"
      ],
      "author": {
        "name": "Lasse Collin",
        "email": "lasse.collin@tukaani.org",
        "time": "Wed Jan 12 17:01:15 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 08:03:23 2011 -0800"
      },
      "message": "Decompressors: include \u003clinux/slab.h\u003e in \u003clinux/decompress/mm.h\u003e\n\nCurrently users of mm.h need to include \u003clinux/slab.h\u003e to use the macros\nmalloc() and free() provided by mm.h.  This fixes it.\n\nSigned-off-by: Lasse Collin \u003classe.collin@tukaani.org\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Alain Knaff \u003calain@knaff.lu\u003e\nCc: Albin Tonnerre \u003calbin.tonnerre@free-electrons.com\u003e\nCc: Phillip Lougher \u003cphillip@lougher.demon.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "93685ad247ef65b7d6f90ffe97b44f5cfeaf40d3",
      "tree": "979868b5a03a7e73c792e222646a1876b3dc0216",
      "parents": [
        "6b01ed64c19b52121a717274d271d9915f8d3e94"
      ],
      "author": {
        "name": "Lasse Collin",
        "email": "lasse.collin@tukaani.org",
        "time": "Wed Jan 12 17:01:14 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 08:03:23 2011 -0800"
      },
      "message": "Decompressors: get rid of set_error_fn() macro\n\nset_error_fn() has become a useless complication after c1e7c3ae59\n(\"bzip2/lzma/gzip: pre-boot malloc doesn\u0027t return NULL on failure\") fixed\nthe use of error() in malloc().  Only decompress_unlzma.c had some use for\nit and that was easy to change too.\n\nThis also gets rid of the static function pointer \"error\", which\nshould have been marked as __initdata.\n\nSigned-off-by: Lasse Collin \u003classe.collin@tukaani.org\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Alain Knaff \u003calain@knaff.lu\u003e\nCc: Albin Tonnerre \u003calbin.tonnerre@free-electrons.com\u003e\nCc: Phillip Lougher \u003cphillip@lougher.demon.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6b01ed64c19b52121a717274d271d9915f8d3e94",
      "tree": "b95d764b193d8ae6b9d99053aa7f905be3b7d281",
      "parents": [
        "8d0a1decb4a07bcb8ef5c4d7f693eafdebc2c41b"
      ],
      "author": {
        "name": "Lasse Collin",
        "email": "lasse.collin@tukaani.org",
        "time": "Wed Jan 12 17:01:13 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 08:03:23 2011 -0800"
      },
      "message": "Decompressors: add missing INIT (i.e. __init)\n\nSigned-off-by: Lasse Collin \u003classe.collin@tukaani.org\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Alain Knaff \u003calain@knaff.lu\u003e\nCc: Albin Tonnerre \u003calbin.tonnerre@free-electrons.com\u003e\nCc: Phillip Lougher \u003cphillip@lougher.demon.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "78c377d1b5e7ef15c8c307c2aa2511602a0829c3",
      "tree": "306f17444a4c5e190ff3b3513204910a386998e8",
      "parents": [
        "734825796446930c57f69677f2e6cf1683d012f2"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Wed Jan 12 16:59:55 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 08:03:11 2011 -0800"
      },
      "message": "flex_array: export symbols to modules\n\nAlex said:\n\n  I want to use flex_array to store a sparse array of ATM cell\n  re-assembly buffers for my ATM over Ethernet driver.  Using the per-vcc\n  user_back structure causes problems when stacked with things like\n  br2684.\n\nAdd EXPORT_SYMBOL() for all publically accessible flex array functions\nand move to obj-y so that modules may use this library.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nReported-by: Alex Bennee \u003ckernel-hacker@bennee.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b921c69fb262988ff7856493a8453661a1bac814",
      "tree": "87496b306fb609adcbf65b2fe5151a49e0957ca6",
      "parents": [
        "a3f938bf6f5746d39e013d03ba13118a393fee96"
      ],
      "author": {
        "name": "Anton Arapov",
        "email": "aarapov@redhat.com",
        "time": "Wed Jan 12 16:59:49 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 08:03:10 2011 -0800"
      },
      "message": "lib/vsprintf.c: fix vscnprintf() if @size is \u003d\u003d 0\n\nvscnprintf() should return 0 if @size is \u003d\u003d 0.  Update the comment for it,\nas @size is unsigned.\n\nThis change based on the code of commit\nb903c0b8899b46829a9b80ba55b61079b35940ec (\"lib: fix scnprintf() if @size\nis \u003d\u003d 0\") moves the real fix into vscnprinf() from scnprintf() and makes\nscnprintf() call vscnprintf(), thus avoid code duplication.\n\nSigned-off-by: Anton Arapov \u003caarapov@redhat.com\u003e\nAcked-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ac83ed687837a44c6e46fb16411fb0d299fffd80",
      "tree": "04abc4db3153056b2c478209bfb8a4c7701d6a5b",
      "parents": [
        "16cb839f13324978bd58082e69de81a711802b11"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Wed Jan 12 16:59:47 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 08:03:10 2011 -0800"
      },
      "message": "include/linux/printk.h lib/hexdump.c: neatening and add CONFIG_PRINTK guard\n\n- Move prototypes and align arguments.\n\n- Add CONFIG_PRINTK guard for print_hex functions\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\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": "455cd5ab305c90ffc422dd2e0fb634730942b257",
      "tree": "c20e6c3f8e58967991ce9002abe03d31897b171c",
      "parents": [
        "351f8f8e6499ae4fff40f5e3a8fe16d9e1903646"
      ],
      "author": {
        "name": "Dan Rosenberg",
        "email": "drosenberg@vsecurity.com",
        "time": "Wed Jan 12 16:59:41 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 08:03:08 2011 -0800"
      },
      "message": "kptr_restrict for hiding kernel pointers from unprivileged users\n\nAdd the %pK printk format specifier and the /proc/sys/kernel/kptr_restrict\nsysctl.\n\nThe %pK format specifier is designed to hide exposed kernel pointers,\nspecifically via /proc interfaces.  Exposing these pointers provides an\neasy target for kernel write vulnerabilities, since they reveal the\nlocations of writable structures containing easily triggerable function\npointers.  The behavior of %pK depends on the kptr_restrict sysctl.\n\nIf kptr_restrict is set to 0, no deviation from the standard %p behavior\noccurs.  If kptr_restrict is set to 1, the default, if the current user\n(intended to be a reader via seq_printf(), etc.) does not have CAP_SYSLOG\n(currently in the LSM tree), kernel pointers using %pK are printed as 0\u0027s.\n If kptr_restrict is set to 2, kernel pointers using %pK are printed as\n0\u0027s regardless of privileges.  Replacing with 0\u0027s was chosen over the\ndefault \"(null)\", which cannot be parsed by userland %p, which expects\n\"(nil)\".\n\n[akpm@linux-foundation.org: check for IRQ context when !kptr_restrict, save an indent level, s/WARN/WARN_ONCE/]\n[akpm@linux-foundation.org: coding-style fixup]\n[randy.dunlap@oracle.com: fix kernel/sysctl.c warning]\nSigned-off-by: Dan Rosenberg \u003cdrosenberg@vsecurity.com\u003e\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Thomas Graf \u003ctgraf@infradead.org\u003e\nCc: Eugene Teo \u003ceugeneteo@kernel.org\u003e\nCc: Kees Cook \u003ckees.cook@canonical.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Eric Paris \u003ceparis@parisplace.org\u003e\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "81e88fdc432a1552401d6e91a984dcccce72b8dc",
      "tree": "41ef511cda7ddf6b96f8d923ffceff74651a5790",
      "parents": [
        "32c361f574f85fa47600d84900598e2efc99082e"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Wed Jan 12 14:44:55 2011 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Jan 12 03:06:19 2011 -0500"
      },
      "message": "ACPI, APEI, Generic Hardware Error Source POLL/IRQ/NMI notification type support\n\nGeneric Hardware Error Source provides a way to report platform\nhardware errors (such as that from chipset). It works in so called\n\"Firmware First\" mode, that is, hardware errors are reported to\nfirmware firstly, then reported to Linux by firmware. This way, some\nnon-standard hardware error registers or non-standard hardware link\ncan be checked by firmware to produce more valuable hardware error\ninformation for Linux.\n\nThis patch adds POLL/IRQ/NMI notification types support.\n\nBecause the memory area used to transfer hardware error information\nfrom BIOS to Linux can be determined only in NMI, IRQ or timer\nhandler, but general ioremap can not be used in atomic context, so a\nspecial version of atomic ioremap is implemented for that.\n\nKnown issue:\n\n- Error information can not be printed for recoverable errors notified\n  via NMI, because printk is not NMI-safe. Will fix this via delay\n  printing to IRQ context via irq_work or make printk NMI-safe.\n\nv2:\n\n- adjust printk format per comments.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nReviewed-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "42776163e13a56ea3096edff7a5df95408e80eb4",
      "tree": "92f17bb5dadc7261b2d9238244cd8d4cb6c1bfd7",
      "parents": [
        "edb2877f4a62647e36e20839a786f94d688a06ed",
        "3d03e2ea74103a50c23d6ab1906cf73399c0dafb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 11 11:02:13 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 11 11:02:13 2011 -0800"
      },
      "message": "Merge branch \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (28 commits)\n  perf session: Fix infinite loop in __perf_session__process_events\n  perf evsel: Support perf_evsel__open(cpus \u003e 1 \u0026\u0026 threads \u003e 1)\n  perf sched: Use PTHREAD_STACK_MIN to avoid pthread_attr_setstacksize() fail\n  perf tools: Emit clearer message for sys_perf_event_open ENOENT return\n  perf stat: better error message for unsupported events\n  perf sched: Fix allocation result check\n  perf, x86: P4 PMU - Fix unflagged overflows handling\n  dynamic debug: Fix build issue with older gcc\n  tracing: Fix TRACE_EVENT power tracepoint creation\n  tracing: Fix preempt count leak\n  tracepoint: Add __rcu annotation\n  tracing: remove duplicate null-pointer check in skb tracepoint\n  tracing/trivial: Add missing comma in TRACE_EVENT comment\n  tracing: Include module.h in define_trace.h\n  x86: Save rbp in pt_regs on irq entry\n  x86, dumpstack: Fix unused variable warning\n  x86, NMI: Clean-up default_do_nmi()\n  x86, NMI: Allow NMI reason io port (0x61) to be processed on any CPU\n  x86, NMI: Remove DIE_NMI_IPI\n  x86, NMI: Add priorities to handlers\n  ...\n"
    },
    {
      "commit": "5b2eef966cb2ae307aa4ef1767f7307774bc96ca",
      "tree": "095a251e145903598dd8d90d5b2eb880f0d6ff93",
      "parents": [
        "8adbf8d46718a8f110de55ec82c40d04d0c362cc",
        "56bec7c009872ef33fe452ea75fecba481351b44"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 17:11:39 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 17:11:39 2011 -0800"
      },
      "message": "Merge branch \u0027drm-core-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6\n\n* \u0027drm-core-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (390 commits)\n  drm/radeon/kms: disable underscan by default\n  drm/radeon/kms: only enable hdmi features if the monitor supports audio\n  drm: Restore the old_fb upon modeset failure\n  drm/nouveau: fix hwmon device binding\n  radeon: consolidate asic-specific function decls for pre-r600\n  vga_switcheroo: comparing too few characters in strncmp()\n  drm/radeon/kms: add NI pci ids\n  drm/radeon/kms: don\u0027t enable pcie gen2 on NI yet\n  drm/radeon/kms: add radeon_asic struct for NI asics\n  drm/radeon/kms/ni: load default sclk/mclk/vddc at pm init\n  drm/radeon/kms: add ucode loader for NI\n  drm/radeon/kms: add support for DCE5 display LUTs\n  drm/radeon/kms: add ni_reg.h\n  drm/radeon/kms: add bo blit support for NI\n  drm/radeon/kms: always use writeback/events for fences on NI\n  drm/radeon/kms: adjust default clock/vddc tracking for pm on DCE5\n  drm/radeon/kms: add backend map workaround for barts\n  drm/radeon/kms: fill gpu init for NI asics\n  drm/radeon/kms: add disabled vbios accessor for NI asics\n  drm/radeon/kms: handle NI thermal controller\n  ...\n"
    },
    {
      "commit": "d2e7ad19229f982fc1eb731827d82ceac90abfb3",
      "tree": "98a3741b4d4b27a48b3c7ea9babe331e539416a8",
      "parents": [
        "d03a5d888fb688c832d470b749acc5ed38e0bc1d",
        "0c21e3aaf6ae85bee804a325aa29c325209180fd"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Jan 10 09:46:24 2011 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Jan 10 09:46:24 2011 +1100"
      },
      "message": "Merge branch \u0027master\u0027 into next\n\nConflicts:\n\tsecurity/smack/smack_lsm.c\n\nVerified and added fix by Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nOk\u0027d by Casey Schaufler \u003ccasey@schaufler-ca.com\u003e\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "2d75af2f2a7a6103a6d539a492fe81deacabde44",
      "tree": "283f6f7acc28936e25656502e77e10909fde7d6f",
      "parents": [
        "870915e047a2da695be118d32dd5a900f0c3e933"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Fri Jan 07 13:36:58 2011 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Jan 07 23:36:59 2011 -0500"
      },
      "message": "dynamic debug: Fix build issue with older gcc\n\nOn older gcc (3.3) dynamic debug fails to compile:\n\ninclude/net/inet_connection_sock.h: In function `inet_csk_reset_xmit_timer\u0027:\ninclude/net/inet_connection_sock.h:236: error: duplicate label declaration `do_printk\u0027\ninclude/net/inet_connection_sock.h:219: error: this is a previous declaration\ninclude/net/inet_connection_sock.h:236: error: duplicate label declaration `out\u0027\ninclude/net/inet_connection_sock.h:219: error: this is a previous declaration\ninclude/net/inet_connection_sock.h:236: error: duplicate label `do_printk\u0027\ninclude/net/inet_connection_sock.h:236: error: duplicate label `out\u0027\n\nFix, by reverting the usage of JUMP_LABEL() in dynamic debug for now.\n\nCc: \u003cstable@kernel.org\u003e\nReported-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nTested-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "72eb6a791459c87a0340318840bb3bd9252b627b",
      "tree": "3bfb8ad99f9c7e511f37f72d57b56a2cea06d753",
      "parents": [
        "23d69b09b78c4876e134f104a3814c30747c53f1",
        "55ee4ef30241a62b700f79517e6d5ef2ddbefa67"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 17:02:58 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 17:02:58 2011 -0800"
      },
      "message": "Merge branch \u0027for-2.6.38\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu\n\n* \u0027for-2.6.38\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu: (30 commits)\n  gameport: use this_cpu_read instead of lookup\n  x86: udelay: Use this_cpu_read to avoid address calculation\n  x86: Use this_cpu_inc_return for nmi counter\n  x86: Replace uses of current_cpu_data with this_cpu ops\n  x86: Use this_cpu_ops to optimize code\n  vmstat: User per cpu atomics to avoid interrupt disable / enable\n  irq_work: Use per cpu atomics instead of regular atomics\n  cpuops: Use cmpxchg for xchg to avoid lock semantics\n  x86: this_cpu_cmpxchg and this_cpu_xchg operations\n  percpu: Generic this_cpu_cmpxchg() and this_cpu_xchg support\n  percpu,x86: relocate this_cpu_add_return() and friends\n  connector: Use this_cpu operations\n  xen: Use this_cpu_inc_return\n  taskstats: Use this_cpu_ops\n  random: Use this_cpu_inc_return\n  fs: Use this_cpu_inc_return in buffer.c\n  highmem: Use this_cpu_xx_return() operations\n  vmstat: Use this_cpu_inc_return for vm statistics\n  x86: Support for this_cpu_add, sub, dec, inc_return\n  percpu: Generic support for this_cpu_add, sub, dec, inc_return\n  ...\n\nFixed up conflicts: in arch/x86/kernel/{apic/nmi.c, apic/x2apic_uv_x.c, process.c}\nas per Tejun.\n"
    },
    {
      "commit": "abb359450f20c32ae03039d8736f12b1d561caf5",
      "tree": "6e8723885feb66a138f19f0ff31615dc13a8d859",
      "parents": [
        "cb600d2f83c854ec3d6660063e4466431999489b",
        "4e3dbdb1392a83bd21a6ff8f6bc785495058d37c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 12:30:19 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 12:30:19 2011 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1436 commits)\n  cassini: Use local-mac-address prom property for Cassini MAC address\n  net: remove the duplicate #ifdef __KERNEL__\n  net: bridge: check the length of skb after nf_bridge_maybe_copy_header()\n  netconsole: clarify stopping message\n  netconsole: don\u0027t announce stopping if nothing happened\n  cnic: Fix the type field in SPQ messages\n  netfilter: fix export secctx error handling\n  netfilter: fix the race when initializing nf_ct_expect_hash_rnd\n  ipv4: IP defragmentation must be ECN aware\n  net: r6040: Return proper error for r6040_init_one\n  dcb: use after free in dcb_flushapp()\n  dcb: unlock on error in dcbnl_ieee_get()\n  net: ixp4xx_eth: Return proper error for eth_init_one\n  include/linux/if_ether.h: Add #define ETH_P_LINK_CTL for HPNA and wlan local tunnel\n  net: add POLLPRI to sock_def_readable()\n  af_unix: Avoid socket-\u003esk NULL OOPS in stream connect security hooks.\n  net_sched: pfifo_head_drop problem\n  mac80211: remove stray extern\n  mac80211: implement off-channel TX using hw r-o-c offload\n  mac80211: implement hardware offload for remain-on-channel\n  ...\n"
    },
    {
      "commit": "dda5f0a372873bca5f0b1d1866d7784dffd8b675",
      "tree": "1f745951b51ef9dcd127ca3c65ecb1d2ce4967c2",
      "parents": [
        "65b2074f84be2287e020839e93b4cdaaf60eb37c",
        "88606e80da0e8d862a42ee19e5bb60b01b940ea7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 10:42:43 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 10:42:43 2011 -0800"
      },
      "message": "Merge branch \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  MAINTAINERS: Update timer related entries\n  timers: Use this_cpu_read\n  timerqueue: Make timerqueue_getnext() static inline\n  hrtimer: fix timerqueue conversion flub\n  hrtimers: Convert hrtimers to use timerlist infrastructure\n  timers: Fixup allmodconfig build issue\n  timers: Rename timerlist infrastructure to timerqueue\n  timers: Introduce timerlist infrastructure.\n  hrtimer: Remove stale comment on curr_timer\n  timer: Warn when del_timer_sync() is called in hardirq context\n  timer: Del_timer_sync() can be used in softirq context\n  timer: Make try_to_del_timer_sync() the same on SMP and UP\n  posix-timers: Annotate lock_timer()\n  timer: Permit statically-declared work with deferrable timers\n  time: Use ARRAY_SIZE macro in timecompare.c\n  timer: Initialize the field slack of timer_list\n  timer_list: Remove alignment padding on 64 bit when CONFIG_TIMER_STATS\n  time: Compensate for rounding on odd-frequency clocksources\n\nFix up trivial conflict in MAINTAINERS\n"
    },
    {
      "commit": "17f7f4d9fcce8f1b75b5f735569309dee7665968",
      "tree": "14d7e49ca0053a0fcab3c33b5023bf3f90c5c08a",
      "parents": [
        "041110a439e21cd40709ead4ffbfa8034619ad77",
        "d7c1255a3a21e98bdc64df8ccf005a174d7e6289"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 26 22:37:05 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 26 22:37:05 2010 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tnet/ipv4/fib_frontend.c\n"
    },
    {
      "commit": "4a7863cc2eb5f9804f1c4e9156619a801cd7f14f",
      "tree": "5bcc9f40715aa7c210f8f708a3138dccc84e1ed6",
      "parents": [
        "9fb67204d7a00a6444bc121f221527034613d338"
      ],
      "author": {
        "name": "Don Zickus",
        "email": "dzickus@redhat.com",
        "time": "Wed Dec 22 14:00:03 2010 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 22 22:15:32 2010 +0100"
      },
      "message": "x86, nmi_watchdog: Remove ARCH_HAS_NMI_WATCHDOG and rely on CONFIG_HARDLOCKUP_DETECTOR\n\nThe x86 arch has shifted its use of the nmi_watchdog from a\nlocal implementation to the global one provide by\nkernel/watchdog.c.  This shift has caused a whole bunch of\ncompile problems under different config options.  I attempt to\nsimplify things with the patch below.\n\nIn order to simplify things, I had to come to terms with the\nmeaning of two terms ARCH_HAS_NMI_WATCHDOG and\nCONFIG_HARDLOCKUP_DETECTOR.  Basically they mean the same thing,\nthe former on a local level and the latter on a global level.\n\nWith the old x86 nmi watchdog gone, there is no need to rely on\ndefining the ARCH_HAS_NMI_WATCHDOG variable because it doesn\u0027t\nmake sense any more.  x86 will now use the global\nimplementation.\n\nThe changes below do a few things.  First it changes the few\nplaces that relied on ARCH_HAS_NMI_WATCHDOG to use\nCONFIG_X86_LOCAL_APIC (the former was an alias for the latter\nanyway, so nothing unusual here).  Those pieces of code were\nrelying more on local apic functionality the nmi watchdog\nfunctionality, so the change should make sense.\n\nSecond, I removed the x86 implementation of\ntouch_nmi_watchdog().  It isn\u0027t need now, instead x86 will rely\non kernel/watchdog.c\u0027s implementation.\n\nThird, I removed the #define ARCH_HAS_NMI_WATCHDOG itself from\nx86.  And tweaked the include/linux/nmi.h file to tell users to\nlook for an externally defined touch_nmi_watchdog in the case of\nARCH_HAS_NMI_WATCHDOG _or_ CONFIG_HARDLOCKUP_DETECTOR. This\nchanges removes some of the ugliness in that file.\n\nFinally, I added a Kconfig dependency for\nCONFIG_HARDLOCKUP_DETECTOR that said you can\u0027t have\nARCH_HAS_NMI_WATCHDOG _and_ CONFIG_HARDLOCKUP_DETECTOR.  You can\nonly have one nmi_watchdog.\n\nTested with\nARCH\u003di386: allnoconfig, defconfig, allyesconfig, (various broken\nconfigs) ARCH\u003dx86_64: allnoconfig, defconfig, allyesconfig,\n(various broken configs)\n\nHopefully, after this patch I won\u0027t get any more compile broken\nemails. :-)\n\nv3:\n  changed a couple of \u0027linux/nmi.h\u0027 -\u003e \u0027asm/nmi.h\u0027 to pick-up correct function\n  prototypes when CONFIG_HARDLOCKUP_DETECTOR is not set.\n\nSigned-off-by: Don Zickus \u003cdzickus@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: fweisbec@gmail.com\nLKML-Reference: \u003c1293044403-14117-1-git-send-email-dzickus@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4b7bd364700d9ac8372eff48832062b936d0793b",
      "tree": "0dbf78c95456a0b02d07fcd473281f04a87e266d",
      "parents": [
        "c0d8768af260e2cbb4bf659ae6094a262c86b085",
        "90a8a73c06cc32b609a880d48449d7083327e11a"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Dec 22 18:57:02 2010 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Dec 22 18:57:02 2010 +0100"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\n\nConflicts:\n\tMAINTAINERS\n\tarch/arm/mach-omap2/pm24xx.c\n\tdrivers/scsi/bfa/bfa_fcpim.c\n\nNeeded to update to apply fixes for which the old branch was too\noutdated.\n"
    },
    {
      "commit": "819a72af8d6653daa48334f24ce0a935ccdd33c7",
      "tree": "d834c9c7c66821d08ec965aab04d0c9ded263085",
      "parents": [
        "e72df0b847adf064e64bcbd5141f0031524e723e"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux.com",
        "time": "Mon Dec 06 11:16:19 2010 -0600"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Dec 17 15:07:18 2010 +0100"
      },
      "message": "percpucounter: Optimize __percpu_counter_add a bit through the use of this_cpu() options.\n\nThe this_cpu_* options can be used to optimize __percpu_counter_add a bit. Avoids\nsome address arithmetic and saves 12 bytes.\n\nBefore:\n\n\n00000000000001d3 \u003c__percpu_counter_add\u003e:\n 1d3:\t55                   \tpush   %rbp\n 1d4:\t48 89 e5             \tmov    %rsp,%rbp\n 1d7:\t41 55                \tpush   %r13\n 1d9:\t41 54                \tpush   %r12\n 1db:\t53                   \tpush   %rbx\n 1dc:\t48 89 fb             \tmov    %rdi,%rbx\n 1df:\t48 83 ec 08          \tsub    $0x8,%rsp\n 1e3:\t4c 8b 67 30          \tmov    0x30(%rdi),%r12\n 1e7:\t65 4c 03 24 25 00 00 \tadd    %gs:0x0,%r12\n 1ee:\t00 00\n 1f0:\t4d 63 2c 24          \tmovslq (%r12),%r13\n 1f4:\t48 63 c2             \tmovslq %edx,%rax\n 1f7:\t49 01 f5             \tadd    %rsi,%r13\n 1fa:\t49 39 c5             \tcmp    %rax,%r13\n 1fd:\t7d 0a                \tjge    209 \u003c__percpu_counter_add+0x36\u003e\n 1ff:\tf7 da                \tneg    %edx\n 201:\t48 63 d2             \tmovslq %edx,%rdx\n 204:\t49 39 d5             \tcmp    %rdx,%r13\n 207:\t7f 1e                \tjg     227 \u003c__percpu_counter_add+0x54\u003e\n 209:\t48 89 df             \tmov    %rbx,%rdi\n 20c:\te8 00 00 00 00       \tcallq  211 \u003c__percpu_counter_add+0x3e\u003e\n 211:\t4c 01 6b 18          \tadd    %r13,0x18(%rbx)\n 215:\t48 89 df             \tmov    %rbx,%rdi\n 218:\t41 c7 04 24 00 00 00 \tmovl   $0x0,(%r12)\n 21f:\t00\n 220:\te8 00 00 00 00       \tcallq  225 \u003c__percpu_counter_add+0x52\u003e\n 225:\teb 04                \tjmp    22b \u003c__percpu_counter_add+0x58\u003e\n 227:\t45 89 2c 24          \tmov    %r13d,(%r12)\n 22b:\t5b                   \tpop    %rbx\n 22c:\t5b                   \tpop    %rbx\n 22d:\t41 5c                \tpop    %r12\n 22f:\t41 5d                \tpop    %r13\n 231:\tc9                   \tleaveq\n 232:\tc3                   \tretq\n\n\nAfter:\n\n00000000000001d3 \u003c__percpu_counter_add\u003e:\n 1d3:\t55                   \tpush   %rbp\n 1d4:\t48 63 ca             \tmovslq %edx,%rcx\n 1d7:\t48 89 e5             \tmov    %rsp,%rbp\n 1da:\t41 54                \tpush   %r12\n 1dc:\t53                   \tpush   %rbx\n 1dd:\t48 89 fb             \tmov    %rdi,%rbx\n 1e0:\t48 8b 47 30          \tmov    0x30(%rdi),%rax\n 1e4:\t65 44 8b 20          \tmov    %gs:(%rax),%r12d\n 1e8:\t4d 63 e4             \tmovslq %r12d,%r12\n 1eb:\t49 01 f4             \tadd    %rsi,%r12\n 1ee:\t49 39 cc             \tcmp    %rcx,%r12\n 1f1:\t7d 0a                \tjge    1fd \u003c__percpu_counter_add+0x2a\u003e\n 1f3:\tf7 da                \tneg    %edx\n 1f5:\t48 63 d2             \tmovslq %edx,%rdx\n 1f8:\t49 39 d4             \tcmp    %rdx,%r12\n 1fb:\t7f 21                \tjg     21e \u003c__percpu_counter_add+0x4b\u003e\n 1fd:\t48 89 df             \tmov    %rbx,%rdi\n 200:\te8 00 00 00 00       \tcallq  205 \u003c__percpu_counter_add+0x32\u003e\n 205:\t4c 01 63 18          \tadd    %r12,0x18(%rbx)\n 209:\t48 8b 43 30          \tmov    0x30(%rbx),%rax\n 20d:\t48 89 df             \tmov    %rbx,%rdi\n 210:\t65 c7 00 00 00 00 00 \tmovl   $0x0,%gs:(%rax)\n 217:\te8 00 00 00 00       \tcallq  21c \u003c__percpu_counter_add+0x49\u003e\n 21c:\teb 04                \tjmp    222 \u003c__percpu_counter_add+0x4f\u003e\n 21e:\t65 44 89 20          \tmov    %r12d,%gs:(%rax)\n 222:\t5b                   \tpop    %rbx\n 223:\t41 5c                \tpop    %r12\n 225:\tc9                   \tleaveq\n 226:\tc3                   \tretq\n\nReviewed-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nReviewed-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nAcked-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "d8c58fabd75021cdd99abcd96513cb088d41092b",
      "tree": "f6554ecfb27c0d50f5ae6acae3a7077282813cab",
      "parents": [
        "9c04f015ebc2cc2cca5a4a576deb82a311578edc",
        "b08ebe7e776e5be0271ed1e1bbb384e1f29dd117"
      ],
      "author": {
        "name": "Chris Wilson",
        "email": "chris@chris-wilson.co.uk",
        "time": "Thu Dec 16 21:02:15 2010 +0000"
      },
      "committer": {
        "name": "Chris Wilson",
        "email": "chris@chris-wilson.co.uk",
        "time": "Thu Dec 16 21:02:15 2010 +0000"
      },
      "message": "Merge remote branch \u0027airlied/drm-core-next\u0027 into drm-intel-next\n"
    },
    {
      "commit": "1d212aa96e1b63459486f729af9a3fa38768b801",
      "tree": "e91e74db57a5bb7884b4681cdb788d405ec8f10f",
      "parents": [
        "8c4877a4128e7931077b024a891a4b284d8756a3",
        "b7613370db5ba66ad81e41cd3a5417fde4d5e03c"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 13 15:20:45 2010 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 13 15:20:45 2010 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem\n"
    },
    {
      "commit": "45f74264e18449cf3c93cccaf098ee6e9524ab78",
      "tree": "d5208559825ea479dce08df7658f0590aabea43b",
      "parents": [
        "b007c389d3e09b823eccda1503390fa2a9adca0d"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Dec 11 12:34:34 2010 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Dec 11 12:34:34 2010 +0100"
      },
      "message": "timerqueue: Make timerqueue_getnext() static inline\n\nNo point in calling a function just to dereference a pointer.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "9bb99b147018945366c763b3d4d7008927dc8557",
      "tree": "4a0f34124883a36fc4030ac91582eb797fbcc138",
      "parents": [
        "1f5a24794a54588ea3a9efd521be31d826e0b9d7"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Dec 06 13:32:12 2010 -0800"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Fri Dec 10 11:54:02 2010 -0800"
      },
      "message": "timers: Fixup allmodconfig build issue\n\nAdds missed EXPORT_SYMBOL lines that cause the following build\nfailures with allmodconfig:\nERROR: \"timerqueue_add\" [drivers/rtc/rtc-core.ko] undefined!\nERROR: \"timerqueue_getnext\" [drivers/rtc/rtc-core.ko] undefined!\nERROR: \"timerqueue_del\" [drivers/rtc/rtc-core.ko] undefined!\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nReported-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "1f5a24794a54588ea3a9efd521be31d826e0b9d7",
      "tree": "58dd33af6093cd3a0fed59a12ed41d6c7d8083ba",
      "parents": [
        "87de5ac782761a3ebf806e434e8c9cc205a87274"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Dec 09 12:02:18 2010 -0800"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Fri Dec 10 11:52:17 2010 -0800"
      },
      "message": "timers: Rename timerlist infrastructure to timerqueue\n\nThomas pointed out a namespace collision between the new timerlist\ninfrastructure I introduced and the existing timer_list.c\n\nSo to avoid confusion, I\u0027ve renamed the timerlist infrastructure\nto timerqueue.\n\nReported-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "af5568843594fb71055debe36e521fa8072fcecc",
      "tree": "4f35966cb4e1018b05c87d7a10c337d888949e22",
      "parents": [
        "5dcc03fe29537edd7819f5b121bf3d779693f37b"
      ],
      "author": {
        "name": "Bruno Randolf",
        "email": "br1@einfach.org",
        "time": "Thu Dec 02 19:50:37 2010 +0900"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 06 15:58:43 2010 -0500"
      },
      "message": "lib: Improve EWMA efficiency by using bitshifts\n\nUsing bitshifts instead of division and multiplication should improve\nperformance. That requires weight and factor to be powers of two, but i think\nthis is something we can live with.\n\nThanks to Peter Zijlstra for the improved formula!\n\nSigned-off-by: Bruno Randolf \u003cbr1@einfach.org\u003e\n\n--\n\nv2:\tuse log2.h functions\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "87de5ac782761a3ebf806e434e8c9cc205a87274",
      "tree": "8186969d00da5d0daea37fcb92538bbc72c8f086",
      "parents": [
        "5e4f083f78d03e9f8d2e327daccde16976f9bb00"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Sep 20 17:42:46 2010 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Dec 02 16:41:39 2010 -0800"
      },
      "message": "timers: Introduce timerlist infrastructure.\n\nThe timerlist infrastructure is a thin layer over the rbtree\ncode that implements a simple list of timers sorted by an\nexpires value, and a getnext function that provides a pointer\nto the earliest timer.\n\nThis infrastructure allows drivers and other kernel infrastructure\nto easily implement timers without duplicating code.\n\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nLKML Reference: \u003c1290136329-18291-2-git-send-email-john.stultz@linaro.org\u003e\nReviewed-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: Richard Cochran \u003crichardcochran@gmail.com\u003e\n"
    },
    {
      "commit": "bcb38ceb225f5d5b2198a2755277cd441ed1e82b",
      "tree": "2a436b318c56d058bd8f8d24eb1ec85c7268a9ed",
      "parents": [
        "8f1b1a509658bee2397ddb9937cbfa1b71cdca17"
      ],
      "author": {
        "name": "Dave Airlie",
        "email": "airlied@redhat.com",
        "time": "Tue Nov 30 09:15:46 2010 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 29 15:18:28 2010 -0800"
      },
      "message": "Revert \"debug_locks: set oops_in_progress if we will log messages.\"\n\nThis reverts commit e0fdace10e75dac67d906213b780ff1b1a4cc360.\n\nOn-list discussion seems to suggest that the robustness fixes for printk\nmake this unnecessary and DaveM has also agreed in person at Kernel Summit\nand on list.\n\nThe main problem with this code is once we hit a lockdep splat we always\nkeep oops_in_progress set, the console layer uses oops_in_progress with KMS\nto decide when it should be showing the oops and not showing X, so it causes\nproblems around suspend/resume time when a userspace resume can cause a console\nswitch away from X, only if oops_in_progress is set (which is what we want\nif an oops actually is in progress, but not because we had a lockdep splat\n2 days prior).\n\nCc: David S Miller \u003cdavem@davemloft.net\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Dave Airlie \u003cairlied@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dc88e46029486ed475c71fe1bb696d39511ac8fe",
      "tree": "75f5bbf30480d4126315211ea6fb3af395e5f09c",
      "parents": [
        "ce6ada35bdf710d16582cc4869c26722547e6f11"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Tue Nov 23 17:50:31 2010 -0500"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Nov 29 08:55:11 2010 +1100"
      },
      "message": "lib: hex2bin converts ascii hexadecimal string to binary\n\nSimilar to the kgdb_hex2mem() code, hex2bin converts a string\nto binary using the hex_to_bin() library call.\n\nChangelog:\n- Replace parameter names with src/dst (based on David Howell\u0027s comment)\n- Add \u0027const\u0027 where needed (based on David Howell\u0027s comment)\n- Replace int with size_t (based on David Howell\u0027s comment)\n\nSigned-off-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nAcked-by: Serge E. Hallyn \u003cserge@hallyn.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "51cce8a590c4696d62bfacc63378d1036084cef7",
      "tree": "dc24485bdff37ca6a83c69e93ffdbe5c5807b59d",
      "parents": [
        "2fe66ec242d3f76e3b0101f36419e7e5405bcff3",
        "4f8559383c41262b50dc758e2e310f257ce6a14d"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 24 16:49:20 2010 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 24 16:49:20 2010 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem\n"
    },
    {
      "commit": "ecf7ace9a8450303a987aa8364e53860cd50e554",
      "tree": "bbad2c5982c3b76462cbee9e15458072bc80055d",
      "parents": [
        "d6ea88865d3e5b0c62040531310c1f2c6a994f46"
      ],
      "author": {
        "name": "Thomas Hellstrom",
        "email": "thellstrom@vmware.com",
        "time": "Tue Nov 16 15:21:07 2010 +0100"
      },
      "committer": {
        "name": "Dave Airlie",
        "email": "airlied@redhat.com",
        "time": "Mon Nov 22 13:25:13 2010 +1000"
      },
      "message": "kref: Add a kref_sub function\n\nMakes it possible to optimize batched multiple unrefs.\nInitial user will be drivers/gpu/ttm which accumulates unrefs to be\nprocessed outside of atomic code.\n\nSigned-off-by: Thomas Hellstrom \u003cthellstrom@vmware.com\u003e\nSigned-off-by: Dave Airlie \u003cairlied@redhat.com\u003e\n"
    },
    {
      "commit": "c5485a7e7569ab32eea240c850198519e2a765ef",
      "tree": "928a8556deaec0811d1b83102b33365aab28a270",
      "parents": [
        "50a9432daeece6fc1309bef1dc0a7b8fde8204cb"
      ],
      "author": {
        "name": "Bruno Randolf",
        "email": "br1@einfach.org",
        "time": "Tue Nov 16 10:58:37 2010 +0900"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Nov 18 14:21:52 2010 -0500"
      },
      "message": "lib: Add generic exponentially weighted moving average (EWMA) function\n\nThis adds generic functions for calculating Exponentially Weighted Moving\nAverages (EWMA). This implementation makes use of a structure which keeps the\nEWMA parameters and a scaled up internal representation to reduce rounding\nerrors.\n\nThe original idea for this implementation came from the rt2x00 driver\n(rt2x00link.c). I would like to use it in several places in the mac80211 and\nath5k code and I hope it can be useful in many other places in the kernel code.\n\nSigned-off-by: Bruno Randolf \u003cbr1@einfach.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "3654654f7aa79a37dde130afb7409c55b11807e7",
      "tree": "4e65c0d211a6cc748509b7f3b2da7c45b05d3266",
      "parents": [
        "9d82ca98f71fd686ef2f3017c5e3e6a4871b6e46"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Tue Nov 16 09:52:32 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 16 09:52:32 2010 -0800"
      },
      "message": "netlink: let nlmsg and nla functions take pointer-to-const args\n\nThe changed functions do not modify the NL messages and/or attributes\nat all. They should use const (similar to strchr), so that callers\nwhich have a const nlmsg/nlattr around can make use of them without\ncasting.\n\nWhile at it, constify a data array.\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@medozas.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "27d20fddc8af539464fc3ba499d6a830054c3bd6",
      "tree": "23514cfe88f90150a8635c47586a8a378fb905e3",
      "parents": [
        "eaf06b241b091357e72b76863ba16e89610d31bd"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Thu Nov 11 14:05:19 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 12 07:55:32 2010 -0800"
      },
      "message": "radix-tree: fix RCU bug\n\nSalman Qazi describes the following radix-tree bug:\n\nIn the following case, we get can get a deadlock:\n\n0.  The radix tree contains two items, one has the index 0.\n1.  The reader (in this case find_get_pages) takes the rcu_read_lock.\n2.  The reader acquires slot(s) for item(s) including the index 0 item.\n3.  The non-zero index item is deleted, and as a consequence the other item is\n    moved to the root of the tree. The place where it used to be is queued for\n    deletion after the readers finish.\n3b. The zero item is deleted, removing it from the direct slot, it remains in\n    the rcu-delayed indirect node.\n4.  The reader looks at the index 0 slot, and finds that the page has 0 ref\n    count\n5.  The reader looks at it again, hoping that the item will either be freed or\n    the ref count will increase. This never happens, as the slot it is looking\n    at will never be updated. Also, this slot can never be reclaimed because\n    the reader is holding rcu_read_lock and is in an infinite loop.\n\nThe fix is to re-use the same \"indirect\" pointer case that requires a slot\nlookup retry into a general \"retry the lookup\" bit.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nReported-by: Salman Qazi \u003csqazi@google.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b595076a180a56d1bb170e6eceda6eb9d76f4cd3",
      "tree": "bc01ec7283808013e0b8ce7713fd6fc40f810429",
      "parents": [
        "6aaccece1c483f189f76f1282b3984ff4c7ecb0a"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@pengutronix.de",
        "time": "Mon Nov 01 15:38:34 2010 -0400"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Nov 01 15:38:34 2010 -0400"
      },
      "message": "tree-wide: fix comment/printk typos\n\n\"gadget\", \"through\", \"command\", \"maintain\", \"maintain\", \"controller\", \"address\",\n\"between\", \"initiali[zs]e\", \"instead\", \"function\", \"select\", \"already\",\n\"equal\", \"access\", \"management\", \"hierarchy\", \"registration\", \"interest\",\n\"relative\", \"memory\", \"offset\", \"already\",\n\nSigned-off-by: Uwe Kleine-König \u003cu.kleine-koenig@pengutronix.de\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "e3e1288e86a07cdeb0aee5860a2dff111c6eff79",
      "tree": "cd22f8051a456c9d2b95698b6fe402776a67469b",
      "parents": [
        "9ae6d039224def926656206725ae6e89d1331417",
        "964dc256bb91e990277010a3f6dc66daa130be8b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 19:04:36 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 19:04:36 2010 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx: (48 commits)\n  DMAENGINE: move COH901318 to arch_initcall\n  dma: imx-dma: fix signedness bug\n  dma/timberdale: simplify conditional\n  ste_dma40: remove channel_type\n  ste_dma40: remove enum for endianess\n  ste_dma40: remove TIM_FOR_LINK option\n  ste_dma40: move mode_opt to separate config\n  ste_dma40: move channel mode to a separate field\n  ste_dma40: move priority to separate field\n  ste_dma40: add variable to indicate valid dma_cfg\n  async_tx: make async_tx channel switching opt-in\n  move async raid6 test to lib/Kconfig.debug\n  dmaengine: Add Freescale i.MX1/21/27 DMA driver\n  intel_mid_dma: change the slave interface\n  intel_mid_dma: fix the WARN_ONs\n  intel_mid_dma: Add sg list support to DMA driver\n  intel_mid_dma: Allow DMAC2 to share interrupt\n  intel_mid_dma: Allow IRQ sharing\n  intel_mid_dma: Add runtime PM support\n  DMAENGINE: define a dummy filter function for ste_dma40\n  ...\n"
    },
    {
      "commit": "56083ab17e0075e538270823c374b59cc97e73b9",
      "tree": "5c29be7c976d1c96a8abd3280d5efb75b73e4c96",
      "parents": [
        "ee2f154a598e96df2ebb01648a7699373bc085c7"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue Oct 26 14:19:08 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 17:40:56 2010 -0700"
      },
      "message": "docbook: add idr/ida to kernel-api docbook\n\nAdd idr/ida to kernel-api docbook.\nFix typos and kernel-doc notation.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Naohiro Aota \u003cnaota@elisp.net\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e404f91ed2180dfecbab15dd4d39c543353385fb",
      "tree": "c256e29b1c738d5e5b5478f19b369b1fd90bd1e2",
      "parents": [
        "18a043f9413277523cf5011e594caa1747db4948",
        "e18105c128734b1671739ad4d85e216ebec28c61"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 17:25:38 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 17:25:38 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:\n  arch/tile: convert a BUG_ON to BUILD_BUG_ON\n  arch/tile: make ptrace() work properly for TILE-Gx COMPAT mode\n  arch/tile: support new info op generated by compiler\n  arch/tile: minor whitespace/naming changes for string support files\n  arch/tile: enable single-step support for TILE-Gx\n  arch/tile: parameterize system PLs to support KVM port\n  arch/tile: add Tilera\u0027s \u003carch/sim.h\u003e header as an open-source header\n  arch/tile: Bomb C99 comments to C89 comments in tile\u0027s \u003carch/sim_def.h\u003e\n  arch/tile: prevent corrupt top frame from causing backtracer runaway\n  arch/tile: various top-level Makefile cleanups\n  arch/tile: change lower bound on syscall error return to -4095\n  arch/tile: properly export __mb_incoherent for modules\n  arch/tile: provide a definition of MAP_STACK\n  kmemleak: add TILE to the list of supported architectures.\n  char: hvc: check for error case\n  arch/tile: Add a warning if we try to allocate too much vmalloc memory.\n  arch/tile: update some comments to clarify register usage.\n  arch/tile: use better \"punctuation\" for VMSPLIT_3_5G and friends\n  arch/tile: Use \u003casm-generic/syscalls.h\u003e\n  tile: replace some BUG_ON checks with BUILD_BUG_ON checks\n"
    },
    {
      "commit": "658716d19f8f155c67d4677ba68034b8e492dfbe",
      "tree": "8743b9a16606a63dc33f93c580367baf36692454",
      "parents": [
        "5d051decfc27cdf33fbbd2bfca958d0d2c903569"
      ],
      "author": {
        "name": "Brian Behlendorf",
        "email": "behlendorf1@llnl.gov",
        "time": "Tue Oct 26 14:23:10 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:19 2010 -0700"
      },
      "message": "div64_u64(): improve precision on 32bit platforms\n\nThe current implementation of div64_u64 for 32bit systems returns an\napproximately correct result when the divisor exceeds 32bits.  Since doing\n64bit division using 32bit hardware is a long since solved problem we just\nuse one of the existing proven methods.\n\nAdditionally, add a div64_s64 function to correctly handle doing signed\n64bit division.\n\nAddresses https://bugzilla.redhat.com/show_bug.cgi?id\u003d616105\n\nSigned-off-by: Brian Behlendorf \u003cbehlendorf1@llnl.gov\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Ben Woodard \u003cbwoodard@llnl.gov\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nCc: Mark Grondona \u003cmgrondona@llnl.gov\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5d051decfc27cdf33fbbd2bfca958d0d2c903569",
      "tree": "4f6579fdf86218d5214bf76e20e0534ea9a4c5c9",
      "parents": [
        "ea00c30b5b31baa91be29bee966204eccc15e9d3"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Tue Oct 26 14:23:09 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:19 2010 -0700"
      },
      "message": "lib/parser: cleanup match_number()\n\nUse new variable \u0027len\u0027 to make code more readable.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ea00c30b5b31baa91be29bee966204eccc15e9d3",
      "tree": "de5ad33475f3234048cc07d4676d963b8b4f314e",
      "parents": [
        "041b78f232bb87b2de8ca3fed50384bc7dc9c2de"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux.com",
        "time": "Tue Oct 26 14:23:09 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:19 2010 -0700"
      },
      "message": "percpu_counter: use this_cpu_ptr() instead of per_cpu_ptr()\n\nthis_cpu_ptr() avoids an array lookup and can use the percpu offset of the\nlocal cpu directly.\n\nSigned-off-by: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "041b78f232bb87b2de8ca3fed50384bc7dc9c2de",
      "tree": "ca76ca89b76360f9fbc5987519d6cf0c8c53cdda",
      "parents": [
        "014afa943d44f0df8e65bc4bd071c67772277d93"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Oct 26 14:23:08 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:19 2010 -0700"
      },
      "message": "lib/list_sort: test: check element addresses\n\nImprove \u0027lib_sort()\u0027 test and check that:\n o \u0027cmp()\u0027 is called only for elements which were present in the original list,\n   i.e., the \u0027a\u0027 and \u0027b\u0027 parameters are valid\n o the resulted (sorted) list consists onlly of the original elements\n o intdoruce \"poison\" fields to make sure data around \u0027struc list_head\u0027 field\n   are not corrupted.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nCc: Don Mullis \u003cdon.mullis@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "014afa943d44f0df8e65bc4bd071c67772277d93",
      "tree": "46c77d478f852c80a8c902a203d93bd6f0914cf1",
      "parents": [
        "f3dc0e384248ea6fda0987f909007fa9ab5fb51a"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Oct 26 14:23:08 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:19 2010 -0700"
      },
      "message": "lib/list_sort: test: unify test messages\n\nThis patch unifies \u0027list_sort_test()\u0027 messages a bit and makes sure all of\nthem start with the \"list_sort_test:\" prefix to make it obvious for users\nwhere the messages come from.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nCc: Don Mullis \u003cdon.mullis@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f3dc0e384248ea6fda0987f909007fa9ab5fb51a",
      "tree": "1c834baf780e16a9e47d1cacd41498dbb361483a",
      "parents": [
        "eeee9ebb54b76a33a13d2c926ffb018a4aea410f"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Oct 26 14:23:07 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:19 2010 -0700"
      },
      "message": "lib/list_sort: test: improve errors handling\n\nThe \u0027lib_sort()\u0027 test does not free memory if it fails, and it makes the\nkernel panic if it cannot allocate memory.  This patch fixes the problem.\n\nThis patch also changes several small things:\n o use \u0027list_add()\u0027 helper instead of adding manually\n o introduce temporary \u0027el1\u0027 variable to avoid ugly and unreadalbe\n   \"if\" statement\n o make \u0027head\u0027 to be stack variable instead of \u0027kmalloc()\u0027ed, which\n   simplifies code a bit\n\nOverall, this patch is of clean-up type.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nCc: Don Mullis \u003cdon.mullis@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "eeee9ebb54b76a33a13d2c926ffb018a4aea410f",
      "tree": "96e40d9c6690878008d6d4f1ca672fc6578d6d2d",
      "parents": [
        "bb2ab10fa693110cffa7087ffe2749d6e9a27d5f"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Oct 26 14:23:06 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:19 2010 -0700"
      },
      "message": "lib/list_sort: test: use generic random32\n\nInstead of using own pseudo-random generator, use generic linux\n\u0027random32()\u0027 function.  Presumably, this should improve test coverage.\n\nAt the same time, do the following changes:\n  o Use shorter macro name for test list length\n  o Do not use strange \u0027l_h\u0027 name for \u0027struct list_head\u0027 element,\n    use \u0027list\u0027, because it is traditional name and thus, makes the\n    code more obvious and readable.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nCc: Don Mullis \u003cdon.mullis@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bb2ab10fa693110cffa7087ffe2749d6e9a27d5f",
      "tree": "f45c76ec0bdae972fc8a1bb2cf04bca31c02c88c",
      "parents": [
        "6d411e6c01608cefb7b9ea6712110538a1432f9f"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Oct 26 14:23:06 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:18 2010 -0700"
      },
      "message": "lib/list_sort: test: use more reasonable printk levels\n\nI do not see any reason to use KERN_WARN for normal messages and\nKERN_EMERG for error messages in the lib_sort testing routine.  Let\u0027s use\nmore reasonable KERN_NORM and KERN_ERR levels.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nCc: Don Mullis \u003cdon.mullis@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6d411e6c01608cefb7b9ea6712110538a1432f9f",
      "tree": "5466fa9f8cd1ee9cdd1f5da01ae0ea14fe8437b7",
      "parents": [
        "e2852ae825dba5ebc159788720baec1a28a57125"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Oct 26 14:23:05 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:18 2010 -0700"
      },
      "message": "lib/Kconfig.debug: add list_sort debugging switch\n\nWhile hunting a non-existing bug in \u0027list_sort()\u0027, I\u0027ve improved the\n\u0027list_sort_test()\u0027 function which tests the \u0027list_sort()\u0027 library call.\nAlthough at the end I found a bug in my code, but not in \u0027list_sort()\u0027, I\nthink my clean-ups and improvements are worth merging because they make\nthe test function better.\n\nThis patch:\n\nMake the self-tests selectable via Kconfig rather than by manual enabling\nof DEBUG_LIST_SORT.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nCc: Don Mullis \u003cdon.mullis@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e2852ae825dba5ebc159788720baec1a28a57125",
      "tree": "9d7ed7731505ca02a0f35e8003ebe1cceefe7ecb",
      "parents": [
        "066a9be6c0124edc9527088231f03c6236be375d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Oct 26 14:23:05 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:18 2010 -0700"
      },
      "message": "percpu_counter: add debugobj support\n\nAll percpu counters are linked to a global list on initialization and\nremoved from it on destruction.  The list is walked during CPU up/down.\nIf a percpu counter is freed without being properly destroyed, the system\nwill oops only on the next CPU up/down making it pretty nasty to track\ndown.  This patch adds debugobj support for percpu counters so that such\nproblems can be found easily.\n\nAs percpu counters don\u0027t make sense on stack and can\u0027t be statically\ninitialized, debugobj support is pretty simple.  It\u0027s initialized and\nactivated on counter initialization, and deactivatd and destroyed on\ncounter destruction.  With this patch applied, the bug fixed by commit\n602586a83b719df0fbd94196a1359ed35aeb2df3 (shmem: put_super must\npercpu_counter_destroy) triggers the following warning on tmpfs unmount\nand the system won\u0027t oops on the next cpu up/down operation.\n\n ------------[ cut here ]------------\n WARNING: at lib/debugobjects.c:259 debug_print_object+0x5c/0x70()\n Hardware name: Bochs\n ODEBUG: free active (active state 0) object type: percpu_counter\n Modules linked in:\n Pid: 3999, comm: umount Not tainted 2.6.36-rc2-work+ #5\n Call Trace:\n  [\u003cffffffff81083f7f\u003e] warn_slowpath_common+0x7f/0xc0\n  [\u003cffffffff81084076\u003e] warn_slowpath_fmt+0x46/0x50\n  [\u003cffffffff813b45cc\u003e] debug_print_object+0x5c/0x70\n  [\u003cffffffff813b50e5\u003e] debug_check_no_obj_freed+0x125/0x210\n  [\u003cffffffff811577d3\u003e] kfree+0xb3/0x2f0\n  [\u003cffffffff81132edd\u003e] shmem_put_super+0x1d/0x30\n  [\u003cffffffff81162e96\u003e] generic_shutdown_super+0x56/0xe0\n  [\u003cffffffff81162f86\u003e] kill_anon_super+0x16/0x60\n  [\u003cffffffff81162ff7\u003e] kill_litter_super+0x27/0x30\n  [\u003cffffffff81163295\u003e] deactivate_locked_super+0x45/0x60\n  [\u003cffffffff81163cfa\u003e] deactivate_super+0x4a/0x70\n  [\u003cffffffff8117d446\u003e] mntput_no_expire+0x86/0xe0\n  [\u003cffffffff8117df7f\u003e] sys_umount+0x6f/0x360\n  [\u003cffffffff8103f01b\u003e] system_call_fastpath+0x16/0x1b\n ---[ end trace cce2a341ba3611a7 ]---\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Thomas Gleixner \u003ctglxlinutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "066a9be6c0124edc9527088231f03c6236be375d",
      "tree": "49350239a1505bb08ed67a19ad2a15466f7b7526",
      "parents": [
        "66f1991bc2357436498ac990302b6f5bf403d7ef"
      ],
      "author": {
        "name": "Naohiro Aota",
        "email": "naota@elisp.net",
        "time": "Tue Oct 26 14:23:03 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:18 2010 -0700"
      },
      "message": "idr: fix idr_pre_get() locking description\n\nDespite the idr_pre_get() kernel-doc, there are some cases where you can\ncall idr_pre_get() from within locked regions.  Add a description for such\ncases.\n\nSee also: http://lkml.org/lkml/2010/9/16/462\n\n[akpm@linux-foundation.org: cleanups, grammatical fixes]\nSigned-off-by: Naohiro Aota \u003cnaota@elisp.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "66f1991bc2357436498ac990302b6f5bf403d7ef",
      "tree": "1b98628c3863b23f81f9475d7c29f096206512c6",
      "parents": [
        "1fa7e5473cba543b02a396ced9e407f614bb117c"
      ],
      "author": {
        "name": "Andy Shevchenko",
        "email": "andy.shevchenko@gmail.com",
        "time": "Tue Oct 26 14:23:03 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:18 2010 -0700"
      },
      "message": "lib/bitmap.c: use hex_to_bin()\n\nSigned-off-by: Andy Shevchenko \u003candy.shevchenko@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b903c0b8899b46829a9b80ba55b61079b35940ec",
      "tree": "c5fd68065bf1fe9d89c08d979fccfea4b78ba4f4",
      "parents": [
        "5e0579812834ab7fa072db4a15ebdff68d62e2e7"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Tue Oct 26 14:22:50 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:16 2010 -0700"
      },
      "message": "lib: fix scnprintf() if @size is \u003d\u003d 0\n\nscnprintf() should return 0 if @size is \u003d\u003d 0. Update the comment for it,\nas @size is unsigned.\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5e0579812834ab7fa072db4a15ebdff68d62e2e7",
      "tree": "5bd1869f615609a3dc47a867d322cb4dbca0ca03",
      "parents": [
        "77006a0a828249dd69341f960043ee41e7487aa0"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Oct 26 14:22:50 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:16 2010 -0700"
      },
      "message": "vsprintf.c: use default pointer field size for \"(null)\" strings\n\nIt might be nicer to align the output.\n\nFor instance, ACPI messages sometimes have \"(null)\" pointers.\n\n$ dmesg | grep \"(null)\"  -A 1 -B 1\n[    0.198733] ACPI: Dynamic OEM Table Load:\n[    0.198745] ACPI: SSDT (null) 00239 (v02  PmRef  Cpu0Ist 00003000 INTL 20051117)\n[    0.199294] ACPI: SSDT 7f596e10 001C7 (v02  PmRef  Cpu0Cst 00003001 INTL 20051117)\n[    0.200708] ACPI: Dynamic OEM Table Load:\n[    0.200721] ACPI: SSDT (null) 001C7 (v02  PmRef  Cpu0Cst 00003001 INTL 20051117)\n[    0.201950] ACPI: SSDT 7f597f10 000D0 (v02  PmRef  Cpu1Ist 00003000 INTL 20051117)\n[    0.203386] ACPI: Dynamic OEM Table Load:\n[    0.203398] ACPI: SSDT (null) 000D0 (v02  PmRef  Cpu1Ist 00003000 INTL 20051117)\n[    0.203871] ACPI: SSDT 7f595f10 00083 (v02  PmRef  Cpu1Cst 00003000 INTL 20051117)\n[    0.205301] ACPI: Dynamic OEM Table Load:\n[    0.205315] ACPI: SSDT (null) 00083 (v02  PmRef  Cpu1Cst 00003000 INTL 20051117)\n\n[akpm@linux-foundation.org: add code comment]\nSigned-off-by: Joe Perches \u003cjoe@perches.com\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": "8474b591faf3bb0a1e08a60d21d6baac498f15e4",
      "tree": "20ef171bed75108535151479a6f656a9fc4a51db",
      "parents": [
        "52c5171214ff3327961d0ce0db7e8d2ce55004fd"
      ],
      "author": {
        "name": "Masanori ITOH",
        "email": "itoumsn@nttdata.co.jp",
        "time": "Tue Oct 26 14:21:20 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:04 2010 -0700"
      },
      "message": "percpu: fix list_head init bug in __percpu_counter_init()\n\nWARNING: at lib/list_debug.c:26 __list_add+0x3f/0x81()\nHardware name: Express5800/B120a [N8400-085]\nlist_add corruption. next-\u003eprev should be prev (ffffffff81a7ea00), but was dead000000200200. (next\u003dffff88080b872d58).\nModules linked in: aoe ipt_MASQUERADE iptable_nat nf_nat autofs4 sunrpc bridge 8021q garp stp llc ipv6 cpufreq_ondemand acpi_cpufreq freq_table dm_round_robin dm_multipath kvm_intel kvm uinput lpfc scsi_transport_fc igb ioatdma scsi_tgt i2c_i801 i2c_core dca iTCO_wdt iTCO_vendor_support pcspkr shpchp megaraid_sas [last unloaded: aoe]\nPid: 54, comm: events/3 Tainted: G        W  2.6.34-vanilla1 #1\nCall Trace:\n[\u003cffffffff8104bd77\u003e] warn_slowpath_common+0x7c/0x94\n[\u003cffffffff8104bde6\u003e] warn_slowpath_fmt+0x41/0x43\n[\u003cffffffff8120fd2e\u003e] __list_add+0x3f/0x81\n[\u003cffffffff81212a12\u003e] __percpu_counter_init+0x59/0x6b\n[\u003cffffffff810d8499\u003e] bdi_init+0x118/0x17e\n[\u003cffffffff811f2c50\u003e] blk_alloc_queue_node+0x79/0x143\n[\u003cffffffff811f2d2b\u003e] blk_alloc_queue+0x11/0x13\n[\u003cffffffffa02a931d\u003e] aoeblk_gdalloc+0x8e/0x1c9 [aoe]\n[\u003cffffffffa02aa655\u003e] aoecmd_sleepwork+0x25/0xa8 [aoe]\n[\u003cffffffff8106186c\u003e] worker_thread+0x1a9/0x237\n[\u003cffffffffa02aa630\u003e] ? aoecmd_sleepwork+0x0/0xa8 [aoe]\n[\u003cffffffff81065827\u003e] ? autoremove_wake_function+0x0/0x39\n[\u003cffffffff810616c3\u003e] ? worker_thread+0x0/0x237\n[\u003cffffffff810653ad\u003e] kthread+0x7f/0x87\n[\u003cffffffff8100aa24\u003e] kernel_thread_helper+0x4/0x10\n[\u003cffffffff8106532e\u003e] ? kthread+0x0/0x87\n[\u003cffffffff8100aa20\u003e] ? kernel_thread_helper+0x0/0x10\n\nIt\u0027s because there is no initialization code for a list_head contained in\nthe struct backing_dev_info under CONFIG_HOTPLUG_CPU, and the bug comes up\nwhen block device drivers calling blk_alloc_queue() are used.  In case of\nme, I got them by using aoe.\n\nSigned-off-by: Masanori Itoh \u003citoumsn@nttdata.co.jp\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "229aebb873e29726b91e076161649cf45154b0bf",
      "tree": "acc02a3702215bce8d914f4c8cc3d7a1382b1c67",
      "parents": [
        "8de547e1824437f3c6af180d3ed2162fa4b3f389",
        "50a23e6eec6f20d55a3a920e47adb455bff6046e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 24 13:41:39 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 24 13:41:39 2010 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (39 commits)\n  Update broken web addresses in arch directory.\n  Update broken web addresses in the kernel.\n  Revert \"drivers/usb: Remove unnecessary return\u0027s from void functions\" for musb gadget\n  Revert \"Fix typo: configuation \u003d\u003e configuration\" partially\n  ida: document IDA_BITMAP_LONGS calculation\n  ext2: fix a typo on comment in ext2/inode.c\n  drivers/scsi: Remove unnecessary casts of private_data\n  drivers/s390: Remove unnecessary casts of private_data\n  net/sunrpc/rpc_pipe.c: Remove unnecessary casts of private_data\n  drivers/infiniband: Remove unnecessary casts of private_data\n  drivers/gpu/drm: Remove unnecessary casts of private_data\n  kernel/pm_qos_params.c: Remove unnecessary casts of private_data\n  fs/ecryptfs: Remove unnecessary casts of private_data\n  fs/seq_file.c: Remove unnecessary casts of private_data\n  arm: uengine.c: remove C99 comments\n  arm: scoop.c: remove C99 comments\n  Fix typo configue \u003d\u003e configure in comments\n  Fix typo: configuation \u003d\u003e configuration\n  Fix typo interrest[ing|ed] \u003d\u003e interest[ing|ed]\n  Fix various typos of valid in comments\n  ...\n\nFix up trivial conflicts in:\n\tdrivers/char/ipmi/ipmi_si_intf.c\n\tdrivers/usb/gadget/rndis.c\n\tnet/irda/irnet/irnet_ppp.c\n"
    },
    {
      "commit": "6d4121f6c20a0e86231d52f535f1c82423b3326f",
      "tree": "5c235cac699ca86b504850aa663ddadde0455a61",
      "parents": [
        "92a5bbc11ff2442a54b2f1d313088c245828ef4e",
        "35da7a307c535f9c2929cae277f3df425c9f9b1e"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@kernel.org",
        "time": "Sun Oct 24 19:57:05 2010 +0300"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@kernel.org",
        "time": "Sun Oct 24 19:57:05 2010 +0300"
      },
      "message": "Merge branch \u0027master\u0027 into for-linus\n\nConflicts:\n\tinclude/linux/percpu.h\n\tmm/percpu.c\n"
    },
    {
      "commit": "b9da0571050c09863e59f94d0b8594a290d61b88",
      "tree": "3632c4fee768db9a27a5c872bd42133692e2f3d0",
      "parents": [
        "f8cae0f03f75adb54b1d48ddbc90f84a1f5de186",
        "5abd935661e01289ba143c3b2c1ba300c65bcc5f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 19:36:42 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 19:36:42 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: (31 commits)\n  driver core: Display error codes when class suspend fails\n  Driver core: Add section count to memory_block struct\n  Driver core: Add mutex for adding/removing memory blocks\n  Driver core: Move find_memory_block routine\n  hpilo: Despecificate driver from iLO generation\n  driver core: Convert link_mem_sections to use find_memory_block_hinted.\n  driver core: Introduce find_memory_block_hinted which utilizes kset_find_obj_hinted.\n  kobject: Introduce kset_find_obj_hinted.\n  driver core: fix build for CONFIG_BLOCK not enabled\n  driver-core: base: change to new flag variable\n  sysfs: only access bin file vm_ops with the active lock\n  sysfs: Fail bin file mmap if vma close is implemented.\n  FW_LOADER: fix kconfig dependency warning on HOTPLUG\n  uio: Statically allocate uio_class and use class .dev_attrs.\n  uio: Support 2^MINOR_BITS minors\n  uio: Cleanup irq handling.\n  uio: Don\u0027t clear driver data\n  uio: Fix lack of locking in init_uio_class\n  SYSFS: Allow boot time switching between deprecated and modern sysfs layout\n  driver core: remove CONFIG_SYSFS_DEPRECATED_V2 but keep it for block devices\n  ...\n"
    },
    {
      "commit": "092e0e7e520a1fca03e13c9f2d157432a8657ff2",
      "tree": "451897252c4c08c4b5a8ef535da156f1e817e80b",
      "parents": [
        "79f14b7c56d3b3ba58f8b43d1f70b9b71477a800",
        "776c163b1b93c8dfa5edba885bc2bfbc2d228a5f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "message": "Merge branch \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl\n\n* \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:\n  vfs: make no_llseek the default\n  vfs: don\u0027t use BKL in default_llseek\n  llseek: automatically add .llseek fop\n  libfs: use generic_file_llseek for simple_attr\n  mac80211: disallow seeks in minstrel debug code\n  lirc: make chardev nonseekable\n  viotape: use noop_llseek\n  raw: use explicit llseek file operations\n  ibmasmfs: use generic_file_llseek\n  spufs: use llseek in all file operations\n  arm/omap: use generic_file_llseek in iommu_debug\n  lkdtm: use generic_file_llseek in debugfs\n  net/wireless: use generic_file_llseek in debugfs\n  drm: use noop_llseek\n"
    },
    {
      "commit": "5704e44d283e907623e3775c1262f206a2c48cf3",
      "tree": "0a981b24173e90854e7b7d812b35859e1e5f0174",
      "parents": [
        "91151240ed8e97cc4457dae4094153c2744f1eb8",
        "6de5bd128d381ad88ac6d419a5e597048eb468cf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:43:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:43:11 2010 -0700"
      },
      "message": "Merge branch \u0027config\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl\n\n* \u0027config\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:\n  BKL: introduce CONFIG_BKL.\n  dabusb: remove the BKL\n  sunrpc: remove the big kernel lock\n  init/main.c: remove BKL notations\n  blktrace: remove the big kernel lock\n  rtmutex-tester: make it build without BKL\n  dvb-core: kill the big kernel lock\n  dvb/bt8xx: kill the big kernel lock\n  tlclk: remove big kernel lock\n  fix rawctl compat ioctls breakage on amd64 and itanic\n  uml: kill big kernel lock\n  parisc: remove big kernel lock\n  cris: autoconvert trivial BKL users\n  alpha: kill big kernel lock\n  isapnp: BKL removal\n  s390/block: kill the big kernel lock\n  hpet: kill BKL, add compat_ioctl\n"
    },
    {
      "commit": "c25d1dfbd403209025df41a737f82ce8f43d93f5",
      "tree": "35110a432101ff146bae3656137d9ba6f37b38fd",
      "parents": [
        "ead454feb6cbfe0fa6a1eeb30aa9abc338dacf62"
      ],
      "author": {
        "name": "Robin Holt",
        "email": "holt@sgi.com",
        "time": "Wed Sep 29 14:00:54 2010 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 22 10:16:44 2010 -0700"
      },
      "message": "kobject: Introduce kset_find_obj_hinted.\n\nOne call chain getting to kset_find_obj is:\n  link_mem_sections()\n    find_mem_section()\n      kset_find_obj()\n\nThis is done during boot.  The memory sections were added in a linearly\nincreasing order and link_mem_sections tends to utilize them in that\nsame linear order.\n\nIntroduce a kset_find_obj_hinted which is passed the result of the\nprevious kset_find_obj which it uses for a quick \"is the next object\nour desired object\" check before falling back to the old behavior.\n\nSigned-off-by: Robin Holt \u003cholt@sgi.com\u003e\nTo: Robert P. J. Day \u003crpjday@crashcourse.ca\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "6a5c083de2f5fbf89a4b0a251be2c2205434d7ea",
      "tree": "72f738d63e35749da1d79f534494cff10e644208",
      "parents": [
        "a648ec05bb950fae2f35d0490ddd6cf15010af72"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Fri Aug 06 16:11:03 2010 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 22 10:16:42 2010 -0700"
      },
      "message": "Dynamic Debug: Initialize dynamic debug earlier via arch_initcall\n\nHaving the ddebug_query\u003d boot parameter it makes sense to set up\ndynamic debug as soon as possible.\n\nI expect sysfs files cannot be set up via an arch_initcall, because\nthis one is even before fs_initcall. Therefore I splitted the\ndynamic_debug_init function into an early one and a later one providing\n/sys/../dynamic_debug/control file.\n\nPossibly dynamic_debug can be initialized even earlier, not sure whether\nthis still makes sense then. I picked up arch_initcall as it covers\nquite a lot already.\n\nDynamic debug needs to allocate memory, therefore it\u0027s not easily possible to\nset it up even before the command line gets parsed.\nTherefore the boot param query string is stored in a temp string which is\napplied when dynamic debug gets set up.\n\nThis has been tested with ddebug_query\u003d\"file ec.c +p\"\nand I could retrieve pr_debug() messages early at boot during ACPI setup:\nACPI: EC: Look up EC in DSDT\nACPI: EC: ---\u003e status \u003d 0x08\nACPI: EC: transaction start\nACPI: EC: \u003c--- command \u003d 0x80\nACPI: EC: ~~~\u003e interrupt\nACPI: EC: ---\u003e status \u003d 0x08\nACPI: EC: \u003c--- data \u003d 0xa4\n...\nACPI: Interpreter enabled\nACPI: (supports S0 S3 S4 S5)\nACPI: Using IOAPIC for interrupt routing\nACPI: EC: ---\u003e status \u003d 0x00\nACPI: EC: transaction start\nACPI: EC: \u003c--- command \u003d 0x80\n\n\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nAcked-by: jbaron@redhat.com\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCC: linux-acpi@vger.kernel.org\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "a648ec05bb950fae2f35d0490ddd6cf15010af72",
      "tree": "cde3ca36db486e51d85c31619bf67f8d60215179",
      "parents": [
        "fd89cfb8718753459fcea3fe6103d19de5e86c9b"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Fri Aug 06 16:11:02 2010 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 22 10:16:42 2010 -0700"
      },
      "message": "Dynamic Debug: Introduce ddebug_query\u003d boot parameter\n\nDynamic debug lacks the ability to enable debug messages at boot time.\nOne could patch initramfs or service startup scripts to write to\n/sys/../dynamic_debug/control, but this sucks.\n\nThis patch makes it possible to pass a query in the same format one can\nwrite to /sys/../dynamic_debug/control via boot param.\nWhen dynamic debug gets initialized, this query will automatically be\napplied.\n\n\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nAcked-by: jbaron@redhat.com\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "fd89cfb8718753459fcea3fe6103d19de5e86c9b",
      "tree": "8e05f06fc4954d55b75ec8c8dfeacce3c198f264",
      "parents": [
        "f6f94e2ab1b33f0082ac22d71f66385a60d8157f"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Fri Aug 06 16:11:01 2010 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 22 10:16:42 2010 -0700"
      },
      "message": "Dynamic Debug: Split out query string parsing/setup from proc_write\n\nThe parsing and applying of dynamic debug strings is not only useful for\n/sys/../dynamic_debug/control write access, but can also be used for\nboot parameter parsing.\nThe boot parameter is introduced in a follow up patch.\n\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nAcked-by: jbaron@redhat.com\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "a9ccd80aadadef8c424142d41fddea7c0880f0e9",
      "tree": "d8f1078b9154ce4b4046d4fa2d744e22e260b0eb",
      "parents": [
        "81d1c3a52cd78fdbb9f0d80214fc9e7d49bf22c0",
        "e79f86b2ef9c0a8c47225217c1018b7d3d90101c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 14:04:25 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 14:04:25 2010 -0700"
      },
      "message": "Merge branch \u0027stable/swiotlb-0.9\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb-2.6\n\n* \u0027stable/swiotlb-0.9\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb-2.6:\n  swiotlb: Use page alignment for early buffer allocation\n  swiotlb: make io_tlb_overflow static\n"
    },
    {
      "commit": "5d70f79b5ef6ea2de4f72a37b2d96e2601e40a22",
      "tree": "a0d6de0930ba83ecf4629c2e2e261f5eaa2d8f33",
      "parents": [
        "888a6f77e0418b049f83d37547c209b904d30af4",
        "750ed158bf6c782d2813da1bca2c824365a0b777"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 12:54:49 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 12:54:49 2010 -0700"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (163 commits)\n  tracing: Fix compile issue for trace_sched_wakeup.c\n  [S390] hardirq: remove pointless header file includes\n  [IA64] Move local_softirq_pending() definition\n  perf, powerpc: Fix power_pmu_event_init to not use event-\u003ectx\n  ftrace: Remove recursion between recordmcount and scripts/mod/empty\n  jump_label: Add COND_STMT(), reducer wrappery\n  perf: Optimize sw events\n  perf: Use jump_labels to optimize the scheduler hooks\n  jump_label: Add atomic_t interface\n  jump_label: Use more consistent naming\n  perf, hw_breakpoint: Fix crash in hw_breakpoint creation\n  perf: Find task before event alloc\n  perf: Fix task refcount bugs\n  perf: Fix group moving\n  irq_work: Add generic hardirq context callbacks\n  perf_events: Fix transaction recovery in group_sched_in()\n  perf_events: Fix bogus AMD64 generic TLB events\n  perf_events: Fix bogus context time tracking\n  tracing: Remove parent recording in latency tracer graph options\n  tracing: Use one prologue for the preempt irqs off tracer function tracers\n  ...\n"
    },
    {
      "commit": "6de5bd128d381ad88ac6d419a5e597048eb468cf",
      "tree": "7b3a0440f645c6e98367a87b1ca0ed1e0df204dd",
      "parents": [
        "7ff52efdca367d4bfe2449bd3d4a1f8172c5953a"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sat Sep 11 18:00:57 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Thu Oct 21 15:44:13 2010 +0200"
      },
      "message": "BKL: introduce CONFIG_BKL.\n\nWith all the patches we have queued in the BKL removal tree, only a\nfew dozen modules are left that actually rely on the BKL, and even\nthere are lots of low-hanging fruit. We need to decide what to do\nabout them, this patch illustrates one of the options:\n\nEvery user of the BKL is marked as \u0027depends on BKL\u0027 in Kconfig,\nand the CONFIG_BKL becomes a user-visible option. If it gets\ndisabled, no BKL using module can be built any more and the BKL\ncode itself is compiled out.\n\nThe one exception is file locking, which is practically always\nenabled and does a \u0027select BKL\u0027 instead. This effectively forces\nCONFIG_BKL to be enabled until we have solved the fs/lockd\nmess and can apply the patch that removes the BKL from fs/locks.c.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "3b6e901f839f42afb40f614418df82c08b01320a",
      "tree": "04056f3347b926e9623c225acd496e39b9d1b85a",
      "parents": [
        "d580ff8699e8811a9af37e9de4dea375401bdeec"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Oct 14 21:10:38 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 19:58:56 2010 +0200"
      },
      "message": "jump_label: Use more consistent naming\n\nNow that there\u0027s still only a few users around, rename things to make\nthem more consistent.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20101014203625.448565169@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6038f373a3dc1f1c26496e60b6c40b164716f07e",
      "tree": "a0d3bbd026eea41b9fc36b8c722cbaf56cd9f825",
      "parents": [
        "1ec5584e3edf9c4bf2c88c846534d19cf986ba11"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sun Aug 15 18:52:59 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Fri Oct 15 15:53:27 2010 +0200"
      },
      "message": "llseek: automatically add .llseek fop\n\nAll file_operations should get a .llseek operation so we can make\nnonseekable_open the default for future file operations without a\n.llseek pointer.\n\nThe three cases that we can automatically detect are no_llseek, seq_lseek\nand default_llseek. For cases where we can we can automatically prove that\nthe file offset is always ignored, we use noop_llseek, which maintains\nthe current behavior of not returning an error from a seek.\n\nNew drivers should normally not use noop_llseek but instead use no_llseek\nand call nonseekable_open at open time.  Existing drivers can be converted\nto do the same when the maintainer knows for certain that no user code\nrelies on calling seek on the device file.\n\nThe generated code is often incorrectly indented and right now contains\ncomments that clarify for each added line why a specific variant was\nchosen. In the version that gets submitted upstream, the comments will\nbe gone and I will manually fix the indentation, because there does not\nseem to be a way to do that using coccinelle.\n\nSome amount of new code is currently sitting in linux-next that should get\nthe same modifications, which I will do at the end of the merge window.\n\nMany thanks to Julia Lawall for helping me learn to write a semantic\npatch that does all this.\n\n\u003d\u003d\u003d\u003d\u003d begin semantic patch \u003d\u003d\u003d\u003d\u003d\n// This adds an llseek\u003d method to all file operations,\n// as a preparation for making no_llseek the default.\n//\n// The rules are\n// - use no_llseek explicitly if we do nonseekable_open\n// - use seq_lseek for sequential files\n// - use default_llseek if we know we access f_pos\n// - use noop_llseek if we know we don\u0027t access f_pos,\n//   but we still want to allow users to call lseek\n//\n@ open1 exists @\nidentifier nested_open;\n@@\nnested_open(...)\n{\n\u003c+...\nnonseekable_open(...)\n...+\u003e\n}\n\n@ open exists@\nidentifier open_f;\nidentifier i, f;\nidentifier open1.nested_open;\n@@\nint open_f(struct inode *i, struct file *f)\n{\n\u003c+...\n(\nnonseekable_open(...)\n|\nnested_open(...)\n)\n...+\u003e\n}\n\n@ read disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n   *off \u003d E\n|\n   *off +\u003d E\n|\n   func(..., off, ...)\n|\n   E \u003d *off\n)\n...+\u003e\n}\n\n@ read_no_fpos disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ write @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n  *off \u003d E\n|\n  *off +\u003d E\n|\n  func(..., off, ...)\n|\n  E \u003d *off\n)\n...+\u003e\n}\n\n@ write_no_fpos @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ fops0 @\nidentifier fops;\n@@\nstruct file_operations fops \u003d {\n ...\n};\n\n@ has_llseek depends on fops0 @\nidentifier fops0.fops;\nidentifier llseek_f;\n@@\nstruct file_operations fops \u003d {\n...\n .llseek \u003d llseek_f,\n...\n};\n\n@ has_read depends on fops0 @\nidentifier fops0.fops;\nidentifier read_f;\n@@\nstruct file_operations fops \u003d {\n...\n .read \u003d read_f,\n...\n};\n\n@ has_write depends on fops0 @\nidentifier fops0.fops;\nidentifier write_f;\n@@\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n...\n};\n\n@ has_open depends on fops0 @\nidentifier fops0.fops;\nidentifier open_f;\n@@\nstruct file_operations fops \u003d {\n...\n .open \u003d open_f,\n...\n};\n\n// use no_llseek if we call nonseekable_open\n////////////////////////////////////////////\n@ nonseekable1 depends on !has_llseek \u0026\u0026 has_open @\nidentifier fops0.fops;\nidentifier nso ~\u003d \"nonseekable_open\";\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d nso, ...\n+.llseek \u003d no_llseek, /* nonseekable */\n};\n\n@ nonseekable2 depends on !has_llseek @\nidentifier fops0.fops;\nidentifier open.open_f;\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d open_f, ...\n+.llseek \u003d no_llseek, /* open uses nonseekable */\n};\n\n// use seq_lseek for sequential files\n/////////////////////////////////////\n@ seq depends on !has_llseek @\nidentifier fops0.fops;\nidentifier sr ~\u003d \"seq_read\";\n@@\nstruct file_operations fops \u003d {\n...  .read \u003d sr, ...\n+.llseek \u003d seq_lseek, /* we have seq_read */\n};\n\n// use default_llseek if there is a readdir\n///////////////////////////////////////////\n@ fops1 depends on !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier readdir_e;\n@@\n// any other fop is used that changes pos\nstruct file_operations fops \u003d {\n... .readdir \u003d readdir_e, ...\n+.llseek \u003d default_llseek, /* readdir is present */\n};\n\n// use default_llseek if at least one of read/write touches f_pos\n/////////////////////////////////////////////////////////////////\n@ fops2 depends on !fops1 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read.read_f;\n@@\n// read fops use offset\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d default_llseek, /* read accesses f_pos */\n};\n\n@ fops3 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+\t.llseek \u003d default_llseek, /* write accesses f_pos */\n};\n\n// Use noop_llseek if neither read nor write accesses f_pos\n///////////////////////////////////////////////////////////\n\n@ fops4 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !fops3 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\nidentifier write_no_fpos.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n .read \u003d read_f,\n...\n+.llseek \u003d noop_llseek, /* read and write both use no f_pos */\n};\n\n@ depends on has_write \u0026\u0026 !has_read \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write_no_fpos.write_f;\n@@\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+.llseek \u003d noop_llseek, /* write uses no f_pos */\n};\n\n@ depends on has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\n@@\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d noop_llseek, /* read uses no f_pos */\n};\n\n@ depends on !has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\n@@\nstruct file_operations fops \u003d {\n...\n+.llseek \u003d noop_llseek, /* no read or write fn */\n};\n\u003d\u003d\u003d\u003d\u003d End semantic patch \u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "6b945df74233386aab526cddd3593ed4b854f574",
      "tree": "6d93d4a5ed3d427c9bd8cf665139f2c21cc676ca",
      "parents": [
        "6496a5c9e7ccc4e2ec34c09d04a819f8fdc29981"
      ],
      "author": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@tilera.com",
        "time": "Thu Oct 14 14:54:47 2010 -0400"
      },
      "committer": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@tilera.com",
        "time": "Thu Oct 14 14:54:47 2010 -0400"
      },
      "message": "kmemleak: add TILE to the list of supported architectures.\n\nAll the necessary functionality was already there; we just need\nto make it possible to select the config option.\n\nSigned-off-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\n"
    },
    {
      "commit": "e79f86b2ef9c0a8c47225217c1018b7d3d90101c",
      "tree": "53ba03cad303a566831fa03ebbfc408ab36ae36c",
      "parents": [
        "03620b2d7545fee29ecd3bb270f206b9cff75e58"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Mon Oct 11 10:40:25 2010 -0700"
      },
      "committer": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Mon Oct 11 17:08:36 2010 -0400"
      },
      "message": "swiotlb: Use page alignment for early buffer allocation\n\nWe could call free_bootmem_late() if swiotlb is not used, and\nit will shrink to page alignment.\n\nSo alloc them with page alignment at first, to avoid lose two pages\n\nbefore patch:\n[    0.000000]     memblock_x86_reserve_range: [00d3600000, 00d7600000]   swiotlb buffer\n[    0.000000]     memblock_x86_reserve_range: [00d7e7ef40, 00d7e9ef40]     swiotlb list\n[    0.000000]     memblock_x86_reserve_range: [00d7e3ef40, 00d7e7ef40]  swiotlb orig_ad\n[    0.000000]     memblock_x86_reserve_range: [000008a000, 0000092000]  swiotlb overflo\n\nafter patch will get\n[    0.000000]     memblock_x86_reserve_range: [00d3600000, 00d7600000]   swiotlb buffer\n[    0.000000]     memblock_x86_reserve_range: [00d7e7e000, 00d7e9e000]     swiotlb list\n[    0.000000]     memblock_x86_reserve_range: [00d7e3e000, 00d7e7e000]  swiotlb orig_ad\n[    0.000000]     memblock_x86_reserve_range: [000008a000, 0000092000]  swiotlb overflo\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nAcked-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Becky Bruce \u003cbeckyb@kernel.crashing.org\u003e\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\n"
    },
    {
      "commit": "03620b2d7545fee29ecd3bb270f206b9cff75e58",
      "tree": "1f768d8f00ab55b810a29eed086684ff6c7e8743",
      "parents": [
        "cb655d0f3d57c23db51b981648e452988c0223f9"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Mon Aug 02 23:48:06 2010 +0900"
      },
      "committer": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Mon Oct 11 14:54:27 2010 -0400"
      },
      "message": "swiotlb: make io_tlb_overflow static\n\nWe don\u0027t need to export io_tlb_overflow_buffer. I\u0027ll remove\nio_tlb_overflow_buffer completely in the long term though.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\n"
    },
    {
      "commit": "7cd2541cf2395962daf98ec32a141aba3398a9b2",
      "tree": "3c8bebb277462ba0de9d44233a970d34056dc45e",
      "parents": [
        "c62f981f9309486ba5546edbb5925f71e441fa65",
        "cb655d0f3d57c23db51b981648e452988c0223f9"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 08 10:46:27 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 08 10:46:27 2010 +0200"
      },
      "message": "Merge commit \u0027v2.6.36-rc7\u0027 into perf/core\n\nConflicts:\n\tarch/x86/kernel/module.c\n\nMerge reason: Resolve the conflict, pick up fixes.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "400fb7f6a0cfe13025cb0296fdb4737da7025a8a",
      "tree": "f0e956b04e3c566020b2ce1ba9454d3e4a49cf63",
      "parents": [
        "6391987d6f8ced7d0fafaa1440dcc57bb4b34d8f"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Thu Oct 07 15:25:04 2010 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Thu Oct 07 15:25:04 2010 -0700"
      },
      "message": "move async raid6 test to lib/Kconfig.debug\n\nThe prompt for \"Self test for hardware accelerated raid6 recovery\" does not\nbelong in the top level configuration menu.  All the options in\ncrypto/async_tx/Kconfig are selected and do not depend on CRYPTO.\nKconfig.debug seems like a reasonable fit.\n\nCc: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nCc: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\n"
    },
    {
      "commit": "556ef63255f1a6f82910a637c4164dbf7d3d1af2",
      "tree": "ae209fe4959e0837bf4eb72abc6e02c8a82179a1",
      "parents": [
        "d4f8f217b8a5d5bd02af979650418dca4caec472",
        "cb655d0f3d57c23db51b981648e452988c0223f9"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 07 09:43:38 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 07 09:43:45 2010 +0200"
      },
      "message": "Merge commit \u0027v2.6.36-rc7\u0027 into core/rcu\n\nMerge reason: Update from -rc3 to -rc7.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d4f8f217b8a5d5bd02af979650418dca4caec472",
      "tree": "af047bfa9729c975e24cb7624107574e884d3a57",
      "parents": [
        "2dfbf4dfbe47a484bae20456c12b40763b9b6af7",
        "773e3f93577ffb493fb7c39b1a6ecf39b5748e87"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 07 09:43:11 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 07 09:43:11 2010 +0200"
      },
      "message": "Merge branch \u0027rcu/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-2.6-rcu into core/rcu\n"
    },
    {
      "commit": "ab4d5ed5eeda4f57c50d14131ce1b1da75d0c938",
      "tree": "e0c574c802138d9b6514dae4f2c46fcc6365b951",
      "parents": [
        "15b7c5142049e7efc3071280e1370dc3b8add6f5"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux.com",
        "time": "Tue Oct 05 13:57:26 2010 -0500"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@kernel.org",
        "time": "Wed Oct 06 16:54:36 2010 +0300"
      },
      "message": "slub: Enable sysfs support for !CONFIG_SLUB_DEBUG\n\nCurrently disabling CONFIG_SLUB_DEBUG also disabled SYSFS support meaning\nthat the slabs cannot be tuned without DEBUG.\n\nMake SYSFS support independent of CONFIG_SLUB_DEBUG\n\nSigned-off-by: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\n"
    },
    {
      "commit": "5336377d6225959624146629ce3fc88ee8ecda3d",
      "tree": "571b9db75d1ba50faa1e399509563f367fd5694f",
      "parents": [
        "2f6b3aa7a563d05453c4d73ccf88191aee84333f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 05 11:29:27 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 05 11:29:27 2010 -0700"
      },
      "message": "modules: Fix module_bug_list list corruption race\n\nWith all the recent module loading cleanups, we\u0027ve minimized the code\nthat sits under module_mutex, fixing various deadlocks and making it\npossible to do most of the module loading in parallel.\n\nHowever, that whole conversion totally missed the rather obscure code\nthat adds a new module to the list for BUG() handling.  That code was\ndoubly obscure because (a) the code itself lives in lib/bugs.c (for\ndubious reasons) and (b) it gets called from the architecture-specific\n\"module_finalize()\" rather than from generic code.\n\nCalling it from arch-specific code makes no sense what-so-ever to begin\nwith, and is now actively wrong since that code isn\u0027t protected by the\nmodule loading lock any more.\n\nSo this commit moves the \"module_bug_{finalize,cleanup}()\" calls away\nfrom the arch-specific code, and into the generic code - and in the\nprocess protects it with the module_mutex so that the list operations\nare now safe.\n\nFuture fixups:\n - move the module list handling code into kernel/module.c where it\n   belongs.\n - get rid of \u0027module_bug_list\u0027 and just use the regular list of modules\n   (called \u0027modules\u0027 - imagine that) that we already create and maintain\n   for other reasons.\n\nReported-and-tested-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Adrian Bunk \u003cbunk@kernel.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f015ac3edd84ad72f88e08a4d83c56c360aae404",
      "tree": "87f88c4e502d69752776dd36451d0ece5416f9f1",
      "parents": [
        "982f7c2b2e6a28f8f266e075d92e19c0dd4c6e56"
      ],
      "author": {
        "name": "Don Mullis",
        "email": "don.mullis@gmail.com",
        "time": "Thu Sep 30 15:15:32 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 01 10:50:58 2010 -0700"
      },
      "message": "lib/list_sort: do not pass bad pointers to cmp callback\n\nIf the original list is a POT in length, the first callback from line 73\nwill pass a\u003d\u003db both pointing to the original list_head.  This is dangerous\nbecause the \u0027list_sort()\u0027 user can use \u0027container_of()\u0027 and accesses the\n\"containing\" object, which does not necessary exist for the list head.  So\nthe user can access RAM which does not belong to him.  If this is a write\naccess, we can end up with memory corruption.\n\nSigned-off-by: Don Mullis \u003cdon.mullis@gmail.com\u003e\nTested-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2dfbf4dfbe47a484bae20456c12b40763b9b6af7",
      "tree": "466a7dcef708a96c419083d587b00313cf7b3785",
      "parents": [
        "269dcc1c2ec25864308ee03a3fa26ea819d9f5d0"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Sep 15 23:30:48 2010 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Sep 23 09:16:54 2010 -0700"
      },
      "message": "rcu: Add advice to PROVE_RCU_REPEATEDLY kernel config parameter\n\nThe PROVE_RCU_REPEATEDLY has no \"Say Y\"/\"Say N\" advice, so this commit\nadds it.\n\nReported-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    }
  ],
  "next": "52159d98be6f26c48f5e02c7ab3c9848a85979b5"
}
