)]}'
{
  "log": [
    {
      "commit": "99558f0bbe68cb09799ec38adbaa3f3b2dc7ba63",
      "tree": "03a0393cae76ac3d0249fc53128974433d94e802",
      "parents": [
        "773e3eb7b81e5ba13b5155dfb3bb75b8ce37f8f9"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Wed Feb 10 01:20:34 2010 -0800"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Wed Feb 17 17:27:03 2010 -0800"
      },
      "message": "sparseirq: Change irq_desc_ptrs to static\n\nAdd replace_irq_desc() instead of poking at the array directly.\n\n-v2: remove unneeded boundary check in replace_irq_desc\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nLKML-Reference: \u003c1265793639-15071-31-git-send-email-yinghai@kernel.org\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "239007b8440abff689632f50cdf0f2b9e895b534",
      "tree": "569cab843af4a999d6d868ec9a824530d2bfa733",
      "parents": [
        "9f5a5621e78cf48d86682a71ceb3fcdbde38b222"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Nov 17 16:46:45 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Dec 14 23:55:33 2009 +0100"
      },
      "message": "genirq: Convert irq_desc.lock to raw_spinlock\n\nConvert locks which cannot be sleeping locks in preempt-rt to\nraw_spinlocks.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "70aedd24d20e75198f5a0b11750faabbb56924e2",
      "tree": "8492641c61aa3af6f4dea421b8f628efe6fc92bd",
      "parents": [
        "b25c340c195447afb1860da580fe2a85a6b652c5"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Aug 13 12:17:48 2009 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Aug 17 10:54:05 2009 +0200"
      },
      "message": "genirq: Add buslock support\n\nSome interrupt chips are connected to a \"slow\" bus (i2c, spi ...). The\nbus access needs to sleep and therefor cannot be called in atomic\ncontexts.\n\nSome of the generic interrupt management functions like disable_irq(),\nenable_irq() ... call interrupt chip functions with the irq_desc-\u003elock\nheld and interrupts disabled. This does not work for such devices.\n\nProvide a separate synchronization mechanism for such interrupt\nchips. The irq_chip structure is extended by two optional functions\n(bus_lock and bus_sync_and_unlock).\n\nThe idea is to serialize the bus access for those operations in the\ncore code so that drivers which are behind that bus operated interrupt\ncontroller do not have to worry about it and just can use the normal\ninterfaces. To achieve this we add two function pointers to the\nirq_chip: bus_lock and bus_sync_unlock.\n\nbus_lock() is called to serialize access to the interrupt controller\nbus.\n\nNow the core code can issue chip-\u003emask/unmask ... commands without\nchanging the fast path code at all. The chip implementation merily\nstores that information in a chip private data structure and\nreturns. No bus interaction as these functions are called from atomic\ncontext.\n\nAfter that bus_sync_unlock() is called outside the atomic context. Now\nthe chip implementation issues the bus commands, waits for completion\nand unlocks the interrupt controller bus.\n\nThe irq_chip implementation as pseudo code:\n\nstruct irq_chip_data {\n       struct mutex   mutex;\n       unsigned int   irq_offset;\n       unsigned long  mask;\n       unsigned long  mask_status;\n}\n\nstatic void bus_lock(unsigned int irq)\n{\n        struct irq_chip_data *data \u003d get_irq_desc_chip_data(irq);\n\n        mutex_lock(\u0026data-\u003emutex);\n}\n\nstatic void mask(unsigned int irq)\n{\n        struct irq_chip_data *data \u003d get_irq_desc_chip_data(irq);\n\n        irq -\u003d data-\u003eirq_offset;\n        data-\u003emask |\u003d (1 \u003c\u003c irq);\n}\n\nstatic void unmask(unsigned int irq)\n{\n        struct irq_chip_data *data \u003d get_irq_desc_chip_data(irq);\n\n        irq -\u003d data-\u003eirq_offset;\n        data-\u003emask \u0026\u003d ~(1 \u003c\u003c irq);\n}\n\nstatic void bus_sync_unlock(unsigned int irq)\n{\n        struct irq_chip_data *data \u003d get_irq_desc_chip_data(irq);\n\n        if (data-\u003emask !\u003d data-\u003emask_status) {\n                do_bus_magic_to_set_mask(data-\u003emask);\n                data-\u003emask_status \u003d data-\u003emask;\n        }\n        mutex_unlock(\u0026data-\u003emutex);\n}\n\nThe device drivers can use request_threaded_irq, free_irq, disable_irq\nand enable_irq as usual with the only restriction that the calls need\nto come from non atomic context.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nCc: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\nCc: Trilok Soni \u003csoni.trilok@gmail.com\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Brian Swetland \u003cswetland@google.com\u003e\nCc: Joonyoung Shim \u003cjy0922.shim@samsung.com\u003e\nCc: m.szyprowski@samsung.com\nCc: t.fujak@samsung.com\nCc: kyungmin.park@samsung.com,\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nCc: Daniel Ribeiro \u003cdrwyrm@gmail.com\u003e\nCc: arve@android.com\nCc: Barry Song \u003c21cnbao@gmail.com\u003e\n\n"
    },
    {
      "commit": "591d2fb02ea80472d846c0b8507007806bdd69cc",
      "tree": "c7962a95a47bbdf664f15a504eff24c351f33613",
      "parents": [
        "aea1f7964ae6cba5eb419a958956deb9016b3341"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jul 21 11:09:39 2009 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jul 21 14:35:07 2009 +0200"
      },
      "message": "genirq: Delegate irq affinity setting to the irq thread\n\nirq_set_thread_affinity() calls set_cpus_allowed_ptr() which might\nsleep, but irq_set_thread_affinity() is called with desc-\u003elock held\nand can be called from hard interrupt context as well. The code has\nanother bug as it does not hold a ref on the task struct as required\nby set_cpus_allowed_ptr().\n\nJust set the IRQTF_AFFINITY bit in action-\u003ethread_flags. The next time\nthe thread runs it migrates itself. Solves all of the above problems\nnicely.\n\nAdd kerneldoc to irq_set_thread_affinity() while at it.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLKML-Reference: \u003cnew-submission\u003e\n\n"
    },
    {
      "commit": "85ac16d033370caf6f48d743c8dc8103700f5cc5",
      "tree": "04a73af31c07a8ad29780b777b3f9d041fa236fa",
      "parents": [
        "57b150cce8e004ddd36330490a68bfb59b7271e9"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Mon Apr 27 18:00:38 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 28 12:21:17 2009 +0200"
      },
      "message": "x86/irq: change irq_desc_alloc() to take node instead of cpu\n\nThis simplifies the node awareness of the code. All our allocators\nonly deal with a NUMA node ID locality not with CPU ids anyway - so\nthere\u0027s no need to maintain (and transform) a CPU id all across the\nIRq layer.\n\nv2: keep move_irq_desc related\n\n[ Impact: cleanup, prepare IRQ code to be NUMA-aware ]\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nLKML-Reference: \u003c49F65536.2020300@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "57b150cce8e004ddd36330490a68bfb59b7271e9",
      "tree": "f337b08b6cd9bbe165c709a7e5159b0d6d779238",
      "parents": [
        "d5dedd4507d307eb3f35f21b6e16f336fdc0d82a"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Mon Apr 27 17:59:53 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 28 12:21:16 2009 +0200"
      },
      "message": "irq: only update affinity if -\u003eset_affinity() is sucessfull\n\nirq_set_affinity() and move_masked_irq() try to assign affinity\nbefore calling chip set_affinity(). Some archs are assigning it\nin -\u003eset_affinity() again.\n\nWe do something like:\n\n cpumask_cpy(desc-\u003eaffinity, mask);\n desc-\u003echip-\u003eset_affinity(mask);\n\nBut in the failure path, affinity should not be touched - otherwise\nwe\u0027ll end up with a different affinity mask despite the failure to\nmigrate the IRQ.\n\nSo try to update the afffinity only if set_affinity returns with 0.\nAlso call irq_set_thread_affinity accordingly.\n\nv2: update after \"irq, x86: Remove IRQ_DISABLED check in process context IRQ move\"\nv3: according to Ingo, change set_affinity() in irq_chip should return int.\nv4: update comments by removing moving irq_desc code.\n\n[ Impact: fix /proc/irq/*/smp_affinity setting corner case bug ]\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nLKML-Reference: \u003c49F65509.60307@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0a0c5168df270a50e3518e4f12bddb31f8f5f38f",
      "tree": "ea1e392fef9d52a7b81c9010580c09317a4d707d",
      "parents": [
        "019abbc87025a030fd25008612afd4eff8a375f7"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 16 22:33:49 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 30 21:46:54 2009 +0200"
      },
      "message": "PM: Introduce functions for suspending and resuming device interrupts\n\nIntroduce helper functions allowing us to prevent device drivers from\ngetting any interrupts (without disabling interrupts on the CPU)\nduring suspend (or hibernation) and to make them start to receive\ninterrupts again during the subsequent resume.  These functions make it\npossible to keep timer interrupts enabled while the \"late\" suspend and\n\"early\" resume callbacks provided by device drivers are being\nexecuted.  In turn, this allows device drivers\u0027 \"late\" suspend and\n\"early\" resume callbacks to sleep, execute ACPI callbacks etc.\n\nThe functions introduced here will be used to rework the handling of\ninterrupts during suspend (hibernation) and resume.  Namely,\ninterrupts will only be disabled on the CPU right before suspending\nsysdevs, while device drivers will be prevented from receiving\ninterrupts, with the help of the new helper function, before their\n\"late\" suspend callbacks run (and analogously during resume).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6e15cf04860074ad032e88c306bea656bbdd0f22",
      "tree": "c346383bb7563e8d66b2f4a502f875b259c34870",
      "parents": [
        "be0ea69674ed95e1e98cb3687a241badc756d228",
        "60db56422043aaa455ac7f858ce23c273220f9d9"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 26 21:39:17 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 27 17:28:43 2009 +0100"
      },
      "message": "Merge branch \u0027core/percpu\u0027 into percpu-cpumask-x86-for-linus-2\n\nConflicts:\n\tarch/parisc/kernel/irq.c\n\tarch/x86/include/asm/fixmap_64.h\n\tarch/x86/include/asm/setup.h\n\tkernel/irq/handle.c\n\nSemantic merge:\n        arch/x86/include/asm/fixmap.h\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0f3c2a89c1451cdf6328f99977bd9decd4f708e1",
      "tree": "5f06396e409410e5d506f72fe6abebc376a5e689",
      "parents": [
        "4d87c5bec5389625d80b71108795aecf82cd670d"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Sun Feb 08 16:18:03 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 09 08:55:08 2009 +0100"
      },
      "message": "irq: clear kstat_irqs\n\nImpact: get correct kstat_irqs [/proc/interrupts] for msi/msi-x etc\n\nneed to call clear_kstat_irqs(), so when we reuse that irq_desc,\nwe get correct kstat in /proc/interrupts.\n\nThis makes /proc/interrupts not have \u003cNULL\u003e entries.\n\nDon\u0027t need to worry about arch that doesn\u0027t support genirq, because they\nwill not call dynamic_irq_cleanup().\n\nv2: simplify and make clear_kstat_irqs more robust\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0fa0ebbf15addc1be8f73325d809c8547a9de304",
      "tree": "cd995419a3eb84d3e18e92ff205af86a7a4ed66d",
      "parents": [
        "e2f4d06545ec1f29b0e838ee34cbf3500ea5b9a4"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Sat Jan 10 22:24:06 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jan 11 19:13:35 2009 +0100"
      },
      "message": "irq: allocate irq_desc_ptrs array based on nr_irqs\n\nImpact: allocate irq_desc_ptrs in preparation for making it variable-sized.\n\nThis addresses this memory usage bump when NR_CPUS bumped from 128 to 4096:\n\n    34816   +229376    264192  +658%  irq_desc_ptrs(.data.read_mostly)\n\nThe patch is split into two parts, the first simply allocates the\nirq_desc_ptrs array.  Then next will deal with making it variable.\nThis is only when CONFIG_SPARSE_IRQS\u003dy.\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\n"
    },
    {
      "commit": "48a1b10aff588833b73994704c47bbd0deb73e9c",
      "tree": "deb3c7b486346c3afa54014b3c3516344c2708f2",
      "parents": [
        "13bd41bc227a48d6cf8992a3286bf6eba3c71a0c"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Thu Dec 11 00:15:01 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 17 00:14:01 2008 +0100"
      },
      "message": "x86, sparseirq: move irq_desc according to smp_affinity, v7\n\nImpact: improve NUMA handling by migrating irq_desc on smp_affinity changes\n\nif CONFIG_NUMA_MIGRATE_IRQ_DESC is set:\n\n-  make irq_desc to go with affinity aka irq_desc moving etc\n-  call move_irq_desc in irq_complete_move()\n-  legacy irq_desc is not moved, because they are allocated via static array\n\nfor logical apic mode, need to add move_desc_in_progress_in_same_domain,\notherwise it will not be moved \u003d\u003d\u003e also could need two phases to get\nirq_desc moved.\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f6d87f4bd259cf33e092cd1a8fde05f291c47af1",
      "tree": "abaa66af3c80fb18a20004b8d97261c680551792",
      "parents": [
        "8b805ef617cf0e02f6d18b891f8deb6246421b01"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Nov 07 13:18:30 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 09 22:23:49 2008 +0100"
      },
      "message": "genirq: keep affinities set from userspace across free/request_irq()\n\nImpact: preserve user-modified affinities on interrupts\n\nKumar Galak noticed that commit\n18404756765c713a0be4eb1082920c04822ce588 (genirq: Expose default irq\naffinity mask (take 3))\n\noverrides an already set affinity setting across a free /\nrequest_irq(). Happens e.g. with ifdown/ifup of a network device.\n\nChange the logic to mark the affinities as set and keep them\nintact. This also fixes the unlocked access to irq_desc in\nirq_select_affinity() when called from irq_affinity_proc_write()\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2c6927a38f65b53b62f86158fba29a068c4e8b6a",
      "tree": "4f23cf5689c8fbaed771219b4afd3f785d8048bc",
      "parents": [
        "9059d8fa4a3a9153da53da890039f7f956cc9d19"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yhlu.kernel@gmail.com",
        "time": "Tue Aug 19 20:50:11 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 16 16:52:33 2008 +0200"
      },
      "message": "irq: replace loop with nr_irqs with for_each_irq_desc\n\nThere are a handful of loops that go from 0 to nr_irqs and use\nget_irq_desc() on them. These would allocate all the irq_desc\nentries, regardless of the need for them.\n\nUse the smarter for_each_irq_desc() iterator that will only iterate\nover the present ones.\n\nv2: make sure arch without GENERIC_HARDIRQS work too\n\nSigned-off-by: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0c5d1eb77a8be917b638344a22afe1398236482b",
      "tree": "57d57c9b270cc10428f818cfec9725a1344b78ce",
      "parents": [
        "d6d5aeb661fc14655c417f3582ae7ec52985d2a8"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Wed Oct 01 14:46:18 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 02 10:24:09 2008 +0200"
      },
      "message": "genirq: record trigger type\n\nGenirq hasn\u0027t previously recorded the trigger type used by any given IRQ,\nalthough some irq_chip support has done so.  That data can be useful when\ntroubleshooting.  This patch records it in the relevant irq_desc.status\nbits, and improves consistency between the two driver-visible calls\naffected:\n\n - Make set_irq_type() usage match request_irq() usage:\n    * IRQ_TYPE_NONE should be a NOP; succeed, so irq_chip methods\n      won\u0027t have to handle that case any more (many do it wrong).\n    * IRQ_TYPE_PROBE is ignored; any buggy out-of-tree callers\n      might need to switch over to the real IRQ probing code.\n    * emit the same diagnostics (from shared utility code)\n\n - Their kerneldoc now reflects usage:\n    * request_irq() flags include IRQF_TRIGGER_* to specify\n      active edge(s)/level ... docs previously omitted that\n    * set_irq_type() is declared in \u003clinux/irq.h\u003e so callers\n      should use the (bit-equivalent) IRQ_TYPE_* symbols there\n\nAlso: adds a warning about shared IRQs that don\u0027t end up using the\nrequested trigger mode; and fix an unrelated \"sparse\" warning.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "43f7775944e40221827e4b3aec43824aa4c4e4a9",
      "tree": "842490e2fe78b8676741d1b012a4256c2224685c",
      "parents": [
        "f1c2662cbc6a0a9772655649bdf579803d33470b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 29 02:24:58 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jun 29 10:26:25 2006 -0700"
      },
      "message": "[PATCH] genirq: more verbose debugging on unexpected IRQ vectors\n\nOne frequent sign of IRQ handling bugs is the appearance of unexpected\nvectors.  Print out all the IRQ state in that case.  We dont want this patch\nupstream, but it is useful during initial testing.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6a6de9ef5850d063c3d3fb50784bfe3a6d0712c6",
      "tree": "d09f1887fd8890c820559b931140afe4c68f2d7f",
      "parents": [
        "a34db9b28a1c63317e1d6f1080a12d711579e7d0"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Jun 29 02:24:51 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jun 29 10:26:24 2006 -0700"
      },
      "message": "[PATCH] genirq: core\n\nCore genirq support: add the irq-chip and irq-flow abstractions.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "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"
    }
  ]
}
