)]}'
{
  "log": [
    {
      "commit": "161f47bf41c5ece90ac53cbb6a4cb9bf74ce0ef6",
      "tree": "f6f18c3eb74faf8b2b8de27b42241e9986bd6dc9",
      "parents": [
        "85863e475e59afb027b0113290e3796ee6020b7d"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Mon Feb 04 22:29:05 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:17 2008 -0800"
      },
      "message": "maps4: add /proc/kpagecount interface\n\nThis makes physical page map counts available to userspace. Together\nwith /proc/pid/pagemap and /proc/pid/clear_refs, this can be used to\nmonitor memory usage on a per-page basis.\n\n[akpm@linux-foundation.org: remove unneeded access_ok()]\n[bunk@stusta.de: make struct proc_kpagemap static]\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "85863e475e59afb027b0113290e3796ee6020b7d",
      "tree": "047cc687b98c0261bd3c083f17c090fbf082355f",
      "parents": [
        "a6198797cc3fd659b2d81cdf6bb6b9bba9cd93e9"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Mon Feb 04 22:29:04 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:16 2008 -0800"
      },
      "message": "maps4: add /proc/pid/pagemap interface\n\nThis interface provides a mapping for each page in an address space to its\nphysical page frame number, allowing precise determination of what pages are\nmapped and what pages are shared between processes.\n\nNew in this version:\n\n- headers gone again (as recommended by Dave Hansen and Alan Cox)\n- 64-bit entries (as per discussion with Andi Kleen)\n- swap pte information exported (from Dave Hansen)\n- page walker callback for holes (from Dave Hansen)\n- direct put_user I/O (as suggested by Rusty Russell)\n\nThis patch folds in cleanups and swap PTE support from Dave Hansen\n\u003chaveblue@us.ibm.com\u003e.\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a6198797cc3fd659b2d81cdf6bb6b9bba9cd93e9",
      "tree": "da256154b9c764067aadd2738d9083d38a6f1882",
      "parents": [
        "f248dcb34d7b7ac255db70071a20be9d9c6ad491"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Mon Feb 04 22:29:03 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:16 2008 -0800"
      },
      "message": "maps4: regroup task_mmu by interface\n\nReorder source so that all the code and data for each interface is together.\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f248dcb34d7b7ac255db70071a20be9d9c6ad491",
      "tree": "ec7c7fb115e40b4a337af98a6f9f2ad5db9af1f0",
      "parents": [
        "4752c369789250eafcd7813e11c8fb689235b0d2"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Mon Feb 04 22:29:03 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:16 2008 -0800"
      },
      "message": "maps4: move clear_refs code to task_mmu.c\n\nThis puts all the clear_refs code where it belongs and probably lets things\ncompile on MMU-less systems as well.\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4752c369789250eafcd7813e11c8fb689235b0d2",
      "tree": "24fda864f4962f18fd8e118271f1d8c4ec633024",
      "parents": [
        "b3ae5acbbb98d95c1300c8ced56d15f97d09c506"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Mon Feb 04 22:29:02 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:16 2008 -0800"
      },
      "message": "maps4: simplify interdependence of maps and smaps\n\nThis pulls the shared map display code out of show_map and puts it in\nshow_smap where it belongs.\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b3ae5acbbb98d95c1300c8ced56d15f97d09c506",
      "tree": "e8a159c7c3309564458f7dea955b6a9daf948b61",
      "parents": [
        "e6473092bd9116583ce9ab8cf1b6570e1aa6fc83"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Mon Feb 04 22:29:01 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:16 2008 -0800"
      },
      "message": "maps4: use pagewalker in clear_refs and smaps\n\nUse the generic pagewalker for smaps and clear_refs\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e6473092bd9116583ce9ab8cf1b6570e1aa6fc83",
      "tree": "e91a7ca6ce89f24a4a2d500d748dabf727c61887",
      "parents": [
        "698dd4ba6b12e34e1e432c944c01478c0b2cd773"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Mon Feb 04 22:29:01 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:16 2008 -0800"
      },
      "message": "maps4: introduce a generic page walker\n\nIntroduce a general page table walker\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "698dd4ba6b12e34e1e432c944c01478c0b2cd773",
      "tree": "fe524e3ae12b54968b363314ad45841abbd55d98",
      "parents": [
        "824552574162ac00ae636fa41386b1072379ea4a"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Mon Feb 04 22:29:00 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:16 2008 -0800"
      },
      "message": "maps4: move is_swap_pte\n\nMove is_swap_pte helper function to swapops.h for use by pagemap code\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "824552574162ac00ae636fa41386b1072379ea4a",
      "tree": "85c595275c6007115ad002c56dbb7eb51ab67064",
      "parents": [
        "ec4dd3eb35759f9fbeb5c1abb01403b2fde64cc9"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Mon Feb 04 22:28:59 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:16 2008 -0800"
      },
      "message": "maps4: rework TASK_SIZE macros\n\nThe following replaces the earlier patches sent.  It should address\nDavid Rientjes\u0027s comments, and has been compile tested on all the\narchitectures that it touches, save for parisc.\n\nFor the /proc/\u003cpid\u003e/pagemap code[1], we need to able to query how\nmuch virtual address space a particular task has.  The trick is\nthat we do it through /proc and can\u0027t use TASK_SIZE since it\nreferences \"current\" on some arches.  The process opening the\n/proc file might be a 32-bit process opening a 64-bit process\u0027s\npagemap file.\n\nx86_64 already has a TASK_SIZE_OF() macro:\n\n#define TASK_SIZE_OF(child)     ((test_tsk_thread_flag(child, TIF_IA32)) ? IA32_PAGE_OFFSET : TASK_SIZE64)\n\nI\u0027d like to have that for other architectures.  So, add it\nfor all the architectures that actually use \"current\" in\ntheir TASK_SIZE.  For the others, just add a quick #define\nin sched.h to use plain old TASK_SIZE.\n\n1. http://www.linuxworld.com/news/2007/042407-kernel.html\n\n- MIPS portion from Ralf Baechle \u003cralf@linux-mips.org\u003e\n\n[akpm@linux-foundation.org: fix mips build]\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ec4dd3eb35759f9fbeb5c1abb01403b2fde64cc9",
      "tree": "0eaf4d91180556df61da6300463d946390ce55fb",
      "parents": [
        "61d5048f149572434daee0cce5e1374a8a7cf3e8"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "wfg@mail.ustc.edu.cn",
        "time": "Mon Feb 04 22:28:56 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:16 2008 -0800"
      },
      "message": "maps4: add proportional set size accounting in smaps\n\nThe \"proportional set size\" (PSS) of a process is the count of pages it has\nin memory, where each page is divided by the number of processes sharing\nit.  So if a process has 1000 pages all to itself, and 1000 shared with one\nother process, its PSS will be 1500.\n\n               - lwn.net: \"ELC: How much memory are applications really using?\"\n\nThe PSS proposed by Matt Mackall is a very nice metic for measuring an\nprocess\u0027s memory footprint.  So collect and export it via\n/proc/\u003cpid\u003e/smaps.\n\nMatt Mackall\u0027s pagemap/kpagemap and John Berthels\u0027s exmap can also do the\njob.  They are comprehensive tools.  But for PSS, let\u0027s do it in the simple\nway.\n\nCc: John Berthels \u003cjjberthels@gmail.com\u003e\nCc: Bernardo Innocenti \u003cbernie@codewiz.org\u003e\nCc: Padraig Brady \u003cP@draigBrady.com\u003e\nCc: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Fengguang Wu \u003cwfg@mail.ustc.edu.cn\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "61d5048f149572434daee0cce5e1374a8a7cf3e8",
      "tree": "97ac9c25bc44a58145a750a99887195df31cbe40",
      "parents": [
        "1b1b32f2c6f6bb32535d2da62075b51c980880eb"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Feb 04 22:28:56 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:16 2008 -0800"
      },
      "message": "clean up vmtruncate\n\nvmtruncate is a twisted maze of gotos, this patch cleans it up to have a\nproper if else for the two major cases of extending and truncating truncate\nand thus makes it a lot more readable while keeping exactly the same\nfunctinality.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1b1b32f2c6f6bb32535d2da62075b51c980880eb",
      "tree": "686aac685a4c04f085dc17cc1a05910149a04933",
      "parents": [
        "b409f9fcf04692c0f603d28c73d2e3dfed27bf54"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Mon Feb 04 22:28:55 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:16 2008 -0800"
      },
      "message": "tmpfs: fix shmem_swaplist races\n\nIntensive swapoff testing shows shmem_unuse spinning on an entry in\nshmem_swaplist pointing to itself: how does that come about?  Days pass...\n\nFirst guess is this: shmem_delete_inode tests list_empty without taking the\nglobal mutex (so the swapping case doesn\u0027t slow down the common case); but\nthere\u0027s an instant in shmem_unuse_inode\u0027s list_move_tail when the list entry\nmay appear empty (a rare case, because it\u0027s actually moving the head not the\nthe list member).  So there\u0027s a danger of leaving the inode on the swaplist\nwhen it\u0027s freed, then reinitialized to point to itself when reused.  Fix that\nby skipping the list_move_tail when it\u0027s a no-op, which happens to plug this.\n\nBut this same spinning then surfaces on another machine.  Ah, I\u0027d never\nsuspected it, but shmem_writepage\u0027s swaplist manipulation is unsafe: though we\nstill hold page lock, which would hold off inode deletion if the page were in\npagecache, it doesn\u0027t hold off once it\u0027s in swapcache (free_swap_and_cache\ndoesn\u0027t wait on locked pages).  Hmm: we could put the the inode on swaplist\nearlier, but then shmem_unuse_inode could never prune unswapped inodes.\n\nFix this with an igrab before dropping info-\u003elock, as in shmem_unuse_inode;\nthough I am a little uneasy about the iput which has to follow - it works, and\nI see nothing wrong with it, but it is surprising that shmem inode deletion\nmay now occur below shmem_writepage.  Revisit this fix later?\n\nAnd while we\u0027re looking at these races: the way shmem_unuse tests swapped\nwithout holding info-\u003elock looks unsafe, if we\u0027ve more than one swap area: a\nracing shmem_writepage on another page of the same inode could be putting it\nin swapcache, just as we\u0027re deciding to remove the inode from swaplist -\nthere\u0027s a danger of going on swap without being listed, so a later swapoff\nwould hang, being unable to locate the entry.  Move that test and removal down\ninto shmem_unuse_inode, once info-\u003elock is held.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b409f9fcf04692c0f603d28c73d2e3dfed27bf54",
      "tree": "de287c277045c72c485867a52b37f4e7d0c5815a",
      "parents": [
        "2e0e26c76a35de8f8bec6b2b917518cfeb52888a"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Mon Feb 04 22:28:54 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:15 2008 -0800"
      },
      "message": "tmpfs: radix_tree_preloading\n\nNick has observed that shmem.c still uses GFP_ATOMIC when adding to page cache\nor swap cache, without any radix tree preload: so tending to deplete emergency\nreserves of memory.\n\nGFP_ATOMIC remains appropriate in shmem_writepage\u0027s add_to_swap_cache: it\u0027s\nbeing called under memory pressure, so must not wait for more memory to become\navailable.  But shmem_unuse_inode now has a window in which it can and should\npreload with GFP_KERNEL, and say GFP_NOWAIT instead of GFP_ATOMIC in its\nadd_to_page_cache.\n\nshmem_getpage is not so straightforward: its filepage/swappage integrity\nrelies upon exchanging between caches under spinlock, and it would need a lot\nof restructuring to place the preloads correctly.  Instead, follow its pattern\nof retrying on races: use GFP_NOWAIT instead of GFP_ATOMIC in\nadd_to_page_cache, and begin each circuit of the repeat loop with a sleeping\nradix_tree_preload, followed immediately by radix_tree_preload_end - that\nwon\u0027t guarantee success in the next add_to_page_cache, but doesn\u0027t need to.\n\nAnd we can then remove that bothersome congestion_wait: when needed, it\u0027ll\nautomatically get done in the course of the radix_tree_preload.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nLooks-good-to: Nick Piggin \u003cnpiggin@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": "2e0e26c76a35de8f8bec6b2b917518cfeb52888a",
      "tree": "1357781bfe035c2401c65b2d0203385a47516bf5",
      "parents": [
        "cb5f7b9a47963d9238398cd0c2676473e3c6896d"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Mon Feb 04 22:28:53 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:15 2008 -0800"
      },
      "message": "tmpfs: open a window in shmem_unuse_inode\n\nThere are a couple of reasons (patches follow) why it would be good to open a\nwindow for sleep in shmem_unuse_inode, between its search for a matching swap\nentry, and its handling of the entry found.\n\nshmem_unuse_inode must then use igrab to hold the inode against deletion in\nthat window, and its corresponding iput might result in deletion: so it had\nbetter unlock_page before the iput, and might as well release the page too.\n\nNor is there any need to hold on to shmem_swaplist_mutex once we know we\u0027ll\nleave the loop.  So this unwinding moves from try_to_unuse and shmem_unuse\ninto shmem_unuse_inode, in the case when it finds a match.\n\nLet try_to_unuse break on error in the shmem_unuse case, as it does in the\nunuse_mm case: though at this point in the series, no error to break on.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cb5f7b9a47963d9238398cd0c2676473e3c6896d",
      "tree": "bc2eed3d7c2c3787f50030c7c493c4295eaf673c",
      "parents": [
        "a0ee5ec520ede1dc8e2194623bcebfd9fab408f2"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Mon Feb 04 22:28:52 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:15 2008 -0800"
      },
      "message": "tmpfs: make shmem_unuse more preemptible\n\nshmem_unuse is at present an unbroken search through every swap vector page of\nevery tmpfs file which might be swapped, all under shmem_swaplist_lock.  This\ndates from long ago, when the caller held mmlist_lock over it all too: long\ngone, but there\u0027s never been much pressure for preemptible swapoff.\n\nMake it a little more preemptible, replacing shmem_swaplist_lock by\nshmem_swaplist_mutex, inserting a cond_resched in the main loop, and a\ncond_resched_lock (on info-\u003elock) at one convenient point in the\nshmem_unuse_inode loop, where it has no outstanding kmap_atomic.\n\nIf we\u0027re serious about preemptible swapoff, there\u0027s much further to go e.g.\nI\u0027m stupid to let the kmap_atomics of the decreasingly significant HIGHMEM\ncase dictate preemptiblility for other configs.  But as in the earlier patch\nto make swapoff scan ptes preemptibly, my hidden agenda is really towards\nmaking memcgroups work, hardly about preemptibility at all.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a0ee5ec520ede1dc8e2194623bcebfd9fab408f2",
      "tree": "74a3668798213661a9e62a1b576f081f1ce44838",
      "parents": [
        "d9fe526a83b84edc9c5ff217a00c896bfc20b2ce"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Mon Feb 04 22:28:51 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:15 2008 -0800"
      },
      "message": "tmpfs: allocate on read when stacked\n\ntmpfs is expected to limit the memory used (unless mounted with nr_blocks\u003d0 or\nsize\u003d0).  But if a stacked filesystem such as unionfs gets pages from a sparse\ntmpfs file by reading holes, and then writes to them, it can easily exceed any\nsuch limit at present.\n\nSo suppress the SGP_READ \"don\u0027t allocate page\" ZERO_PAGE optimization when\nreading for the kernel (a KERNEL_DS check, ugh, sorry about that).  Indeed,\npessimistically mark such pages as dirty, so they cannot get reclaimed and\nunaccounted by mistake.  The venerable shmem_recalc_inode code (originally to\naccount for the reclaim of clean pages) suffices to get the accounting right\nwhen swappages are dropped in favour of more uptodate filepages.\n\nThis also fixes the NULL shmem_swp_entry BUG or oops in shmem_writepage,\ncaused by unionfs writing to a very sparse tmpfs file: to minimize memory\nallocation in swapout, tmpfs requires the swap vector be allocated upfront,\nwhich wasn\u0027t always happening in this stacked case.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d9fe526a83b84edc9c5ff217a00c896bfc20b2ce",
      "tree": "aecb9dbd92108915ba255df8f04d106c2099bf48",
      "parents": [
        "73b1262fa43a778b1e154deea632cdef5009d6a1"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Mon Feb 04 22:28:51 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:15 2008 -0800"
      },
      "message": "tmpfs: allow filepage alongside swappage\n\ntmpfs has long allowed for a fresh filepage to be created in pagecache, just\nbefore shmem_getpage gets the chance to match it up with the swappage which\nalready belongs to that offset.  But unionfs_writepage now does a\nfind_or_create_page, divorced from shmem_getpage, which leaves conflicting\nfilepage and swappage outstanding indefinitely, when unionfs is over tmpfs.\n\nTherefore shmem_writepage (where a page is swizzled from file to swap) must\nnow be on the lookout for existing swap, ready to free it in favour of the\nmore uptodate filepage, instead of BUGging on that clash.  And when the\nadd_to_page_cache fails in shmem_unuse_inode, it must defer to an uptodate\nfilepage, otherwise swapoff would hang.  Whereas when add_to_page_cache fails\nin shmem_getpage, it should retry in the same way it already does.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "73b1262fa43a778b1e154deea632cdef5009d6a1",
      "tree": "409f14e78e23cd999e8c3d1e0945f0fa9b67048f",
      "parents": [
        "f000944d03a5b74ab3c92b2fcdf0e944cc898065"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Mon Feb 04 22:28:50 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:15 2008 -0800"
      },
      "message": "tmpfs: move swap swizzling into shmem\n\nmove_to_swap_cache and move_from_swap_cache functions (which swizzle a page\nbetween tmpfs page cache and swap cache, to avoid page copying) are only used\nby shmem.c; and our subsequent fix for unionfs needs different treatments in\nthe two instances of move_from_swap_cache.  Move them from swap_state.c into\ntheir callsites shmem_writepage, shmem_unuse_inode and shmem_getpage, making\nadd_to_swap_cache externally visible.\n\nshmem.c likes to say set_page_dirty where swap_state.c liked to say\nSetPageDirty: respect that diversity, which __set_page_dirty_no_writeback\nmakes moot (and implies we should lose that \"shift page from clean_pages to\ndirty_pages list\" comment: it\u0027s on neither).\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f000944d03a5b74ab3c92b2fcdf0e944cc898065",
      "tree": "07b64eeed416f3869a3fc4f06d00bd1fb1321f20",
      "parents": [
        "bb63be0a091c512fb566ee235eb8320d5831b6e2"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Mon Feb 04 22:28:49 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:15 2008 -0800"
      },
      "message": "tmpfs: shuffle add_to_swap_caches\n\nadd_to_swap_cache doesn\u0027t amount to much: merge it into its sole caller\nread_swap_cache_async.  But we\u0027ll be needing to call __add_to_swap_cache from\nshmem.c, so promote it to the new add_to_swap_cache.  Both were static, so\nthere\u0027s no interface confusion to worry about.\n\nAnd lose that inappropriate \"Anon pages are already on the LRU\" comment in the\nmerging: they\u0027re not already on the LRU, as Nick Piggin noticed.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nNo-problems-with: Nick Piggin \u003cnpiggin@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": "bb63be0a091c512fb566ee235eb8320d5831b6e2",
      "tree": "3fc58d190902417429228c3066b6093a848c5974",
      "parents": [
        "818db35992c249dc32c1d86daf7d533fb0952f5d"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Mon Feb 04 22:28:49 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:15 2008 -0800"
      },
      "message": "tmpfs: move swap_state stats update\n\nBoth unionfs and memcgroups pose challenges to tmpfs and shmem.  To help fix,\nit\u0027s best to move the swap swizzling functions from swap_state.c to shmem.c.\nAs a preliminary to that, move swap stats updating down into\n__add_to_swap_cache, which will remain internal to swap_state.c.\n\nWell, actually, just move down the incrementation of add_total: remove\nnoent_race and exist_race completely, they are relics of my 2.4.11 testing.\nAlt-SysRq-m users will be thrilled if 2.6.25 is at last free of \"race M+N\"s.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "818db35992c249dc32c1d86daf7d533fb0952f5d",
      "tree": "8577fe7cff367eade84f632621b16054c362d39a",
      "parents": [
        "5b04c6890f0dc7ea6c85b9adebc883c55c667d97"
      ],
      "author": {
        "name": "Michael Marineau",
        "email": "mike@marineau.org",
        "time": "Mon Feb 04 22:28:48 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:15 2008 -0800"
      },
      "message": "tmpfs: fix mounts when size is less than the page size\n\nWhen tmpfs is mounted with a size less than one page, the number of blocks\nis set to 0 which makes the tmpfs mount unlimited.  This can lead to a\nquick and surprising death if someone typos a tmpfs mount command and\nwrites too much.\n\ntmpfs can still be mounted as unlimited if size or nr_blocks is exactly 0,\nas Documentation/filesystems/tmpfs.txt says.\n\nHugh: do this by rounding size up instead of down in all cases: which\nslightly expands other odd-sized tmpfs mounts, but in a consistent way.\n\nSigned-off-by: Michael Marineau \u003cmike@marineau.org\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5b04c6890f0dc7ea6c85b9adebc883c55c667d97",
      "tree": "50f060de1edcd5cda14290f13bad0e74433b0a67",
      "parents": [
        "2e441889c38fe1b6ef6b963e6993076aa120176c"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Mon Feb 04 22:28:47 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:15 2008 -0800"
      },
      "message": "shmem: factor out sbi-\u003efree_inodes manipulations\n\nThe shmem_sb_info structure has a number of free_inodes. This\nvalue is altered in appropriate places under spinlock and with\nthe sbi-\u003emax_inodes !\u003d 0 check.\n\nConsolidate these manipulations into two helpers.\n\nThis is minus 42 bytes of shmem.o and minus 4 :) lines of code.\n\n[akpm@linux-foundation.org: fix error return values]\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2e441889c38fe1b6ef6b963e6993076aa120176c",
      "tree": "f8cc99d2b8a3b90c6ff2c3e6d14e90d7edd95d7e",
      "parents": [
        "8952898b0d25223f38daf46b86156fd1c4d17ad0"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Mon Feb 04 22:28:46 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:15 2008 -0800"
      },
      "message": "swapoff: scan ptes preemptibly\n\nProvided that CONFIG_HIGHPTE is not set, unuse_pte_range can reduce latency\nin swapoff by scanning the page table preemptibly: so long as unuse_pte is\ncareful to recheck that entry under pte lock.\n\n(To tell the truth, this patch was not inspired by any cries for lower\nlatency here: rather, this restructuring permits a future memory controller\npatch to allocate with GFP_KERNEL in unuse_pte, where before it could not.\nBut it would be wrong to tuck this change away inside a memcgroup patch.)\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nTested-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8952898b0d25223f38daf46b86156fd1c4d17ad0",
      "tree": "10912460cd9d42195d4aba8250ed1c3bd3577bb4",
      "parents": [
        "5402b976ae0be96b3a32f3508ab7308c380d6477"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Mon Feb 04 22:28:45 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:15 2008 -0800"
      },
      "message": "swapin: fix valid_swaphandles defect\n\nvalid_swaphandles is supposed to do a quick pass over the swap map entries\nneigbouring the entry which swapin_readahead is targetting, to determine for\nit a range worth reading all together.  But since it always starts its search\nfrom the beginning of the swap \"cluster\", a reject (free entry) there\nimmediately curtails the readaround, and every swapin_readahead from that\ncluster is for just a single page.  Instead scan forwards and backwards around\nthe target entry.\n\nUse better names for some variables: a swap_info pointer is usually called\n\"si\" not \"swapdev\".  And at the end, if only the target page should be read,\nreturn count of 0 to disable readaround, to avoid the unnecessarily repeated\ncall to read_swap_cache_async.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-by: Rik van Riel \u003criel@surriel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5402b976ae0be96b3a32f3508ab7308c380d6477",
      "tree": "d2c0900086033ea1fdeb3e1540e733d962cd177c",
      "parents": [
        "d3602444e1e3485890eea5f61366e19a287c00c4"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Mon Feb 04 22:28:44 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:15 2008 -0800"
      },
      "message": "shmem_file_write is redundant\n\nWith the old aops, writing to a tmpfs file had to use its own special method:\nthe generic method would pass in a fresh page to prepare_write when the right\npage was there in swapcache - which was inefficient to handle, even once we\u0027d\nconcocted the code to handle it.\n\nWith the new aops, the generic method uses shmem_write_end, which lets\nshmem_getpage find the right page: so now abandon shmem_file_write in favour\nof the generic method.  Yes, that does do several things that tmpfs hasn\u0027t\nreally needed (notably balance_dirty_pages_ratelimited, which ramfs also\ncalls); but more use of common code is preferable.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d3602444e1e3485890eea5f61366e19a287c00c4",
      "tree": "f27cca0ce7c113c6b8f15f77abc3124faea9e2c8",
      "parents": [
        "27d54b398ec0edea0e7417f003171017300e0efc"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Mon Feb 04 22:28:44 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:15 2008 -0800"
      },
      "message": "shmem_getpage return page locked\n\nIn the new aops, write_begin is supposed to return the page locked: though\nI\u0027ve seen no ill effects, that\u0027s been overlooked in the case of\nshmem_write_begin, and should be fixed.  Then shmem_write_end must unlock the\npage: do so _after_ updating i_size, as we found to be important in other\nfilesystems (though since shmem pages don\u0027t go the usual writeback route, they\nnever suffered from that corruption).\n\nFor shmem_write_begin to return the page locked, we need shmem_getpage to\nreturn the page locked in SGP_WRITE case as well as SGP_CACHE case: let\u0027s\nsimplify the interface and return it locked even when SGP_READ.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "27d54b398ec0edea0e7417f003171017300e0efc",
      "tree": "2167c058ab0734bbb424ec27b2dc19d58fa7befd",
      "parents": [
        "02098feaa42b2e0087fbbe6c6ab9a23e4653b16a"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Mon Feb 04 22:28:43 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:14 2008 -0800"
      },
      "message": "shmem: SGP_QUICK and SGP_FAULT redundant\n\nRemove SGP_QUICK from the sgp_type enum: it was for shmem_populate and has no\nusers now.  Remove SGP_FAULT from the enum: SGP_CACHE does just as well (and\nshmem_getpage is about to return with page always locked).\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "02098feaa42b2e0087fbbe6c6ab9a23e4653b16a",
      "tree": "494eaf13f204c9384d4316202fd76cd1b5d960ad",
      "parents": [
        "46017e954826ac59e91df76341a3f76b45467847"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Mon Feb 04 22:28:42 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:14 2008 -0800"
      },
      "message": "swapin needs gfp_mask for loop on tmpfs\n\nBuilding in a filesystem on a loop device on a tmpfs file can hang when\nswapping, the loop thread caught in that infamous throttle_vm_writeout.\n\nIn theory this is a long standing problem, which I\u0027ve either never seen in\npractice, or long ago suppressed the recollection, after discounting my load\nand my tmpfs size as unrealistically high.  But now, with the new aops, it has\nbecome easy to hang on one machine.\n\nLoop used to grab_cache_page before the old prepare_write to tmpfs, which\nseems to have been enough to free up some memory for any swapin needed; but\nthe new write_begin lets tmpfs find or allocate the page (much nicer, since\ngrab_cache_page missed tmpfs pages in swapcache).\n\nWhen allocating a fresh page, tmpfs respects loop\u0027s mapping_gfp_mask, which\nhas __GFP_IO|__GFP_FS stripped off, and throttle_vm_writeout is designed to\nbreak out when __GFP_IO or GFP_FS is unset; but when tmfps swaps in,\nread_swap_cache_async allocates with GFP_HIGHUSER_MOVABLE regardless of the\nmapping_gfp_mask - hence the hang.\n\nSo, pass gfp_mask down the line from shmem_getpage to shmem_swapin to\nswapin_readahead to read_swap_cache_async to add_to_swap_cache.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "46017e954826ac59e91df76341a3f76b45467847",
      "tree": "711a35e3936118665d0eac2afeef8758b4f4e95f",
      "parents": [
        "c4cc6d07b2f465fbf5efd99bbe772a49c515f3f2"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Mon Feb 04 22:28:41 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:14 2008 -0800"
      },
      "message": "swapin_readahead: move and rearrange args\n\nswapin_readahead has never sat well in mm/memory.c: move it to mm/swap_state.c\nbeside its kindred read_swap_cache_async.  Why were its args in a different\norder?  rearrange them.  And since it was always followed by a\nread_swap_cache_async of the target page, fold that in and return struct\npage*.  Then CONFIG_SWAP\u003dn no longer needs valid_swaphandles and\nread_swap_cache_async stubs.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c4cc6d07b2f465fbf5efd99bbe772a49c515f3f2",
      "tree": "0aec353fce4ee6cd16e3051ecfdf55e8022aaa5a",
      "parents": [
        "75897d60a54ccee94253312107f941a83b5077cb"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Mon Feb 04 22:28:40 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:14 2008 -0800"
      },
      "message": "swapin_readahead: excise NUMA bogosity\n\nFor three years swapin_readahead has been cluttered with fanciful CONFIG_NUMA\ncode, advancing addr, and stepping on to the next vma at the boundary, to line\nup the mempolicy for each page allocation.\n\nIt _might_ be a good idea to allocate swap more according to vma layout; but\nthe fact is, that\u0027s not how we do it at all, 2.6 even less than 2.4: swap is\nallocated as needed for pages as they sink to the bottom of the inactive LRUs.\n Sometimes that may match vma layout, but not so often that it\u0027s worth going\nto these misleading vma-\u003evm_next lengths: rip all that out.\n\nOriginally I intended to retain the incrementation of addr, but correct its\ninitial value: valid_swaphandles generally supplies an offset below the target\naddr (this is readaround rather than readahead), but addr has not been\nadjusted accordingly, so in the interleave case it has usually been allocating\nthe target page from the \"wrong\" node (though that may not matter very much).\n\nBut look at the equivalent shmem_swapin code: either by oversight or by\ndesign, though it has all the apparatus for choosing a new mempolicy per page,\nit uses the same idx throughout, choosing the same mempolicy and interleave\nnode for each page of the cluster.\n\nWhich is actually a much better strategy: each node has its own LRUs and its\nown kswapd, so if you\u0027re betting on any particular relationship between swap\nand node, the best bet is that nearby swap entries belong to pages from the\nsame node - even when the mempolicy of the target page is to interleave.  And\nexamining a map of nodes corresponding to swap entries on a numa\u003dfake system\nbears this out.  (We could later tweak swap allocation to make it even more\nlikely, but this patch is merely about removing cruft.)\n\nSo, neither adjust nor increment addr in swapin_readahead, and then\nshmem_swapin can use it too; the pseudo-vma to pass policy need only be set up\nonce per cluster, and so few fields of pvma are used, let\u0027s skip the memset -\nfrom shmem_alloc_page also.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "75897d60a54ccee94253312107f941a83b5077cb",
      "tree": "9c3ece84bfdaf6742457d665415cf6a7b6dd1591",
      "parents": [
        "b98938c373117043598002f197200d7ed08acd49"
      ],
      "author": {
        "name": "Ken Chen",
        "email": "kenchen@google.com",
        "time": "Mon Feb 04 22:28:36 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:14 2008 -0800"
      },
      "message": "hugetlb: allow sticky directory mount option\n\nAllow sticky directory mount option for hugetlbfs.  This allows admin\nto create a shared hugetlbfs mount point for multiple users, while\nprevent accidental file deletion that users may step on each other.\nIt is similiar to default tmpfs mount option, or typical option used\non /tmp.\n\nSigned-off-by: Ken Chen \u003ckenchen@google.com\u003e\nCc: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nCc: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: David Gibson \u003chermes@gibson.dropbear.id.au\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b98938c373117043598002f197200d7ed08acd49",
      "tree": "da9356af43085db78cafec82505c3341d6291201",
      "parents": [
        "aec2c3ed01ed54d0cdf7f6b7c4be217c045ac5ea"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Feb 04 22:28:36 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:14 2008 -0800"
      },
      "message": "bufferhead: revert constructor removal\n\nThe constructor for buffer_head slabs was removed recently.  We need the\nconstructor back in slab defrag in order to insure that slab objects always\nhave a definite state even before we allocated them.\n\nI think we mistakenly merged the removal of the constuctor into a cleanup\npatch.  You (ie: akpm) had a test that showed that the removal of the\nconstructor led to a small regression.  The prior state makes things easier\nfor slab defrag.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "aec2c3ed01ed54d0cdf7f6b7c4be217c045ac5ea",
      "tree": "b4fcc3f69567eafe956d2fd0af37ba5ca008c531",
      "parents": [
        "bf53d6f8fa467397a16de2a2500312ae26528d34"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Feb 04 22:28:35 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:14 2008 -0800"
      },
      "message": "VM: allow get_page_unless_zero on compound pages\n\nBoth slab defrag and the large blocksize patches need to ability to take\nrefcounts on compound pages.  May be useful in other places as well.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bf53d6f8fa467397a16de2a2500312ae26528d34",
      "tree": "5fe5fb6e7e4835d358dcc67e7b38f1aa00b9e525",
      "parents": [
        "9e2779fa281cfda13ac060753d674bbcaa23367e"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Feb 04 22:28:34 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:14 2008 -0800"
      },
      "message": "vmalloc: clean up page array indexing\n\nThe page array is repeatedly indexed both in vunmap and vmalloc_area_node().\nAdd a temporary variable to make it easier to read (and easier to patch\nlater).\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9e2779fa281cfda13ac060753d674bbcaa23367e",
      "tree": "e2af17d69b71e0f8b3f00fe949cb8abfba4298ed",
      "parents": [
        "0b7a96114bd5991d355a1f1c1d3d9c0c9d9c1cfc"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Feb 04 22:28:34 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:14 2008 -0800"
      },
      "message": "is_vmalloc_addr(): Check if an address is within the vmalloc boundaries\n\nChecking if an address is a vmalloc address is done in a couple of places.\nDefine a common version in mm.h and replace the other checks.\n\nAgain the include structures suck.  The definition of VMALLOC_START and\nVMALLOC_END is not available in vmalloc.h since highmem.c cannot be included\nthere.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0b7a96114bd5991d355a1f1c1d3d9c0c9d9c1cfc",
      "tree": "d39101677aaa7214055c7098f5650a631dfeb74d",
      "parents": [
        "b3bdda02aa547a0753b4fdbc105e86ef9046b30b"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Feb 04 22:28:33 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:14 2008 -0800"
      },
      "message": "i386: Resolve dependency of asm-i386/pgtable.h on highmem.h\n\npgtable.h does not include highmem.h but uses various constants from\nhighmem.h.  We cannot include highmem.h because highmem.h will in turn include\nmany other include files that also depend on pgtable.h\n\nSo move the definitions from highmem.h into pgtable.h.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\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": "b3bdda02aa547a0753b4fdbc105e86ef9046b30b",
      "tree": "969557274d94bd0a8e3c638b796c0a13f3e3afd2",
      "parents": [
        "48667e7a43c1a1e0ba743f93ae946f8cb34ff2f9"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Feb 04 22:28:32 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:14 2008 -0800"
      },
      "message": "vmalloc: add const to void* parameters\n\nMake vmalloc functions work the same way as kfree() and friends that\ntake a const void * argument.\n\n[akpm@linux-foundation.org: fix consts, coding-style]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "48667e7a43c1a1e0ba743f93ae946f8cb34ff2f9",
      "tree": "b2fb79d16fbac46a859f8332cf95852b73839e07",
      "parents": [
        "eebd2aa355692afaf9906f62118620f1a1c19dbb"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Feb 04 22:28:31 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:13 2008 -0800"
      },
      "message": "Move vmalloc_to_page() to mm/vmalloc.\n\nWe already have page table manipulation for vmalloc in vmalloc.c. Move the\nvmalloc_to_page() function there as well.\n\nMove the definitions for vmalloc related functions in mm.h to a newly created\nsection.  A better place would be vmalloc.h but mm.h is basic and may depend\non these functions.  An alternative would be to include vmalloc.h in mm.h\n(like done for vmstat.h).\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "eebd2aa355692afaf9906f62118620f1a1c19dbb",
      "tree": "207eead3a736963c3e50942038c463f2f611ccce",
      "parents": [
        "b98348bdd08dc4ec11828aa98a78edde15c53cfa"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Feb 04 22:28:29 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:13 2008 -0800"
      },
      "message": "Pagecache zeroing: zero_user_segment, zero_user_segments and zero_user\n\nSimplify page cache zeroing of segments of pages through 3 functions\n\nzero_user_segments(page, start1, end1, start2, end2)\n\n        Zeros two segments of the page. It takes the position where to\n        start and end the zeroing which avoids length calculations and\n\tmakes code clearer.\n\nzero_user_segment(page, start, end)\n\n        Same for a single segment.\n\nzero_user(page, start, length)\n\n        Length variant for the case where we know the length.\n\nWe remove the zero_user_page macro. Issues:\n\n1. Its a macro. Inline functions are preferable.\n\n2. The KM_USER0 macro is only defined for HIGHMEM.\n\n   Having to treat this special case everywhere makes the\n   code needlessly complex. The parameter for zeroing is always\n   KM_USER0 except in one single case that we open code.\n\nAvoiding KM_USER0 makes a lot of code not having to be dealing\nwith the special casing for HIGHMEM anymore. Dealing with\nkmap is only necessary for HIGHMEM configurations. In those\nconfigurations we use KM_USER0 like we do for a series of other\nfunctions defined in highmem.h.\n\nSince KM_USER0 is depends on HIGHMEM the existing zero_user_page\nfunction could not be a macro. zero_user_* functions introduced\nhere can be be inline because that constant is not used when these\nfunctions are called.\n\nAlso extract the flushing of the caches to be outside of the kmap.\n\n[akpm@linux-foundation.org: fix nfs and ntfs build]\n[akpm@linux-foundation.org: fix ntfs build some more]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nCc: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Anton Altaparmakov \u003caia21@cantab.net\u003e\nCc: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: David Chinner \u003cdgc@sgi.com\u003e\nCc: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b98348bdd08dc4ec11828aa98a78edde15c53cfa",
      "tree": "a0b4618bf8ec436581f29080c32ddb07e7489bd0",
      "parents": [
        "b72540c30c9c8c2c3f17cae29962cfb50fbe166a"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Mon Feb 04 22:28:28 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:13 2008 -0800"
      },
      "message": "gpiolib: avr32 at32ap platform support\n\nTeach AVR32 to use the \"GPIO Library\" when exposing its GPIOs, so that signals\non external chips (like GPIO expanders) can easily be used.\n\nThis mostly reorganizes some existing logic, with two minor changes in\nbehavior:\n\n - The PSR registers are used instead of the previous \"gpio_mask\" values,\n   matching AT91 behavior and removing some duplication between that role\n   and that of \"pinmux_mask\".\n\n - NR_IRQs grew to acommodate a bank of external GPIOs.  Eventually this\n   number should probably become a board-specific config option.\n\nThere\u0027s a debugfs dump of status for the built-in GPIOs, showing which pins\nhave deglitching, pullups, or open drain drive enabled, as well as the ID\nstring used when requesting each IRQ.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nAcked-by: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nCc: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: Eric Miao \u003ceric.miao@marvell.com\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Philipp Zabel \u003cphilipp.zabel@gmail.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ben Gardner \u003cbgardner@wabtec.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b72540c30c9c8c2c3f17cae29962cfb50fbe166a",
      "tree": "093950cda7bcbe33253894cdfdf942465cc2dde6",
      "parents": [
        "9e60fdcf0c2905d7a8fc4cb2b3711ea5c5acaae1"
      ],
      "author": {
        "name": "eric miao",
        "email": "eric.miao@marvell.com",
        "time": "Mon Feb 04 22:28:27 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:13 2008 -0800"
      },
      "message": "deprecate obsolete pca9539 driver\n\nUse drivers/gpio/pca9539.c instead.\n\nSigned-off-by: eric miao \u003ceric.miao@marvell.com\u003e\nAcked-by: Ben Gardner \u003cbgardner@wabtec.com\u003e\nAcked-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nCc: Philipp Zabel \u003cphilipp.zabel@gmail.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9e60fdcf0c2905d7a8fc4cb2b3711ea5c5acaae1",
      "tree": "c90417ab0e2079d0355ffb553985d9a0f2348bab",
      "parents": [
        "e58b9e2762a6ef99e20dba47aba21b911658541d"
      ],
      "author": {
        "name": "eric miao",
        "email": "eric.miao@marvell.com",
        "time": "Mon Feb 04 22:28:26 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:13 2008 -0800"
      },
      "message": "gpiolib: pca9539 i2c gpio expander support\n\nThis adds a new-style I2C driver with basic support for the sixteen bit\nPCA9539 GPIO expanders.  These chips have multiple registers, push-pull output\ndrivers, and (not supported in this patch) pin change interrupts.\n\nBoard-specific code must provide \"pca9539_platform_data\" with each chip\u0027s\n\"i2c_board_info\".  That provides the GPIO numbers to be used by that chip, and\ncallbacks for board-specific setup/teardown logic.\n\nDerived from drivers/i2c/chips/pca9539.c (which has no current known users).\nThis is faster and simpler; it uses 16-bit register access, and cache the\nOUTPUT and DIRECTION registers for fast access\n\nSigned-off-by: eric miao \u003ceric.miao@marvell.com\u003e\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nAcked-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nCc: Philipp Zabel \u003cphilipp.zabel@gmail.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ben Gardner \u003cbgardner@wabtec.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e58b9e2762a6ef99e20dba47aba21b911658541d",
      "tree": "0097fbe262bb4d1944bfb3c9a922ec36b90851c5",
      "parents": [
        "15fae37d9f5f21571a9618d8353164b6ddfea6f6"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Mon Feb 04 22:28:25 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:13 2008 -0800"
      },
      "message": "mcp23s08 spi gpio expander support\n\nBasic driver for 8-bit SPI based MCP23S08 GPIO expander, without support for\nIRQs or the shared chipselect mechanism.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nCc: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: Eric Miao \u003ceric.miao@marvell.com\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nCc: Philipp Zabel \u003cphilipp.zabel@gmail.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ben Gardner \u003cbgardner@wabtec.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "15fae37d9f5f21571a9618d8353164b6ddfea6f6",
      "tree": "13b4fb5479cf3a9522c6673cc6ccae20b6658e55",
      "parents": [
        "1c44f5f16fee880b294f8068354bfb9dddf1349b"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Mon Feb 04 22:28:24 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:13 2008 -0800"
      },
      "message": "gpiolib: pcf857x i2c gpio expander support\n\nThis is a new-style I2C driver for most common 8 and 16 bit I2C based\n\"quasi-bidirectional\" GPIO expanders: pcf8574 or pcf8575, and several\ncompatible models (mostly faster, supporting I2C at up to 1 MHz).\n\nThe driver exposes the GPIO signals using the platform-neutral GPIO\nprogramming interface, so they are easily accessed by other kernel code.  The\nlack of such a flexible kernel API has been a big factor in the proliferation\nof board-specific drivers for these chips...  stuff that rarely makes it\nupstream since it\u0027s so ugly.  This driver will let such boards use standard\ncalls.\n\nSince it\u0027s a new-style driver, these devices must be configured as part of\nboard-specific init.  That eliminates the need for error-prone manual\nconfiguration of module parameters, and makes compatibility with legacy\ndrivers (pcf8574.c, pc8575.c) for these chips easier (there\u0027s a clear\neither/or disjunction).\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nAcked-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: Eric Miao \u003ceric.miao@marvell.com\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nCc: Philipp Zabel \u003cphilipp.zabel@gmail.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ben Gardner \u003cbgardner@wabtec.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1c44f5f16fee880b294f8068354bfb9dddf1349b",
      "tree": "dd9815cf7a38af7d4abc55eb707574ceedd8a912",
      "parents": [
        "7c2db759ece63fd166cf0849b7b271589fa1b754"
      ],
      "author": {
        "name": "Philipp Zabel",
        "email": "philipp.zabel@gmail.com",
        "time": "Mon Feb 04 22:28:22 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:13 2008 -0800"
      },
      "message": "gpiolib support for the PXA architecture\n\nThis adds gpiolib support for the PXA architecture:\n  - move all GPIO API functions from generic.c into gpio.c\n  - convert the gpio_get/set_value macros into inline functions\n\nThis makes it easier to hook up GPIOs provided by external chips like\nASICs and CPLDs.\n\nSigned-off-by: Philipp Zabel \u003cphilipp.zabel@gmail.com\u003e\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nAcked-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nCc: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: Eric Miao \u003ceric.miao@marvell.com\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nCc: Ben Gardner \u003cbgardner@wabtec.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n[ Minor ARM fixup from David Brownell folded into this ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7c2db759ece63fd166cf0849b7b271589fa1b754",
      "tree": "581486de22550e1a2ccdbce6de24027bef1a39d9",
      "parents": [
        "d2876d08d86f22ce1f276fc29f6baec8b53e32c6"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Mon Feb 04 22:28:21 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:13 2008 -0800"
      },
      "message": "gpiolib: update Documentation/gpio.txt\n\nUpdate Documentation/gpio.txt, primarily to include the new \"gpiolib\"\ninfrastructure.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nCc: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: Eric Miao \u003ceric.miao@marvell.com\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nCc: Philipp Zabel \u003cphilipp.zabel@gmail.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ben Gardner \u003cbgardner@wabtec.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d2876d08d86f22ce1f276fc29f6baec8b53e32c6",
      "tree": "d9d059fad208001edb58d9dff3ed6ad64c8e7407",
      "parents": [
        "a9c5fff542544c8595bb12efeb278a96d99386fc"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Mon Feb 04 22:28:20 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:12 2008 -0800"
      },
      "message": "gpiolib: add gpio provider infrastructure\n\nProvide new implementation infrastructure that platforms may choose to use\nwhen implementing the GPIO programming interface.  Platforms can update their\nGPIO support to use this.  In many cases the incremental cost to access a\nnon-inlined GPIO should be less than a dozen instructions, with the memory\ncost being about a page (total) of extra data and code.  The upside is:\n\n  * Providing two features which were \"want to have (but OK to defer)\" when\n    GPIO interfaces were first discussed in November 2006:\n\n    -\tA \"struct gpio_chip\" to plug in GPIOs that aren\u0027t directly supported\n\tby SOC platforms, but come from FPGAs or other multifunction devices\n\tusing conventional device registers (like UCB-1x00 or SM501 GPIOs,\n\tand southbridges in PCs with more open specs than usual).\n\n    -\tFull support for message-based GPIO expanders, where registers are\n\taccessed through sleeping I/O calls.  Previous support for these\n\t\"cansleep\" calls was just stubs.  (One example: the widely used\n\tpcf8574 I2C chips, with 8 GPIOs each.)\n\n  * Including a non-stub implementation of the gpio_{request,free}() calls,\n    making those calls much more useful.  The diagnostic labels are also\n    recorded given DEBUG_FS, so /sys/kernel/debug/gpio can show a snapshot\n    of all GPIOs known to this infrastructure.\n\nThe driver programming interfaces introduced in 2.6.21 do not change at all;\nthis infrastructure is entirely below those covers.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: Eric Miao \u003ceric.miao@marvell.com\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nCc: Philipp Zabel \u003cphilipp.zabel@gmail.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ben Gardner \u003cbgardner@wabtec.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a9c5fff542544c8595bb12efeb278a96d99386fc",
      "tree": "28683c259e73f2f74d140b29ac3a9c3c1491e7a3",
      "parents": [
        "99c84dbdc73d158a1ab955a4a5f74c18074796a3"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Mon Feb 04 22:28:17 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:12 2008 -0800"
      },
      "message": "gpiolib: add drivers/gpio directory\n\nAdd an empty drivers/gpio directory for gpiolib infrastructure and GPIO\nexpanders.  It will be populated by later patches.\n\nThis won\u0027t be the only place to hold such gpio_chip code.  Many external chips\nadd a few GPIOs as secondary functionality (such as MFD drivers) and platform\ncode frequently needs to closely integrate GPIO and IRQ support.\n\nThis is placed *early* in the build/link sequence since it\u0027s common for other\ndrivers to depend on GPIOs to do their work, so they must be initialized early\nin the device_initcall() sequence.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nAcked-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: Eric Miao \u003ceric.miao@marvell.com\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nCc: Philipp Zabel \u003cphilipp.zabel@gmail.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ben Gardner \u003cbgardner@wabtec.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "99c84dbdc73d158a1ab955a4a5f74c18074796a3",
      "tree": "497fc8e86eca9b22a159c512e68ff8828a5e923b",
      "parents": [
        "681cc5cd3efbeafca6386114070e0bfb5012e249"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "tomof@acm.org",
        "time": "Mon Feb 04 22:28:17 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:12 2008 -0800"
      },
      "message": "iommu sg merging: call dma_set_seg_boundary in __scsi_alloc_queue()\n\nThis is a one-line patch to add the following to __scsi_alloc_queue():\n\ndma_set_seg_boundary(dev, shost-\u003edma_boundary);\n\nThis is the simplest approach but the result looks odd,\n__scsi_alloc_queue() does:\n\nblk_queue_segment_boundary(q, shost-\u003edma_boundary);\ndma_set_seg_boundary(dev, shost-\u003edma_boundary);\nblk_queue_max_segment_size(q, dma_get_max_seg_size(dev));\n\nI think that it would be better to set up segment boundary in the same\nway as we did for the maximum segment size. That is, removing\nshost-\u003edma_boundary and LLDs call pci_set_dma_seg_boundary (or its\nfriends).\n\nThen __scsi_alloc_queue() can set up both limits in the same way:\n\nblk_queue_segment_boundary(q, dma_get_seg_boundary(dev));\nblk_queue_max_segment_size(q, dma_get_max_seg_size(dev));\n\nkilling dma_boundary in scsi_host_template needs a large patch for\nlibata (dma_boundary is used by only libata and sym53c8xx). I\u0027ll send\na patch to do that if it is acceptable. James and Jeff?\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "681cc5cd3efbeafca6386114070e0bfb5012e249",
      "tree": "21249148cf78175e1d099999784053a14dc2fc50",
      "parents": [
        "59fc67dedb46c29442989e52af39da67aea52512"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "tomof@acm.org",
        "time": "Mon Feb 04 22:28:16 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:12 2008 -0800"
      },
      "message": "iommu sg merging: swiotlb: respect the segment boundary limits\n\nThis patch makes swiotlb not allocate a memory area spanning LLD\u0027s segment\nboundary.\n\nis_span_boundary() judges whether a memory area spans LLD\u0027s segment boundary.\nIf map_single finds such a area, map_single tries to find the next available\nmemory area.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "59fc67dedb46c29442989e52af39da67aea52512",
      "tree": "d75eb8ce840e1f9d2a2e2dd939e28396750186fb",
      "parents": [
        "d22a6966b8029913fac37d078ab2403898d94c63"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "tomof@acm.org",
        "time": "Mon Feb 04 22:28:14 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:12 2008 -0800"
      },
      "message": "iommu sg merging: PCI: add dma segment boundary support\n\nThis adds PCI\u0027s accessor for segment_boundary_mask in device_dma_parameters.\n\nThe default segment_boundary is set to 0xffffffff, same to the block layer\u0027s\ndefault value (and the scsi mid layer uses the same value).\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d22a6966b8029913fac37d078ab2403898d94c63",
      "tree": "f8bf9155b805781cef04ccb6c8de688ab6ea21e1",
      "parents": [
        "67ec11cf968241c9ae907f8817b6ac74d4dd71d7"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "tomof@acm.org",
        "time": "Mon Feb 04 22:28:13 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:11 2008 -0800"
      },
      "message": "iommu sg merging: add accessors for segment_boundary_mask in device_dma_parameters()\n\nThis adds new accessors for segment_boundary_mask in device_dma_parameters\nstructure in the same way I did for max_segment_size.  So we can easily change\nwhere to place struct device_dma_parameters in the future.\n\ndma_get_segment boundary returns 0xffffffff if dma_parms in struct device\nisn\u0027t set up properly.  0xffffffff is the default value used in the block\nlayer and the scsi mid layer.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "67ec11cf968241c9ae907f8817b6ac74d4dd71d7",
      "tree": "4410c7211788ae79c1efb6c5368142578695ec80",
      "parents": [
        "fde9a1094ddf2892188a8a0eccda527de47cba8e"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "tomof@acm.org",
        "time": "Mon Feb 04 22:28:12 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:11 2008 -0800"
      },
      "message": "iommu sg: kill __clear_bit_string and find_next_zero_string\n\nThis kills unused __clear_bit_string and find_next_zero_string (they\nwere used by only gart and calgary IOMMUs).\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Muli Ben-Yehuda \u003cmulix@mulix.org\u003e\nCc: Andi Kleen \u003cak@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": "fde9a1094ddf2892188a8a0eccda527de47cba8e",
      "tree": "245609ebc4ddc69c3428a59625b63dc2dced7fa0",
      "parents": [
        "1b39b077789955c8389488d53d075518fdcd582e"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "tomof@acm.org",
        "time": "Mon Feb 04 22:28:11 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:11 2008 -0800"
      },
      "message": "iommu sg: x86: convert gart IOMMU to use the IOMMU helper\n\nThis patch converts gart IOMMU to use the IOMMU helper functions. The\nIOMMU doesn\u0027t allocate a memory area spanning LLD\u0027s segment boundary\nanymore.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Muli Ben-Yehuda \u003cmulix@mulix.org\u003e\nCc: Andi Kleen \u003cak@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": "1b39b077789955c8389488d53d075518fdcd582e",
      "tree": "b633d041bdc32959c118ec9ef77ee17bbd0b5b23",
      "parents": [
        "383af9525bb27f927511874f6306247ec13f1c28"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "tomof@acm.org",
        "time": "Mon Feb 04 22:28:10 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:11 2008 -0800"
      },
      "message": "iommu sg: x86: convert calgary IOMMU to use the IOMMU helper\n\nThis patch converts calgary IOMMU to use the IOMMU helper\nfunctions. The IOMMU doesn\u0027t allocate a memory area spanning LLD\u0027s\nsegment boundary anymore.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Muli Ben-Yehuda \u003cmulix@mulix.org\u003e\nCc: Andi Kleen \u003cak@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": "383af9525bb27f927511874f6306247ec13f1c28",
      "tree": "c2a88846ba944954c87aaeb9087fc5ff0f0f9d57",
      "parents": [
        "fb3475e9b6bfa666107512fbd6006c26014f04b8"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "tomof@acm.org",
        "time": "Mon Feb 04 22:28:09 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:11 2008 -0800"
      },
      "message": "iommu sg: powerpc: remove DMA 4GB boundary protection\n\nPreviously, during initialization of the IOMMU tables, the last entry\nat each 4GB boundary is marked as used since there are many adapters\nwhich cannot handle DMAing across any 4GB boundary.\n\nThe IOMMU doesn\u0027t allocate a memory area spanning LLD\u0027s segment\nboundary anymore. The segment boundary of devices are set to 4GB by\ndefault. So we can remove 4GB boundary protection now.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fb3475e9b6bfa666107512fbd6006c26014f04b8",
      "tree": "d845a940c7a118539f58c4f52337d4b49a1222ba",
      "parents": [
        "0291df8cc9dac09c303d21d5bcd2ad73762c836a"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "tomof@acm.org",
        "time": "Mon Feb 04 22:28:08 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:11 2008 -0800"
      },
      "message": "iommu sg: powerpc: convert iommu to use the IOMMU helper\n\nThis patch converts PPC\u0027s IOMMU to use the IOMMU helper functions.  The IOMMU\ndoesn\u0027t allocate a memory area spanning LLD\u0027s segment boundary anymore.\n\niseries_hv_alloc and iseries_hv_map don\u0027t have proper device\nstruct. 4GB boundary is used for them.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0291df8cc9dac09c303d21d5bcd2ad73762c836a",
      "tree": "5a79187b309cc1a2115a94bc7927c85dd3c67ac9",
      "parents": [
        "0c95fdc59640824d7e0b017be295fb912ceef4ab"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "tomof@acm.org",
        "time": "Mon Feb 04 22:28:07 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:11 2008 -0800"
      },
      "message": "iommu sg: add IOMMU helper functions for the free area management\n\nThis adds IOMMU helper functions for the free area management.  These\nfunctions take care of LLD\u0027s segment boundary limit for IOMMUs.  They would be\nuseful for IOMMUs that use bitmap for the free area management.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0c95fdc59640824d7e0b017be295fb912ceef4ab",
      "tree": "d72d273e6fa6cf2163f60d4bd015f677f32303ce",
      "parents": [
        "b7d8629f8b4b250fda578e59ecddc77c6bdec2b6"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "tomof@acm.org",
        "time": "Mon Feb 04 22:28:06 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:11 2008 -0800"
      },
      "message": "iommu sg merging: aacraid: use pci_set_dma_max_seg_size\n\nThis sets the segment size limit properly via pci_set_dma_max_seg_size\nand remove blk_queue_max_segment_size because scsi-ml calls it.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nAcked-by: \"Salyzyn, Mark\" \u003cmark_salyzyn@adaptec.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b7d8629f8b4b250fda578e59ecddc77c6bdec2b6",
      "tree": "9164030272e3a4e67b8d31a0f596d99f814b66b6",
      "parents": [
        "860ac568e825b623b0b335ca277dd47d1d7fd5d0"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "tomof@acm.org",
        "time": "Mon Feb 04 22:28:05 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:11 2008 -0800"
      },
      "message": "iommu sg merging: sata_inic162x: use pci_set_dma_max_seg_size\n\nThis sets the segment size limit properly via pci_set_dma_max_seg_size\nand remove blk_queue_max_segment_size because scsi-ml calls it.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "860ac568e825b623b0b335ca277dd47d1d7fd5d0",
      "tree": "efdf476e1bbf564d62935f86c3467a4c4f4a7fc6",
      "parents": [
        "d1b5163206769aa93271bc1029e877ea9f920a5d"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "tomof@acm.org",
        "time": "Mon Feb 04 22:28:05 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:11 2008 -0800"
      },
      "message": "iommu sg merging: call blk_queue_segment_boundary in __scsi_alloc_queue\n\nrequest_queue and device struct must have the same value of a segment\nsize limit. This patch adds blk_queue_segment_boundary in\n__scsi_alloc_queue so LLDs don\u0027t need to call both\nblk_queue_segment_boundary and set_dma_max_seg_size. A LLD can change\nthe default value (64KB) can call device_dma_parameters accessors like\npci_set_dma_max_seg_size when allocating scsi_host.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nAcked-by: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d1b5163206769aa93271bc1029e877ea9f920a5d",
      "tree": "436b2d39dba80d28b0ec3a6f602c813cf0ec4fe0",
      "parents": [
        "fde6a3c82d67f592eb587be4d12222b0ae6d4321"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "tomof@acm.org",
        "time": "Mon Feb 04 22:28:03 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:10 2008 -0800"
      },
      "message": "iommu sg merging: parisc: make iommu respect the segment size limits\n\nThis patch makes iommu respect segment size limits when merging sg\nlists.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nAcked-by: Grant Grundler \u003cgrundler@parisc-linux.org\u003e\nCc: Matthew Wilcox \u003cwilly@debian.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fde6a3c82d67f592eb587be4d12222b0ae6d4321",
      "tree": "33c79ecea87dc99a9c4961b6ab42d53c46f1f8f2",
      "parents": [
        "7c53664dcd5df7349edb56f04c743bf66510a6f1"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "tomof@acm.org",
        "time": "Mon Feb 04 22:28:02 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:10 2008 -0800"
      },
      "message": "iommu sg merging: sparc64: make iommu respect the segment size limits\n\nThis patch makes iommu respect segment size limits when merging sg\nlists.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7c53664dcd5df7349edb56f04c743bf66510a6f1",
      "tree": "377cd9cced6757f986806d51c6e428f5b1874e49",
      "parents": [
        "a031bbcb8d7559d61f383880f23dd0e047247410"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "tomof@acm.org",
        "time": "Mon Feb 04 22:27:58 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:10 2008 -0800"
      },
      "message": "iommu sg merging: alpha: make pci_iommu respect the segment size limits\n\nThis patch makes pci_iommu respect segment size limits when merging sg\nlists.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a031bbcb8d7559d61f383880f23dd0e047247410",
      "tree": "7cc77c1ddd1e38835bf312bed11955fdd9fea6cf",
      "parents": [
        "740c3ce66700640a6e6136ff679b067e92125794"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "tomof@acm.org",
        "time": "Mon Feb 04 22:27:58 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:10 2008 -0800"
      },
      "message": "iommu sg merging: IA64: make sba_iommu respect the segment size limits\n\nThis patch makes sba iommu respect segment size limits when merging sg\nlists.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "740c3ce66700640a6e6136ff679b067e92125794",
      "tree": "720f3d4c847e4576ed8a5df325d12701adde6616",
      "parents": [
        "42d00284e16bf998f8f93ce5d061df81b0ff283e"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "tomof@acm.org",
        "time": "Mon Feb 04 22:27:57 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:10 2008 -0800"
      },
      "message": "iommu sg merging: ppc: make iommu respect the segment size limits\n\nThis patch makes iommu respect segment size limits when merging sg\nlists.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "42d00284e16bf998f8f93ce5d061df81b0ff283e",
      "tree": "1318ceca16b25b16080040f3639da885cf3135ac",
      "parents": [
        "4d57cdfacaa1c207bf4c071f89835e0368766a50"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "tomof@acm.org",
        "time": "Mon Feb 04 22:27:56 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:10 2008 -0800"
      },
      "message": "iommu sg merging: x86: make pci-gart iommu respect the segment size limits\n\nThis patch makes pci-gart iommu respect segment size limits when\nmerging sg lists.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Dave Airlie \u003cairlied@linux.ie\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Andi Kleen \u003cak@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": "4d57cdfacaa1c207bf4c071f89835e0368766a50",
      "tree": "b0b617efcd2e228573e42e7efbea4a95955ddf70",
      "parents": [
        "6b7b651055221127304a4e373ee9b762398d54d7"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "tomof@acm.org",
        "time": "Mon Feb 04 22:27:55 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:10 2008 -0800"
      },
      "message": "iommu sg merging: PCI: add device_dma_parameters support\n\nThis adds struct device_dma_parameters in struct pci_dev and properly\nsets up a pointer in struct device.\n\nThe default max_segment_size is set to 64K, same to the block layer\u0027s\ndefault value.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nMostly-acked-by: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6b7b651055221127304a4e373ee9b762398d54d7",
      "tree": "06a8383d5d20011a5ffe04b4e78234a8fcc98f51",
      "parents": [
        "7bbdc3d51cf793dd81c38f794f4cb73df58d1527"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "tomof@acm.org",
        "time": "Mon Feb 04 22:27:55 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:10 2008 -0800"
      },
      "message": "iommu sg merging: add device_dma_parameters structure\n\nIOMMUs merges scatter/gather segments without considering a low level\ndriver\u0027s restrictions. The problem is that IOMMUs can\u0027t access to the\nlimitations because they are in request_queue.\n\nThis patchset introduces a new structure, device_dma_parameters,\nincluding dma information. A pointer to device_dma_parameters is added\nto struct device. The bus specific structures (like pci_dev) includes\ndevice_dma_parameters. Low level drivers can use dma_set_max_seg_size\nto tell IOMMUs about the restrictions.\n\nWe can move more dma stuff in struct device (like dma_mask) to struct\ndevice_dma_parameters later (needs some cleanups before that).\n\nThis includes patches for all the IOMMUs that could merge sg (x86_64,\nppc, IA64, alpha, sparc64, and parisc) though only the ppc patch was\ntested. The patches for other IOMMUs are only compile tested.\n\nThis patch:\n\nAdd a new structure, device_dma_parameters, including dma information.  A\npointer to device_dma_parameters is added to struct device.\n\n- there are only max_segment_size and segment_boundary_mask there but we\u0027ll\n  move more dma stuff in struct device (like dma_mask) to struct\n  device_dma_parameters later.  segment_boundary_mask is not supported yet.\n\n- new accessors for the dma parameters are added.  So we can easily change\n  where to place struct device_dma_parameters in the future.\n\n- dma_get_max_seg_size returns 64K if dma_parms in struct device isn\u0027t set\n  up properly.  64K is the default max_segment_size in the block layer.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nAcked-by: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7bbdc3d51cf793dd81c38f794f4cb73df58d1527",
      "tree": "483bf4e7db67bcd7d292d09679cdc3f755e8ac85",
      "parents": [
        "3e8d4e2075e049664294722b436edfc5ced6ca53"
      ],
      "author": {
        "name": "Mark A. Greer",
        "email": "mgreer@mvista.com",
        "time": "Mon Feb 04 22:27:54 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:10 2008 -0800"
      },
      "message": "serial: MPSC: set baudrate when BRG divider is set.\n\nThe clock to generate the desired baudrate with the MPSC is first divided\nby the Baud Rate Generator (BRG) and then by the MPSC itself.  So, when the\nBRG divider is changed, the MPSC divider must also be changed to generate\nthe correct baudrate.  During MPSC initialization, the BRG divider is\nchanged but the MPSC divider isn\u0027t changed until much later.  This results\nin some printk\u0027s coming out garbled.  To fix that, set the MPSC divider at\nthe same time that the BRG divider is changed.\n\nSigned-off-by: Mark A. Greer \u003cmgreer@mvista.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3e8d4e2075e049664294722b436edfc5ced6ca53",
      "tree": "51510152392373b388bad091518f790228f18826",
      "parents": [
        "6d4d67beb963de8865499781b8523e5b683819c3"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Mon Feb 04 22:27:53 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:10 2008 -0800"
      },
      "message": "serial: Coding style\n\nCoding style tweaks and printk levels.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6d4d67beb963de8865499781b8523e5b683819c3",
      "tree": "597ebf45d858b56ce00ab98f634081be15e5e8a1",
      "parents": [
        "c8c6bfa39d6bd7347f43937c8767ae145b61bcb4"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Mon Feb 04 22:27:53 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:10 2008 -0800"
      },
      "message": "serial: speed setup failure reporting\n\nInvalid speeds are forced to 9600. Update the code for this to encode new\nstyle baud rates properly.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c8c6bfa39d6bd7347f43937c8767ae145b61bcb4",
      "tree": "0d15a6faa56f7527359ea0360ca93e68010de02f",
      "parents": [
        "9d778a69370cc1b643b13648df971c83ff5654ef"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk+lkml@arm.linux.org.uk",
        "time": "Mon Feb 04 22:27:52 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:10 2008 -0800"
      },
      "message": "serial: avoid stalling suspend if serial port won\u0027t drain\n\nSome ports seem to be unable to drain their transmitters on shut down.  Such a\nproblem can occur if the port is programmed for hardware imposed flow control,\ncharacters are in the FIFO but the CTS signal is inactive.\n\nNormally, this isn\u0027t a problem because most places where we wait for the\ntransmitter to drain have a time-out.  However, there is no timeout in the\nsuspend path.\n\nGive a port 30ms to drain; this is an arbitary value chosen to avoid long\ndelays if there are many such ports in the system, while giving a reasonable\nchance for a single port to drain.  Should a port not drain within this\ntimeout, issue a warning.\n\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nAcked-by: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9d778a69370cc1b643b13648df971c83ff5654ef",
      "tree": "e32a231699733217a8ab2f42893c6e5b5cf97a97",
      "parents": [
        "74a197417240120d638d67d74f48655fb7f46f16"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk+lkml@arm.linux.org.uk",
        "time": "Mon Feb 04 22:27:51 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:09 2008 -0800"
      },
      "message": "serial: avoid waking up closed serial ports on resume\n\nWhen we boot, serial ports remain in low power mode until they\u0027re used either\nby userspace or for the kernel console.\n\nHowever, if you suspend the system, and then resume, all serial ports will be\ntaken out of low power mode.  This is bad news for embedded devices where this\ncan mean higher power consumption.\n\nOnly bring a serial port out of low power mode if the port is being used as\nthe kernel console, or is in use by userspace.\n\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nAcked-by: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "74a197417240120d638d67d74f48655fb7f46f16",
      "tree": "903eea1331d4fbea110806f7ca4e4a96c128724a",
      "parents": [
        "02c9b5cf9acd8a85313b892dc5196ccf133d4884"
      ],
      "author": {
        "name": "Will Newton",
        "email": "will.newton@gmail.com",
        "time": "Mon Feb 04 22:27:50 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:09 2008 -0800"
      },
      "message": "8250.c: support specifying DW APB UARTs in device platform_data\n\nAllow the private_data field to be specified in platform_data for the\nstandard 8250/16550 UART.  This field is used by DW APB type UARTs and\nwithout this patch it\u0027s only possible to set this field when registering\nthe port by hand.  If private_data is not set then the driver will\npotentially oops with a NULL pointer dereference.\n\nSigned-off-by: Will Newton \u003cwill.newton@gmail.com\u003e\nAcked-by: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "02c9b5cf9acd8a85313b892dc5196ccf133d4884",
      "tree": "7feb5cf1c34ed8cc602171f66cbe9adfe2eb19d3",
      "parents": [
        "1452750afc923b838a76e23150d5f1b4fc718b11"
      ],
      "author": {
        "name": "Krauth.Julien",
        "email": "Krauth.Julien@addi-data.com",
        "time": "Mon Feb 04 22:27:49 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:09 2008 -0800"
      },
      "message": "serial: add ADDI-DATA GmbH Communication cardsin8250_pci.c and pci_ids.h\n\nAdd ADDI-DATA GmbH communication cards to 8250_pci driver.  Supported cards\nare:\n\nAPCI-7300, APCI-7420, APCI-7500, APCI-7800 APCI-7300-2, APCI-7420-2,\nAPCI-7500-2 APCI-7300-3, APCI-7420-3, APCI-7500-3, APCI-7800-3\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Krauth J. \u003ckrauth.julien@addi-data.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Alan Cox \u003calan@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": "1452750afc923b838a76e23150d5f1b4fc718b11",
      "tree": "5e76bc41c704a71037c34d9cb9ac75473372d88a",
      "parents": [
        "c3e4642be734ce3d2c7398246d8cbced3a039f54"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "olsajiri@gmail.com",
        "time": "Mon Feb 04 22:27:48 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:09 2008 -0800"
      },
      "message": "drivers/serial/s3c2410.c: remove dead config symbols\n\nRemove dead config symbol.\n\nSigned-off-by: Jiri Olsa \u003colsajiri@gmail.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ben Dooks \u003cben@fluff.org\u003e\nCc: Alan Cox \u003calan@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": "c3e4642be734ce3d2c7398246d8cbced3a039f54",
      "tree": "68c689b44e263501433ce73e8ccdd586d9916e43",
      "parents": [
        "1523508d6321436b6edfcd99aab04a344f9aed3f"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "Yinghai.Lu@Sun.COM",
        "time": "Mon Feb 04 22:27:46 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:09 2008 -0800"
      },
      "message": "serial: keep the DTR setting for serial console.\n\nwith reverting \"x86, serial: convert legacy COM ports to platform devices\",\nwe will have the serial console before the port is probled again.\n\nuart_add_one_port\u003d\u003d\u003euart_configure_port\u003d\u003d\u003eset_mcttrl(port, 0) will clear\nthe DTR setting by uart_set_options().  then I will lose my output from\nserial console again.\n\nSo try to keep DTR in uart_configure_port()\n\nSigned-off-by: Yinghai Lu \u003cyinghai.lu@sun.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Bjorn Helgaas \u003cbjorn.helgaas@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1523508d6321436b6edfcd99aab04a344f9aed3f",
      "tree": "c97c1015c51f4e3576d14313d350c545869e6913",
      "parents": [
        "5a1c3e1aa977457ded6fd0739e032c9684bf23bd"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Mon Feb 04 22:27:46 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:09 2008 -0800"
      },
      "message": "drivers/pcmcia: add missing pci_dev_get\n\npci_get_slot does a pci_dev_get, so pci_dev_put needs to be called in an\nerror case.\n\nAn extract of the semantic match used to find the problem is as follows:\n(http://www.emn.fr/x-info/coccinelle/)\n\n// \u003csmpl\u003e\n@@\ntype find1.T,T1,T2;\nidentifier find1.E;\nstatement find1.S;\nexpression x1,x2,x3;\nexpression find1.test;\nint ret !\u003d 0;\n@@\n\n  T E;\n  ...\n(\n* E \u003d pci_get_slot(...);\n  if (E \u003d\u003d NULL) S\n|\n* if ((E \u003d pci_get_slot(...)) \u003d\u003d NULL)\n  S\n)\n  ... when !\u003d pci_dev_put(...,(T1)E,...)\n      when !\u003d if (E !\u003d NULL) { ... pci_dev_put(...,(T1)E,...); ...}\n      when !\u003d x1 \u003d (T1)E\n      when !\u003d E \u003d x3;\n      when any\n  if (test) {\n    ... when !\u003d pci_dev_put(...,(T2)E,...)\n        when !\u003d if (E !\u003d NULL) { ... pci_dev_put(...,(T2)E,...); ...}\n        when !\u003d x2 \u003d (T2)E\n(\n*   return;\n|\n*   return ret;\n)\n  }\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5a1c3e1aa977457ded6fd0739e032c9684bf23bd",
      "tree": "89eb509f436e1ad20362cce9cd83529888de16c4",
      "parents": [
        "4c1fc445c29c6208c44e10c0253beea890bf5435"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Mon Feb 04 22:27:44 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:09 2008 -0800"
      },
      "message": "drivers/pcmcia: Add missing iounmap\n\nof_iomap calls ioremap, and so should be matched with an iounmap.  At the\ntwo error returns, the result of calling of_iomap is only stored in a local\nvariable, so these error paths need to call iounmap.  Furthermore, this\nfunction ultimately stores the result of of_iomap in an array that is local\nto the file.  These values should be iounmapped at some point.  I have\nadded a corresponding call to iounmap at the end of the function\nm8xx_remove.\n\nThe problem was found using the following semantic match.\n(http://www.emn.fr/x-info/coccinelle/)\n\n// \u003csmpl\u003e\n@@\ntype T,T1,T2;\nidentifier E;\nstatement S;\nexpression x1,x2,x3;\nint ret;\n@@\n\n  T E;\n  ...\n* E \u003d of_iomap(...);\n  if (E \u003d\u003d NULL) S\n  ... when !\u003d iounmap(...,(T1)E,...)\n      when !\u003d if (E !\u003d NULL) { ... iounmap(...,(T1)E,...); ...}\n      when !\u003d x1 \u003d (T1)E\n      when !\u003d E \u003d x3;\n      when any\n  if (...) {\n    ... when !\u003d iounmap(...,(T2)E,...)\n        when !\u003d if (E !\u003d NULL) { ... iounmap(...,(T2)E,...); ...}\n        when !\u003d x2 \u003d (T2)E\n(\n*   return;\n|\n*   return ret;\n)\n  }\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nVitaly Bordug \u003cvitb@kernel.crashing.org\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Olof Johansson \u003colof@lixom.net\u003e\nCc: Dominik Brodowski \u003clinux@dominikbrodowski.net\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Kumar Gala \u003cgalak@kernel.crashing.org\u003e\nCc: 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": "4c1fc445c29c6208c44e10c0253beea890bf5435",
      "tree": "2c52339b73cd6cf300b53f156d63f8ba0a7a4c94",
      "parents": [
        "9ab9898e32971b938f9e8a997b12d0c4dd4832f7"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Mon Feb 04 22:27:42 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:09 2008 -0800"
      },
      "message": "at91_cf: use generic gpio calls\n\nUpdate the AT91 CF driver to use the generic GPIO calls instead of the\nAT91-specific ones; and request exclusive use of those signals.\n\nMinor tweaks to cleanup code paths: always in reverse order of how the\nresources were allocated, with remove() matching the fault paths of\nprobe().\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9ab9898e32971b938f9e8a997b12d0c4dd4832f7",
      "tree": "82a9c982387d99e209b5026f98e30d3e2e5103ea",
      "parents": [
        "cfd4734c1e686164c87b9f31b67401cdf6f34238"
      ],
      "author": {
        "name": "Richard Knutsson",
        "email": "ricknu-0@student.ltu.se",
        "time": "Mon Feb 04 22:27:42 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:09 2008 -0800"
      },
      "message": "pcmcia/pcnet_cs: fix \u0027shadow variable\u0027 warning\n\nFixing:\n  CHECK   drivers/net/pcmcia/pcnet_cs.c\ndrivers/net/pcmcia/pcnet_cs.c:523:15: warning: symbol \u0027hw_info\u0027 shadows an earlier one\ndrivers/net/pcmcia/pcnet_cs.c:148:18: originally declared here\n\nSigned-off-by: Richard Knutsson \u003cricknu-0@student.ltu.se\u003e\nAcked-by: Alan Cox \u003calan@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": "cfd4734c1e686164c87b9f31b67401cdf6f34238",
      "tree": "790ff6b56600b187c5c85ed661069559fe57a59b",
      "parents": [
        "c61f26fa609f11a471a68668b838b7366b2b75e0"
      ],
      "author": {
        "name": "Richard Knutsson",
        "email": "ricknu-0@student.ltu.se",
        "time": "Mon Feb 04 22:27:41 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:09 2008 -0800"
      },
      "message": "pcmcia/fmvj18x_cs: fix \u0027shadow variable\u0027 warning\n\nFixing:\n  CHECK   drivers/net/pcmcia/fmvj18x_cs.c\ndrivers/net/pcmcia/fmvj18x_cs.c:1205:6: warning: symbol \u0027i\u0027 shadows an earlier one\ndrivers/net/pcmcia/fmvj18x_cs.c:1179:9: originally declared here\n\nSigned-off-by: Richard Knutsson \u003cricknu-0@student.ltu.se\u003e\nAcked-by: Alan Cox \u003calan@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": "c61f26fa609f11a471a68668b838b7366b2b75e0",
      "tree": "7cd3bee71ba33e71c452c8bf628479036b96799c",
      "parents": [
        "6b2e43861b09bce857d41d47c853003be587a575"
      ],
      "author": {
        "name": "Richard Knutsson",
        "email": "ricknu-0@student.ltu.se",
        "time": "Mon Feb 04 22:27:41 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:09 2008 -0800"
      },
      "message": "pcmcia/axnet_cs: make use of \u0027max()\u0027 instead of handcrafted one\n\nUse \u0027max(x,y)\u0027 instead of \u0027x \u003c y ? y : x\u0027.\n\nSigned-off-by: Richard Knutsson \u003cricknu-0@student.ltu.se\u003e\nAcked-by: Alan Cox \u003calan@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": "6b2e43861b09bce857d41d47c853003be587a575",
      "tree": "cb3bf6a7dd55ce7347a50b8560983bb635486235",
      "parents": [
        "1569d9e89a77d51750497dc23d303e27d0d9494d"
      ],
      "author": {
        "name": "Richard Knutsson",
        "email": "ricknu-0@student.ltu.se",
        "time": "Mon Feb 04 22:27:40 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:09 2008 -0800"
      },
      "message": "pcmcia/axnet_cs: make functions static\n\nFixing:\n  CHECK   drivers/net/pcmcia/axnet_cs.c\ndrivers/net/pcmcia/axnet_cs.c:994:5: warning: symbol \u0027ax_close\u0027 was not declared. Should it be static?\ndrivers/net/pcmcia/axnet_cs.c:1017:6: warning: symbol \u0027ei_tx_timeout\u0027 was not declared. Should it be static?\n\nSigned-off-by: Richard Knutsson \u003cricknu-0@student.ltu.se\u003e\nAcked-by: Alan Cox \u003calan@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": "1569d9e89a77d51750497dc23d303e27d0d9494d",
      "tree": "1d5dee97169b4c2976a255ff3eeb907fd062ab70",
      "parents": [
        "52debb06238b8076ec2667359668d4c5e38e8807"
      ],
      "author": {
        "name": "Richard Knutsson",
        "email": "ricknu-0@student.ltu.se",
        "time": "Mon Feb 04 22:27:39 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:08 2008 -0800"
      },
      "message": "pcmcia/3c574_cs: fix \u0027shadow variable\u0027 warning\n\nFixing:\n  CHECK   drivers/net/pcmcia/3c574_cs.c\ndrivers/net/pcmcia/3c574_cs.c:695:7: warning: symbol \u0027i\u0027 shadows an earlier one\ndrivers/net/pcmcia/3c574_cs.c:636:6: originally declared here\n\nSigned-off-by: Richard Knutson \u003cricknu-0@student.ltu.se\u003e\nAcked-by: Alan Cox \u003calan@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": "52debb06238b8076ec2667359668d4c5e38e8807",
      "tree": "a0a4487f1078b3d641a751cb3a75451dd0bbf56a",
      "parents": [
        "d6b4fa6d698f5cf331ead08db4ba5e60cd3c83be"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Mon Feb 04 22:27:38 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:08 2008 -0800"
      },
      "message": "pcmcia: include bad CIS filename in error message\n\n- Print the invalid CIS filename in the invalid filename message.\n- Use sizeof() instead of hard-coded constant for buffer size.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d6b4fa6d698f5cf331ead08db4ba5e60cd3c83be",
      "tree": "5db5d6d7c60ba1b6712581a4d99a8a54bdeee739",
      "parents": [
        "906da809c5be30b4c7f32bb6a489fb25ad794878"
      ],
      "author": {
        "name": "David Brownell",
        "email": "david-b@pacbell.net",
        "time": "Mon Feb 04 22:27:37 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:08 2008 -0800"
      },
      "message": "pcmcia: stop updating dev-\u003epower.power_state\n\nThis stops the pcmcia core from using dev-\u003epower.power_state; that field is\ndeprecated (overdue for removal) and the only reason to update it was to make\nthe /sys/devices/.../power/state files (now removed) work better.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nCc: Dominik Brodowski \u003clinux@dominikbrodowski.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "906da809c5be30b4c7f32bb6a489fb25ad794878",
      "tree": "9516df9eb1a64ee94d185d2711bde3d1defaabb5",
      "parents": [
        "ecb8a8472f6d314096f20885722f2033d2071719"
      ],
      "author": {
        "name": "Olof Johansson",
        "email": "olof@lixom.net",
        "time": "Mon Feb 04 22:27:35 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:08 2008 -0800"
      },
      "message": "pcmcia: replace kio_addr_t with unsigned int everywhere\n\nRemove kio_addr_t, and replace it with unsigned int.  No known architecture\nneeds more than 32 bits for IO addresses and ports and having a separate type\nfor it is just messy.\n\nSigned-off-by: Olof Johansson \u003colof@lixom.net\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Dominik Brodowski \u003clinux@dominikbrodowski.net\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ecb8a8472f6d314096f20885722f2033d2071719",
      "tree": "1b945f833ecceffc7e786c7a5e1efe55cb7d8867",
      "parents": [
        "7852375bbbfc7fb9c1117d73914aeb3baf917539"
      ],
      "author": {
        "name": "Olof Johansson",
        "email": "olof@lixom.net",
        "time": "Mon Feb 04 22:27:34 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:08 2008 -0800"
      },
      "message": "pcmcia: convert some internal-only ioaddr_t to unsigned int\n\nConvert the io_req_t members to unsigned int, to allow use on machines with\nmore than 16 bits worth of IO ports (i.e.  secondary busses on ppc64, etc).\n\nThere was only a couple of places in drivers where a change was needed.  I\nleft printk formats alone (there are lots of %04x-style formats in there),\nmostly to not change the format on the platforms that only have 16-bit io\naddresses, but also because the padding doesn\u0027t really add all that much value\nmost of the time.\n\nI found only one sprintf of an address, and upsized the string accordingly (I\ndoubt anyone will have anywhere near INT_MAX as irq value, but at least\nthere\u0027s room for it now).\n\nSigned-off-by: Olof Johansson \u003colof@lixom.net\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Dominik Brodowski \u003clinux@dominikbrodowski.net\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7852375bbbfc7fb9c1117d73914aeb3baf917539",
      "tree": "272577fe32e1d8ae289045a90dad52a87038e600",
      "parents": [
        "134d495656d674511b7ea074f819d92fcc2024fa"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "olsajiri@gmail.com",
        "time": "Mon Feb 04 22:27:33 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:08 2008 -0800"
      },
      "message": "m32r: remove dead config symbols from M32R code\n\nremove dead config symbols from M32R code\n\nSigned-off-by: Jiri Olsa \u003colsajiri@gmail.com\u003e\nCc: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "134d495656d674511b7ea074f819d92fcc2024fa",
      "tree": "3be2b49ac824ea589e88f9853801f5820750deda",
      "parents": [
        "7492d4a416d68ab4bd254b36ffcc4e0138daa8ff"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Mon Feb 04 22:27:31 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:08 2008 -0800"
      },
      "message": "include/asm-powerpc/nvram.h needs list.h\n\nCC [M]  sound/ppc/awacs.o\nIn file included from sound/ppc/awacs.c:24:\ninclude/asm/nvram.h:62: error: field \u0027partition\u0027 has incomplete type\n\nReported-by: Mariusz Kozlowski \u003cm.kozlowski@tuxland.pl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7492d4a416d68ab4bd254b36ffcc4e0138daa8ff",
      "tree": "f6d2f168c668771b04a984ac1cc426d146b8559b",
      "parents": [
        "f79c343e2e5ba82b9661e7287a42fac596bf367a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Mon Feb 04 22:27:29 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:08 2008 -0800"
      },
      "message": "sdio: fix module device table definition for m68k\n\nFATAL: drivers/bluetooth/btsdio: sizeof(struct sdio_device_id)\u003d12 is not a modulo of the size of section __mod_sdio_device_table\u003d30.\nFix definition of struct sdio_device_id in mod_devicetable.h\n\nm68k has 16bit alignment for unsigned long.\n\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Pierre Ossman \u003cdrzeus@drzeus.cx\u003e\nCC: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f79c343e2e5ba82b9661e7287a42fac596bf367a",
      "tree": "e1fc8a607e702fe4f80f58c9f03fa09d9d86f7b7",
      "parents": [
        "cb9282ee589e57360ab701a7e450e03e7890401d"
      ],
      "author": {
        "name": "Davide Libenzi",
        "email": "davidel@xmailserver.org",
        "time": "Mon Feb 04 22:27:29 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:07 2008 -0800"
      },
      "message": "timerfd: un-break CONFIG_TIMERFD\n\nRemove the broken status to CONFIG_TIMERFD.\n\nSigned-off-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk-manpages@gmx.net\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": "cb9282ee589e57360ab701a7e450e03e7890401d",
      "tree": "6686bda7e18bf821e6bb0c58e773856d90c48b92",
      "parents": [
        "4d672e7ac79b5ec5cdc90e450823441e20464691"
      ],
      "author": {
        "name": "Davide Libenzi",
        "email": "davidel@xmailserver.org",
        "time": "Mon Feb 04 22:27:28 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:07 2008 -0800"
      },
      "message": "timerfd: wire the new timerfd API to the x86 family\n\nWires up the new timerfd API to the x86 family.\n\nSigned-off-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk-manpages@gmx.net\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4d672e7ac79b5ec5cdc90e450823441e20464691",
      "tree": "66da3aa0bf7f7ac80376a93f17edbb2246b2df06",
      "parents": [
        "5e05ad7d4e3b11f935998882b5d9c3b257137f1b"
      ],
      "author": {
        "name": "Davide Libenzi",
        "email": "davidel@xmailserver.org",
        "time": "Mon Feb 04 22:27:26 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:07 2008 -0800"
      },
      "message": "timerfd: new timerfd API\n\nThis is the new timerfd API as it is implemented by the following patch:\n\nint timerfd_create(int clockid, int flags);\nint timerfd_settime(int ufd, int flags,\n\t\t    const struct itimerspec *utmr,\n\t\t    struct itimerspec *otmr);\nint timerfd_gettime(int ufd, struct itimerspec *otmr);\n\nThe timerfd_create() API creates an un-programmed timerfd fd.  The \"clockid\"\nparameter can be either CLOCK_MONOTONIC or CLOCK_REALTIME.\n\nThe timerfd_settime() API give new settings by the timerfd fd, by optionally\nretrieving the previous expiration time (in case the \"otmr\" parameter is not\nNULL).\n\nThe time value specified in \"utmr\" is absolute, if the TFD_TIMER_ABSTIME bit\nis set in the \"flags\" parameter.  Otherwise it\u0027s a relative time.\n\nThe timerfd_gettime() API returns the next expiration time of the timer, or\n{0, 0} if the timerfd has not been set yet.\n\nLike the previous timerfd API implementation, read(2) and poll(2) are\nsupported (with the same interface).  Here\u0027s a simple test program I used to\nexercise the new timerfd APIs:\n\nhttp://www.xmailserver.org/timerfd-test2.c\n\n[akpm@linux-foundation.org: coding-style cleanups]\n[akpm@linux-foundation.org: fix ia64 build]\n[akpm@linux-foundation.org: fix m68k build]\n[akpm@linux-foundation.org: fix mips build]\n[akpm@linux-foundation.org: fix alpha, arm, blackfin, cris, m68k, s390, sparc and sparc64 builds]\n[heiko.carstens@de.ibm.com: fix s390]\n[akpm@linux-foundation.org: fix powerpc build]\n[akpm@linux-foundation.org: fix sparc64 more]\nSigned-off-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk-manpages@gmx.net\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk-manpages@gmx.net\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5e05ad7d4e3b11f935998882b5d9c3b257137f1b",
      "tree": "63b1b197f1ee68e656878257394d1ec8796ff3ea",
      "parents": [
        "ed5d2cac114202fe2978a9cbcab8f5032796d538"
      ],
      "author": {
        "name": "Davide Libenzi",
        "email": "davidel@xmailserver.org",
        "time": "Mon Feb 04 22:27:25 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:07 2008 -0800"
      },
      "message": "timerfd: introduce a new hrtimer_forward_now() function\n\nI think that advancing the timer against the timer\u0027s current \"now\" can be a\npretty common usage, so, w/out exposing hrtimer\u0027s internals, we add a new\nhrtimer_forward_now() function.\n\nSigned-off-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk-manpages@gmx.net\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": "ed5d2cac114202fe2978a9cbcab8f5032796d538",
      "tree": "aa9aaea1aa0945bd9159685d1b04897d105a90c9",
      "parents": [
        "f558b7e408026eb3c6afcd0e8fc1f7fe31195a6a"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Mon Feb 04 22:27:24 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:07 2008 -0800"
      },
      "message": "exec: rework the group exit and fix the race with kill\n\nAs Roland pointed out, we have the very old problem with exec.  de_thread()\nsets SIGNAL_GROUP_EXIT, kills other threads, changes -\u003egroup_leader and then\nclears signal-\u003eflags.  All signals (even fatal ones) sent in this window\n(which is not too small) will be lost.\n\nWith this patch exec doesn\u0027t abuse SIGNAL_GROUP_EXIT.  signal_group_exit(),\nthe new helper, should be used to detect exit_group() or exec() in progress.\nIt can have more users, but this patch does only strictly necessary changes.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Robin Holt \u003cholt@sgi.com\u003e\nCc: Roland McGrath \u003croland@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": "f558b7e408026eb3c6afcd0e8fc1f7fe31195a6a",
      "tree": "3473617a87d54b4388c2336303075b1a54e30552",
      "parents": [
        "198466b41d11dd062fb26ee0376080458d7bfcaf"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Mon Feb 04 22:27:24 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:07 2008 -0800"
      },
      "message": "remove handle_group_stop() in favor of do_signal_stop()\n\nEvery time we set SIGNAL_GROUP_EXIT or clear SIGNAL_STOP_DEQUEUED we also\nreset -\u003egroup_stop_count.\n\nThis means that the SIGNAL_GROUP_EXIT check in handle_group_stop() is not\nneeded, and do_signal_stop() should check SIGNAL_STOP_DEQUEUED only when\n-\u003egroup_stop_count \u003d\u003d 0. With these changes handle_group_stop() becomes the\nsubset of do_signal_stop(), we can kill it and use do_signal_stop() instead.\n\nAlso, a preparation for the next patch.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Robin Holt \u003cholt@sgi.com\u003e\nCc: Roland McGrath \u003croland@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": "198466b41d11dd062fb26ee0376080458d7bfcaf",
      "tree": "ccf725c9a05e13b983e4480fd218280d5e58b47e",
      "parents": [
        "bdff746a3915f109bd13730b6847e33e17e91ed3"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Mon Feb 04 22:27:23 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:07 2008 -0800"
      },
      "message": "__group_complete_signal(): fix coredump with group stop race\n\nWhen __group_complete_signal() sees sig_kernel_coredump() signal, it starts\nthe group stop, but sets -\u003egroup_exit_task \u003d t in a hope that \"t\" will\nactually dequeue this signal and invoke do_coredump().  However, by the\ntime \"t\" enters get_signal_to_deliver() it is possible that the signal was\nblocked/ignored or we have another pending !SIG_KERNEL_COREDUMP_MASK signal\nwhich will be dequeued first.  This means the task could be stopped but not\nkilled.\n\nRemove this code from __group_complete_signal().  Note also this patch\nremoves the bogus signal_wake_up(t, 1).  This thread can\u0027t be\nSTOPPED/TRACED, note the corresponding check in wants_signal().\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Robin Holt \u003cholt@sgi.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "bdff746a3915f109bd13730b6847e33e17e91ed3"
}
