)]}'
{
  "log": [
    {
      "commit": "69a7aebcf019ab3ff5764525ad6858fbe23bb86d",
      "tree": "7211df5704b743a7667159748c670a9744164482",
      "parents": [
        "d464c92b5234227c1698862a1906827e2e398ae0",
        "f1f996b66cc3908a8f5ffccc2ff41840e92f3b10"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 21:12:50 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 21:12:50 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\nPull trivial tree from Jiri Kosina:\n \"It\u0027s indeed trivial -- mostly documentation updates and a bunch of\n  typo fixes from Masanari.\n\n  There are also several linux/version.h include removals from Jesper.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (101 commits)\n  kcore: fix spelling in read_kcore() comment\n  constify struct pci_dev * in obvious cases\n  Revert \"char: Fix typo in viotape.c\"\n  init: fix wording error in mm_init comment\n  usb: gadget: Kconfig: fix typo for \u0027different\u0027\n  Revert \"power, max8998: Include linux/module.h just once in drivers/power/max8998_charger.c\"\n  writeback: fix fn name in writeback_inodes_sb_nr_if_idle() comment header\n  writeback: fix typo in the writeback_control comment\n  Documentation: Fix multiple typo in Documentation\n  tpm_tis: fix tis_lock with respect to RCU\n  Revert \"media: Fix typo in mixer_drv.c and hdmi_drv.c\"\n  Doc: Update numastat.txt\n  qla4xxx: Add missing spaces to error messages\n  compiler.h: Fix typo\n  security: struct security_operations kerneldoc fix\n  Documentation: broken URL in libata.tmpl\n  Documentation: broken URL in filesystems.tmpl\n  mtd: simplify return logic in do_map_probe()\n  mm: fix comment typo of truncate_inode_pages_range\n  power: bq27x00: Fix typos in comment\n  ...\n"
    },
    {
      "commit": "797a796a13df6b84a4791e57306737059b5b2384",
      "tree": "400d13deef98fdf3fc893e9e55f208c5716b8ba9",
      "parents": [
        "27e74da9800289e69ba907777df1e2085231eff7"
      ],
      "author": {
        "name": "Hitoshi Mitake",
        "email": "mitake@dcl.info.waseda.ac.jp",
        "time": "Tue Feb 07 11:45:33 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 21 16:47:28 2012 -0800"
      },
      "message": "asm-generic: architecture independent readq/writeq for 32bit environment\n\nThis provides unified readq()/writeq() helper functions for 32-bit\ndrivers.\n\nFor some cases, readq/writeq without atomicity is harmful, and order of\nio access has to be specified explicitly.  So in this patch, new two\nheader files which contain non-atomic readq/writeq are added.\n\n - \u003casm-generic/io-64-nonatomic-lo-hi.h\u003e provides non-atomic readq/\n   writeq with the order of lower address -\u003e higher address\n\n - \u003casm-generic/io-64-nonatomic-hi-lo.h\u003e provides non-atomic readq/\n   writeq with reversed order\n\nThis allows us to remove some readq()s that were added drivers when the\ndefault non-atomic ones were removed in commit dbee8a0affd5 (\"x86:\nremove 32-bit versions of readq()/writeq()\")\n\nThe drivers which need readq/writeq but can do with the non-atomic ones\nmust add the line:\n\n  #include \u003casm-generic/io-64-nonatomic-lo-hi.h\u003e /* or hi-lo.h */\n\nBut this will be nop in 64-bit environments, and no other #ifdefs are\nrequired.  So I believe that this patch can solve the problem of\n 1. driver-specific readq/writeq\n 2. atomicity and order of io access\n\nThis patch is tested with building allyesconfig and allmodconfig as\nARCH\u003dx86 and ARCH\u003di386 on top of tip/master.\n\nCc: Kashyap Desai \u003cKashyap.Desai@lsi.com\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: Ravi Anand \u003cravi.anand@qlogic.com\u003e\nCc: Vikas Chaudhary \u003cvikas.chaudhary@qlogic.com\u003e\nCc: Matthew Garrett \u003cmjg@redhat.com\u003e\nCc: Jason Uhlenkott \u003cjuhlenko@akamai.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@parallels.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nCc: James Bottomley \u003cjbottomley@parallels.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Hitoshi Mitake \u003ch.mitake@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d0156f4d62f1c6b07ea6ffd32b10100d09e25d83",
      "tree": "d0eeaca09a20119aa87ecf3805bd07a25c639b6e",
      "parents": [
        "24775d652b4dc52cc8dbcbdd20a732e5bdcc416a"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Sun Feb 05 20:11:27 2012 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Feb 21 11:48:54 2012 +0100"
      },
      "message": "NVM Express: Remove unneeded include of linux/version.h from nvme.c\n\nThere\u0027s no need for drivers/block/nvme.c to include linux/version.h,\nso remove the include.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "93c3d65b28bab6da520c2add9cb387a0303f8b2d",
      "tree": "d53d83ffe07d4237e1f8b1b6f02fa0362d8dacd2",
      "parents": [
        "9ef9b20bd0eef609f07960a997c13cab8fe15d2e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 18 15:41:27 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 18 15:41:27 2012 -0800"
      },
      "message": "nvme: fix merge error due to change of \u0027make_request_fn\u0027 fn type\n\nThe type of \u0027make_request_fn\u0027 changed in 5a7bbad27a4 (\"block: remove\nsupport for bio remapping from -\u003emake_request\"), but the merge of the\nnvme driver didn\u0027t take that into account, and as a result the driver\nwould compile with a warning:\n\n  drivers/block/nvme.c: In function \u0027nvme_alloc_ns\u0027:\n  drivers/block/nvme.c:1336:2: warning: passing argument 2 of \u0027blk_queue_make_request\u0027 from incompatible pointer type [enabled by default]\n  include/linux/blkdev.h:830:13: note: expected \u0027void (*)(struct request_queue *, struct bio *)\u0027 but argument is of type \u0027int (*)(struct request_queue *, struct bio *)\u0027\n\nIt\u0027s benign, but the warning is annoying.\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org\u003e\nCc: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "df3481399042200792822b6243e36a95a557b57e",
      "tree": "0d59f0f5dedb37abb0c988889976c0616a8a90e5",
      "parents": [
        "366e8217e5ec6ce9f73aec19c46d983110fb4a98"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Wed Jan 11 07:29:56 2012 -0700"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Wed Jan 11 09:22:24 2012 -0500"
      },
      "message": "NVMe: Set number of queues correctly\n\nThe number of submission \u0026 completion queues should be set by calling\nSet Features, not Get Features.\n\nReported-by: Kwok Kong \u003cKwok.Kong@idt.com\u003e\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "366e8217e5ec6ce9f73aec19c46d983110fb4a98",
      "tree": "18d3f0923eedf510062a95a332b1735ae14dcde3",
      "parents": [
        "4eeb9215a0d5c9494ca8b20158cc8ee82618840c"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Jan 10 16:30:15 2012 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Jan 10 16:30:15 2012 -0500"
      },
      "message": "NVMe: Version 0.8\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "4eeb9215a0d5c9494ca8b20158cc8ee82618840c",
      "tree": "e78031c97d64d7545454f729f14e4885fa5f5f5c",
      "parents": [
        "1c2ad9faaf662b4a525348775deca3ac8e6c35a0"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Jan 10 14:35:08 2012 -0700"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Jan 10 16:29:23 2012 -0500"
      },
      "message": "NVMe: Set queue flags correctly\n\nQUEUE_FLAG_* are flags (other than QUEUE_FLAG_DEFAULT), so they cannot\nbe ORed together.  Set the queue flags using queue_flag_set_unlocked().\n\nReported-by: Donald Wood \u003cdonald.e.wood@intel.com\u003e\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "1c2ad9faaf662b4a525348775deca3ac8e6c35a0",
      "tree": "3b378e4edca145b682cd4952c105ff9e31b3d465",
      "parents": [
        "fe304c43c6d63e29ed4fc46a874d7a74313788c5"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Jan 06 13:52:56 2012 -0700"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Jan 10 14:54:22 2012 -0500"
      },
      "message": "NVMe: Simplify nvme_unmap_user_pages\n\nBy using the iod-\u003enents field (the same way other I/O paths do), we can\navoid recalculating the number of sg entries at unmap time, and make\nnvme_unmap_user_pages() easier to call.\n\nAlso, use the \u0027write\u0027 parameter instead of assuming DMA_FROM_DEVICE.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "fe304c43c6d63e29ed4fc46a874d7a74313788c5",
      "tree": "dbc3cc55c09bdcff5b503915d86049b20c9911e7",
      "parents": [
        "497421880acecd0281d3182d534f3d28c927caec"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Jan 06 13:49:25 2012 -0700"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Jan 10 14:54:14 2012 -0500"
      },
      "message": "NVMe: Mark the end of the sg list\n\nFor user I/O and admin commands, we were forgetting to mark the end of\nthe SG list.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "497421880acecd0281d3182d534f3d28c927caec",
      "tree": "06efff97926506f1797e551b5a35506b28636188",
      "parents": [
        "ff976d724a74e4522e9ca2de1fb37ac4520f454f"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Jan 06 13:42:45 2012 -0700"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Jan 10 14:54:05 2012 -0500"
      },
      "message": "NVMe: Fix DMA mapping for admin commands\n\nWe were always mapping as DMA_FROM_DEVICE then unmapping with\nDMA_TO_DEVICE which was clearly not correct.  Follow the same pattern as\nnvme_submit_io() and key off the bottom bit of the opcode to determine\nwhether this is a read or a write.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "ff976d724a74e4522e9ca2de1fb37ac4520f454f",
      "tree": "6118b8c484f217fada77f6da2f5d6b2e34ef9ed0",
      "parents": [
        "eca18b2394a9387feeaf14cd884ddddd7a809d19"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Dec 20 13:53:01 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Jan 10 14:53:54 2012 -0500"
      },
      "message": "NVMe: Rename IO_TIMEOUT to NVME_IO_TIMEOUT\n\nIO_TIMEOUT is a little too generic and might be used by other parts of\nthe kernel in the future.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "eca18b2394a9387feeaf14cd884ddddd7a809d19",
      "tree": "b20244dcfbe2fa1e86ca782c4f879a3174da25d1",
      "parents": [
        "5c1281a3bf5655ec1b90db495da3a2b77826ba88"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Dec 20 13:34:52 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Jan 10 14:51:20 2012 -0500"
      },
      "message": "NVMe: Merge the nvme_bio and nvme_prp data structures\n\nThe new merged data structure is called nvme_iod.  This improves performance\nfor mid-sized I/Os (in the 16k range) since we save a memory allocation.\nIt is also a slightly simpler interface to use.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "5c1281a3bf5655ec1b90db495da3a2b77826ba88",
      "tree": "6b8b76416b61c356cd9e6cccc825739e473cb69d",
      "parents": [
        "040a93b52a9eee8177ebaf2ba0ee0f9f518d1bf8"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Dec 20 11:54:53 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Jan 10 14:51:00 2012 -0500"
      },
      "message": "NVMe: Change nvme_completion_fn to take a dev\n\nThe queue is only needed for some rare occasions, and it\u0027s more consistent\nto pass the device around.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "040a93b52a9eee8177ebaf2ba0ee0f9f518d1bf8",
      "tree": "be1f319048580f40c2634bca46e2840d721a32f4",
      "parents": [
        "c2f5b65020869215814df03c3941dac9436f99fb"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Dec 20 11:04:12 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Jan 10 14:49:18 2012 -0500"
      },
      "message": "NVMe: Change get_nvmeq to take a dev instead of a namespace\n\nUpcoming patches require calling get_nvmeq when we don\u0027t have a namespace.\nSome callers already have the device in a local variable anyway.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "c2f5b65020869215814df03c3941dac9436f99fb",
      "tree": "61e4da8b569ec8f747243358429f1052c49f837b",
      "parents": [
        "010e646ba2fdfc558048a97da746381c35836280"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Sat Oct 15 07:33:46 2011 -0400"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Jan 10 14:47:46 2012 -0500"
      },
      "message": "NVMe: Simplify completion handling\n\nInstead of encoding the handler type in the bottom two bits of the\nper-completion context pointer, store the handler function as well\nas the context pointer.  This gives us more flexibility and the code\nis clearer.  It comes at the cost of an extra 8k of memory per queue,\nbut this feels like a reasonable price to pay.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "f1938f6e1ee1583c87ec74dc406fdd8694e99ac8",
      "tree": "a1e27b0feb844ac675ba90230e8411dce7a86f71",
      "parents": [
        "ce38c149576fd0a3360fec3bef4012212d42e736"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Thu Oct 20 17:00:41 2011 -0400"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:53:05 2011 -0400"
      },
      "message": "NVMe: Implement doorbell stride capability\n\nThe doorbell stride allows devices to spread out their doorbells instead\nof packing them tightly.  This feature was added as part of ECN 003.\n\nThis patch also enables support for more than 512 queues :-)\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "ce38c149576fd0a3360fec3bef4012212d42e736",
      "tree": "628389c4e154b55bdaf2e4fb5942d751a338e6f9",
      "parents": [
        "2b2c1896871838cdf549442e8ad0264be5fa74e3"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Oct 07 13:20:37 2011 -0400"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:53:05 2011 -0400"
      },
      "message": "NVMe: Version 0.7\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "2b2c1896871838cdf549442e8ad0264be5fa74e3",
      "tree": "abbc2838e424b93f49a0f08dd885690f8cafa15b",
      "parents": [
        "0d1bc9125890426b52ca2de6abedd32e31722e5c"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Oct 07 13:10:13 2011 -0400"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:53:04 2011 -0400"
      },
      "message": "NVMe: Don\u0027t probe namespace 0\n\nECN 001 documented that namespace 0 is not valid.  Sending an Identify\nwith CNS of 0 and Namespace of 0 is an undefined command.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "0d1bc9125890426b52ca2de6abedd32e31722e5c",
      "tree": "c62cff35187c87c8a2b1f6dafdfc577cba94c137",
      "parents": [
        "bc5fc7e4b22ca855902aba02b28c96f09b446407"
      ],
      "author": {
        "name": "Nisheeth Bhat",
        "email": "nisheeth.bhat@intel.com",
        "time": "Thu Sep 29 10:10:10 2011 -0400"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:53:04 2011 -0400"
      },
      "message": "Fix calculation of number of pages in a PRP List\n\nThe existing calculation underestimated the number of pages required\nas it did not take into account the pointer at the end of each page.\nThe replacement calculation may overestimate the number of pages required\nif the last page in the PRP List is entirely full.  By using -\u003enpages\nas a counter as we fill in the pages, we ensure that we don\u0027t try to\nfree a page that was never allocated.\n\nSigned-off-by: Nisheeth Bhat \u003cnisheeth.bhat@intel.com\u003e\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "bc5fc7e4b22ca855902aba02b28c96f09b446407",
      "tree": "e4be2d6c81ebfb84fd0920dd5eaa844e574b8f3b",
      "parents": [
        "684f5c2025b067a23722e620d0b3b858d8dc5d01"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Mon Sep 19 17:08:14 2011 -0400"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:53:04 2011 -0400"
      },
      "message": "NVMe: Create nvme_identify and nvme_get_features functions\n\nInstead of open-coding calls to nvme_submit_admin_cmd, these\nsmall wrappers are simpler to use (the patch removes 14 lines from\nnvme_dev_add() for example).\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "684f5c2025b067a23722e620d0b3b858d8dc5d01",
      "tree": "3e1874b9a601d5dc9ff57a1ddf0221ca89904455",
      "parents": [
        "d1a490e026efb22851ed60588b5fad1281d80ec3"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Mon Sep 19 17:14:53 2011 -0400"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:53:04 2011 -0400"
      },
      "message": "NVMe: Fix memory leak in nvme_dev_add()\n\nThe driver was allocating 8k of memory, then freeing 4k of it.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "d1a490e026efb22851ed60588b5fad1281d80ec3",
      "tree": "46f3b9050272ed0e41e364eeebf4e1eebb7bf79e",
      "parents": [
        "d0ba1e497bca83a3d353eb47c9658afc54d83228"
      ],
      "author": {
        "name": "Nisheeth Bhat",
        "email": "nisheeth.bhat@intel.com",
        "time": "Thu Sep 15 16:52:24 2011 -0400"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:53:04 2011 -0400"
      },
      "message": "NVMe: Fix calls to dma_unmap_sg\n\ndma_unmap_sg() must be called with the same \u0027nents\u0027 passed to\ndma_map_sg(), not the number returned from dma_map_sg().\n\nSigned-off-by: Nisheeth Bhat \u003cnisheeth.bhat@intel.com\u003e\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "d0ba1e497bca83a3d353eb47c9658afc54d83228",
      "tree": "67357b1a15493caf232448fc8f5c13bf73fbe215",
      "parents": [
        "6413214c5d424fd5aae6567848340f962ad2ce0f"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Sep 13 17:01:39 2011 -0400"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:53:04 2011 -0400"
      },
      "message": "NVMe: Correct sg list setup in nvme_map_user_pages\n\nOur SG list was constructed to always fill the entire first page, even\nif that was more than the length of the I/O.  This is probably harmless,\nbut some IOMMUs might do something bad.\n\nCorrecting the first call to sg_set_page() made it look a lot closer to\nthe sg_set_page() in the loop, so fold the first call to sg_set_page()\ninto the loop.\n\nReported-by: Nisheeth Bhat \u003cnisheeth.bhat@intel.com\u003e\nSigned-off-by: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\n"
    },
    {
      "commit": "6413214c5d424fd5aae6567848340f962ad2ce0f",
      "tree": "f5a4053813b9e01146288cc11cd199303ce14b05",
      "parents": [
        "6bbf1acddeed0bfb345a5578f9fcada16f1e514f"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Aug 09 12:56:37 2011 -0400"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:53:04 2011 -0400"
      },
      "message": "Fix bug in NVME_IOCTL_SUBMIT_IO\n\nMissing \u0027break\u0027 in the switch statement meant that we\u0027d fall through\nto the \u0027return -EINVAL\u0027 case.\n"
    },
    {
      "commit": "6bbf1acddeed0bfb345a5578f9fcada16f1e514f",
      "tree": "965663c2a38ff10bc88fb2096fc0adbef500b11d",
      "parents": [
        "eac623ba7a91474a688eb5d0fcd0eaa6a56dc41c"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri May 20 13:03:42 2011 -0400"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:53:03 2011 -0400"
      },
      "message": "NVMe: Rework ioctls\n\nRemove the special-purpose IDENTIFY, GET_RANGE_TYPE, DOWNLOAD_FIRMWARE\nand ACTIVATE_FIRMWARE commands.  Replace them with a generic ADMIN_CMD\nioctl that can submit any admin command.\n\nAdd a new ID ioctl that returns the namespace ID of the queried device.\nIt corresponds to the SCSI Idlun ioctl.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "eac623ba7a91474a688eb5d0fcd0eaa6a56dc41c",
      "tree": "59a355c616c3f8b717e73aac01af2f9e3ffdc60c",
      "parents": [
        "6f0f54499f2edf7e25410cdd99e6f030f3485fd1"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri May 20 09:34:43 2011 -0400"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:53:03 2011 -0400"
      },
      "message": "NVMe: Add the nvme thread to the wait queue before waking it up\n\nIf the I/O was not completed by a single NVMe command, we add the\nbio to the congestion list and wake up the kthread to resubmit it.\nBut the kthread calls remove_wait_queue() unconditionally, which\nwill oops if it\u0027s not on the wait queue.  So add the kthread to\nthe wait queue before waking it up.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "6f0f54499f2edf7e25410cdd99e6f030f3485fd1",
      "tree": "805003a9c7fa87e77fb41a50f308ad178688f79c",
      "parents": [
        "be5e09484078e95af20acb13e215cd8aec705893"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Wed May 11 13:30:59 2011 -0700"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:53:03 2011 -0400"
      },
      "message": "NVMe: Return real error from nvme_create_queue\n\nnvme_setup_io_queues() was assuming that a NULL return from\nnvme_create_queue() was an out-of-memory error.  That\u0027s not necessarily\ntrue; the adapter might return -EIO, for example.  Change the calling\nconvention to return an ERR_PTR on failure instead of NULL.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "be5e09484078e95af20acb13e215cd8aec705893",
      "tree": "2422c624f9dada6ae20222dcc3c55bb2ac497504",
      "parents": [
        "184d2944cb3b92a2e8e1733c59d1e531ad6e924a"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Wed May 11 21:38:57 2011 -0400"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:53:03 2011 -0400"
      },
      "message": "NVMe: Version 0.6\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "184d2944cb3b92a2e8e1733c59d1e531ad6e924a",
      "tree": "e205b82e0ce14b846c1df01545dcce6f488b12a5",
      "parents": [
        "b77954cbddff28d55a36fad3c16f4daebb0f01df"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Wed May 11 21:36:38 2011 -0400"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:53:03 2011 -0400"
      },
      "message": "NVMe: Add a few calling convention notes\n\nFor the benefit of reviewers, add comments to a few functions describing\ntheir calling context\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "b77954cbddff28d55a36fad3c16f4daebb0f01df",
      "tree": "94f992d9c3390b61e11209f7b0e31440f67ec9c4",
      "parents": [
        "5aff9382ddc8aac6eb0c70ffbb351652d71da69a"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Thu May 12 13:51:41 2011 -0400"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:53:03 2011 -0400"
      },
      "message": "NVMe: Handle failures from memory allocations in nvme_setup_prps\n\nIf any of the memory allocations in nvme_setup_prps fail, handle it by\nmodifying the passed-in data length to reflect the number of bytes we are\nactually able to send.  Also allow the caller to specify the GFP flags\nthey need; for user-initiated commands, we can use GFP_KERNEL allocations.\n\nThe various callers are updated to handle this possibility; the main\nI/O path is already prepared for this possibility (as it may happen\ndue to nvme_map_bio being unable to map all the segments of the I/O).\nThe other callers return -ENOMEM instead of doing partial I/Os.\n\nReported-by: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "5aff9382ddc8aac6eb0c70ffbb351652d71da69a",
      "tree": "c8fcc4d065e48b55f8f04d0c7eae858fff2fd1a1",
      "parents": [
        "fd63e9ceeeae58cfe877c2d49d41c1bf7532303c"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri May 06 08:45:47 2011 -0400"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:53:03 2011 -0400"
      },
      "message": "NVMe: Use an IDA to allocate minor numbers\n\nThe current approach of using the namespace ID as the minor number\ndoesn\u0027t work when there are multiple adapters in the machine.  Rather\nthan statically partitioning the number of namespaces between adapters,\ndynamically allocate minor numbers to namespaces as they are detected.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "fd63e9ceeeae58cfe877c2d49d41c1bf7532303c",
      "tree": "a26cd1d94fa88a7610dd454ec998639f9a387607",
      "parents": [
        "8de055350fbaa96b6563892c195a60be583faa9c"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri May 06 08:37:54 2011 -0400"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:53:02 2011 -0400"
      },
      "message": "NVMe: Add include of delay.h for msleep\n\nPreviously it was being implicitly included through some other header file\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "8de055350fbaa96b6563892c195a60be583faa9c",
      "tree": "2fc1f69751cb553422dedc6ce0514e64926b1b39",
      "parents": [
        "21075bdee0a6f56058920d889df4ae561bfed754"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Thu May 12 13:50:28 2011 -0400"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:53:02 2011 -0400"
      },
      "message": "NVMe: Add support for timing out I/Os\n\nIn the kthread, walk the list of outstanding I/Os and check they\u0027ve not\nhit the timeout.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "21075bdee0a6f56058920d889df4ae561bfed754",
      "tree": "2472ca6f2df31c4d67123e31d6c0ecae5154d035",
      "parents": [
        "09a58f536436efed02ead722e835cb4ce7674afc"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Thu Apr 28 23:17:36 2011 -0700"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:53:02 2011 -0400"
      },
      "message": "NVMe: Rename cancel_cmdid_data to cancel_cmdid\n\nThe trailing \u0027_data\u0027 on the end was annoying and inconsistent.  Also, make\nit actually return the data since this is needed for timing out commands.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "09a58f536436efed02ead722e835cb4ce7674afc",
      "tree": "56f2285c62e2ddb88d4a6e79095dd2cd3285416d",
      "parents": [
        "22605f96810d073eb74051d0295b6577d6a6a563"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Thu Apr 28 23:09:09 2011 -0700"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:53:02 2011 -0400"
      },
      "message": "NVMe: Fix bug in error handling\n\nWhen an I/O completed with an error, we would call bio_endio twice\n(once with -EIO and once with 0).  Found by inspection.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "22605f96810d073eb74051d0295b6577d6a6a563",
      "tree": "f5af6aebe31f92cd6fe6bc343a931984ef7aa0f2",
      "parents": [
        "aba2080f3f1639f9202f1a52993669844abcfb80"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Apr 19 15:04:20 2011 -0400"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:53:02 2011 -0400"
      },
      "message": "NVMe: Time out initialisation after a few seconds\n\nTHe device reports (in its capability register) how long it will take\nto initialise.  If that time elapses before the ready bit becomes set,\nconclude the device is broken and refuse to initialise it.  Log a nice\nerror message so the user knows why we did nothing.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "aba2080f3f1639f9202f1a52993669844abcfb80",
      "tree": "3eacb6848776d7418f62f296d850ace5343ecf9d",
      "parents": [
        "7f53f9d2424533256ae86f7df5661a17de743de8"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Sun Mar 27 08:52:06 2011 -0400"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:53:02 2011 -0400"
      },
      "message": "NVMe: Fix warning in free_irq\n\nWe need to clear the affinity mask before calling free_irq()\n\nReported-by: Shane Michael Matthews \u003cshane.matthews@intel.com\u003e\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "7f53f9d2424533256ae86f7df5661a17de743de8",
      "tree": "93dc08a0de9ac52dca9479dc6c36808f431c1988",
      "parents": [
        "8ef700678f65e2eef1c3a94cdedb79d757608392"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Mar 22 15:55:45 2011 -0400"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:53:01 2011 -0400"
      },
      "message": "NVMe: Correct the Controller Configuration settings\n\nThe arbitration field was extended by one bit, shifting the shutdown\nnotification bits by one.  Also, the SQ/CQ entry size was made\nconfigurable for future extensions.\n\nReported-by: Paul Luse \u003cpaul.e.luse@intel.com\u003e\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "8ef700678f65e2eef1c3a94cdedb79d757608392",
      "tree": "1671b71d78f0259b3b272806699bf1aa968d69dd",
      "parents": [
        "6c7d49455ceb63064f992347d9185ff5bf43497a"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Mon Mar 21 10:28:43 2011 -0400"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:53:01 2011 -0400"
      },
      "message": "NVMe: Version 0.5\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "6c7d49455ceb63064f992347d9185ff5bf43497a",
      "tree": "8a5fde81a68cd41c12079d8c2baf7ea1cf3e40fe",
      "parents": [
        "9d4af1b7796ba02b73a79a8694399e5a3cd1c55d"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Mon Mar 21 09:48:57 2011 -0400"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:53:01 2011 -0400"
      },
      "message": "NVMe: Change the definition of nvme_user_io\n\nThe read and write commands don\u0027t define a \u0027result\u0027, so there\u0027s no need\nto copy it back to userspace.\n\nRemove the ability of the ioctl to submit commands to a different\nnamespace; it\u0027s just asking for trouble, and the use case I have in mind\nwill be addressed througha  different ioctl in the future.  That removes\nthe need for both the block_shift and nsid arguments.\n\nCheck that the opcode is one of \u0027read\u0027 or \u0027write\u0027.  Future opcodes may\nbe added in the future, but we will need a different structure definition\nfor them.\n\nThe nblocks field is redefined to be 0-based.  This allows the user to\nrequest the full 65536 blocks.\n\nDon\u0027t byteswap the reftag, apptag and appmask.  Martin Petersen tells\nme these are calculated in big-endian and are transmitted to the device\nin big-endian.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "4948168280b269a514045766ddd872cfac5968e1",
      "tree": "f1a7dd83863bbd52010fac0badc303eb04b9896b",
      "parents": [
        "9ecdc946212f7cd592986b2c519b470404caa6b8"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Sat Mar 19 14:55:38 2011 -0400"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:53:01 2011 -0400"
      },
      "message": "NVMe: Add compat_ioctl\n\nMake ioctls work for 32-bit applications on 64-bit kernels.  The structures\nare defined to be the same for both 32- and 64-bit applications, so\nwe can use the same handler for both.\n\nReported-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "9ecdc946212f7cd592986b2c519b470404caa6b8",
      "tree": "5d953e07ff82f8a97b5d4d5c14b0eb6db401d1a2",
      "parents": [
        "3cb967c03926edd2c414082f4cc0feb7b372edae"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Wed Mar 16 16:52:19 2011 -0400"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:53:01 2011 -0400"
      },
      "message": "NVMe: Simplify queue lookup\n\nFill in all the num_possible_cpus() entries with duplicate pointers.\nThis reduces the complexity of the frequently-called get_nvmeq(), as\nwell as avoiding a bug in it when there are fewer queues than CPUs.\n\nReported-by: Shane Michael Matthews \u003cshane.matthews@intel.com\u003e\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "3cb967c03926edd2c414082f4cc0feb7b372edae",
      "tree": "bb754d4758929d05e161dcafdab2d914b4361c60",
      "parents": [
        "7523d834dd1573610078eb1ac0933f6490232f90"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Wed Mar 16 16:45:49 2011 -0400"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:53:00 2011 -0400"
      },
      "message": "NVMe: Remove the kthread from the wait queue\n\nOnce there are no more bios on the congestion list, we can stop waking\nup the nvme kthread every time a completion happens.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "7523d834dd1573610078eb1ac0933f6490232f90",
      "tree": "898be553899785ac400e98f23f99881e51a2c8f8",
      "parents": [
        "ac88c36a385b848cb9efcb877fdfc4153a60bcab"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Wed Mar 16 16:43:40 2011 -0400"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:53:00 2011 -0400"
      },
      "message": "NVMe: Fix off-by-one when filling in PRP lists\n\nIf the last element in the PRP list fits on the end of the page, there\u0027s\nno need to allocate an extra page to put that single element in.  It can\nfit on the end of the page.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "ac88c36a385b848cb9efcb877fdfc4153a60bcab",
      "tree": "c175b977cdbd20c840049d16872566fef8311a53",
      "parents": [
        "19e899b2f9f89f4a290dd5c9c24d15987a18ab21"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Wed Mar 16 16:29:58 2011 -0400"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:53:00 2011 -0400"
      },
      "message": "NVMe: Fix interpretation of \u0027Number of Namespaces\u0027 field\n\nThe spec says this is a 0s based value.  We don\u0027t need to handle the\nmaximal value because it\u0027s reserved to mean \"every namespace\".\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "19e899b2f9f89f4a290dd5c9c24d15987a18ab21",
      "tree": "1a402b9452c3b9d45f6cf73a616ec925d8cfcfbd",
      "parents": [
        "fa92282149842645931580225647238428374758"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Wed Mar 16 16:29:24 2011 -0400"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:53:00 2011 -0400"
      },
      "message": "NVMe: Remove outdated comments\n\nThe head can never overrun the tail since we won\u0027t allocate enough command\nIDs to let that happen.  The status codes are in sync with the spec.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "fa92282149842645931580225647238428374758",
      "tree": "a4a606beb428fb53d0660b90c09c48fde3e7dc03",
      "parents": [
        "714a7a22884b74862540bc84955274d86b2f6040"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Wed Mar 16 16:29:00 2011 -0400"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:53:00 2011 -0400"
      },
      "message": "NVMe: Fix comment formatting\n\nReported-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "714a7a22884b74862540bc84955274d86b2f6040",
      "tree": "20a690339e2df67315759bb922522c06425aa281",
      "parents": [
        "2ddc4f74d8adcf3e1cdec7f3e72d19b5c878597c"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Wed Mar 16 16:28:24 2011 -0400"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:53:00 2011 -0400"
      },
      "message": "NVMe: Convert comments to kernel-doc notation\n\nReported-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "b57ab0fada358357571f0eb448cdf2f144785321",
      "tree": "d641ba36f2d8561e1f98dd2c9eafca39e977b5b9",
      "parents": [
        "e6d15f79f997a98b3a69abbc462fc9041cc1a7b4"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Thu Feb 24 16:20:14 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:59 2011 -0400"
      },
      "message": "NVMe: Version 0.4\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "e6d15f79f997a98b3a69abbc462fc9041cc1a7b4",
      "tree": "e450940cfa69aaf06ddf00db6a47def3f209236c",
      "parents": [
        "d8ee9d69f275769aaad40ef7c944565ff8d2d24f"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Thu Feb 24 08:49:41 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:59 2011 -0400"
      },
      "message": "NVMe: Reduce maximum queue depth by 1\n\nThe spec says we\u0027re not allowed to completely fill the submission queue.\nSolve this by reducing the number of allocatable cmdids by 1.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "d8ee9d69f275769aaad40ef7c944565ff8d2d24f",
      "tree": "e76aeab439b5f302042b3cd0d64cbe781cff456a",
      "parents": [
        "1ad2f8932a72bf375361727949ced2cb4e8cfcef"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Thu Feb 24 08:46:00 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:59 2011 -0400"
      },
      "message": "NVMe: Fix discontiguous accesses\n\nWhen we submit subsequent portions of the I/O, we need to access the\nupdated block, not start reading again from the original position.\nThis was showing up as miscompares in the XFS randholes testcase.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "1ad2f8932a72bf375361727949ced2cb4e8cfcef",
      "tree": "5f95cca42d31666591987800db5c488c8ae09aa7",
      "parents": [
        "00df5cb4eb927078850086f8becc3286a69ea12e"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Wed Feb 23 15:20:00 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:59 2011 -0400"
      },
      "message": "NVMe: Handle bios that contain non-virtually contiguous addresses\n\nNVMe scatterlists must be virtually contiguous, like almost all I/Os.\nHowever, when the filesystem lays out files with a hole, it can be that\nadjacent LBAs map to non-adjacent virtual addresses.  Handle this by\nsubmitting one NVMe command at a time for each virtually discontiguous\nrange.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "00df5cb4eb927078850086f8becc3286a69ea12e",
      "tree": "891011b1387ead32520ce86e75032c11509b80ec",
      "parents": [
        "c42705592be2a539f3027b6f3907de8e8f9591a8"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Feb 22 14:18:30 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:59 2011 -0400"
      },
      "message": "NVMe: Implement Flush\n\nLinux implements Flush as a bit in the bio.  That means there may also be\ndata associated with the flush; if so the flush should be sent before the\ndata.  To avoid completing the bio twice, I add CMD_CTX_FLUSH to indicate\nthe completion routine should do nothing.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "c42705592be2a539f3027b6f3907de8e8f9591a8",
      "tree": "43e160cebd92ce2812a8c40f63fbb051e1f769e9",
      "parents": [
        "7547881d0951384f9833ec3a80fac8f3f16f3b98"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Feb 22 14:15:34 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:59 2011 -0400"
      },
      "message": "NVMe: Mark CMD_CTX_CANCELLED as being unlikely\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "7547881d0951384f9833ec3a80fac8f3f16f3b98",
      "tree": "44efc578c7caf46df606aaed2dc117f94ee93af9",
      "parents": [
        "740216fc59cba54f65187c9ed92f29bce3cf8778"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Wed Feb 16 09:59:59 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:58 2011 -0400"
      },
      "message": "NVMe: Correct SQ doorbell semantics\n\nThe value written to the doorbell needs to be the first free index in\nthe queue, not the most recently used index in the queue.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "740216fc59cba54f65187c9ed92f29bce3cf8778",
      "tree": "a0567209d1636b1790885adb6fd651c716be23b1",
      "parents": [
        "b348b7d54368c87811907a8e88f0d96713c43009"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Feb 15 16:28:20 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:58 2011 -0400"
      },
      "message": "NVMe: Let the kthread take care of devices earlier\n\nIf interrupts are misconfigured, the kthread will be needed to process\nadmin queue completions.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "b348b7d54368c87811907a8e88f0d96713c43009",
      "tree": "f0f0e4a4f6215656fec7d56db21d8989659562a3",
      "parents": [
        "ca1615424c9adfdbe7d484771d7a7c5ecc4bb6d2"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Feb 15 16:16:02 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:58 2011 -0400"
      },
      "message": "NVMe: Rename nr_queues to nr_io_queues\n\nI got confused about whether this included the admin queue or not, and\nhad to resort to reading the spec.  It doesn\u0027t include the admin queue,\nso make that clear in the name.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "ca1615424c9adfdbe7d484771d7a7c5ecc4bb6d2",
      "tree": "305e7dc84d5885eed1181a97e0f85aa62292d04b",
      "parents": [
        "ad8a5df97cb060aa4d817af25587c99e2d2fda97"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Feb 15 13:44:13 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:58 2011 -0400"
      },
      "message": "NVMe: Remove setting of \u0027flags\u0027 in rw command\n\nThis was the data transfer bit until spec rev 0.92\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "ad8a5df97cb060aa4d817af25587c99e2d2fda97",
      "tree": "70de06412e6764b13e39021a58606e444e74df47",
      "parents": [
        "1fa6aeadf18aeebd7a217d7a3a933856448375b6"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Mon Feb 14 17:35:00 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:58 2011 -0400"
      },
      "message": "NVMe: Release 0.3\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "1fa6aeadf18aeebd7a217d7a3a933856448375b6",
      "tree": "bcedd591c5f73bf98e8c23722c6f2eaeb14c9554",
      "parents": [
        "eeee322647a67c20d9277c5e02c42b2126ea74bc"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Wed Mar 02 18:37:18 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:58 2011 -0400"
      },
      "message": "NVMe: Add a kthread to handle the congestion list\n\nInstead of trying to resubmit I/Os in the I/O completion path (in\ninterrupt context), wake up a kthread which will resubmit I/O from\nuser context.  This allows mke2fs to run to completion.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "eeee322647a67c20d9277c5e02c42b2126ea74bc",
      "tree": "6e0c901136effb10e301a5fb0479389bb6818531",
      "parents": [
        "897cfe1ce7db152fa6dde576f4213a6160bf6502"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Mon Feb 14 15:55:33 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:58 2011 -0400"
      },
      "message": "NVMe: Handle failures differently in nvme_submit_bio_queue()\n\nReturn -EBUSY if the queue is full or -ENOMEM if we failed to allocate\nmemory (or map a scatterlist).  Also use GFP_ATOMIC to allocate the\nnvme_bio and move the locking to the callers of nvme_submit_bio_queue().\n\nIn nvme_make_request(), don\u0027t permit an I/O to jump the queue -- if the\ncongestion list already has an entry, just add to the tail, rather than\ntrying to submit.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "768308400f5b4ce665a072eb976a851978b7706e",
      "tree": "626e7d442064dd22bf54d46c183c3955323d52ee",
      "parents": [
        "1974b1ae8852324a75fb8cfecbc7b758fd5a2c3c"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Thu Feb 10 13:55:39 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:57 2011 -0400"
      },
      "message": "NVMe: Handle physical merging of bvec entries\n\nIn order to not overrun the sg array, we have to merge physically\ncontiguous pages into a single sg entry.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "1974b1ae8852324a75fb8cfecbc7b758fd5a2c3c",
      "tree": "ef469e03be53c3334d6cfd93d92f11b06c025538",
      "parents": [
        "d567760c409f981d35fc755b51d5bf56a99a467b"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Thu Feb 10 12:01:09 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:57 2011 -0400"
      },
      "message": "NVMe: Check for DMA mapping failure\n\nIf dma_map_sg returns 0 (failure), we need to fail the I/O.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "d567760c409f981d35fc755b51d5bf56a99a467b",
      "tree": "12db12b955792272e27640afb20e30f456b200af",
      "parents": [
        "99802a7aee2b3dd720e382c52b892cc6a8122b11"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Thu Feb 10 10:47:55 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:57 2011 -0400"
      },
      "message": "NVMe: Pass the nvme_dev to nvme_free_prps and nvme_setup_prps\n\nWe were passing the nvme_queue to access the q_dmadev for the\ndma_alloc_coherent calls, but since we moved to the dma pool API,\nwe really only need the nvme_dev.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "99802a7aee2b3dd720e382c52b892cc6a8122b11",
      "tree": "50cfb8658b7458aa088914e562cc760b91849d6b",
      "parents": [
        "091b609258b8e01cc45b01a41ca5e496f674d989"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Thu Feb 10 10:30:34 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:57 2011 -0400"
      },
      "message": "NVMe: Optimise memory usage for I/Os between 4k and 128k\n\nAdd a second memory pool for smaller I/Os.  We can pack 16 of these on a\nsingle page instead of using an entire page for each one.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "091b609258b8e01cc45b01a41ca5e496f674d989",
      "tree": "fc047bbe0b579d2708c4ac36937ce403df8d38f2",
      "parents": [
        "d534df3c730af9073a9ddc076d9fd65cbdca22b3"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Thu Feb 10 09:56:01 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:57 2011 -0400"
      },
      "message": "NVMe: Switch to use DMA Pool API\n\nCalling dma_free_coherent from interrupt context causes warnings.\nUsing the DMA pools delays freeing until pool destruction, so avoids\nthe problem.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "d534df3c730af9073a9ddc076d9fd65cbdca22b3",
      "tree": "5dc3d7a1a499398d757b240a2260fe312142cd4f",
      "parents": [
        "e025344c56e08b155f43ea09647969286c78377c"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Thu Feb 10 09:03:06 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:56 2011 -0400"
      },
      "message": "NVMe: Rename nvme_req_info to nvme_bio\n\nThere are too many things called \u0027info\u0027 in this driver.  This data\nstructure is auxiliary information for a struct bio, so call it nvme_bio,\nor nbio when used as a variable.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "e025344c56e08b155f43ea09647969286c78377c",
      "tree": "d43db5810c67445944d871ae2103e5d8e0b85b8e",
      "parents": [
        "51882d00f07da9601cc962a3596e48aafb4f4163"
      ],
      "author": {
        "name": "Shane Michael Matthews",
        "email": "shane.matthews@intel.com",
        "time": "Thu Feb 10 08:51:24 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:56 2011 -0400"
      },
      "message": "NVMe: Initial PRP List support\n\nAdd a pointer to the nvme_req_info to hold a new data structure\n(nvme_prps) which contains a list of the pages allocated to this\nparticular request for holding PRP list entries.  nvme_setup_prps()\nnow returns this pointer.\n\nTo allocate and free the memory used for PRP lists, we need a struct\ndevice, so we need to pass the nvme_queue pointer to many functions\nwhich didn\u0027t use to need it.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "51882d00f07da9601cc962a3596e48aafb4f4163",
      "tree": "dad2569435369862ed2c5541810d41fc5e844b90",
      "parents": [
        "d2d8703481f60d67f49e3177196cbe474b11377c"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Thu Feb 10 08:49:59 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:56 2011 -0400"
      },
      "message": "NVMe: Advance the sg pointer when filling in an sg list\n\nFor multipage BIOs, we were always using sg[0] instead of advancing\nthrough the list.  Oops :-)\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "d2d8703481f60d67f49e3177196cbe474b11377c",
      "tree": "13229c9dd2c512f9ee2407a52dbfad7851313054",
      "parents": [
        "9294bbed78926a895516ec016ba23033f58d1a88"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Mon Feb 07 15:55:59 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:56 2011 -0400"
      },
      "message": "NVMe: Renumber the special context values\n\nIf POISON_POINTER_DELTA isn\u0027t defined, ensure they\u0027re in page 0 which\nshould never be mapped.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "9294bbed78926a895516ec016ba23033f58d1a88",
      "tree": "84eb4ea0d153e0ad6d7b629e867f9d93a39506b5",
      "parents": [
        "e85248e516c550382ba33ca325c272a0ca397e44"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Mon Feb 07 12:45:24 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:56 2011 -0400"
      },
      "message": "NVMe: Handle the congestion list a little better\n\nIn the bio completion handler, check for bios on the congestion list\nfor this NVM queue.  Also, lock the congestion list in the make_request\nfunction as the queue may end up being shared between multiple CPUs.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "e85248e516c550382ba33ca325c272a0ca397e44",
      "tree": "b6c3b8c9d45dbc37dc6a4f2c4101ecab74853ebd",
      "parents": [
        "ec6ce618d65b5ce1bef83a5509255107a0feac44"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Sun Feb 06 18:30:16 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:56 2011 -0400"
      },
      "message": "NVMe: Record the timeout for each command\n\nIn addition to recording the completion data for each command, record\nthe anticipated completion time.  Choose a timeout of 5 seconds for\nnormal I/Os and 60 seconds for admin I/Os.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "ec6ce618d65b5ce1bef83a5509255107a0feac44",
      "tree": "c28e35b52fed671c47eae0017cb9df02f66a7d2b",
      "parents": [
        "48e3d39816416b3bf03dee3a796c0c04427c1a31"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Sun Feb 06 09:01:00 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:56 2011 -0400"
      },
      "message": "NVMe: Need to lock queue during interrupt handling\n\nIf we\u0027re sharing a queue between multiple CPUs and we cancel a sync I/O,\nwe must have the queue locked to avoid corrupting the stack of the thread\nthat submitted the I/O.  It turns out this is the same locking that\u0027s needed\nfor the threaded irq handler, so share that code.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "48e3d39816416b3bf03dee3a796c0c04427c1a31",
      "tree": "81977d3a24d1541078cba64e626bfadc399d2f82",
      "parents": [
        "b36235df01ec4141b4e589571d6789076c346d88"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Sun Feb 06 08:51:15 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:55 2011 -0400"
      },
      "message": "NVMe: Detect command IDs completing that are out of range\n\nIf the adapter completes a command ID that is outside the bounds of\nthe array, return CMD_CTX_INVALID instead of random data, and print a\nmessage in the sync_completion handler (which is rapidly becoming the\nmisc completion handler :-)\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "b36235df01ec4141b4e589571d6789076c346d88",
      "tree": "0fc4ba6cd2cbb4f563f398a48153dbbdf69483c6",
      "parents": [
        "be7b62754e097adc0cb16c25c9ee86ee20de62fb"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Sun Feb 06 08:49:55 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:55 2011 -0400"
      },
      "message": "NVMe: Detect commands that are completed twice\n\nSet the context value to CMD_CTX_COMPLETED, and print a message in the\nsync_completion handler if we see it.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "be7b62754e097adc0cb16c25c9ee86ee20de62fb",
      "tree": "0f625fd57e9ba1ace93888cc302ab7f455f7759f",
      "parents": [
        "58ffacb545f76fc2c65d1fbfa5acf5184a2a09e6"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Sun Feb 06 07:53:23 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:55 2011 -0400"
      },
      "message": "NVMe: Use a symbolic name to represent cancelled commands instead of 0\n\nI have plans for other special values in sync_completion.  Plus, this\nis more self-documenting, and lets us detect bogus usages.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "58ffacb545f76fc2c65d1fbfa5acf5184a2a09e6",
      "tree": "382cf8004b88f9d2bd2b86d78121938afa863e42",
      "parents": [
        "b1ad37efcafe396ac3944853589688dd0ec3c64e"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Sun Feb 06 07:28:06 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:55 2011 -0400"
      },
      "message": "NVMe: Add a module parameter to use a threaded interrupt\n\nWe\u0027re currently calling bio_endio from hard interrupt context.  This is\nnot a good idea for preemptible kernels as it will cause longer latencies.\nUsing a threaded interrupt will run the entire queue processing mechanism\n(including bio_endio) in a thread, which can be preempted.  Unfortuantely,\nit also adds about 7us of latency to the single-I/O case, so make it a\nmodule parameter for the moment.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "b1ad37efcafe396ac3944853589688dd0ec3c64e",
      "tree": "49f8d3fa7080ccf85edbb75239e98a89cdd037c9",
      "parents": [
        "3c0cf138d7789feb3f335f6f1d24ad8fc8b3a23f"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Feb 04 16:14:30 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:55 2011 -0400"
      },
      "message": "NVMe: Call put_nvmeq() before calling nvme_submit_sync_cmd()\n\nWe can\u0027t have preemption disabled when we call schedule().  Accept the\npossibility that we\u0027ll get preempted, and it\u0027ll cost us some cacheline\nbounces.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "3c0cf138d7789feb3f335f6f1d24ad8fc8b3a23f",
      "tree": "d3c4fe55735c275d6571b2dc7dcb80baedbb7490",
      "parents": [
        "db5d0c198d673b6a932b449d4db95a2ad50c755e"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Feb 04 16:03:56 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:55 2011 -0400"
      },
      "message": "NVMe: Allow fatal signals to interrupt I/O\n\nIf the user sends a fatal signal, sleeping in the TASK_KILLABLE state\npermits the task to be aborted.  The only wrinkle is making sure that\nif/when the command completes later that it doesn\u0027t upset anything.\nHandle this by setting the data pointer to 0, and checking the value\nisn\u0027t NULL in the sync completion path.  Eventually, bios can be cancelled\nthrough this path too.  Note that the cmdid isn\u0027t freed to prevent reuse.\n\nWe should also abort the command in the future, but this is a good start.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "db5d0c198d673b6a932b449d4db95a2ad50c755e",
      "tree": "805c38ed8b0fc53a2dd79ebdafc87c794019cf2f",
      "parents": [
        "6ee44cdced04a53dc4f27eb97067e6cd33784726"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Thu Feb 03 14:36:07 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:54 2011 -0400"
      },
      "message": "NVMe: Release 0.2\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "6ee44cdced04a53dc4f27eb97067e6cd33784726",
      "tree": "1f018425a216da0a58c7f36b830925fbb9aa41a7",
      "parents": [
        "7a63e07b9a98b77dd075e06b93c1d8dc871ddad5"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Thu Feb 03 10:58:26 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:54 2011 -0400"
      },
      "message": "NVMe: Add download / activate firmware ioctls\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "388f037f4e7f0a24bac6b1a24f144f5d939f58cf",
      "tree": "d51387afa2ad24644943a3a6add9b657e6698a77",
      "parents": [
        "5911f20039ce59d7e7834f0c42151cf759b6f786"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Feb 01 12:49:38 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:54 2011 -0400"
      },
      "message": "NVMe: Move sysfs entries to the right place\n\nBecause I wasn\u0027t setting driverfs_dev, the devices were showing up under\n/sys/devices/virtual/block.  Now they appear underneath the PCI device\nwhich they belong to.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "5911f20039ce59d7e7834f0c42151cf759b6f786",
      "tree": "49dd439d64f4c5936ae72d5d1d3f3984ec69b118",
      "parents": [
        "574e8b95bc3780e10e9b5e9d51074d503dd3d5d9"
      ],
      "author": {
        "name": "Shane Michael Matthews",
        "email": "shane.matthews@intel.com",
        "time": "Tue Feb 01 11:31:55 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:54 2011 -0400"
      },
      "message": "NVMe: Disable the device before we write the admin queues\n\nIn case the card has been left in a partially-configured state,\nwrite 0 to the Enable bit.\n\nSigned-off-by: Shane Michael Matthews \u003cshane.matthews@intel.com\u003e\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "574e8b95bc3780e10e9b5e9d51074d503dd3d5d9",
      "tree": "084c993dd157fe9d3bfd427cbbdabcc6a618b6be",
      "parents": [
        "2930353f9f2b9e4629e935acd970cb73c1171229"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Feb 01 16:24:35 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:54 2011 -0400"
      },
      "message": "NVMe: Request I/O regions\n\nCalling pci_request_selected_regions() reserves these regions for our use.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "2930353f9f2b9e4629e935acd970cb73c1171229",
      "tree": "907563f0245bd488935cbd922f665759e4ccd68a",
      "parents": [
        "f64d3365a3e5cb46e69db7e2c82a7cb9a5bed1b8"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Feb 01 16:23:39 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:53 2011 -0400"
      },
      "message": "NVMe: Allow queues to be allocated above 4GB\n\nNeed to call dma_set_coherent_mask() to allow queues to be allocated\nabove 4GB.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "f64d3365a3e5cb46e69db7e2c82a7cb9a5bed1b8",
      "tree": "8a4fda85551696ccbe6a71899b498a8e3b11bb8a",
      "parents": [
        "0ee5a7d7cb9309bd393a25c395f19fb12a842602"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Feb 01 09:01:59 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:53 2011 -0400"
      },
      "message": "NVMe: Enable device DMA\n\nNeed to call pci_set_master() to enable device DMA\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "0ee5a7d7cb9309bd393a25c395f19fb12a842602",
      "tree": "4aae6ff2e536b735336f2216dfd2aa490b9c984a",
      "parents": [
        "3f85d50b609e8a5ef151656210203a6e94c19538"
      ],
      "author": {
        "name": "Shane Michael Matthews",
        "email": "shane.matthews@intel.com",
        "time": "Tue Feb 01 08:49:30 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:53 2011 -0400"
      },
      "message": "NVMe: Enable and disable the PCI device\n\nCall pci_enable_device_mem() at initialisation and pci_disable_device\nat exit.\n\nSigned-off-by: Shane Michael Matthews \u003cshane.matthews@intel.com\u003e\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "3f85d50b609e8a5ef151656210203a6e94c19538",
      "tree": "af6de7b2682ffe778146b1d77076c6610fde8f72",
      "parents": [
        "8e9f0e71150bf6277d0ea40bc8feb1338ddf13fd"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Feb 01 08:39:04 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:53 2011 -0400"
      },
      "message": "NVMe: Check returns from nvme_alloc_queue()\n\nIt can return NULL, so handle that.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "8e9f0e71150bf6277d0ea40bc8feb1338ddf13fd",
      "tree": "65f781adeff224618bb63105cf8867f811c4b416",
      "parents": [
        "51814232ecae90f888c902e252306df8d017f0dd"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Mon Jan 31 10:46:14 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:53 2011 -0400"
      },
      "message": "NVMe: Remove \u0027node\u0027 from nvme_dev\n\nWe don\u0027t keep a list of nvme_dev any more\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "51814232ecae90f888c902e252306df8d017f0dd",
      "tree": "2a9bcdf23cdf24e21ecb33315aadfd92facee74f",
      "parents": [
        "a53295b6998f62d961c29e54051c1cf1d738c2b3"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Feb 01 16:18:08 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:53 2011 -0400"
      },
      "message": "NVMe: Read the model, serial \u0026 firmware rev from the controller\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "a53295b6998f62d961c29e54051c1cf1d738c2b3",
      "tree": "835a6f4ecbb8de47c232d7a1c5b4f76292d4dc24",
      "parents": [
        "7fc3cdabba75c2516b8b645eb0ca7907aea70415"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Tue Feb 01 16:13:29 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:53 2011 -0400"
      },
      "message": "NVMe: Add NVME_IOCTL_SUBMIT_IO\n\nAllow userspace to submit synchronous I/O like the SCSI sg interface does.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "7fc3cdabba75c2516b8b645eb0ca7907aea70415",
      "tree": "67cf9f491410121bbf8c2418dcb05148258ad5cb",
      "parents": [
        "bd38c5557cf482fc195e2264b32ea62eed60730a"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Wed Jan 26 17:05:50 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:52 2011 -0400"
      },
      "message": "NVMe: Create nvme_map_user_pages() and nvme_unmap_user_pages()\n\nThese are generalisations of the code that was in\nnvme_submit_user_admin_command().\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "bd38c5557cf482fc195e2264b32ea62eed60730a",
      "tree": "94204652ead86752f5545e4f0bf9befd25c83351",
      "parents": [
        "b8deb62cf271fa9381edc8cf52bcae2f0225c55a"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Wed Jan 26 14:34:32 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:52 2011 -0400"
      },
      "message": "NVMe: Change NVME_IOCTL_GET_RANGE_TYPE to return all the ranges\n\nFactor out most of nvme_identify() into a new nvme_submit_user_admin_command()\nfunction.  Change nvme_get_range_type() to call it and change nvme_ioctl to\nrealise that it\u0027s getting back all 64 ranges.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "b8deb62cf271fa9381edc8cf52bcae2f0225c55a",
      "tree": "3ece114bd1cdaaeed51ae55b81185dfbd26073bd",
      "parents": [
        "ff22b54fda2078fc3cd1bcdcb7a5ce5d08fd6591"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Wed Jan 26 10:08:25 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:52 2011 -0400"
      },
      "message": "NVMe: Zero the command before we send it\n\nMake sure there\u0027s no left-over bits set from previous commands that used\nthis slot.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "ff22b54fda2078fc3cd1bcdcb7a5ce5d08fd6591",
      "tree": "09c90d334daae2949bd58402e90f6d641f688bd7",
      "parents": [
        "7b4fe9b1cb4b9a6f4ae23a12ef96d08d96e2a5da"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Wed Jan 26 10:02:29 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:52 2011 -0400"
      },
      "message": "NVMe: Add nvme_setup_prps()\n\nGeneralise the code from nvme_identify() that sets PRP1 \u0026 PRP2 so that\nit\u0027s usable for commands sent by nvme_submit_bio_queue().\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "36c14ed9caa957c686d4a48fd598a5ec2aa0331b",
      "tree": "73d550e0795add691a849c2dcc8977762fcbdf2c",
      "parents": [
        "53c9577e9ca68a633c6e9df2b54eaecacfa77f62"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Mon Jan 24 07:52:07 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:52 2011 -0400"
      },
      "message": "NVMe: Use PRP2 for the nvme_identify ioctl\n\nDMA the result straight to userspace instead of bounce-buffering in the\nkernel.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "53c9577e9ca68a633c6e9df2b54eaecacfa77f62",
      "tree": "2eb47c41f0e77836b146d9d9d191da75f6f68f5c",
      "parents": [
        "821234603b265f59d7eebce16d9e8beca2a5752d"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Thu Jan 20 13:42:34 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:51 2011 -0400"
      },
      "message": "NVMe: Fix admin IRQ claim on real hardware\n\nThe admin IRQ is supposed to use the pin-based (or single message MSI)\ninterrupt.  Accomplish this by filling in entry[0]\u0027s vector with the\nINTx irq number.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "821234603b265f59d7eebce16d9e8beca2a5752d",
      "tree": "6f145d86784163647a0fd3a93af1ca0c0519335c",
      "parents": [
        "1b23484bd012c078de2ea939249e2fb2e85a0a6e"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Thu Jan 20 13:24:06 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:51 2011 -0400"
      },
      "message": "NVMe: Rename \u0027cycle\u0027 to \u0027phase\u0027\n\nIt\u0027s called the phase bit in the current draft\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "1b23484bd012c078de2ea939249e2fb2e85a0a6e",
      "tree": "8147999ed348b47b2e400e9ed958d9db207bba23",
      "parents": [
        "b3b06812e199f248561ce7824a4a8a9cd573c05a"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Thu Jan 20 13:01:49 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:51 2011 -0400"
      },
      "message": "NVMe: Implement per-CPU queues\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    },
    {
      "commit": "b3b06812e199f248561ce7824a4a8a9cd573c05a",
      "tree": "f2998ef366d6cba83823b362e932ade2602f32ff",
      "parents": [
        "3001082cac4bf6ffd09f72b39e6292ad6394ef17"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Thu Jan 20 09:14:34 2011 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "matthew.r.wilcox@intel.com",
        "time": "Fri Nov 04 15:52:51 2011 -0400"
      },
      "message": "NVMe: Reduce set_queue_count arguments by one\n\nsq_count and cq_count are always the same, so just call it \u0027count\u0027.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\n"
    }
  ],
  "next": "3001082cac4bf6ffd09f72b39e6292ad6394ef17"
}
