)]}'
{
  "log": [
    {
      "commit": "a9b6f562f14dc28fb4b2415f0f275cede0abe9b5",
      "tree": "8d83009585877bf4c5f263690468d35105058822",
      "parents": [
        "a6d70980602e6f1869ebcdcbfaf55a0a5941583e"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Dec 06 20:34:37 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:28 2006 -0800"
      },
      "message": "[PATCH] swsusp: Untangle thaw_processes\n\nMove the loop from thaw_processes() to a separate function and call it\nindependently for kernel threads and user space processes so that the order\nof thawing tasks is clearly visible.\n\nDrop thaw_kernel_threads() which is never used.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Nigel Cunningham \u003cnigel@suspend2.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2d4a34c9365c6e3f94a5b26ce296e1fce9b66c8b",
      "tree": "ad8303f7db40d963f7a7b120996d4fe658a43cce",
      "parents": [
        "ff39593ad0ff7a79a3717edac6634407aa8200c2"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Dec 06 20:34:29 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:28 2006 -0800"
      },
      "message": "[PATCH] swsusp: Support i386 systems with PAE or without PSE\n\nMake swsusp support i386 systems with PAE or without PSE.\n\nThis is done by creating temporary page tables located in resume-safe page\nframes before the suspend image is restored in the same way as x86_64 does\nit.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nCc: Nigel Cunningham \u003cncunningham@linuxmail.org\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ff39593ad0ff7a79a3717edac6634407aa8200c2",
      "tree": "571e02e20d5d211224567d5cc22333196cf6f563",
      "parents": [
        "14b5b7cfaa110b1d25b8f80b01a8c97cf2db30bc"
      ],
      "author": {
        "name": "Nigel Cunningham",
        "email": "ncunningham@linuxmail.org",
        "time": "Wed Dec 06 20:34:28 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:28 2006 -0800"
      },
      "message": "[PATCH] swsusp: thaw userspace and kernel space separately\n\nModify process thawing so that we can thaw kernel space without thawing\nuserspace, and thaw kernelspace first.  This will be useful in later\npatches, where I intend to get swsusp thawing kernel threads only before\nseeking to free memory.\n\nSigned-off-by: Nigel Cunningham \u003cnigel@suspend2.net\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7dfb71030f7636a0d65200158113c37764552f93",
      "tree": "276b812903d377b16d8828e888552fd256f48aab",
      "parents": [
        "8a05aac2631aa0e6494d9dc990f8c68ed8b8fde7"
      ],
      "author": {
        "name": "Nigel Cunningham",
        "email": "ncunningham@linuxmail.org",
        "time": "Wed Dec 06 20:34:23 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:27 2006 -0800"
      },
      "message": "[PATCH] Add include/linux/freezer.h and move definitions from sched.h\n\nMove process freezing functions from include/linux/sched.h to freezer.h, so\nthat modifications to the freezer or the kernel configuration don\u0027t require\nrecompiling just about everything.\n\n[akpm@osdl.org: fix ueagle driver]\nSigned-off-by: Nigel Cunningham \u003cnigel@suspend2.net\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8357376d3df21b7d6f857931a57ac50da9c66e26",
      "tree": "daf2c369e9b79d24c1666323b3ae75189e482a4a",
      "parents": [
        "bf73bae6ba0dc4bd4f1e570feb34a06b72725af6"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Dec 06 20:34:18 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:27 2006 -0800"
      },
      "message": "[PATCH] swsusp: Improve handling of highmem\n\nCurrently swsusp saves the contents of highmem pages by copying them to the\nnormal zone which is quite inefficient (eg.  it requires two normal pages\nto be used for saving one highmem page).  This may be improved by using\nhighmem for saving the contents of saveable highmem pages.\n\nNamely, during the suspend phase of the suspend-resume cycle we try to\nallocate as many free highmem pages as there are saveable highmem pages.\nIf there are not enough highmem image pages to store the contents of all of\nthe saveable highmem pages, some of them will be stored in the \"normal\"\nmemory.  Next, we allocate as many free \"normal\" pages as needed to store\nthe (remaining) image data.  We use a memory bitmap to mark the allocated\nfree pages (ie.  highmem as well as \"normal\" image pages).\n\nNow, we use another memory bitmap to mark all of the saveable pages\n(highmem as well as \"normal\") and the contents of the saveable pages are\ncopied into the image pages.  Then, the second bitmap is used to save the\npfns corresponding to the saveable pages and the first one is used to save\ntheir data.\n\nDuring the resume phase the pfns of the pages that were saveable during the\nsuspend are loaded from the image and used to mark the \"unsafe\" page\nframes.  Next, we try to allocate as many free highmem page frames as to\nload all of the image data that had been in the highmem before the suspend\nand we allocate so many free \"normal\" page frames that the total number of\nallocated free pages (highmem and \"normal\") is equal to the size of the\nimage.  While doing this we have to make sure that there will be some extra\nfree \"normal\" and \"safe\" page frames for two lists of PBEs constructed\nlater.\n\nNow, the image data are loaded, if possible, into their \"original\" page\nframes.  The image data that cannot be written into their \"original\" page\nframes are loaded into \"safe\" page frames and their \"original\" kernel\nvirtual addresses, as well as the addresses of the \"safe\" pages containing\ntheir copies, are stored in one of two lists of PBEs.\n\nOne list of PBEs is for the copies of \"normal\" suspend pages (ie.  \"normal\"\npages that were saveable during the suspend) and it is used in the same way\nas previously (ie.  by the architecture-dependent parts of swsusp).  The\nother list of PBEs is for the copies of highmem suspend pages.  The pages\nin this list are restored (in a reversible way) right before the\narch-dependent code is called.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3aef83e0ef1ffb8ea3bea97be46821a45c952173",
      "tree": "f73878eb2ecce804c9eea6fbb13603907b3674b4",
      "parents": [
        "3fc6b34f4803b959c1e30c15247e2180cd529115"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Dec 06 20:34:10 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:27 2006 -0800"
      },
      "message": "[PATCH] swsusp: use block device offsets to identify swap locations\n\nMake swsusp use block device offsets instead of swap offsets to identify swap\nlocations and make it use the same code paths for writing as well as for\nreading data.\n\nThis allows us to use the same code for handling swap files and swap\npartitions and to simplify the code, eg.  by dropping rw_swap_page_sync().\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "915bae9ebe41e52d71ad8b06d50e4ab26189f964",
      "tree": "daf0c9a370d3a551c1bb5beea69a3a0cfecd9885",
      "parents": [
        "3592695c363c3f3119621bdcf5ed852d6b9d1a5c"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Dec 06 20:34:07 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:27 2006 -0800"
      },
      "message": "[PATCH] swsusp: use partition device and offset to identify swap areas\n\nThe Linux kernel handles swap files almost in the same way as it handles swap\npartitions and there are only two differences between these two types of swap\nareas:\n\n(1) swap files need not be contiguous,\n\n(2) the header of a swap file is not in the first block of the partition\n    that holds it.  From the swsusp\u0027s point of view (1) is not a problem,\n    because it is already taken care of by the swap-handling code, but (2) has\n    to be taken into consideration.\n\nIn principle the location of a swap file\u0027s header may be determined with the\nhelp of appropriate filesystem driver.  Unfortunately, however, it requires\nthe filesystem holding the swap file to be mounted, and if this filesystem is\njournaled, it cannot be mounted during a resume from disk.  For this reason we\nneed some other means by which swap areas can be identified.\n\nFor example, to identify a swap area we can use the partition that holds the\narea and the offset from the beginning of this partition at which the swap\nheader is located.\n\nThe following patch allows swsusp to identify swap areas this way.  It changes\nswap_type_of() so that it takes an additional argument representing an offset\nof the swap header within the partition represented by its first argument.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7cf9c2c76c1a17b32f2da85b50cd4fe468ed44b5",
      "tree": "c3ed3e92e21f19ef744c9ea6829f4ff8d06e9f14",
      "parents": [
        "36de6437866bbb1d37e2312ff4f95ee4ed6d2b61"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Dec 06 20:33:44 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:25 2006 -0800"
      },
      "message": "[PATCH] radix-tree: RCU lockless readside\n\nMake radix tree lookups safe to be performed without locks.  Readers are\nprotected against nodes being deleted by using RCU based freeing.  Readers\nare protected against new node insertion by using memory barriers to ensure\nthe node itself will be properly written before it is visible in the radix\ntree.\n\nEach radix tree node keeps a record of their height (above leaf nodes).\nThis height does not change after insertion -- when the radix tree is\nextended, higher nodes are only inserted in the top.  So a lookup can take\nthe pointer to what is *now* the root node, and traverse down it even if\nthe tree is concurrently extended and this node becomes a subtree of a new\nroot.\n\n\"Direct\" pointers (tree height of 0, where root-\u003ernode points directly to\nthe data item) are handled by using the low bit of the pointer to signal\nwhether rnode is a direct pointer or a pointer to a radix tree node.\n\nWhen a reader wants to traverse the next branch, they will take a copy of\nthe pointer.  This pointer will be either NULL (and the branch is empty) or\nnon-NULL (and will point to a valid node).\n\n[akpm@osdl.org: cleanups]\n[Lee.Schermerhorn@hp.com: bugfixes, comments, simplifications]\n[clameter@sgi.com: build fix]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "36de6437866bbb1d37e2312ff4f95ee4ed6d2b61",
      "tree": "5e77ff1af2ccaaeaba09d9aa0d9f10732207e865",
      "parents": [
        "33f2ef89f8e181486b63fdbdc97c6afa6ca9f34b"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Wed Dec 06 20:33:42 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:25 2006 -0800"
      },
      "message": "[PATCH] Save some bytes in struct mm_struct\n\nBefore:\n[acme@newtoy net-2.6.20]$ pahole --cacheline 32 kernel/sched.o mm_struct\n\n/* include2/asm/processor.h:542 */\nstruct mm_struct {\n        struct vm_area_struct *    mmap;                 /*     0     4 */\n        struct rb_root             mm_rb;                /*     4     4 */\n        struct vm_area_struct *    mmap_cache;           /*     8     4 */\n        long unsigned int          (*get_unmapped_area)(); /*    12     4 */\n        void                       (*unmap_area)();      /*    16     4 */\n        long unsigned int          mmap_base;            /*    20     4 */\n        long unsigned int          task_size;            /*    24     4 */\n        long unsigned int          cached_hole_size;     /*    28     4 */\n        /* ---------- cacheline 1 boundary ---------- */\n        long unsigned int          free_area_cache;      /*    32     4 */\n        pgd_t *                    pgd;                  /*    36     4 */\n        atomic_t                   mm_users;             /*    40     4 */\n        atomic_t                   mm_count;             /*    44     4 */\n        int                        map_count;            /*    48     4 */\n        struct rw_semaphore        mmap_sem;             /*    52    64 */\n        spinlock_t                 page_table_lock;      /*   116    40 */\n        struct list_head           mmlist;               /*   156     8 */\n        mm_counter_t               _file_rss;            /*   164     4 */\n        mm_counter_t               _anon_rss;            /*   168     4 */\n        long unsigned int          hiwater_rss;          /*   172     4 */\n        long unsigned int          hiwater_vm;           /*   176     4 */\n        long unsigned int          total_vm;             /*   180     4 */\n        long unsigned int          locked_vm;            /*   184     4 */\n        long unsigned int          shared_vm;            /*   188     4 */\n        /* ---------- cacheline 6 boundary ---------- */\n        long unsigned int          exec_vm;              /*   192     4 */\n        long unsigned int          stack_vm;             /*   196     4 */\n        long unsigned int          reserved_vm;          /*   200     4 */\n        long unsigned int          def_flags;            /*   204     4 */\n        long unsigned int          nr_ptes;              /*   208     4 */\n        long unsigned int          start_code;           /*   212     4 */\n        long unsigned int          end_code;             /*   216     4 */\n        long unsigned int          start_data;           /*   220     4 */\n        /* ---------- cacheline 7 boundary ---------- */\n        long unsigned int          end_data;             /*   224     4 */\n        long unsigned int          start_brk;            /*   228     4 */\n        long unsigned int          brk;                  /*   232     4 */\n        long unsigned int          start_stack;          /*   236     4 */\n        long unsigned int          arg_start;            /*   240     4 */\n        long unsigned int          arg_end;              /*   244     4 */\n        long unsigned int          env_start;            /*   248     4 */\n        long unsigned int          env_end;              /*   252     4 */\n        /* ---------- cacheline 8 boundary ---------- */\n        long unsigned int          saved_auxv[44];       /*   256   176 */\n        unsigned int               dumpable:2;           /*   432     4 */\n        cpumask_t                  cpu_vm_mask;          /*   436     4 */\n        mm_context_t               context;              /*   440    68 */\n        long unsigned int          swap_token_time;      /*   508     4 */\n        /* ---------- cacheline 16 boundary ---------- */\n        char                       recent_pagein;        /*   512     1 */\n\n        /* XXX 3 bytes hole, try to pack */\n\n        int                        core_waiters;         /*   516     4 */\n        struct completion *        core_startup_done;    /*   520     4 */\n        struct completion          core_done;            /*   524    52 */\n        rwlock_t                   ioctx_list_lock;      /*   576    36 */\n        struct kioctx *            ioctx_list;           /*   612     4 */\n}; /* size: 616, sum members: 613, holes: 1, sum holes: 3, cachelines: 20,\n      last cacheline: 8 bytes */\n\nAfter:\n\n[acme@newtoy net-2.6.20]$ pahole --cacheline 32 kernel/sched.o mm_struct\n/* include2/asm/processor.h:542 */\nstruct mm_struct {\n        struct vm_area_struct *    mmap;                 /*     0     4 */\n        struct rb_root             mm_rb;                /*     4     4 */\n        struct vm_area_struct *    mmap_cache;           /*     8     4 */\n        long unsigned int          (*get_unmapped_area)(); /*    12     4 */\n        void                       (*unmap_area)();      /*    16     4 */\n        long unsigned int          mmap_base;            /*    20     4 */\n        long unsigned int          task_size;            /*    24     4 */\n        long unsigned int          cached_hole_size;     /*    28     4 */\n        /* ---------- cacheline 1 boundary ---------- */\n        long unsigned int          free_area_cache;      /*    32     4 */\n        pgd_t *                    pgd;                  /*    36     4 */\n        atomic_t                   mm_users;             /*    40     4 */\n        atomic_t                   mm_count;             /*    44     4 */\n        int                        map_count;            /*    48     4 */\n        struct rw_semaphore        mmap_sem;             /*    52    64 */\n        spinlock_t                 page_table_lock;      /*   116    40 */\n        struct list_head           mmlist;               /*   156     8 */\n        mm_counter_t               _file_rss;            /*   164     4 */\n        mm_counter_t               _anon_rss;            /*   168     4 */\n        long unsigned int          hiwater_rss;          /*   172     4 */\n        long unsigned int          hiwater_vm;           /*   176     4 */\n        long unsigned int          total_vm;             /*   180     4 */\n        long unsigned int          locked_vm;            /*   184     4 */\n        long unsigned int          shared_vm;            /*   188     4 */\n        /* ---------- cacheline 6 boundary ---------- */\n        long unsigned int          exec_vm;              /*   192     4 */\n        long unsigned int          stack_vm;             /*   196     4 */\n        long unsigned int          reserved_vm;          /*   200     4 */\n        long unsigned int          def_flags;            /*   204     4 */\n        long unsigned int          nr_ptes;              /*   208     4 */\n        long unsigned int          start_code;           /*   212     4 */\n        long unsigned int          end_code;             /*   216     4 */\n        long unsigned int          start_data;           /*   220     4 */\n        /* ---------- cacheline 7 boundary ---------- */\n        long unsigned int          end_data;             /*   224     4 */\n        long unsigned int          start_brk;            /*   228     4 */\n        long unsigned int          brk;                  /*   232     4 */\n        long unsigned int          start_stack;          /*   236     4 */\n        long unsigned int          arg_start;            /*   240     4 */\n        long unsigned int          arg_end;              /*   244     4 */\n        long unsigned int          env_start;            /*   248     4 */\n        long unsigned int          env_end;              /*   252     4 */\n        /* ---------- cacheline 8 boundary ---------- */\n        long unsigned int          saved_auxv[44];       /*   256   176 */\n        cpumask_t                  cpu_vm_mask;          /*   432     4 */\n        mm_context_t               context;              /*   436    68 */\n        long unsigned int          swap_token_time;      /*   504     4 */\n        char                       recent_pagein;        /*   508     1 */\n        unsigned char              dumpable:2;           /*   509     1 */\n\n        /* XXX 2 bytes hole, try to pack */\n\n        int                        core_waiters;         /*   512     4 */\n        struct completion *        core_startup_done;    /*   516     4 */\n        struct completion          core_done;            /*   520    52 */\n        rwlock_t                   ioctx_list_lock;      /*   572    36 */\n        struct kioctx *            ioctx_list;           /*   608     4 */\n}; /* size: 612, sum members: 610, holes: 1, sum holes: 2, cachelines: 20,\n      last cacheline: 4 bytes */\n\n[acme@newtoy net-2.6.20]$ codiff -V /tmp/sched.o.before kernel/sched.o\n/pub/scm/linux/kernel/git/acme/net-2.6.20/kernel/sched.c:\n  struct mm_struct |   -4\n    dumpable:2;\n     from: unsigned int          /*   432(30)    4(2) */\n     to:   unsigned char         /*   509(6)     1(2) */\n\u003c SNIP other offset changes \u003e\n 1 struct changed\n[acme@newtoy net-2.6.20]$\n\nI\u0027m not aware of any problem about using 2 byte wide bitfields where\npreviously a 4 byte wide one was, holler if there is any, I wouldn\u0027t be\nsurprised, bitfields are things from hell.\n\nFor the curious, 432(30) means: at offset 432 from the struct start, at\noffset 30 in the bitfield (yeah, it comes backwards, hellish, huh?) ditto\nfor 509(6), while 4(2) and 1(2) means \"struct field size(bitfield size)\".\n\nNow we have a 2 bytes hole and are using only 4 bytes of the last 32\nbytes cacheline, any takers? :-)\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "33f2ef89f8e181486b63fdbdc97c6afa6ca9f34b",
      "tree": "b90eac24ff367bc628c44eaa51a9f0ea1b69d1a4",
      "parents": [
        "3c517a6132098ca37e122a2980fc64a9e798b0d7"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Wed Dec 06 20:33:32 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:25 2006 -0800"
      },
      "message": "[PATCH] mm: make compound page destructor handling explicit\n\nCurrently we we use the lru head link of the second page of a compound page\nto hold its destructor.  This was ok when it was purely an internal\nimplmentation detail.  However, hugetlbfs overrides this destructor\nviolating the layering.  Abstract this out as explicit calls, also\nintroduce a type for the callback function allowing them to be type\nchecked.  For each callback we pre-declare the function, causing a type\nerror on definition rather than on use elsewhere.\n\n[akpm@osdl.org: cleanups]\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1b1cec4bbc59feac89670d5d6d222a02545bac94",
      "tree": "5480d4f5e3bf9700d355adc02a90c9395fbcbd46",
      "parents": [
        "e18b890bb0881bbab6f4f1a6cd20d9c60d66b003"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Wed Dec 06 20:33:22 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:25 2006 -0800"
      },
      "message": "[PATCH] slab: deprecate kmem_cache_t\n\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e18b890bb0881bbab6f4f1a6cd20d9c60d66b003",
      "tree": "4828be07e1c24781c264b42c5a75bcd968223c3f",
      "parents": [
        "441e143e95f5aa1e04026cb0aa71c801ba53982f"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:33:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:25 2006 -0800"
      },
      "message": "[PATCH] slab: remove kmem_cache_t\n\nReplace all uses of kmem_cache_t with struct kmem_cache.\n\nThe patch was generated using the following script:\n\n\t#!/bin/sh\n\t#\n\t# Replace one string by another in all the kernel sources.\n\t#\n\n\tset -e\n\n\tfor file in `find * -name \"*.c\" -o -name \"*.h\"|xargs grep -l $1`; do\n\t\tquilt add $file\n\t\tsed -e \"1,\\$s/$1/$2/g\" $file \u003e/tmp/$$\n\t\tmv /tmp/$$ $file\n\t\tquilt refresh\n\tdone\n\nThe script was run like this\n\n\tsh replace kmem_cache_t \"struct kmem_cache\"\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "441e143e95f5aa1e04026cb0aa71c801ba53982f",
      "tree": "884855ea1fdaa65ebc885ffebc65ee3a26f8a78f",
      "parents": [
        "e94b1766097d53e6f3ccfb36c8baa562ffeda3fc"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:33:19 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:24 2006 -0800"
      },
      "message": "[PATCH] slab: remove SLAB_DMA\n\nSLAB_DMA is an alias of GFP_DMA. This is the last one so we\nremove the leftover comment too.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e94b1766097d53e6f3ccfb36c8baa562ffeda3fc",
      "tree": "93fa0a8ab84976d4e89c50768ca8b8878d642a0d",
      "parents": [
        "54e6ecb23951b195d02433a741c7f7cb0b796c78"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:33:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:24 2006 -0800"
      },
      "message": "[PATCH] slab: remove SLAB_KERNEL\n\nSLAB_KERNEL is an alias of GFP_KERNEL.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "54e6ecb23951b195d02433a741c7f7cb0b796c78",
      "tree": "c8885c49f37c8d383945b8af69d51597494ed62c",
      "parents": [
        "f7267c0c0721fd02ad3dc37c3d6dd24ccd81d4d6"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:33:16 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:24 2006 -0800"
      },
      "message": "[PATCH] slab: remove SLAB_ATOMIC\n\nSLAB_ATOMIC is an alias of GFP_ATOMIC\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f7267c0c0721fd02ad3dc37c3d6dd24ccd81d4d6",
      "tree": "4bbc467e881f9dce909de3d9d9d27bb068a8a3b4",
      "parents": [
        "e6b4f8da3a88457148038bc952043e99a7fdba64"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:33:15 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:24 2006 -0800"
      },
      "message": "[PATCH] slab: remove SLAB_USER\n\nSLAB_USER is an alias of GFP_USER\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e6b4f8da3a88457148038bc952043e99a7fdba64",
      "tree": "858c2a0e04b442395e7ecd0f60c8d2a3304b83e1",
      "parents": [
        "55acbda0965ca0a29b0ca276e7d17a55edc11d1b"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:33:14 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:23 2006 -0800"
      },
      "message": "[PATCH] slab: remove SLAB_NOFS\n\nSLAB_NOFS is an alias of GFP_NOFS.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "55acbda0965ca0a29b0ca276e7d17a55edc11d1b",
      "tree": "db2eb5d570999e3e04f24d1ad57f7544b58df395",
      "parents": [
        "a06d72c1dcbff015250df6ad9f0b1d18c02113bf"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:33:13 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:23 2006 -0800"
      },
      "message": "[PATCH] slab: remove SLAB_NOIO\n\nSLAB_NOIO is an alias of GFP_NOIO with a single instance of use.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a06d72c1dcbff015250df6ad9f0b1d18c02113bf",
      "tree": "e3284c3fa53817481c05a1cf8033f85ad6c6a26b",
      "parents": [
        "6e0eaa4b05cf53ca5caa702fd2760a5b3376be69"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:33:12 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:23 2006 -0800"
      },
      "message": "[PATCH] slab: remove SLAB_LEVEL_MASK\n\nSLAB_LEVEL_MASK is only used internally to the slab and is\nand alias of GFP_LEVEL_MASK.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6e0eaa4b05cf53ca5caa702fd2760a5b3376be69",
      "tree": "f79ade4f91bf4b5c9fd5ec9605ac925740b9a8a6",
      "parents": [
        "2d4d862f729f0cb1ad8027203aceff49dc9f63fa"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:33:10 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:23 2006 -0800"
      },
      "message": "[PATCH] slab: remove SLAB_NO_GROW\n\nIt is only used internally in the slab.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4af2bfc1202041006a0f01d0591a975f6c573f09",
      "tree": "6fb140a40083c793919a417cfa28b31c9f86c662",
      "parents": [
        "25ba77c141dbcd2602dd0171824d0d72aa023a01"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Wed Dec 06 20:33:04 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:23 2006 -0800"
      },
      "message": "[PATCH] silence unused pgdat warning from alloc_bootmem_node and friends\n\nx86 NUMA systems only define bootmem for node 0.  alloc_bootmem_node() and\nfriends therefore ignore the passed pgdat and use NODE_DATA(0) in all\ncases.  This leads to the following warnings as we are not using the passed\nparameter:\n\n  .../mm/page_alloc.c: In function \u0027zone_wait_table_init\u0027:\n  .../mm/page_alloc.c:2259: warning: unused variable \u0027pgdat\u0027\n\nOne option would be to define all variables used with these macros\n__attribute__ ((unused)), but this would leave us exposed should these\nbecome genuinely unused.\n\nThe key here is that we _are_ using the value, we ignore it but that is a\ndeliberate action.  This patch adds a nested local variable within the\nalloc_bootmem_node helper to which the pgdat parameter is assigned making\nit \u0027used\u0027.  The nested local is marked __attribute__ ((unused)) to silence\nthis same warning for it.\n\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "25ba77c141dbcd2602dd0171824d0d72aa023a01",
      "tree": "153eb9bc567f63d739dcaf8a3caf11c8f48b8379",
      "parents": [
        "bc4ba393c007248f76c05945abb7b7b892cdd1cc"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Wed Dec 06 20:33:03 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:23 2006 -0800"
      },
      "message": "[PATCH] numa node ids are int, page_to_nid and zone_to_nid should return int\n\nNUMA node ids are passed as either int or unsigned int almost exclusivly\npage_to_nid and zone_to_nid both return unsigned long.  This is a throw\nback to when page_to_nid was a #define and was thus exposing the real type\nof the page flags field.\n\nIn addition to fixing up the definitions of page_to_nid and zone_to_nid I\naudited the users of these functions identifying the following incorrect\nuses:\n\n1) mm/page_alloc.c show_node() -- printk dumping the node id,\n2) include/asm-ia64/pgalloc.h pgtable_quicklist_free() -- comparison\n   against numa_node_id() which returns an int from cpu_to_node(), and\n3) mm/mpolicy.c check_pte_range -- used as an index in node_isset which\n   uses bit_set which in generic code takes an int.\n\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ebe29738f3934ad6a93c8bd76e30aa5d797a269d",
      "tree": "bde287ec1b33aaeaa0941eeac6bdb677eec3feb3",
      "parents": [
        "b86c089b83b8ae2bc814db865057768a9ba787b5"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:32:59 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:23 2006 -0800"
      },
      "message": "[PATCH] Remove uses of kmem_cache_t from mm/* and include/linux/slab.h\n\nRemove all uses of kmem_cache_t (the most were left in slab.h).  The\ntypedef for kmem_cache_t is then only necessary for other kernel\nsubsystems.  Add a comment to that effect.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b86c089b83b8ae2bc814db865057768a9ba787b5",
      "tree": "f5a838ca841c6f655ad25e73a0295c357b904ee4",
      "parents": [
        "aa362a83e78d2e9320da588805cf2a0b53356bc3"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:32:57 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:23 2006 -0800"
      },
      "message": "[PATCH] Move names_cachep to linux/fs.h\n\nThe names_cachep is used for getname() and putname().  So lets put it into\nfs.h near those two definitions.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "aa362a83e78d2e9320da588805cf2a0b53356bc3",
      "tree": "74851124298557f468fe6549b6eed06b410f7ddf",
      "parents": [
        "8b7d91eb7f6a3e8f0caaa613937bda5ab7dc7dc2"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:32:54 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:23 2006 -0800"
      },
      "message": "[PATCH] Move fs_cachep to linux/fs_struct.h\n\nfs_cachep is only used in kernel/exit.c and in kernel/fork.c.\n\nIt is used to store fs_struct items so it should be placed in linux/fs_struct.h\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8b7d91eb7f6a3e8f0caaa613937bda5ab7dc7dc2",
      "tree": "8036dc7f0c05ec2712acfed92589bd41ed5766f9",
      "parents": [
        "5d6538fcf231faccb2ac42f92851d259d00e62f9"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:32:52 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:23 2006 -0800"
      },
      "message": "[PATCH] Move filep_cachep to include/file.h\n\nfilp_cachep is only used in fs/file_table.c and in fs/dcache.c where\nit is defined.\n\nMove it to related definitions in linux/file.h.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5d6538fcf231faccb2ac42f92851d259d00e62f9",
      "tree": "6ccf2d0755d32d5049d365a7f30c13240030585f",
      "parents": [
        "c43692e85f306667545b91194c748a6e46c1f8b4"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:32:50 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:22 2006 -0800"
      },
      "message": "[PATCH] Move files_cachep to include/file.h\n\nProper place is in file.h since files_cachep uses are rated to file I/O.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c43692e85f306667545b91194c748a6e46c1f8b4",
      "tree": "5a1a47c0ddeded4d4591befcd3176f50669cd322",
      "parents": [
        "298ec1e2ac85cecce3eddd167286359358c44d5d"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:32:48 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:22 2006 -0800"
      },
      "message": "[PATCH] Move vm_area_cachep to include/mm.h\n\nvm_area_cachep is used to store vm_area_structs. So move to mm.h.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "298ec1e2ac85cecce3eddd167286359358c44d5d",
      "tree": "36472ce09abe8bcb0dbdb56270abaf572594cb30",
      "parents": [
        "54cc211ce3fc73a9d21c6316886db0676beaca95"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:32:47 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:22 2006 -0800"
      },
      "message": "[PATCH] Move sighand_cachep to include/signal.h\n\nMove sighand_cachep definitioni to linux/signal.h\n\nThe sighand cache is only used in fs/exec.c and kernel/fork.c.  It is defined\nin kernel/fork.c but only used in fs/exec.c.\n\nThe sighand_cachep is related to signal processing.  So add the definition to\nsignal.h.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "54cc211ce3fc73a9d21c6316886db0676beaca95",
      "tree": "1b78720012a6f1b8764c2937791eb59b3add2ca0",
      "parents": [
        "e30500557eca09ddd340806ce44abf84d9115ab1"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:32:45 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:22 2006 -0800"
      },
      "message": "[PATCH] Remove bio_cachep from slab.h\n\nRemove bio_cachep from slab.h - it no longer exists.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b30973f877fea1a3fb84e05599890fcc082a88e5",
      "tree": "198f7c31d5945288c1195348ac4e521ba90d81d6",
      "parents": [
        "873481367edb18a7d0d7e5a285e6728c16bb44a9"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Dec 06 20:32:36 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:22 2006 -0800"
      },
      "message": "[PATCH] node-aware skb allocation\n\nNode-aware allocation of skbs for the receive path.\n\nDetails:\n\n  - __alloc_skb gets a new node argument and cals the node-aware\n    slab functions with it.\n  - netdev_alloc_skb passed the node number it gets from dev_to_node\n    to it, everyone else passes -1 (any node)\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\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": "873481367edb18a7d0d7e5a285e6728c16bb44a9",
      "tree": "dd97507a3c061addac715bb07bfd5c4991e08f80",
      "parents": [
        "8b98c1699eba23cfd2e8b366625c50ff5fd1415b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Dec 06 20:32:33 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:22 2006 -0800"
      },
      "message": "[PATCH] add numa node information to struct device\n\nFor node-aware skb allocations we need information about the node in struct\nnet_device or struct device.  Davem suggested to put it into struct device\nwhich this patch does.\n\nIn particular:\n\n - struct device gets a new int numa_node member if CONFIG_NUMA is set\n - there are two new helpers, dev_to_node and set_dev_node to\n   transparently deal with the non-numa case\n - for pci devices the node-info is set to the value we get from\n   pcibus_to_node.\n\nNote that for some architectures pcibus_to_node doesn\u0027t work yet at the time\nwe call it currently.  This is harmless and will just mean skb allocations\naren\u0027t node-local on this architectures until the implementation of\npcibus_to_node on these architectures have been updated (There are patches for\nx86 and x86_64 floating around)\n\n[akpm@osdl.org: cleanup]\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8b98c1699eba23cfd2e8b366625c50ff5fd1415b",
      "tree": "24462eaefeb4e2fa85e77d392a94a60316ad2349",
      "parents": [
        "881e4aabe4c6b3fce93674b67c6adc646fe2683b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Dec 06 20:32:30 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:22 2006 -0800"
      },
      "message": "[PATCH] leak tracking for kmalloc_node\n\nWe have variants of kmalloc and kmem_cache_alloc that leave leak tracking to\nthe caller.  This is used for subsystem-specific allocators like skb_alloc.\n\nTo make skb_alloc node-aware we need similar routines for the node-aware slab\nallocator, which this patch adds.\n\nNote that the code is rather ugly, but it mirrors the non-node-aware code 1:1:\n\n[akpm@osdl.org: add module export]\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.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": "a866374aecc90c7d90619727ccd851ac096b2fc7",
      "tree": "eabae0b36b5281dcef20563470c7f05549689b8c",
      "parents": [
        "6edaf68a87d17570790fd55f0c451a29ec1d6703"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Dec 06 20:32:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:21 2006 -0800"
      },
      "message": "[PATCH] mm: pagefault_{disable,enable}()\n\nIntroduce pagefault_{disable,enable}() and use these where previously we did\nmanual preempt increments/decrements to make the pagefault handler do the\natomic thing.\n\nCurrently they still rely on the increased preempt count, but do not rely on\nthe disabled preemption, this might go away in the future.\n\n(NOTE: the extra barrier() in pagefault_disable might fix some holes on\n       machines which have too many registers for their own good)\n\n[heiko.carstens@de.ibm.com: s390 fix]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "39dde65c9940c97fcd178a3d2b1c57ed8b7b68aa",
      "tree": "750818d68ac7381f80fec31491e1d1c78df4b9f6",
      "parents": [
        "e1dbeda60a7ea9e82a908d93c07308d104d50d79"
      ],
      "author": {
        "name": "Chen, Kenneth W",
        "email": "kenneth.w.chen@intel.com",
        "time": "Wed Dec 06 20:32:03 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:21 2006 -0800"
      },
      "message": "[PATCH] shared page table for hugetlb page\n\nFollowing up with the work on shared page table done by Dave McCracken.  This\nset of patch target shared page table for hugetlb memory only.\n\nThe shared page table is particular useful in the situation of large number of\nindependent processes sharing large shared memory segments.  In the normal\npage case, the amount of memory saved from process\u0027 page table is quite\nsignificant.  For hugetlb, the saving on page table memory is not the primary\nobjective (as hugetlb itself already cuts down page table overhead\nsignificantly), instead, the purpose of using shared page table on hugetlb is\nto allow faster TLB refill and smaller cache pollution upon TLB miss.\n\nWith PT sharing, pte entries are shared among hundreds of processes, the cache\nconsumption used by all the page table is smaller and in return, application\ngets much higher cache hit ratio.  One other effect is that cache hit ratio\nwith hardware page walker hitting on pte in cache will be higher and this\nhelps to reduce tlb miss latency.  These two effects contribute to higher\napplication performance.\n\nSigned-off-by: Ken Chen \u003ckenneth.w.chen@intel.com\u003e\nAcked-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Dave McCracken \u003cdmccr@us.ibm.com\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nCc: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\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": "cc102509074bba0316f2b5deebd7ef4447da295e",
      "tree": "44ac5fc0c0dd7a24e8925e680a03361f4722a5a6",
      "parents": [
        "7602bdf2fd14a40dd9b104e516fdc05e1bd17952"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Dec 06 20:32:00 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:21 2006 -0800"
      },
      "message": "[PATCH] mm: add arch_alloc_page\n\nAdd an arch_alloc_page to match arch_free_page.\n\nSigned-off-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": "7602bdf2fd14a40dd9b104e516fdc05e1bd17952",
      "tree": "5ca703b0a95f6f2e6d977c816532b9085f453974",
      "parents": [
        "098fe651f7e9d759d1117c78c1a642b9b3945922"
      ],
      "author": {
        "name": "Ashwin Chaugule",
        "email": "ashwin.chaugule@celunite.com",
        "time": "Wed Dec 06 20:31:57 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:21 2006 -0800"
      },
      "message": "[PATCH] new scheme to preempt swap token\n\nThe new swap token patches replace the current token traversal algo.  The old\nalgo had a crude timeout parameter that was used to handover the token from\none task to another.  This algo, transfers the token to the tasks that are in\nneed of the token.  The urgency for the token is based on the number of times\na task is required to swap-in pages.  Accordingly, the priority of a task is\nincremented if it has been badly affected due to swap-outs.  To ensure that\nthe token doesnt bounce around rapidly, the token holders are given a priority\nboost.  The priority of tasks is also decremented, if their rate of swap-in\u0027s\nkeeps reducing.  This way, the condition to check whether to pre-empt the swap\ntoken, is a matter of comparing two task\u0027s priority fields.\n\n[akpm@osdl.org: cleanups]\nSigned-off-by: Ashwin Chaugule \u003cashwin.chaugule@celunite.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7253f4ef04b1cd138baf2b29a95473743ac0a307",
      "tree": "5883e6773a3cdad31992539ba3ad989d2566a041",
      "parents": [
        "9276b1bc96a132f4068fdee00983c532f43d3a26"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Wed Dec 06 20:31:49 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:20 2006 -0800"
      },
      "message": "[PATCH] memory page_alloc zonelist caching reorder structure\n\nRearrange the struct members in the \u0027struct zonelist_cache\u0027 structure, so\nas to put the readonly (once initialized) z_to_n[] array first, where it\nwill come right after the zones[] array in struct zonelist.\n\nThis pretty much eliminates the chance that the two frequently written\nelements of \u0027struct zonelist_cache\u0027, the fullzones bitmap and last_full_zap\ntimes, will end up on the same cache line as the performance sensitive,\nfrequently read, never (after init) written zones[] array.\n\nKeeping frequently written data off frequently read cache lines is good for\nperformance.\n\nThanks to Rohit Seth for the suggestion.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Rohit Seth \u003crohitseth@google.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9276b1bc96a132f4068fdee00983c532f43d3a26",
      "tree": "04d64444cf6558632cfc7514b5437578b5e616af",
      "parents": [
        "89689ae7f95995723fbcd5c116c47933a3bb8b13"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Wed Dec 06 20:31:48 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:20 2006 -0800"
      },
      "message": "[PATCH] memory page_alloc zonelist caching speedup\n\nOptimize the critical zonelist scanning for free pages in the kernel memory\nallocator by caching the zones that were found to be full recently, and\nskipping them.\n\nRemembers the zones in a zonelist that were short of free memory in the\nlast second.  And it stashes a zone-to-node table in the zonelist struct,\nto optimize that conversion (minimize its cache footprint.)\n\nRecent changes:\n\n    This differs in a significant way from a similar patch that I\n    posted a week ago.  Now, instead of having a nodemask_t of\n    recently full nodes, I have a bitmask of recently full zones.\n    This solves a problem that last weeks patch had, which on\n    systems with multiple zones per node (such as DMA zone) would\n    take seeing any of these zones full as meaning that all zones\n    on that node were full.\n\n    Also I changed names - from \"zonelist faster\" to \"zonelist cache\",\n    as that seemed to better convey what we\u0027re doing here - caching\n    some of the key zonelist state (for faster access.)\n\n    See below for some performance benchmark results.  After all that\n    discussion with David on why I didn\u0027t need them, I went and got\n    some ;).  I wanted to verify that I had not hurt the normal case\n    of memory allocation noticeably.  At least for my one little\n    microbenchmark, I found (1) the normal case wasn\u0027t affected, and\n    (2) workloads that forced scanning across multiple nodes for\n    memory improved up to 10% fewer System CPU cycles and lower\n    elapsed clock time (\u0027sys\u0027 and \u0027real\u0027).  Good.  See details, below.\n\n    I didn\u0027t have the logic in get_page_from_freelist() for various\n    full nodes and zone reclaim failures correct.  That should be\n    fixed up now - notice the new goto labels zonelist_scan,\n    this_zone_full, and try_next_zone, in get_page_from_freelist().\n\nThere are two reasons I persued this alternative, over some earlier\nproposals that would have focused on optimizing the fake numa\nemulation case by caching the last useful zone:\n\n 1) Contrary to what I said before, we (SGI, on large ia64 sn2 systems)\n    have seen real customer loads where the cost to scan the zonelist\n    was a problem, due to many nodes being full of memory before\n    we got to a node we could use.  Or at least, I think we have.\n    This was related to me by another engineer, based on experiences\n    from some time past.  So this is not guaranteed.  Most likely, though.\n\n    The following approach should help such real numa systems just as\n    much as it helps fake numa systems, or any combination thereof.\n\n 2) The effort to distinguish fake from real numa, using node_distance,\n    so that we could cache a fake numa node and optimize choosing\n    it over equivalent distance fake nodes, while continuing to\n    properly scan all real nodes in distance order, was going to\n    require a nasty blob of zonelist and node distance munging.\n\n    The following approach has no new dependency on node distances or\n    zone sorting.\n\nSee comment in the patch below for a description of what it actually does.\n\nTechnical details of note (or controversy):\n\n - See the use of \"zlc_active\" and \"did_zlc_setup\" below, to delay\n   adding any work for this new mechanism until we\u0027ve looked at the\n   first zone in zonelist.  I figured the odds of the first zone\n   having the memory we needed were high enough that we should just\n   look there, first, then get fancy only if we need to keep looking.\n\n - Some odd hackery was needed to add items to struct zonelist, while\n   not tripping up the custom zonelists built by the mm/mempolicy.c\n   code for MPOL_BIND.  My usual wordy comments below explain this.\n   Search for \"MPOL_BIND\".\n\n - Some per-node data in the struct zonelist is now modified frequently,\n   with no locking.  Multiple CPU cores on a node could hit and mangle\n   this data.  The theory is that this is just performance hint data,\n   and the memory allocator will work just fine despite any such mangling.\n   The fields at risk are the struct \u0027zonelist_cache\u0027 fields \u0027fullzones\u0027\n   (a bitmask) and \u0027last_full_zap\u0027 (unsigned long jiffies).  It should\n   all be self correcting after at most a one second delay.\n\n - This still does a linear scan of the same lengths as before.  All\n   I\u0027ve optimized is making the scan faster, not algorithmically\n   shorter.  It is now able to scan a compact array of \u0027unsigned\n   short\u0027 in the case of many full nodes, so one cache line should\n   cover quite a few nodes, rather than each node hitting another\n   one or two new and distinct cache lines.\n\n - If both Andi and Nick don\u0027t find this too complicated, I will be\n   (pleasantly) flabbergasted.\n\n - I removed the comment claiming we only use one cachline\u0027s worth of\n   zonelist.  We seem, at least in the fake numa case, to have put the\n   lie to that claim.\n\n - I pay no attention to the various watermarks and such in this performance\n   hint.  A node could be marked full for one watermark, and then skipped\n   over when searching for a page using a different watermark.  I think\n   that\u0027s actually quite ok, as it will tend to slightly increase the\n   spreading of memory over other nodes, away from a memory stressed node.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nPerformance - some benchmark results and analysis:\n\nThis benchmark runs a memory hog program that uses multiple\nthreads to touch alot of memory as quickly as it can.\n\nMultiple runs were made, touching 12, 38, 64 or 90 GBytes out of\nthe total 96 GBytes on the system, and using 1, 19, 37, or 55\nthreads (on a 56 CPU system.)  System, user and real (elapsed)\ntimings were recorded for each run, shown in units of seconds,\nin the table below.\n\nTwo kernels were tested - 2.6.18-mm3 and the same kernel with\nthis zonelist caching patch added.  The table also shows the\npercentage improvement the zonelist caching sys time is over\n(lower than) the stock *-mm kernel.\n\n      number     2.6.18-mm3\t   zonelist-cache    delta (\u003c 0 good)\tpercent\n GBs    N  \t------------\t   --------------    ----------------\tsystime\n mem threads   sys user  real\t  sys  user  real     sys  user  real\t better\n  12\t 1     153   24   177\t  151\t 24   176      -2     0    -1\t   1%\n  12\t19\t99   22     8\t   99\t 22\t8\t0     0     0\t   0%\n  12\t37     111   25     6\t  112\t 25\t6\t1     0     0\t  -0%\n  12\t55     115   25     5\t  110\t 23\t5      -5    -2     0\t   4%\n  38\t 1     502   74   576\t  497\t 73   570      -5    -1    -6\t   0%\n  38\t19     426   78    48\t  373\t 76    39     -53    -2    -9\t  12%\n  38\t37     544   83    36\t  547\t 82    36\t3    -1     0\t  -0%\n  38\t55     501   77    23\t  511\t 80    24      10     3     1\t  -1%\n  64\t 1     917  125  1042\t  890\t124  1014     -27    -1   -28\t   2%\n  64\t19    1118  138   119\t  965\t141   103    -153     3   -16\t  13%\n  64\t37    1202  151    94\t 1136\t150    81     -66    -1   -13\t   5%\n  64\t55    1118  141    61\t 1072\t140    58     -46    -1    -3\t   4%\n  90\t 1    1342  177  1519\t 1275\t174  1450     -67    -3   -69\t   4%\n  90\t19    2392  199   192\t 2116\t189   176    -276   -10   -16\t  11%\n  90\t37    3313  238   175\t 2972\t225   145    -341   -13   -30\t  10%\n  90\t55    1948  210   104\t 1843\t213   100    -105     3    -4\t   5%\n\nNotes:\n 1) This test ran a memory hog program that started a specified number N of\n    threads, and had each thread allocate and touch 1/N\u0027th of\n    the total memory to be used in the test run in a single loop,\n    writing a constant word to memory, one store every 4096 bytes.\n    Watching this test during some earlier trial runs, I would see\n    each of these threads sit down on one CPU and stay there, for\n    the remainder of the pass, a different CPU for each thread.\n\n 2) The \u0027real\u0027 column is not comparable to the \u0027sys\u0027 or \u0027user\u0027 columns.\n    The \u0027real\u0027 column is seconds wall clock time elapsed, from beginning\n    to end of that test pass.  The \u0027sys\u0027 and \u0027user\u0027 columns are total\n    CPU seconds spent on that test pass.  For a 19 thread test run,\n    for example, the sum of \u0027sys\u0027 and \u0027user\u0027 could be up to 19 times the\n    number of \u0027real\u0027 elapsed wall clock seconds.\n\n 3) Tests were run on a fresh, single-user boot, to minimize the amount\n    of memory already in use at the start of the test, and to minimize\n    the amount of background activity that might interfere.\n\n 4) Tests were done on a 56 CPU, 28 Node system with 96 GBytes of RAM.\n\n 5) Notice that the \u0027real\u0027 time gets large for the single thread runs, even\n    though the measured \u0027sys\u0027 and \u0027user\u0027 times are modest.  I\u0027m not sure what\n    that means - probably something to do with it being slow for one thread to\n    be accessing memory along ways away.  Perhaps the fake numa system, running\n    ostensibly the same workload, would not show this substantial degradation\n    of \u0027real\u0027 time for one thread on many nodes -- lets hope not.\n\n 6) The high thread count passes (one thread per CPU - on 55 of 56 CPUs)\n    ran quite efficiently, as one might expect.  Each pair of threads needed\n    to allocate and touch the memory on the node the two threads shared, a\n    pleasantly parallizable workload.\n\n 7) The intermediate thread count passes, when asking for alot of memory forcing\n    them to go to a few neighboring nodes, improved the most with this zonelist\n    caching patch.\n\nConclusions:\n * This zonelist cache patch probably makes little difference one way or the\n   other for most workloads on real numa hardware, if those workloads avoid\n   heavy off node allocations.\n * For memory intensive workloads requiring substantial off-node allocations\n   on real numa hardware, this patch improves both kernel and elapsed timings\n   up to ten per-cent.\n * For fake numa systems, I\u0027m optimistic, but will have to leave that up to\n   Rohit Seth to actually test (once I get him a 2.6.18 backport.)\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Rohit Seth \u003crohitseth@google.com\u003e\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nCc: David Rientjes \u003crientjes@cs.washington.edu\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "89689ae7f95995723fbcd5c116c47933a3bb8b13",
      "tree": "4d73ff59b557fa1a84c6064406ff101c76ff8adc",
      "parents": [
        "c0a499c2c42992cff097b38be29d2ba60d2fd99a"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:31:45 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:20 2006 -0800"
      },
      "message": "[PATCH] Get rid of zone_table[]\n\nThe zone table is mostly not needed.  If we have a node in the page flags\nthen we can get to the zone via NODE_DATA() which is much more likely to be\nalready in the cpu cache.\n\nIn case of SMP and UP NODE_DATA() is a constant pointer which allows us to\naccess an exact replica of zonetable in the node_zones field.  In all of\nthe above cases there will be no need at all for the zone table.\n\nThe only remaining case is if in a NUMA system the node numbers do not fit\ninto the page flags.  In that case we make sparse generate a table that\nmaps sections to nodes and use that table to to figure out the node number.\n This table is sized to fit in a single cache line for the known 32 bit\nNUMA platform which makes it very likely that the information can be\nobtained without a cache miss.\n\nFor sparsemem the zone table seems to be have been fairly large based on\nthe maximum possible number of sections and the number of zones per node.\nThere is some memory saving by removing zone_table.  The main benefit is to\nreduce the cache foootprint of the VM from the frequent lookups of zones.\nPlus it simplifies the page allocator.\n\n[akpm@osdl.org: build fix]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "676dcb8bc2ec78d80091037773598d6ec8c673d6",
      "tree": "70a82f63dcda34f8907ffd9e92898e8a8a5fef87",
      "parents": [
        "620034c84d1d939717bdfbe02c51a3fee43541c3"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Wed Dec 06 20:31:30 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:20 2006 -0800"
      },
      "message": "[PATCH] add bottom_half.h\n\nWith CONFIG_SMP\u003dn:\n\n  drivers/input/ff-memless.c:384: warning: implicit declaration of function \u0027local_bh_disable\u0027\n  drivers/input/ff-memless.c:393: warning: implicit declaration of function \u0027local_bh_enable\u0027\n\nReally linux/spinlock.h should include linux/interrupt.h.  But interrupt.h\nincludes sched.h which will need spinlock.h.\n\nSo the patch breaks the _bh declarations out into a separate header and\nincludes it in both interrupt.h and spinlock.h.\n\nCc: \"Randy.Dunlap\" \u003crdunlap@xenotime.net\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: \u003cstable@kernel.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3f5e573a08a369bd10d2f89b63a2d68843f64a6b",
      "tree": "069a5636974c783adc6251f71d71cd2b0aa49cc9",
      "parents": [
        "9232d5876e83921414de65d82edd1098258f6680",
        "2cafe978462bc4016392aa330bf501a674679a86"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 06 16:17:37 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 06 16:17:37 2006 -0800"
      },
      "message": "Merge branch \u0027upstream\u0027 of git://ftp.linux-mips.org/pub/scm/upstream-linus\n\n* \u0027upstream\u0027 of git://ftp.linux-mips.org/pub/scm/upstream-linus:\n  [MIPS] Import updates from i386\u0027s i8259.c\n  [MIPS] *-berr: Header inclusions for DEC bus error handlers\n  [MIPS] Compile __do_IRQ() when really needed\n  [MIPS] genirq: use name instead of typename\n  [MIPS] Do not use handle_level_irq for ioasic_dma_irq_type.\n  [MIPS] pte_offset(dir,addr): parenthesis fix\n"
    },
    {
      "commit": "f9e9dcb38f5106fa8cdac04a9e967d5487f1cd20",
      "tree": "8d1cbf17b9b54eacde5a7bf7adf4d5ba6cb119dc",
      "parents": [
        "16afea0255cf6963eb924d4334cdb5acb9074581"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 06 14:42:57 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 06 14:42:57 2006 -0800"
      },
      "message": "x86[-64]:Remove \u0027volatile\u0027 from atomic_t\n\nAny code that relies on the volatile would be a bug waiting to happen\nanyway.\n\nDon\u0027t encourage people to think that putting \u0027volatile\u0027 on data\nstructures somehow fixes problems.  We should always use proper locking\n(and other serialization) techniques.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "16afea0255cf6963eb924d4334cdb5acb9074581",
      "tree": "c86f8130cd07e441b81df1d3489de3d1e32838bb",
      "parents": [
        "3e577a80ea85e2557831fd44064f809646f260b4"
      ],
      "author": {
        "name": "Art Haas",
        "email": "ahaas@airmail.net",
        "time": "Wed Dec 06 14:45:53 2006 -0600"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 06 14:39:53 2006 -0800"
      },
      "message": "[PATCH] Remove \u0027volatile\u0027 from spinlock_types\n\nThis is a resubmission of patches originally created by Ingo Molnar.\nThe link below is the initial (?) posting of the patch.\n\n  http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d115217423929806\u0026w\u003d2\n\nRemove \u0027volatile\u0027 from spinlock_types as it causes GCC to generate bad\ncode (see link) and locking should be used on kernel data.\n\nSigned-off-by: Art Haas \u003cahaas@airmail.net\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2cafe978462bc4016392aa330bf501a674679a86",
      "tree": "f74ab335a5e42d6bd6f6cb8ac3c8566b745542c7",
      "parents": [
        "49afb1f67b42c4240fef9d2d8b76c317c56a189d"
      ],
      "author": {
        "name": "Atsushi Nemoto",
        "email": "anemo@mba.ocn.ne.jp",
        "time": "Thu Dec 07 02:04:17 2006 +0900"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Wed Dec 06 20:16:09 2006 +0000"
      },
      "message": "[MIPS] Import updates from i386\u0027s i8259.c\n\nImport many updates from i386\u0027s i8259.c, especially genirq transitions.\n\nSigned-off-by: Atsushi Nemoto \u003canemo@mba.ocn.ne.jp\u003e\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "5b70a31708c958cb259e9c6cbecf7190521c856e",
      "tree": "3f635bb2fa64843b4749405d1e67c7878e41fc72",
      "parents": [
        "ec0bf39a471bf6fcd01def2bd677128cea940b73"
      ],
      "author": {
        "name": "Franck Bui-Huu",
        "email": "fbuihuu@gmail.com",
        "time": "Tue Dec 05 10:39:56 2006 +0100"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Wed Dec 06 20:16:08 2006 +0000"
      },
      "message": "[MIPS] pte_offset(dir,addr): parenthesis fix\n\nThis patch adds missing parenthesis around \u0027dir\u0027 argument in pte_offset()\nmacro definition.\n\nIt also removes an extra space in the definition of pte_offset_kernel()\nmacro.\n\nSigned-off-by: Franck Bui-Huu \u003cfbuihuu@gmail.com\u003e\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "dd6a7c19e4630f635467246a81b8e0cc818c05e6",
      "tree": "8fc93cdef4070183cbd3fa06019c84728380b389",
      "parents": [
        "dd8856bda5f1308beb113281b248683992998a9e",
        "ea0f8feaa041f3ccec3d6b8ee51325b177daef06"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 06 08:10:55 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 06 08:10:55 2006 -0800"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6\n\n* master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6: (43 commits)\n  sh: sh775x/titan fixes for irq header changes.\n  sh: update r7780rp defconfig.\n  sh: compile fixes for header cleanup.\n  sh: Fixup pte_mkhuge() build failure.\n  sh: set KBUILD_IMAGE to something sensible.\n  sh: show held locks in stack trace with lockdep.\n  sh: platform_pata support for R7780RP\n  sh: stacktrace/lockdep/irqflags tracing support.\n  sh: Fixup movli.l/movco.l atomic ops for gcc4.\n  sh: dyntick infrastructure.\n  sh: Clock framework tidying.\n  sh: Turn off IRQs around get_timer_offset() calls.\n  sh: Get the PGD right in oops case with 64-bit PTEs.\n  sh: Fix store queue bitmap end.\n  sh: More flexible + SH7780 earlyprintk SCIF support.\n  sh: Fixup various PAGE_SIZE \u003d\u003d 4096 assumptions.\n  sh: Fixup 4K irq stacks.\n  sh: dma-api channel capability extensions.\n  sh: Drop name overload in dma-sh.\n  sh: Make dma-isa depend on ISA_DMA_API.\n  ...\n"
    },
    {
      "commit": "dd8856bda5f1308beb113281b248683992998a9e",
      "tree": "5dc35290cdbca32cbdecd93a76fa5b29075ac18c",
      "parents": [
        "f81cff0d4067e41fd7383d9c013cc82da7c169d2",
        "06328b4f7919e9d2169d45cadc5a37b828a78eda"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 06 08:01:37 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 06 08:01:37 2006 -0800"
      },
      "message": "Merge git://git.infradead.org/users/dhowells/workq-2.6\n\n* git://git.infradead.org/users/dhowells/workq-2.6:\n  Actually update the fixed up compile failures.\n  WorkQueue: Fix up arch-specific work items where possible\n  WorkStruct: make allyesconfig\n  WorkStruct: Pass the work_struct pointer instead of context data\n  WorkStruct: Merge the pending bit into the wq_data pointer\n  WorkStruct: Typedef the work function prototype\n  WorkStruct: Separate delayable and non-delayable events.\n"
    },
    {
      "commit": "3363c9b0ed8f6b5a241d63018cad242ae458cdf9",
      "tree": "b29ff9517ebbc2409096fadbc7b158657778c630",
      "parents": [
        "a8b8d57c25eb61a04431324e1a41109925290512"
      ],
      "author": {
        "name": "Gavin Lambert",
        "email": "gavinl@compacsort.com",
        "time": "Wed Dec 06 11:57:53 2006 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 06 07:41:26 2006 -0800"
      },
      "message": "[PATCH] m68knommu: remove FP conditionals in ucontext struct\n\nThe first patch is to the 2.6 kernel include file (for m68knommu), to get\nrid of the conditional definitions, otherwise the structures have different\nsizes depending on whether there\u0027s an FPU or not.\n\nSigned-off-by: Greg Ungerer \u003cgerg@uclinux.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dd93e857fca0f6dedb8b0ffe61bf5096029963bb",
      "tree": "8c5ecdf83282374359ba2ace9c20f0088d941a0e",
      "parents": [
        "5340be59093d59826f4477a5f9991c762e4417e8"
      ],
      "author": {
        "name": "Greg Ungerer",
        "email": "gerg@snapgear.com",
        "time": "Wed Dec 06 11:36:13 2006 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 06 07:41:26 2006 -0800"
      },
      "message": "[PATCH] m68knommu: implement irq_canonicalize()\n\nAdd a null definition for irq_canonicalize(). It is used in the gerneric\nserial subsystem code, can\u0027t compile without it.\n\nSigned-off-by: Greg Ungerer \u003cgerg@uclinux.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5340be59093d59826f4477a5f9991c762e4417e8",
      "tree": "cf6428281d7e34d265e465f0f05ea4ee7fa7d880",
      "parents": [
        "ec0bf39a471bf6fcd01def2bd677128cea940b73"
      ],
      "author": {
        "name": "Greg Ungerer",
        "email": "gerg@snapgear.com",
        "time": "Wed Dec 06 11:35:16 2006 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 06 07:41:26 2006 -0800"
      },
      "message": "[PATCH] m68knommu: create rtc.h\n\nThis adds support for RTCs (through genrtc) for M68KNOMMU.\n\nBoard-specific code will have to link the appropriate RTC driver to the\nmach_hwclk callback, at minimum.\n\nSigned-off-by: Gavin Lambert \u003cgavinl@compacsort.com\u003e\nSigned-off-by: Greg Ungerer \u003cgerg@uclinux.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "06328b4f7919e9d2169d45cadc5a37b828a78eda",
      "tree": "2c048aad57f0f9cf17bddfec864e57348b1fe3b8",
      "parents": [
        "4796b71fbb907ce6b8a9acf1852d3646a80b4576"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Dec 06 15:02:26 2006 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@warthog.cambridge.redhat.com",
        "time": "Wed Dec 06 15:02:26 2006 +0000"
      },
      "message": "Actually update the fixed up compile failures.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "4796b71fbb907ce6b8a9acf1852d3646a80b4576",
      "tree": "6263f165446c581efdbb760205c1f85378fe6259",
      "parents": [
        "6d5aefb8eaa38e44b5b8cf60c812aceafc02d924",
        "ec0bf39a471bf6fcd01def2bd677128cea940b73"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Dec 06 15:01:18 2006 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@warthog.cambridge.redhat.com",
        "time": "Wed Dec 06 15:01:18 2006 +0000"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6\n\nConflicts:\n\n\tdrivers/pcmcia/ds.c\n\nFix up merge failures with Linus\u0027s head and fix new compile failures.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "ea0f8feaa041f3ccec3d6b8ee51325b177daef06",
      "tree": "261c7d75e5caccbaface63370bae029ecd81b98a",
      "parents": [
        "fe9687dec0400c6de7187ab5efa91facd958ca84"
      ],
      "author": {
        "name": "Jamie Lenehan",
        "email": "lenehan@twibble.org",
        "time": "Wed Dec 06 12:05:02 2006 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Dec 06 12:05:02 2006 +0900"
      },
      "message": "sh: sh775x/titan fixes for irq header changes.\n\nThe following moves the creation of IPR interupts into setup-7750.c\nand updates a few other things to make it all work after the \"Drop\nCPU subtype IRQ headers\" commit. It boots and runs fine on my titan\nboard.\n\n - adds an ipr_idx to the ipr_data and uses a function in the subtype\n   code to calculate the address of the IPR registers\n\n - adds a function to enable individual interrupt mode for externals\n   in the subtype code and calls that from the titan board code\n   instead of doing it directly.\n\n - I changed the shift in the ipr_data to be the actual # of bits to\n   shift, instead of the numnber / 4 - made it easier to match with\n   the manual.\n\nSigned-off-by: Jamie Lenehan \u003clenehan@twibble.org\u003e\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "5b67954e804465a4658dd4da8d52b87a8d1ea00c",
      "tree": "ecaf439834f2e6453c090700f051cd7952a6043a",
      "parents": [
        "f36af73304555849985b1fb5c0821c1bfab3a5a0"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Dec 06 11:20:53 2006 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Dec 06 11:20:53 2006 +0900"
      },
      "message": "sh: Fixup pte_mkhuge() build failure.\n\nWhen hugetlbpage support isn\u0027t enabled, this can be bogus.\nWrap it back in _PAGE_FLAGS_HARD to avoid changes to the\nbase PTE when not aiming for larger sizes.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "afbfb52e47273a440df33274452c603e8c332de2",
      "tree": "041dc70061a67e787b362959298e093830b4b4d7",
      "parents": [
        "c03c69610bfa728805deceeb624ee4268c722a5a"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Mon Dec 04 18:17:28 2006 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Dec 06 10:45:40 2006 +0900"
      },
      "message": "sh: stacktrace/lockdep/irqflags tracing support.\n\nWire up all of the essentials for lockdep..\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "c03c69610bfa728805deceeb624ee4268c722a5a",
      "tree": "07085eab7196c1e7219473d5a164a0569bce9611",
      "parents": [
        "bd156147eb63ae525e0ac67868e41a808f03c532"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Dec 01 14:32:54 2006 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Dec 06 10:45:40 2006 +0900"
      },
      "message": "sh: Fixup movli.l/movco.l atomic ops for gcc4.\n\ngcc4 gets a bit pissy about the outputs:\n\ninclude/asm/atomic.h: In function \u0027atomic_add\u0027:\ninclude/asm/atomic.h:37: error: invalid lvalue in asm statement\ninclude/asm/atomic.h:30: error: invalid lvalue in asm output 1\n...\n\nthis ended up being a thinko anyways, so just fix it up.\n\nVerified for proper behaviour with the older toolchains, too.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "bd156147eb63ae525e0ac67868e41a808f03c532",
      "tree": "8774cf4f3297c94c10583f6331b5b17e0322f0db",
      "parents": [
        "1d118562c2067a42d0e8f70671a4ce27d7c6ffee"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Dec 01 13:23:47 2006 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Dec 06 10:45:40 2006 +0900"
      },
      "message": "sh: dyntick infrastructure.\n\nThis adds basic NO_IDLE_HZ support to the SH timer API so timers\nare able to wire it up. Taken from the ARM version, as it fit in\nto our API with very few changes needed.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "1d118562c2067a42d0e8f70671a4ce27d7c6ffee",
      "tree": "fa59028397143d7fa94d86785bee8443efe30798",
      "parents": [
        "e74b56800e78a10bc09b56a87831876a1d9d09ae"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Dec 01 13:15:14 2006 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Dec 06 10:45:40 2006 +0900"
      },
      "message": "sh: Clock framework tidying.\n\nThis syncs up the SH clock framework with the linux/clk.h API,\nfor which there were only some minor changes required, namely\nthe clk_get() dev_id and subsequent callsites.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "510c72ad2dd4e05e6908755f51ac89482c6eb987",
      "tree": "fa2e9e9a674e38dd523d937329627560f0bd6b64",
      "parents": [
        "1dc41e58a553e612e3d0349bb60eef08f9462bde"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Mon Nov 27 12:06:26 2006 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Dec 06 10:45:39 2006 +0900"
      },
      "message": "sh: Fixup various PAGE_SIZE \u003d\u003d 4096 assumptions.\n\nThere were a number of places that made evil PAGE_SIZE \u003d\u003d 4k\nassumptions that ended up breaking when trying to play with\n8k and 64k page sizes, this fixes those up.\n\nThe most significant change is the way we load THREAD_SIZE,\npreviously this was done via:\n\n\tmov\t#(THREAD_SIZE \u003e\u003e 8), reg\n\tshll8\treg\n\nto avoid a memory access and allow the immediate load. With\na 64k PAGE_SIZE, we\u0027re out of range for the immediate load\nsize without resorting to special instructions available in\nlater ISAs (movi20s and so on). The \"workaround\" for this is\nto bump up the shift to 10 and insert a shll2, which gives a\nbit more flexibility while still being much cheaper than a\nmemory access.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "db9b99d461ddbbaa43c1e3581b1677b82c960948",
      "tree": "a4bb8ff3f8339f3389e4b367bd1c1ecd7caab752",
      "parents": [
        "e803aaf63a18b26668fbfbfd41c65527bcc10532"
      ],
      "author": {
        "name": "Mark Glaisher",
        "email": "mark.glaisher@st.com",
        "time": "Fri Nov 24 15:13:52 2006 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Dec 06 10:45:39 2006 +0900"
      },
      "message": "sh: dma-api channel capability extensions.\n\nThis extends the SH DMA API for allowing handling of DMA\nchannels based off of their respective capabilities.\n\nA couple of functions are added to the existing API,\nthe core bits are register_chan_caps() for registering\nchannel capabilities, and request_dma_bycap() for fetching\na channel dynamically based off of a capability set.\n\nSigned-off-by: Mark Glaisher \u003cmark.glaisher@st.com\u003e\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "c9f0b1c1410e9e637b819c5050fc8c1f1971e178",
      "tree": "a7f675bcb2a282c0cb5b258b49514c73257eba8d",
      "parents": [
        "9b3a53ab76771e3669e50086c131e1574fe25847"
      ],
      "author": {
        "name": "Stuart Menefy",
        "email": "stuart.menefy@st.com",
        "time": "Fri Nov 24 12:53:02 2006 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Dec 06 10:45:38 2006 +0900"
      },
      "message": "sh: KSTK_EIP/KSTK_ESP consistency.\n\nTwo of the fields in /proc/[number]/stat are documented in\nproc(5) as:\n\n      kstkesp %lu\n\t     The current value of esp (stack pointer), as\n\t     found in the kernel stack page for the process.\n\n      kstkeip %lu\n\t     The current EIP (instruction pointer).\n\nThe SH currently prints the the last SP and PC of the process\ninside the kernel, while most other archs use the last user\nspace values.\n\nThis patch modifes the SH to display the user space values.\n\nSigned-off-by: Stuart Menefy \u003cstuart.menefy@st.com\u003e\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "9b3a53ab76771e3669e50086c131e1574fe25847",
      "tree": "07dab1cd3972c7b82ddd5b7ad1e28628d7756dbb",
      "parents": [
        "9daa0c257d6c200b58092e0bfc32b77c4618a8af"
      ],
      "author": {
        "name": "Stuart Menefy",
        "email": "stuart.menefy@st.com",
        "time": "Fri Nov 24 11:42:24 2006 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Dec 06 10:45:38 2006 +0900"
      },
      "message": "sh: TLB miss fast-path optimizations.\n\nHandle simple TLB miss faults which can be resolved completely\nfrom the page table in assembler.\n\nSigned-off-by: Stuart Menefy \u003cstuart.menefy@st.com\u003e\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "9f5e8eee5cfe1328660c71812d87c2a67bda389f",
      "tree": "b016c812709e4cc33496caac213a1315ca0d9e39",
      "parents": [
        "99a596f93be10001c50894bcab69e458a49a3b8c"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Nov 24 11:22:57 2006 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Dec 06 10:45:38 2006 +0900"
      },
      "message": "sh: generic push-switch framework.\n\nThis adds support for a generic push switch framework. Adaptable for\nvarious switches, including GPIO switches and the push switches commonly\nfound on Renesas debug boards.\n\nThis allows switch states to be trivially reported through sysfs.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "99a596f93be10001c50894bcab69e458a49a3b8c",
      "tree": "16faf593cc3f7a2c39f3079f0f64f410e530e1c4",
      "parents": [
        "6e4662ff49c6b94e16a47bfddb920576963b5a20"
      ],
      "author": {
        "name": "Stuart Menefy",
        "email": "stuart.menefy@st.com",
        "time": "Tue Nov 21 15:38:05 2006 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Dec 06 10:45:38 2006 +0900"
      },
      "message": "sh: pmd rework.\n\nRemove extra bits from the pmd structure and store a kernel logical\naddress rather than a physical address. This allows it to be directly\ndereferenced. Another piece of wierdness inherited from x86.\n\nSigned-off-by: Stuart Menefy \u003cstuart.menefy@st.com\u003e\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "6e4662ff49c6b94e16a47bfddb920576963b5a20",
      "tree": "b53bcf136cc8df9e09f63f06321cad3622694c70",
      "parents": [
        "b5a1bcbee434b843c8850a968d9a6c7541f1be9d"
      ],
      "author": {
        "name": "Stuart Menefy",
        "email": "stuart.menefy@st.com",
        "time": "Tue Nov 21 13:53:44 2006 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Dec 06 10:45:38 2006 +0900"
      },
      "message": "sh: Use MMU.TTB register as pointer to current pgd.\n\nAdd TTB accessor functions and give it a sensible default\nvalue. We will use this later for optimizing the fault\npath.\n\nSigned-off-by: Stuart Menefy \u003cstuart.menefy@st.com\u003e\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "b5a1bcbee434b843c8850a968d9a6c7541f1be9d",
      "tree": "2745f5efa2b4d6dfe18f4f186738612f0e77f79c",
      "parents": [
        "f0bc814cfbc212683c882e58b3d1afec6b3e3aa3"
      ],
      "author": {
        "name": "Stuart Menefy",
        "email": "stuart.menefy@st.com",
        "time": "Tue Nov 21 13:34:04 2006 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Dec 06 10:45:38 2006 +0900"
      },
      "message": "sh: Set up correct siginfo structures for page faults.\n\nRemove the previous saving of fault codes into the thread_struct\nas they are never used, and appeared to be inherited from x86.\n\nSigned-off-by: Stuart Menefy \u003cstuart.menefy@st.com\u003e\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "21440cf04a64cd1b1209c12a6e1a3afba2a28709",
      "tree": "9af7a89c4c711b8433b3b1e23e2ba0c95f82fbf7",
      "parents": [
        "b552c7e8bceae8a04ae79ecee6fa369c1ba4f8e4"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Mon Nov 20 14:30:26 2006 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Dec 06 10:45:37 2006 +0900"
      },
      "message": "sh: Preliminary support for SH-X2 MMU.\n\nThis adds some preliminary support for the SH-X2 MMU, used by\nnewer SH-4A parts (particularly SH7785).\n\nThis MMU implements a \u0027compat\u0027 mode with SH-X MMUs and an\n\u0027extended\u0027 mode for SH-X2 extended features. Extended features\ninclude additional page sizes (8kB, 4MB, 64MB), as well as the\naddition of page execute permissions.\n\nThe extended mode attributes are placed in a second data array,\nwhich requires us to switch to 64-bit PTEs when in X2 mode.\n\nWith the addition of the exec perms, we also overhaul the mmap\nprots somewhat, now that it\u0027s possible to handle them more\nintelligently.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "b552c7e8bceae8a04ae79ecee6fa369c1ba4f8e4",
      "tree": "fbc4983bd9cda6a466c1823256296c89ed20b104",
      "parents": [
        "9a7ef6d59f9d4780ff5bc9c4d05266b52dcb9211"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Mon Nov 20 14:14:29 2006 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Dec 06 10:45:37 2006 +0900"
      },
      "message": "sh: Hook SH7785 in to the build system.\n\nSimple 7785 placeholders to start hooking up other bits of code.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "9a7ef6d59f9d4780ff5bc9c4d05266b52dcb9211",
      "tree": "47094da0cd858abb54607b139c41686d293b130f",
      "parents": [
        "417528a2e35f46bc42721de5c4efd33a0eba019d"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Mon Nov 20 13:55:34 2006 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Dec 06 10:45:37 2006 +0900"
      },
      "message": "sh: Drop CPU subtype IRQ headers.\n\nThis drops the various IRQ headers that were floating around\nand primarily providing hardcoded IRQ definitions for the\nvarious CPU subtypes. This quickly got to be an unmaintainable\nmess, made even more evident by the subtle breakage introduced\nby the SH-2 and SH-2A changes.\n\nNow that subtypes are able to register IRQ maps directly, just\nrip all of the headers out.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "710ee0cc45d095f7697821b330a3f8280205c2be",
      "tree": "8bce794be73a6961d118d485c097232628812e94",
      "parents": [
        "f36af3fd377081d3ac2ff6b63a60f8db8b3bf531"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Sun Nov 05 16:48:42 2006 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Dec 06 10:45:37 2006 +0900"
      },
      "message": "sh: SE7206 build fixes.\n\nA number of API changes happened underneath the 7206 patches, update\nfor everything that broke.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "b229632abd451ab2c797010b9788e48c9314db4f",
      "tree": "be097331d66985376057ff3ffbab742d60ac55ed",
      "parents": [
        "de39840646a223ae13a346048c280b7c871bf56e"
      ],
      "author": {
        "name": "Yoshinori Sato",
        "email": "ysato@users.sourceforge.jp",
        "time": "Sun Nov 05 16:18:08 2006 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Dec 06 10:45:36 2006 +0900"
      },
      "message": "sh: Add SH-2A platform headers.\n\nMostly SH-2 wrappers..\n\nSigned-off-by: Yoshinori Sato \u003cysato@users.sourceforge.jp\u003e\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "ec0bf39a471bf6fcd01def2bd677128cea940b73",
      "tree": "0d98b304d97605613a14329b40ed8cbb88296528",
      "parents": [
        "bf83c2a315637dee8a8b5c2221ce5030cc38c6db",
        "d32adcb85c74fd81963714689842993e7014515f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Tue Dec 05 16:09:46 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Tue Dec 05 16:09:46 2006 -0800"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6\n\n* master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (73 commits)\n  [SCSI] aic79xx: Add ASC-29320LPE ids to driver\n  [SCSI] stex: version update\n  [SCSI] stex: change wait loop code\n  [SCSI] stex: add new device type support\n  [SCSI] stex: update device id info\n  [SCSI] stex: adjust default queue length\n  [SCSI] stex: add value check in hard reset routine\n  [SCSI] stex: fix controller_info command handling\n  [SCSI] stex: fix biosparam calculation\n  [SCSI] megaraid: fix MMIO casts\n  [SCSI] tgt: fix undefined flush_dcache_page() problem\n  [SCSI] libsas: better error handling in sas_expander.c\n  [SCSI] lpfc 8.1.11 : Change version number to 8.1.11\n  [SCSI] lpfc 8.1.11 : Misc Fixes\n  [SCSI] lpfc 8.1.11 : Add soft_wwnn sysfs attribute, rename soft_wwn_enable\n  [SCSI] lpfc 8.1.11 : Removed decoding of PCI Subsystem Id\n  [SCSI] lpfc 8.1.11 : Add MSI (Message Signalled Interrupts) support\n  [SCSI] lpfc 8.1.11 : Adjust LOG_FCP logging\n  [SCSI] lpfc 8.1.11 : Fix Memory leaks\n  [SCSI] lpfc 8.1.11 : Fix lpfc_multi_ring_support\n  ...\n"
    },
    {
      "commit": "bf83c2a315637dee8a8b5c2221ce5030cc38c6db",
      "tree": "fb477f3affea75fcc79fa9d7006415576f79aadb",
      "parents": [
        "e62438630ca37539c8cc1553710bbfaa3cf960a7",
        "40a0017eb89c4c5a4bf81523edd867d730c9f143"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Tue Dec 05 15:52:06 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Tue Dec 05 15:52:06 2006 -0800"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/brodo/pcmcia-2.6\n\n* master.kernel.org:/pub/scm/linux/kernel/git/brodo/pcmcia-2.6:\n  [PATCH] pcmcia: at91_cf update\n  [PATCH] pcmcia: fix m32r_cfc.c compilation\n  [PATCH] pcmcia: ds.c debug enhancements\n  [PATCH] pcmcia: at91_cf update\n  [PATCH] pcmcia: conf.ConfigBase and conf.Present consolidation\n  [PATCH] pcmcia: remove prod_id indirection\n  [PATCH] pcmcia: remove manf_id and card_id indirection\n  [PATCH] pcmcia: IDs for Elan serial PCMCIA devcies\n  [PATCH] pcmcia: allow for four multifunction subdevices\n  [PATCH] pcmcia: handle __copy_from_user() return value in ioctl\n  [PATCH] pcmcia: multifunction card handling fixes\n  [PATCH] pcmcia: allow shared IRQs on pd6729 sockets\n  [PATCH] pcmcia: start over after CIS override\n  [PATCH] cm4000_cs: fix return value check\n  [PATCH] pcmcia: yet another IDE ID\n  [PATCH] pcmcia: Add an id to ide-cs.c\n"
    },
    {
      "commit": "6d5aefb8eaa38e44b5b8cf60c812aceafc02d924",
      "tree": "8945fd66a5f8a32f4daecf9799635ec5d7f86348",
      "parents": [
        "9db73724453a9350e1c22dbe732d427e2939a5c9"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Dec 05 19:36:26 2006 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@warthog.cambridge.redhat.com",
        "time": "Tue Dec 05 19:36:26 2006 +0000"
      },
      "message": "WorkQueue: Fix up arch-specific work items where possible\n\nFix up arch-specific work items where possible to use the new work_struct and\ndelayed_work structs.\n\nThree places that enqueue bits of their stack and then return have been marked\nwith #error as this is not permitted.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "9db73724453a9350e1c22dbe732d427e2939a5c9",
      "tree": "15e3ead6413ae97398a54292acc199bee0864d42",
      "parents": [
        "4c1ac1b49122b805adfa4efc620592f68dccf5db",
        "e62438630ca37539c8cc1553710bbfaa3cf960a7"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Dec 05 17:01:28 2006 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@warthog.cambridge.redhat.com",
        "time": "Tue Dec 05 17:01:28 2006 +0000"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6\n\nConflicts:\n\n\tdrivers/ata/libata-scsi.c\n\tinclude/linux/libata.h\n\nFuther merge of Linus\u0027s head and compilation fixups.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "4c1ac1b49122b805adfa4efc620592f68dccf5db",
      "tree": "87557f4bc2fd4fe65b7570489c2f610c45c0adcd",
      "parents": [
        "c4028958b6ecad064b1a6303a6a5906d4fe48d73",
        "d916faace3efc0bf19fe9a615a1ab8fa1a24cd93"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Dec 05 14:37:56 2006 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@warthog.cambridge.redhat.com",
        "time": "Tue Dec 05 14:37:56 2006 +0000"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6\n\nConflicts:\n\n\tdrivers/infiniband/core/iwcm.c\n\tdrivers/net/chelsio/cxgb2.c\n\tdrivers/net/wireless/bcm43xx/bcm43xx_main.c\n\tdrivers/net/wireless/prism54/islpci_eth.c\n\tdrivers/usb/core/hub.h\n\tdrivers/usb/input/hid-core.c\n\tnet/core/netpoll.c\n\nFix up merge failures with Linus\u0027s head and fix new compilation failures.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "e62438630ca37539c8cc1553710bbfaa3cf960a7",
      "tree": "83d3e0e016facfee73afba23d306034d60d87495",
      "parents": [
        "2d941e99dfa2f58f4cf294943274a4f8e264aab7"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew@wil.cx",
        "time": "Mon Dec 04 03:38:31 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Mon Dec 04 19:41:15 2006 -0800"
      },
      "message": "[PATCH] Centralise definitions of sector_t and blkcnt_t\n\nCONFIG_LBD and CONFIG_LSF are spread into asm/types.h for no particularly\ngood reason.\n\nCentralising the definition in linux/types.h means that arch maintainers\ndon\u0027t need to bother adding it, as well as fixing the problem with\nx86-64 users being asked to make a decision that has absolutely no\neffect.\n\nThe H8/300 porters seem particularly confused since I\u0027m not aware of any\nmicrocontrollers that need to support 2TB filesystems.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "91f433cacc9d1ae95ae46ce26d7bcf3a724c72d0",
      "tree": "058a5961548d489fdaffdbcfb7b34893946d37cf",
      "parents": [
        "15a4cb9c25df05a5d4844e80a1aea83d66165868",
        "0004a9dfeaa709a7f853487aba19932c9b1a87c8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Mon Dec 04 19:23:34 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Mon Dec 04 19:23:34 2006 -0800"
      },
      "message": "Merge branch \u0027upstream\u0027 of git://ftp.linux-mips.org/pub/scm/upstream-linus\n\n* \u0027upstream\u0027 of git://ftp.linux-mips.org/pub/scm/upstream-linus:\n  [MIPS] Cleanup memory barriers for weakly ordered systems.\n  [MIPS] Alchemy: Automatically enable CONFIG_RESOURCES_64BIT for PCI configs.\n  [MIPS] Unify csum_partial.S\n  [MIPS] SWARM: Fix a typo in #error directives\n  [MIPS] Fix atomic.h build errors.\n  [MIPS] Use SYSVIPC_COMPAT to fix various problems on N32\n  [MIPS] klconfig add missing bracket\n"
    },
    {
      "commit": "15a4cb9c25df05a5d4844e80a1aea83d66165868",
      "tree": "bcb4f7c6e84f501ee6ce8c7a740cc7c4ec92447d",
      "parents": [
        "ff51a98799931256b555446b2f5675db08de6229",
        "d8594d639135b500bf6010f981ea854092d54030"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Mon Dec 04 19:22:33 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Mon Dec 04 19:22:33 2006 -0800"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/paulus/powerpc\n\n* master.kernel.org:/pub/scm/linux/kernel/git/paulus/powerpc: (194 commits)\n  [POWERPC] Add missing EXPORTS for mpc52xx support\n  [POWERPC] Remove obsolete PPC_52xx and update CLASSIC32 comment\n  [POWERPC] ps3: add a default zImage target\n  [POWERPC] Add of_platform_bus support to mpc52xx psc uart driver\n  [POWERPC] typo fix and whitespace cleanup on mpc52xx-uart driver\n  [POWERPC] Fix debug printks for 32-bit resources in the PCI code\n  [POWERPC] Replace kmalloc+memset with kzalloc\n  [POWERPC] Linkstation / kurobox support\n  [POWERPC] Add the e300c3 core to the CPU table.\n  [POWERPC] ppc: m48t35 add missing bracket\n  [POWERPC] iSeries: don\u0027t build head_64.o unnecessarily\n  [POWERPC] iSeries: stop dt_mod.o being rebuilt unnecessarily\n  [POWERPC] Fix cputable.h for combined build\n  [POWERPC] Allow CONFIG_BOOTX_TEXT on iSeries\n  [POWERPC] Allow xmon to build on legacy iSeries\n  [POWERPC] Change ppc64_defconfig to use AUTOFS_V4 not V3\n  [POWERPC] Tell firmware we can handle POWER6 compatible mode\n  [POWERPC] Clean images in arch/powerpc/boot\n  [POWERPC] Fix OF pci flags parsing\n  [POWERPC] defconfig for lite5200 board\n  ...\n"
    },
    {
      "commit": "1d2c90425d5b0dcbf4a0fab2053d5087758b76a0",
      "tree": "7c8aaa01b60e81843a3ca4124ccd9ea916fca145",
      "parents": [
        "3e022d0c77e159a59d3ebfc44ad76a05202c2a6b"
      ],
      "author": {
        "name": "Dominik Brodowski",
        "email": "linux@dominikbrodowski.net",
        "time": "Mon Nov 06 21:52:16 2006 -0500"
      },
      "committer": {
        "name": "Dominik Brodowski",
        "email": "linux@dominikbrodowski.net",
        "time": "Mon Dec 04 20:09:15 2006 -0500"
      },
      "message": "[PATCH] pcmcia: multifunction card handling fixes\n\ns-\u003efunctions needs to be initialized earlier, for the \"let\u0027s see\nhow high it increases\" approach means that pcmcia_request_irq()\n(which makes use of this value) is confused, and might request\nan exclusive IRQ first even though it is not supposed to.\n\nAlso, a CIS override autoloaded using the firmware loader may\nallow for the use of more or less functions in a multifunction\ncard. Therefore, we may need to schedule a call to add this\nsecond function later on, or simply remove the other function\n(it\u0027s always the first -valid- function which reaches this\ncodepath).\n\nMany thanks to Fabrice Bellet for debugging and testing patches.\n\nSigned-off-by: Dominik Brodowski \u003clinux@dominikbrodowski.net\u003e\n"
    },
    {
      "commit": "0004a9dfeaa709a7f853487aba19932c9b1a87c8",
      "tree": "e9f1f4b1ca897e57f46778cef283617ba83fc855",
      "parents": [
        "08f57f7ffe5819e537301b1f1109fa4fc670bfff"
      ],
      "author": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Tue Oct 31 03:45:07 2006 +0000"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Mon Dec 04 22:43:14 2006 +0000"
      },
      "message": "[MIPS] Cleanup memory barriers for weakly ordered systems.\n\nAlso the R4000 / R4600 LL/SC instructions imply a sync so no explicit sync\nneeded.\n\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "4f8b5c70967de5fd27f2092f1f8da47f4705bb67",
      "tree": "f58d1127895111c6b5b723a3fde03a77e153eaff",
      "parents": [
        "05e4396651ca1cac51d8da9ff4992741c9dc1e39"
      ],
      "author": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Thu Nov 30 15:38:10 2006 +0000"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Mon Dec 04 22:43:13 2006 +0000"
      },
      "message": "[MIPS] Fix atomic.h build errors.\n\nFor the definition of atomic64_t atomic.h was relying on \u003casm/types.h\u003e\nhaving been included previously.  Before changeset\nd89d8e0637a5e4e0a12e90c4bc934d0d4c335239 this was happening as a\nside effect of including \u003clinux/spinlock.h\u003e.\n\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "05e4396651ca1cac51d8da9ff4992741c9dc1e39",
      "tree": "15881e19dfd7550dbe26245a356a10a979577086",
      "parents": [
        "9567772f14f6d2692ea88ddc111a5a6b352fd512"
      ],
      "author": {
        "name": "Atsushi Nemoto",
        "email": "anemo@mba.ocn.ne.jp",
        "time": "Tue Nov 07 18:02:44 2006 +0900"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Mon Dec 04 22:43:12 2006 +0000"
      },
      "message": "[MIPS] Use SYSVIPC_COMPAT to fix various problems on N32\n\nN32 SysV IPC system calls should use 32-bit compatible code.\narch/mips/kernel/linux32.c have similar compatible code for O32, but\nipc/compat.c seems more complete.  We can use it for both N32 and O32.\n\nThis patch should fix these problems (and other possible problems):\n\nhttp://www.linux-mips.org/cgi-bin/mesg.cgi?a\u003dlinux-mips\u0026i\u003d1149188824.6986.6.camel%40diimka-laptop\nhttp://www.linux-mips.org/cgi-bin/mesg.cgi?a\u003dlinux-mips\u0026i\u003d44C6B829.8050508%40caviumnetworks.com\n\nSigned-off-by: Atsushi Nemoto \u003canemo@mba.ocn.ne.jp\u003e\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "9567772f14f6d2692ea88ddc111a5a6b352fd512",
      "tree": "488e7fa8e95895ac2397707c77eeb584e84c7938",
      "parents": [
        "ff51a98799931256b555446b2f5675db08de6229"
      ],
      "author": {
        "name": "Mariusz Kozlowski",
        "email": "m.kozlowski@tuxland.pl",
        "time": "Thu Nov 30 10:16:29 2006 +0100"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Mon Dec 04 22:43:11 2006 +0000"
      },
      "message": "[MIPS] klconfig add missing bracket\n\nSigned-off-by: Mariusz Kozlowski \u003cm.kozlowski@tuxland.pl\u003e\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "ff51a98799931256b555446b2f5675db08de6229",
      "tree": "81a51eef70f120fd5d752430ccff0fdf06483508",
      "parents": [
        "a80958f4849316a18c06f75b9e850ccecbf20df8",
        "8e42a5a220a3369c70d88474e887a6de6a4ae209"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Mon Dec 04 13:12:29 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Mon Dec 04 13:12:29 2006 -0800"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev\n\n* \u0027upstream-linus\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev: (82 commits)\n  [PATCH] pata_ali: small fixes\n  [PATCH] pata_via: VIA 8251 bridged systems are now out and about\n  [PATCH] trivial piix: swap bogus dot for comma space\n  [PATCH] sata_promise: PHYMODE4 fixup\n  [PATCH] libata: always use polling IDENTIFY\n  [libata] pata_cs5535: fix build\n  [PATCH] ahci: do not powerdown during initialization\n  [PATCH] libata: prepare ata_sg_clean() for invocation from EH\n  [PATCH] libata: separate out rw ATA taskfile building into ata_build_rw_tf()\n  [PATCH] libata: implement ata_exec_internal_sg()\n  [PATCH] libata: make sure IRQ is cleared after ata_bmdma_freeze()\n  [PATCH] libata: move BMDMA host status recording from EH to interrupt handler\n  [PATCH] libata: make sure sdev doesn\u0027t go away while rescanning\n  [PATCH] libata: don\u0027t request sense if the port is frozen\n  [PATCH] libata: fix READ CAPACITY simulation\n  [PATCH] libata: implement ATA_FLAG_SETXFER_POLLING and use it in pata_via, take #2\n  [PATCH] libata: set IRQF_SHARED for legacy PCI IDE IRQs\n  [PATCH] libata: remove unused HSM_ST_UNKNOWN\n  [PATCH] libata: kill unnecessary sht-\u003emax_sectors initializations\n  [PATCH] libata: add missing sht-\u003eslave_destroy\n  ...\n"
    },
    {
      "commit": "a80958f4849316a18c06f75b9e850ccecbf20df8",
      "tree": "69a5469fee713392bdacd7f197336ce2d8c76c19",
      "parents": [
        "0c789ff64e874bbece03b607f200566ab24ea9ab"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@hera.kernel.org",
        "time": "Mon Dec 04 20:41:19 2006 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Mon Dec 04 12:45:29 2006 -0800"
      },
      "message": "[PATCH] fix fallout from header dependency trimming\n\nOK, that seems to be enough to deal with the mess.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0c789ff64e874bbece03b607f200566ab24ea9ab",
      "tree": "cfa43e7ec5f2f0eaa1e3a13fae86446d6d9e4074",
      "parents": [
        "9b8ab9f6c37c610feea20edfb357a3b8a43d39bd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Mon Dec 04 10:52:29 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Mon Dec 04 10:52:29 2006 -0800"
      },
      "message": "netfilter.h needs rcuupdate.h for RCU locking functions\n\nThis was exposed by Al\u0027s recent header file dependency reduction\npatches..\n\nCc: Al Viro \u003cviro@ftp.linux.org.uk\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9b8ab9f6c37c610feea20edfb357a3b8a43d39bd",
      "tree": "02d18c920a03a600e915d66d6a471d900857b3ac",
      "parents": [
        "12472b4165a21f5415ff4f60f8f46311a6b7b9ac",
        "f23f6e08c47acbdd20e9c49a79da8c404ea168e1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Mon Dec 04 10:37:06 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Mon Dec 04 10:37:06 2006 -0800"
      },
      "message": "Merge branch \u0027for-linus4\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/viro/bird\n\n* \u0027for-linus4\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/viro/bird:\n  [PATCH] severing poll.h -\u003e mm.h\n  [PATCH] severing skbuff.h -\u003e mm.h\n  [PATCH] severing skbuff.h -\u003e poll.h\n  [PATCH] severing skbuff.h -\u003e highmem.h\n  [PATCH] severing uaccess.h -\u003e sched.h\n  [PATCH] severing fs.h, radix-tree.h -\u003e sched.h\n  [PATCH] severing module.h-\u003esched.h\n"
    },
    {
      "commit": "07704eb29a765d2e862000d952fd96271c1464e2",
      "tree": "43dcf020188d8eeaeb71fae8c09de1f7aec88c43",
      "parents": [
        "f75e3b1de6a72f6eb22f3ab120dd52b902357c03",
        "74f8f557fd0c6f32e17e78c9ef508ca66ef37d3a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Mon Dec 04 08:29:45 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Mon Dec 04 08:29:45 2006 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git390.osdl.marist.edu/pub/scm/linux-2.6\n\n* \u0027for-linus\u0027 of git://git390.osdl.marist.edu/pub/scm/linux-2.6: (34 commits)\n  [S390] Don\u0027t use small stacks when lockdep is used.\n  [S390] cio: Use device_reprobe() instead of bus_rescan_devices().\n  [S390] cio: Retry internal operations after vary off.\n  [S390] cio: Use path verification for last path gone after vary off.\n  [S390] non-unique constant/macro identifiers.\n  [S390] Memory detection fixes.\n  [S390] cio: Make ccw_dev_id_is_equal() more robust.\n  [S390] Convert extmem spin_lock into a mutex.\n  [S390] set KBUILD_IMAGE.\n  [S390] lockdep: show held locks when showing a stackdump\n  [S390] Add dynamic size check for usercopy functions.\n  [S390] Use diag260 for memory size detection.\n  [S390] pfault code cleanup.\n  [S390] Cleanup memory_chunk array usage.\n  [S390] Misaligned wait PSW at memory detection.\n  [S390] cpu shutdown rework\n  [S390] cpcmd \u003c-\u003e __cpcmd calling issues\n  [S390] Bad kexec control page allocation.\n  [S390] Reset infrastructure for re-IPL.\n  [S390] Some documentation typos.\n  ...\n"
    },
    {
      "commit": "f75e3b1de6a72f6eb22f3ab120dd52b902357c03",
      "tree": "3e32aa936f2489e39d70ba7435d74e412b3506ea",
      "parents": [
        "04a9f081b76f536bcf69db066153c2a4231d5783"
      ],
      "author": {
        "name": "Greg Ungerer",
        "email": "gerg@snapgear.com",
        "time": "Mon Dec 04 17:28:03 2006 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Mon Dec 04 08:28:47 2006 -0800"
      },
      "message": "[PATCH] m68knommu: fix missing bracket in scatterlist.h\n\nThis patch adds missing bracket.\n\nSigned-off-by: Mariusz Kozlowski \u003cm.kozlowski@tuxland.pl\u003e\nSigned-off-by: Greg Ungerer \u003cgerg@uclinux.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "04a9f081b76f536bcf69db066153c2a4231d5783",
      "tree": "5e2cb177794bd89863b94147f1817df4d6e0dc02",
      "parents": [
        "d773c660973560970a6b3697cb280ddc5389447d"
      ],
      "author": {
        "name": "Greg Ungerer",
        "email": "gerg@snapgear.com",
        "time": "Mon Dec 04 17:27:58 2006 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Mon Dec 04 08:28:47 2006 -0800"
      },
      "message": "[PATCH] m68knommu: fix dma-mapping.h\n\nMake the m68knommu DMA handling consistent with other architectures.\nCompile problems pointed out by Adrian Bunk \u003cbunk@stusta.de\u003e\n\nSigned-off-by: Greg Ungerer \u003cgerg@uclinux.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5a31be3fb52c276b4913bd89e77481fae0001510",
      "tree": "a1c63aa08eb9d76b0ba6a45c53f9782f036596e3",
      "parents": [
        "552984050958fc0f51bff38948d0bf4d31ea2b03"
      ],
      "author": {
        "name": "Greg Ungerer",
        "email": "gerg@snapgear.com",
        "time": "Mon Dec 04 17:27:36 2006 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Mon Dec 04 08:26:12 2006 -0800"
      },
      "message": "[PATCH] m68knommu: memory register defines for 520x ColdFire CPU\u0027s\n\nHere is a small patch to automatically detect the DRAM size on m520x.\nIt was generated against 2.6.17-uc0, and tested on an Intec 5208 dev board.\n\n(This part of the patch if the memory register defines for the 520x\nColdFire CPU family - Greg).\n\nSigned-off-by: Michael Broughton \u003cmbobowik@telusplanet.net\u003e\nSigned-off-by: Greg Ungerer \u003cgerg@uclinux.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8b62bc9642300471737bc3b77b2a4a2ead46dedb",
      "tree": "0e510eac55df04ad244b74149c1fd7b8cc75e5e4",
      "parents": [
        "ce26a8532fd062ccd3f3c589a4be269a2dc20f00"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Mon Dec 04 15:40:56 2006 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Mon Dec 04 15:40:56 2006 +0100"
      },
      "message": "[S390] Memory detection fixes.\n\nVMALLOC_END on 31bit should be 0x8000000UL instead of 0x7fffffffL.\nThe page mask which is used to make sure memory_end is on 4MB/2MB\nboundary is wrong and not needed. Therefore remove it.\nMake sure a vmalloc area does also exist and work on (future)\nmachines with 4TB and more memory.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "ce26a8532fd062ccd3f3c589a4be269a2dc20f00",
      "tree": "dba7b023453f6077bafb750cf7fd55c040723907",
      "parents": [
        "09252e77ed13b1b412329825bad5797fbdd5a5c8"
      ],
      "author": {
        "name": "Cornelia Huck",
        "email": "cornelia.huck@de.ibm.com",
        "time": "Mon Dec 04 15:40:54 2006 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Mon Dec 04 15:40:54 2006 +0100"
      },
      "message": "[S390] cio: Make ccw_dev_id_is_equal() more robust.\n\nUsing memcmp to compare ccw_dev_id implies that the whole structure (incl.\npadding) has always been completely initialized to sane values. Comparing\nthe structures field by field doesn\u0027t make such assumptions.\n\nSigned-off-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "29b08d2bae854f66d3cfd5f57aaf2e7c2c7fce32",
      "tree": "1a907c124f6a12ec4617a030e412a01be4c81b04",
      "parents": [
        "36a2bd425d9b3ba2a40b0653e08d17702c78558e"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Mon Dec 04 15:40:40 2006 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Mon Dec 04 15:40:40 2006 +0100"
      },
      "message": "[S390] pfault code cleanup.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "36a2bd425d9b3ba2a40b0653e08d17702c78558e",
      "tree": "d42bd1409d7ffdb05995ad00a9722b88c4c4cbca",
      "parents": [
        "baf2aeb3d9e286add823bcaea5442ad4ee34f6e4"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Mon Dec 04 15:40:38 2006 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Mon Dec 04 15:40:38 2006 +0100"
      },
      "message": "[S390] Cleanup memory_chunk array usage.\n\nNeed this at yet another file and don\u0027t want to add yet another\nextern...\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "c6b5b847a7cf11f131c43fe0041443ec11697fc7",
      "tree": "d15fb7302bd446394ab373128be0a77826566e30",
      "parents": [
        "740b5706b9c4b3767f597b3ea76654c6f2a800b2"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Mon Dec 04 15:40:33 2006 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Mon Dec 04 15:40:33 2006 +0100"
      },
      "message": "[S390] cpu shutdown rework\n\nLet one master cpu kill all other cpus instead of sending an external\ninterrupt to all other cpus so they can kill themselves.\nSimplifies reipl/shutdown functions a lot.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "740b5706b9c4b3767f597b3ea76654c6f2a800b2",
      "tree": "370dc09ec8f3abaecc742003ed9d28eecf636c3b",
      "parents": [
        "a1a392f0b4f27604811bf8aa8d7636b3b4bc3803"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Mon Dec 04 15:40:30 2006 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Mon Dec 04 15:40:30 2006 +0100"
      },
      "message": "[S390] cpcmd \u003c-\u003e __cpcmd calling issues\n\nIn case of reipl cpcmd gets called when all other cpus are not running\nanymore. To prevent deadlocks change __cpcmd so that it doesn\u0027t take\nany locks and call cpcmd or __cpcmd, whatever is correct in the current\ncontext.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    }
  ],
  "next": "a1a392f0b4f27604811bf8aa8d7636b3b4bc3803"
}
