)]}'
{
  "log": [
    {
      "commit": "da3649e133948d8b7d8c57b05a33faf62ac2cc7e",
      "tree": "d03e6ce3b4ee6a5b08739839809c88ae8ec53629",
      "parents": [
        "d29bb9782d22063892e28716cdb76a87d2876ddb"
      ],
      "author": {
        "name": "Cody P Schafer",
        "email": "cody@linux.vnet.ibm.com",
        "time": "Fri Feb 22 16:35:27 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:20 2013 -0800"
      },
      "message": "mmzone: add pgdat_{end_pfn,is_empty}() helpers \u0026 consolidate.\n\nAdd pgdat_end_pfn() and pgdat_is_empty() helpers which match the similar\nzone_*() functions.\n\nChange node_end_pfn() to be a wrapper of pgdat_end_pfn().\n\nSigned-off-by: Cody P Schafer \u003ccody@linux.vnet.ibm.com\u003e\nCc: David Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2a6e3ebee2edcade56f836390a5f0c7b76ff5f9e",
      "tree": "53005ce7c42e9fad98d9a0dec7a0035f5bb5143c",
      "parents": [
        "108bcc96ef7047c02cad4d229f04da38186a3f3f"
      ],
      "author": {
        "name": "Cody P Schafer",
        "email": "cody@linux.vnet.ibm.com",
        "time": "Fri Feb 22 16:35:24 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:20 2013 -0800"
      },
      "message": "mm: add zone_is_empty() and zone_is_initialized()\n\nFactoring out these 2 checks makes it more clear what we are actually\nchecking for.\n\nSigned-off-by: Cody P Schafer \u003ccody@linux.vnet.ibm.com\u003e\nCc: David Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "108bcc96ef7047c02cad4d229f04da38186a3f3f",
      "tree": "e11d82074cae54dcf0fa8eea12750c661a16b02d",
      "parents": [
        "9127ab4ff92f0ecd7b4671efa9d0edb21c691e9f"
      ],
      "author": {
        "name": "Cody P Schafer",
        "email": "cody@linux.vnet.ibm.com",
        "time": "Fri Feb 22 16:35:23 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:20 2013 -0800"
      },
      "message": "mm: add \u0026 use zone_end_pfn() and zone_spans_pfn()\n\nAdd 2 helpers (zone_end_pfn() and zone_spans_pfn()) to reduce code\nduplication.\n\nThis also switches to using them in compaction (where an additional\nvariable needed to be renamed), page_alloc, vmstat, memory_hotplug, and\nkmemleak.\n\nNote that in compaction.c I avoid calling zone_end_pfn() repeatedly\nbecause I expect at some point the sycronization issues with start_pfn \u0026\nspanned_pages will need fixing, either by actually using the seqlock or\nclever memory barrier usage.\n\nSigned-off-by: Cody P Schafer \u003ccody@linux.vnet.ibm.com\u003e\nCc: David Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9127ab4ff92f0ecd7b4671efa9d0edb21c691e9f",
      "tree": "dbf80a98e775d88378d93c0d20209374d6fac9b2",
      "parents": [
        "4805b02e90187c68d8f4e3305c3482b797e35809"
      ],
      "author": {
        "name": "Cody P Schafer",
        "email": "cody@linux.vnet.ibm.com",
        "time": "Fri Feb 22 16:35:21 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:20 2013 -0800"
      },
      "message": "mm: add SECTION_IN_PAGE_FLAGS\n\nInstead of directly utilizing a combination of config options to determine\nthis, add a macro to specifically address it.\n\nSigned-off-by: Cody P Schafer \u003ccody@linux.vnet.ibm.com\u003e\nCc: David Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e3790144c9091631a18564aa64db8a971da02c41",
      "tree": "5bdfc979f120d647ed617893ab9e300c2b4913c5",
      "parents": [
        "860f2759d94bf9db637d85d75d074de88af54688"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Fri Feb 22 16:35:19 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:20 2013 -0800"
      },
      "message": "mm: refactor inactive_file_is_low() to use get_lru_size()\n\nAn inactive file list is considered low when its active counterpart is\nbigger, regardless of whether it is a global zone LRU list or a memcg\nzone LRU list.  The only difference is in how the LRU size is assessed.\n\nget_lru_size() does the right thing for both global and memcg reclaim\nsituations.\n\nGet rid of inactive_file_is_low_global() and\nmem_cgroup_inactive_file_is_low() by using get_lru_size() and compare\nthe numbers in common code.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9c620e2bc5aa4256c102ada34e6c76204ed5898b",
      "tree": "667dc829d7c5fa0261658fa6488f67cbd52bfb7e",
      "parents": [
        "b79bc0a0c79e06cc87e17530e9c1c56c6f297e17"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Fri Feb 22 16:35:14 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:19 2013 -0800"
      },
      "message": "mm: remove offlining arg to migrate_pages\n\nNo functional change, but the only purpose of the offlining argument to\nmigrate_pages() etc, was to ensure that __unmap_and_move() could migrate a\nKSM page for memory hotremove (which took ksm_thread_mutex) but not for\nother callers.  Now all cases are safe, remove the arg.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Petr Holasek \u003cpholasek@redhat.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Izik Eidus \u003cizik.eidus@ravellosystems.com\u003e\nCc: Gerald Schaefer \u003cgerald.schaefer@de.ibm.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@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": "cbf86cfe04a66471f23b9e62e5eba4e525f38855",
      "tree": "5572b238db52f238e3291354a4bba161f4495627",
      "parents": [
        "8aafa6a485ae77ce4a49eb1280f3d2c6074a03fb"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Fri Feb 22 16:35:08 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:19 2013 -0800"
      },
      "message": "ksm: remove old stable nodes more thoroughly\n\nSwitching merge_across_nodes after running KSM is liable to oops on stale\nnodes still left over from the previous stable tree.  It\u0027s not something\nthat people will often want to do, but it would be lame to demand a reboot\nwhen they\u0027re trying to determine which merge_across_nodes setting is best.\n\nHow can this happen?  We only permit switching merge_across_nodes when\npages_shared is 0, and usually set run 2 to force that beforehand, which\nought to unmerge everything: yet oopses still occur when you then run 1.\n\nThree causes:\n\n1. The old stable tree (built according to the inverse\n   merge_across_nodes) has not been fully torn down.  A stable node\n   lingers until get_ksm_page() notices that the page it references no\n   longer references it: but the page is not necessarily freed as soon as\n   expected, particularly when swapcache.\n\n   Fix this with a pass through the old stable tree, applying\n   get_ksm_page() to each of the remaining nodes (most found stale and\n   removed immediately), with forced removal of any left over.  Unless the\n   page is still mapped: I\u0027ve not seen that case, it shouldn\u0027t occur, but\n   better to WARN_ON_ONCE and EBUSY than BUG.\n\n2. __ksm_enter() has a nice little optimization, to insert the new mm\n   just behind ksmd\u0027s cursor, so there\u0027s a full pass for it to stabilize\n   (or be removed) before ksmd addresses it.  Nice when ksmd is running,\n   but not so nice when we\u0027re trying to unmerge all mms: we were missing\n   those mms forked and inserted behind the unmerge cursor.  Easily fixed\n   by inserting at the end when KSM_RUN_UNMERGE.\n\n3.  It is possible for a KSM page to be faulted back from swapcache\n   into an mm, just after unmerge_and_remove_all_rmap_items() scanned past\n   it.  Fix this by copying on fault when KSM_RUN_UNMERGE: but that is\n   private to ksm.c, so dissolve the distinction between\n   ksm_might_need_to_copy() and ksm_does_need_to_copy(), doing it all in\n   the one call into ksm.c.\n\nA long outstanding, unrelated bugfix sneaks in with that third fix:\nksm_does_need_to_copy() would copy from a !PageUptodate page (implying I/O\nerror when read in from swap) to a page which it then marks Uptodate.  Fix\nthis case by not copying, letting do_swap_page() discover the error.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Petr Holasek \u003cpholasek@redhat.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Izik Eidus \u003cizik.eidus@ravellosystems.com\u003e\nCc: Gerald Schaefer \u003cgerald.schaefer@de.ibm.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@gmail.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "22b751c3d0376e86a377e3a0aa2ddbbe9d2eefc1",
      "tree": "fe946d7d4350b2454d65f88377d264fbc93958ce",
      "parents": [
        "e4715f01be697a3730c78f8ffffb595591d6a88c"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Fri Feb 22 16:34:59 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:18 2013 -0800"
      },
      "message": "mm: rename page struct field helpers\n\nThe function names page_xchg_last_nid(), page_last_nid() and\nreset_page_last_nid() were judged to be inconsistent so rename them to a\nstruct_field_op style pattern.  As it looked jarring to have\nreset_page_mapcount() and page_nid_reset_last() beside each other in\nmemmap_init_zone(), this patch also renames reset_page_mapcount() to\npage_mapcount_reset().  There are others like init_page_count() but as\nit is used throughout the arch code a rename would likely cause more\nconflicts than it is worth.\n\n[akpm@linux-foundation.org: fix zcache]\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nSuggested-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4468b8f1e2d32ce79ef4bcb8e00d7e88627f1c3a",
      "tree": "a73555b462198c396da08acab928a788f3733b71",
      "parents": [
        "6acc8b02517d7063b25490b26215834bd2f363c8"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Fri Feb 22 16:34:46 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:18 2013 -0800"
      },
      "message": "mm: uninline page_xchg_last_nid()\n\nAndrew Morton pointed out that page_xchg_last_nid() and\nreset_page_last_nid() were \"getting nuttily large\" and asked that it be\ninvestigated.\n\nreset_page_last_nid() is on the page free path and it would be\nunfortunate to make that path more expensive than it needs to be.  Due\nto the internal use of page_xchg_last_nid() it is already too expensive\nbut fortunately, it should also be impossible for the page-\u003eflags to be\nupdated in parallel when we call reset_page_last_nid().  Instead of\nunlining the function, it uses a simplier implementation that assumes no\nparallel updates and should now be sufficiently short for inlining.\n\npage_xchg_last_nid() is called in paths that are already quite expensive\n(splitting huge page, fault handling, migration) and it is reasonable to\nuninline.  There was not really a good place to place the function but\nmm/mmzone.c was the closest fit IMO.\n\nThis patch saved 128 bytes of text in the vmlinux file for the kernel\nconfiguration I used for testing automatic NUMA balancing.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "75f7ad8e043d9383337d917584297f7737154bbf",
      "tree": "101f5f2373b615bf83838cd13615fd123dfd765c",
      "parents": [
        "08b52706d505658eac0962d215ff697f898bbc13"
      ],
      "author": {
        "name": "Paul Szabo",
        "email": "psz@maths.usyd.edu.au",
        "time": "Fri Feb 22 16:34:42 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:17 2013 -0800"
      },
      "message": "page-writeback.c: subtract min_free_kbytes from dirtyable memory\n\nWhen calculating amount of dirtyable memory, min_free_kbytes should be\nsubtracted because it is not intended for dirty pages.\n\nAddresses http://bugs.debian.org/695182\n\n[akpm@linux-foundation.org: fix up min_free_kbytes extern declarations]\n[akpm@linux-foundation.org: fix min() warning]\nSigned-off-by: Paul Szabo \u003cpsz@maths.usyd.edu.au\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "08b52706d505658eac0962d215ff697f898bbc13",
      "tree": "b732ff7986179ab4e767ccbf5f6909a67cdb03c3",
      "parents": [
        "ec8acf20afb8534ed511f6613dd2226b9e301010"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Fri Feb 22 16:34:40 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:17 2013 -0800"
      },
      "message": "mm/rmap: rename anon_vma_unlock() \u003d\u003e anon_vma_unlock_write()\n\nThe comment in commit 4fc3f1d66b1e (\"mm/rmap, migration: Make\nrmap_walk_anon() and try_to_unmap_anon() more scalable\") says:\n\n| Rename anon_vma_[un]lock() \u003d\u003e anon_vma_[un]lock_write(),\n| to make it clearer that it\u0027s an exclusive write-lock in\n| that case - suggested by Rik van Riel.\n\nBut that commit renames only anon_vma_lock()\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ec8acf20afb8534ed511f6613dd2226b9e301010",
      "tree": "a0d6779eeffa0f523a2799dbb619e0a34fd786d4",
      "parents": [
        "33806f06da654092182410d974b6d3c5396ea3eb"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shli@kernel.org",
        "time": "Fri Feb 22 16:34:38 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:17 2013 -0800"
      },
      "message": "swap: add per-partition lock for swapfile\n\nswap_lock is heavily contended when I test swap to 3 fast SSD (even\nslightly slower than swap to 2 such SSD).  The main contention comes\nfrom swap_info_get().  This patch tries to fix the gap with adding a new\nper-partition lock.\n\nGlobal data like nr_swapfiles, total_swap_pages, least_priority and\nswap_list are still protected by swap_lock.\n\nnr_swap_pages is an atomic now, it can be changed without swap_lock.  In\ntheory, it\u0027s possible get_swap_page() finds no swap pages but actually\nthere are free swap pages.  But sounds not a big problem.\n\nAccessing partition specific data (like scan_swap_map and so on) is only\nprotected by swap_info_struct.lock.\n\nChanging swap_info_struct.flags need hold swap_lock and\nswap_info_struct.lock, because scan_scan_map() will check it.  read the\nflags is ok with either the locks hold.\n\nIf both swap_lock and swap_info_struct.lock must be hold, we always hold\nthe former first to avoid deadlock.\n\nswap_entry_free() can change swap_list.  To delete that code, we add a\nnew highest_priority_index.  Whenever get_swap_page() is called, we\ncheck it.  If it\u0027s valid, we use it.\n\nIt\u0027s a pity get_swap_page() still holds swap_lock().  But in practice,\nswap_lock() isn\u0027t heavily contended in my test with this patch (or I can\nsay there are other much more heavier bottlenecks like TLB flush).  And\nBTW, looks get_swap_page() doesn\u0027t really need the lock.  We never free\nswap_info[] and we check SWAP_WRITEOK flag.  The only risk without the\nlock is we could swapout to some low priority swap, but we can quickly\nrecover after several rounds of swap, so sounds not a big deal to me.\nBut I\u0027d prefer to fix this if it\u0027s a real problem.\n\n\"swap: make each swap partition have one address_space\" improved the\nswapout speed from 1.7G/s to 2G/s.  This patch further improves the\nspeed to 2.3G/s, so around 15% improvement.  It\u0027s a multi-process test,\nso TLB flush isn\u0027t the biggest bottleneck before the patches.\n\n[arnd@arndb.de: fix it for nommu]\n[hughd@google.com: add missing unlock]\n[minchan@kernel.org: get rid of lockdep whinge on sys_swapon]\nSigned-off-by: Shaohua Li \u003cshli@fusionio.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nCc: Seth Jennings \u003csjenning@linux.vnet.ibm.com\u003e\nCc: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nCc: Xiao Guangrong \u003cxiaoguangrong@linux.vnet.ibm.com\u003e\nCc: Dan Magenheimer \u003cdan.magenheimer@oracle.com\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Minchan Kim \u003cminchan@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "33806f06da654092182410d974b6d3c5396ea3eb",
      "tree": "7f7da99d94481a1d4c78ebf05b410fc8ba654a39",
      "parents": [
        "9800339b5e0f0e24ab3dac349e0de80d2018832e"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shli@kernel.org",
        "time": "Fri Feb 22 16:34:37 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:17 2013 -0800"
      },
      "message": "swap: make each swap partition have one address_space\n\nWhen I use several fast SSD to do swap, swapper_space.tree_lock is\nheavily contended.  This makes each swap partition have one\naddress_space to reduce the lock contention.  There is an array of\naddress_space for swap.  The swap entry type is the index to the array.\n\nIn my test with 3 SSD, this increases the swapout throughput 20%.\n\n[akpm@linux-foundation.org: revert unneeded change to  __add_to_swap_cache]\nSigned-off-by: Shaohua Li \u003cshli@fusionio.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Minchan Kim \u003cminchan@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9800339b5e0f0e24ab3dac349e0de80d2018832e",
      "tree": "7f0cc5d46cbf881729ff3b2d97f425570674c95d",
      "parents": [
        "340ef3902cf20cec43cdcd1e72ae5cb518be7328"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shli@kernel.org",
        "time": "Fri Feb 22 16:34:35 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:17 2013 -0800"
      },
      "message": "mm: don\u0027t inline page_mapping()\n\nAccording to akpm, this saves 1/2k text and makes things simple for the\nnext patch.\n\nNumbers from Minchan:\n\nadd/remove: 1/0 grow/shrink: 6/22 up/down: 92/-516 (-424)\nfunction                                     old     new   delta\npage_mapping                                   -      48     +48\ndo_task_stat                                2292    2308     +16\npage_remove_rmap                             240     248      +8\nload_elf_binary                             4500    4508      +8\nupdate_queue                                 532     536      +4\nscsi_probe_and_add_lun                      2892    2896      +4\nlookup_fast                                  644     648      +4\nvcs_read                                    1040    1036      -4\n__ip_route_output_key                       1904    1900      -4\nip_route_input_noref                        2508    2500      -8\nshmem_file_aio_read                          784     772     -12\n__isolate_lru_page                           272     256     -16\nshmem_replace_page                           708     688     -20\nmark_buffer_dirty                            228     208     -20\n__set_page_dirty_buffers                     240     220     -20\n__remove_mapping                             276     256     -20\nupdate_mmu_cache                             500     476     -24\nset_page_dirty_balance                        92      68     -24\nset_page_dirty                               172     148     -24\npage_evictable                                88      64     -24\npage_cache_pipe_buf_steal                    248     224     -24\nclear_page_dirty_for_io                      340     316     -24\ntest_set_page_writeback                      400     372     -28\ntest_clear_page_writeback                    516     488     -28\ninvalidate_inode_page                        156     128     -28\npage_mkclean                                 432     400     -32\nflush_dcache_page                            360     328     -32\n__set_page_dirty_nobuffers                   324     280     -44\nshrink_page_list                            2412    2356     -56\n\nSigned-off-by: Shaohua Li \u003cshli@fusionio.com\u003e\nSuggested-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "75980e97daccfc6babbac7e180ff118537955f5d",
      "tree": "b5721bae11eab21a8ee7c2ba4c7f153a59766dd6",
      "parents": [
        "bbeae5b05ef6e40bf54db05ceb8635824153b9e2"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Feb 22 16:34:32 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:17 2013 -0800"
      },
      "message": "mm: fold page-\u003e_last_nid into page-\u003eflags where possible\n\npage-\u003e_last_nid fits into page-\u003eflags on 64-bit.  The unlikely 32-bit\nNUMA configuration with NUMA Balancing will still need an extra page\nfield.  As Peter notes \"Completely dropping 32bit support for\nCONFIG_NUMA_BALANCING would simplify things, but it would also remove\nthe warning if we grow enough 64bit only page-flags to push the last-cpu\nout.\"\n\n[mgorman@suse.de: minor modifications]\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Simon Jeons \u003csimon.jeons@gmail.com\u003e\nCc: Wanpeng Li \u003cliwanp@linux.vnet.ibm.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bbeae5b05ef6e40bf54db05ceb8635824153b9e2",
      "tree": "293d8b4e4bfc06367908df1915460905a5f8408b",
      "parents": [
        "3c0ff4689630b280704666833e9539d84cddc373"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Feb 22 16:34:30 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:17 2013 -0800"
      },
      "message": "mm: move page flags layout to separate header\n\nThis is a preparation patch for moving page-\u003e_last_nid into page-\u003eflags\nthat moves page flag layout information to a separate header.  This\npatch is necessary because otherwise there would be a circular\ndependency between mm_types.h and mm.h.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Simon Jeons \u003csimon.jeons@gmail.com\u003e\nCc: Wanpeng Li \u003cliwanp@linux.vnet.ibm.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3c0ff4689630b280704666833e9539d84cddc373",
      "tree": "ea1a35d1589d5c7758f5857af2fd414c04065271",
      "parents": [
        "3abef4e6c23feef4aa9ab161ae138d6d39ae69f3"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Fri Feb 22 16:34:29 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:16 2013 -0800"
      },
      "message": "mm: numa: handle side-effects in count_vm_numa_events() for !CONFIG_NUMA_BALANCING\n\nThe current definitions for count_vm_numa_events() is wrong for\n!CONFIG_NUMA_BALANCING as the following would miss the side-effect.\n\n\tcount_vm_numa_events(NUMA_FOO, bar++);\n\nThere are no such users of count_vm_numa_events() but this patch fixes\nit as it is a potential pitfall.  Ideally both would be converted to\nstatic inline but NUMA_PTE_UPDATES is not defined if\n!CONFIG_NUMA_BALANCING and creating dummy constants just to have a\nstatic inline would be similarly clumsy.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Simon Jeons \u003csimon.jeons@gmail.com\u003e\nCc: Wanpeng Li \u003cliwanp@linux.vnet.ibm.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "34f0315adb58af3b01f59d05b2bce267474e71cb",
      "tree": "e9da9b3927eb7b79136b580101274de552f37292",
      "parents": [
        "cf82f3489cf414fe27c6c5af2b372fdcd2a58b24"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Fri Feb 22 16:34:25 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:16 2013 -0800"
      },
      "message": "mm: numa: fix minor typo in numa_next_scan\n\ns/me/be/ and clarify the comment a bit when we\u0027re changing it anyway.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nSuggested-by: Simon Jeons \u003csimon.jeons@gmail.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Wanpeng Li \u003cliwanp@linux.vnet.ibm.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cf82f3489cf414fe27c6c5af2b372fdcd2a58b24",
      "tree": "dc9bbe14ea7c407eb1b5a0a6b9f4e33f131b5475",
      "parents": [
        "4d769def244806562de1baa3acb39726131fbe6a"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill.shutemov@linux.intel.com",
        "time": "Fri Feb 22 16:34:24 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:16 2013 -0800"
      },
      "message": "mm: remove unused memclear_highpage_flush()\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e823407f7b11fa06ba8e7a2801eb9ed11268a7ec",
      "tree": "7fa1131c6607b2df9975c890b0a22a7cf0d6e15f",
      "parents": [
        "21caf2fc1931b485483ddd254b634fa8f0099963"
      ],
      "author": {
        "name": "Ming Lei",
        "email": "ming.lei@canonical.com",
        "time": "Fri Feb 22 16:34:11 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:16 2013 -0800"
      },
      "message": "pm / runtime: introduce pm_runtime_set_memalloc_noio()\n\nIntroduce the flag memalloc_noio in \u0027struct dev_pm_info\u0027 to help PM core\nto teach mm not allocating memory with GFP_KERNEL flag for avoiding\nprobable deadlock.\n\nAs explained in the comment, any GFP_KERNEL allocation inside\nruntime_resume() or runtime_suspend() on any one of device in the path\nfrom one block or network device to the root device in the device tree\nmay cause deadlock, the introduced pm_runtime_set_memalloc_noio() sets\nor clears the flag on device in the path recursively.\n\nSigned-off-by: Ming Lei \u003cming.lei@canonical.com\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nCc: Oliver Neukum \u003coneukum@suse.de\u003e\nCc: Jiri Kosina \u003cjiri.kosina@suse.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: David Decotigny \u003cdavid.decotigny@google.com\u003e\nCc: Tom Herbert \u003ctherbert@google.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": "21caf2fc1931b485483ddd254b634fa8f0099963",
      "tree": "e7cbdfe56948775328f7622522620864356d8264",
      "parents": [
        "258401a60c4df39332f30ef57afbc6dbf29a7e84"
      ],
      "author": {
        "name": "Ming Lei",
        "email": "ming.lei@canonical.com",
        "time": "Fri Feb 22 16:34:08 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:16 2013 -0800"
      },
      "message": "mm: teach mm by current context info to not do I/O during memory allocation\n\nThis patch introduces PF_MEMALLOC_NOIO on process flag(\u0027flags\u0027 field of\n\u0027struct task_struct\u0027), so that the flag can be set by one task to avoid\ndoing I/O inside memory allocation in the task\u0027s context.\n\nThe patch trys to solve one deadlock problem caused by block device, and\nthe problem may happen at least in the below situations:\n\n- during block device runtime resume, if memory allocation with\n  GFP_KERNEL is called inside runtime resume callback of any one of its\n  ancestors(or the block device itself), the deadlock may be triggered\n  inside the memory allocation since it might not complete until the block\n  device becomes active and the involed page I/O finishes.  The situation\n  is pointed out first by Alan Stern.  It is not a good approach to\n  convert all GFP_KERNEL[1] in the path into GFP_NOIO because several\n  subsystems may be involved(for example, PCI, USB and SCSI may be\n  involved for usb mass stoarage device, network devices involved too in\n  the iSCSI case)\n\n- during block device runtime suspend, because runtime resume need to\n  wait for completion of concurrent runtime suspend.\n\n- during error handling of usb mass storage deivce, USB bus reset will\n  be put on the device, so there shouldn\u0027t have any memory allocation with\n  GFP_KERNEL during USB bus reset, otherwise the deadlock similar with\n  above may be triggered.  Unfortunately, any usb device may include one\n  mass storage interface in theory, so it requires all usb interface\n  drivers to handle the situation.  In fact, most usb drivers don\u0027t know\n  how to handle bus reset on the device and don\u0027t provide .pre_set() and\n  .post_reset() callback at all, so USB core has to unbind and bind driver\n  for these devices.  So it is still not practical to resort to GFP_NOIO\n  for solving the problem.\n\nAlso the introduced solution can be used by block subsystem or block\ndrivers too, for example, set the PF_MEMALLOC_NOIO flag before doing\nactual I/O transfer.\n\nIt is not a good idea to convert all these GFP_KERNEL in the affected\npath into GFP_NOIO because these functions doing that may be implemented\nas library and will be called in many other contexts.\n\nIn fact, memalloc_noio_flags() can convert some of current static\nGFP_NOIO allocation into GFP_KERNEL back in other non-affected contexts,\nat least almost all GFP_NOIO in USB subsystem can be converted into\nGFP_KERNEL after applying the approach and make allocation with GFP_NOIO\nonly happen in runtime resume/bus reset/block I/O transfer contexts\ngenerally.\n\n[1], several GFP_KERNEL allocation examples in runtime resume path\n\n- pci subsystem\nacpi_os_allocate\n\t\u003c-acpi_ut_allocate\n\t\t\u003c-ACPI_ALLOCATE_ZEROED\n\t\t\t\u003c-acpi_evaluate_object\n\t\t\t\t\u003c-__acpi_bus_set_power\n\t\t\t\t\t\u003c-acpi_bus_set_power\n\t\t\t\t\t\t\u003c-acpi_pci_set_power_state\n\t\t\t\t\t\t\t\u003c-platform_pci_set_power_state\n\t\t\t\t\t\t\t\t\u003c-pci_platform_power_transition\n\t\t\t\t\t\t\t\t\t\u003c-__pci_complete_power_transition\n\t\t\t\t\t\t\t\t\t\t\u003c-pci_set_power_state\n\t\t\t\t\t\t\t\t\t\t\t\u003c-pci_restore_standard_config\n\t\t\t\t\t\t\t\t\t\t\t\t\u003c-pci_pm_runtime_resume\n- usb subsystem\nusb_get_status\n\t\u003c-finish_port_resume\n\t\t\u003c-usb_port_resume\n\t\t\t\u003c-generic_resume\n\t\t\t\t\u003c-usb_resume_device\n\t\t\t\t\t\u003c-usb_resume_both\n\t\t\t\t\t\t\u003c-usb_runtime_resume\n\n- some individual usb drivers\nusblp, uvc, gspca, most of dvb-usb-v2 media drivers, cpia2, az6007, ....\n\nThat is just what I have found.  Unfortunately, this allocation can only\nbe found by human being now, and there should be many not found since\nany function in the resume path(call tree) may allocate memory with\nGFP_KERNEL.\n\nSigned-off-by: Ming Lei \u003cming.lei@canonical.com\u003e\nSigned-off-by: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nCc: Oliver Neukum \u003coneukum@suse.de\u003e\nCc: Jiri Kosina \u003cjiri.kosina@suse.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: David Decotigny \u003cdavid.decotigny@google.com\u003e\nCc: Tom Herbert \u003ctherbert@google.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": "258401a60c4df39332f30ef57afbc6dbf29a7e84",
      "tree": "a397beebf23182f77ca6e688681d79eb3181308a",
      "parents": [
        "4db0e950c5b78586bea9e1b027be849631f89a17"
      ],
      "author": {
        "name": "Zlatko Calusic",
        "email": "zlatko.calusic@iskon.hr",
        "time": "Fri Feb 22 16:34:06 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:15 2013 -0800"
      },
      "message": "mm: don\u0027t wait on congested zones in balance_pgdat()\n\nFrom: Zlatko Calusic \u003czlatko.calusic@iskon.hr\u003e\n\nCommit 92df3a723f84 (\"mm: vmscan: throttle reclaim if encountering too\nmany dirty pages under writeback\") introduced waiting on congested zones\nbased on a sane algorithm in shrink_inactive_list().\n\nWhat this means is that there\u0027s no more need for throttling and\nadditional heuristics in balance_pgdat().  So, let\u0027s remove it and tidy\nup the code.\n\nSigned-off-by: Zlatko Calusic \u003czlatko.calusic@iskon.hr\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Johannes Weiner \u003cjweiner@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "293c07e31ab5a0b8df8c19b2a9e5c6fa30308849",
      "tree": "753affc0e179b7de49c03dc58d7d75f34ffe4e62",
      "parents": [
        "fa8dd8a92dccc1b29cefd7f51334285d6ed35281"
      ],
      "author": {
        "name": "Xishi Qiu",
        "email": "qiuxishi@huawei.com",
        "time": "Fri Feb 22 16:34:02 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:15 2013 -0800"
      },
      "message": "memory-failure: use num_poisoned_pages instead of mce_bad_pages\n\nSince MCE is an x86 concept, and this code is in mm/, it would be better\nto use the name num_poisoned_pages instead of mce_bad_pages.\n\n[akpm@linux-foundation.org: fix mm/sparse.c]\nSigned-off-by: Xishi Qiu \u003cqiuxishi@huawei.com\u003e\nSigned-off-by: Jiang Liu \u003cjiang.liu@huawei.com\u003e\nSuggested-by: Borislav Petkov \u003cbp@alien8.de\u003e\nReviewed-by: Wanpeng Li \u003cliwanp@linux.vnet.ibm.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "194159fbcc0d6ac1351837d3cd7a27a4af0219a6",
      "tree": "a5a960a4c8698001db50a987015131bb5d256c6e",
      "parents": [
        "c60514b6314137a9505c60966fda2094b22a2fda"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan@kernel.org",
        "time": "Fri Feb 22 16:33:58 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:15 2013 -0800"
      },
      "message": "mm: remove MIGRATE_ISOLATE check in hotpath\n\nSeveral functions test MIGRATE_ISOLATE and some of those are hotpath but\nMIGRATE_ISOLATE is used only if we enable CONFIG_MEMORY_ISOLATION(ie,\nCMA, memory-hotplug and memory-failure) which are not common config\noption.  So let\u0027s not add unnecessary overhead and code when we don\u0027t\nenable CONFIG_MEMORY_ISOLATION.\n\nSigned-off-by: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f7210e6c4ac795694106c1c5307134d3fc233e88",
      "tree": "1d453017db83fbf575ae88c0015e877a9fe05d9e",
      "parents": [
        "01a178a94e8eaec351b29ee49fbb3d1c124cb7fb"
      ],
      "author": {
        "name": "Tang Chen",
        "email": "tangchen@cn.fujitsu.com",
        "time": "Fri Feb 22 16:33:51 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:14 2013 -0800"
      },
      "message": "mm/memblock.c: use CONFIG_HAVE_MEMBLOCK_NODE_MAP to protect movablecore_map in memblock_overlaps_region().\n\nThe definition of struct movablecore_map is protected by\nCONFIG_HAVE_MEMBLOCK_NODE_MAP but its use in memblock_overlaps_region()\nis not.  So add CONFIG_HAVE_MEMBLOCK_NODE_MAP to protect the use of\nmovablecore_map in memblock_overlaps_region().\n\nSigned-off-by: Tang Chen \u003ctangchen@cn.fujitsu.com\u003e\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "01a178a94e8eaec351b29ee49fbb3d1c124cb7fb",
      "tree": "de978b65bf5d4a05c78cb5ce1180dc3fb04bd12d",
      "parents": [
        "27168d38fa209073219abedbe6a9de7ba9acbfad"
      ],
      "author": {
        "name": "Tang Chen",
        "email": "tangchen@cn.fujitsu.com",
        "time": "Fri Feb 22 16:33:49 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:14 2013 -0800"
      },
      "message": "acpi, memory-hotplug: support getting hotplug info from SRAT\n\nWe now provide an option for users who don\u0027t want to specify physical\nmemory address in kernel commandline.\n\n         /*\n          * For movablemem_map\u003dacpi:\n          *\n          * SRAT:                |_____| |_____| |_________| |_________| ......\n          * node id:                0       1         1           2\n          * hotpluggable:           n       y         y           n\n          * movablemem_map:              |_____| |_________|\n          *\n          * Using movablemem_map, we can prevent memblock from allocating memory\n          * on ZONE_MOVABLE at boot time.\n          */\n\nSo user just specify movablemem_map\u003dacpi, and the kernel will use\nhotpluggable info in SRAT to determine which memory ranges should be set\nas ZONE_MOVABLE.\n\nIf all the memory ranges in SRAT is hotpluggable, then no memory can be\nused by kernel.  But before parsing SRAT, memblock has already reserve\nsome memory ranges for other purposes, such as for kernel image, and so\non.  We cannot prevent kernel from using these memory.  So we need to\nexclude these ranges even if these memory is hotpluggable.\n\nFurthermore, there could be several memory ranges in the single node\nwhich the kernel resides in.  We may skip one range that have memory\nreserved by memblock, but if the rest of memory is too small, then the\nkernel will fail to boot.  So, make the whole node which the kernel\nresides in un-hotpluggable.  Then the kernel has enough memory to use.\n\nNOTE: Using this way will cause NUMA performance down because the\n      whole node will be set as ZONE_MOVABLE, and kernel cannot use memory\n      on it.  If users don\u0027t want to lose NUMA performance, just don\u0027t use\n      it.\n\n[akpm@linux-foundation.org: fix warning]\n[akpm@linux-foundation.org: use strcmp()]\nSigned-off-by: Tang Chen \u003ctangchen@cn.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Jiang Liu \u003cjiang.liu@huawei.com\u003e\nCc: Jianguo Wu \u003cwujianguo@huawei.com\u003e\nCc: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Wu Jianguo \u003cwujianguo@huawei.com\u003e\nCc: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: \"Brown, Len\" \u003clen.brown@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "27168d38fa209073219abedbe6a9de7ba9acbfad",
      "tree": "6c8ff96722ce02b0c01b2ce4078777712e0df339",
      "parents": [
        "e8d1955258091e4c92d5a975ebd7fd8a98f5d30f"
      ],
      "author": {
        "name": "Tang Chen",
        "email": "tangchen@cn.fujitsu.com",
        "time": "Fri Feb 22 16:33:46 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:14 2013 -0800"
      },
      "message": "acpi, memory-hotplug: extend movablemem_map ranges to the end of node\n\nWhen implementing movablemem_map boot option, we introduced an array\nmovablemem_map.map[] to store the memory ranges to be set as\nZONE_MOVABLE.\n\nSince ZONE_MOVABLE is the latst zone of a node, if user didn\u0027t specify\nthe whole node memory range, we need to extend it to the node end so\nthat we can use it to prevent memblock from allocating memory in the\nranges user didn\u0027t specify.\n\nWe now implement movablemem_map boot option like this:\n\n        /*\n         * For movablemem_map\u003dnn[KMG]@ss[KMG]:\n         *\n         * SRAT:                |_____| |_____| |_________| |_________| ......\n         * node id:                0       1         1           2\n         * user specified:                |__|                 |___|\n         * movablemem_map:                |___| |_________|    |______| ......\n         *\n         * Using movablemem_map, we can prevent memblock from allocating memory\n         * on ZONE_MOVABLE at boot time.\n         *\n         * NOTE: In this case, SRAT info will be ingored.\n         */\n\n[akpm@linux-foundation.org: clean up code, fix build warning]\nSigned-off-by: Tang Chen \u003ctangchen@cn.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Jiang Liu \u003cjiang.liu@huawei.com\u003e\nCc: Jianguo Wu \u003cwujianguo@huawei.com\u003e\nCc: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Wu Jianguo \u003cwujianguo@huawei.com\u003e\nCc: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: \"Brown, Len\" \u003clen.brown@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e8d1955258091e4c92d5a975ebd7fd8a98f5d30f",
      "tree": "747facdf560c5ca88af4952614c7d5376ad3e4c3",
      "parents": [
        "fb06bc8e5f42f38c011de0e59481f464a82380f6"
      ],
      "author": {
        "name": "Tang Chen",
        "email": "tangchen@cn.fujitsu.com",
        "time": "Fri Feb 22 16:33:44 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:14 2013 -0800"
      },
      "message": "acpi, memory-hotplug: parse SRAT before memblock is ready\n\nOn linux, the pages used by kernel could not be migrated.  As a result,\nif a memory range is used by kernel, it cannot be hot-removed.  So if we\nwant to hot-remove memory, we should prevent kernel from using it.\n\nThe way now used to prevent this is specify a memory range by\nmovablemem_map boot option and set it as ZONE_MOVABLE.\n\nBut when the system is booting, memblock will allocate memory, and\nreserve the memory for kernel.  And before we parse SRAT, and know the\nnode memory ranges, memblock is working.  And it may allocate memory in\nranges to be set as ZONE_MOVABLE.  This memory can be used by kernel,\nand never be freed.\n\nSo, let\u0027s parse SRAT before memblock is called first.  And it is early\nenough.\n\nThe first call of memblock_find_in_range_node() is in:\n\n  setup_arch()\n    |--\u003esetup_real_mode()\n\nso, this patch add a function early_parse_srat() to parse SRAT, and call\nit before setup_real_mode() is called.\n\nNOTE:\n\n1) early_parse_srat() is called before numa_init(), and has initialized\n   numa_meminfo.  So DO NOT clear numa_nodes_parsed in numa_init() and DO\n   NOT zero numa_meminfo in numa_init(), otherwise we will lose memory\n   numa info.\n\n2) I don\u0027t know why using count of memory affinities parsed from SRAT\n   as a return value in original acpi_numa_init().  So I add a static\n   variable srat_mem_cnt to remember this count and use it as the return\n   value of the new acpi_numa_init()\n\n[mhocko@suse.cz: parse SRAT before memblock is ready fix]\nSigned-off-by: Tang Chen \u003ctangchen@cn.fujitsu.com\u003e\nReviewed-by: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Jiang Liu \u003cjiang.liu@huawei.com\u003e\nCc: Jianguo Wu \u003cwujianguo@huawei.com\u003e\nCc: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Wu Jianguo \u003cwujianguo@huawei.com\u003e\nCc: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: \"Brown, Len\" \u003clen.brown@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fb06bc8e5f42f38c011de0e59481f464a82380f6",
      "tree": "ac55622da0b397e57cdb426f634441939187f99d",
      "parents": [
        "42f47e27e761fee07da69e04612ec7dd0d490edd"
      ],
      "author": {
        "name": "Tang Chen",
        "email": "tangchen@cn.fujitsu.com",
        "time": "Fri Feb 22 16:33:42 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:14 2013 -0800"
      },
      "message": "page_alloc: bootmem limit with movablecore_map\n\nEnsure the bootmem will not allocate memory from areas that may be\nZONE_MOVABLE.  The map info is from movablecore_map boot option.\n\nSigned-off-by: Tang Chen \u003ctangchen@cn.fujitsu.com\u003e\nReviewed-by: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nReviewed-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nTested-by: Lin Feng \u003clinfeng@cn.fujitsu.com\u003e\nCc: Wu Jianguo \u003cwujianguo@huawei.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "34b71f1e04fcba578e719e675b4882eeeb2a1f6f",
      "tree": "beafbed8dce82b108e95baa2c2424ee0f3e94701",
      "parents": [
        "4d59a75125d5a4717e57e9fc62c64b3d346e603e"
      ],
      "author": {
        "name": "Tang Chen",
        "email": "tangchen@cn.fujitsu.com",
        "time": "Fri Feb 22 16:33:37 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:14 2013 -0800"
      },
      "message": "page_alloc: add movable_memmap kernel parameter\n\nAdd functions to parse movablemem_map boot option.  Since the option\ncould be specified more then once, all the maps will be stored in the\nglobal variable movablemem_map.map array.\n\nAnd also, we keep the array in monotonic increasing order by start_pfn.\nAnd merge all overlapped ranges.\n\n[akpm@linux-foundation.org: improve comment]\n[akpm@linux-foundation.org: checkpatch fixes]\n[akpm@linux-foundation.org: remove unneeded parens]\nSigned-off-by: Tang Chen \u003ctangchen@cn.fujitsu.com\u003e\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nReviewed-by: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nTested-by: Lin Feng \u003clinfeng@cn.fujitsu.com\u003e\nCc: Wu Jianguo \u003cwujianguo@huawei.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "90b30cdc1d87450e2ae89c8f8a29102dc2c1992e",
      "tree": "b613d6e644d7f0605f5a471c133f356da6ff5ea4",
      "parents": [
        "c4c605246452d0e578945ea95a8e72877e97e8c6"
      ],
      "author": {
        "name": "Wen Congyang",
        "email": "wency@cn.fujitsu.com",
        "time": "Fri Feb 22 16:33:27 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:13 2013 -0800"
      },
      "message": "memory-hotplug: export the function try_offline_node()\n\ntry_offline_node() will be needed in the tristate\ndrivers/acpi/processor_driver.c.\n\nThe node will be offlined when all memory/cpu on the node have been\nhotremoved.  So we need the function try_offline_node() in cpu-hotplug\npath.\n\nIf the memory-hotplug is disabled, and cpu-hotplug is enabled\n\n1. no memory no the node\n   we don\u0027t online the node, and cpu\u0027s node is the nearest node.\n\n2. the node contains some memory\n   the node has been onlined, and cpu\u0027s node is still needed\n   to migrate the sleep task on the cpu to the same node.\n\nSo we do nothing in try_offline_node() in this case.\n\n[rientjes@google.com: export the function try_offline_node() fix]\nSigned-off-by: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nSigned-off-by: Tang Chen \u003ctangchen@cn.fujitsu.com\u003e\nCc: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Jiang Liu \u003cliuj97@gmail.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "60a5a19e7419ba0bc22ed01b3285e8940b42944c",
      "tree": "ab50aec968bd3386c53c8611f9e0215910daa6bd",
      "parents": [
        "815121d2b5cd56f1757d4468dc3abadd06a0ed6b"
      ],
      "author": {
        "name": "Tang Chen",
        "email": "tangchen@cn.fujitsu.com",
        "time": "Fri Feb 22 16:33:14 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:13 2013 -0800"
      },
      "message": "memory-hotplug: remove sysfs file of node\n\nIntroduce a new function try_offline_node() to remove sysfs file of node\nwhen all memory sections of this node are removed.  If some memory\nsections of this node are not removed, this function does nothing.\n\nSigned-off-by: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nSigned-off-by: Tang Chen \u003ctangchen@cn.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Jiang Liu \u003cjiang.liu@huawei.com\u003e\nCc: Jianguo Wu \u003cwujianguo@huawei.com\u003e\nCc: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Wu Jianguo \u003cwujianguo@huawei.com\u003e\nCc: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0197518cd3672029618a16a57597946a094ac7a8",
      "tree": "64785feea48812285b31d690a167c3c488c8017a",
      "parents": [
        "bbcab8789d4a5b942773aa7496794ceebe2d3f78"
      ],
      "author": {
        "name": "Tang Chen",
        "email": "tangchen@cn.fujitsu.com",
        "time": "Fri Feb 22 16:33:08 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:12 2013 -0800"
      },
      "message": "memory-hotplug: remove memmap of sparse-vmemmap\n\nIntroduce a new API vmemmap_free() to free and remove vmemmap\npagetables.  Since pagetable implements are different, each architecture\nhas to provide its own version of vmemmap_free(), just like\nvmemmap_populate().\n\nNote: vmemmap_free() is not implemented for ia64, ppc, s390, and sparc.\n\n[mhocko@suse.cz: fix implicit declaration of remove_pagetable]\nSigned-off-by: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nSigned-off-by: Jianguo Wu \u003cwujianguo@huawei.com\u003e\nSigned-off-by: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nSigned-off-by: Tang Chen \u003ctangchen@cn.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Jiang Liu \u003cjiang.liu@huawei.com\u003e\nCc: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Wu Jianguo \u003cwujianguo@huawei.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ae9aae9eda2db71bf4b592f15618b0160eb07731",
      "tree": "9d91b4cba95a464cc19afc33a54d807ec2f372fc",
      "parents": [
        "cd099682e4c786c3a866e462b37fcac6e3a44a68"
      ],
      "author": {
        "name": "Wen Congyang",
        "email": "wency@cn.fujitsu.com",
        "time": "Fri Feb 22 16:33:04 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:12 2013 -0800"
      },
      "message": "memory-hotplug: common APIs to support page tables hot-remove\n\nWhen memory is removed, the corresponding pagetables should alse be\nremoved.  This patch introduces some common APIs to support vmemmap\npagetable and x86_64 architecture direct mapping pagetable removing.\n\nAll pages of virtual mapping in removed memory cannot be freed if some\npages used as PGD/PUD include not only removed memory but also other\nmemory.  So this patch uses the following way to check whether a page\ncan be freed or not.\n\n1) When removing memory, the page structs of the removed memory are\n   filled with 0FD.\n\n2) All page structs are filled with 0xFD on PT/PMD, PT/PMD can be\n   cleared.  In this case, the page used as PT/PMD can be freed.\n\nFor direct mapping pages, update direct_pages_count[level] when we freed\ntheir pagetables.  And do not free the pages again because they were\nfreed when offlining.\n\nFor vmemmap pages, free the pages and their pagetables.\n\nFor larger pages, do not split them into smaller ones because there is\nno way to know if the larger page has been split.  As a result, there is\nno way to decide when to split.  We deal the larger pages in the\nfollowing way:\n\n1) For direct mapped pages, all the pages were freed when they were\n   offlined.  And since menmory offline is done section by section, all\n   the memory ranges being removed are aligned to PAGE_SIZE.  So only need\n   to deal with unaligned pages when freeing vmemmap pages.\n\n2) For vmemmap pages being used to store page_struct, if part of the\n   larger page is still in use, just fill the unused part with 0xFD.  And\n   when the whole page is fulfilled with 0xFD, then free the larger page.\n\n[akpm@linux-foundation.org: fix typo in comment]\n[tangchen@cn.fujitsu.com: do not calculate direct mapping pages when freeing vmemmap pagetables]\n[tangchen@cn.fujitsu.com: do not free direct mapping pages twice]\n[tangchen@cn.fujitsu.com: do not free page split from hugepage one by one]\n[tangchen@cn.fujitsu.com: do not split pages when freeing pagetable pages]\n[akpm@linux-foundation.org: use pmd_page_vaddr()]\n[akpm@linux-foundation.org: fix used-uninitialised bug]\nSigned-off-by: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nSigned-off-by: Jianguo Wu \u003cwujianguo@huawei.com\u003e\nSigned-off-by: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nSigned-off-by: Tang Chen \u003ctangchen@cn.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Jiang Liu \u003cjiang.liu@huawei.com\u003e\nCc: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Wu Jianguo \u003cwujianguo@huawei.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "46723bfa540f0a1e494476a1734d03626a0bd1e0",
      "tree": "c8d3ef712dd67b45c9334f04edeec4aa981a2e29",
      "parents": [
        "24d335ca3606b610ec69c66a1e42760c96d89470"
      ],
      "author": {
        "name": "Yasuaki Ishimatsu",
        "email": "isimatu.yasuaki@jp.fujitsu.com",
        "time": "Fri Feb 22 16:33:00 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:12 2013 -0800"
      },
      "message": "memory-hotplug: implement register_page_bootmem_info_section of sparse-vmemmap\n\nFor removing memmap region of sparse-vmemmap which is allocated bootmem,\nmemmap region of sparse-vmemmap needs to be registered by\nget_page_bootmem().  So the patch searches pages of virtual mapping and\nregisters the pages by get_page_bootmem().\n\nNOTE: register_page_bootmem_memmap() is not implemented for ia64,\n      ppc, s390, and sparc.  So introduce CONFIG_HAVE_BOOTMEM_INFO_NODE\n      and revert register_page_bootmem_info_node() when platform doesn\u0027t\n      support it.\n\n      It\u0027s implemented by adding a new Kconfig option named\n      CONFIG_HAVE_BOOTMEM_INFO_NODE, which will be automatically selected\n      by memory-hotplug feature fully supported archs(currently only on\n      x86_64).\n\n      Since we have 2 config options called MEMORY_HOTPLUG and\n      MEMORY_HOTREMOVE used for memory hot-add and hot-remove separately,\n      and codes in function register_page_bootmem_info_node() are only\n      used for collecting infomation for hot-remove, so reside it under\n      MEMORY_HOTREMOVE.\n\n      Besides page_isolation.c selected by MEMORY_ISOLATION under\n      MEMORY_HOTPLUG is also such case, move it too.\n\n[mhocko@suse.cz: put register_page_bootmem_memmap inside CONFIG_MEMORY_HOTPLUG_SPARSE]\n[linfeng@cn.fujitsu.com: introduce CONFIG_HAVE_BOOTMEM_INFO_NODE and revert register_page_bootmem_info_node()]\n[mhocko@suse.cz: remove the arch specific functions without any implementation]\n[linfeng@cn.fujitsu.com: mm/Kconfig: move auto selects from MEMORY_HOTPLUG to MEMORY_HOTREMOVE as needed]\n[rientjes@google.com: fix defined but not used warning]\nSigned-off-by: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nSigned-off-by: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nSigned-off-by: Tang Chen \u003ctangchen@cn.fujitsu.com\u003e\nReviewed-by: Wu Jianguo \u003cwujianguo@huawei.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Jiang Liu \u003cjiang.liu@huawei.com\u003e\nCc: Jianguo Wu \u003cwujianguo@huawei.com\u003e\nCc: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nSigned-off-by: Lin Feng \u003clinfeng@cn.fujitsu.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "24d335ca3606b610ec69c66a1e42760c96d89470",
      "tree": "62d6157cbb273c029ea1052690725037524cbbeb",
      "parents": [
        "46c66c4b7ba0f9bb3e2ae3a3cfd40cd3472c8f80"
      ],
      "author": {
        "name": "Wen Congyang",
        "email": "wency@cn.fujitsu.com",
        "time": "Fri Feb 22 16:32:58 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:12 2013 -0800"
      },
      "message": "memory-hotplug: introduce new arch_remove_memory() for removing page table\n\nFor removing memory, we need to remove page tables.  But it depends on\narchitecture.  So the patch introduce arch_remove_memory() for removing\npage table.  Now it only calls __remove_pages().\n\nNote: __remove_pages() for some archtecuture is not implemented\n      (I don\u0027t know how to implement it for s390).\n\nSigned-off-by: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nSigned-off-by: Tang Chen \u003ctangchen@cn.fujitsu.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Jiang Liu \u003cjiang.liu@huawei.com\u003e\nCc: Jianguo Wu \u003cwujianguo@huawei.com\u003e\nCc: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Wu Jianguo \u003cwujianguo@huawei.com\u003e\nCc: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "46c66c4b7ba0f9bb3e2ae3a3cfd40cd3472c8f80",
      "tree": "eb33a350aab3adae19a91a6e63918df1a3904585",
      "parents": [
        "bbc76be67c2c0c12548937a07ea3643c32a95b8c"
      ],
      "author": {
        "name": "Yasuaki Ishimatsu",
        "email": "isimatu.yasuaki@jp.fujitsu.com",
        "time": "Fri Feb 22 16:32:56 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:12 2013 -0800"
      },
      "message": "memory-hotplug: remove /sys/firmware/memmap/X sysfs\n\nWhen (hot)adding memory into system, /sys/firmware/memmap/X/{end, start,\ntype} sysfs files are created.  But there is no code to remove these\nfiles.  This patch implements the function to remove them.\n\nWe cannot free firmware_map_entry which is allocated by bootmem because\nthere is no way to do so when the system is up.  But we can at least\nremember the address of that memory and reuse the storage when the\nmemory is added next time.\n\nThis patch also introduces a new list map_entries_bootmem to link the\nmap entries allocated by bootmem when they are removed, and a lock to\nprotect it.  And these entries will be reused when the memory is\nhot-added again.\n\nThe idea is suggestted by Andrew Morton.\n\nNOTE: It is unsafe to return an entry pointer and release the\n      map_entries_lock.  So we should not hold the map_entries_lock\n      separately in firmware_map_find_entry() and\n      firmware_map_remove_entry().  Hold the map_entries_lock across find\n      and remove /sys/firmware/memmap/X operation.\n\n       And also, users of these two functions need to be careful to\n      hold the lock when using these two functions.\n\n[tangchen@cn.fujitsu.com: Hold spinlock across find|remove /sys operation]\n[tangchen@cn.fujitsu.com: fix the wrong comments of map_entries]\n[tangchen@cn.fujitsu.com: reuse the storage of /sys/firmware/memmap/X/ allocated by bootmem]\n[tangchen@cn.fujitsu.com: fix section mismatch problem]\n[tangchen@cn.fujitsu.com: fix the doc format in drivers/firmware/memmap.c]\nSigned-off-by: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nSigned-off-by: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nSigned-off-by: Tang Chen \u003ctangchen@cn.fujitsu.com\u003e\nReviewed-by: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Jiang Liu \u003cjiang.liu@huawei.com\u003e\nCc: Jianguo Wu \u003cwujianguo@huawei.com\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Tang Chen \u003ctangchen@cn.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Julian Calaby \u003cjulian.calaby@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": "6677e3eaf4d78abd7b09133414c05dc3ec353e7f",
      "tree": "62898a335513651e498d0ace2eb0f554d2ddc0bb",
      "parents": [
        "993c1aad8f316dbafae6a0ec660ec846676838d6"
      ],
      "author": {
        "name": "Yasuaki Ishimatsu",
        "email": "isimatu.yasuaki@jp.fujitsu.com",
        "time": "Fri Feb 22 16:32:52 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:11 2013 -0800"
      },
      "message": "memory-hotplug: check whether all memory blocks are offlined or not when removing memory\n\nWe remove the memory like this:\n\n 1. lock memory hotplug\n 2. offline a memory block\n 3. unlock memory hotplug\n 4. repeat 1-3 to offline all memory blocks\n 5. lock memory hotplug\n 6. remove memory(TODO)\n 7. unlock memory hotplug\n\nAll memory blocks must be offlined before removing memory.  But we don\u0027t\nhold the lock in the whole operation.  So we should check whether all\nmemory blocks are offlined before step6.  Otherwise, kernel maybe\npanicked.\n\nOfflining a memory block and removing a memory device can be two\ndifferent operations.  Users can just offline some memory blocks without\nremoving the memory device.  For this purpose, the kernel has held\nlock_memory_hotplug() in __offline_pages().  To reuse the code for\nmemory hot-remove, we repeat step 1-3 to offline all the memory blocks,\nrepeatedly lock and unlock memory hotplug, but not hold the memory\nhotplug lock in the whole operation.\n\nSigned-off-by: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nSigned-off-by: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nSigned-off-by: Tang Chen \u003ctangchen@cn.fujitsu.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Jiang Liu \u003cjiang.liu@huawei.com\u003e\nCc: Jianguo Wu \u003cwujianguo@huawei.com\u003e\nCc: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Wu Jianguo \u003cwujianguo@huawei.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "41badc15cbad0350de34408c1b0c690f9df76d4b",
      "tree": "2545134398b99b37259bf6412a0bb56442f120fa",
      "parents": [
        "1869305009857cdeaabe6283bcdc2359c5784543"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Fri Feb 22 16:32:47 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:11 2013 -0800"
      },
      "message": "mm: make do_mmap_pgoff return populate as a size in bytes, not as a bool\n\ndo_mmap_pgoff() rounds up the desired size to the next PAGE_SIZE\nmultiple, however there was no equivalent code in mm_populate(), which\ncaused issues.\n\nThis could be fixed by introduced the same rounding in mm_populate(),\nhowever I think it\u0027s preferable to make do_mmap_pgoff() return populate\nas a size rather than as a boolean, so we don\u0027t have to duplicate the\nsize rounding logic in mm_populate().\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nTested-by: Andy Lutomirski \u003cluto@amacapital.net\u003e\nCc: Greg Ungerer \u003cgregungerer@westnet.com.au\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1869305009857cdeaabe6283bcdc2359c5784543",
      "tree": "a8a500c71e7aa3a645322635f3d591c16601af27",
      "parents": [
        "cea10a19b7972a1954c4a2d05a7de8db48b444fb"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Fri Feb 22 16:32:46 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:11 2013 -0800"
      },
      "message": "mm: introduce VM_POPULATE flag to better deal with racy userspace programs\n\nThe vm_populate() code populates user mappings without constantly\nholding the mmap_sem.  This makes it susceptible to racy userspace\nprograms: the user mappings may change while vm_populate() is running,\nand in this case vm_populate() may end up populating the new mapping\ninstead of the old one.\n\nIn order to reduce the possibility of userspace getting surprised by\nthis behavior, this change introduces the VM_POPULATE vma flag which\ngets set on vmas we want vm_populate() to work on.  This way\nvm_populate() may still end up populating the new mapping after such a\nrace, but only if the new mapping is also one that the user has\nrequested (using MAP_SHARED, MAP_LOCKED or mlock) to be populated.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nTested-by: Andy Lutomirski \u003cluto@amacapital.net\u003e\nCc: Greg Ungerer \u003cgregungerer@westnet.com.au\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cea10a19b7972a1954c4a2d05a7de8db48b444fb",
      "tree": "694b3c906259cfbfc7b7cb1b0eb507ecf0d1d63c",
      "parents": [
        "c22c0d6344c362b1dde5d8e160d3d07536aca120"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Fri Feb 22 16:32:44 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:11 2013 -0800"
      },
      "message": "mm: directly use __mlock_vma_pages_range() in find_extend_vma()\n\nIn find_extend_vma(), we don\u0027t need mlock_vma_pages_range() to verify\nthe vma type - we know we\u0027re working with a stack.  So, we can call\ndirectly into __mlock_vma_pages_range(), and remove the last\nmake_pages_present() call site.\n\nNote that we don\u0027t use mm_populate() here, so we can\u0027t release the\nmmap_sem while allocating new stack pages.  This is deemed acceptable,\nbecause the stack vmas grow by a bounded number of pages at a time, and\nthese are anon pages so we don\u0027t have to read from disk to populate\nthem.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nTested-by: Andy Lutomirski \u003cluto@amacapital.net\u003e\nCc: Greg Ungerer \u003cgregungerer@westnet.com.au\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c22c0d6344c362b1dde5d8e160d3d07536aca120",
      "tree": "00350da7f08f8a1b8495294bccc05d768fb1682e",
      "parents": [
        "81909b842107ef8ca499f46ecb9b7afd87c20c52"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Fri Feb 22 16:32:43 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:11 2013 -0800"
      },
      "message": "mm: remove flags argument to mmap_region\n\nAfter the MAP_POPULATE handling has been moved to mmap_region() call\nsites, the only remaining use of the flags argument is to pass the\nMAP_NORESERVE flag.  This can be just as easily handled by\ndo_mmap_pgoff(), so do that and remove the mmap_region() flags\nparameter.\n\n[akpm@linux-foundation.org: remove double parens]\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nTested-by: Andy Lutomirski \u003cluto@amacapital.net\u003e\nCc: Greg Ungerer \u003cgregungerer@westnet.com.au\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bebeb3d68b24bb4132d452c5707fe321208bcbcd",
      "tree": "6e609cb7323fb1b4b7026fa0e35867145a181094",
      "parents": [
        "940e7da5163029978c2f6b5bbe213607add59062"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Fri Feb 22 16:32:37 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:10 2013 -0800"
      },
      "message": "mm: introduce mm_populate() for populating new vmas\n\nWhen creating new mappings using the MAP_POPULATE / MAP_LOCKED flags (or\nwith MCL_FUTURE in effect), we want to populate the pages within the\nnewly created vmas.  This may take a while as we may have to read pages\nfrom disk, so ideally we want to do this outside of the write-locked\nmmap_sem region.\n\nThis change introduces mm_populate(), which is used to defer populating\nsuch mappings until after the mmap_sem write lock has been released.\nThis is implemented as a generalization of the former do_mlock_pages(),\nwhich accomplished the same task but was using during mlock() /\nmlockall().\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nReported-by: Andy Lutomirski \u003cluto@amacapital.net\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nTested-by: Andy Lutomirski \u003cluto@amacapital.net\u003e\nCc: Greg Ungerer \u003cgregungerer@westnet.com.au\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7103f16dbff20fa969c9500902d980d17f953fa6",
      "tree": "96d9bd87587789d4186df826f430e4fb60e67643",
      "parents": [
        "1998cc048901109a29924380b8e91bc049b32951"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Fri Feb 22 16:32:33 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:10 2013 -0800"
      },
      "message": "mm: compaction: make __compact_pgdat() and compact_pgdat() return void\n\nThese functions always return 0.  Formalise this.\n\nCc: Jason Liu \u003cr64343@freescale.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d778df51c09264076fe0208c099ef7d428f21790",
      "tree": "8022d838d72a46c23736218c460714652282a6db",
      "parents": [
        "7c5bd705d8f983ae1868a126956f5aa3a6702e3f"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Fri Feb 22 16:32:12 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:09 2013 -0800"
      },
      "message": "mm: vmscan: save work scanning (almost) empty LRU lists\n\nIn certain cases (kswapd reclaim, memcg target reclaim), a fixed minimum\namount of pages is scanned from the LRU lists on each iteration, to make\nprogress.\n\nDo not make this minimum bigger than the respective LRU list size,\nhowever, and save some busy work trying to isolate and reclaim pages\nthat are not there.\n\nEmpty LRU lists are quite common with memory cgroups in NUMA\nenvironments because there exists a set of LRU lists for each zone for\neach memory cgroup, while the memory of a single cgroup is expected to\nstay on just one node.  The number of expected empty LRU lists is thus\n\n  memcgs * (nodes - 1) * lru types\n\nEach attempt to reclaim from an empty LRU list does expensive size\ncomparisons between lists, acquires the zone\u0027s lru lock etc.  Avoid\nthat.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Satoru Moriya \u003csatoru.moriya@hds.com\u003e\nCc: Simon Jeons \u003csimon.jeons@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": "2ef14f465b9e096531343f5b734cffc5f759f4a6",
      "tree": "07b504d7105842a4b1a74cf1e153023a02fb9c1e",
      "parents": [
        "cb715a836642e0ec69350670d1c2f800f3e2d2e4",
        "0da3e7f526fde7a6522a3038b7ce609fc50f6707"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 18:06:55 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 18:06:55 2013 -0800"
      },
      "message": "Merge branch \u0027x86-mm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x86 mm changes from Peter Anvin:\n \"This is a huge set of several partly interrelated (and concurrently\n  developed) changes, which is why the branch history is messier than\n  one would like.\n\n  The *really* big items are two humonguous patchsets mostly developed\n  by Yinghai Lu at my request, which completely revamps the way we\n  create initial page tables.  In particular, rather than estimating how\n  much memory we will need for page tables and then build them into that\n  memory -- a calculation that has shown to be incredibly fragile -- we\n  now build them (on 64 bits) with the aid of a \"pseudo-linear mode\" --\n  a #PF handler which creates temporary page tables on demand.\n\n  This has several advantages:\n\n  1. It makes it much easier to support things that need access to data\n     very early (a followon patchset uses this to load microcode way\n     early in the kernel startup).\n\n  2. It allows the kernel and all the kernel data objects to be invoked\n     from above the 4 GB limit.  This allows kdump to work on very large\n     systems.\n\n  3. It greatly reduces the difference between Xen and native (Xen\u0027s\n     equivalent of the #PF handler are the temporary page tables created\n     by the domain builder), eliminating a bunch of fragile hooks.\n\n  The patch series also gets us a bit closer to W^X.\n\n  Additional work in this pull is the 64-bit get_user() work which you\n  were also involved with, and a bunch of cleanups/speedups to\n  __phys_addr()/__pa().\"\n\n* \u0027x86-mm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (105 commits)\n  x86, mm: Move reserving low memory later in initialization\n  x86, doc: Clarify the use of asm(\"%edx\") in uaccess.h\n  x86, mm: Redesign get_user with a __builtin_choose_expr hack\n  x86: Be consistent with data size in getuser.S\n  x86, mm: Use a bitfield to mask nuisance get_user() warnings\n  x86/kvm: Fix compile warning in kvm_register_steal_time()\n  x86-32: Add support for 64bit get_user()\n  x86-32, mm: Remove reference to alloc_remap()\n  x86-32, mm: Remove reference to resume_map_numa_kva()\n  x86-32, mm: Rip out x86_32 NUMA remapping code\n  x86/numa: Use __pa_nodebug() instead\n  x86: Don\u0027t panic if can not alloc buffer for swiotlb\n  mm: Add alloc_bootmem_low_pages_nopanic()\n  x86, 64bit, mm: hibernate use generic mapping_init\n  x86, 64bit, mm: Mark data/bss/brk to nx\n  x86: Merge early kernel reserve for 32bit and 64bit\n  x86: Add Crash kernel low reservation\n  x86, kdump: Remove crashkernel range find limit for 64bit\n  memblock: Add memblock_mem_size()\n  x86, boot: Not need to check setup_header version for setup_data\n  ...\n"
    },
    {
      "commit": "81ec44a6c69342fec1b1140c60a604027e429f69",
      "tree": "ee6bec8a94ef28e111bf766cf4b7a9366cb4f7c1",
      "parents": [
        "48a732dfaa77a4dfec803aa8f248373998704f76",
        "e80cfc31d872b6b85b8966bce6ba80bee401a7dd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 17:54:03 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 17:54:03 2013 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux\n\nPull s390 update from Martin Schwidefsky:\n \"The most prominent change in this patch set is the software dirty bit\n  patch for s390.  It removes __HAVE_ARCH_PAGE_TEST_AND_CLEAR_DIRTY and\n  the page_test_and_clear_dirty primitive which makes the common memory\n  management code a bit less obscure.\n\n  Heiko fixed most of the PCI related fallout, more often than not\n  missing GENERIC_HARDIRQS dependencies.  Notable is one of the 3270\n  patches which adds an export to tty_io to be able to resize a tty.\n\n  The rest is the usual bunch of cleanups and bug fixes.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (42 commits)\n  s390/module: Add missing R_390_NONE relocation type\n  drivers/gpio: add missing GENERIC_HARDIRQ dependency\n  drivers/input: add couple of missing GENERIC_HARDIRQS dependencies\n  s390/cleanup: rename SPP to LPP\n  s390/mm: implement software dirty bits\n  s390/mm: Fix crst upgrade of mmap with MAP_FIXED\n  s390/linker skript: discard exit.data at runtime\n  drivers/media: add missing GENERIC_HARDIRQS dependency\n  s390/bpf,jit: add vlan tag support\n  drivers/net,AT91RM9200: add missing GENERIC_HARDIRQS dependency\n  iucv: fix kernel panic at reboot\n  s390/Kconfig: sort list of arch selected config options\n  phylib: remove !S390 dependeny from Kconfig\n  uio: remove !S390 dependency from Kconfig\n  dasd: fix sysfs cleanup in dasd_generic_remove\n  s390/pci: fix hotplug module init\n  s390/pci: cleanup clp page allocation\n  s390/pci: cleanup clp inline assembly\n  s390/perf: cpum_cf: fallback to software sampling events\n  s390/mm: provide PAGE_SHARED define\n  ...\n"
    },
    {
      "commit": "48a732dfaa77a4dfec803aa8f248373998704f76",
      "tree": "b8ea89d3f48bc82fcc1b14d8cd356241e7ef2d37",
      "parents": [
        "9afa3195b96da7d2320ec44d19fbfbded7a15571",
        "0d69a3c731e120b05b7da9fb976830475a3fbc01"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 17:41:38 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 17:41:38 2013 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid\n\nPull HID subsystem updates from Jiri Kosina:\n \"HID subsystem and drivers update. Highlights:\n\n   - new support of a group of Win7/Win8 multitouch devices, from\n     Benjamin Tissoires\n\n   - fix for compat interface brokenness in uhid, from Dmitry Torokhov\n\n   - conversion of drivers to use hid_driver helper, by H Hartley\n     Sweeten\n\n   - HID over I2C transport received ACPI enumeration support, written\n     by Mika Westerberg\n\n   - there is an ongoing effort to make HID sensor hubs independent of\n     USB transport.  The first self-contained part of this work is\n     provided here, done by Mika Westerberg\n\n   - a few smaller fixes here and there, support for a couple new\n     devices added\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (43 commits)\n  HID: Correct Logitech order in hid-ids.h\n  HID: LG4FF: Remove unnecessary deadzone code\n  HID: LG: Prevent the Logitech Gaming Wheels deadzone\n  HID: LG: Fix detection of Logitech Speed Force Wireless (WiiWheel)\n  HID: LG: Add support for Logitech Momo Force (Red) Wheel\n  HID: hidraw: print message when succesfully initialized\n  HID: logitech: split accel, brake for Driving Force wheel\n  HID: logitech: add report descriptor for Driving Force wheel\n  HID: add ThingM blink(1) USB RGB LED support\n  HID: uhid: make creating devices work on 64/32 systems\n  HID: wiimote: fix nunchuck button parser\n  HID: blacklist Velleman data acquisition boards\n  HID: sensor-hub: don\u0027t limit the driver only to USB bus\n  HID: sensor-hub: get rid of unused sensor_hub_grabbed_usages[] table\n  HID: extend autodetect to handle I2C sensors as well\n  HID: ntrig: use input_configured() callback to set the name\n  HID: multitouch: do not use pointers towards hid-core\n  HID: add missing GENERIC_HARDIRQ dependency\n  HID: multitouch: make MT_CLS_ALWAYS_TRUE the new default class\n  HID: multitouch: fix protocol for Elo panels\n  ...\n"
    },
    {
      "commit": "9afa3195b96da7d2320ec44d19fbfbded7a15571",
      "tree": "15c4222de2a2b2814c9430dcb4e997b18597881c",
      "parents": [
        "7c2db36e730ee4facd341679ecb21ee73ba92831",
        "df63447f1a4402d7d9c6a9cd1c39a6d6766452d1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 17:40:58 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 17:40:58 2013 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\nPull trivial tree from Jiri Kosina:\n \"Assorted tiny fixes queued in trivial tree\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (22 commits)\n  DocBook: update EXPORT_SYMBOL entry to point at export.h\n  Documentation: update top level 00-INDEX file with new additions\n  ARM: at91/ide: remove unsused at91-ide Kconfig entry\n  percpu_counter.h: comment code for better readability\n  x86, efi: fix comment typo in head_32.S\n  IB: cxgb3: delay freeing mem untill entirely done with it\n  net: mvneta: remove unneeded version.h include\n  time: x86: report_lost_ticks doesn\u0027t exist any more\n  pcmcia: avoid static analysis complaint about use-after-free\n  fs/jfs: Fix typo in comment : \u0027how may\u0027 -\u003e \u0027how many\u0027\n  of: add missing documentation for of_platform_populate()\n  btrfs: remove unnecessary cur_trans set before goto loop in join_transaction\n  sound: soc: Fix typo in sound/codecs\n  treewide: Fix typo in various drivers\n  btrfs: fix comment typos\n  Update ibmvscsi module name in Kconfig.\n  powerpc: fix typo (utilties -\u003e utilities)\n  of: fix spelling mistake in comment\n  h8300: Fix home page URL in h8300/README\n  xtensa: Fix home page URL in Kconfig\n  ...\n"
    },
    {
      "commit": "7c2db36e730ee4facd341679ecb21ee73ba92831",
      "tree": "75016fba72aaf0581b9263f7fa4c565e6e634f3c",
      "parents": [
        "8b5628ab83b671f96ac9f174c1bd51c92589fc82",
        "a47a376f1c025e23e836c0376813c0424de665c2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 17:38:49 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 17:38:49 2013 -0800"
      },
      "message": "Merge branch \u0027akpm\u0027 (incoming from Andrew)\n\nMerge misc patches from Andrew Morton:\n\n - Florian has vanished so I appear to have become fbdev maintainer\n   again :(\n\n - Joel and Mark are distracted to welcome to the new OCFS2 maintainer\n\n - The backlight queue\n\n - Small core kernel changes\n\n - lib/ updates\n\n - The rtc queue\n\n - Various random bits\n\n* akpm: (164 commits)\n  rtc: rtc-davinci: use devm_*() functions\n  rtc: rtc-max8997: use devm_request_threaded_irq()\n  rtc: rtc-max8907: use devm_request_threaded_irq()\n  rtc: rtc-da9052: use devm_request_threaded_irq()\n  rtc: rtc-wm831x: use devm_request_threaded_irq()\n  rtc: rtc-tps80031: use devm_request_threaded_irq()\n  rtc: rtc-lp8788: use devm_request_threaded_irq()\n  rtc: rtc-coh901331: use devm_clk_get()\n  rtc: rtc-vt8500: use devm_*() functions\n  rtc: rtc-tps6586x: use devm_request_threaded_irq()\n  rtc: rtc-imxdi: use devm_clk_get()\n  rtc: rtc-cmos: use dev_warn()/dev_dbg() instead of printk()/pr_debug()\n  rtc: rtc-pcf8583: use dev_warn() instead of printk()\n  rtc: rtc-sun4v: use pr_warn() instead of printk()\n  rtc: rtc-vr41xx: use dev_info() instead of printk()\n  rtc: rtc-rs5c313: use pr_err() instead of printk()\n  rtc: rtc-at91rm9200: use dev_dbg()/dev_err() instead of printk()/pr_debug()\n  rtc: rtc-rs5c372: use dev_dbg()/dev_warn() instead of printk()/pr_debug()\n  rtc: rtc-ds2404: use dev_err() instead of printk()\n  rtc: rtc-efi: use dev_err()/dev_warn()/pr_err() instead of printk()\n  ...\n"
    },
    {
      "commit": "26e8ccc223ebfd2047a96074f142544dc7062cfe",
      "tree": "5bb294732ee8502a139d578d61d1faaae2031618",
      "parents": [
        "68853bc2b360c06094477523f7d28efd2d9e3bf3"
      ],
      "author": {
        "name": "Kim, Milo",
        "email": "Milo.Kim@ti.com",
        "time": "Thu Feb 21 16:44:06 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 17:22:25 2013 -0800"
      },
      "message": "backlight: lp855x_bl: support new LP8557 device\n\nLP8557 is one of LP855x family device, but it has different register map\nand initialization process.  To support this device, device specific\nconfiguration is done through the lp855x_device_config structure.\n\nFew register definitions are fixed for better readability.\n  BRIGHTNESS_CTRL -\u003e LP855X_BRIGHTNESS_CTRL\n  DEVICE_CTRL     -\u003e LP855X_DEVICE_CTRL\n  EEPROM_START    -\u003e LP855X_EEPROM_START\n  EEPROM_END      -\u003e LP855X_EEPROM_END\n  EPROM_START     -\u003e LP8556_EPROM_START\n  EPROM_END       -\u003e LP8556_EPROM_END\n\nAnd LP8557 register definitions are added.  New register function,\nlp855x_update_bit() is added.\n\nSigned-off-by: Milo(Woogyom) Kim \u003cmilo.kim@ti.com\u003e\nAcked-by: Jingoo Han \u003cjg1.han@samsung.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "36d308d8b547ee19d3fa7399858e5a1632413d0e",
      "tree": "243dddf1159e211963e7d3d2cb0a16dc61506c60",
      "parents": [
        "7d7992108d02aa92ad4c77e5d9ce14088c942e75"
      ],
      "author": {
        "name": "Mikhail Gruzdev",
        "email": "michail.gruzdev@gmail.com",
        "time": "Thu Feb 21 16:43:10 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 17:22:21 2013 -0800"
      },
      "message": "printk: add pr_devel_once and pr_devel_ratelimited\n\nStandardize pr_devel logging macros family by adding pr_devel_once and\npr_devel_ratelimited.\n\nSigned-off-by: Mikhail Gruzdev \u003cmichail.gruzdev@gmail.com\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "242260fb858e99674289484bc2bfe3b41f9c4cbb",
      "tree": "09dcf9a2a5c21d27ed06f028c0096a727eaf64f3",
      "parents": [
        "76e8402619cf777a3adae9cd70e56a848a9bf952"
      ],
      "author": {
        "name": "Christian Kujau",
        "email": "lists@nerdbynature.de",
        "time": "Thu Feb 21 16:43:05 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 17:22:20 2013 -0800"
      },
      "message": "sun.com documentation fixes\n\nAfter I came across a help text for SUNGEM mentioning a broken sun.com\nURL, I felt like fixing those up, as they are now pointing to oracle.com\nURLs.\n\nSigned-off-by: Christian Kujau \u003clists@nerdbynature.de\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9a46ad6d6df3b547d057c39db13f69d7170a99e9",
      "tree": "684a14d248639c2411c46f53dc7acba4a81c357c",
      "parents": [
        "6d1c7ccae946f5c959f5c9236813d9c33ae48537"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shli@kernel.org",
        "time": "Thu Feb 21 16:43:03 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 17:22:20 2013 -0800"
      },
      "message": "smp: make smp_call_function_many() use logic similar to smp_call_function_single()\n\nI\u0027m testing swapout workload in a two-socket Xeon machine.  The workload\nhas 10 threads, each thread sequentially accesses separate memory\nregion.  TLB flush overhead is very big in the workload.  For each page,\npage reclaim need move it from active lru list and then unmap it.  Both\nneed a TLB flush.  And this is a multthread workload, TLB flush happens\nin 10 CPUs.  In X86, TLB flush uses generic smp_call)function.  So this\nworkload stress smp_call_function_many heavily.\n\nWithout patch, perf shows:\n+  24.49%  [k] generic_smp_call_function_interrupt\n-  21.72%  [k] _raw_spin_lock\n   - _raw_spin_lock\n      + 79.80% __page_check_address\n      + 6.42% generic_smp_call_function_interrupt\n      + 3.31% get_swap_page\n      + 2.37% free_pcppages_bulk\n      + 1.75% handle_pte_fault\n      + 1.54% put_super\n      + 1.41% grab_super_passive\n      + 1.36% __swap_duplicate\n      + 0.68% blk_flush_plug_list\n      + 0.62% swap_info_get\n+   6.55%  [k] flush_tlb_func\n+   6.46%  [k] smp_call_function_many\n+   5.09%  [k] call_function_interrupt\n+   4.75%  [k] default_send_IPI_mask_sequence_phys\n+   2.18%  [k] find_next_bit\n\nswapout throughput is around 1300M/s.\n\nWith the patch, perf shows:\n-  27.23%  [k] _raw_spin_lock\n   - _raw_spin_lock\n      + 80.53% __page_check_address\n      + 8.39% generic_smp_call_function_single_interrupt\n      + 2.44% get_swap_page\n      + 1.76% free_pcppages_bulk\n      + 1.40% handle_pte_fault\n      + 1.15% __swap_duplicate\n      + 1.05% put_super\n      + 0.98% grab_super_passive\n      + 0.86% blk_flush_plug_list\n      + 0.57% swap_info_get\n+   8.25%  [k] default_send_IPI_mask_sequence_phys\n+   7.55%  [k] call_function_interrupt\n+   7.47%  [k] smp_call_function_many\n+   7.25%  [k] flush_tlb_func\n+   3.81%  [k] _raw_spin_lock_irqsave\n+   3.78%  [k] generic_smp_call_function_single_interrupt\n\nswapout throughput is around 1400M/s.  So there is around a 7%\nimprovement, and total cpu utilization doesn\u0027t change.\n\nWithout the patch, cfd_data is shared by all CPUs.\ngeneric_smp_call_function_interrupt does read/write cfd_data several times\nwhich will create a lot of cache ping-pong.  With the patch, the data\nbecomes per-cpu.  The ping-pong is avoided.  And from the perf data, this\ndoesn\u0027t make call_single_queue lock contend.\n\nNext step is to remove generic_smp_call_function_interrupt() from arch\ncode.\n\nSigned-off-by: Shaohua Li \u003cshli@fusionio.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ffecfd1a72fccfcee3dabb99b9ecba9735318f90",
      "tree": "a5c3caf67249ec811a2c2c95678d9349fd8e2412",
      "parents": [
        "13575ca14fcdacd1ad914d00bc63eb4d96280986"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "darrick.wong@oracle.com",
        "time": "Thu Feb 21 16:42:55 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 17:22:20 2013 -0800"
      },
      "message": "block: optionally snapshot page contents to provide stable pages during write\n\nThis provides a band-aid to provide stable page writes on jbd without\nneeding to backport the fixed locking and page writeback bit handling\nschemes of jbd2.  The band-aid works by using bounce buffers to snapshot\npage contents instead of waiting.\n\nFor those wondering about the ext3 bandage -- fixing the jbd locking\n(which was done as part of ext4dev years ago) is a lot of surgery, and\nsetting PG_writeback on data pages when we actually hold the page lock\ndropped ext3 performance by nearly an order of magnitude.  If we\u0027re\ngoing to migrate iscsi and raid to use stable page writes, the\ncomplaints about high latency will likely return.  We might as well\ncentralize their page snapshotting thing to one place.\n\nSigned-off-by: Darrick J. Wong \u003cdarrick.wong@oracle.com\u003e\nTested-by: Andy Lutomirski \u003cluto@amacapital.net\u003e\nCc: Adrian Hunter \u003cadrian.hunter@intel.com\u003e\nCc: Artem Bityutskiy \u003cdedekind1@gmail.com\u003e\nReviewed-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Joel Becker \u003cjlbec@evilplan.org\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Eric Van Hensbergen \u003cericvh@gmail.com\u003e\nCc: Ron Minnich \u003crminnich@sandia.gov\u003e\nCc: Latchesar Ionkov \u003clucho@ionkov.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1d1d1a767206fbe5d4c69493b7e6d2a8d08cc0a0",
      "tree": "6550294916016eac01deb596331aab1770223eab",
      "parents": [
        "7d311cdab663f4f7ab3a4c0d5d484234406f8268"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "darrick.wong@oracle.com",
        "time": "Thu Feb 21 16:42:51 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 17:22:19 2013 -0800"
      },
      "message": "mm: only enforce stable page writes if the backing device requires it\n\nCreate a helper function to check if a backing device requires stable\npage writes and, if so, performs the necessary wait.  Then, make it so\nthat all points in the memory manager that handle making pages writable\nuse the helper function.  This should provide stable page write support\nto most filesystems, while eliminating unnecessary waiting for devices\nthat don\u0027t require the feature.\n\nBefore this patchset, all filesystems would block, regardless of whether\nor not it was necessary.  ext3 would wait, but still generate occasional\nchecksum errors.  The network filesystems were left to do their own\nthing, so they\u0027d wait too.\n\nAfter this patchset, all the disk filesystems except ext3 and btrfs will\nwait only if the hardware requires it.  ext3 (if necessary) snapshots\npages instead of blocking, and btrfs provides its own bdi so the mm will\nnever wait.  Network filesystems haven\u0027t been touched, so either they\nprovide their own stable page guarantees or they don\u0027t block at all.\nThe blocking behavior is back to what it was before 3.0 if you don\u0027t\nhave a disk requiring stable page writes.\n\nHere\u0027s the result of using dbench to test latency on ext2:\n\n3.8.0-rc3:\n Operation      Count    AvgLat    MaxLat\n ----------------------------------------\n WriteX        109347     0.028    59.817\n ReadX         347180     0.004     3.391\n Flush          15514    29.828   287.283\n\nThroughput 57.429 MB/sec  4 clients  4 procs  max_latency\u003d287.290 ms\n\n3.8.0-rc3 + patches:\n WriteX        105556     0.029     4.273\n ReadX         335004     0.005     4.112\n Flush          14982    30.540   298.634\n\nThroughput 55.4496 MB/sec  4 clients  4 procs  max_latency\u003d298.650 ms\n\nAs you can see, the maximum write latency drops considerably with this\npatch enabled.  The other filesystems (ext3/ext4/xfs/btrfs) behave\nsimilarly, but see the cover letter for those results.\n\nSigned-off-by: Darrick J. Wong \u003cdarrick.wong@oracle.com\u003e\nAcked-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nReviewed-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Adrian Hunter \u003cadrian.hunter@intel.com\u003e\nCc: Andy Lutomirski \u003cluto@amacapital.net\u003e\nCc: Artem Bityutskiy \u003cdedekind1@gmail.com\u003e\nCc: Joel Becker \u003cjlbec@evilplan.org\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Eric Van Hensbergen \u003cericvh@gmail.com\u003e\nCc: Ron Minnich \u003crminnich@sandia.gov\u003e\nCc: Latchesar Ionkov \u003clucho@ionkov.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7d311cdab663f4f7ab3a4c0d5d484234406f8268",
      "tree": "c65c6d24b7c6ab12038adea622f9d5b3a66eeea4",
      "parents": [
        "b1ae345d971664f70cfdc293029c40ccfb093591"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "darrick.wong@oracle.com",
        "time": "Thu Feb 21 16:42:48 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 17:22:19 2013 -0800"
      },
      "message": "bdi: allow block devices to say that they require stable page writes\n\nThis patchset (\"stable page writes, part 2\") makes some key\nmodifications to the original \u0027stable page writes\u0027 patchset.  First, it\nprovides creators (devices and filesystems) of a backing_dev_info a flag\nthat declares whether or not it is necessary to ensure that page\ncontents cannot change during writeout.  It is no longer assumed that\nthis is true of all devices (which was never true anyway).  Second, the\nflag is used to relaxed the wait_on_page_writeback calls so that wait\nonly occurs if the device needs it.  Third, it fixes up the remaining\ndisk-backed filesystems to use this improved conditional-wait logic to\nprovide stable page writes on those filesystems.\n\nIt is hoped that (for people not using checksumming devices, anyway)\nthis patchset will give back unnecessary performance decreases since the\noriginal stable page write patchset went into 3.0.  Sorry about not\nfixing it sooner.\n\nComplaints were registered by several people about the long write\nlatencies introduced by the original stable page write patchset.\nGenerally speaking, the kernel ought to allocate as little extra memory\nas possible to facilitate writeout, but for people who simply cannot\nwait, a second page stability strategy is (re)introduced: snapshotting\npage contents.  The waiting behavior is still the default strategy; to\nenable page snapshotting, a superblock flag (MS_SNAP_STABLE) must be\nset.  This flag is used to bandaid^Henable stable page writeback on\next3[1], and is not used anywhere else.\n\nGiven that there are already a few storage devices and network FSes that\nhave rolled their own page stability wait/page snapshot code, it would\nbe nice to move towards consolidating all of these.  It seems possible\nthat iscsi and raid5 may wish to use the new stable page write support\nto enable zero-copy writeout.\n\nThank you to Jan Kara for helping fix a couple more filesystems.\n\nPer Andrew Morton\u0027s request, here are the result of using dbench to measure\nlatencies on ext2:\n\n3.8.0-rc3:\n   Operation      Count    AvgLat    MaxLat\n   ----------------------------------------\n   WriteX        109347     0.028    59.817\n   ReadX         347180     0.004     3.391\n   Flush          15514    29.828   287.283\n\n  Throughput 57.429 MB/sec  4 clients  4 procs  max_latency\u003d287.290 ms\n\n3.8.0-rc3 + patches:\n   WriteX        105556     0.029     4.273\n   ReadX         335004     0.005     4.112\n   Flush          14982    30.540   298.634\n\n  Throughput 55.4496 MB/sec  4 clients  4 procs  max_latency\u003d298.650 ms\n\nAs you can see, for ext2 the maximum write latency decreases from ~60ms\non a laptop hard disk to ~4ms.  I\u0027m not sure why the flush latencies\nincrease, though I suspect that being able to dirty pages faster gives\nthe flusher more work to do.\n\nOn ext4, the average write latency decreases as well as all the maximum\nlatencies:\n\n3.8.0-rc3:\n   WriteX         85624     0.152    33.078\n   ReadX         272090     0.010    61.210\n   Flush          12129    36.219   168.260\n\n  Throughput 44.8618 MB/sec  4 clients  4 procs  max_latency\u003d168.276 ms\n\n3.8.0-rc3 + patches:\n   WriteX         86082     0.141    30.928\n   ReadX         273358     0.010    36.124\n   Flush          12214    34.800   165.689\n\n  Throughput 44.9941 MB/sec  4 clients  4 procs  max_latency\u003d165.722 ms\n\nXFS seems to exhibit similar latency improvements as ext2:\n\n3.8.0-rc3:\n   WriteX        125739     0.028   104.343\n   ReadX         399070     0.005     4.115\n   Flush          17851    25.004   131.390\n\n  Throughput 66.0024 MB/sec  4 clients  4 procs  max_latency\u003d131.406 ms\n\n3.8.0-rc3 + patches:\n   WriteX        123529     0.028     6.299\n   ReadX         392434     0.005     4.287\n   Flush          17549    25.120   188.687\n\n  Throughput 64.9113 MB/sec  4 clients  4 procs  max_latency\u003d188.704 ms\n\n...and btrfs, just to round things out, also shows some latency\ndecreases:\n\n3.8.0-rc3:\n   WriteX         67122     0.083    82.355\n   ReadX         212719     0.005     2.828\n   Flush           9547    47.561   147.418\n\n  Throughput 35.3391 MB/sec  4 clients  4 procs  max_latency\u003d147.433 ms\n\n3.8.0-rc3 + patches:\n   WriteX         64898     0.101    71.631\n   ReadX         206673     0.005     7.123\n   Flush           9190    47.963   219.034\n\n  Throughput 34.0795 MB/sec  4 clients  4 procs  max_latency\u003d219.044 ms\n\nBefore this patchset, all filesystems would block, regardless of whether\nor not it was necessary.  ext3 would wait, but still generate occasional\nchecksum errors.  The network filesystems were left to do their own\nthing, so they\u0027d wait too.\n\nAfter this patchset, all the disk filesystems except ext3 and btrfs will\nwait only if the hardware requires it.  ext3 (if necessary) snapshots\npages instead of blocking, and btrfs provides its own bdi so the mm will\nnever wait.  Network filesystems haven\u0027t been touched, so either they\nprovide their own wait code, or they don\u0027t block at all.  The blocking\nbehavior is back to what it was before 3.0 if you don\u0027t have a disk\nrequiring stable page writes.\n\nThis patchset has been tested on 3.8.0-rc3 on x64 with ext3, ext4, and\nxfs.  I\u0027ve spot-checked 3.8.0-rc4 and seem to be getting the same\nresults as -rc3.\n\n[1] The alternative fixes to ext3 include fixing the locking order and\npage bit handling like we did for ext4 (but then why not just use\next4?), or setting PG_writeback so early that ext3 becomes extremely\nslow.  I tried that, but the number of write()s I could initiate dropped\nby nearly an order of magnitude.  That was a bit much even for the\nauthor of the stable page series! :)\n\nThis patch:\n\nCreates a per-backing-device flag that tracks whether or not pages must\nbe held immutable during writeout.  Eventually it will be used to waive\nwait_for_page_writeback() if nothing requires stable pages.\n\nSigned-off-by: Darrick J. Wong \u003cdarrick.wong@oracle.com\u003e\nReviewed-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Adrian Hunter \u003cadrian.hunter@intel.com\u003e\nCc: Andy Lutomirski \u003cluto@amacapital.net\u003e\nCc: Artem Bityutskiy \u003cdedekind1@gmail.com\u003e\nCc: Joel Becker \u003cjlbec@evilplan.org\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Eric Van Hensbergen \u003cericvh@gmail.com\u003e\nCc: Ron Minnich \u003crminnich@sandia.gov\u003e\nCc: Latchesar Ionkov \u003clucho@ionkov.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b1ae345d971664f70cfdc293029c40ccfb093591",
      "tree": "dcc1e4e8aed9da51a87eca71a8b133a001487381",
      "parents": [
        "3278bb748d2437eb1464765f36429e5d6aa91c38"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Thu Feb 21 16:42:47 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 17:22:19 2013 -0800"
      },
      "message": "lockdep: make lockdep_assert_held() not have a return value\n\nI recently made the mistake of writing:\n\n  foo \u003d lockdep_dereference_protected(..., lockdep_assert_held(...));\n\nwhich is clearly bogus.  If lockdep is disabled in the config this would\ncause a compile failure, if it is enabled then it compiles and causes a\npuzzling warning about dereferencing without the correct protection.\n\nWrap the macro in \"do { ...  } while (0)\" to also fail compile for this\nwhen lockdep is enabled.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "678268e534553546508ae5bf066c8a491047a6f6",
      "tree": "e1e2f945b4369f79055356b703b4eae72dab555f",
      "parents": [
        "90dd0b07257cee77878851434754cb4cb76149e8"
      ],
      "author": {
        "name": "Tomasz Figa",
        "email": "t.figa@samsung.com",
        "time": "Thu Feb 21 16:42:36 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 17:22:18 2013 -0800"
      },
      "message": "video: s3c-fb: fix typo in definition of VIDCON1_VSTATUS_FRONTPORCH value\n\nThe correct value for VIDCON1_VSTATUS_FRONTPORCH is 3, not 0.\n\nSigned-off-by: Tomasz Figa \u003ct.figa@samsung.com\u003e\nSigned-off-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nSigned-off-by: Jingoo Han \u003cjg1.han@samsung.com\u003e\nCc: Florian Tobias Schandinat \u003cFlorianSchandinat@gmx.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "90dd0b07257cee77878851434754cb4cb76149e8",
      "tree": "8ad7f09dbc2aa0d45d953884908f509c947bb01d",
      "parents": [
        "fe6863cc5b8e8b9b0e0b998e6de9be4e441f5b98"
      ],
      "author": {
        "name": "Jingoo Han",
        "email": "jg1.han@samsung.com",
        "time": "Thu Feb 21 16:42:34 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 17:22:18 2013 -0800"
      },
      "message": "video: s3c-fb: add the bit definitions for CSC EQ709 and EQ601\n\nAdd the bit definitions for CSC EQ709 and EQ601.  These definitons are\nused to control the CSC parameter such as equation 709 and equation 601.\n\nSigned-off-by: Jingoo Han \u003cjg1.han@samsung.com\u003e\nCc: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nCc: Tomasz Figa \u003ct.figa@samsung.com\u003e\nCc: Florian Tobias Schandinat \u003cFlorianSchandinat@gmx.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fe6863cc5b8e8b9b0e0b998e6de9be4e441f5b98",
      "tree": "f0aed18f86874e71fb7970fb7a3345624f7481e0",
      "parents": [
        "151b5c469905fe30efad3a3d0ddffdb6c6ac1851"
      ],
      "author": {
        "name": "Jingoo Han",
        "email": "jg1.han@samsung.com",
        "time": "Thu Feb 21 16:42:33 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 17:22:18 2013 -0800"
      },
      "message": "video: s3c-fb: remove unnecessary brackets\n\nRemove unnecessary brackets and the duplicated VIDTCON2 definition.\n\nAlso, header comment is modified, because EXYNOS series is supported and\n\u003cmach/regs-fb.h\u003e is not available.\n\nSigned-off-by: Jingoo Han \u003cjg1.han@samsung.com\u003e\nCc: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nCc: Tomasz Figa \u003ct.figa@samsung.com\u003e\nCc: Florian Tobias Schandinat \u003cFlorianSchandinat@gmx.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "151b5c469905fe30efad3a3d0ddffdb6c6ac1851",
      "tree": "7b2b2155e5bcc5ce01defbc92b64f1d9bfa06749",
      "parents": [
        "4e45a765646244cdb90069c5fa6bbbc57321f576"
      ],
      "author": {
        "name": "Jingoo Han",
        "email": "jg1.han@samsung.com",
        "time": "Thu Feb 21 16:42:31 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 17:22:18 2013 -0800"
      },
      "message": "video: s3c-fb: remove duplicated S3C_FB_MAX_WIN\n\nS3C_FB_MAX_WIN is already defined in \u0027plat-samsung/include/plat/fb.h\u0027.\nSo, this definition in \u0027include/video/samsung_fimd.h\u0027 should be removed to\navoid the duplication.\n\nSigned-off-by: Jingoo Han \u003cjg1.han@samsung.com\u003e\nCc: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nCc: Tomasz Figa \u003ct.figa@samsung.com\u003e\nCc: Florian Tobias Schandinat \u003cFlorianSchandinat@gmx.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f18acdeacbcf038df3c9b03a96193cb01ca45cbb",
      "tree": "7a4e2703088116918e3bf999f6b42593e4a5b3b9",
      "parents": [
        "0c980826211611178b6d76b246d00a4c840f21e5"
      ],
      "author": {
        "name": "Sachin Kamat",
        "email": "sachin.kamat@linaro.org",
        "time": "Thu Feb 21 16:42:28 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 17:22:18 2013 -0800"
      },
      "message": "drivers/video/exynos/exynos_mipi_dsi.c: use devm_* APIs\n\ndevm_* APIs are device managed and make exit and cleanup code simpler.\nWhile at it also remove some unused labels and fix an error path.\n\nSigned-off-by: Sachin Kamat \u003csachin.kamat@linaro.org\u003e\nAcked-by: Donghwa Lee \u003cdh09.lee@samsung.com\u003e\nCc: Inki Dae \u003cinki.dae@samsung.com\u003e\nCc: Florian Tobias Schandinat \u003cFlorianSchandinat@gmx.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "59393bb94c103fca48c29348d2415cc67d772045",
      "tree": "a9baad541380644bee104d48e714e4aae3e8c959",
      "parents": [
        "c289ba2d26cf872570ba23fceee8d80ae64be351"
      ],
      "author": {
        "name": "Zhou Zhu",
        "email": "zzhu3@marvell.com",
        "time": "Thu Feb 21 16:42:11 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 17:22:17 2013 -0800"
      },
      "message": "video: mmp display subsystem\n\nAdd mmp display subsystem to support Marvell MMP display controllers.\n\nThis subsystem contains 4 parts:\n--fb folder\n--core.c\n--hw folder\n--panel folder\n\n1. fb folder contains implementation of fb.  fb get path and overlay\n   from common interface and operates on these structures.\n\n2. core.c provides common interface for a hardware abstraction.  Major\n   parts of this interface are:\n\n   a) Path: path is a output device connected to a panel or HDMI TV.  Main\n      operations of the path is set/get timing/output color.  fb operates\n      output device through path structure.\n\n   b) Ovly: Ovly is a buffer shown on the path.\n\n      Ovly describes frame buffer and its source/destination size, offset,\n      input color, buffer address, z-order, and so on.  Each fb device maps\n      to one overlay.\n\n3. hw folder contains implementation of hardware operations defined by\n   core.c.  It registers paths for fb use.\n\n4. panel folder contains implementation of panels.  It\u0027s connected to\n   path.  Panel drivers would also regiester panels and linked to path\n   when probe.\n\nSigned-off-by: Zhou Zhu \u003czzhu3@marvell.com\u003e\nSigned-off-by: Lisa Du \u003ccldu@marvell.com\u003e\nCc: Guoqing Li \u003cligq@marvell.com\u003e\nAcked-by: Haojian Zhuang \u003chaojian.zhuang@gmail.com\u003e\nCc: Florian Tobias Schandinat \u003cFlorianSchandinat@gmx.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9a8ab1c39970a4938a72d94e6fd13be88a797590",
      "tree": "e95f9f02d7000dc6a79f5374f9adf6c85f936ad7",
      "parents": [
        "c361d3e54364d19bb5e803d6e766e94674da7b0e"
      ],
      "author": {
        "name": "Daniel Santos",
        "email": "daniel.santos@pobox.com",
        "time": "Thu Feb 21 16:41:55 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 17:22:16 2013 -0800"
      },
      "message": "bug.h, compiler.h: introduce compiletime_assert \u0026 BUILD_BUG_ON_MSG\n\nIntroduce compiletime_assert to compiler.h, which moves the details of\nhow to break a build and emit an error message for a specific compiler\nto the headers where these details should be.  Following in the\ntradition of the POSIX assert macro, compiletime_assert creates a\nbuild-time error when the supplied condition is *false*.\n\nNext, we add BUILD_BUG_ON_MSG to bug.h which simply wraps\ncompiletime_assert, inverting the logic, so that it fails when the\ncondition is *true*, consistent with the language \"build bug on.\" This\nmacro allows you to specify the error message you want emitted when the\nsupplied condition is true.\n\nFinally, we remove all other code from bug.h that mucks with these\ndetails (BUILD_BUG \u0026 BUILD_BUG_ON), and have them all call\nBUILD_BUG_ON_MSG.  This not only reduces source code bloat, but also\nprevents the possibility of code being changed for one macro and not for\nthe other (which was previously the case for BUILD_BUG and\nBUILD_BUG_ON).\n\nSince __compiletime_error_fallback is now only used in compiler.h, I\u0027m\nconsidering it a private macro and removing the double negation that\u0027s\nnow extraneous.\n\n[akpm@linux-foundation.org: checkpatch fixes]\nSigned-off-by: Daniel Santos \u003cdaniel.santos@pobox.com\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Borislav Petkov \u003cbp@alien8.de\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c361d3e54364d19bb5e803d6e766e94674da7b0e",
      "tree": "a0d5410b10b0733f1f3a73238f7d487fac479ad5",
      "parents": [
        "a3ccc497cd17147713363a4bf975f1a269fadb6d"
      ],
      "author": {
        "name": "Daniel Santos",
        "email": "daniel.santos@pobox.com",
        "time": "Thu Feb 21 16:41:54 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 17:22:16 2013 -0800"
      },
      "message": "compiler.h, bug.h: prevent double error messages with BUILD_BUG{,_ON}\n\nPrior to the introduction of __attribute__((error(\"msg\"))) in gcc 4.3,\ncreating compile-time errors required a little trickery.\nBUILD_BUG{,_ON} uses this attribute when available to generate\ncompile-time errors, but also uses the negative-sized array trick for\nolder compilers, resulting in two error messages in some cases.  The\nreason it\u0027s \"some\" cases is that as of gcc 4.4, the negative-sized array\nwill not create an error in some situations, like inline functions.\n\nThis patch replaces the negative-sized array code with the new\n__compiletime_error_fallback() macro which expands to the same thing\nunless the the error attribute is available, in which case it expands to\ndo{}while(0), resulting in exactly one compile-time error on all\nversions of gcc.\n\nNote that we are not changing the negative-sized array code for the\nunoptimized version of BUILD_BUG_ON, since it has the potential to catch\nproblems that would be disabled in later versions of gcc were\n__compiletime_error_fallback used.  The reason is that that an\nunoptimized build can\u0027t always remove calls to an error-attributed\nfunction call (like we are using) that should effectively become dead\ncode if it were optimized.  However, using a negative-sized array with a\nsimilar value will not result in an false-positive (error).  The only\ncaveat being that it will also fail to catch valid conditions, which we\nshould be expecting in an unoptimized build anyway.\n\nSigned-off-by: Daniel Santos \u003cdaniel.santos@pobox.com\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Borislav Petkov \u003cbp@alien8.de\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a3ccc497cd17147713363a4bf975f1a269fadb6d",
      "tree": "6c5e14d9b9f8687edba0ee5a604277433d4db7d2",
      "parents": [
        "1d6a0d19c85587581a364850b77f30446810a560"
      ],
      "author": {
        "name": "Daniel Santos",
        "email": "daniel.santos@pobox.com",
        "time": "Thu Feb 21 16:41:52 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 17:22:16 2013 -0800"
      },
      "message": "bug.h: make BUILD_BUG_ON generate compile-time error\n\nNegative sized arrays wont create a compile-time error in some cases\nstarting with gcc 4.4 (e.g., inlined functions), but gcc 4.3 introduced\nthe error function attribute that will.\n\nThis patch modifies BUILD_BUG_ON to behave like BUILD_BUG already does,\nusing the error function attribute so that you don\u0027t have to build the\nentire kernel to discover that you have a problem, and then enjoy trying\nto track it down from a link-time error.\n\nAlso, we are only including asm/bug.h and then expecting that\nlinux/compiler.h will eventually be included to define __linktime_error\n(used in BUILD_BUG_ON).  This patch includes it directly for clarity and\nto avoid the possibility of changes in \u003carch\u003e/*/include/asm/bug.h being\nchanged or not including linux/compiler.h for some reason.\n\nSigned-off-by: Daniel Santos \u003cdaniel.santos@pobox.com\u003e\nAcked-by: Borislav Petkov \u003cbp@alien8.de\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1d6a0d19c85587581a364850b77f30446810a560",
      "tree": "f82e7ac260a7705459c77bd37bf2733047542921",
      "parents": [
        "ca623c914e82c3351cd657073fdb24a1df8c27b9"
      ],
      "author": {
        "name": "Daniel Santos",
        "email": "daniel.santos@pobox.com",
        "time": "Thu Feb 21 16:41:45 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 17:22:16 2013 -0800"
      },
      "message": "bug.h: prevent double evaulation of `condition\u0027 in BUILD_BUG_ON\n\nWhen calling BUILD_BUG_ON in an optimized build using gcc 4.3 and later,\nthe condition will be evaulated twice, possibily with side-effects.  This\npatch eliminates that error.\n\n[akpm@linux-foundation.org: tweak code layout]\nSigned-off-by: Daniel Santos \u003cdaniel.santos@pobox.com\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Borislav Petkov \u003cbp@alien8.de\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ca623c914e82c3351cd657073fdb24a1df8c27b9",
      "tree": "10cfcc12a6c3e5927ed67a73070870c83f2d704c",
      "parents": [
        "6ae8d04871f84d853673e9e9f3f713e77a2fe145"
      ],
      "author": {
        "name": "Daniel Santos",
        "email": "daniel.santos@pobox.com",
        "time": "Thu Feb 21 16:41:44 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 17:22:15 2013 -0800"
      },
      "message": "bug.h: fix BUILD_BUG_ON macro in __CHECKER__\n\nWhen __CHECKER__ is defined, we disable all of the BUILD_BUG.* macros.\nHowever, both BUILD_BUG_ON_NOT_POWER_OF_2 and BUILD_BUG_ON was evaluating\nto nothing in this case, and we want (0) since this is a function-like\nmacro that will be followed by a semicolon.\n\nSigned-off-by: Daniel Santos \u003cdaniel.santos@pobox.com\u003e\nAcked-by: Borislav Petkov \u003cbp@alien8.de\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6ae8d04871f84d853673e9e9f3f713e77a2fe145",
      "tree": "53df264231784be05e925e6c1468f0119a6e477a",
      "parents": [
        "733ed6e43756b0aec25c9429b810ba74e24c980c"
      ],
      "author": {
        "name": "Daniel Santos",
        "email": "daniel.santos@pobox.com",
        "time": "Thu Feb 21 16:41:42 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 17:22:15 2013 -0800"
      },
      "message": "compiler{,-gcc4}.h, bug.h: Remove duplicate macros\n\n__linktime_error() does the same thing as __compiletime_error() and is\nonly used in bug.h.  Since the macro defines a function attribute that\nwill cause a failure at compile-time (not link-time), it makes more sense\nto keep __compiletime_error(), which is also neatly mated with\n__compiletime_warning().\n\nSigned-off-by: Daniel Santos \u003cdaniel.santos@pobox.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Borislav Petkov \u003cbp@alien8.de\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "733ed6e43756b0aec25c9429b810ba74e24c980c",
      "tree": "3d7a2704f4501729a0297803403b09d0b20508d3",
      "parents": [
        "3f3f8d2f48acfd8ed3b8e6b7377935da57b27b16"
      ],
      "author": {
        "name": "Daniel Santos",
        "email": "daniel.santos@pobox.com",
        "time": "Thu Feb 21 16:41:41 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 17:22:15 2013 -0800"
      },
      "message": "compiler-gcc{3,4}.h: Use GCC_VERSION macro\n\nUsing GCC_VERSION reduces complexity, is easier to read and is GCC\u0027s\nrecommended mechanism for doing version checks.  (Just don\u0027t ask me why\nthey didn\u0027t define it in the first place.) This also makes it easy to\nmerge compiler-gcc{,3,4}.h should somebody want to.\n\nSigned-off-by: Daniel Santos \u003cdaniel.santos@pobox.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Borislav Petkov \u003cbp@alien8.de\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3f3f8d2f48acfd8ed3b8e6b7377935da57b27b16",
      "tree": "c0d64cae2c1d27d001df57e93b9bef1613073eb2",
      "parents": [
        "6640dfdf6fff387c0a8f7fb8ac1d47c6b093484e"
      ],
      "author": {
        "name": "Daniel Santos",
        "email": "daniel.santos@pobox.com",
        "time": "Thu Feb 21 16:41:39 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 17:22:15 2013 -0800"
      },
      "message": "compiler-gcc.h: Add gcc-recommended GCC_VERSION macro\n\nThroughout compiler*.h, many version checks are made.  These can be\nsimplified by using the macro that gcc\u0027s documentation recommends.\nHowever, my primary reason for adding this is that I need bug-check\nmacros that are enabled at certain gcc versions and it\u0027s cleaner to use\nthis macro than the tradition method:\n\n  #if __GNUC__ \u003e 4 || (__GNUC__ \u003d\u003d 4 \u0026\u0026 __GNUC_MINOR__ \u003d\u003e 2)\n\nIf you add patch level, it gets this ugly:\n\n  #if __GNUC__ \u003e 4 || (__GNUC__ \u003d\u003d 4 \u0026\u0026 (__GNUC_MINOR__ \u003e 2 || \\\n      __GNUC_MINOR__ \u003d\u003d 2 __GNUC_PATCHLEVEL__ \u003e\u003d 1))\n\nAs opposed to:\n\n  #if GCC_VERSION \u003e\u003d 40201\n\nWhile having separate headers for gcc 3 \u0026 4 eliminates some of this\nverbosity, they can still be cleaned up by this.\n\nSee also:\n\n  http://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html\n\nSigned-off-by: Daniel Santos \u003cdaniel.santos@pobox.com\u003e\nAcked-by: Borislav Petkov \u003cbp@alien8.de\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6640dfdf6fff387c0a8f7fb8ac1d47c6b093484e",
      "tree": "dac52a5d940edef3728ed2609b965cee162bdbcb",
      "parents": [
        "53eb8c82d581fdd4b389a3e417261f3ae924e603"
      ],
      "author": {
        "name": "Daniel Santos",
        "email": "daniel.santos@pobox.com",
        "time": "Thu Feb 21 16:41:32 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 17:22:15 2013 -0800"
      },
      "message": "compiler-gcc4.h: Reorder macros based upon gcc ver\n\nThis helps to keep the file from getting confusing, removes one\nduplicate version check and should encourage future editors to put new\nmacros where they belong.\n\nSigned-off-by: Daniel Santos \u003cdaniel.santos@pobox.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Borislav Petkov \u003cbp@alien8.de\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8b5628ab83b671f96ac9f174c1bd51c92589fc82",
      "tree": "8446b0fce80923c3694fe075ffcde7e422bcf818",
      "parents": [
        "a8f3740feb12928be1aad19659bf3527ea8d6d96",
        "fe7dc7202d7d24fe211e0eecf531d8b79b655b3c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 15:40:16 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 15:40:16 2013 -0800"
      },
      "message": "Merge tag \u0027virt\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc\n\nPull ARM virtualization changes:\n \"This contains parts of the ARM KVM support that have dependencies on\n  other patches merged through the arm-soc tree.  In combination with\n  patches coming through Russell\u0027s tree, this will finally add full\n  support for the kernel based virtual machine on ARM, which has been\n  awaited for some time now.\n\n  Further, we now have a separate platform for virtual machines and qemu\n  booting that is used by both Xen and KVM, separating these from the\n  Versatile Express reference implementation.  Obviously, this new\n  platform is multiplatform capable so it can be combined with existing\n  machines in the same kernel.\"\n\n* tag \u0027virt\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (38 commits)\n  ARM: arch_timer: include linux/errno.h\n  arm: arch_timer: add missing inline in stub function\n  ARM: KVM: arch_timers: Wire the init code and config option\n  ARM: KVM: arch_timers: Add timer world switch\n  ARM: KVM: arch_timers: Add guest timer core support\n  ARM: KVM: Add VGIC configuration option\n  ARM: KVM: VGIC initialisation code\n  ARM: KVM: VGIC control interface world switch\n  ARM: KVM: VGIC interrupt injection\n  ARM: KVM: vgic: retire queued, disabled interrupts\n  ARM: KVM: VGIC virtual CPU interface management\n  ARM: KVM: VGIC distributor handling\n  ARM: KVM: VGIC accept vcpu and dist base addresses from user space\n  ARM: KVM: Initial VGIC infrastructure code\n  ARM: KVM: Keep track of currently running vcpus\n  KVM: ARM: Introduce KVM_ARM_SET_DEVICE_ADDR ioctl\n  ARM: gic: add __ASSEMBLY__ guard to C definitions\n  ARM: gic: define GICH offsets for VGIC support\n  ARM: gic: add missing distributor defintions\n  ARM: mach-virt: fixup machine descriptor after removal of sys_timer\n  ...\n"
    },
    {
      "commit": "bab588fcfb6335c767d811a8955979f5440328e0",
      "tree": "2a862ddf47a82be885a8e7945a17cc3ff7a658b9",
      "parents": [
        "3298a3511f1e73255a8dc023efd909e569eea037",
        "9cb0d1babfcb1b4ac248c09425f7d5de1e771133"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 15:27:22 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 15:27:22 2013 -0800"
      },
      "message": "Merge tag \u0027soc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc\n\nPull ARM SoC-specific updates from Arnd Bergmann:\n \"This is a larger set of new functionality for the existing SoC\n  families, including:\n\n   - vt8500 gains support for new CPU cores, notably the Cortex-A9 based\n     wm8850\n\n   - prima2 gains support for the \"marco\" SoC family, its SMP based\n     cousin\n\n   - tegra gains support for the new Tegra4 (Tegra114) family\n\n   - socfpga now supports a newer version of the hardware including SMP\n\n   - i.mx31 and bcm2835 are now using DT probing for their clocks\n\n   - lots of updates for sh-mobile\n\n   - OMAP updates for clocks, power management and USB\n\n   - i.mx6q and tegra now support cpuidle\n\n   - kirkwood now supports PCIe hot plugging\n\n   - tegra clock support is updated\n\n   - tegra USB PHY probing gets implemented diffently\"\n\n* tag \u0027soc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (148 commits)\n  ARM: prima2: remove duplicate v7_invalidate_l1\n  ARM: shmobile: r8a7779: Correct TMU clock support again\n  ARM: prima2: fix __init section for cpu hotplug\n  ARM: OMAP: Consolidate OMAP USB-HS platform data (part 3/3)\n  ARM: OMAP: Consolidate OMAP USB-HS platform data (part 1/3)\n  arm: socfpga: Add SMP support for actual socfpga harware\n  arm: Add v7_invalidate_l1 to cache-v7.S\n  arm: socfpga: Add entries to enable make dtbs socfpga\n  arm: socfpga: Add new device tree source for actual socfpga HW\n  ARM: tegra: sort Kconfig selects for Tegra114\n  ARM: tegra: enable ARCH_REQUIRE_GPIOLIB for Tegra114\n  ARM: tegra: Fix build error w/ ARCH_TEGRA_114_SOC w/o ARCH_TEGRA_3x_SOC\n  ARM: tegra: Fix build error for gic update\n  ARM: tegra: remove empty tegra_smp_init_cpus()\n  ARM: shmobile: Register ARM architected timer\n  ARM: MARCO: fix the build issue due to gic-vic-to-irqchip move\n  ARM: shmobile: r8a7779: Correct TMU clock support\n  ARM: mxs_defconfig: Select CONFIG_DEVTMPFS_MOUNT\n  ARM: mxs: decrease mxs_clockevent_device.min_delta_ns to 2 clock cycles\n  ARM: mxs: use apbx bus clock to drive the timers on timrotv2\n  ...\n"
    },
    {
      "commit": "5ce7aba976ebdfbf467e3cbcd3a7536ebdec4b11",
      "tree": "a31ceb4a167035aad73fd116ee8512fca905fd7b",
      "parents": [
        "7ae1c76ee5b58fe5bd55a07f99a3359333270b86",
        "b6a03d0492dedb5c10b8a5708ee92e04b0590c07"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 15:12:17 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 15:12:18 2013 -0800"
      },
      "message": "Merge tag \u0027drivers\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc\n\nPull ARM SoC driver specific changes from Arnd Bergmann:\n\n - Updates to the ux500 cpufreq code\n\n - Moving the u300 DMA controller driver to drivers/dma\n\n - Moving versatile express drivers out of arch/arm for sharing with arch/arm64\n\n - Device tree bindings for the OMAP General Purpose Memory Controller\n\n* tag \u0027drivers\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (27 commits)\n  ARM: OMAP2+: gpmc: Add device tree documentation for elm handle\n  ARM: OMAP2+: gpmc: add DT bindings for OneNAND\n  ARM: OMAP2+: gpmc-onenand: drop __init annotation\n  mtd: omap-onenand: pass device_node in platform data\n  ARM: OMAP2+: Prevent potential crash if GPMC probe fails\n  ARM: OMAP2+: gpmc: Remove unneeded of_node_put()\n  arm: Move sp810.h to include/linux/amba/\n  ARM: OMAP: gpmc: add DT bindings for GPMC timings and NAND\n  ARM: OMAP: gpmc: enable hwecc for AM33xx SoCs\n  ARM: OMAP: gpmc-nand: drop __init annotation\n  mtd: omap-nand: pass device_node in platform data\n  ARM: OMAP: gpmc: don\u0027t create devices from initcall on DT\n  dma: coh901318: cut down on platform data abstraction\n  dma: coh901318: merge header files\n  dma: coh901318: push definitions into driver\n  dma: coh901318: push header down into the DMA subsystem\n  dma: coh901318: skip hard-coded addresses\n  dma: coh901318: remove hardcoded target addresses\n  dma: coh901318: push platform data into driver\n  dma: coh901318: create a proper platform data file\n  ...\n"
    },
    {
      "commit": "7ae1c76ee5b58fe5bd55a07f99a3359333270b86",
      "tree": "2e6907d46978dadebdef488c6b5f9bca34023a72",
      "parents": [
        "b274776c54c320763bc12eb035c0e244f76ccb43",
        "62508a5d25e355cc19c3ade3c3b7dddc6d326cc5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 15:00:16 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 15:00:16 2013 -0800"
      },
      "message": "Merge tag \u0027sh-pinmux\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc\n\nPull sh-mobile pinctrl conversion from Arnd Bergmann:\n \"This is another cleanup series, containing the move of the Renesas\n  SH-Mobile pin controller code from arch/arm/mach-shmobile over to the\n  generic pinctrl subsystem, changing it over to the common interfaces\n  in the process.\n\n  Based on agreement between Olof, Paul Mundt, Linus Walleij and Simon,\n  we\u0027re merging this large branch of pinctrl conversion through arm-soc,\n  even though it contains the corresponding conversions for arch/sh.\n  Main reason for this is tight dependencies (that will now mostly be\n  broken) between the arch/sh and mach-shmobile implementations.\n\n  There will be more of this in 3.10 to do device-tree bindings, but\n  this is the initial conversion.\"\n\n* tag \u0027sh-pinmux\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (81 commits)\n  sh-pfc: sh_pfc_probe() sizeof() fix\n  sh-pfc: Move sh_pfc.h from include/linux/ to driver directory\n  sh-pfc: Remove pinmux_info definition\n  sh: Remove unused sh_pfc_register_info() function\n  sh: shx3: pinmux: Use driver-provided pinmux info\n  sh: sh7786: pinmux: Use driver-provided pinmux info\n  sh: sh7785: pinmux: Use driver-provided pinmux info\n  sh: sh7757: pinmux: Use driver-provided pinmux info\n  sh: sh7734: pinmux: Use driver-provided pinmux info\n  sh: sh7724: pinmux: Use driver-provided pinmux info\n  sh: sh7723: pinmux: Use driver-provided pinmux info\n  sh: sh7722: pinmux: Use driver-provided pinmux info\n  sh: sh7720: pinmux: Use driver-provided pinmux info\n  sh: sh7269: pinmux: Use driver-provided pinmux info\n  sh: sh7264: pinmux: Use driver-provided pinmux info\n  sh: sh7203: pinmux: Use driver-provided pinmux info\n  ARM: shmobile: sh73a0: Use driver-provided pinmux info\n  ARM: shmobile: sh7372: Use driver-provided pinmux info\n  ARM: shmobile: r8a7779: Use driver-provided pinmux info\n  ARM: shmobile: r8a7740: Use driver-provided pinmux info\n  ...\n"
    },
    {
      "commit": "b274776c54c320763bc12eb035c0e244f76ccb43",
      "tree": "c75b70d0824a7ae029229b19d61884039abf2127",
      "parents": [
        "b24174b0cbbe383c5bb6097aeb24480b8fd2d338",
        "3b1209e7994c4d31ff9932a7f566ae1c96b3c443"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 14:58:40 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 14:58:40 2013 -0800"
      },
      "message": "Merge tag \u0027cleanup\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc\n\nPull ARM SoC cleanups from Arnd Bergmann:\n \"A large number of cleanups, all over the platforms.  This is dominated\n  largely by the Samsung platforms (s3c, s5p, exynos) and a few of the\n  others moving code out of arch/arm into more appropriate subsystems.\n\n  The clocksource and irqchip drivers are now abstracted to the point\n  where platforms that are already cleaned up do not need to even\n  specify the driver they use, it can all get configured from the device\n  tree as we do for normal device drivers.  The clocksource changes\n  basically touch every single platform in the process.\n\n  We further clean up the use of platform specific header files here,\n  with the goal of turning more of the platforms over to being\n  \"multiplatform\" enabled, which implies that they cannot expose their\n  headers to architecture independent code any more.\n\n  It is expected that no functional changes are part of the cleanup.\n  The overall reduction in total code lines is mostly the result of\n  removing broken and obsolete code.\"\n\n* tag \u0027cleanup\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (133 commits)\n  ARM: mvebu: correct gated clock documentation\n  ARM: kirkwood: add missing include for nsa310\n  ARM: exynos: move exynos4210-combiner to drivers/irqchip\n  mfd: db8500-prcmu: update resource passing\n  drivers/db8500-cpufreq: delete dangling include\n  ARM: at91: remove NEOCORE 926 board\n  sunxi: Cleanup the reset code and add meaningful registers defines\n  ARM: S3C24XX: header mach/regs-mem.h local\n  ARM: S3C24XX: header mach/regs-power.h local\n  ARM: S3C24XX: header mach/regs-s3c2412-mem.h local\n  ARM: S3C24XX: Remove plat-s3c24xx directory in arch/arm/\n  ARM: S3C24XX: transform s3c2443 subirqs into new structure\n  ARM: S3C24XX: modify s3c2443 irq init to initialize all irqs\n  ARM: S3C24XX: move s3c2443 irq code to irq.c\n  ARM: S3C24XX: transform s3c2416 irqs into new structure\n  ARM: S3C24XX: modify s3c2416 irq init to initialize all irqs\n  ARM: S3C24XX: move s3c2416 irq init to common irq code\n  ARM: S3C24XX: Modify s3c_irq_wake to use the hwirq property\n  ARM: S3C24XX: Move irq syscore-ops to irq-pm\n  clocksource: always define CLOCKSOURCE_OF_DECLARE\n  ...\n"
    },
    {
      "commit": "b24174b0cbbe383c5bb6097aeb24480b8fd2d338",
      "tree": "2df02e72b7166dadb19b766435dbe7568d97e946",
      "parents": [
        "7ed214ac2095f561a94335ca672b6c42a1ea40ff",
        "be8fd292f9b1ed787a04cb4437f7faef16c4afef"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 14:54:55 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 14:54:55 2013 -0800"
      },
      "message": "Merge tag \u0027fixes-non-critical\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc\n\nPull non-critical ARM SoC bug fixes from Arnd Bergmann:\n \"Bug fixes that did not make it into v3.8, mostly because they were not\n  considered important enough, and in some cases because bugs only show\n  up in combination with other patches destined for 3.9.  This includes\n  a few larger patches for GPIO on the Marvell PXA platform and a lot of\n  Samsung specific bug fixes, as well as a series from Arnd to fix older\n  build warnings.\"\n\n* tag \u0027fixes-non-critical\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (54 commits)\n  ARM: SPEAr13xx: Enable CONFIG_ARCH_HAS_CPUFREQ\n  ARM: imx: MACH_MX31ADS_WM1133_EV1 needs REGULATOR_WM8350\n  scripts/sortextable: silence script output\n  ARM: s3c: i2c: add platform_device forward declaration\n  ARM: mvebu: allow selecting mvebu without Armada XP\n  ARM: pick Versatile by default for !MMU\n  ARM: integrator: fix build with INTEGRATOR_AP off\n  ARM: integrator/versatile: fix NOMMU warnings\n  ARM: sa1100: don\u0027t warn about mach/ide.h\n  ARM: shmobile: fix defconfig warning on CONFIG_USB\n  ARM: w90x900: fix legacy assembly syntax\n  ARM: samsung: fix assembly syntax for new gas\n  ARM: disable virt_to_bus/virt_to_bus almost everywhere\n  ARM: dts: Correct pin configuration of SD 4 for exynos4x12-pinctrl\n  ARM: SAMSUNG: Silence empty switch warning in fimc-core.h\n  ARM: SAMSUNG: Silence empty switch warning in sdhci.h\n  ARM: msm: proc_comm_boot_wait should not be __init\n  arm: vt8500: Update MAINTAINERS entry for arch-vt8500\n  ARM: integrator: ensure ap_syscon_base is initialised when !CONFIG_MMU\n  ARM: S5PV210: Fix early uart output in fifo mode\n  ...\n"
    },
    {
      "commit": "7ed214ac2095f561a94335ca672b6c42a1ea40ff",
      "tree": "da41901bff1d0d8d61170bf362384fdc61deb3ab",
      "parents": [
        "21eaab6d19ed43e82ed39c8deb7f192134fb4a0e",
        "29e5507ae4ab34397f538f06b7070c81a4e4a2bf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 13:57:13 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 13:57:13 2013 -0800"
      },
      "message": "Merge tag \u0027char-misc-3.9-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc\n\nPull char/misc driver patches from Greg Kroah-Hartman:\n \"Here\u0027s the big char/misc driver patches for 3.9-rc1.\n\n  Nothing major here, just lots of different driver updates (mei,\n  hyperv, ipack, extcon, vmci, etc.).\n\n  All of these have been in the linux-next tree for a while.\"\n\n* tag \u0027char-misc-3.9-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (209 commits)\n  w1: w1_therm: Add force-pullup option for \"broken\" sensors\n  w1: ds2482: Added 1-Wire pull-up support to the driver\n  vme: add missing put_device() after device_register() fails\n  extcon: max8997: Use workqueue to check cable state after completing boot of platform\n  extcon: max8997: Set default UART/USB path on probe\n  extcon: max8997: Consolidate duplicate code for checking ADC/CHG cable type\n  extcon: max8997: Set default of ADC debounce time during initialization\n  extcon: max8997: Remove duplicate code related to set H/W line path\n  extcon: max8997: Move defined constant to header file\n  extcon: max77693: Make max77693_extcon_cable static\n  extcon: max8997: Remove unreachable code\n  extcon: max8997: Make max8997_extcon_cable static\n  extcon: max77693: Remove unnecessary goto statement to improve readability\n  extcon: max77693: Convert to devm_input_allocate_device()\n  extcon: gpio: Rename filename of extcon-gpio.c according to kernel naming style\n  CREDITS: update email and address of Harald Hoyer\n  extcon: arizona: Use MICDET for final microphone identification\n  extcon: arizona: Always take the first HPDET reading as the final one\n  extcon: arizona: Clear _trig_sts bits after jack detection\n  extcon: arizona: Don\u0027t HPDET magic when headphones are enabled\n  ...\n"
    },
    {
      "commit": "21eaab6d19ed43e82ed39c8deb7f192134fb4a0e",
      "tree": "d995205afdcb7f47462bcd28067dc0c4ab0b7b02",
      "parents": [
        "74e1a2a39355b2d3ae8c60c78d8add162c6d7183",
        "9e17df37d710f8998e9cb10a548304fe33d4a5c2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 13:41:04 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 13:41:04 2013 -0800"
      },
      "message": "Merge tag \u0027tty-3.9-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty\n\nPull tty/serial patches from Greg Kroah-Hartman:\n \"Here\u0027s the big tty/serial driver patches for 3.9-rc1.\n\n  More tty port rework and fixes from Jiri here, as well as lots of\n  individual serial driver updates and fixes.\n\n  All of these have been in the linux-next tree for a while.\"\n\n* tag \u0027tty-3.9-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (140 commits)\n  tty: mxser: improve error handling in mxser_probe() and mxser_module_init()\n  serial: imx: fix uninitialized variable warning\n  serial: tegra: assume CONFIG_OF\n  TTY: do not update atime/mtime on read/write\n  lguest: select CONFIG_TTY to build properly.\n  ARM defconfigs: add missing inclusions of linux/platform_device.h\n  fb/exynos: include platform_device.h\n  ARM: sa1100/assabet: include platform_device.h directly\n  serial: imx: Fix recursive locking bug\n  pps: Fix build breakage from decoupling pps from tty\n  tty: Remove ancient hardpps()\n  pps: Additional cleanups in uart_handle_dcd_change\n  pps: Move timestamp read into PPS code proper\n  pps: Don\u0027t crash the machine when exiting will do\n  pps: Fix a use-after free bug when unregistering a source.\n  pps: Use pps_lookup_dev to reduce ldisc coupling\n  pps: Add pps_lookup_dev() function\n  tty: serial: uartlite: Support uartlite on big and little endian systems\n  tty: serial: uartlite: Fix sparse and checkpatch warnings\n  serial/arc-uart: Miscll DT related updates (Grant\u0027s review comments)\n  ...\n\nFix up trivial conflicts, mostly just due to the TTY config option\nclashing with the EXPERIMENTAL removal.\n"
    },
    {
      "commit": "74e1a2a39355b2d3ae8c60c78d8add162c6d7183",
      "tree": "1ce09f285c505a774838a95cff7327a750dc85fc",
      "parents": [
        "b5c78e04dd061b776978dad61dd85357081147b0",
        "6166805c3de539a41cfcae39026c5bc273d7c6aa"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 12:20:00 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 12:20:00 2013 -0800"
      },
      "message": "Merge tag \u0027usb-3.9-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb\n\nPull USB patches from Greg Kroah-Hartman:\n \"Here\u0027s the big USB merge for 3.9-rc1\n\n  Nothing major, lots of gadget fixes, and of course, xhci stuff.\n\n  All of this has been in linux-next for a while, with the exception of\n  the last 3 patches, which were reverts of patches in the tree that\n  caused problems, they went in yesterday.\"\n\n* tag \u0027usb-3.9-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (190 commits)\n  Revert \"USB: EHCI: make ehci-vt8500 a separate driver\"\n  Revert \"USB: EHCI: make ehci-orion a separate driver\"\n  Revert \"USB: update host controller Kconfig entries\"\n  USB: update host controller Kconfig entries\n  USB: EHCI: make ehci-orion a separate driver\n  USB: EHCI: make ehci-vt8500 a separate driver\n  USB: usb-storage: unusual_devs update for Super TOP SATA bridge\n  USB: ehci-omap: Fix autoloading of module\n  USB: ehci-omap: Don\u0027t free gpios that we didn\u0027t request\n  USB: option: add Huawei \"ACM\" devices using protocol \u003d vendor\n  USB: serial: fix null-pointer dereferences on disconnect\n  USB: option: add Yota / Megafon M100-1 4g modem\n  drivers/usb: add missing GENERIC_HARDIRQS dependencies\n  USB: storage: properly handle the endian issues of idProduct\n  testusb: remove all mentions of \u0027usbfs\u0027\n  usb: gadget: imx_udc: make it depend on BROKEN\n  usb: omap_control_usb: fix compile warning\n  ARM: OMAP: USB: Add phy binding information\n  ARM: OMAP2: MUSB: Specify omap4 has mailbox\n  ARM: OMAP: devices: create device for usb part of control module\n  ...\n"
    },
    {
      "commit": "b5c78e04dd061b776978dad61dd85357081147b0",
      "tree": "2416b2dc61c452c3aeb2a32bcedf15e6257be638",
      "parents": [
        "06991c28f37ad68e5c03777f5c3b679b56e3dac1",
        "951348b377385475aa256c27e1c9e2564c9ec160"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 12:11:44 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 12:11:44 2013 -0800"
      },
      "message": "Merge tag \u0027staging-3.9-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging\n\nPull staging tree update from Greg Kroah-Hartman:\n \"Here\u0027s the big staging tree merge for 3.9-rc1\n\n  Lots of cleanups and updates for drivers all through the staging tree.\n  We are pretty much \"code neutral\" here, adding just about as many\n  lines as we removed.\n\n  All of these have been in linux-next for a while.\"\n\n* tag \u0027staging-3.9-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (804 commits)\n  staging: comedi: vmk80xx: wait for URBs to complete\n  staging: comedi: drivers: addi-data: hwdrv_apci3200.c: Add a missing semicolon\n  staging: et131x: Update TODO list\n  staging: et131x: Remove assignment of skb-\u003edev\n  staging: wlan-ng: hfa384x.h: fix for error reported by smatch\n  staging/zache checkpatch ERROR: spaces prohibited around that\n  staging/ozwpan: Mark read only parameters and structs as const\n  staging/ozwpan: Remove empty and unused function oz_cdev_heartbeat\n  staging/ozwpan: Mark local functions as static (fix sparse warnings)\n  staging/ozwpan: Add missing header includes\n  staging/usbip: Mark local functions as static (fix sparse warnings)\n  staging/xgifb: Remove duplicated code in loops.\n  staging/xgifb: Consolidate return paths\n  staging/xgifb: Remove code without effect\n  staging/xgifb: Remove unnecessary casts\n  staging/xgifb: Consolidate if/else if with identical code branches\n  staging: vt6656: replaced custom TRUE definition with true\n  staging: vt6656: replaced custom FALSE definition with false\n  staging: vt6656: replace custom BOOL definition with bool\n  staging/rtl8187se: Mark functions as static to silence sparse\n  ...\n"
    },
    {
      "commit": "06991c28f37ad68e5c03777f5c3b679b56e3dac1",
      "tree": "4be75788e21c3c644fe6d39abf47693a171cf4f8",
      "parents": [
        "460dc1eecf37263c8e3b17685ef236f0d236facb",
        "74fef7a8fd1d2bd94f925d6638bb4c3049e7c381"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 12:05:51 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 12:05:51 2013 -0800"
      },
      "message": "Merge tag \u0027driver-core-3.9-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core\n\nPull driver core patches from Greg Kroah-Hartman:\n \"Here is the big driver core merge for 3.9-rc1\n\n  There are two major series here, both of which touch lots of drivers\n  all over the kernel, and will cause you some merge conflicts:\n\n   - add a new function called devm_ioremap_resource() to properly be\n     able to check return values.\n\n   - remove CONFIG_EXPERIMENTAL\n\n  Other than those patches, there\u0027s not much here, some minor fixes and\n  updates\"\n\nFix up trivial conflicts\n\n* tag \u0027driver-core-3.9-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (221 commits)\n  base: memory: fix soft/hard_offline_page permissions\n  drivercore: Fix ordering between deferred_probe and exiting initcalls\n  backlight: fix class_find_device() arguments\n  TTY: mark tty_get_device call with the proper const values\n  driver-core: constify data for class_find_device()\n  firmware: Ignore abort check when no user-helper is used\n  firmware: Reduce ifdef CONFIG_FW_LOADER_USER_HELPER\n  firmware: Make user-mode helper optional\n  firmware: Refactoring for splitting user-mode helper code\n  Driver core: treat unregistered bus_types as having no devices\n  watchdog: Convert to devm_ioremap_resource()\n  thermal: Convert to devm_ioremap_resource()\n  spi: Convert to devm_ioremap_resource()\n  power: Convert to devm_ioremap_resource()\n  mtd: Convert to devm_ioremap_resource()\n  mmc: Convert to devm_ioremap_resource()\n  mfd: Convert to devm_ioremap_resource()\n  media: Convert to devm_ioremap_resource()\n  iommu: Convert to devm_ioremap_resource()\n  drm: Convert to devm_ioremap_resource()\n  ...\n"
    },
    {
      "commit": "460dc1eecf37263c8e3b17685ef236f0d236facb",
      "tree": "1d20e367cefccddb969b48afaab140b8125cea4e",
      "parents": [
        "024e4ec1856d57bb78c06ec903d29dcf716f5f47",
        "b531f81b0d70ffbe8d70500512483227cc532608"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 11:34:25 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 11:34:25 2013 -0800"
      },
      "message": "Merge tag \u0027sound-3.9\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound\n\nPull sound updates from Takashi Iwai:\n \"The biggest change in this update is the unification of HD-audio codec\n  parsers.  Now the HD-audio codec is parsed in a generic parser code\n  which is invoked by each HD-audio codec driver.\n\n  Some background information is found in David Henningsson\u0027s blog\n  entry:\n\n      http://voices.canonical.com/david.henningsson/2013/01/18/upcoming-changes-to-the-intel-hda-drivers/\n\n  Other than that, some random updates/fixes like USB-audio and a bunch\n  of small AoC updates as usual.\n\n  Highlights:\n\n   - Unification of HD-audio parser code (aka generic parser)\n\n   - Support of new Intel HD-audio controller, new IDT codecs\n\n   - Fixes for HD-audio HDMI audio hotplug\n\n   - Haswell HDMI audio fixup\n\n   - Support of Creative CA0132 DSP code\n\n   - A few fixes of HDSP driver\n\n   - USB-audio fix for Roland A-PRO, M-Audio FT C600\n\n   - Support PM for aloop driver (and fixes Oops)\n\n   - Compress API updates for gapless playback support\n\n  For ASoC part:\n\n   - Support for a wider range of hardware in the compressed stream code\n\n   - The ability to mute capture streams as well as playback streams\n     while inactive\n\n   - DT support for AK4642, FSI, Samsung I2S and WM8962\n\n   - AC\u002797 support for Tegra\n\n   - New driver for max98090, replacing the stub which was there\n\n   - A new driver from Dialog\n\n  Note that due to dependencies, DTification of DMA support for Samsung\n  platforms (used only by the and I2S driver and SPI) is merged here as\n  well.\"\n\nFix up trivial conflict in drivers/spi/spi-s3c64xx.c due to removed code\nbeing changed.\n\n* tag \u0027sound-3.9\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (453 commits)\n  ALSA: usb: Fix Processing Unit Descriptor parsers\n  ALSA: hda - hdmi: Notify userspace when ELD control changes\n  ALSA: hda - hdmi: Protect ELD buffer\n  ALSA: hda - hdmi: Refactor hdmi_eld into parsed_hdmi_eld\n  ALSA: hda - hdmi: Do not expose eld data when eld is invalid\n  ALSA: hda - hdmi: ELD shouldn\u0027t be valid after unplug\n  ALSA: hda - Fix the silent speaker output on Fujitsu S7020 laptop\n  ALSA: hda - add quirks for mute LED on two HP machines\n  ALSA: usb/quirks, fix out-of-bounds access\n  ASoC: codecs: Add da7213 codec\n  ALSA: au88x0 - Define channel map for au88x0\n  ALSA: compress: add support for gapless playback\n  ALSA: hda - Remove speaker clicks on CX20549\n  ALSA: hda - Disable runtime PM for Intel 5 Series/3400\n  ALSA: hda - Increase badness for missing multi-io\n  ASoC: arizona: Automatically manage input mutes\n  ALSA: hda - Fix broken workaround for HDMI/SPDIF conflicts\n  ALSA: hda/ca0132 - Add missing \\n to debug prints\n  ALSA: hda/ca0132 - Fix type of INVALID_CHIP_ADDRESS\n  ALSA: hda - update documentation for no-primary-hp fixup\n  ...\n"
    },
    {
      "commit": "024e4ec1856d57bb78c06ec903d29dcf716f5f47",
      "tree": "72c89ea735f2aad2f63f64444ec056d7da8e06ff",
      "parents": [
        "850cb82b754c931c570c9cb7f10c9f2181bac617",
        "fb0af3f2b1b613e5ea75426d454c7e5b1d1eef49"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 09:38:18 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 09:38:18 2013 -0800"
      },
      "message": "Merge tag \u0027please-pull-pstore\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux\n\nPull pstore patches from Tony Luck:\n \"A few fixes to reduce places where pstore might hang a system in the\n  crash path.  Plus a new mountpoint (/sys/fs/pstore ...  makes more\n  sense then /dev/pstore).\"\n\nFix up trivial conflict in drivers/firmware/efivars.c\n\n* tag \u0027please-pull-pstore\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:\n  pstore: Create a convenient mount point for pstore\n  efi_pstore: Introducing workqueue updating sysfs\n  efivars: Disable external interrupt while holding efivars-\u003elock\n  efi_pstore: Avoid deadlock in non-blocking paths\n  pstore: Avoid deadlock in panic and emergency-restart path\n"
    },
    {
      "commit": "2171ee8f43968e8d6a2b4712d495e352e881c446",
      "tree": "354078e804c9d721b246c99f1c272d85b92acfb1",
      "parents": [
        "9b9a72a8a370a1397fbb153d107e0d9fa8affb48",
        "666b3d803a511fbc9bc5e5ea8ce66010cf03ea13"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 09:23:01 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 09:23:01 2013 -0800"
      },
      "message": "Merge tag \u0027nfs-for-3.9-1\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\nPull NFS client bugfixes from Trond Myklebust:\n\n - Fix an Oops in the pNFS layoutget code\n\n - Fix a number of NFSv4 and v4.1 state recovery deadlocks and hangs due\n   to the interaction of the session drain lock and state management\n   locks.\n\n - Remove task-\u003etk_xprt, which was hiding a lot of RCU dereferencing\n   bugs\n\n - Fix a long standing NFSv3 posix lock recovery bug.\n\n - Revert commit 324d003b0cd8 (\"NFS: add nfs_sb_deactive_async to avoid\n   deadlock\").  It turned out that the root cause of the deadlock was\n   due to interactions with the workqueues that have now been resolved.\n\n* tag \u0027nfs-for-3.9-1\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (22 commits)\n  NLM: Ensure that we resend all pending blocking locks after a reclaim\n  umount oops when remove blocklayoutdriver first\n  sunrpc: silence build warning in gss_fill_context\n  nfs: remove kfree() redundant null checks\n  NFSv4.1: Don\u0027t decode skipped layoutgets\n  NFSv4.1: Fix bulk recall and destroy of layouts\n  NFSv4.1: Fix an ABBA locking issue with session and state serialisation\n  NFSv4: Fix a reboot recovery race when opening a file\n  NFSv4: Ensure delegation recall and byte range lock removal don\u0027t conflict\n  NFSv4: Fix up the return values of nfs4_open_delegation_recall\n  NFSv4.1: Don\u0027t lose locks when a server reboots during delegation return\n  NFSv4.1: Prevent deadlocks between state recovery and file locking\n  NFSv4: Allow the state manager to mark an open_owner as being recovered\n  SUNRPC: Add missing static declaration to _gss_mech_get_by_name\n  Revert \"NFS: add nfs_sb_deactive_async to avoid deadlock\"\n  SUNRPC: Nuke the tk_xprt macro\n  SUNRPC: Avoid RCU dereferences in the transport bind and connect code\n  SUNRPC: Fix an RCU dereference in xprt_reserve\n  SUNRPC: Pass pointers to struct rpc_xprt to the congestion window\n  SUNRPC: Fix an RCU dereference in xs_local_rpcbind\n  ...\n"
    },
    {
      "commit": "c4bc705e45d91f900f7ec2e23a458280b084ae91",
      "tree": "54dc459057ddbcd33321d255b0a94f213dc43910",
      "parents": [
        "2608e3d0fa63b892f37a9f1921c2d2b37c7933c1",
        "634734b63ac39e137a1c623ba74f3e062b6577db"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 09:03:54 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 09:03:54 2013 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse\n\nPull fuse updates from Miklos Szeredi:\n \"The biggest part of this pull request is a patch series from Maxim\n  Patlasov to optimize scatter-gather direct IO.  There\u0027s also the\n  addition of a \"readdirplus\" API, poll events and various fixes and\n  cleanups.\n\n  There\u0027s a one line change outside of fuse to mm/filemap.c which makes\n  the argument of iov_iter_single_seg_count() const, required by Maxim\u0027s\n  patches.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse: (22 commits)\n  fuse: allow control of adaptive readdirplus use\n  Synchronize fuse header with one used in library\n  fuse: send poll events\n  fuse: don\u0027t WARN when nlink is zero\n  fuse: avoid out-of-scope stack access\n  fuse: bump version for READDIRPLUS\n  FUSE: Adapt readdirplus to application usage patterns\n  Do not use RCU for current process credentials\n  fuse: cleanup fuse_direct_io()\n  fuse: optimize __fuse_direct_io()\n  fuse: optimize fuse_get_user_pages()\n  fuse: pass iov[] to fuse_get_user_pages()\n  mm: minor cleanup of iov_iter_single_seg_count()\n  fuse: use req-\u003epage_descs[] for argpages cases\n  fuse: add per-page descriptor \u003coffset, length\u003e to fuse_req\n  fuse: rework fuse_do_ioctl()\n  fuse: rework fuse_perform_write()\n  fuse: rework fuse_readpages()\n  fuse: rework fuse_retrieve()\n  fuse: categorize fuse_get_req()\n  ...\n"
    },
    {
      "commit": "b531f81b0d70ffbe8d70500512483227cc532608",
      "tree": "98d91808b595a7160d393c9d4c421f9683cd7eda",
      "parents": [
        "92c69e796b83f922c81a5cf7968cb114a7fa14c6"
      ],
      "author": {
        "name": "Pawel Moll",
        "email": "mail@pawelmoll.com",
        "time": "Thu Feb 21 01:55:50 2013 +0000"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Feb 21 13:55:12 2013 +0100"
      },
      "message": "ALSA: usb: Fix Processing Unit Descriptor parsers\n\nCommit 99fc86450c439039d2ef88d06b222fd51a779176 \"ALSA: usb-mixer:\nparse descriptors with structs\" introduced a set of useful parsers\nfor descriptors. Unfortunately the parses for the Processing Unit\nDescriptor came with a very subtle bug...\n\nFunctions uac_processing_unit_iProcessing() and\nuac_processing_unit_specific() were indexing the baSourceID array\nforgetting the fields before the iProcessing and process-specific\ndescriptors.\n\nThe problem was observed with Sound Blaster Extigy mixer,\nwhere nNrModes in Up/Down-mix Processing Unit Descriptor\nwas accessed at offset 10 of the descriptor (value 0)\ninstead of offset 15 (value 7). In result the resulting\ncontrol had interesting limit values:\n\nSimple mixer control \u0027Channel Routing Mode Select\u0027,0\n  Capabilities: volume volume-joined penum\n  Playback channels: Mono\n  Capture channels: Mono\n  Limits: 0 - -1\n  Mono: -1 [100%]\n\nFixed by starting from the bmControls, which was calculated\ncorrectly, instead of baSourceID.\n\nNow the mentioned control is fine:\n\nSimple mixer control \u0027Channel Routing Mode Select\u0027,0\n  Capabilities: volume volume-joined penum\n  Playback channels: Mono\n  Capture channels: Mono\n  Limits: 0 - 6\n  Mono: 0 [0%]\n\nSigned-off-by: Pawel Moll \u003cmail@pawelmoll.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "73759518d6d6b56e398791b7522328baf4181a82",
      "tree": "a91375dfdb9f3aff472ceef897f5c076d40763a5",
      "parents": [
        "539cf54bdd922474d22585837c9fec3343d7061b",
        "483f86a54c6d89f16da2e53f2b7b6205b34756df",
        "7e3cc447ff8906558619b1ecc46e4bd776a4f3a6",
        "1b474fe82d4eed3c909f02be82586284827c1705",
        "30ba2fbde1840db440915491cdde235b72a11384"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Feb 21 10:45:01 2013 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Feb 21 10:45:01 2013 +0100"
      },
      "message": "Merge branches \u0027for-3.9/logitech\u0027, \u0027for-3.9/multitouch\u0027, \u0027for-3.9/ntrig\u0027, \u0027for-3.9/thingm\u0027 and \u0027for-3.9/upstream\u0027 into for-linus\n"
    },
    {
      "commit": "a0b1c42951dd06ec83cc1bc2c9788131d9fefcd8",
      "tree": "a572f1523cf904c93020c9cdb32f3bc84ec3ac16",
      "parents": [
        "8ec4942212a6d337982967778a3dc3b60aea782e",
        "ecd9883724b78cc72ed92c98bcb1a46c764fff21"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 20 18:58:50 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 20 18:58:50 2013 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next\n\nPull networking update from David Miller:\n\n 1) Checkpoint/restarted TCP sockets now can properly propagate the TCP\n    timestamp offset.  From Andrey Vagin.\n\n 2) VMWARE VM VSOCK layer, from Andy King.\n\n 3) Much improved support for virtual functions and SR-IOV in bnx2x,\n    from Ariel ELior.\n\n 4) All protocols on ipv4 and ipv6 are now network namespace aware, and\n    all the compatability checks for initial-namespace-only protocols is\n    removed.  Thanks to Tom Parkin for helping deal with the last major\n    holdout, L2TP.\n\n 5) IPV6 support in netpoll and network namespace support in pktgen,\n    from Cong Wang.\n\n 6) Multiple Registration Protocol (MRP) and Multiple VLAN Registration\n    Protocol (MVRP) support, from David Ward.\n\n 7) Compute packet lengths more accurately in the packet scheduler, from\n    Eric Dumazet.\n\n 8) Use per-task page fragment allocator in skb_append_datato_frags(),\n    also from Eric Dumazet.\n\n 9) Add support for connection tracking labels in netfilter, from\n    Florian Westphal.\n\n10) Fix default multicast group joining on ipv6, and add anti-spoofing\n    checks to 6to4 and 6rd.  From Hannes Frederic Sowa.\n\n11) Make ipv4/ipv6 fragmentation memory limits more reasonable in modern\n    times, rearrange inet frag datastructures for better cacheline\n    locality, and move more operations outside of locking.  From Jesper\n    Dangaard Brouer.\n\n12) Instead of strict master \u003c--\u003e slave relationships, allow arbitrary\n    scenerios with \"upper device lists\".  From Jiri Pirko.\n\n13) Improve rate limiting accuracy in TBF and act_police, also from Jiri\n    Pirko.\n\n14) Add a BPF filter netfilter match target, from Willem de Bruijn.\n\n15) Orphan and delete a bunch of pre-historic networking drivers from\n    Paul Gortmaker.\n\n16) Add TSO support for GRE tunnels, from Pravin B SHelar.  Although\n    this still needs some minor bug fixing before it\u0027s %100 correct in\n    all cases.\n\n17) Handle unresolved IPSEC states like ARP, with a resolution packet\n    queue.  From Steffen Klassert.\n\n18) Remove TCP Appropriate Byte Count support (ABC), from Stephen\n    Hemminger.  This was long overdue.\n\n19) Support SO_REUSEPORT, from Tom Herbert.\n\n20) Allow locking a socket BPF filter, so that it cannot change after a\n    process drops capabilities.\n\n21) Add VLAN filtering to bridge, from Vlad Yasevich.\n\n22) Bring ipv6 on-par with ipv4 and do not cache neighbour entries in\n    the ipv6 routes, from YOSHIFUJI Hideaki.\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1538 commits)\n  ipv6: fix race condition regarding dst-\u003eexpires and dst-\u003efrom.\n  net: fix a wrong assignment in skb_split()\n  ip_gre: remove an extra dst_release()\n  ppp: set qdisc_tx_busylock to avoid LOCKDEP splat\n  atl1c: restore buffer state\n  net: fix a build failure when !CONFIG_PROC_FS\n  net: ipv4: fix waring -Wunused-variable\n  net: proc: fix build failed when procfs is not configured\n  Revert \"xen: netback: remove redundant xenvif_put\"\n  net: move procfs code to net/core/net-procfs.c\n  qmi_wwan, cdc-ether: add ADU960S\n  bonding: set sysfs device_type to \u0027bond\u0027\n  bonding: fix bond_release_all inconsistencies\n  b44: use netdev_alloc_skb_ip_align()\n  xen: netback: remove redundant xenvif_put\n  net: fec: Do a sanity check on the gpio number\n  ip_gre: propogate target device GSO capability to the tunnel device\n  ip_gre: allow CSUM capable devices to handle packets\n  bonding: Fix initialize after use for 3ad machine state spinlock\n  bonding: Fix race condition between bond_enslave() and bond_3ad_update_lacp_rate()\n  ...\n"
    },
    {
      "commit": "6db167dfc013b0e114c81077ac091ba26a69f4ed",
      "tree": "1978b8a2774e0fdb3690065625b0b5eb84475552",
      "parents": [
        "32f9aab8ebd886211a7b3e552753af014c3e5225",
        "9cb543124a2d31af42ce61a4c30765ecc8e5f1fa"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 20 14:29:37 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 20 14:29:37 2013 -0800"
      },
      "message": "Merge branch \u0027for-linus-2\u0027 of git://git.linaro.org/people/rmk/linux-arm\n\nPull ARM updates (part two) from Russell King:\n\n - breakpoint and perf updates from Will Deacon.\n\n - hypervisor boot mode updates from Will.\n\n - support for Power State Coordination Interface via the Hypervisor\n\n - core ARM support for KVM\n\n* \u0027for-linus-2\u0027 of git://git.linaro.org/people/rmk/linux-arm: (32 commits)\n  KVM: ARM: Add maintainer entry for KVM/ARM\n  KVM: ARM: Power State Coordination Interface implementation\n  KVM: ARM: Handle I/O aborts\n  KVM: ARM: Handle guest faults in KVM\n  KVM: ARM: VFP userspace interface\n  KVM: ARM: Demux CCSIDR in the userspace API\n  KVM: ARM: User space API for getting/setting co-proc registers\n  KVM: ARM: Emulation framework and CP15 emulation\n  KVM: ARM: World-switch implementation\n  KVM: ARM: Inject IRQs and FIQs from userspace\n  KVM: ARM: Memory virtualization setup\n  KVM: ARM: Hypervisor initialization\n  KVM: ARM: Initial skeleton to compile KVM support\n  ARM: Section based HYP idmap\n  ARM: Add page table and page defines needed by KVM\n  ARM: perf: simplify __hw_perf_event_init err handling\n  ARM: perf: remove unnecessary checks for idx \u003c 0\n  ARM: perf: handle armpmu_register failing\n  ARM: perf: don\u0027t pretend to support counting of L1I writes\n  ARM: perf: remove redundant NULL check on cpu_pmu\n  ...\n"
    },
    {
      "commit": "ecd9883724b78cc72ed92c98bcb1a46c764fff21",
      "tree": "c18d4c96f7e4dcf278c88e505be8225af7374800",
      "parents": [
        "68534c682e8f5c333f835818ca5a89d3e6288870"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki / 吉藤英明",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Wed Feb 20 00:29:08 2013 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Feb 20 15:11:45 2013 -0500"
      },
      "message": "ipv6: fix race condition regarding dst-\u003eexpires and dst-\u003efrom.\n\nEric Dumazet wrote:\n| Some strange crashes happen in rt6_check_expired(), with access\n| to random addresses.\n|\n| At first glance, it looks like the RTF_EXPIRES and\n| stuff added in commit 1716a96101c49186b\n| (ipv6: fix problem with expired dst cache)\n| are racy : same dst could be manipulated at the same time\n| on different cpus.\n|\n| At some point, our stack believes rt-\u003edst.from contains a dst pointer,\n| while its really a jiffie value (as rt-\u003edst.expires shares the same area\n| of memory)\n|\n| rt6_update_expires() should be fixed, or am I missing something ?\n|\n| CC Neil because of https://bugzilla.redhat.com/show_bug.cgi?id\u003d892060\n\nBecause we do not have any locks for dst_entry, we cannot change\nessential structure in the entry; e.g., we cannot change reference\nto other entity.\n\nTo fix this issue, split \u0027from\u0027 and \u0027expires\u0027 field in dst_entry\nout of union.  Once it is \u0027from\u0027 is assigned in the constructor,\nkeep the reference until the very last stage of the life time of\nthe object.\n\nOf course, it is unsafe to change \u0027from\u0027, so make rt6_set_from simple\njust for fresh entries.\n\nReported-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nReported-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nCC: Gao Feng \u003cgaofeng@cn.fujitsu.com\u003e\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nReviewed-by: Eric Dumazet \u003cedumazet@google.com\u003e\nReported-by: Steinar H. Gunderson \u003csesse@google.com\u003e\nReviewed-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8793422fd9ac5037f5047f80473007301df3689f",
      "tree": "f5aa3b3a564f053e1b5604c45db80193abc734a4",
      "parents": [
        "b3cdda2b4f541439ca4205793040aa2e1c852e3b",
        "10baf04e95fbf7eb6089410220a547211dd2ffa7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 20 11:26:56 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 20 11:26:56 2013 -0800"
      },
      "message": "Merge tag \u0027pm+acpi-3.9-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm\n\nPull ACPI and power management updates from Rafael Wysocki:\n\n - Rework of the ACPI namespace scanning code from Rafael J.  Wysocki\n   with contributions from Bjorn Helgaas, Jiang Liu, Mika Westerberg,\n   Toshi Kani, and Yinghai Lu.\n\n - ACPI power resources handling and ACPI device PM update from Rafael\n   J Wysocki.\n\n - ACPICA update to version 20130117 from Bob Moore and Lv Zheng with\n   contributions from Aaron Lu, Chao Guan, Jesper Juhl, and Tim Gardner.\n\n - Support for Intel Lynxpoint LPSS from Mika Westerberg.\n\n - cpuidle update from Len Brown including Intel Haswell support, C1\n   state for intel_idle, removal of global pm_idle.\n\n - cpuidle fixes and cleanups from Daniel Lezcano.\n\n - cpufreq fixes and cleanups from Viresh Kumar and Fabio Baltieri with\n   contributions from Stratos Karafotis and Rickard Andersson.\n\n - Intel P-states driver for Sandy Bridge processors from Dirk\n   Brandewie.\n\n - cpufreq driver for Marvell Kirkwood SoCs from Andrew Lunn.\n\n - cpufreq fixes related to ordering issues between acpi-cpufreq and\n   powernow-k8 from Borislav Petkov and Matthew Garrett.\n\n - cpufreq support for Calxeda Highbank processors from Mark Langsdorf\n   and Rob Herring.\n\n - cpufreq driver for the Freescale i.MX6Q SoC and cpufreq-cpu0 update\n   from Shawn Guo.\n\n - cpufreq Exynos fixes and cleanups from Jonghwan Choi, Sachin Kamat,\n   and Inderpal Singh.\n\n - Support for \"lightweight suspend\" from Zhang Rui.\n\n - Removal of the deprecated power trace API from Paul Gortmaker.\n\n - Assorted updates from Andreas Fleig, Colin Ian King, Davidlohr Bueso,\n   Joseph Salisbury, Kees Cook, Li Fei, Nishanth Menon, ShuoX Liu,\n   Srinivas Pandruvada, Tejun Heo, Thomas Renninger, and Yasuaki\n   Ishimatsu.\n\n* tag \u0027pm+acpi-3.9-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (267 commits)\n  PM idle: remove global declaration of pm_idle\n  unicore32 idle: delete stray pm_idle comment\n  openrisc idle: delete pm_idle\n  mn10300 idle: delete pm_idle\n  microblaze idle: delete pm_idle\n  m32r idle: delete pm_idle, and other dead idle code\n  ia64 idle: delete pm_idle\n  cris idle: delete idle and pm_idle\n  ARM64 idle: delete pm_idle\n  ARM idle: delete pm_idle\n  blackfin idle: delete pm_idle\n  sparc idle: rename pm_idle to sparc_idle\n  sh idle: rename global pm_idle to static sh_idle\n  x86 idle: rename global pm_idle to static x86_idle\n  APM idle: register apm_cpu_idle via cpuidle\n  cpufreq / intel_pstate: Add kernel command line option disable intel_pstate.\n  cpufreq / intel_pstate: Change to disallow module build\n  tools/power turbostat: display SMI count by default\n  intel_idle: export both C1 and C1E\n  ACPI / hotplug: Fix concurrency issues and memory leaks\n  ...\n"
    },
    {
      "commit": "b3cdda2b4f541439ca4205793040aa2e1c852e3b",
      "tree": "12f4249a75ba4348b6674c0d46581d959d1dc5c0",
      "parents": [
        "3aad3f03b2b6d2d977b985c49274cdb78a1593e5",
        "02bbde7849e68e193cefaa1885fe0df0f03c9fcd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 20 11:04:46 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 20 11:04:46 2013 -0800"
      },
      "message": "Merge tag \u0027dt-for-linus\u0027 of git://git.secretlab.ca/git/linux\n\nPull device tree changes from Grant Likely:\n \"All around device tree changes destined for v3.8.  Aside from the\n  documentation updates the highlights in this branch include:\n\n   - Kbuild changes for using CPP with .dts files\n   - locking fix from preempt_rt patchset\n   - include DT alias names in device uevent\n   - Selftest bugfixes and improvements\n   - New function for counting phandles stanzas in a property\n   - constify argument to of_node_full_name()\n   - Various bug fixes\n\n  This tree did also contain a commit to use platform_device_add instead\n  of open-coding the device add code, but it caused problems with amba\n  devices and needed to be reverted.\"\n\n* tag \u0027dt-for-linus\u0027 of git://git.secretlab.ca/git/linux: (23 commits)\n  Revert \"of: use platform_device_add\"\n  kbuild: limit dtc+cpp include path\n  gpio: Make of_count_named_gpios() use new of_count_phandle_with_args()\n  of: Create function for counting number of phandles in a property\n  of/base: Clean up exit paths for of_parse_phandle_with_args()\n  of/selftest: Use selftest() macro throughout\n  of/selftest: Fix GPIOs selftest to cover the 7th case\n  of: fix recursive locking in of_get_next_available_child()\n  documentation/devicetree: Fix a typo in exynos-dw-mshc.txt\n  OF: convert devtree lock from rw_lock to raw spinlock\n  of/exynos_g2d: Add Bindings for exynos G2D driver\n  kbuild: create a rule to run the pre-processor on *.dts files\n  input: Extend matrix-keypad device tree binding\n  devicetree: Move NS2 LEDs binding into LEDs directory\n  of: use platform_device_add\n  powerpc/5200: Fix size to request_mem_region() call\n  documentation/devicetree: Fix typos\n  of: add \u0027const\u0027 to of_node_full_name parameter\n  of: Output devicetree alias names in uevent\n  DT: add vendor prefixes for Renesas and Toshiba\n  ...\n"
    },
    {
      "commit": "3aad3f03b2b6d2d977b985c49274cdb78a1593e5",
      "tree": "e2955fe687fcd9c26f82d57a3c818e05406964ed",
      "parents": [
        "10b6339e93244156fac901560117e94bf9dca120",
        "095c3752e673c0ba039a2f67fd867297fde75ae7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 20 11:03:22 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 20 11:03:22 2013 -0800"
      },
      "message": "Merge tag \u0027spi-for-linus\u0027 of git://git.secretlab.ca/git/linux\n\nPull SPI changes from Grant Likely:\n \"Changes to both core spi code and spi device drivers.  The driver\n  changes are the usual set of bug fixes and platform enablement.\n\n  Core code changes include:\n\n   - More intelligent assignment of SPI bus numbers when using DT\n\n   - Common mechanism for using gpios as CS lines\n\n   - Pull checks for bits_per_word and transfer speed out of drivers and\n     into core code\n\n   - Ensure temporary DMA buffers are DMA safe\"\n\n* tag \u0027spi-for-linus\u0027 of git://git.secretlab.ca/git/linux: (50 commits)\n  spi: Document cs_gpios and cs_gpio in kernel-doc\n  spi/of: Fix initialization of cs_gpios array\n  spi/pxa2xx: add support for Lynxpoint SPI controllers\n  spi/pxa2xx: add support for Intel Low Power Subsystem SPI\n  spi/pxa2xx: add support for SPI_LOOP\n  spi/pxa2xx: add support for runtime PM\n  spi/pxa2xx: add support for DMA engine\n  spi/pxa2xx: break out the private DMA API usage into a separate file\n  spi/ath79: add shutdown handler\n  spi/mips-lantiq: set SPI_MASTER_HALF_DUPLEX flag\n  spi/mips-lantiq: make use of spi_finalize_current_message\n  spi/bcm63xx: work around inability to keep CS up\n  spi/davinci: use request_threaded_irq() to fix deadlock\n  spi/orion: Use module_platform_driver()\n  spi/bcm63xx: reject transfers unable to transfer\n  spi: Ensure memory used for spi_write_then_read() is DMA safe\n  spi/spi-mpc512x-psc: init mode bits supported by the driver\n  spi/mpc512x-psc: don\u0027t use obsolet cell-index property\n  spi: Remove erroneous __init, __exit and __exit_p() references in drivers\n  spi/s3c64xx: fix checkpatch warnings and error\n  ...\n"
    },
    {
      "commit": "10b6339e93244156fac901560117e94bf9dca120",
      "tree": "93a86c1328f0f3b0f37af493907b32d72027c9d1",
      "parents": [
        "c6699b58f4fe2f968f036a862c09ce44b6968376",
        "fde8bc59c03c0ad1fa4f655e0ed5cc1f76d11e8b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 20 11:02:10 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 20 11:02:10 2013 -0800"
      },
      "message": "Merge tag \u0027clk-for-linus\u0027 of git://git.linaro.org/people/mturquette/linux\n\nPull clock framework update from Michael Turquette:\n \"The common clock framework changes for 3.9 are almost entirely fixes.\n\n  None are dire enough to be Cc\u0027d to stable which may be interpreted to\n  mean that users of the framework are reaching stability.  Lots of new\n  adoption of this framework is via DeviceTree data and that comes\n  through the respective architecture and platform trees instead of\n  through the clk framework tree.\n\n  Two new features are improved debugfs output and an improvement to how\n  DT clocks are initialized by reusing a common method.\"\n\n* tag \u0027clk-for-linus\u0027 of git://git.linaro.org/people/mturquette/linux: (25 commits)\n  clk: sunxi: remove stale Makefile entry\n  clk: vexpress: Use common of_clk_init() function\n  clk: zynq: Use common of_clk_init() function\n  clk: vt8500: Use common of_clk_init() function\n  clk: highbank: Use common of_clk_init() function\n  clk: sunxi: Use common of_clk_init() function\n  clk: add common of_clk_init() function\n  clk: Deduplicate exit code in clk_set_rate\n  clk: beautify Makefile\n  clk-divider: fix macros\n  clk: prima2: enable dt-binding clkdev mapping\n  clk: mxs: Index is always positive\n  clk: max77686: Avoid double free at remove time\n  clk: remove exported function from __init section\n  clk: vt8500: Add support for WM8750/WM8850 PLL clocks\n  clk: vt8500: Fix division-by-0 when requested rate\u003d0\n  clk: vt8500: Fix device clock divisor calculations\n  clk: vt8500: Fix error in PLL calculations on non-exact match.\n  clk: max77686: Remove unnecessary NULL checking for container_of()\n  clk: JSON debugfs clock tree summary\n  ...\n"
    },
    {
      "commit": "c6699b58f4fe2f968f036a862c09ce44b6968376",
      "tree": "d26743fa88966c2bdfd35ba723e3631f08a1f5fc",
      "parents": [
        "5a1203914a637b642442a861cf462d16401548e1",
        "2d9f0d964be94fd51c7303288c6f9c88bf2381fe"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 20 11:00:43 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 20 11:00:43 2013 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n\nPull input updates from Dmitry Torokhov:\n \"Two new touchpad drivers - Cypress APA I2C Trackpad and Cypress PS/2\n  touchpad and a big update to ALPS driver from Kevin Cernekee that adds\n  support for \"Rushmore\" touchpads and paves way for adding support for\n  \"Dolphin\" touchpads.\n\n  There is also a new input driver for Goldfish emulator and also\n  Android keyreset driver was folded into SysRq code.\n\n  A few more drivers were updated with device tree bindings and others\n  got some small cleanups and fixes.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (55 commits)\n  Input: cyttsp-spi - remove duplicate MODULE_ALIAS()\n  Input: tsc2005 - add MODULE_ALIAS\n  Input: tegra-kbc - require CONFIG_OF, remove platform data\n  Input: synaptics - initialize pointer emulation usage\n  Input: MT - do not apply filtering on emulated events\n  Input: bma150 - make some defines public and fix some comments\n  Input: bma150 - fix checking pm_runtime_get_sync() return value\n  Input: ALPS - enable trackstick on Rushmore touchpads\n  Input: ALPS - add support for \"Rushmore\" touchpads\n  Input: ALPS - make the V3 packet field decoder \"pluggable\"\n  Input: ALPS - move pixel and bitmap info into alps_data struct\n  Input: ALPS - fix command mode check\n  Input: ALPS - rework detection of Pinnacle AGx touchpads\n  Input: ALPS - move {addr,nibble}_command settings into alps_set_defaults()\n  Input: ALPS - use function pointers for different protocol handlers\n  Input: ALPS - rework detection sequence\n  Input: ALPS - introduce helper function for repeated commands\n  Input: ALPS - move alps_get_model() down below hw_init code\n  Input: ALPS - copy \"model\" info into alps_data struct\n  Input: ALPS - document the alps.h data structures\n  ...\n"
    },
    {
      "commit": "5a1203914a637b642442a861cf462d16401548e1",
      "tree": "894ea523ad45686b9103410f7daeb3a8e670553a",
      "parents": [
        "c560dc8793ecf4c3bb4ba6e7b8cae8a64486d96b",
        "ac6324e7021dfa917ce4f9a836318c3e46fbb84e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 20 10:19:07 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 20 10:19:07 2013 -0800"
      },
      "message": "Merge tag \u0027for-v3.9\u0027 of git://git.infradead.org/battery-2.6\n\nPull battery updates from Anton Vorontsov:\n \"Four new drivers:\n\n   - goldfish_battery:\n\n     This is Android Emulator battery driver.  Originally from Google,\n     but Intel folks reshaped it for mainline\n\n   - pm2301_charger:\n\n     A new driver for ST-Ericsson 2301 Power Management chip, uses\n     AB8500 battery management core\n\n   - qnap-poweroff:\n\n     The driver adds poweroff functionality for QNAP NAS boxes\n\n   - restart-poweroff:\n\n     A generic driver that implements \u0027power off by restarting\u0027.  The\n     actual poweroff functionality is implemented through a bootloader,\n     so Linux\u0027 task is just to restart the box.  The driver is useful on\n     Buffalo Linkstation LS-XHL and LS-CHLv2 boards.  Andrew Lunn worked\n     on submitting the driver (as well as qnap-poweroff above).\n\n  Additionally:\n\n   - A lot of fixes for ab8500 drivers.  This is a part of efforts of\n     syncing internal ST-Ericsson development tree with the mainline.\n     Lee Jones @ Linaro worked on compilation and reshaping these\n     series.\n\n   - New health properties for the power supplies: \"Watchdog timer\n     expire\" and \"Safety timer expire\"\n\n   - As usual, a bunch of fixes/cleanups here and there\"\n\n* tag \u0027for-v3.9\u0027 of git://git.infradead.org/battery-2.6: (81 commits)\n  bq2415x_charger: Add support for offline and 100mA mode\n  generic-adc-battery: Fix forever loop in gab_remove()\n  goldfish_battery: Add missing GENERIC_HARDIRQS dependency\n  da9030_battery: Include notifier.h\n  bq27x00_battery: Fix reporting battery temperature\n  power/reset: Remove newly introduced __dev* annotations\n  lp8727_charger: Small cleanup in naming\n  ab8500_btemp: Demote initcall sequence\n  ds2782_battery: Add power_supply_changed() calls for proper uevent support\n  power: Add battery driver for goldfish emulator\n  u8500-charger: Delay for USB enumeration\n  ab8500-bm: Remove individual [charger|btemp|fg|chargalg] pdata structures\n  ab8500-charger: Do not touch VBUSOVV bits\n  ab8500-fg: Use correct battery charge full design\n  pm2301: LPN mode control support\n  pm2301: Enable vbat low monitoring\n  ab8500-bm: Flush all work queues before suspending\n  ab8500-fg: Go to INIT_RECOVERY when charger removed\n  ab8500-charger: Add support for autopower on AB8505 and AB9540\n  abx500-chargalg: Add new sysfs interface to get current charge status\n  ...\n\nFix up fairly straightforward conflicts in the ab8500 driver.  But since\nit seems to be ARM-specific, I can\u0027t even compile-test the result..\n"
    },
    {
      "commit": "c560dc8793ecf4c3bb4ba6e7b8cae8a64486d96b",
      "tree": "21d516ad43a5e3207b81731239ef207795cf7e11",
      "parents": [
        "8a3a11f91def34424b1995cb54ccd658efde8568",
        "4626dcff78a70258f0064fbdd6d504249f918bcd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 20 09:26:08 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 20 09:26:08 2013 -0800"
      },
      "message": "Merge tag \u0027hwmon-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging\n\nPull hwmon updates from Guenter Roeck:\n\n - New drivers for MAX6697 and compatibles and for INA209.\n\n - Added support for IT8771E, IT8772E, MAX34460, MAX34461, MCP98244, and\n   ADT7420 to existing drivers.\n\n - Added support for additional attributes to various drivers.\n\n - Replaced SENSORS_LIMIT with clamp_val; retire SENSORS_LIMIT;\n\n - Clean up PMBus code to reduce its size; clean up adt7410 driver.\n\n - A couple of minor bug fixes as well as documentation cleanup.\n\n - Out-of-tree change: Replace SENSORS_LIMIT with clamp_val in\n   platform/x86/eeepc-laptop driver.\n\n* tag \u0027hwmon-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (32 commits)\n  hwmon: (ntc_thermistor): Fix sparse warnings\n  hwmon: (adt7410) Add device table entry for the adt7420\n  hwmon: (adt7410) Use I2C_ADDRS helper macro\n  hwmon: (adt7410) Use the SIMPLE_DEV_PM_OPS helper macro\n  hwmon: (adt7410) Let suspend/resume depend on CONFIG_PM_SLEEP\n  hwmon: (adt7410) Clear unwanted bits in the config register\n  hwmon: (jc42) Add support for MCP98244\n  hwmon: (pmbus) Clean up for code size reduction\n  hwmon: (pmbus/max34440) Add support for MAX34460 and MAX34461\n  hwmon: (pmbus) Add support for word status register\n  hwmon: (pmbus/zl6100) Add support for VMON/VDRV\n  hwmon: (pmbus) Add function to clear sensor cache\n  hwmon: (pmbus) Add support for additional voltage sensor\n  hwmon: (pmbus) Use krealloc to allocate attribute memory\n  hwmon: (pmbus) Simplify memory allocation for sensor attributes\n  hwmon: (pmbus) Improve boolean handling\n  hwmon: (pmbus) Simplify memory allocation for labels and booleans\n  hwmon: (pmbus) Use dev variable to represent client-\u003edev\n  hwmon: (pmbus) Fix \u0027Macros with multiple statements\u0027 checkpatch error\n  hwmon: (pmbus) Drop unnecessary error messages in probe error path\n  ...\n"
    }
  ],
  "next": "8a3a11f91def34424b1995cb54ccd658efde8568"
}
