)]}'
{
  "log": [
    {
      "commit": "9a64388d83f6ef08dfff405a9d122e3dbcb6bf38",
      "tree": "a77532ce4d6d56be6c6c7f405cd901a0184250fb",
      "parents": [
        "e80ab411e589e00550e2e6e5a6a02d59cc730357",
        "14b3ca4022f050f8622ed282b734ddf445464583"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 21 15:50:49 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 21 15:50:49 2008 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc\n\n* \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (202 commits)\n  [POWERPC] Fix compile breakage for 64-bit UP configs\n  [POWERPC] Define copy_siginfo_from_user32\n  [POWERPC] Add compat handler for PTRACE_GETSIGINFO\n  [POWERPC] i2c: Fix build breakage introduced by OF helpers\n  [POWERPC] Optimize fls64() on 64-bit processors\n  [POWERPC] irqtrace support for 64-bit powerpc\n  [POWERPC] Stacktrace support for lockdep\n  [POWERPC] Move stackframe definitions to common header\n  [POWERPC] Fix device-tree locking vs. interrupts\n  [POWERPC] Make pci_bus_to_host()\u0027s struct pci_bus * argument const\n  [POWERPC] Remove unused __max_memory variable\n  [POWERPC] Simplify xics direct/lpar irq_host setup\n  [POWERPC] Use pseries_setup_i8259_cascade() in pseries_mpic_init_IRQ()\n  [POWERPC] Turn xics_setup_8259_cascade() into a generic pseries_setup_i8259_cascade()\n  [POWERPC] Move xics_setup_8259_cascade() into platforms/pseries/setup.c\n  [POWERPC] Use asm-generic/bitops/find.h in bitops.h\n  [POWERPC] 83xx: mpc8315 - fix USB UTMI Host setup\n  [POWERPC] 85xx: Fix the size of qe muram for MPC8568E\n  [POWERPC] 86xx: mpc86xx_hpcn - Temporarily accept old dts node identifier.\n  [POWERPC] 86xx: mark functions static, other minor cleanups\n  ...\n"
    },
    {
      "commit": "334d094504c2fe1c44211ecb49146ae6bca8c321",
      "tree": "d3c0f68e4b9f8e3d2ccc39e7dfe5de0534a5fad9",
      "parents": [
        "d1a4be630fb068f251d64b62919f143c49ca8057",
        "d1643d24c61b725bef399cc1cf2944b4c9c23177"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 18 18:02:35 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 18 18:02:35 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.26\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.26: (1090 commits)\n  [NET]: Fix and allocate less memory for -\u003epriv\u0027less netdevices\n  [IPV6]: Fix dangling references on error in fib6_add().\n  [NETLABEL]: Fix NULL deref in netlbl_unlabel_staticlist_gen() if ifindex not found\n  [PKT_SCHED]: Fix datalen check in tcf_simp_init().\n  [INET]: Uninline the __inet_inherit_port call.\n  [INET]: Drop the inet_inherit_port() call.\n  SCTP: Initialize partial_bytes_acked to 0, when all of the data is acked.\n  [netdrvr] forcedeth: internal simplifications; changelog removal\n  phylib: factor out get_phy_id from within get_phy_device\n  PHY: add BCM5464 support to broadcom PHY driver\n  cxgb3: Fix __must_check warning with dev_dbg.\n  tc35815: Statistics cleanup\n  natsemi: fix MMIO for PPC 44x platforms\n  [TIPC]: Cleanup of TIPC reference table code\n  [TIPC]: Optimized initialization of TIPC reference table\n  [TIPC]: Remove inlining of reference table locking routines\n  e1000: convert uint16_t style integers to u16\n  ixgb: convert uint16_t style integers to u16\n  sb1000.c: make const arrays static\n  sb1000.c: stop inlining largish static functions\n  ...\n"
    },
    {
      "commit": "64ac24e738823161693bf791f87adc802cf529ff",
      "tree": "19c0b0cf314d4394ca580c05b86cdf874ce0a167",
      "parents": [
        "e48b3deee475134585eed03e7afebe4bf9e0dba9"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew@wil.cx",
        "time": "Fri Mar 07 21:55:58 2008 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "willy@linux.intel.com",
        "time": "Thu Apr 17 10:42:34 2008 -0400"
      },
      "message": "Generic semaphore implementation\n\nSemaphores are no longer performance-critical, so a generic C\nimplementation is better for maintainability, debuggability and\nextensibility.  Thanks to Peter Zijlstra for fixing the lockdep\nwarning.  Thanks to Harvey Harrison for pointing out that the\nunlikely() was unnecessary.\n\nSigned-off-by: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "095d911201b0741e7f326d269a005dba55985acf",
      "tree": "7bb8001d8230214e790d1705b11c8f8afa6cc65e",
      "parents": [
        "bdcde3d71a67e97f25e851f3ca97c9bb5ef03e7f"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Mar 28 16:39:58 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 28 16:39:58 2008 -0700"
      },
      "message": "[LIB]: Drop the pcounter itself.\n\nThe knock-out. The pcounter abstraction is not used any longer in the\nkernel.\n\nNot sure whether this should go via netdev tree, but as far as I\nremember it was added via this one, and besides Eric thinks that\nAndrew shouldn\u0027t mind this.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d9b2b2a277219d4812311d995054ce4f95067725",
      "tree": "63af21df6686dd2e867015fdf9f0cb798d3ca348",
      "parents": [
        "e760e716d47b48caf98da348368fd41b4a9b9e7e"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Feb 13 16:56:49 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Feb 13 16:56:49 2008 -0800"
      },
      "message": "[LIB]: Make PowerPC LMB code generic so sparc64 can use it too.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n\n"
    },
    {
      "commit": "4600ecfcf3ad160ac0c6fcff6115f6edb081ccfa",
      "tree": "2a145a6eadfdef4c627fab12ccbf17678a03e887",
      "parents": [
        "3a984a85050e320993f87ba47a22973f32853206"
      ],
      "author": {
        "name": "Guennadi Liakhovetski",
        "email": "g.liakhovetski@pengutronix.de",
        "time": "Fri Feb 08 15:00:47 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 15:33:33 2008 -0800"
      },
      "message": "lib/scatterlist.o needed by a module only - link it in unconditionally\n\nlib/scatterlist.c is needed by drivers/media/video/videobuf-dma-sg.c, and\nwe would like to be able to use the latter without PCI too, for example, on\nPXA270 ARM CPU.  It is then possible to create a configuration with\nCONFIG_BLOCK\u003dn, where only module code will need scatterlist.c.  Therefore\nit must be in obj-y.\n\nSigned-off-by: Guennadi Liakhovetski \u003cg.liakhovetski@pengutronix.de\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0291df8cc9dac09c303d21d5bcd2ad73762c836a",
      "tree": "5a79187b309cc1a2115a94bc7927c85dd3c67ac9",
      "parents": [
        "0c95fdc59640824d7e0b017be295fb912ceef4ab"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "tomof@acm.org",
        "time": "Mon Feb 04 22:28:07 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:11 2008 -0800"
      },
      "message": "iommu sg: add IOMMU helper functions for the free area management\n\nThis adds IOMMU helper functions for the free area management.  These\nfunctions take care of LLD\u0027s segment boundary limit for IOMMUs.  They would be\nuseful for IOMMUs that use bitmap for the free area management.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "de4d1db369785c29d68915edfee0cb70e8199f4c",
      "tree": "78979fc131145d4b2df3cd4721a811784126f05c",
      "parents": [
        "0c884439dbd7c895cce61c4974c8868b0f6cd4a1"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Wed Nov 21 22:02:58 2007 +0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:39 2008 -0800"
      },
      "message": "[LIB]: Introduce struct pcounter\n\nThis just generalises what was introduced by Eric Dumazet for the struct proto\ninuse field in 286ab3d46058840d68e5d7d52e316c1f7e98c59f:\n\n    [NET]: Define infrastructure to keep \u0027inuse\u0027 changes in an efficent SMP/NUMA way.\n\nPlease look at the comment in there to see the rationale.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0db9299f48ebd4a860d6ad4e1d36ac50671d48e7",
      "tree": "37ae5e75f26969b53548a1ea7c69284e6b269bc9",
      "parents": [
        "91525300baf162e83e923b09ca286f9205e21522"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Nov 30 09:16:50 2007 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Jan 28 10:05:27 2008 +0100"
      },
      "message": "SG: Move functions to lib/scatterlist.c and add sg chaining allocator helpers\n\nManually doing chained sg lists is not trivial, so add some helpers\nto make sure that drivers get it right.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "5a6dca7c15623626943786977aca738520ea5ba3",
      "tree": "0428275d129d5ba879691161c507a48b03406382",
      "parents": [
        "ddd73611b7bddbc0a9079f27a1471f635100aaab"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Nov 14 16:58:41 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Nov 14 18:45:37 2007 -0800"
      },
      "message": "lib: move bitmap.o from lib-y to obj-y.\n\nmac80211 has a reference to __bitmap_empty() via bitmap_empty().  In\nlib/bitmap.c this is flagged with an EXPORT_SYMBOL(), but this is\nultimately ineffective due to bitmap.o being linked in lib-y, resulting in:\n\nERROR: \"__bitmap_empty\" [net/mac80211/mac80211.ko] undefined!\n\nMoving bitmap.o to obj-y fixes this up.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: \"John W. Linville\" \u003clinville@tuxdriver.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8707d8b8c0cbdf4441507f8dded194167da896c7",
      "tree": "1e9ac6b15027bd55263378e551c1595a937d66d6",
      "parents": [
        "020958b6272882c1a8bfbe5f3e0927f3845c2698"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Oct 18 23:40:22 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:41 2007 -0700"
      },
      "message": "Fix cpusets update_cpumask\n\nCause writes to cpuset \"cpus\" file to update cpus_allowed for member tasks:\n\n- collect batches of tasks under tasklist_lock and then call\n  set_cpus_allowed() on them outside the lock (since this can sleep).\n\n- add a simple generic priority heap type to allow efficient collection\n  of batches of tasks to be processed without duplicating or missing any\n  tasks in subsequent batches.\n\n- make \"cpus\" file update a no-op if the mask hasn\u0027t changed\n\n- fix race between update_cpumask() and sched_setaffinity() by making\n  sched_setaffinity() post-check that it\u0027s not running on any cpus outside\n  cpuset_cpus_allowed().\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "145ca25eb2fbd20d4faf1bad4628c7650332058f",
      "tree": "ee5bebd5b7b1f0ced5e30c8f29f1ff5301aa9d0a",
      "parents": [
        "69cb51d18c1ed593009d9a620cac49d0dcf15dc8"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Oct 16 23:25:49 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:45 2007 -0700"
      },
      "message": "lib: floating proportions\n\nGiven a set of objects, floating proportions aims to efficiently give the\nproportional \u0027activity\u0027 of a single item as compared to the whole set. Where\n\u0027activity\u0027 is a measure of a temporal property of the items.\n\nIt is efficient in that it need not inspect any other items of the set\nin order to provide the answer. It is not even needed to know how many\nother items there are.\n\nIt has one parameter, and that is the period of \u0027time\u0027 over which the\n\u0027activity\u0027 is measured.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5c5daf657cb5f963a38413f2852279d7a3843144",
      "tree": "ec314c25ca40528bd4625944a93846d1654c9cd9",
      "parents": [
        "07c015e7654821f2dda00dcf152c65b2afd46ac3"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Sun Aug 12 20:43:55 2007 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 12 14:51:06 2007 -0700"
      },
      "message": "Driver core: exclude kobject_uevent.c for !CONFIG_HOTPLUG\n\nMove uevent specific logic from the core into kobject_uevent.c, which\ndoes no longer require to link the unused string array if hotplug\nis not compiled in.\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "7a5c5d5735e785a700a377a5fce913b8ad45a58f",
      "tree": "ff138cfc90e67b1958e3806efc91211d9d309577",
      "parents": [
        "a560aa48eed66fdf78f2a2813ab7b4ca766a84ce"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Sun Oct 07 00:24:34 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Oct 07 16:28:43 2007 -0700"
      },
      "message": "Move kasprintf.o to obj-y\n\nModulat lguest started giving linking errors\n\nMODPOST 1 modules\nERROR: \"kasprintf\" [drivers/lguest/lg.ko] undefined!\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "928923c76b393e38e5ba1d47e843e208ceef6cf9",
      "tree": "8dde0229b76b7414cea18eb7bd700ca3cc990ee6",
      "parents": [
        "2301060e2b19aa4830060524ef66abdf32b26a26"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "geert@linux-m68k.org",
        "time": "Wed Aug 22 14:01:36 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Aug 22 19:52:45 2007 -0700"
      },
      "message": "Introduce CONFIG_CHECK_SIGNATURE\n\nIntroduce CONFIG_CHECK_SIGNATURE to control inclusion of check_signature()\nand avoid problems on platforms that don\u0027t have readb().\n\nLet the few legacy (ISA || PCI || X86) drivers that need check_signature()\nselect CONFIG_CHECK_SIGNATURE.\n\nSigned-off-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "96e3e18eed3b48f6d4377dee0326a106e8a04569",
      "tree": "d6e4d66ec415ffc934930f32ed62cebe403e9a29",
      "parents": [
        "9965a5d5a5aab575f995ba58dc80285aa0f6ecbf"
      ],
      "author": {
        "name": "Sam Ravnborg",
        "email": "sam@ravnborg.org",
        "time": "Tue Jul 31 00:38:13 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 31 15:39:39 2007 -0700"
      },
      "message": "lib: move kasprintf to a separate file\n\nkasprintf pulls in kmalloc which proved to be fatal for at least\nbootimage target on alpha.\nMove it to a separate file so only users of kasprintf are exposed\nto the dependency on kmalloc.\n\nSigned-off-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nCc: Meelis Roos \u003cmroos@linux.ee\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Jay Estabrook \u003cjay.estabrook@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d84d1cc7647c7e4f77d517e2d87b4a106a0420d9",
      "tree": "b6ccc40d323998d4ad013c7b05613bc727a8f4e0",
      "parents": [
        "1e66df3ee301209f4a38df097d7cc5cb9b367a3f"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@xensource.com",
        "time": "Tue Jul 17 18:37:02 2007 -0700"
      },
      "committer": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed Jul 18 08:47:40 2007 -0700"
      },
      "message": "add argv_split()\n\nargv_split() is a helper function which takes a string, splits it at\nwhitespace, and returns a NULL-terminated argv vector.  This is\ndeliberately simple - it does no quote processing of any kind.\n\n[ Seems to me that this is something which is already being done in\n  the kernel, but I couldn\u0027t find any other implementations, either to\n  steal or replace.  Keep an eye out. ]\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Chris Wright \u003cchrisw@sous-sol.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\n"
    },
    {
      "commit": "ad241528c4919505afccb022acbab3eeb0db4d80",
      "tree": "ec3a2a65707ca032eab973f98aa568ed007389f1",
      "parents": [
        "c06e677aed0c86480b01faa894967daa8aa3568a"
      ],
      "author": {
        "name": "Jan Nikitenko",
        "email": "jan.nikitenko@gmail.com",
        "time": "Tue Jul 17 04:04:03 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:04 2007 -0700"
      },
      "message": "CRC7 support\n\nAdd CRC7 routines, used for example in MMC over SPI communication.\nKerneldoc updates\n\n[akpm@linux-foundation.org: fix funny mix of const and non-const]\nSigned-off-by: Jan Nikitenko \u003cjan.nikitenko@gmail.com\u003e\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nCc: \"Randy.Dunlap\" \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a54890d7a6f37a4658294cbce650af4d1fabb8c9",
      "tree": "75ae8e2c7c3d9fc7e2a25e97256b9f1730aa1d8f",
      "parents": [
        "2e27afb300b56d83bb03fbfa68852b9c1e2920c6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 16:50:01 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 16:50:01 2007 -0700"
      },
      "message": "Make check_signature depend on CONFIG_HAS_IOMEM\n\nThis should avoid build problems on architectures without a \"readb()\",\nthat got bitten by check_signature() being uninlined.\n\nNoted by Heiko Carstens.\n\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cc2ea416b2aa04d0c34ff2281a23dae5b76b7b3b",
      "tree": "15dd3cebcb85e21ef744f184ab33c163d8ffdacc",
      "parents": [
        "4e7bd66318b3ae60fbba7d886d9a98b71ffbf74e"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Sun Jul 15 23:41:38 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:50 2007 -0700"
      },
      "message": "uninline check_signature()\n\nThis is a rather bizarre thing to have inlined in io.h.  Stick it in lib/\ninstead.\n\nWhile we\u0027re there, despaghetti it a bit, and fix its off-by-one behaviour when\npassed a zero length.\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "64c70b1cf43de158282bc1675918d503e5b15cc1",
      "tree": "e7797ee372de94bb9129300e55d23034a7d05f9a",
      "parents": [
        "4c75f7416f51b0c6855952467a5db04f9c598f09"
      ],
      "author": {
        "name": "Richard Purdie",
        "email": "rpurdie@openedhand.com",
        "time": "Tue Jul 10 17:22:24 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 10 17:51:13 2007 -0700"
      },
      "message": "Add LZO1X algorithm to the kernel\n\nThis is a hybrid version of the patch to add the LZO1X compression\nalgorithm to the kernel.  Nitin and myself have merged the best parts of\nthe various patches to form this version which we\u0027re both happy with (and\nare jointly signing off).\n\nThe performance of this version is equivalent to the original minilzo code\nit was based on.  Bytecode comparisons have also been made on ARM, i386 and\nx86_64 with favourable results.\n\nThere are several users of LZO lined up including jffs2, crypto and reiser4\nsince its much faster than zlib.\n\nSigned-off-by: Nitin Gupta \u003cnitingupta910@gmail.com\u003e\nSigned-off-by: Richard Purdie \u003crpurdie@openedhand.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "99eaf3c45fe806c4a7f39b9be4a1bd0dfc617699",
      "tree": "9da206b2faaae7dc3804df2adea4cbf7f117208c",
      "parents": [
        "6eaeeaba39e5fa3d52a0bb8de15e995516ae251a"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Thu May 10 22:22:39 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 11 08:29:34 2007 -0700"
      },
      "message": "lib/hexdump\n\nBased on ace_dump_mem() from Grant Likely for the Xilinx SystemACE\nCompactFlash interface.\n\nAdd print_hex_dump() \u0026 hex_dumper() to lib/hexdump.c and linux/kernel.h.\n\nThis patch adds the functions print_hex_dump() \u0026 hex_dumper().\nprint_hex_dump() can be used to perform a hex + ASCII dump of data to\nsyslog, in an easily viewable format, thus providing a common text hex dump\nformat.\n\nhex_dumper() provides a dump-to-memory function.  It converts one \"line\" of\noutput (16 bytes of input) at a time.\n\nExample usages:\n\tprint_hex_dump(KERN_DEBUG, DUMP_PREFIX_ADDRESS, frame-\u003edata, frame-\u003elen);\n\thex_dumper(frame-\u003edata, frame-\u003elen, linebuf, sizeof(linebuf));\n\nExample output using %DUMP_PREFIX_OFFSET:\n0009ab42: 40414243 44454647 48494a4b 4c4d4e4f-@ABCDEFG HIJKLMNO\nExample output using %DUMP_PREFIX_ADDRESS:\nffffffff88089af0: 70717273 74757677 78797a7b 7c7d7e7f-pqrstuvw xyz{|}~.\n\n[akpm@linux-foundation.org: cleanups, add export]\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9b6a51746ffe8d619f1097675d2dc5e303470024",
      "tree": "52668d7adc6f5c1d347d65072878cf1f82670364",
      "parents": [
        "fc0b60f1dc311a2f7443ce46305edd287b2d8947",
        "d79406dd140a3e6eed6f26b17f0c6620fe30b50c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu May 10 13:29:36 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu May 10 13:30:08 2007 -0700"
      },
      "message": "Merge branch \u0027juju\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6\n\n* \u0027juju\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6: (138 commits)\n  firewire: Convert OHCI driver to use standard goto unwinding for error handling.\n  firewire: Always use parens with sizeof.\n  firewire: Drop single buffer request support.\n  firewire: Add a comment to describe why we split the sg list.\n  firewire: Return SCSI_MLQUEUE_HOST_BUSY for out of memory cases in queuecommand.\n  firewire: Handle the last few DMA mapping error cases.\n  firewire: Allocate scsi_host up front and allocate the sbp2_device as hostdata.\n  firewire: Provide module aliase for backwards compatibility.\n  firewire: Add to fw-core-y instead of assigning fw-core-objs in Makefile.\n  firewire: Break out shared IEEE1394 constant to separate header file.\n  firewire: Use linux/*.h instead of asm/*.h header files.\n  firewire: Uppercase most macro names.\n  firewire: Coding style cleanup: no spaces after function names.\n  firewire: Convert card_rwsem to a regular mutex.\n  firewire: Clean up comment style.\n  firewire: Use lib/ implementation of CRC ITU-T.\n  CRC ITU-T V.41\n  firewire: Rename fw-device-cdev.c to fw-cdev.c and move header to include/linux.\n  firewire: Future proof the iso ioctls by adding a handle for the iso context.\n  firewire: Add read/write and size annotations to IOC numbers.\n  ...\n\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3e7cbae7c6dda18d427335b3ad98f1a0d40ef30c",
      "tree": "2ac604d8d6f4eb671e23c9b6a405c37b92fa8df3",
      "parents": [
        "9640d3d775aa325650c8fcdf49127542f77b2156"
      ],
      "author": {
        "name": "Ivo van Doorn",
        "email": "IvDoorn@gmail.com",
        "time": "Mon Jun 12 16:17:04 2006 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu May 10 18:24:13 2007 +0200"
      },
      "message": "CRC ITU-T V.41\n\nThis will add the CRC calculation according\nto the CRC ITU-T V.41 to the kernel lib/ folder.\n\nThis code has been derived from the rt2x00 driver,\ncurrently found only in the wireless-dev tree, but\nthis library is generic and could be used by more\ndrivers who currently use their own implementation.\n\nSigned-off-by: Ivo van Doorn \u003cIvDoorn@gmail.com\u003e\n\nAlso useful for the new firewire stack.\n\nSigned-off-by: Kristian Hoegsberg \u003ckrh@redhat.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "3927f2e8f9afa3424bb51ca81f7abac01ffd0005",
      "tree": "da9e335169572e6c743c084edce6a802f9e667ee",
      "parents": [
        "9d729f72dca9406025bcfa9c1f660d71d9ef0ff5"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Sun Mar 25 19:54:23 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:33 2007 -0700"
      },
      "message": "[NET]: div64_64 consolidate (rev3)\n\nHere is the current version of the 64 bit divide common code.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5ea8176994003483a18c8fed580901e2125f8a83",
      "tree": "0712ec9cd3384fbd897eb454ce9c0f907289ab51",
      "parents": [
        "2835fdfa4a7f1400986d76d054237809a9392406"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Sun Feb 11 15:41:31 2007 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Feb 11 11:18:07 2007 -0800"
      },
      "message": "[PATCH] sort the devres mess out\n\n* Split the implementation-agnostic stuff in separate files.\n* Make sure that targets using non-default request_irq() pull\n  kernel/irq/devres.o\n* Introduce new symbols (HAS_IOPORT and HAS_IOMEM) defaulting to positive;\n  allow architectures to turn them off (we needed these symbols anyway for\n  dependencies of quite a few drivers).\n* protect the ioport-related parts of lib/devres.o with CONFIG_HAS_IOPORT.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cefc8be82403cfc4325e7b9b063f77dc0f34e19e",
      "tree": "d360f54c14860550b37f86b44757ecef749db1c0",
      "parents": [
        "c530cba649692512070e8c0131ba3eccade09269"
      ],
      "author": {
        "name": "Kirill Korotaev",
        "email": "dev@sw.ru",
        "time": "Sat Feb 10 01:46:18 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Feb 11 10:51:34 2007 -0800"
      },
      "message": "[PATCH] Consolidate bust_spinlocks()\n\nPart of long forgotten patch\nhttp://groups.google.com/group/fa.linux.kernel/msg/e98e941ce1cf29f6?dmode\u003dsource\nSince then, m32r grabbed two copies.\n\nLeave s390 copy because of important absence of CONFIG_VT, but remove\nreferences to non-existent timerlist_lock.  ia64 also loses timerlist_lock.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@openvz.org\u003e\nAcked-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ca2997885219486cf91a369233c909fbd555bdf7",
      "tree": "8667cd7688cbcfb26b81ce1260f0b97890adfe60",
      "parents": [
        "fda0efc5977864a90f365aeeb13f2546854e2aa9"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Jan 31 22:48:06 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 09 17:39:37 2007 -0500"
      },
      "message": "iomap: iomap should be in obj-y not in lib-y\n\ndevres change moved iomap.o from obj-$(CONFIG_GENERIC_IOMAP) to lib-y\nmaking it not linked if no in-kernel driver uses it.  Fix it.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "9ac7849e35f705830f7b016ff272b0ff1f7ff759",
      "tree": "7f17cdff87e154937a15cc2ec8da9b4e6018ce8e",
      "parents": [
        "77a527eadb425b60db3f5f0aae6a4c51c38e35e5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sat Jan 20 16:00:26 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 09 17:39:36 2007 -0500"
      },
      "message": "devres: device resource management\n\nImplement device resource management, in short, devres.  A device\ndriver can allocate arbirary size of devres data which is associated\nwith a release function.  On driver detach, release function is\ninvoked on the devres data, then, devres data is freed.\n\ndevreses are typed by associated release functions.  Some devreses are\nbetter represented by single instance of the type while others need\nmultiple instances sharing the same release function.  Both usages are\nsupported.\n\ndevreses can be grouped using devres group such that a device driver\ncan easily release acquired resources halfway through initialization\nor selectively release resources (e.g. resources for port 1 out of 4\nports).\n\nThis patch adds devres core including documentation and the following\nmanaged interfaces.\n\n* alloc/free\t: devm_kzalloc(), devm_kzfree()\n* IO region\t: devm_request_region(), devm_release_region()\n* IRQ\t\t: devm_request_irq(), devm_free_irq()\n* DMA\t\t: dmam_alloc_coherent(), dmam_free_coherent(),\n\t\t  dmam_declare_coherent_memory(), dmam_pool_create(),\n\t\t  dmam_pool_destroy()\n* PCI\t\t: pcim_enable_device(), pcim_pin_device(), pci_is_managed()\n* iomap\t\t: devm_ioport_map(), devm_ioport_unmap(), devm_ioremap(),\n\t\t  devm_ioremap_nocache(), devm_iounmap(), pcim_iomap_table(),\n\t\t  pcim_iomap(), pcim_iounmap()\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "ee36c2bf8edb1c3e3855a928b348d29c6359093d",
      "tree": "1f536eaa3bccfce90a919d871f819f41d7e70988",
      "parents": [
        "62fb2ba3d870305e246c6cb317609c1dc2c9dd0b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Wed Dec 13 00:35:00 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:52 2006 -0800"
      },
      "message": "[PATCH] uml problems with linux/io.h\n\nRemove useless includes of linux/io.h, don\u0027t even try to build iomap_copy\non uml (it doesn\u0027t have readb() et.al., so...)\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6a2d7a955d8de6cb19ed9cd194b3c83008a22c32",
      "tree": "dc440341412a45a7c1f363dcaa1505fe711eadec",
      "parents": [
        "02a0e53d8227aff5e62e0433f82c12c1c2805fd6"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Wed Dec 13 00:34:27 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:49 2006 -0800"
      },
      "message": "[PATCH] SLAB: use a multiply instead of a divide in obj_to_index()\n\nWhen some objects are allocated by one CPU but freed by another CPU we can\nconsume lot of cycles doing divides in obj_to_index().\n\n(Typical load on a dual processor machine where network interrupts are\nhandled by one particular CPU (allocating skbufs), and the other CPU is\nrunning the application (consuming and freeing skbufs))\n\nHere on one production server (dual-core AMD Opteron 285), I noticed this\ndivide took 1.20 % of CPU_CLK_UNHALTED events in kernel.  But Opteron are\nquite modern cpus and the divide is much more expensive on oldest\narchitectures :\n\nOn a 200 MHz sparcv9 machine, the division takes 64 cycles instead of 1\ncycle for a multiply.\n\nDoing some math, we can use a reciprocal multiplication instead of a divide.\n\nIf we want to compute V \u003d (A / B)  (A and B being u32 quantities)\nwe can instead use :\n\nV \u003d ((u64)A * RECIPROCAL(B)) \u003e\u003e 32 ;\n\nwhere RECIPROCAL(B) is precalculated to ((1LL \u003c\u003c 32) + (B - 1)) / B\n\nNote :\n\nI wrote pure C code for clarity. gcc output for i386 is not optimal but\nacceptable :\n\nmull   0x14(%ebx)\nmov    %edx,%eax // part of the \u003e\u003e 32\nxor     %edx,%edx // useless\nmov    %eax,(%esp) // could be avoided\nmov    %edx,0x4(%esp) // useless\nmov    (%esp),%ebx\n\n[akpm@osdl.org: small cleanups]\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: David 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": "6ff1cb355e628f8fc55fa2d01e269e5e1bbc2fe9",
      "tree": "393d94b6d7585e4c804d6415afaa11e1d6ec350d",
      "parents": [
        "de1ba09b214056365d9082982905b255caafb7a2"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Fri Dec 08 02:39:43 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:29:02 2006 -0800"
      },
      "message": "[PATCH] fault-injection capabilities infrastructure\n\nThis patch provides base functions implement to fault-injection\ncapabilities.\n\n- The function should_fail() is taken from failmalloc-1.0\n  (http://www.nongnu.org/failmalloc/)\n\n[akpm@osdl.org: cleanups, comments, add __init]\nCc: \u003cokuji@enbug.org\u003e\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: Don Mullis \u003cdwm@meer.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a5cfc1ec58a07074dacb6aa8c79eff864c966d12",
      "tree": "5fbb16ee570ec1d9a9f6adbc7a5cc963e7ca93d8",
      "parents": [
        "30e25b71e725b150585e17888b130e3324f8cf7c"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Fri Dec 08 02:36:25 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:39 2006 -0800"
      },
      "message": "[PATCH] bit reverse library\n\nThis patch provides two bit reverse functions and bit reverse table.\n\n- reverse the order of bits in a u32 value\n\n\tu8 bitrev8(u8 x);\n\n- reverse the order of bits in a u32 value\n\n\tu32 bitrev32(u32 x);\n\n- byte reverse table\n\n\tconst u8 byte_rev_table[256];\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7664c5a1da4711bb6383117f51b94c8dc8f3f1cd",
      "tree": "79a2e2a4626c66a411488b5ceb554b011d862a7d",
      "parents": [
        "c48f70c3d046f021b1c22438604ef2a583380eca"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Fri Dec 08 02:36:19 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:39 2006 -0800"
      },
      "message": "[PATCH] Generic BUG implementation\n\nThis patch adds common handling for kernel BUGs, for use by architectures as\nthey wish.  The code is derived from arch/powerpc.\n\nThe advantages of having common BUG handling are:\n - consistent BUG reporting across architectures\n - shared implementation of out-of-line file/line data\n - implement CONFIG_DEBUG_BUGVERBOSE consistently\n\nThis means that in inline impact of BUG is just the illegal instruction\nitself, which is an improvement for i386 and x86-64.\n\nA BUG is represented in the instruction stream as an illegal instruction,\nwhich has file/line information associated with it.  This extra information is\nstored in the __bug_table section in the ELF file.\n\nWhen the kernel gets an illegal instruction, it first confirms it might\npossibly be from a BUG (ie, in kernel mode, the right illegal instruction).\nIt then calls report_bug().  This searches __bug_table for a matching\ninstruction pointer, and if found, prints the corresponding file/line\ninformation.  If report_bug() determines that it wasn\u0027t a BUG which caused the\ntrap, it returns BUG_TRAP_TYPE_NONE.\n\nSome architectures (powerpc) implement WARN using the same mechanism; if the\nillegal instruction was the result of a WARN, then report_bug(Q) returns\nCONFIG_DEBUG_BUGVERBOSE; otherwise it returns BUG_TRAP_TYPE_BUG.\n\nlib/bug.c keeps a list of loaded modules which can be searched for __bug_table\nentries.  The architecture must call\nmodule_bug_finalize()/module_bug_cleanup() from its corresponding\nmodule_finalize/cleanup functions.\n\nUnsetting CONFIG_DEBUG_BUGVERBOSE will reduce the kernel size by some amount.\nAt the very least, filename and line information will not be recorded for each\nbut, but architectures may decide to store no extra information per BUG at\nall.\n\nUnfortunately, gcc doesn\u0027t have a general way to mark an asm() as noreturn, so\narchitectures will generally have to include an infinite loop (or similar) in\nthe BUG code, so that gcc knows execution won\u0027t continue beyond that point.\ngcc does have a __builtin_trap() operator which may be useful to achieve the\nsame effect, unfortunately it cannot be used to actually implement the BUG\nitself, because there\u0027s no way to get the instruction\u0027s address for use in\ngenerating the __bug_table entry.\n\n[randy.dunlap@oracle.com: Handle BUG\u003dn, GENERIC_BUG\u003dn to prevent build errors]\n[bunk@stusta.de: include/linux/bug.h must always #include \u003clinux/module.h]\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: Hugh Dickens \u003chugh@veritas.com\u003e\nCc: Michael Ellerman \u003cmichael@ellerman.id.au\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "702a28b1e64be3dc313f5f0ceb6dc95edfbc5e18",
      "tree": "579069600af87d2eac2d2580df9924c3cd12eee9",
      "parents": [
        "0b71c8e76d20d0329bf7e54f172389f3c343dc41"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Wed Dec 06 20:39:16 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:42 2006 -0800"
      },
      "message": "[PATCH] lib functions: always build hweight for loadable modules\n\nAlways build hweight8/16/32/64() functions into the kernel so that loadable\nmodules may use them.\n\nI didn\u0027t remove GENERIC_HWEIGHT since ALPHA_EV67, ia64, and some variants\nof UltraSparc(64) provide their own hweight functions.\n\nFixes config/build problems with NTFS\u003dm and JOYSTICK_ANALOG\u003dm.\n\n  Kernel: arch/x86_64/boot/bzImage is ready  (#19)\n    Building modules, stage 2.\n    MODPOST 94 modules\n  WARNING: \"hweight32\" [fs/ntfs/ntfs.ko] undefined!\n  WARNING: \"hweight16\" [drivers/input/joystick/analog.ko] undefined!\n  WARNING: \"hweight8\" [drivers/input/joystick/analog.ko] undefined!\n  make[1]: *** [__modpost] Error 1\n  make: *** [modules] Error 2\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5c496374a72320279ddb86291ef709e090a5d531",
      "tree": "40c0cd65a0928efe529436c681f47e0e52d32f1c",
      "parents": [
        "aaa248f6c9c81b2683db7dbb0689cd5ed1c86d88"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Tue Oct 17 00:09:44 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 17 08:18:43 2006 -0700"
      },
      "message": "[PATCH] remove carta_random32\n\nThis library function should be in obj-y and not in lib-y.  But when we do\nthat it clashes unpleasantly with the assembly-language implementation in the\nia64 architecture.\n\nInstead of trying to fix it all up, just remove the generic carta_random32 in\nthe expectation that the recently-made-generic random32() will suffice.\n\nIf/when perfmon is migrated to random32, ia64\u0027s private carta_random32\nimplementation can also be removed.\n\nCc: Stephane Eranian \u003ceranian@hpl.hp.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": "aaa248f6c9c81b2683db7dbb0689cd5ed1c86d88",
      "tree": "106d9ce5ebac4175b0fb97ff80a92e399fcf2a33",
      "parents": [
        "0187f879ee8d4b914e74ffa3cc5df268311fc2d2"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@osdl.org",
        "time": "Tue Oct 17 00:09:42 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 17 08:18:43 2006 -0700"
      },
      "message": "[PATCH] rename net_random to random32\n\nMake net_random() more widely available by calling it random32\n\nakpm: hopefully this will permit the removal of carta_random32.  That needs\nconfirmation from Stephane - this code looks somewhat more computationally\nexpensive, and has a different (ie: callee-stateful) interface.\n\n[akpm@osdl.org: lots of build fixes, cleanups]\nSigned-off-by: Stephen Hemminger \u003cshemminger@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Stephane Eranian \u003ceranian@hpl.hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e0ab2928cc2202f13f0574d4c6f567f166d307eb",
      "tree": "3df0b8e340b1a98cd8a2daa19672ff008e8fb7f9",
      "parents": [
        "b611967de4dc5c52049676c4369dcac622a7cdfe"
      ],
      "author": {
        "name": "Stephane Eranian",
        "email": "eranian@hpl.hp.com",
        "time": "Wed Oct 11 01:21:45 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 11 11:14:21 2006 -0700"
      },
      "message": "[PATCH] Add carta_random32() library routine\n\nThis is a follow-up patch based on the review for perfmon2.  This patch\nadds the carta_random32() library routine + carta_random32.h header file.\n\nThis is fast, simple, and efficient pseudo number generator algorithm.  We\nuse it in perfmon2 to randomize the sampling periods.  In this context, we\ndo not need any fancy randomizer.\n\nSigned-off-by: stephane eranian \u003ceranian@hpl.hp.com\u003e\nCc: David Mosberger \u003cdavid.mosberger@acm.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7d12e780e003f93433d49ce78cfedf4b4c52adc5",
      "tree": "6748550400445c11a306b132009f3001e3525df8",
      "parents": [
        "da482792a6d1a3fbaaa25fae867b343fb4db3246"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Oct 05 14:55:46 2006 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@warthog.cambridge.redhat.com",
        "time": "Thu Oct 05 15:10:12 2006 +0100"
      },
      "message": "IRQ: Maintain regs pointer globally rather than passing to IRQ handlers\n\nMaintain a per-CPU global \"struct pt_regs *\" variable which can be used instead\nof passing regs around manually through all ~1800 interrupt handlers in the\nLinux kernel.\n\nThe regs pointer is used in few places, but it potentially costs both stack\nspace and code to pass it around.  On the FRV arch, removing the regs parameter\nfrom all the genirq function results in a 20% speed up of the IRQ exit path\n(ie: from leaving timer_interrupt() to leaving do_IRQ()).\n\nWhere appropriate, an arch may override the generic storage facility and do\nsomething different with the variable.  On FRV, for instance, the address is\nmaintained in GR28 at all times inside the kernel as part of general exception\nhandling.\n\nHaving looked over the code, it appears that the parameter may be handed down\nthrough up to twenty or so layers of functions.  Consider a USB character\ndevice attached to a USB hub, attached to a USB controller that posts its\ninterrupts through a cascaded auxiliary interrupt controller.  A character\ndevice driver may want to pass regs to the sysrq handler through the input\nlayer which adds another few layers of parameter passing.\n\nI\u0027ve build this code with allyesconfig for x86_64 and i386.  I\u0027ve runtested the\nmain part of the code on FRV and i386, though I can\u0027t test most of the drivers.\nI\u0027ve also done partial conversion for powerpc and MIPS - these at least compile\nwith minimal configurations.\n\nThis will affect all archs.  Mostly the changes should be relatively easy.\nTake do_IRQ(), store the regs pointer at the beginning, saving the old one:\n\n\tstruct pt_regs *old_regs \u003d set_irq_regs(regs);\n\nAnd put the old one back at the end:\n\n\tset_irq_regs(old_regs);\n\nDon\u0027t pass regs through to generic_handle_irq() or __do_IRQ().\n\nIn timer_interrupt(), this sort of change will be necessary:\n\n\t-\tupdate_process_times(user_mode(regs));\n\t-\tprofile_tick(CPU_PROFILING, regs);\n\t+\tupdate_process_times(user_mode(get_irq_regs()));\n\t+\tprofile_tick(CPU_PROFILING);\n\nI\u0027d like to move update_process_times()\u0027s use of get_irq_regs() into itself,\nexcept that i386, alone of the archs, uses something other than user_mode().\n\nSome notes on the interrupt handling in the drivers:\n\n (*) input_dev() is now gone entirely.  The regs pointer is no longer stored in\n     the input_dev struct.\n\n (*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking.  It does\n     something different depending on whether it\u0027s been supplied with a regs\n     pointer or not.\n\n (*) Various IRQ handler function pointers have been moved to type\n     irq_handler_t.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n(cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)\n"
    },
    {
      "commit": "135ab6ec8fdad6f61aabe53f456821baf4a4aa0e",
      "tree": "22a46321949e6621e95f6c21a3d34e3516d07cc8",
      "parents": [
        "821278a75d270048e291fcbec9304439a176ba88"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Mon Oct 02 02:18:44 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:23 2006 -0700"
      },
      "message": "[PATCH] remove remaining errno and __KERNEL_SYSCALLS__ references\n\nThe last in-kernel user of errno is gone, so we should remove the definition\nand everything referring to it.  This also removes the now-unused lib/execve.c\nfile that was introduced earlier.\n\nAlso remove every trace of __KERNEL_SYSCALLS__ that still remained in the\nkernel.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ian Molton \u003cspyro@f2s.com\u003e\nCc: Mikael Starvik \u003cstarvik@axis.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Yoshinori Sato \u003cysato@users.sourceforge.jp\u003e\nCc: Hirokazu Takata \u003ctakata.hirokazu@renesas.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Kazumoto Kojima \u003ckkojima@rr.iij4u.or.jp\u003e\nCc: Richard Curnow \u003crc@rc0.org.uk\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nCc: Miles Bader \u003cuclinux-v850@lsi.nec.co.jp\u003e\nCc: Chris Zankel \u003cchris@zankel.net\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6760856791c6e527da678021ee6a67896549d4da",
      "tree": "31bf78dac3a2ea68282ae394aeedb15bc92ae7d7",
      "parents": [
        "2453a3062d36f39f01302f9f1ad18e7a0c54fe38"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Mon Oct 02 02:18:26 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:23 2006 -0700"
      },
      "message": "[PATCH] introduce kernel_execve\n\nThe use of execve() in the kernel is dubious, since it relies on the\n__KERNEL_SYSCALLS__ mechanism that stores the result in a global errno\nvariable.  As a first step of getting rid of this, change all users to a\nglobal kernel_execve function that returns a proper error code.\n\nThis function is a terrible hack, and a later patch removes it again after the\nkernel syscalls are gone.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ian Molton \u003cspyro@f2s.com\u003e\nCc: Mikael Starvik \u003cstarvik@axis.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Yoshinori Sato \u003cysato@users.sourceforge.jp\u003e\nCc: Hirokazu Takata \u003ctakata.hirokazu@renesas.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Kazumoto Kojima \u003ckkojima@rr.iij4u.or.jp\u003e\nCc: Richard Curnow \u003crc@rc0.org.uk\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nCc: Miles Bader \u003cuclinux-v850@lsi.nec.co.jp\u003e\nCc: Chris Zankel \u003cchris@zankel.net\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "74588d8ba34ff1bda027cfa737972af01ab00c8b",
      "tree": "5e889e96d29c96e9c54ff72933de0612c61e9835",
      "parents": [
        "bc03613decef0cc4d2f3a24f19fa5a868745715f"
      ],
      "author": {
        "name": "Haavard Skinnemoen",
        "email": "hskinnemoen@atmel.com",
        "time": "Sat Sep 30 23:29:12 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 01 00:39:31 2006 -0700"
      },
      "message": "[PATCH] Generic ioremap_page_range: implementation\n\nThis patch adds a generic implementation of ioremap_page_range() in\nlib/ioremap.c based on the i386 implementation. It differs from the\ni386 version in the following ways:\n\n  * The PTE flags are passed as a pgprot_t argument and must be\n    determined up front by the arch-specific code. No additional\n    PTE flags are added.\n  * Uses set_pte_at() instead of set_pte()\n\n[bunk@stusta.de: warning fix]\n]dhowells@redhat.com: nommu build fix]\nSigned-off-by: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Mikael Starvik \u003cstarvik@axis.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: \u003clinux-m32r@ml.linux-m32r.org\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Kyle McMartin \u003ckyle@parisc-linux.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "199a9afc3dbe98c35326f1d3907ab94dae953a6e",
      "tree": "f656df600bec86e8764af2e33bc4a0b98330e758",
      "parents": [
        "df67b3daea602728b51325a4debaeeb912ee51d1"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Fri Sep 29 01:59:00 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:05 2006 -0700"
      },
      "message": "[PATCH] Debug variants of linked list macros\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e65e1fc2d24b09c496af76e9c5253ac30b300a89",
      "tree": "b8f88773afd81ab97d5e6b79fc307523bf6b3430",
      "parents": [
        "05ff0e291af086f4325bac76abad250690bbbd63"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Sep 12 03:04:40 2006 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Sep 12 03:04:40 2006 -0400"
      },
      "message": "[PATCH] syscall class hookup for all normal targets\n\nTake default arch/*/kernel/audit.c to lib/, have those with special\nneeds (\u003d\u003d biarch) define AUDIT_ARCH in their Kconfig.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "cae2ed9aa573415c6e5de9a09b7ff0d74af793bc",
      "tree": "1a7bcea760681872bcc6020843886c5597130eb4",
      "parents": [
        "1f194a4c393103ac925001d7e04b05fbb122580d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:24:48 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:03 2006 -0700"
      },
      "message": "[PATCH] lockdep: locking API self tests\n\nIntroduce DEBUG_LOCKING_API_SELFTESTS, which uses the generic lock debugging\ncode\u0027s silent-failure feature to run a matrix of testcases.  There are 210\ntestcases currently:\n\n  +-----------------------\n  | Locking API testsuite:\n  +------------------------------+------+------+------+------+------+------+\n                                 | spin |wlock |rlock |mutex | wsem | rsem |\n  -------------------------------+------+------+------+------+------+------+\n                     A-A deadlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |\n                 A-B-B-A deadlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |\n             A-B-B-C-C-A deadlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |\n             A-B-C-A-B-C deadlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |\n         A-B-B-C-C-D-D-A deadlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |\n         A-B-C-D-B-D-D-A deadlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |\n         A-B-C-D-B-C-D-A deadlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |\n                    double unlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |\n                 bad unlock order:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |\n  --------------------------------------+------+------+------+------+------+\n              recursive read-lock:             |  ok  |             |  ok  |\n  --------------------------------------+------+------+------+------+------+\n                non-nested unlock:  ok  |  ok  |  ok  |  ok  |\n  --------------------------------------+------+------+------+\n     hard-irqs-on + irq-safe-A/12:  ok  |  ok  |  ok  |\n     soft-irqs-on + irq-safe-A/12:  ok  |  ok  |  ok  |\n     hard-irqs-on + irq-safe-A/21:  ok  |  ok  |  ok  |\n     soft-irqs-on + irq-safe-A/21:  ok  |  ok  |  ok  |\n       sirq-safe-A \u003d\u003e hirqs-on/12:  ok  |  ok  |  ok  |\n       sirq-safe-A \u003d\u003e hirqs-on/21:  ok  |  ok  |  ok  |\n         hard-safe-A + irqs-on/12:  ok  |  ok  |  ok  |\n         soft-safe-A + irqs-on/12:  ok  |  ok  |  ok  |\n         hard-safe-A + irqs-on/21:  ok  |  ok  |  ok  |\n         soft-safe-A + irqs-on/21:  ok  |  ok  |  ok  |\n    hard-safe-A + unsafe-B #1/123:  ok  |  ok  |  ok  |\n    soft-safe-A + unsafe-B #1/123:  ok  |  ok  |  ok  |\n    hard-safe-A + unsafe-B #1/132:  ok  |  ok  |  ok  |\n    soft-safe-A + unsafe-B #1/132:  ok  |  ok  |  ok  |\n    hard-safe-A + unsafe-B #1/213:  ok  |  ok  |  ok  |\n    soft-safe-A + unsafe-B #1/213:  ok  |  ok  |  ok  |\n    hard-safe-A + unsafe-B #1/231:  ok  |  ok  |  ok  |\n    soft-safe-A + unsafe-B #1/231:  ok  |  ok  |  ok  |\n    hard-safe-A + unsafe-B #1/312:  ok  |  ok  |  ok  |\n    soft-safe-A + unsafe-B #1/312:  ok  |  ok  |  ok  |\n    hard-safe-A + unsafe-B #1/321:  ok  |  ok  |  ok  |\n    soft-safe-A + unsafe-B #1/321:  ok  |  ok  |  ok  |\n    hard-safe-A + unsafe-B #2/123:  ok  |  ok  |  ok  |\n    soft-safe-A + unsafe-B #2/123:  ok  |  ok  |  ok  |\n    hard-safe-A + unsafe-B #2/132:  ok  |  ok  |  ok  |\n    soft-safe-A + unsafe-B #2/132:  ok  |  ok  |  ok  |\n    hard-safe-A + unsafe-B #2/213:  ok  |  ok  |  ok  |\n    soft-safe-A + unsafe-B #2/213:  ok  |  ok  |  ok  |\n    hard-safe-A + unsafe-B #2/231:  ok  |  ok  |  ok  |\n    soft-safe-A + unsafe-B #2/231:  ok  |  ok  |  ok  |\n    hard-safe-A + unsafe-B #2/312:  ok  |  ok  |  ok  |\n    soft-safe-A + unsafe-B #2/312:  ok  |  ok  |  ok  |\n    hard-safe-A + unsafe-B #2/321:  ok  |  ok  |  ok  |\n    soft-safe-A + unsafe-B #2/321:  ok  |  ok  |  ok  |\n      hard-irq lock-inversion/123:  ok  |  ok  |  ok  |\n      soft-irq lock-inversion/123:  ok  |  ok  |  ok  |\n      hard-irq lock-inversion/132:  ok  |  ok  |  ok  |\n      soft-irq lock-inversion/132:  ok  |  ok  |  ok  |\n      hard-irq lock-inversion/213:  ok  |  ok  |  ok  |\n      soft-irq lock-inversion/213:  ok  |  ok  |  ok  |\n      hard-irq lock-inversion/231:  ok  |  ok  |  ok  |\n      soft-irq lock-inversion/231:  ok  |  ok  |  ok  |\n      hard-irq lock-inversion/312:  ok  |  ok  |  ok  |\n      soft-irq lock-inversion/312:  ok  |  ok  |  ok  |\n      hard-irq lock-inversion/321:  ok  |  ok  |  ok  |\n      soft-irq lock-inversion/321:  ok  |  ok  |  ok  |\n      hard-irq read-recursion/123:  ok  |\n      soft-irq read-recursion/123:  ok  |\n      hard-irq read-recursion/132:  ok  |\n      soft-irq read-recursion/132:  ok  |\n      hard-irq read-recursion/213:  ok  |\n      soft-irq read-recursion/213:  ok  |\n      hard-irq read-recursion/231:  ok  |\n      soft-irq read-recursion/231:  ok  |\n      hard-irq read-recursion/312:  ok  |\n      soft-irq read-recursion/312:  ok  |\n      hard-irq read-recursion/321:  ok  |\n      soft-irq read-recursion/321:  ok  |\n  --------------------------------+-----+----------------\n  Good, all 210 testcases passed! |\n  --------------------------------+\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9a11b49a805665e13a56aa067afaf81d43ec1514",
      "tree": "bf499956e3f67d1211d68ab1e2eb76645f453dfb",
      "parents": [
        "fb7e42413a098cc45b3adf858da290033af62bae"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:24:33 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:01 2006 -0700"
      },
      "message": "[PATCH] lockdep: better lock debugging\n\nGeneric lock debugging:\n\n - generalized lock debugging framework. For example, a bug in one lock\n   subsystem turns off debugging in all lock subsystems.\n\n - got rid of the caller address passing (__IP__/__IP_DECL__/etc.) from\n   the mutex/rtmutex debugging code: it caused way too much prototype\n   hackery, and lockdep will give the same information anyway.\n\n - ability to do silent tests\n\n - check lock freeing in vfree too.\n\n - more finegrained debugging options, to allow distributions to\n   turn off more expensive debugging features.\n\nThere\u0027s no separate \u0027held mutexes\u0027 list anymore - but there\u0027s a \u0027held locks\u0027\nstack within lockdep, which unifies deadlock detection across all lock\nclasses.  (this is independent of the lockdep validation stuff - lockdep first\nchecks whether we are holding a lock already)\n\nHere are the current debugging options:\n\nCONFIG_DEBUG_MUTEXES\u003dy\nCONFIG_DEBUG_LOCK_ALLOC\u003dy\n\nwhich do:\n\n config DEBUG_MUTEXES\n          bool \"Mutex debugging, basic checks\"\n\n config DEBUG_LOCK_ALLOC\n         bool \"Detect incorrect freeing of live mutexes\"\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "77ba89c5cf28d5d98a3cae17f67a3e42b102cc25",
      "tree": "d487b536522574ab183cc600b62008c60db85b59",
      "parents": [
        "8eb94f80dd2da5977c35cd094f0802c1501a12cd"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 27 02:54:51 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:46 2006 -0700"
      },
      "message": "[PATCH] pi-futex: add plist implementation\n\nAdd the priority-sorted list (plist) implementation.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3cbc564024d8f174202f023e8a2991782f6a9431",
      "tree": "5d523ef9694b7a0bf07d4db58718f4654afa3f04",
      "parents": [
        "d09042da7284a86ffbdd18695f517a71514ed598"
      ],
      "author": {
        "name": "Ravikiran G Thirumalai",
        "email": "kiran@scalex86.org",
        "time": "Fri Jun 23 02:05:40 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:43:06 2006 -0700"
      },
      "message": "[PATCH] percpu_counters: create lib/percpu_counter.c\n\n- Move percpu_counter routines from mm/swap.c to lib/percpu_counter.c\n\nSigned-off-by: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3b9ed1a5d2d121f32d2cb4f2b05f1fc57c99c946",
      "tree": "d8ea52d6b490c0e3b3851e1887c01700cc0115c6",
      "parents": [
        "09020adb61416c4307de35941a9725a5e33d9beb"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "mita@miraclelinux.com",
        "time": "Sun Mar 26 01:39:13 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:57:11 2006 -0800"
      },
      "message": "[PATCH] bitops: generic hweight{64,32,16,8}()\n\nThis patch introduces the C-language equivalents of the functions below:\n\nunsigned int hweight32(unsigned int w);\nunsigned int hweight16(unsigned int w);\nunsigned int hweight8(unsigned int w);\nunsigned long hweight64(__u64 w);\n\nIn include/asm-generic/bitops/hweight.h\n\nThis code largely copied from: include/linux/bitops.h\n\nSigned-off-by: Akinobu Mita \u003cmita@miraclelinux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ccb46000f4bb459777686611157ac0eac928704e",
      "tree": "461e956d9e27a7afa7de64950f3186070ffa61f5",
      "parents": [
        "64b91379439ff0fb007bde90eb496299c14a9b2a"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sat Mar 25 03:08:08 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:59 2006 -0800"
      },
      "message": "[PATCH] cpumask: uninline first_cpu()\n\n           text    data     bss     dec     hex filename\nbefore: 3490577 1322408  360000 5172985  4eeef9 vmlinux\nafter:  3488027 1322496  360128 5170651  4ee5db vmlinux\n\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c27a0d75b33c030965cc97d3d7f571107a673fb4",
      "tree": "c4d797b413bb6f8a1b8507213294a291ab5114f8",
      "parents": [
        "f7589f28d7dd4586b4e90ac3b2a180409669053a"
      ],
      "author": {
        "name": "Bryan O\u0027Sullivan",
        "email": "bos@pathscale.com",
        "time": "Wed Feb 01 03:05:16 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:13 2006 -0800"
      },
      "message": "[PATCH] Introduce __iowrite32_copy\n\nThis arch-independent routine copies data to a memory-mapped I/O region,\nusing 32-bit accesses.  The naming is double-underscored to make it clear\nthat it does not guarantee write ordering, nor does it perform a memory\nbarrier afterwards; the kernel doc also explicitly states this.  This style\nof access is required by some devices.\n\nThis change also introduces include/linux/io.h, at Andrew\u0027s suggestion.  It\nonly has one occupant at the moment, but is a logical destination for\noft-replicated contents of include/asm-*/{io,iomap}.h to migrate to.\n\nSigned-off-by: Bryan O\u0027Sullivan \u003cbos@pathscale.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6c654b5fdf093cd05f35f7c9c2a00182fa5636dc",
      "tree": "7aa16a41d64b906c6e7e5248897f88027428d12a",
      "parents": [
        "0b9afede3d9c66fef06f1d5ef5ff15c4b97730fc"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Sep 29 14:42:42 2005 -0700"
      },
      "committer": {
        "name": "Tony Luck",
        "email": "tony.luck@intel.com",
        "time": "Thu Sep 29 14:42:42 2005 -0700"
      },
      "message": "[PATCH] swiotlb: move from arch/ia64/lib/ to lib/\n\nThe swiotlb implementation is shared by both IA-64 and EM64T. However,\nthe source itself lives under arch/ia64. This patch moves swiotlb.c\nfrom arch/ia64/lib to lib/ and fixes-up the appropriate Makefile and\nKconfig files. No actual changes are made to swiotlb.c.\n\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\n"
    },
    {
      "commit": "fb1c8f93d869b34cacb8b8932e2b83d96a19d720",
      "tree": "a006d078aa02e421a7dc4793c335308204859d36",
      "parents": [
        "4327edf6b8a7ac7dce144313947995538842d8fd"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Sep 10 00:25:56 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 10:06:21 2005 -0700"
      },
      "message": "[PATCH] spinlock consolidation\n\nThis patch (written by me and also containing many suggestions of Arjan van\nde Ven) does a major cleanup of the spinlock code.  It does the following\nthings:\n\n - consolidates and enhances the spinlock/rwlock debugging code\n\n - simplifies the asm/spinlock.h files\n\n - encapsulates the raw spinlock type and moves generic spinlock\n   features (such as -\u003ebreak_lock) into the generic code.\n\n - cleans up the spinlock code hierarchy to get rid of the spaghetti.\n\nMost notably there\u0027s now only a single variant of the debugging code,\nlocated in lib/spinlock_debug.c.  (previously we had one SMP debugging\nvariant per architecture, plus a separate generic one for UP builds)\n\nAlso, i\u0027ve enhanced the rwlock debugging facility, it will now track\nwrite-owners.  There is new spinlock-owner/CPU-tracking on SMP builds too.\nAll locks have lockup detection now, which will work for both soft and hard\nspin/rwlock lockups.\n\nThe arch-level include files now only contain the minimally necessary\nsubset of the spinlock code - all the rest that can be generalized now\nlives in the generic headers:\n\n include/asm-i386/spinlock_types.h       |   16\n include/asm-x86_64/spinlock_types.h     |   16\n\nI have also split up the various spinlock variants into separate files,\nmaking it easier to see which does what. The new layout is:\n\n   SMP                         |  UP\n   ----------------------------|-----------------------------------\n   asm/spinlock_types_smp.h    |  linux/spinlock_types_up.h\n   linux/spinlock_types.h      |  linux/spinlock_types.h\n   asm/spinlock_smp.h          |  linux/spinlock_up.h\n   linux/spinlock_api_smp.h    |  linux/spinlock_api_up.h\n   linux/spinlock.h            |  linux/spinlock.h\n\n/*\n * here\u0027s the role of the various spinlock/rwlock related include files:\n *\n * on SMP builds:\n *\n *  asm/spinlock_types.h: contains the raw_spinlock_t/raw_rwlock_t and the\n *                        initializers\n *\n *  linux/spinlock_types.h:\n *                        defines the generic type and initializers\n *\n *  asm/spinlock.h:       contains the __raw_spin_*()/etc. lowlevel\n *                        implementations, mostly inline assembly code\n *\n *   (also included on UP-debug builds:)\n *\n *  linux/spinlock_api_smp.h:\n *                        contains the prototypes for the _spin_*() APIs.\n *\n *  linux/spinlock.h:     builds the final spin_*() APIs.\n *\n * on UP builds:\n *\n *  linux/spinlock_type_up.h:\n *                        contains the generic, simplified UP spinlock type.\n *                        (which is an empty structure on non-debug builds)\n *\n *  linux/spinlock_types.h:\n *                        defines the generic type and initializers\n *\n *  linux/spinlock_up.h:\n *                        contains the __raw_spin_*()/etc. version of UP\n *                        builds. (which are NOPs on non-debug, non-preempt\n *                        builds)\n *\n *   (included on UP-non-debug builds:)\n *\n *  linux/spinlock_api_up.h:\n *                        builds the _spin_*() APIs.\n *\n *  linux/spinlock.h:     builds the final spin_*() APIs.\n */\n\nAll SMP and UP architectures are converted by this patch.\n\narm, i386, ia64, ppc, ppc64, s390/s390x, x64 was build-tested via\ncrosscompilers.  m32r, mips, sh, sparc, have not been tested yet, but should\nbe mostly fine.\n\nFrom: Grant Grundler \u003cgrundler@parisc-linux.org\u003e\n\n  Booted and lightly tested on a500-44 (64-bit, SMP kernel, dual CPU).\n  Builds 32-bit SMP kernel (not booted or tested).  I did not try to build\n  non-SMP kernels.  That should be trivial to fix up later if necessary.\n\n  I converted bit ops atomic_hash lock to raw_spinlock_t.  Doing so avoids\n  some ugly nesting of linux/*.h and asm/*.h files.  Those particular locks\n  are well tested and contained entirely inside arch specific code.  I do NOT\n  expect any new issues to arise with them.\n\n If someone does ever need to use debug/metrics with them, then they will\n  need to unravel this hairball between spinlocks, atomic ops, and bit ops\n  that exist only because parisc has exactly one atomic instruction: LDCW\n  (load and clear word).\n\nFrom: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\n\n   ia64 fix\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjanv@infradead.org\u003e\nSigned-off-by: Grant Grundler \u003cgrundler@parisc-linux.org\u003e\nCc: Matthew Wilcox \u003cwilly@debian.org\u003e\nSigned-off-by: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nSigned-off-by: Mikael Pettersson \u003cmikpe@csd.uu.se\u003e\nSigned-off-by: Benoit Boissinot \u003cbenoit.boissinot@ens-lyon.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7657ec1fcb69e266ab876af56332d0c484ca6d00",
      "tree": "6118ceffa2f83f43c3086941d96011dc1abeb459",
      "parents": [
        "a3d65f254274567daa89d8b99ab3d481d60fcaef"
      ],
      "author": {
        "name": "Evgeniy Polyakov",
        "email": "johnpol@2ka.mipt.ru",
        "time": "Wed Aug 17 15:17:26 2005 +0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Sep 08 14:41:27 2005 -0700"
      },
      "message": "[PATCH] lib/crc16: added crc16 algorithm.\n\nAdd the crc16 routines, as used by w1 devices.\n\nSigned-off-by: Ben Gardner \u003cbgardner@wabtec.com\u003e\nSigned-off-by: Evgeniy Polyakov \u003cjohnpol@2ka.mipt.ru\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "52fdd08903a1d1162e184114837e232640191627",
      "tree": "9469f521b7ba12ac48337155bc5a65049d361229",
      "parents": [
        "4ad8d38342430f8b52f7a8458dce90caf8c8ca64"
      ],
      "author": {
        "name": "Benjamin LaHaise",
        "email": "bcrl@kvack.org",
        "time": "Sat Sep 03 15:56:52 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:06:14 2005 -0700"
      },
      "message": "[PATCH] unify x86/x86-64 semaphore code\n\nThis patch moves the common code in x86 and x86-64\u0027s semaphore.c into a\nsingle file in lib/semaphore-sleepers.c.  The arch specific asm stubs are\nleft in the arch tree (in semaphore.c for i386 and in the asm for x86-64).\nThere should be no changes in code/functionality with this patch.\n\nSigned-off-by: Benjamin LaHaise \u003cbenjamin.c.lahaise@intel.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8082e4ed0a61da347f1c7f210493c4e9e55c8cd0",
      "tree": "f77b01974f0c773a828b7f910f9269a0a07d298f",
      "parents": [
        "cf4ef01440ca5c6d96f2ea2b793a37a0a863a045"
      ],
      "author": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@eurodev.net",
        "time": "Thu Aug 25 16:12:22 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 16:11:06 2005 -0700"
      },
      "message": "[LIB]: Boyer-Moore extension for textsearch infrastructure strike #2\n\nAttached the implementation of the Boyer-Moore string search\nalgorithm for the new textsearch infrastructure.\n\nI\u0027ve added as well a note about the limitations that this approach\npresents, as Thomas has remarked.\n\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@eurodev.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7e8c9e14e8fdce0af9f5eed7ce6dd26b91fc8f4e",
      "tree": "5cf9aed809b520eea2dbdf4926c490966169c919",
      "parents": [
        "1aaf18ff9de1f37bf674236fc0779c3aaa65b998"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Wed Jul 27 11:43:55 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jul 27 16:25:53 2005 -0700"
      },
      "message": "[PATCH] statically link halfmd4\n\nFor some reason halfmd4 isn\u0027t being linked into the kernel any more and\nmodular ext3 wants it.\n\nSo statically link the halfmd4 code into the kernel.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "65df877ab2e2328a4704af218efaed0a45176c86",
      "tree": "ec7cf77ddc08fca3c007dc0ac209d1e7ba2953d3",
      "parents": [
        "a8acfbac75c2ffdd66fb5dfcdb7ab5aaced94fd8"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 23 23:49:52 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 23 23:49:52 2005 -0700"
      },
      "message": "[LIB]: textsearch.o needs to be obj-y not lib-y.\n\nIt exports symbols.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6408f79cce401e1bfecf923e7156f84f96e021e3",
      "tree": "203624ffacf60d364293adc47d2f59f6ba81dd35",
      "parents": [
        "df3fb93ad9ec0b20c785c0ad82d42d159a1af272"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Thu Jun 23 20:59:16 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 23 20:59:16 2005 -0700"
      },
      "message": "[LIB]: Naive finite state machine based textsearch\n\nA finite state machine consists of n states (struct ts_fsm_token)\nrepresenting the pattern as a finite automation. The data is read\nsequentially on a octet basis. Every state token specifies the number\nof recurrences and the type of value accepted which can be either a\nspecific character or ctype based set of characters. The available\ntype of recurrences include 1, (0|1), [0 n], and [1 n].\n\nThe algorithm differs between strict/non-strict mode specyfing\nwhether the pattern has to start at the first octect. Strict mode\nis enabled by default and can be disabled by inserting\nTS_FSM_HEAD_IGNORE as the first token in the chain.\n\nThe runtime performance of the algorithm should be around O(n),\nhowever while in strict mode the average runtime can be better.\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "df3fb93ad9ec0b20c785c0ad82d42d159a1af272",
      "tree": "e29ba25f55cb77e24310999a949b433e98d7656e",
      "parents": [
        "2de4ff7bd658c97fb357efa3095a509674dacb5a"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Thu Jun 23 20:58:37 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 23 20:58:37 2005 -0700"
      },
      "message": "[LIB]: Knuth-Morris-Pratt textsearch algorithm\n\nImplements a linear-time string-matching algorithm due to Knuth,\nMorris, and Pratt [1]. Their algorithm avoids the explicit\ncomputation of the transition function DELTA altogether. Its\nmatching time is O(n), for n being length(text), using just an\nauxiliary function PI[1..m], for m being length(pattern),\nprecomputed from the pattern in time O(m). The array PI allows\nthe transition function DELTA to be computed efficiently\n\"on the fly\" as needed. Roughly speaking, for any state\n\"q\" \u003d 0,1,...,m and any character \"a\" in SIGMA, the value\nPI[\"q\"] contains the information that is independent of \"a\" and\nis needed to compute DELTA(\"q\", \"a\") [2]. Since the array PI\nhas only m entries, whereas DELTA has O(m|SIGMA|) entries, we\nsave a factor of |SIGMA| in the preprocessing time by computing\nPI rather than DELTA.\n \n[1] Cormen, Leiserson, Rivest, Stein\n    Introdcution to Algorithms, 2nd Edition, MIT Press\n[2] See finite automation theory\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2de4ff7bd658c97fb357efa3095a509674dacb5a",
      "tree": "49036dbf594317a6a17ff4e56f65158a6aeacbda",
      "parents": [
        "5f8ef48d240963093451bcf83df89f1a1364f51d"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Thu Jun 23 20:49:30 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 23 20:49:30 2005 -0700"
      },
      "message": "[LIB]: Textsearch infrastructure.\n\nThe textsearch infrastructure provides text searching\nfacitilies for both linear and non-linear data.\nIndividual search algorithms are implemented in modules\nand chosen by the user.\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f14f75b81187cdbe10cc53a521bf9fdf97b59f8c",
      "tree": "5c0d48c8a3338e6f1747e6cd55f699be96ffef1a",
      "parents": [
        "2caaad41e4aa8f5dd999695b4ddeaa0e7f3912a4"
      ],
      "author": {
        "name": "Jes Sorensen",
        "email": "jes@wildopensource.com",
        "time": "Tue Jun 21 17:15:02 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue Jun 21 18:46:18 2005 -0700"
      },
      "message": "[PATCH] ia64 uncached alloc\n\nThis patch contains the ia64 uncached page allocator and the generic\nallocator (genalloc).  The uncached allocator was formerly part of the SN2\nmspec driver but there are several other users of it so it has been split\noff from the driver.\n\nThe generic allocator can be used by device driver to manage special memory\netc.  The generic allocator is based on the allocator from the sym53c8xx_2\ndriver.\n\nVarious users on ia64 needs uncached memory.  The SGI SN architecture requires\nit for inter-partition communication between partitions within a large NUMA\ncluster.  The specific user for this is the XPC code.  Another application is\nlarge MPI style applications which use it for synchronization, on SN this can\nbe done using special \u0027fetchop\u0027 operations but it also benefits non SN\nhardware which may use regular uncached memory for this purpose.  Performance\nof doing this through uncached vs cached memory is pretty substantial.  This\nis handled by the mspec driver which I will push out in a seperate patch.\n\nRather than creating a specific allocator for just uncached memory I came up\nwith genalloc which is a generic purpose allocator that can be used by device\ndrivers and other subsystems as they please.  For instance to handle onboard\ndevice memory.  It was derived from the sym53c7xx_2 driver\u0027s allocator which\nis also an example of a potential user (I am refraining from modifying sym2\nright now as it seems to have been under fairly heavy development recently).\n\nOn ia64 memory has various properties within a granule, ie.  it isn\u0027t safe to\naccess memory as uncached within the same granule as currently has memory\naccessed in cached mode.  The regular system therefore doesn\u0027t utilize memory\nin the lower granules which is mixed in with device PAL code etc.  The\nuncached driver walks the EFI memmap and pulls out the spill uncached pages\nand sticks them into the uncached pool.  Only after these chunks have been\nutilized, will it start converting regular cached memory into uncached memory.\nHence the reason for the EFI related code additions.\n\nSigned-off-by: Jes Sorensen \u003cjes@wildopensource.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "39c715b71740c4a78ba4769fb54826929bac03cb",
      "tree": "94dd679dfc8e6c2db65971739aa8c8c6206f8174",
      "parents": [
        "84929801e14d968caeb84795bfbb88f04283fbd9"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 21 17:14:34 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue Jun 21 18:46:13 2005 -0700"
      },
      "message": "[PATCH] smp_processor_id() cleanup\n\nThis patch implements a number of smp_processor_id() cleanup ideas that\nArjan van de Ven and I came up with.\n\nThe previous __smp_processor_id/_smp_processor_id/smp_processor_id API\nspaghetti was hard to follow both on the implementational and on the\nusage side.\n\nSome of the complexity arose from picking wrong names, some of the\ncomplexity comes from the fact that not all architectures defined\n__smp_processor_id.\n\nIn the new code, there are two externally visible symbols:\n\n - smp_processor_id(): debug variant.\n\n - raw_smp_processor_id(): nondebug variant. Replaces all existing\n   uses of _smp_processor_id() and __smp_processor_id(). Defined\n   by every SMP architecture in include/asm-*/smp.h.\n\nThere is one new internal symbol, dependent on DEBUG_PREEMPT:\n\n - debug_smp_processor_id(): internal debug variant, mapped to\n                             smp_processor_id().\n\nAlso, i moved debug_smp_processor_id() from lib/kernel_lock.c into a new\nlib/smp_processor_id.c file.  All related comments got updated and/or\nclarified.\n\nI have build/boot tested the following 8 .config combinations on x86:\n\n {SMP,UP} x {PREEMPT,!PREEMPT} x {DEBUG_PREEMPT,!DEBUG_PREEMPT}\n\nI have also build/boot tested x64 on UP/PREEMPT/DEBUG_PREEMPT.  (Other\narchitectures are untested, but should work just fine.)\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9a19fea43616066561e221359596ce532e631395",
      "tree": "f776bee1bcb1051bf75323b65fa887347412409e",
      "parents": [
        "6034a080f98b0bbc0a058e2ac65a538f75cffeee"
      ],
      "author": {
        "name": "mochel@digitalimplant.org",
        "email": "mochel@digitalimplant.org",
        "time": "Mon Mar 21 11:45:16 2005 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 20 15:15:14 2005 -0700"
      },
      "message": "[PATCH] Add initial implementation of klist helpers.\n\nThis klist interface provides a couple of structures that wrap around\nstruct list_head to provide explicit list \"head\" (struct klist) and\nlist \"node\" (struct klist_node) objects. For struct klist, a spinlock\nis included that protects access to the actual list itself. struct\nklist_node provides a pointer to the klist that owns it and a kref\nreference count that indicates the number of current users of that node\nin the list.\n\nThe entire point is to provide an interface for iterating over a list\nthat is safe and allows for modification of the list during the\niteration (e.g. insertion and removal), including modification of the\ncurrent node on the list.\n\nIt works using a 3rd object type - struct klist_iter - that is declared\nand initialized before an iteration. klist_next() is used to acquire the\nnext element in the list. It returns NULL if there are no more items.\nThis klist interface provides a couple of structures that wrap around\nstruct list_head to provide explicit list \"head\" (struct klist) and\nlist \"node\" (struct klist_node) objects. For struct klist, a spinlock\nis included that protects access to the actual list itself. struct\nklist_node provides a pointer to the klist that owns it and a kref\nreference count that indicates the number of current users of that node\nin the list.\n\nThe entire point is to provide an interface for iterating over a list\nthat is safe and allows for modification of the list during the\niteration (e.g. insertion and removal), including modification of the\ncurrent node on the list.\n\nIt works using a 3rd object type - struct klist_iter - that is declared\nand initialized before an iteration. klist_next() is used to acquire the\nnext element in the list. It returns NULL if there are no more items.\nInternally, that routine takes the klist\u0027s lock, decrements the reference\ncount of the previous klist_node and increments the count of the next\nklist_node. It then drops the lock and returns.\n\nThere are primitives for adding and removing nodes to/from a klist.\nWhen deleting, klist_del() will simply decrement the reference count.\nOnly when the count goes to 0 is the node removed from the list.\nklist_remove() will try to delete the node from the list and block\nuntil it is actually removed. This is useful for objects (like devices)\nthat have been removed from the system and must be freed (but must wait\nuntil all accessors have finished).\n\nInternally, that routine takes the klist\u0027s lock, decrements the reference\ncount of the previous klist_node and increments the count of the next\nklist_node. It then drops the lock and returns.\n\nThere are primitives for adding and removing nodes to/from a klist.\nWhen deleting, klist_del() will simply decrement the reference count.\nOnly when the count goes to 0 is the node removed from the list.\nklist_remove() will try to delete the node from the list and block\nuntil it is actually removed. This is useful for objects (like devices)\nthat have been removed from the system and must be freed (but must wait\nuntil all accessors have finished).\n\nSigned-off-by: Patrick Mochel \u003cmochel@digitalimplant.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\ndiff -Nru a/include/linux/klist.h b/include/linux/klist.h\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
