)]}'
{
  "log": [
    {
      "commit": "cfb824349556904b319464139be5c75fce983b0d",
      "tree": "e0f0094ffc8732457ae1233e5e2890788e3817ff",
      "parents": [
        "908ee0f122bf2a67414854af5b90c6621d186a71"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux.com",
        "time": "Mon Dec 06 11:40:03 2010 -0600"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Dec 17 15:18:04 2010 +0100"
      },
      "message": "highmem: Use this_cpu_xx_return() operations\n\nUse this_cpu operations to optimize access primitives for highmem.\n\nThe main effect is the avoidance of address calculations through the\nuse of a segment prefix.\n\nV3-\u003eV4\n\t- kmap_atomic_idx: Do not return a value.\n\t- Use __this_cpu_dec without HIGHMEM_DEBUG\n\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nAcked-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "43b3a0c732776746f53d8ed2ba659583fc1692aa",
      "tree": "d72a9778374061bbdb1865f60c6cacce7eacb3b9",
      "parents": [
        "3f9d35b9514da6757ca98831372518f9eeb71b33"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Nov 11 14:05:10 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 12 07:55:30 2010 -0800"
      },
      "message": "include/linux/highmem.h needs hardirq.h\n\nCommit 3e4d3af501cc (\"mm: stack based kmap_atomic()\") introduced the\nkmap_atomic_idx_push() function which warns on in_irq() with\nCONFIG_DEBUG_HIGHMEM enabled.  This patch includes linux/hardirq.h for\nthe in_irq definition.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.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": "20273941f2129aa5a432796d98a276ed73d60782",
      "tree": "85da0d951ac10f239f81ad7f69559fdeb692095b",
      "parents": [
        "a8e23a291852cd7c4fb5ca696dbb93912185ad10"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Oct 27 15:32:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:03:05 2010 -0700"
      },
      "message": "mm: fix race in kunmap_atomic()\n\nChristoph reported a nice splat which illustrated a race in the new stack\nbased kmap_atomic implementation.\n\nThe problem is that we pop our stack slot before we\u0027re completely done\nresetting its state -- in particular clearing the PTE (sometimes that\u0027s\nCONFIG_DEBUG_HIGHMEM).  If an interrupt happens before we actually clear\nthe PTE used for the last slot, that interrupt can reuse the slot in a\ndirty state, which triggers a BUG in kmap_atomic().\n\nFix this by introducing kmap_atomic_idx() which reports the current slot\nindex without actually releasing it and use that to find the PTE and delay\nthe _pop() until after we\u0027re completely done.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReported-by: Christoph Hellwig \u003chch@infradead.org\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": "a8e23a291852cd7c4fb5ca696dbb93912185ad10",
      "tree": "df0cf7cfe8d8600563a96cb5426de69759165e52",
      "parents": [
        "12ba8d1e9262ce81a695795410bd9ee5c9407ba1"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Oct 27 15:32:57 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:03:05 2010 -0700"
      },
      "message": "mm,x86: fix kmap_atomic_push vs ioremap_32.c\n\nIt appears i386 uses kmap_atomic infrastructure regardless of\nCONFIG_HIGHMEM which results in a compile error when highmem is disabled.\n\nCure this by providing the needed few bits for both CONFIG_HIGHMEM and\nCONFIG_X86_32.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReported-by: Chris Wilson \u003cchris@chris-wilson.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3e4d3af501cccdc8a8cca41bdbe57d54ad7e7e73",
      "tree": "2ce507f7ec7275563653e52f18606aba4f99b7f1",
      "parents": [
        "61ecdb801ef2cd28e32442383106d7837d76deac"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Oct 26 14:21:51 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:08 2010 -0700"
      },
      "message": "mm: stack based kmap_atomic()\n\nKeep the current interface but ignore the KM_type and use a stack based\napproach.\n\nThe advantage is that we get rid of crappy code like:\n\n\t#define __KM_PTE\t\t\t\\\n\t\t(in_nmi() ? KM_NMI_PTE : \t\\\n\t\t in_irq() ? KM_IRQ_PTE :\t\\\n\t\t KM_PTE0)\n\nand in general can stop worrying about what context we\u0027re in and what kmap\nslots might be appropriate for that.\n\nThe downside is that FRV kmap_atomic() gets more expensive.\n\nFor now we use a CPP trick suggested by Andrew:\n\n  #define kmap_atomic(page, args...) __kmap_atomic(page)\n\nto avoid having to touch all kmap_atomic() users in a single patch.\n\n[ not compiled on:\n  - mn10300: the arch doesn\u0027t actually build with highmem to begin with ]\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: fix up drivers/gpu/drm/i915/intel_overlay.c]\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Dave Airlie \u003cairlied@linux.ie\u003e\nCc: Li Zefan \u003clizf@cn.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": "61ecdb801ef2cd28e32442383106d7837d76deac",
      "tree": "3ec4f04e09cc4a9b76dafaaa0c4dfd07e825e632",
      "parents": [
        "2e30244a7cc1ff09013a1238d415b4076406388e"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Oct 26 14:21:47 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:08 2010 -0700"
      },
      "message": "mm: strictly nested kmap_atomic()\n\nEnsure kmap_atomic() usage is strictly nested\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\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": "4e60c86bd9e5a7110ed28874d0b6592186550ae8",
      "tree": "9fb60e9f49b44b293a0c0c7d9f40e1a354a22b5a",
      "parents": [
        "627295e492638936e76f3d8fcb1e0a3367b88341"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Mon Aug 09 17:19:03 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:58 2010 -0700"
      },
      "message": "gcc-4.6: mm: fix unused but set warnings\n\nNo real bugs, just some dead code and some fixups.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "597781f3e51f48ef8e67be772196d9e9673752c4",
      "tree": "6e1974bc899889da40f2fde47b04a5ece0bd3399",
      "parents": [
        "3edd4fc9537d95e460d502987c63a90d6b9a7a82"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Mon Aug 09 17:18:32 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:54 2010 -0700"
      },
      "message": "kmap_atomic: make kunmap_atomic() harder to misuse\n\nkunmap_atomic() is currently at level -4 on Rusty\u0027s \"Hard To Misuse\"\nlist[1] (\"Follow common convention and you\u0027ll get it wrong\"), except in\nsome architectures when CONFIG_DEBUG_HIGHMEM is set[2][3].\n\nkunmap() takes a pointer to a struct page; kunmap_atomic(), however, takes\ntakes a pointer to within the page itself.  This seems to once in a while\ntrip people up (the convention they are following is the one from\nkunmap()).\n\nMake it much harder to misuse, by moving it to level 9 on Rusty\u0027s list[4]\n(\"The compiler/linker won\u0027t let you get it wrong\").  This is done by\nrefusing to build if the type of its first argument is a pointer to a\nstruct page.\n\nThe real kunmap_atomic() is renamed to kunmap_atomic_notypecheck()\n(which is what you would call in case for some strange reason calling it\nwith a pointer to a struct page is not incorrect in your code).\n\nThe previous version of this patch was compile tested on x86-64.\n\n[1] http://ozlabs.org/~rusty/index.cgi/tech/2008-04-01.html\n[2] In these cases, it is at level 5, \"Do it right or it will always\n    break at runtime.\"\n[3] At least mips and powerpc look very similar, and sparc also seems to\n    share a common ancestor with both; there seems to be quite some\n    degree of copy-and-paste coding here. The include/asm/highmem.h file\n    for these three archs mention x86 CPUs at its top.\n[4] http://ozlabs.org/~rusty/index.cgi/tech/2008-03-30.html\n[5] As an aside, could someone tell me why mn10300 uses unsigned long as\n    the first parameter of kunmap_atomic() instead of void *?\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e (arch/arm)\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e (arch/mips)\nCc: David Howells \u003cdhowells@redhat.com\u003e (arch/frv, arch/mn10300)\nCc: Koichi Yasutake \u003cyasutake.koichi@jp.panasonic.com\u003e (arch/mn10300)\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e (arch/parisc)\nCc: Helge Deller \u003cdeller@gmx.de\u003e (arch/parisc)\nCc: \"James E.J. Bottomley\" \u003cjejb@parisc-linux.org\u003e (arch/parisc)\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e (arch/powerpc)\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e (arch/powerpc)\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e (arch/sparc)\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e (arch/x86)\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e (arch/x86)\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e (arch/x86)\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e (include/asm-generic)\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e (\"Hard To Misuse\" list)\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ff3d58c22b6827039983911d3460cf0c1657f8cc",
      "tree": "bed2f2f98760425976a45858326de80aa5e7760b",
      "parents": [
        "fd23855e38d2a7275a786238459c070b4e9f7975"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Mon May 24 14:32:46 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:01 2010 -0700"
      },
      "message": "highmem: remove unneeded #ifdef CONFIG_TRACE_IRQFLAGS_SUPPORT for debug_kmap_atomic()\n\nIn f4112de6b679d84bd9b9681c7504be7bdfb7c7d5 (\"mm: introduce\ndebug_kmap_atomic\") I said that debug_kmap_atomic() needs\nCONFIG_TRACE_IRQFLAGS_SUPPORT.\n\nIt was wrong.  (I thought irqs_disabled() is only available when the\narchitecture has CONFIG_TRACE_IRQFLAGS_SUPPORT)\n\nRemove the #ifdef CONFIG_TRACE_IRQFLAGS_SUPPORT check to enable\nkmap_atomic() debugging for the architectures which do not have\nCONFIG_TRACE_IRQFLAGS_SUPPORT.\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f24407d2bde27a4eb75ce5e52069bf4f1ba0e8a5",
      "tree": "6ad6dbc0b3d394435615b5e53b7d2ab3bde4c354",
      "parents": [
        "654451748b779b28077d9058442d0f354251870d",
        "73c77e2ccc14413c232c3e0b3aa43a0c4b72ec70"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 26 17:05:10 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 26 17:05:10 2010 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/xfs-vipt\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/xfs-vipt:\n  xfs: fix xfs to work with Virtually Indexed architectures\n  sh: add mm API for DMA to vmalloc/vmap areas\n  arm: add mm API for DMA to vmalloc/vmap areas\n  parisc: add mm API for DMA to vmalloc/vmap areas\n  mm: add coherence API for DMA to vmalloc/vmap areas\n"
    },
    {
      "commit": "9df5f74194871ebd0e51ef5ad2eca5084acaaaba",
      "tree": "e167b9ec3a7948e0706754de4a303dc018ec9817",
      "parents": [
        "6b7b284958d47b77d06745b36bc7f36dab769d9b"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Mon Jan 25 11:42:20 2010 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Mon Jan 25 11:42:20 2010 -0600"
      },
      "message": "mm: add coherence API for DMA to vmalloc/vmap areas\n\nOn Virtually Indexed architectures (which don\u0027t do automatic alias\nresolution in their caches), we have to flush via the correct\nvirtual address to prepare pages for DMA.  On some architectures\n(like arm) we cannot prevent the CPU from doing data movein along\nthe alias (and thus giving stale read data), so we not only have to\nintroduce a flush API to push dirty cache lines out, but also an invalidate\nAPI to kill inconsistent cache lines that may have moved in before\nDMA changed the data\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "4b529401c5089cf33f7165607cbc2fde43357bfb",
      "tree": "0e559e77e9a2c837cd7c25f3a48e83ee788d7d4b",
      "parents": [
        "50f411e34d623efbf4e4b4b0c1a4a20e04c5cc9e"
      ],
      "author": {
        "name": "Andreas Fenkart",
        "email": "andreas.fenkart@streamunlimited.com",
        "time": "Fri Jan 08 14:42:31 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 11 09:34:03 2010 -0800"
      },
      "message": "mm: make totalhigh_pages unsigned long\n\nMakes it consistent with the extern declaration, used when CONFIG_HIGHMEM\nis set Removes redundant casts in printout messages\n\nSigned-off-by: Andreas Fenkart \u003candreas.fenkart@streamunlimited.com\u003e\nAcked-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Chen Liqin \u003cliqin.chen@sunplusct.com\u003e\nCc: Lennox Wu \u003clennox.wu@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "31c911329e048b715a1dfeaaf617be9430fd7f4e",
      "tree": "a8eca5337528c21ab54ae5ad152d04a471b906cf",
      "parents": [
        "69c854817566db82c362797b4a6521d0b00fe1d8"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew@wil.cx",
        "time": "Tue Jun 16 15:32:45 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:41 2009 -0700"
      },
      "message": "mm: check the argument of kunmap on architectures without highmem\n\nIf you\u0027re using a non-highmem architecture, passing an argument with the\nwrong type to kunmap() doesn\u0027t give you a warning because the ifdef\ndoesn\u0027t check the type.\n\nUsing a static inline function solves the problem nicely.\n\nReported-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3688e07f83d81941c4a8b20e29602c6d0c883539",
      "tree": "d7169ef37071cc14225e7700a4f6c08981f3f5e4",
      "parents": [
        "c54c4dec61eec88de8260a00260fe89aa538f267"
      ],
      "author": {
        "name": "Kumar Gala",
        "email": "galak@kernel.crashing.org",
        "time": "Wed Apr 01 23:38:49 2009 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 09:48:29 2009 -0700"
      },
      "message": "Fix highmem PPC build failure\n\nCommit f4112de6b679d84bd9b9681c7504be7bdfb7c7d5 (\"mm: introduce\ndebug_kmap_atomic\") broke PPC builds with CONFIG_HIGHMEM\u003dy:\n\n   CC      init/main.o\n  In file included from include/linux/highmem.h:25,\n                   from include/linux/pagemap.h:11,\n                   from include/linux/mempolicy.h:63,\n                   from init/main.c:53:\n  arch/powerpc/include/asm/highmem.h: In function \u0027kmap_atomic_prot\u0027:\n  arch/powerpc/include/asm/highmem.h:98: error: implicit declaration of function \u0027debug_kmap_atomic\u0027\n  In file included from include/linux/pagemap.h:11,\n                   from include/linux/mempolicy.h:63,\n                   from init/main.c:53:\n  include/linux/highmem.h: At top level:\n  include/linux/highmem.h:196: warning: conflicting types for \u0027debug_kmap_atomic\u0027\n  include/linux/highmem.h:196: error: static declaration of \u0027debug_kmap_atomic\u0027 follows non-static declaration\n  include/asm/highmem.h:98: error: previous implicit declaration of \u0027debug_kmap_atomic\u0027 was here\n  make[1]: *** [init/main.o] Error 1\n  make: *** [init] Error 2\n\nSigned-off-by: Kumar Gala \u003cgalak@kernel.crashing.org\u003e\nAcked-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f4112de6b679d84bd9b9681c7504be7bdfb7c7d5",
      "tree": "c9a5665b31e751e1d4255b8c35a6245d5abfa3eb",
      "parents": [
        "851a039cc547b33b8139fe6d7c2bbfb158e2724e"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Tue Mar 31 15:23:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:14 2009 -0700"
      },
      "message": "mm: introduce debug_kmap_atomic\n\nx86 has debug_kmap_atomic_prot() which is error checking function for\nkmap_atomic.  It is usefull for the other architectures, although it needs\nCONFIG_TRACE_IRQFLAGS_SUPPORT.\n\nThis patch exposes it to the other architectures.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "487ff32082a9bd7489d8185cf7d7a2fdf18a22fa",
      "tree": "59f792ef961670026b2e71a88453fed1136aba02",
      "parents": [
        "6417a917b564106dcf2b8f42687f92ad94635ddd"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk@dyn-67.arm.linux.org.uk",
        "time": "Thu Nov 27 11:13:58 2008 +0000"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Nov 27 23:39:48 2008 +0000"
      },
      "message": "Allow architectures to override copy_user_highpage()\n\nWith aliasing VIPT cache support, the ARM implementation of\nclear_user_page() and copy_user_page() sets up a temporary kernel space\nmapping such that we have the same cache colour as the userspace page.\nThis avoids having to consider any userspace aliases from this operation.\n\nHowever, when highmem is enabled, kmap_atomic() have to setup mappings.\nThe copy_user_highpage() and clear_user_highpage() call these functions\nbefore delegating the copies to copy_user_page() and clear_user_page().\n\nThe effect of this is that each of the *_user_highpage() functions setup\ntheir own kmap mapping, followed by the *_user_page() functions setting\nup another mapping.  This is rather wasteful.\n\nThankfully, copy_user_highpage() can be overriden by architectures by\ndefining __HAVE_ARCH_COPY_USER_HIGHPAGE.  However, replacement of\nclear_user_highpage() is more difficult because its inline definition\nis not conditional.  It seems that you\u0027re expected to define\n__HAVE_ARCH_ALLOC_ZEROED_USER_HIGHPAGE and provide a replacement\n__alloc_zeroed_user_highpage() implementation instead.\n\nThe allocation itself is fine, so we don\u0027t want to override that.  What\nwe really want to do is to override clear_user_highpage() with our own\nversion which doesn\u0027t kmap_atomic() unnecessarily.\n\nOther VIPT architectures (PARISC and SH) would also like to override\nthis function as well.\n\nAcked-by: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "0ed361dec36945f3116ee1338638ada9a8920905",
      "tree": "3e0fc6319ef49f6cac82e8203a8aa199302ab9c5",
      "parents": [
        "62e1c55300f306e06478f460a7eefba085206e0b"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Feb 04 22:29:34 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:19 2008 -0800"
      },
      "message": "mm: fix PageUptodate data race\n\nAfter running SetPageUptodate, preceeding stores to the page contents to\nactually bring it uptodate may not be ordered with the store to set the\npage uptodate.\n\nTherefore, another CPU which checks PageUptodate is true, then reads the\npage contents can get stale data.\n\nFix this by having an smp_wmb before SetPageUptodate, and smp_rmb after\nPageUptodate.\n\nMany places that test PageUptodate, do so with the page locked, and this\nwould be enough to ensure memory ordering in those places if\nSetPageUptodate were only called while the page is locked.  Unfortunately\nthat is not always the case for some filesystems, but it could be an idea\nfor the future.\n\nAlso bring the handling of anonymous page uptodateness in line with that of\nfile backed page management, by marking anon pages as uptodate when they\n_are_ uptodate, rather than when our implementation requires that they be\nmarked as such.  Doing allows us to get rid of the smp_wmb\u0027s in the page\ncopying functions, which were especially added for anonymous pages for an\nanalogous memory ordering problem.  Both file and anonymous pages are\nhandled with the same barriers.\n\nFAQ:\nQ. Why not do this in flush_dcache_page?\nA. Firstly, flush_dcache_page handles only one side (the smb side) of the\nordering protocol; we\u0027d still need smp_rmb somewhere. Secondly, hiding away\nmemory barriers in a completely unrelated function is nasty; at least in the\nPageUptodate macros, they are located together with (half) the operations\ninvolved in the ordering. Thirdly, the smp_wmb is only required when first\nbringing the page uptodate, wheras flush_dcache_page should be called each time\nit is written to through the kernel mapping. It is logically the wrong place to\nput it.\n\nQ. Why does this increase my text size / reduce my performance / etc.\nA. Because it is adding the necessary instructions to eliminate the data-race.\n\nQ. Can it be improved?\nA. Yes, eg. if you were to create a rule that all SetPageUptodate operations\nrun under the page lock, we could avoid the smp_rmb places where PageUptodate\nis queried under the page lock. Requires audit of all filesystems and at least\nsome would need reworking. That\u0027s great you\u0027re interested, I\u0027m eagerly awaiting\nyour patches.\n\nSigned-off-by: 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": "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": "bb2d5ce16409efcdf94017a6b6fecd468226e29c",
      "tree": "12ce94a51c3aa8bffb22e1aa22f122268013fec4",
      "parents": [
        "79352894b28550ee0eee919149f57626ec1b3572"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Thu Jul 19 01:47:23 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:41 2007 -0700"
      },
      "message": "Remove alloc_zeroed_user_highpage()\n\nalloc_zeroed_user_highpage() has no in-tree users and it is not exported.\nAs it is not exported, it can simply be removed.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "769848c03895b63e5662eb7e4ec8c4866f7d0183",
      "tree": "8911c7c312c8b8b172795fa2874c8162e1d3d15a",
      "parents": [
        "a32ea1e1f925399e0d81ca3f7394a44a6dafa12c"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Jul 17 04:03:05 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:22:59 2007 -0700"
      },
      "message": "Add __GFP_MOVABLE for callers to flag allocations from high memory that may be migrated\n\nIt is often known at allocation time whether a page may be migrated or not.\nThis patch adds a flag called __GFP_MOVABLE and a new mask called\nGFP_HIGH_MOVABLE.  Allocations using the __GFP_MOVABLE can be either migrated\nusing the page migration mechanism or reclaimed by syncing with backing\nstorage and discarding.\n\nAn API function very similar to alloc_zeroed_user_highpage() is added for\n__GFP_MOVABLE allocations called alloc_zeroed_user_highpage_movable().  The\nflags used by alloc_zeroed_user_highpage() are not changed because it would\nchange the semantics of an existing API.  After this patch is applied there\nare no in-kernel users of alloc_zeroed_user_highpage() so it probably should\nbe marked deprecated if this patch is merged.\n\nNote that this patch includes a minor cleanup to the use of __GFP_ZERO in\nshmem.c to keep all flag modifications to inode-\u003emapping in the\nshmem_dir_alloc() helper function.  This clean-up suggestion is courtesy of\nHugh Dickens.\n\nAdditional credit goes to Christoph Lameter and Linus Torvalds for shaping the\nconcept.  Credit to Hugh Dickens for catching issues with shmem swap vector\nand ramfs allocations.\n\n[akpm@linux-foundation.org: build fix]\n[hugh@veritas.com: __GFP_ZERO cleanup]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\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": "f37bc2712b54ec641e0c0c8634f1a4b61d9956c0",
      "tree": "0b73fd72a74115922e8e88bd56667c04b9299767",
      "parents": [
        "f2fff596955867d407cc7e8e426097bd9ad2be9b"
      ],
      "author": {
        "name": "Nate Diller",
        "email": "nate.diller@gmail.com",
        "time": "Wed May 09 02:35:09 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:56 2007 -0700"
      },
      "message": "fs: deprecate memclear_highpage_flush\n\nNow that all the in-tree users are converted over to zero_user_page(),\ndeprecate the old memclear_highpage_flush() call.\n\nSigned-off-by: Nate Diller \u003cnate.diller@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "01f2705daf5a36208e69d7cf95db9c330f843af6",
      "tree": "2d2c7a042c2466ed985f6e0950450c099f02725f",
      "parents": [
        "38a23e311b6cd389b9d8af2ea6c28c8cffbe581c"
      ],
      "author": {
        "name": "Nate Diller",
        "email": "nate.diller@gmail.com",
        "time": "Wed May 09 02:35:07 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:55 2007 -0700"
      },
      "message": "fs: convert core functions to zero_user_page\n\nIt\u0027s very common for file systems to need to zero part or all of a page,\nthe simplist way is just to use kmap_atomic() and memset().  There\u0027s\nactually a library function in include/linux/highmem.h that does exactly\nthat, but it\u0027s confusingly named memclear_highpage_flush(), which is\ndescriptive of *how* it does the work rather than what the *purpose* is.\nSo this patchset renames the function to zero_user_page(), and calls it\nfrom the various places that currently open code it.\n\nThis first patch introduces the new function call, and converts all the\ncore kernel callsites, both the open-coded ones and the old\nmemclear_highpage_flush() ones.  Following this patch is a series of\nconversions for each file system individually, per AKPM, and finally a\npatch deprecating the old call.  The diffstat below shows the entire\npatchset.\n\n[akpm@linux-foundation.org: fix a few things]\nSigned-off-by: Nate Diller \u003cnate.diller@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ea62ccd00fd0b6720b033adfc9984f31130ce195",
      "tree": "9837b797b2466fffcb0af96c388b06eae9c3df18",
      "parents": [
        "886a0768affe9a32f18c45f8e1393bca9ece5392",
        "35060b6a9a4e1c89bc6fbea61090e302dbc61847"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat May 05 14:55:20 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat May 05 14:55:20 2007 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://one.firstfloor.org/home/andi/git/linux-2.6\n\n* \u0027for-linus\u0027 of git://one.firstfloor.org/home/andi/git/linux-2.6: (231 commits)\n  [PATCH] i386: Don\u0027t delete cpu_devs data to identify different x86 types in late_initcall\n  [PATCH] i386: type may be unused\n  [PATCH] i386: Some additional chipset register values validation.\n  [PATCH] i386: Add missing !X86_PAE dependincy to the 2G/2G split.\n  [PATCH] x86-64: Don\u0027t exclude asm-offsets.c in Documentation/dontdiff\n  [PATCH] i386: avoid redundant preempt_disable in __unlazy_fpu\n  [PATCH] i386: white space fixes in i387.h\n  [PATCH] i386: Drop noisy e820 debugging printks\n  [PATCH] x86-64: Fix allnoconfig error in genapic_flat.c\n  [PATCH] x86-64: Shut up warnings for vfat compat ioctls on other file systems\n  [PATCH] x86-64: Share identical video.S between i386 and x86-64\n  [PATCH] x86-64: Remove CONFIG_REORDER\n  [PATCH] x86-64: Print type and size correctly for unknown compat ioctls\n  [PATCH] i386: Remove copy_*_user BUG_ONs for (size \u003c 0)\n  [PATCH] i386: Little cleanups in smpboot.c\n  [PATCH] x86-64: Don\u0027t enable NUMA for a single node in K8 NUMA scanning\n  [PATCH] x86: Use RDTSCP for synchronous get_cycles if possible\n  [PATCH] i386: Add X86_FEATURE_RDTSCP\n  [PATCH] i386: Implement X86_FEATURE_SYNC_RDTSC on i386\n  [PATCH] i386: Implement alternative_io for i386\n  ...\n\nFix up trivial conflict in include/linux/highmem.h manually.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "254f9c5cd2d3b41e64f59df816630f7ca5548a8a",
      "tree": "f6e212c09a80e41ba228525869a269c75cbfc75a",
      "parents": [
        "f5456e040eaac7eb9545d49c38984af2047699be"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "geert@linux-m68k.org",
        "time": "Tue May 01 22:33:07 2007 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 04 17:59:08 2007 -0700"
      },
      "message": "Convert non-highmem kmap_atomic() to static inline function\n\nConvert kmap_atomic() in the non-highmem case from a macro to a static\ninline function, for better type-checking and the ability to pass void\npointers instead of struct page pointers.\n\nSigned-off-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ce6234b5298902aaec831a67d5f8d9bd2ef5a488",
      "tree": "939c22684e11a4f5f17abb89c4898f016e878e21",
      "parents": [
        "a27fe809b82c5e18932fcceded28d0d1481ce7bb"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:15 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:15 2007 +0200"
      },
      "message": "[PATCH] i386: PARAVIRT: add kmap_atomic_pte for mapping highpte pages\n\nXen and VMI both have special requirements when mapping a highmem pte\npage into the kernel address space.  These can be dealt with by adding\na new kmap_atomic_pte() function for mapping highptes, and hooking it\ninto the paravirt_ops infrastructure.\n\nXen specifically wants to map the pte page RO, so this patch exposes a\nhelper function, kmap_atomic_prot, which maps the page with the\nspecified page protections.\n\nThis also adds a kmap_flush_unused() function to clear out the cached\nkmap mappings.  Xen needs this to clear out any potential stray RW\nmappings of pages which will become part of a pagetable.\n\n[ Zach - vmi.c will need some attention after this patch.  It wasn\u0027t\n  immediately obvious to me what needs to be done. ]\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Zachary Amsden \u003czach@vmware.com\u003e\n"
    },
    {
      "commit": "a6f36be32622730710b2fadacb6e2649defa4371",
      "tree": "09d0f3ebe839b76373ee5ed4674fe305ad9ac256",
      "parents": [
        "e47c222b22cd53c317a5573e1dc5f9e0cbd46380"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk@dyn-67.arm.linux.org.uk",
        "time": "Sat Dec 30 22:24:19 2006 +0000"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Mon Jan 08 19:49:54 2007 +0000"
      },
      "message": "[ARM] pass vma for flush_anon_page()\n\nSince get_user_pages() may be used with processes other than the\ncurrent process and calls flush_anon_page(), flush_anon_page() has to\ncope in some way with non-current processes.\n\nIt may not be appropriate, or even desirable to flush a region of\nvirtual memory cache in the current process when that is different to\nthe process that we want the flush to occur for.\n\nTherefore, pass the vma into flush_anon_page() so that the architecture\ncan work out whether the \u0027vmaddr\u0027 is for the current process or not.\n\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "9de455b20705f36384a711d4a20bcf7ba1ab180b",
      "tree": "6eb3643514d12d06a69a5c889d612f66b68288e6",
      "parents": [
        "77fff4ae2b7bba6d66a8287d9ab948e2b6c16145"
      ],
      "author": {
        "name": "Atsushi Nemoto",
        "email": "anemo@mba.ocn.ne.jp",
        "time": "Tue Dec 12 17:14:55 2006 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:27:08 2006 -0800"
      },
      "message": "[PATCH] Pass vma argument to copy_user_highpage().\n\nTo allow a more effective copy_user_highpage() on certain architectures,\na vma argument is added to the function and cow_user_page() allowing\nthe implementation of these functions to check for the VM_EXEC bit.\n\nThe main part of this patch was originally written by Ralf Baechle;\nAtushi Nemoto did the the debugging.\n\nSigned-off-by: Atsushi Nemoto \u003canemo@mba.ocn.ne.jp\u003e\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "77fff4ae2b7bba6d66a8287d9ab948e2b6c16145",
      "tree": "f05dca9b28a3b3de384c4eadb12f0691c88de794",
      "parents": [
        "1fb8cacc19dfe408a5dd758235561c58cadea174"
      ],
      "author": {
        "name": "Atsushi Nemoto",
        "email": "anemo@mba.ocn.ne.jp",
        "time": "Tue Dec 12 17:14:54 2006 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:27:07 2006 -0800"
      },
      "message": "[PATCH] Fix COW D-cache aliasing on fork\n\nProblem:\n\n1. There is a process containing two thread (T1 and T2).  The\n   thread T1 calls fork().  Then dup_mmap() function called on T1 context.\n\nstatic inline int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)\n\t...\n\tflush_cache_mm(current-\u003emm);\n\t...\t/* A */\n\t(write-protect all Copy-On-Write pages)\n\t...\t/* B */\n\tflush_tlb_mm(current-\u003emm);\n\t...\n\n2. When preemption happens between A and B (or on SMP kernel), the\n   thread T2 can run and modify data on COW pages without page fault\n   (modified data will stay in cache).\n\n3. Some time after fork() completed, the thread T2 may cause a page\n   fault by write-protect on a COW page.\n\n4. Then data of the COW page will be copied to newly allocated\n   physical page (copy_cow_page()).  It reads data via kernel mapping.\n   The kernel mapping can have different \u0027color\u0027 with user space\n   mapping of the thread T2 (dcache aliasing).  Therefore\n   copy_cow_page() will copy stale data.  Then the modified data in\n   cache will be lost.\n\nIn order to allow architecture code to deal with this problem allow\narchitecture code to override copy_user_highpage() by defining\n__HAVE_ARCH_COPY_USER_HIGHPAGE in \u003casm/page.h\u003e.\n\nThe main part of this patch was originally written by Ralf Baechle;\nAtushi Nemoto did the the debugging.\n\nSigned-off-by: Atsushi Nemoto \u003canemo@mba.ocn.ne.jp\u003e\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ad76fb6b5a5183255279e0ab5260715481770678",
      "tree": "31034294d70f5fc3d6166a76fe9b7f8cd19db0fd",
      "parents": [
        "a866374aecc90c7d90619727ccd851ac096b2fc7"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Dec 06 20:32:21 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:21 2006 -0800"
      },
      "message": "[PATCH] mm: k{,um}map_atomic() vs in_atomic()\n\nMake kmap_atomic/kunmap_atomic denote a pagefault disabled scope.  All non\ntrivial implementations already do this anyway.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c1f60a5a419cc60aff27daffb150f5a3a3a79ef4",
      "tree": "8ae176462d6f220cd744ae6c3454113eebda02a8",
      "parents": [
        "182e8e237349e7b6354f45aee4780b6423fd6a50"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Sep 25 23:31:11 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:46 2006 -0700"
      },
      "message": "[PATCH] reduce MAX_NR_ZONES: move HIGHMEM counters into highmem.c/.h\n\nMove totalhigh_pages and nr_free_highpages() into highmem.c/.h\n\nMove the totalhigh_pages definition into highmem.c/.h.  Move the\nnr_free_highpages function into highmem.c\n\n[yoichi_yuasa@tripeaks.co.jp: build fix]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Yoichi Yuasa \u003cyoichi_yuasa@tripeaks.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a6ca1b99ed434f3fb41bbed647ed36c0420501e5",
      "tree": "59bb799e202f912ced4230e6b4c194c9c0097758",
      "parents": [
        "3998b9301d3d55be8373add22b6bc5e11c1d9b71"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@SteelEye.com",
        "time": "Mon Sep 25 23:30:55 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:44 2006 -0700"
      },
      "message": "[PATCH] update to the kernel kmap/kunmap API\n\nGive non-highmem architectures access to the kmap API for the purposes of\noverriding (this is what the attached patch does).\n\nThe proposal is that we should now require all architectures with coherence\nissues to manage data coherence via the kmap/kunmap API.  Thus driver\nwriters never have to write code like\n\n    kmap(page)\n    modify data in page\n    flush_kernel_dcache_page(page)\n    kunmap(page)\n\ninstead, kmap/kunmap will manage the coherence and driver (and filesystem)\nwriters don\u0027t need to worry about how to flush between kmap and kunmap.\n\nFor most architectures, the page only needs to be flushed if it was\nactually written to *and* there are user mappings of it, so the best\nimplementation looks to be: clear the page dirty pte bit in the kernel page\ntables on kmap and on kunmap, check page-\u003emappings for user maps, and then\nthe dirty bit, and only flush if it both has user mappings and is dirty.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "62c4f0a2d5a188f73a94f2cb8ea0dba3e7cf0a7f",
      "tree": "e85ca2d0dd43f90dccf758338764c3caa55f333f",
      "parents": [
        "089f26d5e31b7bf42a9a8fefec08b30cd27f4b0e"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 26 12:56:16 2006 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 26 12:56:16 2006 +0100"
      },
      "message": "Don\u0027t include linux/config.h from anywhere else in include/\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "5a3a5a98b6422d05c39eaa32c8b3f83840c7b768",
      "tree": "e96a8f5543c94c57eb2b761fa94df9f7a9412e52",
      "parents": [
        "03beb07664d768db97bf454ae5c9581cd4737bb4"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@SteelEye.com",
        "time": "Sun Mar 26 01:36:59 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:56:53 2006 -0800"
      },
      "message": "[PATCH] Add flush_kernel_dcache_page() API\n\nWe have a problem in a lot of emulated storage in that it takes a page from\nget_user_pages() and does something like\n\nkmap_atomic(page)\nmodify page\nkunmap_atomic(page)\n\nHowever, nothing has flushed the kernel cache view of the page before the\nkunmap.  We need a lightweight API to do this, so this new API would\nspecifically be for flushing the kernel cache view of a user page which the\nkernel has modified.  The driver would need to add\nflush_kernel_dcache_page(page) before the final kunmap.\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "03beb07664d768db97bf454ae5c9581cd4737bb4",
      "tree": "b906c4db3a70627a58363193f3f843e7e2132ca1",
      "parents": [
        "64a07bd82ed526d813b64b0957543eef55bdf9c0"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@SteelEye.com",
        "time": "Sun Mar 26 01:36:57 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:56:53 2006 -0800"
      },
      "message": "[PATCH] Add API for flushing Anon pages\n\nCurrently, get_user_pages() returns fully coherent pages to the kernel for\nanything other than anonymous pages.  This is a problem for things like\nfuse and the SCSI generic ioctl SG_IO which can potentially wish to do DMA\nto anonymous pages passed in by users.\n\nThe fix is to add a new memory management API: flush_anon_page() which\nis used in get_user_pages() to make anonymous pages coherent.\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "60e64d46a58236e3c718074372cab6a5b56a3b15",
      "tree": "194e5fa7a53a1ac4a106b1527ec69cf3c2179bb0",
      "parents": [
        "5f016456c96868c27df248a54d1cc919e7b70a23"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@in.ibm.com",
        "time": "Sat Jun 25 14:58:19 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Jun 25 16:24:53 2005 -0700"
      },
      "message": "[PATCH] kdump: Routines for copying dump pages\n\nThis patch provides the interfaces necessary to read the dump contents,\ntreating it as a high memory device.\n\nSigned off by Hariprasad Nellitheertha \u003chari@in.ibm.com\u003e\nSigned-off-by: Eric Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Vivek Goyal \u003cvgoyal@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
