)]}'
{
  "log": [
    {
      "commit": "ba4b87ad5497cba555954885db99c99627f93748",
      "tree": "c83af58e944639ea32418a84491469ddf3722b1c",
      "parents": [
        "6221f222c0ebf1acdf7abcf927178f40e1a65e2a"
      ],
      "author": {
        "name": "Stanislaw Gruszka",
        "email": "sgruszka@redhat.com",
        "time": "Thu Mar 31 08:08:09 2011 -0400"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Thu Apr 07 16:31:19 2011 +0200"
      },
      "message": "dma-debug: print information about leaked entry\n\nWhen driver leak dma mapping, print additional information about one of\nleaked entries, to to help investigate problem. Patch should be useful\nfor debugging drivers, which maps many different class of buffers.\n\nSigned-off-by: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "6038f373a3dc1f1c26496e60b6c40b164716f07e",
      "tree": "a0d3bbd026eea41b9fc36b8c722cbaf56cd9f825",
      "parents": [
        "1ec5584e3edf9c4bf2c88c846534d19cf986ba11"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sun Aug 15 18:52:59 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Fri Oct 15 15:53:27 2010 +0200"
      },
      "message": "llseek: automatically add .llseek fop\n\nAll file_operations should get a .llseek operation so we can make\nnonseekable_open the default for future file operations without a\n.llseek pointer.\n\nThe three cases that we can automatically detect are no_llseek, seq_lseek\nand default_llseek. For cases where we can we can automatically prove that\nthe file offset is always ignored, we use noop_llseek, which maintains\nthe current behavior of not returning an error from a seek.\n\nNew drivers should normally not use noop_llseek but instead use no_llseek\nand call nonseekable_open at open time.  Existing drivers can be converted\nto do the same when the maintainer knows for certain that no user code\nrelies on calling seek on the device file.\n\nThe generated code is often incorrectly indented and right now contains\ncomments that clarify for each added line why a specific variant was\nchosen. In the version that gets submitted upstream, the comments will\nbe gone and I will manually fix the indentation, because there does not\nseem to be a way to do that using coccinelle.\n\nSome amount of new code is currently sitting in linux-next that should get\nthe same modifications, which I will do at the end of the merge window.\n\nMany thanks to Julia Lawall for helping me learn to write a semantic\npatch that does all this.\n\n\u003d\u003d\u003d\u003d\u003d begin semantic patch \u003d\u003d\u003d\u003d\u003d\n// This adds an llseek\u003d method to all file operations,\n// as a preparation for making no_llseek the default.\n//\n// The rules are\n// - use no_llseek explicitly if we do nonseekable_open\n// - use seq_lseek for sequential files\n// - use default_llseek if we know we access f_pos\n// - use noop_llseek if we know we don\u0027t access f_pos,\n//   but we still want to allow users to call lseek\n//\n@ open1 exists @\nidentifier nested_open;\n@@\nnested_open(...)\n{\n\u003c+...\nnonseekable_open(...)\n...+\u003e\n}\n\n@ open exists@\nidentifier open_f;\nidentifier i, f;\nidentifier open1.nested_open;\n@@\nint open_f(struct inode *i, struct file *f)\n{\n\u003c+...\n(\nnonseekable_open(...)\n|\nnested_open(...)\n)\n...+\u003e\n}\n\n@ read disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n   *off \u003d E\n|\n   *off +\u003d E\n|\n   func(..., off, ...)\n|\n   E \u003d *off\n)\n...+\u003e\n}\n\n@ read_no_fpos disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ write @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n  *off \u003d E\n|\n  *off +\u003d E\n|\n  func(..., off, ...)\n|\n  E \u003d *off\n)\n...+\u003e\n}\n\n@ write_no_fpos @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ fops0 @\nidentifier fops;\n@@\nstruct file_operations fops \u003d {\n ...\n};\n\n@ has_llseek depends on fops0 @\nidentifier fops0.fops;\nidentifier llseek_f;\n@@\nstruct file_operations fops \u003d {\n...\n .llseek \u003d llseek_f,\n...\n};\n\n@ has_read depends on fops0 @\nidentifier fops0.fops;\nidentifier read_f;\n@@\nstruct file_operations fops \u003d {\n...\n .read \u003d read_f,\n...\n};\n\n@ has_write depends on fops0 @\nidentifier fops0.fops;\nidentifier write_f;\n@@\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n...\n};\n\n@ has_open depends on fops0 @\nidentifier fops0.fops;\nidentifier open_f;\n@@\nstruct file_operations fops \u003d {\n...\n .open \u003d open_f,\n...\n};\n\n// use no_llseek if we call nonseekable_open\n////////////////////////////////////////////\n@ nonseekable1 depends on !has_llseek \u0026\u0026 has_open @\nidentifier fops0.fops;\nidentifier nso ~\u003d \"nonseekable_open\";\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d nso, ...\n+.llseek \u003d no_llseek, /* nonseekable */\n};\n\n@ nonseekable2 depends on !has_llseek @\nidentifier fops0.fops;\nidentifier open.open_f;\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d open_f, ...\n+.llseek \u003d no_llseek, /* open uses nonseekable */\n};\n\n// use seq_lseek for sequential files\n/////////////////////////////////////\n@ seq depends on !has_llseek @\nidentifier fops0.fops;\nidentifier sr ~\u003d \"seq_read\";\n@@\nstruct file_operations fops \u003d {\n...  .read \u003d sr, ...\n+.llseek \u003d seq_lseek, /* we have seq_read */\n};\n\n// use default_llseek if there is a readdir\n///////////////////////////////////////////\n@ fops1 depends on !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier readdir_e;\n@@\n// any other fop is used that changes pos\nstruct file_operations fops \u003d {\n... .readdir \u003d readdir_e, ...\n+.llseek \u003d default_llseek, /* readdir is present */\n};\n\n// use default_llseek if at least one of read/write touches f_pos\n/////////////////////////////////////////////////////////////////\n@ fops2 depends on !fops1 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read.read_f;\n@@\n// read fops use offset\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d default_llseek, /* read accesses f_pos */\n};\n\n@ fops3 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+\t.llseek \u003d default_llseek, /* write accesses f_pos */\n};\n\n// Use noop_llseek if neither read nor write accesses f_pos\n///////////////////////////////////////////////////////////\n\n@ fops4 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !fops3 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\nidentifier write_no_fpos.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n .read \u003d read_f,\n...\n+.llseek \u003d noop_llseek, /* read and write both use no f_pos */\n};\n\n@ depends on has_write \u0026\u0026 !has_read \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write_no_fpos.write_f;\n@@\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+.llseek \u003d noop_llseek, /* write uses no f_pos */\n};\n\n@ depends on has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\n@@\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d noop_llseek, /* read uses no f_pos */\n};\n\n@ depends on !has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\n@@\nstruct file_operations fops \u003d {\n...\n+.llseek \u003d noop_llseek, /* no read or write fn */\n};\n\u003d\u003d\u003d\u003d\u003d End semantic patch \u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "39a37ce1cc5eef420604fa68b776ff5dab400340",
      "tree": "6303b715525daaefbc5b2ced63a1e697d47667a1",
      "parents": [
        "12ff4bf58b64ad3b8fb8e27889c99dcd5aa6fb0b"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Tue Apr 06 19:45:12 2010 +0300"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Wed Apr 07 14:36:27 2010 +0200"
      },
      "message": "dma-debug: Cleanup for copy-loop in filter_write()\n\nEarlier in this function we set the last byte of \"buf\" to NULL so we\nalways hit the break statement and \"i\" is never equal to NAME_MAX_LEN.\nThis patch doesn\u0027t change how the driver works but it silences a Smatch\nwarning and it makes it clearer that we don\u0027t write past the end of the\narray.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "a02b11937a6e1079fdf386833129cd86a3576196",
      "tree": "52be329d505921205c8269baf50f83ff40b76b12",
      "parents": [
        "d3ad9373b7c29b63d5e8460a69453718d200cc3b",
        "aeb583d08172e038552bdefe0a79a9aa9e2ecd7c"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri Jan 22 18:00:41 2010 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri Jan 22 18:00:41 2010 +0100"
      },
      "message": "Merge branches \u0027amd-iommu/fixes\u0027 and \u0027dma-debug/fixes\u0027 into iommu/fixes\n"
    },
    {
      "commit": "aeb583d08172e038552bdefe0a79a9aa9e2ecd7c",
      "tree": "df348e4297162ecb83a98a517de1e3977a5d784c",
      "parents": [
        "f797d9881b62c2ddb1d2e7bd80d87141949c84aa"
      ],
      "author": {
        "name": "Thiago Farina",
        "email": "tfransosi@gmail.com",
        "time": "Mon Jan 18 18:57:33 2010 -0500"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri Jan 22 17:59:51 2010 +0100"
      },
      "message": "lib/dma-debug.c: mark file-local struct symbol static.\n\nwarning: symbol \u0027filter_fops\u0027 was not declared. Should it be static?\n\nSigned-off-by: Thiago Farina \u003ctfransosi@gmail.com\u003e\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "42d53b4ff7d61487d18274ebdf1f70c1aef6f122",
      "tree": "55ef141c2c6e9ef52c724dd6aec03a8708d288b1",
      "parents": [
        "e992cd9b72a18122bd5c958715623057f110793f"
      ],
      "author": {
        "name": "Krzysztof Halasa",
        "email": "khc@pm.waw.pl",
        "time": "Fri Jan 08 14:42:36 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 11 09:34:04 2010 -0800"
      },
      "message": "dma-debug: allow DMA_BIDIRECTIONAL mappings to be synced with DMA_FROM_DEVICE and\n\nThere is no need to perform full BIDIR sync (copying the buffers in case\nof swiotlb and similar schemes) if we know that the owner (CPU or device)\nhasn\u0027t altered the data.\n\nAddresses the false-positive reported at\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d14169\n\nSigned-off-by: Krzysztof Halasa \u003ckhc@pm.waw.pl\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Joerg Roedel \u003cjoerg.roedel@amd.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": "a8fe9ea200ea21421ea750423d1d4d4f7ce037cf",
      "tree": "f351dc2c5804ba6e8571574bf323e7b2162f9276",
      "parents": [
        "f405d2c02395a74d3883bd03ded36457aa3697ad"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 31 15:16:23 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 31 15:16:23 2009 +0100"
      },
      "message": "dma-debug: Fix bug causing build warning\n\nStephen Rothwell reported the following build warning:\n\n lib/dma-debug.c: In function \u0027dma_debug_device_change\u0027:\n lib/dma-debug.c:680: warning: \u0027return\u0027 with no value, in function returning non-void\n\nIntroduced by commit f797d9881b62c2ddb1d2e7bd80d87141949c84aa\n(\"dma-debug: Do not add notifier when dma debugging is disabled\").\n\nReturn 0 [notify-done] when disabled. (this is standard bus notifier behavior.)\n\nSigned-off-by: Shaun Ruffell \u003csruffell@digium.com\u003e\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: \u003cstable@kernel.org\u003e\nLKML-Reference: \u003c20091231125624.GA14666@liondog.tnic\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f797d9881b62c2ddb1d2e7bd80d87141949c84aa",
      "tree": "e52785a6c036130cfbe82b0ad9e5cc364acc7be4",
      "parents": [
        "55639353a0035052d9ea6cfe4dde0ac7fcbb2c9f"
      ],
      "author": {
        "name": "Shaun Ruffell",
        "email": "sruffell@digium.com",
        "time": "Thu Dec 17 18:00:36 2009 -0600"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Mon Dec 21 15:10:12 2009 +0100"
      },
      "message": "dma-debug: Do not add notifier when dma debugging is disabled.\n\nIf CONFIG_HAVE_DMA_API_DEBUG is defined and \"dma_debug\u003doff\" is\nspecified on the kernel command line, when you detach a driver from a\ndevice you can cause the following NULL pointer dereference:\n\nBUG: unable to handle kernel NULL pointer dereference at (null)\nIP: [\u003cc0580d35\u003e] dma_debug_device_change+0x5d/0x117\n\nThe problem is that the dma_debug_device_change notifier function is\nadded to the bus notifier chain even though the dma_entry_hash array\nwas never initialized.  If dma debugging is disabled, this patch both\nprevents dma_debug_device_change notifiers from being added to the\nchain, and additionally ensures that the dma_debug_device_change\nnotifier function is a no-op.\n\nCc: stable@kernel.org\nSigned-off-by: Shaun Ruffell \u003csruffell@digium.com\u003e\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "af901ca181d92aac3a7dc265144a9081a86d8f39",
      "tree": "380054af22521144fbe1364c3bcd55ad24c9bde4",
      "parents": [
        "972b94ffb90ea6d20c589d9a47215df103388ddd"
      ],
      "author": {
        "name": "André Goddard Rosa",
        "email": "andre.goddard@gmail.com",
        "time": "Sat Nov 14 13:09:05 2009 -0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Dec 04 15:39:55 2009 +0100"
      },
      "message": "tree-wide: fix assorted typos all over the place\n\nThat is \"success\", \"unknown\", \"through\", \"performance\", \"[re|un]mapping\"\n, \"access\", \"default\", \"reasonable\", \"[con]currently\", \"temperature\"\n, \"channel\", \"[un]used\", \"application\", \"example\",\"hierarchy\", \"therefore\"\n, \"[over|under]flow\", \"contiguous\", \"threshold\", \"enough\" and others.\n\nSigned-off-by: André Goddard Rosa \u003candre.goddard@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "59a40e70458341b35d123b60aca416a1d97ebbe3",
      "tree": "e83d2943e4e4a8203892464f0926d24183c0c715",
      "parents": [
        "161291396e76e0832c08f617eb9bd364d1648148"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Thu Oct 29 16:25:50 2009 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Thu Oct 29 16:25:50 2009 +0100"
      },
      "message": "dma-debug: Fix compile warning with PAE enabled\n\nWhen PAE is enabled in the kernel configuration the size of\nphys_addr_t differs from the size of a void pointer. The gcc\nprints a warning about that in dma-debug code.\nThis patch fixes the warning by converting the output to\nunsigned long long instead of a pointer.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "ec9c96ef3cc0124cb94375b17faaa8cff5dfdf97",
      "tree": "477cfb87ab455a9adf26cb897252290f110494dd",
      "parents": [
        "429966b8f644dda2afddb4f834a944e9b46a7645"
      ],
      "author": {
        "name": "Kyle McMartin",
        "email": "kyle@redhat.com",
        "time": "Wed Aug 19 21:17:08 2009 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Aug 21 10:04:24 2009 +0200"
      },
      "message": "dma-debug: Fix check_unmap null pointer dereference\n\nWhile it\u0027s debatable whether or not a NULL device argument to\nthe DMA API functions is valid... since it certainly isn\u0027t\nvalid on devices with an IOMMU... dma-debug really shouldn\u0027t be\ndereferencing null pointers either.\n\nGuard against that in err_printk and the driver_filter\nfunctions. A Fedora rawhide user was seeing this in one of the\ndvb drivers resulting in an oops on boot.\n\n[ A patch has been sent for testing to the driver, but I feel\n  the dma debugging support should be fixed as well. (There\u0027s\n  still a pile of legacy garbage in the kernel passing null\n  pointers to dma_{alloc,free}_*. :( ]\n\nSigned-off-by: Kyle McMartin \u003ckyle@redhat.com\u003e\nCc: mchehab@infradead.org\nCc: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nLKML-Reference: \u003c20090820011708.GP25206@bombadil.infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f39d1b9792881ce4eb982ec8cc65258bf95674b5",
      "tree": "07f945a2a6f0b1f2fb2af759e386781d0e0bed3f",
      "parents": [
        "2b8777ca0c944bf6498c45ed9c5c246bd63a719e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 10 21:38:02 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 10 22:18:45 2009 +0200"
      },
      "message": "dma-debug: Fix the overlap() function to be correct and readable\n\nLinus noticed how unclean and buggy the overlap() function is:\n\n - It uses convoluted (and bug-causing) positive checks for\n   range overlap - instead of using a more natural negative\n   check.\n\n - Even the positive checks are buggy: a positive intersection\n   check has four natural cases while we checked only for three,\n   missing the (addr \u003c start \u0026\u0026 addr2 \u003d\u003d end) case for example.\n\n - The variables are mis-named, making it non-obvious how the\n   check was done.\n\n - It needlessly uses u64 instead of unsigned long. Since these\n   are kernel memory pointers and we explicitly exclude highmem\n   ranges anyway we cannot ever overflow 32 bits, even if we\n   could. (and on 64-bit it doesnt matter anyway)\n\nAll in one, this function needs a total revamp. I used Linus\u0027s\nsuggestions minus the paranoid checks (we cannot overflow really\nbecause if we get totally bad DMA ranges passed far more things\nbreak in the systems than just DMA debugging). I also fixed a\nfew other small details i noticed.\n\nReported-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b0a5b83ee0fce9dbf8ff5fe1f8c9ae7dfafe458c",
      "tree": "f36980eeb5eb2205478a523769b6730a19d9a3cf",
      "parents": [
        "c79ee4e466dd12347f112e2af306dca35198458f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 16 16:11:14 2009 +0200"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Wed Jun 17 16:26:04 2009 +0200"
      },
      "message": "dma-debug: Put all hash-chain locks into the same lock class\n\nAlan Cox reported that lockdep runs out of its stack-trace entries\nwith certain configs:\n\n BUG: MAX_STACK_TRACE_ENTRIES too low\n\nThis happens because there are 1024 hash buckets, each with a\nseparate lock. Lockdep puts each lock into a separate lock class and\ntracks them independently.\n\nBut in reality we never take more than one of the buckets, so they\nreally belong into a single lock-class. Annotate the has bucket lock\ninit accordingly.\n\n[ Impact: reduce the lockdep footprint of dma-debug ]\n\nReported-by: Alan Cox \u003calan@linux.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "c79ee4e466dd12347f112e2af306dca35198458f",
      "tree": "42c7a2fede416d9702a5affcf68ea198372590db",
      "parents": [
        "aa010efb7b6cd0dfbea8ecf37a6ab587dc2a8560"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Tue Jun 16 12:23:58 2009 +0200"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Tue Jun 16 12:29:40 2009 +0200"
      },
      "message": "dma-debug: fix off-by-one error in overlap function\n\nThis patch fixes a bug in the overlap function which returned true if\none region ends exactly before the second region begins. This is no\noverlap but the function returned true in that case.\n\nCc: stable@kernel.org\nReported-by: Andrew Randrianasulu \u003crandrik@mail.ru\u003e\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "aa010efb7b6cd0dfbea8ecf37a6ab587dc2a8560",
      "tree": "2a96d072ee903d489feccccd9455f25fc77f5f25",
      "parents": [
        "e5e8c5b90a1ae249930fcf7403f3757686cf1a7b"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri Jun 12 15:25:06 2009 +0200"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Mon Jun 15 11:10:14 2009 +0200"
      },
      "message": "dma-debug: be more careful when building reference entries\n\nThe current code is not very careful when it builds reference\ndma_debug_entries which get passed to hash_bucket_find(). But since this\nfunction changed to a best-fit algorithm these entries have to be more\nacurate. This patch adds this higher level of accuracy.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "e5e8c5b90a1ae249930fcf7403f3757686cf1a7b",
      "tree": "ce562ec0d0a9ffed4d16bd5569d21cd8ed222096",
      "parents": [
        "92db1e6af747faa129e236d68386af26a0efc12b"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Thu Jun 11 10:03:42 2009 +0200"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Mon Jun 15 11:08:54 2009 +0200"
      },
      "message": "dma-debug: check for sg_call_ents in best-fit algorithm too\n\nIf we don\u0027t check for sg_call_ents the hash_bucket_find function might\nstill return the wrong dma_debug_entry for sg mappings.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "0bf841281e58d0b3cc9fe9dc4383df7694bde6bd",
      "tree": "b45e799974aa94c8d1e5c89bbd3dcd5c69d26991",
      "parents": [
        "be81c6ea23b8b471141734ef4bc005f5127aaf43"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Mon Jun 08 15:53:46 2009 +0200"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Mon Jun 08 15:53:46 2009 +0200"
      },
      "message": "dma-debug: simplify logic in driver_filter()\n\nThis patch makes the driver_filter function more readable by\nreorganizing the code. The removal of a code code block to an upper\nindentation level makes hard-to-read line-wraps unnecessary.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "be81c6ea23b8b471141734ef4bc005f5127aaf43",
      "tree": "c43bebd9c640f1764e94d7a97f40d3c21c2bd4a4",
      "parents": [
        "e7ed70eedccc78e79ce6da2155e9caf90aff4003"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Mon Jun 08 15:46:19 2009 +0200"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Mon Jun 08 15:46:19 2009 +0200"
      },
      "message": "dma-debug: disable/enable irqs only once in device_dma_allocations\n\nThere is no need to disable/enable irqs on each loop iteration. Just\ndisable irqs for the whole time the loop runs.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "e7ed70eedccc78e79ce6da2155e9caf90aff4003",
      "tree": "30e6327ae71a076d6c3187e217d2642b2ee1a560",
      "parents": [
        "c17e2cf7376a2010b8b114fdeebd4e340a5e9cb2"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Mon Jun 08 15:39:24 2009 +0200"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Mon Jun 08 15:39:24 2009 +0200"
      },
      "message": "dma-debug: use pr_* instead of printk(KERN_* ...)\n\nThe pr_* macros are shorter than the old printk(KERN_ ...) variant.\nChange the dma-debug code to use the new macros and save a few\nunnecessary line breaks. If lines don\u0027t break the source code can also\nbe grepped more easily.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "c17e2cf7376a2010b8b114fdeebd4e340a5e9cb2",
      "tree": "aec38d5643d518afa12889c6a72003b5cfa13b23",
      "parents": [
        "312325094785566a0e42a88c1bf6e7eb54c5d70e"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Mon Jun 08 15:19:29 2009 +0200"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Mon Jun 08 15:19:29 2009 +0200"
      },
      "message": "dma-debug: code style fixes\n\nThis patch changes the recent updates to dma-debug to conform with\ncoding style guidelines of Linux and the -tip tree.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "312325094785566a0e42a88c1bf6e7eb54c5d70e",
      "tree": "6d1b2bc561e4440c871d2d893edfc60f9ed06285",
      "parents": [
        "62a6f465f6572e1f28765c583c12753bb3e23715"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Mon Jun 08 15:07:08 2009 +0200"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Mon Jun 08 15:07:08 2009 +0200"
      },
      "message": "dma-debug: comment style fixes\n\nLast patch series introduced some new comment which does not fit the\nKernel comment style guidelines. Fix it with this patch.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "62a6f465f6572e1f28765c583c12753bb3e23715",
      "tree": "35ccf596b4abbeec9e1244f31e5b4e5d079899f5",
      "parents": [
        "56fdd18c7b89a2fac1dfe5d54750c9143867fdc4",
        "bdc2911cde7d18580a545483844d75fdb3551729"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jun 07 11:36:02 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jun 07 11:36:02 2009 +0200"
      },
      "message": "Merge branch \u0027dma-debug/2.6.31\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/joro/linux-2.6-iommu into core/iommu\n"
    },
    {
      "commit": "7caf6a49bb17d0377210693af5737563b31aa5ee",
      "tree": "1a61bc90002bc2e3d1fc5d028e408b35fb765cbd",
      "parents": [
        "fe2245c905631a3a353504fc04388ce3dfaf9d9e"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri Jun 05 12:01:35 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jun 07 10:04:53 2009 +0200"
      },
      "message": "dma-debug: change hash_bucket_find from first-fit to best-fit\n\nSome device drivers map the same physical address multiple times to a\ndma address. Without an IOMMU this results in the same dma address being\nput into the dma-debug hash multiple times. With a first-fit match in\nhash_bucket_find() this function may return the wrong dma_debug_entry.\n\nThis can result in false positive warnings. This patch fixes it by\nchanging the first-fit behavior of hash_bucket_find() into a best-fit\nalgorithm.\n\nReported-by: Torsten Kaiser \u003cjust.for.lkml@googlemail.com\u003e\nReported-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nCc: lethal@linux-sh.org\nCc: just.for.lkml@googlemail.com\nCc: hancockrwd@gmail.com\nCc: jens.axboe@oracle.com\nCc: bharrosh@panasas.com\nCc: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: \u003cstable@kernel.org\u003e\nLKML-Reference: \u003c20090605104132.GE24836@amd.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bdc2911cde7d18580a545483844d75fdb3551729",
      "tree": "53e6df89e8a0255f7fd749b33e27d76746edc687",
      "parents": [
        "88f3907f6f447899544beadf491dccb32015dacb",
        "016ea6874a6d58df85b54f56997d26df13c307b2"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Tue Jun 02 16:45:02 2009 +0200"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Tue Jun 02 16:45:02 2009 +0200"
      },
      "message": "Merge branches \u0027dma-debug/fixes\u0027 and \u0027dma-debug/driver-filter\u0027 into dma-debug/2.6.31\n"
    },
    {
      "commit": "1745de5e5639457513fe43440f2800e23c3cbc7d",
      "tree": "0323bd8756c0b42060724ce282facce2a885c9a2",
      "parents": [
        "8a6fc708b9bb48a79a385bdc2be0959ee2ab788d"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri May 22 21:49:51 2009 +0200"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Tue Jun 02 16:21:41 2009 +0200"
      },
      "message": "dma-debug: add dma_debug_driver kernel command line\n\nThis patch add the dma_debug_driver\u003d boot parameter to enable the driver\nfilter for early boot.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "8a6fc708b9bb48a79a385bdc2be0959ee2ab788d",
      "tree": "55db1582e9d14092855ef28a050fb1913d76667c",
      "parents": [
        "2e507d849f1834d3fe9aae71b7aabf4c2a3827b8"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri May 22 21:23:13 2009 +0200"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Tue Jun 02 16:21:18 2009 +0200"
      },
      "message": "dma-debug: add debugfs file for driver filter\n\nThis patch adds the dma-api/driver_filter file to debugfs. The root user\ncan write a driver name into this file to see only dma-api errors for\nthat particular driver in the kernel log. Writing an empty string to\nthat file disables the driver filter.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "2e507d849f1834d3fe9aae71b7aabf4c2a3827b8",
      "tree": "7cc7623379821ef36423d4c3fe19f17c7e5c019f",
      "parents": [
        "41fb454ebe6024f5c1e3b3cbc0abc0da762e7b51"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri May 22 18:24:20 2009 +0200"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Tue Jun 02 14:54:55 2009 +0200"
      },
      "message": "dma-debug: add variables and checks for driver filter\n\nThis patch adds the state variables for the driver filter and a function\nto check if the filter is enabled and matches to the current device. The\ncheck is built into the err_printk function.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "88f3907f6f447899544beadf491dccb32015dacb",
      "tree": "65566b6711d85b951d55982d3bcc0c7393d6ad73",
      "parents": [
        "884d05970bfbc3db368f23460dc4ce63257f240d"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Wed May 27 09:43:03 2009 +0900"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri May 29 14:27:05 2009 +0200"
      },
      "message": "dma-debug: fix debug_dma_sync_sg_for_cpu and debug_dma_sync_sg_for_device\n\nDMA-mapping.txt says that debug_dma_sync_sg family must be called with\nthe _same_ one you passed into the dma_map_sg call, it should _NOT_ be\nthe \u0027count\u0027 value _returned_ from the dma_map_sg call.\n\ndebug_dma_sync_sg_for_cpu and debug_dma_sync_sg_for_device can\u0027t\nhandle this properly; they need to use the sg_mapped_ents in struct\ndma_debug_entry as debug_dma_unmap_sg() does.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "884d05970bfbc3db368f23460dc4ce63257f240d",
      "tree": "d4dbd2376fc75baf5312e30799e5937e68da9746",
      "parents": [
        "15aedea439c4d7dbec17c99b5e1594c01b979833"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Wed May 27 09:43:02 2009 +0900"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri May 29 14:26:55 2009 +0200"
      },
      "message": "dma-debug: use sg_dma_len accessor\n\ndebug_dma_map_sg() and debug_dma_unmap_sg() use length in struct\nscatterlist while debug_dma_sync_sg_for_cpu() and\ndebug_dma_sync_sg_for_device() use dma_length. This causes bugs\nwarnings on some IOMMU implementations since these values are not\nsame; the length doesn\u0027t represent the dma length.\n\nWe always need to use sg_dma_len() accessor to get the dma length of a\nscatterlist entry.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "15aedea439c4d7dbec17c99b5e1594c01b979833",
      "tree": "350a919d744ebabd08364b843c9b8c7618c1b39e",
      "parents": [
        "ed888aef427365d19f887c271a3a906d16422d24"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Wed May 27 09:43:01 2009 +0900"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri May 29 14:26:42 2009 +0200"
      },
      "message": "dma-debug: use sg_dma_address accessor instead of using dma_address directly\n\nArchitectures might not have dma_address in struct scatterlist (PARISC\ndoesn\u0027t). Directly accessing to dma_address in struct scatterlist is\nwrong; we need to use sg_dma_address() accesssor instead.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "ed888aef427365d19f887c271a3a906d16422d24",
      "tree": "31788a63f76e73e12ea5ef7f2374cd42a1b24846",
      "parents": [
        "41fb454ebe6024f5c1e3b3cbc0abc0da762e7b51"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri May 22 17:16:04 2009 +0200"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Thu May 28 17:09:07 2009 +0200"
      },
      "message": "dma-debug: re-add dma memory leak detection\n\nThis is basically a revert of commit 314eeac9 but now in a\nfixed version.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "41fb454ebe6024f5c1e3b3cbc0abc0da762e7b51",
      "tree": "51c50bcb67a5039448ddfa1869d7948cab1217e9",
      "parents": [
        "19c1a6f5764d787113fa323ffb18be7991208f82",
        "091bf7624d1c90cec9e578a18529f615213ff847"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 11 14:44:27 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 11 14:44:31 2009 +0200"
      },
      "message": "Merge commit \u0027v2.6.30-rc5\u0027 into core/iommu\n\nMerge reason: core/iommu was on an .30-rc1 base,\n              update it to .30-rc5 to refresh.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "314eeac9e35d8b934dd7a09ed3a8e00d41977b84",
      "tree": "e59218338ee9d62c02c50f4cdec1f1ca1b81aeb9",
      "parents": [
        "992d7ced75322307035a0e94074eb7188612a680"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri Apr 24 14:35:57 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Apr 26 18:23:56 2009 +0200"
      },
      "message": "dma-debug: remove broken dma memory leak detection for 2.6.30\n\nThe feature needs some more work because the notfier which is used to\ncheck for pending allocations is called before the device drivers\n-\u003eremove() function. Therefore this feature reports false positives.\n\nA real fix for this issue is to introduce a new notifier event which sent\n_after_ the driver has deinitialized itself. That will done for the next\nkernel version.\n\n[ Impact: reduce the scope of CONFIG_DMA_API_DEBUG\u003dy checks ]\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nCc: iommu@lists.linux-foundation.org\nLKML-Reference: \u003c1240576557-22442-1-git-send-email-joerg.roedel@amd.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e6a1a89d572c31b62d6dcf11a371c7323852d9b2",
      "tree": "bca6ff9d83ae6820c3dd4270e165705c12b66f56",
      "parents": [
        "7e05575c422d45f393c2d9b5900e97a30bf69bea"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Wed Apr 15 18:22:41 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 15 12:22:37 2009 +0200"
      },
      "message": "dma-debug: add dma_debug_resize_entries() to adjust the number of dma_debug_entries\n\nWe use a static value for the number of dma_debug_entries. It can be\noverwritten by a kernel command line option.\n\nSome IOMMUs (e.g. GART) can\u0027t set an appropriate value by a kernel\ncommand line option because they can\u0027t know such value until they\nfinish initializing up their hardware.\n\nThis patch adds dma_debug_resize_entries() enables IOMMUs to adjust\nthe number of dma_debug_entries anytime.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nAcked-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nCc: fujita.tomonori@lab.ntt.co.jp\nCc: akpm@linux-foundation.org\nLKML-Reference: \u003c20090415182234R.fujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "93c36ed8348934b462044d2d60ab345055318933",
      "tree": "1d9b9236e83ed3f7aee2b79dee0e0a8e99df5e16",
      "parents": [
        "3a355cc61d41bc31cc23a57247df63dba80a6018"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Mon Mar 30 14:08:44 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 14:28:59 2009 -0700"
      },
      "message": "dma-debug: fix printk formats (i386)\n\nFix printk format warnings in dma-debug:\n\n  lib/dma-debug.c:645: warning: format \u0027%016llx\u0027 expects type \u0027long long unsigned int\u0027, but argument 6 has type \u0027dma_addr_t\u0027\n  lib/dma-debug.c:662: warning: format \u0027%016llx\u0027 expects type \u0027long long unsigned int\u0027, but argument 6 has type \u0027dma_addr_t\u0027\n  lib/dma-debug.c:676: warning: format \u0027%016llx\u0027 expects type \u0027long long unsigned int\u0027, but argument 6 has type \u0027dma_addr_t\u0027\n  lib/dma-debug.c:686: warning: format \u0027%016llx\u0027 expects type \u0027long long unsigned int\u0027, but argument 6 has type \u0027dma_addr_t\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9537a48ed4b9e4b738943d6da0a0fd4278adf905",
      "tree": "06f512876680265ece3bd46b14c2b1c234202918",
      "parents": [
        "35d40952dba7b0689a16bd1463fb7698f8dbe639"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Mon Mar 23 15:35:08 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 24 08:39:32 2009 +0100"
      },
      "message": "dma-debug: make memory range checks more consistent\n\nImpact: extend on-kernel-stack DMA debug checks to all !highmem pages\n\nWe only checked dma_map_single() - extend it to dma_map_page()\nand dma_map_sg() as well.\n\nAlso, fix dma_map_single() corner case bug: make sure we dont\nstack-check highmem (not mapped) pages.\n\nReported-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nCc: iommu@lists.linux-foundation.org\nLKML-Reference: \u003c1237818908-26516-1-git-send-email-joerg.roedel@amd.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "35d40952dba7b0689a16bd1463fb7698f8dbe639",
      "tree": "54020722e333174009f7f588b3960dd32026b03a",
      "parents": [
        "84be58d4601c86306cd939ebf58a9b90989883a4"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Thu Mar 19 10:39:31 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 19 08:39:48 2009 +0100"
      },
      "message": "dma-debug: warn of unmapping an invalid dma address\n\nImpact: extend DMA-debug checks\n\nCalling dma_unmap families against an invalid dma address should be a\nbug.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nLKML-Reference: \u003c20090319103743N.fujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "41531c8f5f05aba5ec645d9770557eedbf75b422",
      "tree": "7635e68efbee5ea7b5208e5d4b332f6ef2113dd3",
      "parents": [
        "2e34bde18576a02c897ae6b699ea26301d92be1b"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Mon Mar 16 17:32:14 2009 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Tue Mar 17 12:56:49 2009 +0100"
      },
      "message": "dma-debug: add a check dma memory leaks\n\nImpact: allow architectures to monitor busses for dma mem leakage\n\nThis patch adds checking code to detect if a device has pending DMA\noperations when it is about to be unbound from its device driver.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "2e34bde18576a02c897ae6b699ea26301d92be1b",
      "tree": "301278f1af66dd5be296814e19af2f6190e27634",
      "parents": [
        "6c132d1bcdc716e898b4092bb1abc696505c37e7"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Mon Mar 16 16:51:55 2009 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Tue Mar 17 12:56:48 2009 +0100"
      },
      "message": "dma-debug: add checks for kernel text and rodata\n\nImpact: get notified if a device dma maps illegal areas\n\nThis patch adds a check to print a warning message when a device driver\ntries to map a memory area from the kernel text segment or rodata.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "6c132d1bcdc716e898b4092bb1abc696505c37e7",
      "tree": "4000e2c7a7d87a80b1d70a29f4ed74227f1a826d",
      "parents": [
        "187f9c3f05373df4f7cbae2e656450acdbba7558"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Mon Jan 19 16:52:39 2009 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Tue Mar 17 12:56:48 2009 +0100"
      },
      "message": "dma-debug: print stacktrace of mapping path on unmap error\n\nImpact: saves stacktrace of a dma mapping and prints it if there is an  error\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "ac26c18bd35d982d1ba06020a992b1085fefc3e2",
      "tree": "33f7fe1a22848c7dfdd002298f27efff103480a4",
      "parents": [
        "a31fba5d68cebf8f5fefd03e079dab94875e25f5"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Thu Feb 12 16:19:13 2009 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Tue Mar 17 12:56:39 2009 +0100"
      },
      "message": "dma-debug: add function to dump dma mappings\n\nThis adds a function to dump the DMA mappings that the debugging code is\naware of -- either for a single device, or for _all_ devices.\n\nThis can be useful for debugging -- sticking a call to it in the DMA\npage fault handler, for example, to see if the faulting address _should_\nbe mapped or not, and hence work out whether it\u0027s IOMMU bugs we\u0027re\nseeing, or driver bugs.\n\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "a31fba5d68cebf8f5fefd03e079dab94875e25f5",
      "tree": "e0483e4ba8912b6e8d7deb3d50bec5d47698460c",
      "parents": [
        "948408ba3e2a67ed0f95e18ed5be1c622c2c5fc3"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri Jan 09 15:01:12 2009 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Thu Mar 05 20:35:21 2009 +0100"
      },
      "message": "dma-debug: add checks for sync_single_sg_*\n\nImpact: add debug callbacks for dma_sync_sg_* functions\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "948408ba3e2a67ed0f95e18ed5be1c622c2c5fc3",
      "tree": "16b13f15e34772e6c99a09b90ca5cfafaaa8f271",
      "parents": [
        "b9d2317e0c4aed02afd20022083b2a485289605d"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri Jan 09 14:55:38 2009 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Thu Mar 05 20:35:21 2009 +0100"
      },
      "message": "dma-debug: add checks for sync_single_range_*\n\nImpact: add debug callbacks for dma_sync_single_range_for_* functions\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "b9d2317e0c4aed02afd20022083b2a485289605d",
      "tree": "65f3860698cad2c1cc120220da6f72a400123001",
      "parents": [
        "6bfd4498764d6201399849d2e80fda95db7742c0"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri Jan 09 14:43:04 2009 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Thu Mar 05 20:35:20 2009 +0100"
      },
      "message": "dma-debug: add checks for sync_single_*\n\nImpact: add debug callbacks for dma_sync_single_for_* functions\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "6bfd4498764d6201399849d2e80fda95db7742c0",
      "tree": "71675d02878324a82036e75d3bd0e0457a33e12b",
      "parents": [
        "972aa45ceaf65376f33aa75958fcaefc9e752fa4"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri Jan 09 14:38:50 2009 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Thu Mar 05 20:35:19 2009 +0100"
      },
      "message": "dma-debug: add checking for [alloc|free]_coherent\n\nImpact: add debug callbacks for dma_[alloc|free]_coherent\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "972aa45ceaf65376f33aa75958fcaefc9e752fa4",
      "tree": "ffed83c13c7c0e27f39efe0c0cc81f2c9e6c72c6",
      "parents": [
        "f62bc980e6fd26434012c0d5676ecb17179d9ee4"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri Jan 09 14:19:54 2009 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Thu Mar 05 20:35:18 2009 +0100"
      },
      "message": "dma-debug: add add checking for map/unmap_sg\n\nImpact: add debug callbacks for dma_{un}map_sg\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "f62bc980e6fd26434012c0d5676ecb17179d9ee4",
      "tree": "515d946a1739eb9a6bbcce215d8be62ae5695b09",
      "parents": [
        "2d62ece14fe04168a7d16688ddd2d17ac472268c"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri Jan 09 14:14:49 2009 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Thu Mar 05 20:35:18 2009 +0100"
      },
      "message": "dma-debug: add checking for map/unmap_page/single\n\nImpact: add debug callbacks for dma_{un}map_[page|single]\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "2d62ece14fe04168a7d16688ddd2d17ac472268c",
      "tree": "735c3b728bffc75331abab54c23e2939aeeba9f4",
      "parents": [
        "788dcfa6f17424695823152890d30da09f62f9c3"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri Jan 09 14:10:26 2009 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Thu Mar 05 20:35:17 2009 +0100"
      },
      "message": "dma-debug: add core checking functions\n\nImpact: add functions to check on dma unmap and sync\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "788dcfa6f17424695823152890d30da09f62f9c3",
      "tree": "d4f688954efcd23e95c9954408dd6a39959df247",
      "parents": [
        "59d3daafa17265f01149df8eab3fb69b9b42cb2e"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri Jan 09 13:13:27 2009 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Thu Mar 05 20:35:16 2009 +0100"
      },
      "message": "dma-debug: add debugfs interface\n\nImpact: add debugfs interface for configuring DMA-API debugging\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "59d3daafa17265f01149df8eab3fb69b9b42cb2e",
      "tree": "b4c0f3525f976dd5ec37730dee76ed227dcd25d5",
      "parents": [
        "6bf078715c1998d4d10716251cc10ce45908594c"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri Jan 09 13:01:56 2009 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Thu Mar 05 20:35:16 2009 +0100"
      },
      "message": "dma-debug: add kernel command line parameters\n\nImpact: add dma_debug\u003d and dma_debug_entries\u003d kernel parameters\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "6bf078715c1998d4d10716251cc10ce45908594c",
      "tree": "ae975ed487463ff9b82f9f8f3fbc1871f514f03b",
      "parents": [
        "3b1e79ed734f58ac41ca0a287ff03ca355f120ad"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri Jan 09 12:54:42 2009 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Thu Mar 05 20:35:15 2009 +0100"
      },
      "message": "dma-debug: add initialization code\n\nImpact: add code to initialize dma-debug core data structures\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "3b1e79ed734f58ac41ca0a287ff03ca355f120ad",
      "tree": "58ff425e5181df9f2fc317a612f2313054cce7aa",
      "parents": [
        "30dfa90cc8c4c9621d8d5aa9499f3a5df3376307"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri Jan 09 12:42:46 2009 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Thu Mar 05 20:35:15 2009 +0100"
      },
      "message": "dma-debug: add allocator code\n\nImpact: add allocator code for struct dma_debug_entry\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "30dfa90cc8c4c9621d8d5aa9499f3a5df3376307",
      "tree": "4276579cf6c9dd516412007447c5672e0697061a",
      "parents": [
        "f2f45e5f3c921c73c913e9a9c00f21ec01c86b4d"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri Jan 09 12:34:49 2009 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Thu Mar 05 20:35:04 2009 +0100"
      },
      "message": "dma-debug: add hash functions for dma_debug_entries\n\nImpact: implement necessary functions for the core hash\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "f2f45e5f3c921c73c913e9a9c00f21ec01c86b4d",
      "tree": "36a481a95e8e412e1453fb4b4843333725400ab3",
      "parents": [
        "5ee00bd4691e7364bb7b62e2068d473cd5cb9320"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri Jan 09 12:19:52 2009 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Thu Mar 05 15:11:12 2009 +0100"
      },
      "message": "dma-debug: add header file and core data structures\n\nImpact: add groundwork for DMA-API debugging\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    }
  ]
}
