)]}'
{
  "log": [
    {
      "commit": "c1821c2e9711adc3cd298a16b7237c92a2cee78d",
      "tree": "9155b089db35a37d95863125ea4c5f918bd7801b",
      "parents": [
        "86aa9fc2456d8a662f299a70bdb70987209170f0"
      ],
      "author": {
        "name": "Gerald Schaefer",
        "email": "geraldsc@de.ibm.com",
        "time": "Mon Feb 05 21:18:17 2007 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Mon Feb 05 21:18:17 2007 +0100"
      },
      "message": "[S390] noexec protection\n\nThis provides a noexec protection on s390 hardware. Our hardware does\nnot have any bits left in the pte for a hw noexec bit, so this is a\ndifferent approach using shadow page tables and a special addressing\nmode that allows separate address spaces for code and data.\n\nAs a special feature of our \"secondary-space\" addressing mode, separate\npage tables can be specified for the translation of data addresses\n(storage operands) and instruction addresses. The shadow page table is\nused for the instruction addresses and the standard page table for the\ndata addresses.\nThe shadow page table is linked to the standard page table by a pointer\nin page-\u003elru.next of the struct page corresponding to the page that\ncontains the standard page table (since page-\u003eprivate is not really\nprivate with the pte_lock and the page table pages are not in the LRU\nlist).\nDepending on the software bits of a pte, it is either inserted into\nboth page tables or just into the standard (data) page table. Pages of\na vma that does not have the VM_EXEC bit set get mapped only in the\ndata address space. Any try to execute code on such a page will cause a\npage translation exception. The standard reaction to this is a SIGSEGV\nwith two exceptions: the two system call opcodes 0x0a77 (sys_sigreturn)\nand 0x0aad (sys_rt_sigreturn) are allowed. They are stored by the\nkernel to the signal stack frame. Unfortunately, the signal return\nmechanism cannot be modified to use an SA_RESTORER because the\nexception unwinding code depends on the system call opcode stored\nbehind the signal stack frame.\n\nThis feature requires that user space is executed in secondary-space\nmode and the kernel in home-space mode, which means that the addressing\nmodes need to be switched and that the noexec protection only works\nfor user space.\nAfter switching the addressing modes, we cannot use the mvcp/mvcs\ninstructions anymore to copy between kernel and user space. A new\nmvcos instruction has been added to the z9 EC/BC hardware which allows\nto copy between arbitrary address spaces, but on older hardware the\npage tables need to be walked manually.\n\nSigned-off-by: Gerald Schaefer \u003cgeraldsc@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "f4eb07c17df2e6cf9bd58bfcd9cc9e05e9489d07",
      "tree": "c1b4b422d3b8183edf452cc745dadd0fe129018b",
      "parents": [
        "7f090145a14afc35844dce80174c9c24f9e66ec5"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Fri Dec 08 15:56:07 2006 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Fri Dec 08 15:56:07 2006 +0100"
      },
      "message": "[S390] Virtual memmap for s390.\n\nVirtual memmap support for s390. Inspired by the ia64 implementation.\n\nUnlike ia64 we need a mechanism which allows us to dynamically attach\nshared memory regions.\nThese memory regions are accessed via the dcss device driver. dcss\nimplements the \u0027direct_access\u0027 operation, which requires struct pages\nfor every single shared page.\nTherefore this implementation provides an interface to attach/detach\nshared memory:\n\nint add_shared_memory(unsigned long start, unsigned long size);\nint remove_shared_memory(unsigned long start, unsigned long size);\n\nThe purpose of the add_shared_memory function is to add the given\nmemory range to the 1:1 mapping and to make sure that the\ncorresponding range in the vmemmap is backed with physical pages.\nIt also initialises the new struct pages.\n\nremove_shared_memory in turn only invalidates the page table\nentries in the 1:1 mapping. The page tables and the memory used for\nstruct pages in the vmemmap are currently not freed. They will be\nreused when the next segment will be attached.\nGiven that the maximum size of a shared memory region is 2GB and\nin addition all regions must reside below 2GB this is not too much of\na restriction, but there is room for improvement.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "0b2b6e1ddce4696cb7afcbb15a654fe95428a498",
      "tree": "a6dd837de5ce7088ab1009d125e8bcd6cfeaa1e1",
      "parents": [
        "7676bef9c183fd573822cac9992927ef596d584c"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Oct 04 20:02:23 2006 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Wed Oct 04 20:02:23 2006 +0200"
      },
      "message": "[S390] Remove open-coded mem_map usage.\n\nUse page_to_phys and pfn_to_page to avoid open-coded mem_map usage.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\n"
    },
    {
      "commit": "9282ed929758b82f448a40d3c17319d794970624",
      "tree": "f3db7796f0ea7afddc853ab4294033b4fdd6d785",
      "parents": [
        "31b58088292c7f00f0b81088bfb557285b0b6247"
      ],
      "author": {
        "name": "Gerald Schaefer",
        "email": "geraldsc@de.ibm.com",
        "time": "Wed Sep 20 15:59:37 2006 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Wed Sep 20 15:59:37 2006 +0200"
      },
      "message": "[S390] Cleanup in page table related code.\n\nChanged and simplified some page table related #defines and code.\n\nSigned-off-by: Gerald Schaefer \u003cgeraldsc@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "d2c993d845781d160a7ef759a3e65c6892c4a270",
      "tree": "f63be38ab83363282c519048849663201f664818",
      "parents": [
        "7e560814de1972e1bfc780616841d7a0032ca467"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jul 12 16:41:55 2006 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Wed Jul 12 16:41:55 2006 +0200"
      },
      "message": "[S390] Fix sparse warnings.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\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": "2492ecc1a16b8ccf679d2999dca4f1b48aef07ee",
      "tree": "9e8f40d3715cb6f10b436f9035c3000c33233146",
      "parents": [
        "a7f3ea728b36aff520dff1611b3ce10cff46d8fe"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Mar 22 00:07:57 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:53:56 2006 -0800"
      },
      "message": "[PATCH] mm: remove set_pgdir leftovers\n\nset_pgdir isn\u0027t needed anymore for a very long time.  Remove the leftover\nimplementation on sh64 and the stub on s390.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Richard Curnow \u003crc@rc0.org.uk\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"
    }
  ]
}
