)]}'
{
  "log": [
    {
      "commit": "6497dcffe07b7c3d863f9899280c4f6eae999161",
      "tree": "2b57ca65f6be0bee163363d694a19052b6491bc7",
      "parents": [
        "ec8670f1f795badedaa056a3a3245b9b82201747"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Sat Mar 01 07:52:14 2008 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Mar 04 10:16:46 2008 -0700"
      },
      "message": "ioat: fix \u0027ack\u0027 handling, driver must ensure that \u0027ack\u0027 is zero\n\nInitialize \u0027ack\u0027 to zero in case the descriptor has been recycled.\n\nPrevents \"kernel BUG at crypto/async_tx/async_xor.c:185!\"\n\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-by: Shannon Nelson \u003cshannon.nelson@intel.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "222ccf9ab838a1ca7163969fabd2cddc10403fb5",
      "tree": "7d0c6102be13a4de0d6e22254625dc505923bcb7",
      "parents": [
        "173acc7ce8538f1f3040791dc622a92aadc12cf4"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Sat Mar 01 07:51:17 2008 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Mar 04 10:16:46 2008 -0700"
      },
      "message": "fsldma: do not cleanup descriptors in hardirq context\n\n\"Cleaning\" descriptors involves calling pending callbacks and clients\nassume that their callback will only ever happen in softirq context.\nDelay cleanup to the tasklet.\n\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-by: Zhang Wei \u003cwei.zhang@freescale.com\u003e\n"
    },
    {
      "commit": "173acc7ce8538f1f3040791dc622a92aadc12cf4",
      "tree": "f408e415851cf3343af6077287984169958951ad",
      "parents": [
        "976dde010e513a9c7c3117a32b7b015f84b37430"
      ],
      "author": {
        "name": "Zhang Wei",
        "email": "wei.zhang@freescale.com",
        "time": "Sat Mar 01 07:42:48 2008 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Mar 04 10:16:46 2008 -0700"
      },
      "message": "dmaengine: add driver for Freescale MPC85xx DMA controller\n\nThe driver implements DMA engine API for Freescale MPC85xx DMA controller,\nwhich could be used by devices in the silicon.  The driver supports the\nBasic mode of Freescale MPC85xx DMA controller.  The MPC85xx processors\nsupported include MPC8540/60, MPC8555, MPC8548, MPC8641 and so on.\n\nThe MPC83xx(MPC8349, MPC8360) are also supported.\n\n[kamalesh@linux.vnet.ibm.com: build fix]\n[dan.j.williams@intel.com: merge mm fixes, rebase on async_tx-2.6.25]\nSigned-off-by: Zhang Wei \u003cwei.zhang@freescale.com\u003e\nSigned-off-by: Ebony Zhu \u003cebony.zhu@freescale.com\u003e\nAcked-by: Kumar Gala \u003cgalak@gate.crashing.org\u003e\nCc: Shannon Nelson \u003cshannon.nelson@intel.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\n"
    },
    {
      "commit": "d4c56f97ff21df405d0cebe11f49e3c3c79662b5",
      "tree": "e6b0de433d7c985982ac12815998242a786d87b2",
      "parents": [
        "0036731c88fdb5bf4f04a796a30b5e445fc57f54"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Sat Feb 02 19:49:58 2008 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Wed Feb 06 10:12:18 2008 -0700"
      },
      "message": "async_tx: replace \u0027int_en\u0027 with operation preparation flags\n\nPass a full set of flags to drivers\u0027 per-operation \u0027prep\u0027 routines.\nCurrently the only flag passed is DMA_PREP_INTERRUPT.  The expectation is\nthat arch-specific async_tx_find_channel() implementations can exploit this\ncapability to find the best channel for an operation.\n\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-by: Shannon Nelson \u003cshannon.nelson@intel.com\u003e\nReviewed-by: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\n"
    },
    {
      "commit": "0036731c88fdb5bf4f04a796a30b5e445fc57f54",
      "tree": "66982e4a9fdb92fedadca35c0ccaa0b9a75e9d2e",
      "parents": [
        "d909b347591a23c5a2c324fbccd4c9c966f31c67"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Sat Feb 02 19:49:57 2008 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Wed Feb 06 10:12:17 2008 -0700"
      },
      "message": "async_tx: kill tx_set_src and tx_set_dest methods\n\nThe tx_set_src and tx_set_dest methods were originally implemented to allow\nan array of addresses to be passed down from async_xor to the dmaengine\ndriver while minimizing stack overhead.  Removing these methods allows\ndrivers to have all transaction parameters available at \u0027prep\u0027 time, saves\ntwo function pointers in struct dma_async_tx_descriptor, and reduces the\nnumber of indirect branches..\n\nA consequence of moving this data to the \u0027prep\u0027 routine is that\nmulti-source routines like async_xor need temporary storage to convert an\narray of linear addresses into an array of dma addresses.  In order to keep\nthe same stack footprint of the previous implementation the input array is\nreused as storage for the dma addresses.  This requires that\nsizeof(dma_addr_t) be less than or equal to sizeof(void *).  As a\nconsequence CONFIG_DMADEVICES now depends on !CONFIG_HIGHMEM64G.  It also\nrequires that drivers be able to make descriptor resources available when\nthe \u0027prep\u0027 routine is polled.\n\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-by: Shannon Nelson \u003cshannon.nelson@intel.com\u003e\n"
    },
    {
      "commit": "e73ef9acfd30f36bf7c60237ecffe7bbca8068d6",
      "tree": "bf949d319cb87ebc23ee26f650dcf1b39aa794e0",
      "parents": [
        "cf8f68aa76e8e12f9dcbba3ffe61fb9f2a3a0c2b"
      ],
      "author": {
        "name": "Denis Cheng",
        "email": "crquan@gmail.com",
        "time": "Sat Feb 02 19:30:01 2008 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Wed Feb 06 10:12:17 2008 -0700"
      },
      "message": "iop-adma: use LIST_HEAD instead of LIST_HEAD_INIT\n\nthese three list_head are all local variables, but can also use LIST_HEAD.\n\nSigned-off-by: Denis Cheng \u003ccrquan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\n"
    },
    {
      "commit": "891f78ea833edd4a1e524e15bfe297a7a84d81a0",
      "tree": "533f12df743c4adc6d2b40d048ffb7d16c93e591",
      "parents": [
        "62ca8792560e5bd7dc09f54ed3523a7864f416c7"
      ],
      "author": {
        "name": "Tony Jones",
        "email": "tonyj@suse.de",
        "time": "Tue Sep 25 02:03:03 2007 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:05 2008 -0800"
      },
      "message": "DMA: Convert from class_device to device for DMA engine\n\nSigned-off-by: Tony Jones \u003ctonyj@suse.de\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nCc: Shannon Nelson \u003cshannon.nelson@intel.com\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "bb8e8bcce7eceacb52eb0a3ebb64202ad6bcc438",
      "tree": "be4aec4e38ff481f4e65f3af077ef49e7a7a9eac",
      "parents": [
        "711924b1052a280bd2452c3babb9816e4a77c723"
      ],
      "author": {
        "name": "Shannon Nelson",
        "email": "shannon.nelson@intel.com",
        "time": "Mon Dec 17 16:20:08 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Dec 17 19:28:17 2007 -0800"
      },
      "message": "I/OAT: fix null device in call to dev_err()\n\nWe can\u0027t use the device in a dev_err() after a kzalloc failure or after the\nkfree, so simplify it to the pdev that was originally passed in.\n\nCc: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nSigned-off-by: Shannon Nelson \u003cshannon.nelson@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "711924b1052a280bd2452c3babb9816e4a77c723",
      "tree": "7eea7de34b1f6bdd37989cee9916ee5f5f4e3093",
      "parents": [
        "7c9e70efbfc3186674d93451e0fbf18365347b4d"
      ],
      "author": {
        "name": "Shannon Nelson",
        "email": "shannon.nelson@intel.com",
        "time": "Mon Dec 17 16:20:08 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Dec 17 19:28:17 2007 -0800"
      },
      "message": "I/OAT: fixups from code comments\n\nA few fixups from Andrew\u0027s code comments.\n  - removed \"static inline\" forward-declares\n  - changed use of min() to min_t()\n  - removed some unnecessary NULL initializations\n  - removed a couple of BUG() calls\n\nFixes this:\n\ndrivers/dma/ioat_dma.c: In function `ioat1_tx_submit\u0027:\ndrivers/dma/ioat_dma.c:177: sorry, unimplemented: inlining failed in call to \u0027__ioat1_dma_memcpy_issue_pending\u0027: function body not available\ndrivers/dma/ioat_dma.c:268: sorry, unimplemented: called from here\n\nSigned-off-by: Shannon Nelson \u003cshannon.nelson@intel.com\u003e\nCc: \"Williams, Dan J\" \u003cdan.j.williams@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6d4f5879b6f4da50bde94e1cae73755978ed048f",
      "tree": "149340866e3a7d65fca49763ce7caa56ada370c4",
      "parents": [
        "e593f070b40887dc0415646a4c0720eb8630c722"
      ],
      "author": {
        "name": "Haavard Skinnemoen",
        "email": "hskinnemoen@atmel.com",
        "time": "Wed Nov 28 16:21:43 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Nov 29 09:24:53 2007 -0800"
      },
      "message": "dmaengine: correct invalid assumptions in the Kconfig text\n\nThis patch corrects recently changed (and now invalid) Kconfig descriptions\nfor the DMA engine framework:\n\n - Non-Intel(R) hardware also has DMA engines;\n - DMA is used for more than memcpy and RAID offloading.\n\nIn fact, on most platforms memcpy and RAID aren\u0027t factors, and DMA\nexists so that peripherals can transfer data to/from memory while\nthe CPU does other work.\n\nSigned-off-by: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7bb67c14fd3778504fb77da30ce11582336dfced",
      "tree": "24b65f267a98716824c7955be02af8879cfda688",
      "parents": [
        "cc9f2f8f68efcc73d8793a4df2c4c50196e90080"
      ],
      "author": {
        "name": "Shannon Nelson",
        "email": "shannon.nelson@intel.com",
        "time": "Wed Nov 14 16:59:51 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Nov 14 18:45:41 2007 -0800"
      },
      "message": "I/OAT: Add support for version 2 of ioatdma device\n\nAdd support for version 2 of the ioatdma device.  This device handles\nthe descriptor chain and DCA services slightly differently:\n - Instead of moving the dma descriptors between a busy and an idle chain,\n   this new version uses a single circular chain so that we don\u0027t have\n   rewrite the next_descriptor pointers as we add new requests, and the\n   device doesn\u0027t need to re-read the last descriptor.\n - The new device has the DCA tags defined internally instead of needing\n   them defined statically.\n\nSigned-off-by: Shannon Nelson \u003cshannon.nelson@intel.com\u003e\nCc: \"Williams, Dan J\" \u003cdan.j.williams@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "348badf1e825323c419dd118f65783db0f7d2ec8",
      "tree": "126cddb26c14233eaff8ddd6a240fe4ac69204ee",
      "parents": [
        "90d8dabf74179e6615bd4688a118e12ec29ab7aa"
      ],
      "author": {
        "name": "Haavard Skinnemoen",
        "email": "hskinnemoen@atmel.com",
        "time": "Wed Nov 14 16:59:27 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Nov 14 18:45:39 2007 -0800"
      },
      "message": "dmaengine: fix broken device refcounting\n\nWhen a DMA device is unregistered, its reference count is decremented twice\nfor each channel: Once dma_class_dev_release() and once in\ndma_chan_cleanup().  This may result in the DMA device driver\u0027s remove()\nfunction completing before all channels have been cleaned up, causing lots\nof use-after-free fun.\n\nFix it by incrementing the device\u0027s reference count twice for each\nchannel during registration.\n\n[dan.j.williams@intel.com: kill unnecessary client refcounting]\nSigned-off-by: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nSigned-off-by: Shannon Nelson \u003cshannon.nelson@intel.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4138f08d1c2783a28df2af6ed81aa180462ec374",
      "tree": "11b9d3b4cbafe4c9d1dd7c9b7ef934dee2bafdb4",
      "parents": [
        "bc2a3f86f46569fb091792867ce67c9ab24dfd0f"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Mon Oct 29 14:37:18 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 30 08:06:55 2007 -0700"
      },
      "message": "Remove bogus default y for DMAR and NET_DMA\n\nNo reason I can think of of making them default y Most people don\u0027t have\nthe hardware and with default y they just pollute lots of configs during\nmake oldconfig.\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nAcked-by: Jeff Garzik \u003cjeff@garzik.org\u003e\nAcked-by: \"Nelson, Shannon\" \u003cshannon.nelson@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "952184304fbf030f0133d8b66a91b2847dce729e",
      "tree": "07a6ca0121cfa94bda58c0f49ac509f4b62fcf64",
      "parents": [
        "7f2b291f56d08e001454d16d3c92e175434898b3"
      ],
      "author": {
        "name": "Shannon Nelson",
        "email": "shannon.nelson@intel.com",
        "time": "Thu Oct 18 03:07:15 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 14:37:32 2007 -0700"
      },
      "message": "I/OAT: Add completion callback for async_tx interface use\n\nThe async_tx interface includes a completion callback.  This adds support\nfor using that callback, including using interrupts on completion.\n\n[akpm@linux-foundation.org: various fixes]\nSigned-off-by: Shannon Nelson \u003cshannon.nelson@intel.com\u003e\nCc: Dan Williams \u003cdan.j.williams@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7f2b291f56d08e001454d16d3c92e175434898b3",
      "tree": "41b0c324e93db47fd5114fed2fddbba963492383",
      "parents": [
        "5149fd010f404889b7d8f79159057791fbb817b1"
      ],
      "author": {
        "name": "Shannon Nelson",
        "email": "shannon.nelson@intel.com",
        "time": "Thu Oct 18 03:07:14 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 14:37:32 2007 -0700"
      },
      "message": "I/OAT: Tighten descriptor setup performance\n\nThe change to the async_tx interface cost this driver some performance by\nspreading the descriptor setup across several functions, including multiple\npasses over the new descriptor chain.  Here we bring the work back into one\nprimary function and only do one pass.\n\n[akpm@linux-foundation.org: cleanups, uninline]\nSigned-off-by: Shannon Nelson \u003cshannon.nelson@intel.com\u003e\nCc: Dan Williams \u003cdan.j.williams@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5149fd010f404889b7d8f79159057791fbb817b1",
      "tree": "0ec09c009f35d59be64e3b952b6deba39b61f6e1",
      "parents": [
        "dfe2299e7b35a0adfc87f04d3e725ccc508d7626"
      ],
      "author": {
        "name": "Shannon Nelson",
        "email": "shannon.nelson@intel.com",
        "time": "Thu Oct 18 03:07:13 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 14:37:32 2007 -0700"
      },
      "message": "I/OAT: clean up error handling and some print messages\n\nMake better use of dev_err(), and catch an error where the transaction\ncreation might fail.\n\nSigned-off-by: Shannon Nelson \u003cshannon.nelson@intel.com\u003e\nCc: Dan Williams \u003cdan.j.williams@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dfe2299e7b35a0adfc87f04d3e725ccc508d7626",
      "tree": "5dbcd9290ebf4f4830d736df5b3324f0146bb6b0",
      "parents": [
        "7df7cf0676060d778486359676734447347e1caf"
      ],
      "author": {
        "name": "Shannon Nelson",
        "email": "shannon.nelson@intel.com",
        "time": "Thu Oct 18 03:07:13 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 14:37:32 2007 -0700"
      },
      "message": "I/OAT: clean up of dca provider start and stop\n\nDon\u0027t start ioat_dca if ioat_dma didn\u0027t start, and then stop ioat_dca\nbefore stopping ioat_dma.  Since the ioat_dma side does the pci device\nwork, This takes care of ioat_dca trying to use a bad device reference.\n\nSigned-off-by: Shannon Nelson \u003cshannon.nelson@intel.com\u003e\nCc: Dan Williams \u003cdan.j.williams@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7df7cf0676060d778486359676734447347e1caf",
      "tree": "1a452993706602ea26b2ec4040fae4818c8e22bb",
      "parents": [
        "d8c98618f4bb8161cc0c14e110b07ba37249332b"
      ],
      "author": {
        "name": "Shannon Nelson",
        "email": "shannon.nelson@intel.com",
        "time": "Thu Oct 18 03:07:12 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 14:37:32 2007 -0700"
      },
      "message": "I/OAT: cleanup pci issues\n\nReorder the pci release actions\n    Letting go of the resources in the right order helps get rid of\n    occasional kernel complaints.\n\nFix the pci_driver object name [Randy Dunlap]\n    Rename the struct pci_driver data so that false section mismatch\n    warnings won\u0027t be produced.\n\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Shannon Nelson \u003cshannon.nelson@intel.com\u003e\nCc: Dan Williams \u003cdan.j.williams@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "af49d9248fca6f26cbdb01918334f71d9040df80",
      "tree": "5d6a7f4d5ca55ff17fbfc98cacac37be62c7a4a3",
      "parents": [
        "d9c9bef1345e5d9258febce2a37e4d40319fa728"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Oct 16 23:26:27 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:49 2007 -0700"
      },
      "message": "Remove \"unsafe\" from module struct\n\nAdrian Bunk points out that \"unsafe\" was used to mark modules touched by\nthe deprecated MOD_INC_USE_COUNT interface, which has long gone.  It\u0027s time\nto remove the member from the module structure, as well.\n\nIf you want a module which can\u0027t unload, don\u0027t register an exit function.\n\n(Vlad Yasevich says SCTP is now safe to unload, so just remove the\n__unsafe there).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Shannon Nelson \u003cshannon.nelson@intel.com\u003e\nAcked-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-by: Vlad Yasevich \u003cvladislav.yasevich@hp.com\u003e\nCc: Sridhar Samudrala \u003csri@us.ibm.com\u003e\nCc: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2ed6dc34f9ed39bb8e4c81ea1056f0ba56315841",
      "tree": "e3f6ca7961f9c4e34453d06e584c0bc98ec630d7",
      "parents": [
        "7589670f37736bcc119ebfbd69aafea6d585d1d4"
      ],
      "author": {
        "name": "Shannon Nelson",
        "email": "shannon.nelson@intel.com",
        "time": "Tue Oct 16 01:27:42 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:09 2007 -0700"
      },
      "message": "I/OAT: Add DCA services\n\nAdd code to connect to the DCA driver and provide cpu tags for use by\ndrivers that would like to use Direct Cache Access hints.\n\n    [Adrian Bunk]                Several Kconfig cleanup items\n    [Andrew Morten, Chris Leech] Fix for using cpu_physical_id() even when\n\t\t\t         built for uni-processor\n\nSigned-off-by: Shannon Nelson \u003cshannon.nelson@intel.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3e037454bcfa4b187e8293d2121bd8c0f5a5c31c",
      "tree": "751a2eace11b280cc1a19873788b778009188be9",
      "parents": [
        "8ab89567da0cea9bae2c1b5dad47b51c424479e4"
      ],
      "author": {
        "name": "Shannon Nelson",
        "email": "shannon.nelson@intel.com",
        "time": "Tue Oct 16 01:27:40 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:09 2007 -0700"
      },
      "message": "I/OAT: Add support for MSI and MSI-X\n\nAdd support for MSI and MSI-X interrupt handling, including the ability\nto choose the desired interrupt method.\n\nSigned-off-by: Shannon Nelson \u003cshannon.nelson@intel.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\n[bunk@kernel.org: drivers/dma/ioat_dma.c: make 3 functions static]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8ab89567da0cea9bae2c1b5dad47b51c424479e4",
      "tree": "95ac8bc77b2e8d9f1dec97f6fd7128760e27561f",
      "parents": [
        "43d6e369d43ff175e1e0e80caaedb1e53829247c"
      ],
      "author": {
        "name": "Shannon Nelson",
        "email": "shannon.nelson@intel.com",
        "time": "Tue Oct 16 01:27:39 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:09 2007 -0700"
      },
      "message": "I/OAT: Split PCI startup from DMA handling code\n\nSplit the general PCI startup from the DMA handling code in order to\nprepare for adding support for DCA services and future versions of the\nioatdma device.\n\n    [Rusty Russell] Removal of __unsafe() usage.\n\nSigned-off-by: Shannon Nelson \u003cshannon.nelson@intel.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "43d6e369d43ff175e1e0e80caaedb1e53829247c",
      "tree": "f5eae87e5a3ac684c49b4f8c69aa5a4332137c01",
      "parents": [
        "1fda5f4e96225c3ed0baded942704c0ae399da23"
      ],
      "author": {
        "name": "Shannon Nelson",
        "email": "shannon.nelson@intel.com",
        "time": "Tue Oct 16 01:27:39 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:09 2007 -0700"
      },
      "message": "I/OAT: code cleanup from checkpatch output\n\nTake care of a bunch of little code nits in ioatdma files\n\nSigned-off-by: Shannon Nelson \u003cshannon.nelson@intel.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1fda5f4e96225c3ed0baded942704c0ae399da23",
      "tree": "a16dbd8a674b8da8e5aed5cabcd497e63e3af754",
      "parents": [
        "223758c77a67b1eb383a92b35d67de29502a9f55"
      ],
      "author": {
        "name": "Shannon Nelson",
        "email": "shannon.nelson@intel.com",
        "time": "Tue Oct 16 01:27:37 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:09 2007 -0700"
      },
      "message": "I/OAT: Rename the source file\n\nRename the ioatdma.c file in preparation for splitting into multiple files,\nwhich will allow for easier adding new functionality.\n\nSigned-off-by: Shannon Nelson \u003cshannon.nelson@intel.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "223758c77a67b1eb383a92b35d67de29502a9f55",
      "tree": "1c7ac6de4d105a84fb86ae53709a851301c5883b",
      "parents": [
        "70af26b2d4bc55570ac30b5eced4ff0319e24455"
      ],
      "author": {
        "name": "Shannon Nelson",
        "email": "shannon.nelson@intel.com",
        "time": "Tue Oct 16 01:27:37 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:09 2007 -0700"
      },
      "message": "I/OAT: New device ids\n\nAdd device ids for new revs of the Intel I/OAT DMA engine\n\nSigned-off-by: Shannon Nelson \u003cshannon.nelson@intel.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e4223976341ffb22fabe5b3a69873966808c83aa",
      "tree": "8375db74c6243e583eeaff91d5d50ca96632a55d",
      "parents": [
        "97a1ad431b89765755d2b5aa8c0777ed637d5c4a"
      ],
      "author": {
        "name": "Shannon Nelson",
        "email": "shannon.nelson@intel.com",
        "time": "Fri Aug 24 23:02:53 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sun Aug 26 18:35:40 2007 -0700"
      },
      "message": "[IOAT]: ioatdma needs to to play nice in a multi-dma-client world\n\nNow that the DMA engine has a multi-client interface, fix the ioatdma\ndriver to play along.  At the same time, remove a couple of unnecessary\nreads and writes.\n\nSigned-off-by: Shannon Nelson \u003cshannon.nelson@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "54a09feb0ebb018dadaebeb51e860154198abc83",
      "tree": "3e85288f49ba8376e58db649250d60c2560e5204",
      "parents": [
        "9c29a377f99b42c59721112cd2388cf27547fc84"
      ],
      "author": {
        "name": "Shannon Nelson",
        "email": "shannon.nelson@intel.com",
        "time": "Tue Aug 14 17:36:31 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Aug 14 17:36:31 2007 -0700"
      },
      "message": "[IOAT]: Remove redundant struct member to avoid descriptor cache miss\n\nThe layout for struct ioat_desc_sw is non-optimal and causes an extra\ncache hit for every descriptor processed.  By tightening up the struct\nlayout and removing one item, we pull in the fields that get used in\nthe speedpath and get a little better performance.\n\n\nBefore:\n-------\nstruct ioat_desc_sw {\n\tstruct ioat_dma_descriptor * hw;                 /*     0     8\n*/\n\tstruct list_head           node;                 /*     8    16\n*/\n\tint                        tx_cnt;               /*    24     4\n*/\n\n\t/* XXX 4 bytes hole, try to pack */\n\n\tdma_addr_t                 src;                  /*    32     8\n*/\n\t__u32                      src_len;              /*    40     4\n*/\n\n\t/* XXX 4 bytes hole, try to pack */\n\n\tdma_addr_t                 dst;                  /*    48     8\n*/\n\t__u32                      dst_len;              /*    56     4\n*/\n\n\t/* XXX 4 bytes hole, try to pack */\n\n\t/* --- cacheline 1 boundary (64 bytes) --- */\n\tstruct dma_async_tx_descriptor async_tx;         /*    64   144\n*/\n\t/* --- cacheline 3 boundary (192 bytes) was 16 bytes ago --- */\n\n\t/* size: 208, cachelines: 4 */\n\t/* sum members: 196, holes: 3, sum holes: 12 */\n\t/* last cacheline: 16 bytes */\n};\t/* definitions: 1 */\n\n\nAfter:\n------\n\nstruct ioat_desc_sw {\n\tstruct ioat_dma_descriptor * hw;                 /*     0     8\n*/\n\tstruct list_head           node;                 /*     8    16\n*/\n\tint                        tx_cnt;               /*    24     4\n*/\n\t__u32                      len;                  /*    28     4\n*/\n\tdma_addr_t                 src;                  /*    32     8\n*/\n\tdma_addr_t                 dst;                  /*    40     8\n*/\n\tstruct dma_async_tx_descriptor async_tx;         /*    48   144\n*/\n\t/* --- cacheline 3 boundary (192 bytes) --- */\n\n\t/* size: 192, cachelines: 3 */\n};\t/* definitions: 1 */\n\n\nSigned-off-by: Shannon Nelson \u003cshannon.nelson@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "342ff7b24f42d01b27d884c699855c713d720fcb",
      "tree": "6b24a7d1ff21dbb864948e4b1a29a05b62c29fa1",
      "parents": [
        "94571065757a4f2619c48ab4e36cafdc635028ce"
      ],
      "author": {
        "name": "Shannon Nelson",
        "email": "shannon.nelson@intel.com",
        "time": "Thu Jul 26 00:05:53 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 31 02:28:03 2007 -0700"
      },
      "message": "[NET_DMA]: remove unused dma_memcpy_to_kernel_iovec\n\nAl Viro pointed out that dma_memcpy_to_kernel_iovec() really was\nunreachable and thus unused.  The code originally was there to support\nin-kernel dma needs, but since it remains unused, we\u0027ll pull it out.\n\nSigned-off-by: Shannon Nelson \u003cshannon.nelson@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1b0fac45878bb88759eec347c273285195649ff7",
      "tree": "a9871a47ef98c90bac3f65a7f9309e87420c694c",
      "parents": [
        "9e7bf24b1b979db256ddc84d0d4ac6040d706da6"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Sun Jul 15 23:40:26 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:45 2007 -0700"
      },
      "message": "dma-mapping: prevent dma dependent code from linking on !HAS_DMA archs\n\nContinuing the work started in 411f0f3edc141a582190d3605cadd1d993abb6df ...\n\nThis enables code with a dma path, that compiles away, to build without\nrequiring additional code factoring.  It also prevents code that calls\ndma_alloc_coherent and dma_free_coherent from linking whereas previously\nthe code would hit a BUG() at run time.  Finally, it allows archs that set\n!HAS_DMA to delete their asm/dma-mapping.h file.\n\nCc: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: John W. Linville \u003clinville@tuxdriver.com\u003e\nCc: Kyle McMartin \u003ckyle@parisc-linux.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\nCc: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: \u003cgeert@linux-m68k.org\u003e\nCc: \u003czippel@linux-m68k.org\u003e\nCc: \u003cspyro@f2s.com\u003e\nCc: \u003cysato@users.sourceforge.jp\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3039f0735a280b54c7364fbfe6a9287f7f0b510a",
      "tree": "1d64cdab174e681660d689d367f0bde4e2884fdd",
      "parents": [
        "5816815f7850509ed51ab94eb4f644e405ccb865"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jul 13 08:06:19 2007 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jul 13 08:06:19 2007 -0700"
      },
      "message": "ioatdma: add the unisys \"i/oat\" pci vendor/device id\n\nCc: John Magolan \u003cjohn.magolan@unisys.com\u003e\nSigned-off-by: Shannon Nelson \u003cshannon.nelson@intel.com\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\n"
    },
    {
      "commit": "c211092313b90f898dec61f35207fc282d1eadc3",
      "tree": "30df0c81f207d0babb3fe56a17419f37e71e973a",
      "parents": [
        "f6dff381af01006ffae3c23cd2e07e30584de0ec"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Jan 02 13:52:26 2007 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jul 13 08:06:18 2007 -0700"
      },
      "message": "dmaengine: driver for the iop32x, iop33x, and iop13xx raid engines\n\nThe Intel(R) IOP series of i/o processors integrate an Xscale core with\nraid acceleration engines.  The capabilities per platform are:\n\niop219:\n (2) copy engines\niop321:\n (2) copy engines\n (1) xor and block fill engine\niop33x:\n (2) copy and crc32c engines\n (1) xor, xor zero sum, pq, pq zero sum, and block fill engine\niop34x (iop13xx):\n (2) copy, crc32c, xor, xor zero sum, and block fill engines\n (1) copy, crc32c, xor, xor zero sum, pq, pq zero sum, and block fill engine\n\nThe driver supports the features of the async_tx api:\n* asynchronous notification of operation completion\n* implicit (interupt triggered) handling of inter-channel transaction\n  dependencies\n\nThe driver adapts to the platform it is running by two methods.\n1/ #include \u003casm/arch/adma.h\u003e which defines the hardware specific\n   iop_chan_* and iop_desc_* routines as a series of static inline\n   functions\n2/ The private platform data attached to the platform_device defines the\n   capabilities of the channels\n\n20070626: Callbacks are run in a tasklet.  Given the recent discussion on\nLKML about killing tasklets in favor of workqueues I did a quick conversion\nof the driver.  Raid5 resync performance dropped from 50MB/s to 30MB/s, so\nthe tasklet implementation remains until a generic softirq interface is\navailable.\n\nChangelog:\n* fixed a slot allocation bug in do_iop13xx_adma_xor that caused too few\nslots to be requested eventually leading to data corruption\n* enabled the slot allocation routine to attempt to free slots before\nreturning -ENOMEM\n* switched the cleanup routine to solely use the software chain and the\nstatus register to determine if a descriptor is complete.  This is\nnecessary to support other IOP engines that do not have status writeback\ncapability\n* make the driver iop generic\n* modified the allocation routines to understand allocating a group of\nslots for a single operation\n* added a null xor initialization operation for the xor only channel on\niop3xx\n* support xor operations on buffers larger than the hardware maximum\n* split the do_* routines into separate prep, src/dest set, submit stages\n* added async_tx support (dependent operations initiation at cleanup time)\n* simplified group handling\n* added interrupt support (callbacks via tasklets)\n* brought the pending depth inline with ioat (i.e. 4 descriptors)\n* drop dma mapping methods, suggested by Chris Leech\n* don\u0027t use inline in C files, Adrian Bunk\n* remove static tasklet declarations\n* make iop_adma_alloc_slots easier to read and remove chances for a\n  corrupted descriptor chain\n* fix locking bug in iop_adma_alloc_chan_resources, Benjamin Herrenschmidt\n* convert capabilities over to dma_cap_mask_t\n* fixup sparse warnings\n* add descriptor flush before iop_chan_enable\n* checkpatch.pl fixes\n* gpl v2 only correction\n* move set_src, set_dest, submit to async_tx methods\n* move group_list and phys to async_tx\n\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\n"
    },
    {
      "commit": "9bc89cd82d6f88fb0ca39b30445c329a430fd66b",
      "tree": "7bd0e856abd359f84edea1bacfd1dd32edd93fbb",
      "parents": [
        "685784aaf3cd0e3ff5e36c7ecf6f441cdbf57f73"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Jan 02 11:10:44 2007 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jul 13 08:06:14 2007 -0700"
      },
      "message": "async_tx: add the async_tx api\n\nThe async_tx api provides methods for describing a chain of asynchronous\nbulk memory transfers/transforms with support for inter-transactional\ndependencies.  It is implemented as a dmaengine client that smooths over\nthe details of different hardware offload engine implementations.  Code\nthat is written to the api can optimize for asynchronous operation and the\napi will fit the chain of operations to the available offload resources. \n \n\tI imagine that any piece of ADMA hardware would register with the\n\t\u0027async_*\u0027 subsystem, and a call to async_X would be routed as\n\tappropriate, or be run in-line. - Neil Brown\n\nasync_tx exploits the capabilities of struct dma_async_tx_descriptor to\nprovide an api of the following general format:\n\nstruct dma_async_tx_descriptor *\nasync_\u003coperation\u003e(..., struct dma_async_tx_descriptor *depend_tx,\n\t\t\tdma_async_tx_callback cb_fn, void *cb_param)\n{\n\tstruct dma_chan *chan \u003d async_tx_find_channel(depend_tx, \u003coperation\u003e);\n\tstruct dma_device *device \u003d chan ? chan-\u003edevice : NULL;\n\tint int_en \u003d cb_fn ? 1 : 0;\n\tstruct dma_async_tx_descriptor *tx \u003d device ?\n\t\tdevice-\u003edevice_prep_dma_\u003coperation\u003e(chan, len, int_en) : NULL;\n\n\tif (tx) { /* run \u003coperation\u003e asynchronously */\n\t\t...\n\t\ttx-\u003etx_set_dest(addr, tx, index);\n\t\t...\n\t\ttx-\u003etx_set_src(addr, tx, index);\n\t\t...\n\t\tasync_tx_submit(chan, tx, flags, depend_tx, cb_fn, cb_param);\n\t} else { /* run \u003coperation\u003e synchronously */\n\t\t...\n\t\t\u003coperation\u003e\n\t\t...\n\t\tasync_tx_sync_epilog(flags, depend_tx, cb_fn, cb_param);\n\t}\n\n\treturn tx;\n}\n\nasync_tx_find_channel() returns a capable channel from its pool.  The\nchannel pool is organized as a per-cpu array of channel pointers.  The\nasync_tx_rebalance() routine is tasked with managing these arrays.  In the\nuniprocessor case async_tx_rebalance() tries to spread responsibility\nevenly over channels of similar capabilities.  For example if there are two\ncopy+xor channels, one will handle copy operations and the other will\nhandle xor.  In the SMP case async_tx_rebalance() attempts to spread the\noperations evenly over the cpus, e.g. cpu0 gets copy channel0 and xor\nchannel0 while cpu1 gets copy channel 1 and xor channel 1.  When a\ndependency is specified async_tx_find_channel defaults to keeping the\noperation on the same channel.  A xor-\u003ecopy-\u003exor chain will stay on one\nchannel if it supports both operation types, otherwise the transaction will\ntransition between a copy and a xor resource.\n\nCurrently the raid5 implementation in the MD raid456 driver has been\nconverted to the async_tx api.  A driver for the offload engines on the\nIntel Xscale series of I/O processors, iop-adma, is provided in a later\ncommit.  With the iop-adma driver and async_tx, raid456 is able to offload\ncopy, xor, and xor-zero-sum operations to hardware engines.\n \nOn iop342 tiobench showed higher throughput for sequential writes (20 - 30%\nimprovement) and sequential reads to a degraded array (40 - 55%\nimprovement).  For the other cases performance was roughly equal, +/- a few\npercentage points.  On a x86-smp platform the performance of the async_tx\nimplementation (in synchronous mode) was also +/- a few percentage points\nof the original implementation.  According to \u0027top\u0027 on iop342 CPU\nutilization drops from ~50% to ~15% during a \u0027resync\u0027 while the speed\naccording to /proc/mdstat doubles from ~25 MB/s to ~50 MB/s.\n \nThe tiobench command line used for testing was: tiobench --size 2048\n--block 4096 --block 131072 --dir /mnt/raid --numruns 5\n* iop342 had 1GB of memory available\n\nDetails:\n* if CONFIG_DMA_ENGINE\u003dn the asynchronous path is compiled away by making\n  async_tx_find_channel a static inline routine that always returns NULL\n* when a callback is specified for a given transaction an interrupt will\n  fire at operation completion time and the callback will occur in a\n  tasklet.  if the the channel does not support interrupts then a live\n  polling wait will be performed\n* the api is written as a dmaengine client that requests all available\n  channels\n* In support of dependencies the api implicitly schedules channel-switch\n  interrupts.  The interrupt triggers the cleanup tasklet which causes\n  pending operations to be scheduled on the next channel\n* Xor engines treat an xor destination address differently than a software\n  xor routine.  To the software routine the destination address is an implied\n  source, whereas engines treat it as a write-only destination.  This patch\n  modifies the xor_blocks routine to take a an explicit destination address\n  to mirror the hardware.\n\nChangelog:\n* fixed a leftover debug print\n* don\u0027t allow callbacks in async_interrupt_cond\n* fixed xor_block changes\n* fixed usage of ASYNC_TX_XOR_DROP_DEST\n* drop dma mapping methods, suggested by Chris Leech\n* printk warning fixups from Andrew Morton\n* don\u0027t use inline in C files, Adrian Bunk\n* select the API when MD is enabled\n* BUG_ON xor source counts \u003c\u003d 1\n* implicitly handle hardware concerns like channel switching and\n  interrupts, Neil Brown\n* remove the per operation type list, and distribute operation capabilities\n  evenly amongst the available channels\n* simplify async_tx_find_channel to optimize the fast path\n* introduce the channel_table_initialized flag to prevent early calls to\n  the api\n* reorganize the code to mimic crypto\n* include mm.h as not all archs include it in dma-mapping.h\n* make the Kconfig options non-user visible, Adrian Bunk\n* move async_tx under crypto since it is meant as \u0027core\u0027 functionality, and\n  the two may share algorithms in the future\n* move large inline functions into c files\n* checkpatch.pl fixes\n* gpl v2 only correction\n\nCc: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-By: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "d379b01e9087a582d58f4b678208a4f8d8376fe7",
      "tree": "155920bca93c18afba66b9d5acfecd359d5bec65",
      "parents": [
        "7405f74badf46b5d023c5d2b670b4471525f6c91"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Mon Jul 09 11:56:42 2007 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jul 13 08:06:13 2007 -0700"
      },
      "message": "dmaengine: make clients responsible for managing channels\n\nThe current implementation assumes that a channel will only be used by one\nclient at a time.  In order to enable channel sharing the dmaengine core is\nchanged to a model where clients subscribe to channel-available-events.\nInstead of tracking how many channels a client wants and how many it has\nreceived the core just broadcasts the available channels and lets the\nclients optionally take a reference.  The core learns about the clients\u0027\nneeds at dma_event_callback time.\n\nIn support of multiple operation types, clients can specify a capability\nmask to only be notified of channels that satisfy a certain set of\ncapabilities.\n\nChangelog:\n* removed DMA_TX_ARRAY_INIT, no longer needed\n* dma_client_chan_free -\u003e dma_chan_release: switch to global reference\n  counting only at device unregistration time, before it was also happening\n  at client unregistration time\n* clients now return dma_state_client to dmaengine (ack, dup, nak)\n* checkpatch.pl fixes\n* fixup merge with git-ioat\n\nCc: Chris Leech \u003cchristopher.leech@intel.com\u003e\nSigned-off-by: Shannon Nelson \u003cshannon.nelson@intel.com\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7405f74badf46b5d023c5d2b670b4471525f6c91",
      "tree": "20dd20571637dba1c2b04c7b13ac208c33b5706b",
      "parents": [
        "428ed6024fa74a271142f3257966e9b5e1cb37a1"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Jan 02 11:10:43 2007 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jul 13 08:06:11 2007 -0700"
      },
      "message": "dmaengine: refactor dmaengine around dma_async_tx_descriptor\n\nThe current dmaengine interface defines mutliple routines per operation,\ni.e. dma_async_memcpy_buf_to_buf, dma_async_memcpy_buf_to_page etc.  Adding\nmore operation types (xor, crc, etc) to this model would result in an\nunmanageable number of method permutations.\n\n\tAre we really going to add a set of hooks for each DMA engine\n\twhizbang feature?\n\t\t- Jeff Garzik\n\nThe descriptor creation process is refactored using the new common\ndma_async_tx_descriptor structure.  Instead of per driver\ndo_\u003coperation\u003e_\u003cdest\u003e_to_\u003csrc\u003e methods, drivers integrate\ndma_async_tx_descriptor into their private software descriptor and then\ndefine a \u0027prep\u0027 routine per operation.  The prep routine allocates a\ndescriptor and ensures that the tx_set_src, tx_set_dest, tx_submit routines\nare valid.  Descriptor creation and submission becomes:\n\nstruct dma_device *dev;\nstruct dma_chan *chan;\nstruct dma_async_tx_descriptor *tx;\n\ntx \u003d dev-\u003edevice_prep_dma_\u003coperation\u003e(chan, len, int_flag)\ntx-\u003etx_set_src(dma_addr_t, tx, index /* for multi-source ops */)\ntx-\u003etx_set_dest(dma_addr_t, tx, index)\ntx-\u003etx_submit(tx)\n\nIn addition to the refactoring, dma_async_tx_descriptor also lays the\ngroundwork for definining cross-channel-operation dependencies, and a\ncallback facility for asynchronous notification of operation completion.\n\nChangelog:\n* drop dma mapping methods, suggested by Chris Leech\n* fix ioat_dma_dependency_added, also caught by Andrew Morton\n* fix dma_sync_wait, change from Andrew Morton\n* uninline large functions, change from Andrew Morton\n* add tx-\u003ecallback \u003d NULL to dmaengine calls to interoperate with async_tx\n  calls\n* hookup ioat_tx_submit\n* convert channel capabilities to a \u0027cpumask_t like\u0027 bitmap\n* removed DMA_TX_ARRAY_INIT, no longer needed\n* checkpatch.pl fixes\n* make set_src, set_dest, and tx_submit descriptor specific methods\n* fixup git-ioat merge\n* move group_list and phys to dma_async_tx_descriptor\n\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: Chris Leech \u003cchristopher.leech@intel.com\u003e\nSigned-off-by: Shannon Nelson \u003cshannon.nelson@intel.com\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "428ed6024fa74a271142f3257966e9b5e1cb37a1",
      "tree": "b74af2d50f292ec377a567368e0dd41fe439d1b7",
      "parents": [
        "e00c5d8b4d800b95b72b3f072e1d55d7c7034702"
      ],
      "author": {
        "name": "Dan Aloni",
        "email": "da\\\\-x@monatomic.org",
        "time": "Thu Mar 08 09:57:36 2007 -0800"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Wed Jul 11 16:10:53 2007 -0700"
      },
      "message": "I/OAT: fix I/OAT for kexec\n\nUnder kexec, I/OAT initialization breaks over busy resources because the\nprevious kernel did not release them.\n\nI\u0027m not sure this fix can be considered a complete one but it works for me.\n I guess something similar to the *_remove method should occur there..\n\nSigned-off-by: Dan Aloni \u003cda-x@monatomic.org\u003e\nSigned-off-by: Chris Leech \u003cchristopher.leech@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "70774b47392171faae0e98f795aa1507f9246af1",
      "tree": "dc6e61846b7f140e2756e77bbf2adff4011c4ed6",
      "parents": [
        "e38288117c50fe22ed1693c2d8397245bb7e1a53"
      ],
      "author": {
        "name": "Chris Leech",
        "email": "christopher.leech@intel.com",
        "time": "Thu Mar 08 09:57:35 2007 -0800"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Wed Jul 11 15:39:04 2007 -0700"
      },
      "message": "ioatdma: Remove the use of writeq from the ioatdma driver\nThere\u0027s only one now anyway, and it\u0027s not in a performance path,\nso make it behave the same on 32-bit and 64-bit CPUs.\n\nSigned-off-by: Chris Leech \u003cchristopher.leech@intel.com\u003e\n"
    },
    {
      "commit": "e38288117c50fe22ed1693c2d8397245bb7e1a53",
      "tree": "a3189299b0056bb109fb7d306d5d0574c621a0a0",
      "parents": [
        "ff487fb773749124550a5ad2b7fbfe0376af6f0d"
      ],
      "author": {
        "name": "Chris Leech",
        "email": "christopher.leech@intel.com",
        "time": "Thu Mar 08 09:57:35 2007 -0800"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Wed Jul 11 15:39:04 2007 -0700"
      },
      "message": "ioatdma: Remove the wrappers around read(bwl)/write(bwl) in ioatdma\n\nSigned-off-by: Chris Leech \u003cchristopher.leech@intel.com\u003e\n"
    },
    {
      "commit": "ff487fb773749124550a5ad2b7fbfe0376af6f0d",
      "tree": "4162ef179d0496b8c5fa066a51cf97606e22c1be",
      "parents": [
        "000725d56a196e72dc22328324c5ec5506265736"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Mar 08 09:57:34 2007 -0800"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Wed Jul 11 15:39:03 2007 -0700"
      },
      "message": "drivers/dma: handle sysfs errors\n\nFrom: Jeff Garzik \u003cjeff@garzik.org\u003e\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\nSigned-off-by: Chris Leech \u003cchristopher.leech@intel.com\u003e\n"
    },
    {
      "commit": "000725d56a196e72dc22328324c5ec5506265736",
      "tree": "7189116b48efd57b2de74cc924d39fc885cf4d9e",
      "parents": [
        "7dcca30a32aadb0520417521b0c44f42d09fe05c"
      ],
      "author": {
        "name": "Chris Leech",
        "email": "christopher.leech@intel.com",
        "time": "Thu Mar 08 09:57:33 2007 -0800"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Wed Jul 11 15:39:03 2007 -0700"
      },
      "message": "ioatdma: Push pending transactions to hardware more frequently\nEvery 20 descriptors turns out to be to few append commands with\nnewer/faster CPUs.  Pushing every 4 still cuts down on MMIO writes to an\nacceptable level without letting the DMA engine run out of work.\n\nSigned-off-by: Chris Leech \u003cchristopher.leech@intel.com\u003e\n"
    },
    {
      "commit": "92504f79a7c57b853dfb59595fd2860282f6ba1e",
      "tree": "95b2a799759fd1366c834d47a50830627035dcb1",
      "parents": [
        "59faba1b316a7798a33752b3889193333f8af1a0"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Wed Jun 27 14:09:56 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jun 28 11:34:53 2007 -0700"
      },
      "message": "IOATDMA: fix section mismatches\n\nRename struct pci_driver data so that false section mismatch warnings won\u0027t\nbe produced.\n\nSam, ISTM that depending on variable names is the weakest \u0026 worst part of\nmodpost section checking.  Should __init_refok work here?  I got build\nerrors when I tried to use it, probably because the struct pci_driver probe\nand remove methods are not marked \"__init_refok\".\n\nWARNING: drivers/dma/ioatdma.o(.data+0x10): Section mismatch: reference to .init.text: (between \u0027ioat_pci_drv\u0027 and \u0027ioat_pci_tbl\u0027)\nWARNING: drivers/dma/ioatdma.o(.data+0x14): Section mismatch: reference to .exit.text: (between \u0027ioat_pci_drv\u0027 and \u0027ioat_pci_tbl\u0027)\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nAcked-by: Chris Leech \u003cchristopher.leech@intel.com\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9556fb73edfc37410cab3b47ae5e94bcecd8edf2",
      "tree": "dbe5fed3ab9f58f8ab804cb3f243b9259867cf3f",
      "parents": [
        "e25df1205f37c7bff3ab14fdfc8a5249f3c69c82"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Thu May 10 15:45:58 2007 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Thu May 10 15:46:07 2007 +0200"
      },
      "message": "[S390] Kconfig: unwanted menus for s390.\n\nDisable some more menus in the configuration files that are of no\ninterest to a s390 machine.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "765e3d8a71bbc1f3400667d5cfcfd7b03382d587",
      "tree": "0cf7dd6f707b10510d0c7343b5d4c198f093f725",
      "parents": [
        "bed31ed9e1cd71d98ff0bc9212100adee523a10a"
      ],
      "author": {
        "name": "David Brownell",
        "email": "david-b@pacbell.net",
        "time": "Fri Mar 16 13:38:05 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Mar 16 19:25:03 2007 -0700"
      },
      "message": "[PATCH] rm pointless dmaengine exports\n\nThis removes several pointless exports from drivers/dma/dmaengine.c; the\ndma_async_memcpy_*() functions are inlined by \u003clinux/dmaengine.h\u003e so those\nexports are inappropriate.\n\nIt also moves the existing EXPORT_SYMBOL declarations next to their functions,\nso it\u0027s now trivial to confirm one-to-one correspondence between exports and\nnonstatic symbols.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-by: Chris Leech \u003cchristopher.leech@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e94b1766097d53e6f3ccfb36c8baa562ffeda3fc",
      "tree": "93fa0a8ab84976d4e89c50768ca8b8878d642a0d",
      "parents": [
        "54e6ecb23951b195d02433a741c7f7cb0b796c78"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:33:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:24 2006 -0800"
      },
      "message": "[PATCH] slab: remove SLAB_KERNEL\n\nSLAB_KERNEL is an alias of GFP_KERNEL.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "47b16539e1072afd2c964b97be4a95b5cf2ff801",
      "tree": "6acd1d1a667f5b724cdc5c95f0bbed2639a24b55",
      "parents": [
        "c714de5dcf41cee869c4a74e8783c6d9be459ef6"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Tue Oct 10 22:45:47 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 10 15:37:21 2006 -0700"
      },
      "message": "[PATCH] drivers/dma trivial annotations\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\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": "b82631581372dc00b3507cedc3ad47af29efe962",
      "tree": "b8bcf35b3c7e9efe755da4e2bad38b7a6384e082",
      "parents": [
        "64d2f0855e50a7185546ee1fbc03c2badc31330f"
      ],
      "author": {
        "name": "Henrik Kretzschmar",
        "email": "henne@nachtwindheim.de",
        "time": "Fri Jul 21 14:50:13 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 21 14:50:13 2006 -0700"
      },
      "message": "[I/OAT]: Remove pci_module_init() from Intel I/OAT DMA engine\n\nChanges pci_module_init() to pci_register_driver().\n\nSigned-off-by: Henrik Kretzschmar \u003chenne@nachtwindheim.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6508871eddbbd3e62799f3b6182a6a4fd3ef31d5",
      "tree": "f8d5275b81e827326d8638b0286abd6bf19cd95c",
      "parents": [
        "fe4ada2d6f0b746246e9b5bf0f4f2e4d3a07d26e"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Mon Jul 03 19:45:31 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 03 19:45:31 2006 -0700"
      },
      "message": "[IOAT]: fix kernel-doc in source files\n\nFix kernel-doc warnings in drivers/dma/:\n- use correct function \u0026 parameter names\n- add descriptions where omitted\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "518d1c9679f644811adaa22d853f43a83fbdae84",
      "tree": "52705bc452ee453eb16127b1f9063e0f012481e6",
      "parents": [
        "56e0873b7b146564a0c36e225624f5a9b2d63791"
      ],
      "author": {
        "name": "Benoit Boissinot",
        "email": "benoit.boissinot@ens-lyon.org",
        "time": "Mon Jul 03 19:28:13 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 03 19:28:13 2006 -0700"
      },
      "message": "[IOAT]: Fix a warning in ioatdma\n\ndrivers/dma/ioatdma.c: In function \u0027ioat_init_module\u0027:\ndrivers/dma/ioatdma.c:830: warning: control reaches end of non-void function\n\nSigned-off-by: Benoit Boissinot \u003cbenoit.boissinot@ens-lyon.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "56e0873b7b146564a0c36e225624f5a9b2d63791",
      "tree": "6a7049712cf02a7e6e5b85277e4dd56e41aeea1e",
      "parents": [
        "882d02d6fb040a246b005305ffeb790bb5ce80ad"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Mon Jul 03 19:27:20 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 03 19:27:20 2006 -0700"
      },
      "message": "[IOAT]: drivers/dma/iovlock.c: make num_pages_spanned() static\n\nThis patch makes the needlessly global num_pages_spanned() static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c1b4df5d2a5b1a9c037fe3b2e42804cf1267c750",
      "tree": "2e21f21d25c4c5dc315b230d9dbe792799eca4be",
      "parents": [
        "912b2539e1e062cec73e2e61448e507f7719bd08"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Mon Jul 03 19:24:19 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 03 19:24:19 2006 -0700"
      },
      "message": "[IOAT]: fix sparse ulong warning\n\nFix sparse warning:\ndrivers/dma/ioatdma.c:444:32: warning: constant 0xFFFFFFFFFFFFFFC0 is so big it is unsigned long\n\nAlso needs a MAINTAINERS entry.\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dace145374b8e39aeb920304c358ab5e220341ab",
      "tree": "e37c76578468f489ce2dbec4d04400380c14ee14",
      "parents": [
        "8076fe32a7db9a6628589ffa372808e4ba25d222"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Jul 01 19:29:38 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jul 02 13:58:50 2006 -0700"
      },
      "message": "[PATCH] irq-flags: misc drivers: Use the new IRQF_ constants\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8070b2b1ecbeb5437c92c33b4dcea1d8d80399ee",
      "tree": "03e4cc4b1ed8c9905ed8742ea1f88c38b9638cfa",
      "parents": [
        "52383678a8ac80e6679f94f60c897f9292e0e8b9"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Jun 26 00:10:46 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Jun 26 00:10:46 2006 -0700"
      },
      "message": "[IOAT]: Do not dereference THIS_MODULE directly to set unsafe.\n\nUse the __unsafe() macro instead.\n\nNoticed by Miles Lane.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "17f3ae08b6e7fd778371f2cafbd1c988a67ee343",
      "tree": "9e33f603469628d9bbe679bede945d61e7417dbf",
      "parents": [
        "1a2449a87bb7606113b1aa1a9d3c3e78ef189a1c"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Thu May 25 13:26:53 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Jun 17 21:25:58 2006 -0700"
      },
      "message": "[I/OAT]: Do not use for_each_cpu().\n\nfor_each_cpu() is going away (and is gone in -mm).\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Chris Leech \u003cchristopher.leech@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "de5506e155276d385712c2aa1c2d9a27cd4ed947",
      "tree": "219c30dab27b9aef2597d8735dfc19db8454849e",
      "parents": [
        "db21733488f84a596faaad0d05430b3f51804692"
      ],
      "author": {
        "name": "Chris Leech",
        "email": "christopher.leech@intel.com",
        "time": "Tue May 23 17:50:37 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Jun 17 21:25:46 2006 -0700"
      },
      "message": "[I/OAT]: Utility functions for offloading sk_buff to iovec copies\n\nProvides for pinning user space pages in memory, copying to iovecs,\nand copying from sk_buffs including fragmented and chained sk_buffs.\n\nSigned-off-by: Chris Leech \u003cchristopher.leech@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "db21733488f84a596faaad0d05430b3f51804692",
      "tree": "a2c1f6d39ce27d2e86b395f2bf536c1ab7396411",
      "parents": [
        "57c651f74cd8383df10a648e677902849de1bc0b"
      ],
      "author": {
        "name": "Chris Leech",
        "email": "christopher.leech@intel.com",
        "time": "Sat Jun 17 21:24:58 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 17 21:24:58 2006 -0700"
      },
      "message": "[I/OAT]: Setup the networking subsystem as a DMA client\n\nAttempts to allocate per-CPU DMA channels\n\nSigned-off-by: Chris Leech \u003cchristopher.leech@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "57c651f74cd8383df10a648e677902849de1bc0b",
      "tree": "caf432ce2828b25e17cea3cff523e481c740c65e",
      "parents": [
        "6b00c92c4b26428cd80e966380c07103556f7b14"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.sfo1.dsl.speakeasy.net",
        "time": "Tue May 23 17:39:49 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Jun 17 21:18:50 2006 -0700"
      },
      "message": "[I/OAT]: Move PCI_DEVICE_ID_INTEL_IOAT to linux/pci_ids.h\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6b00c92c4b26428cd80e966380c07103556f7b14",
      "tree": "ffaa433a8a0f64285e2365084cf83b329f2070cb",
      "parents": [
        "0bbd5f4e97ff9c057b385a1886b4aed1fb0300f1"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.sfo1.dsl.speakeasy.net",
        "time": "Tue May 23 17:37:58 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Jun 17 21:18:48 2006 -0700"
      },
      "message": "[I/OAT]: ioatdma.c needs linux/dma-mapping.h\n\nFor DMA_*_MASK defines.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0bbd5f4e97ff9c057b385a1886b4aed1fb0300f1",
      "tree": "0c3d8528c31e8291fb78c2e7a287910987ed2888",
      "parents": [
        "c13c8260da3155f2cefb63b0d1b7dcdcb405c644"
      ],
      "author": {
        "name": "Chris Leech",
        "email": "christopher.leech@intel.com",
        "time": "Tue May 23 17:35:34 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Jun 17 21:18:46 2006 -0700"
      },
      "message": "[I/OAT]: Driver for the Intel(R) I/OAT DMA engine\n\nAdds a new ioatdma driver\n\nSigned-off-by: Chris Leech \u003cchristopher.leech@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c13c8260da3155f2cefb63b0d1b7dcdcb405c644",
      "tree": "ecfe02fa44a423a948f5fb5ad76497da2bb7a402",
      "parents": [
        "427abfa28afedffadfca9dd8b067eb6d36bac53f"
      ],
      "author": {
        "name": "Chris Leech",
        "email": "christopher.leech@intel.com",
        "time": "Tue May 23 17:18:44 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Jun 17 21:18:43 2006 -0700"
      },
      "message": "[I/OAT]: DMA memcpy subsystem\n\nProvides an API for offloading memory copies to DMA devices\n\nSigned-off-by: Chris Leech \u003cchristopher.leech@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ]
}
