)]}'
{
  "log": [
    {
      "commit": "92d15c2ccbb3e31a3fc71ad28fdb55e1319383c0",
      "tree": "8d83c0dc3c6b935d8367e331872f242b742f0a8a",
      "parents": [
        "f20bf6125605acbbc7eb8c9420d7221c91aa83eb",
        "644bd2f048972d75eb1979b1fdca257d528ce687"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 10:09:16 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 10:09:16 2007 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/data/git/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/data/git/linux-2.6-block: (63 commits)\n  Fix memory leak in dm-crypt\n  SPARC64: sg chaining support\n  SPARC: sg chaining support\n  PPC: sg chaining support\n  PS3: sg chaining support\n  IA64: sg chaining support\n  x86-64: enable sg chaining\n  x86-64: update pci-gart iommu to sg helpers\n  x86-64: update nommu to sg helpers\n  x86-64: update calgary iommu to sg helpers\n  swiotlb: sg chaining support\n  i386: enable sg chaining\n  i386 dma_map_sg: convert to using sg helpers\n  mmc: need to zero sglist on init\n  Panic in blk_rq_map_sg() from CCISS driver\n  remove sglist_len\n  remove blk_queue_max_phys_segments in libata\n  revert sg segment size ifdefs\n  Fixup u14-34f ENABLE_SG_CHAINING\n  qla1280: enable use_sg_chaining option\n  ...\n"
    },
    {
      "commit": "8889e3c129780cdbe15fed3c366ba3aa3026684d",
      "tree": "6dd87deff0a8b2423b79a4f0234f7b234a259e37",
      "parents": [
        "fd820f405574a30aacf9a859886e173d641f080b"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Tue Sep 18 12:16:45 2007 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Oct 16 11:24:44 2007 +0200"
      },
      "message": "remove blk_queue_max_phys_segments in libata\n\nLIBATA_MAX_PRD is the maximum number of DMA scatter/gather elements\npermitted by the HBA\u0027s DMA engine. It\u0027s properly set to\nq-\u003emax_hw_segments via the sg_tablesize parameter.\n\nlibata shouldn\u0027t call blk_queue_max_phys_segments. Now LIBATA_MAX_PRD\nis equal to SCSI_MAX_PHYS_SEGMENTS by default (both is 128), so\neverything is fine. But if they are changed, some code (like the scsi\nmid layer, sg chaining, etc) might not work properly.\n\n(Addition from Jens) The basic issue is that the physical segment\nsetting is purely a driver issue. And since SCSI is managing the sglist,\nlibata has no business changing the setting. All libata should care\nabout is the hw segment setting.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "c5d0e6a0d225c03b59a0a70f940e439085235ba2",
      "tree": "c041f599955a1e9ac97416da2307ac9050612cfe",
      "parents": [
        "23f9b75e79f6fbe438a20d10a11ca45a14b8a584"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Mon Oct 15 17:29:46 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 15 17:56:36 2007 -0700"
      },
      "message": "docbook: fix libata content\n\nFix libata docbook warnings.\n\nWarning(linux-2.6.23-git8//drivers/ata/libata-scsi.c:3251): No description found for parameter \u0027dev\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f58db80267c24e15d959e372d23651a43443c5f3",
      "tree": "bcbc79c4c4232b68a5a5b109f27083c2e55c64b1",
      "parents": [
        "f140f0f12fc8dc7264d2f97cbe663564e7d24f6d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Oct 10 15:57:44 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Oct 15 15:24:54 2007 -0400"
      },
      "message": "libata: fix revalidation issuing after configuration commands\n\nAfter commands which can change device configuration, EH is scheduled\nto revalidate and reconfigure the device.  Host link was incorrectly\nused unconditionally when scheduling EH action.  This resulted in\nbogus revalidation request and mismatched configuration between device\nand driver.  Fix it.\n\nThis bug was reported by Igor Durdanovic.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Igor Durdanovic \u003cidurdanovic@comcast.net\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "2db78dd302d26d242d3e8e5c4c5024b6c3ea93c2",
      "tree": "3d1b15c4314568dd7ccedb43a406060d5b6093be",
      "parents": [
        "681c80b5d96076f447e8101ac4325c82d8dce508"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Tue Oct 02 13:53:04 2007 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:45 2007 -0400"
      },
      "message": "libata_scsi: Fix ATAPI transfer lengths\n\nSome controller variants snoop the ATAPI length value for Packet\ntransfers to do state machine and FIFO management. Thus we want to\nset it properly, even for cases where it is otherwise meaningless.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "7d77b247088fb360aa74bfdd9e19bce1e1987668",
      "tree": "add1b03309dd6fa82eb0f47e1a88766695f38f28",
      "parents": [
        "e31e8531d668c9c4dc7883054788f89805188003"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Sep 23 13:14:13 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:42 2007 -0400"
      },
      "message": "libata-pmp-prep: implement sata_async_notification()\n\nAN serves multiple purposes.  For ATAPI, it\u0027s used for media change\nnotification.  For PMP, for downstream PHY status change notification.\nImplement sata_async_notification() which demultiplexes AN.\n\nTo avoid unnecessary port events, ATAPI AN is not enabled if PMP is\nattached but SNTF is not available.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Kriten Carlson Accardi \u003ckristen.c.accardi@intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "e31e8531d668c9c4dc7883054788f89805188003",
      "tree": "9c3762792344d24c996d6459409456664a2e381b",
      "parents": [
        "668108d73bbb1ae85f01db38d6be822fd28ece1f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Sep 23 13:14:13 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:41 2007 -0400"
      },
      "message": "libata-pmp-prep: implement ATA_HORKAGE_SKIP_PM\n\nSome pseudo devices fail PM commands unnecessarily aborting system\nsuspend.  Implement ATA_HORKAGE_SKIP_PM which makes libata skip PM\ncommands for these devices.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "31cc23b34913bc173680bdc87af79e551bf8cc0d",
      "tree": "ec64421ead9259174f0de8b22c36449ece6d69a4",
      "parents": [
        "fb7fd61454c8681cd2621051a710b78a00369203"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Sep 23 13:14:12 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:41 2007 -0400"
      },
      "message": "libata-pmp-prep: implement ops-\u003eqc_defer()\n\nControllers which support PMP have various restrictions on which\ncombinations of commands are allowed to what number of devices\nconcurrently.  This patch implements ops-\u003eqc_defer() which determines\nwhether a qc can be issued at the moment or should be deferred.\n\nIf the function returns ATA_DEFER_LINK, the qc will be deferred until\na qc completes on the link.  If ATA_DEFER_PORT, until a qc completes\non any link.  The defer conditions are advisory and in general\nATA_DEFER_LINK can be considered as lower priority deferring than\nATA_DEFER_PORT.\n\nops-\u003eqc_defer() replaces fixed ata_scmd_need_defer().  For standard\nNCQ/non-NCQ exclusion, ata_std_qc_defer() is implemented.  ahci and\nsata_sil24 are converted to use ata_std_qc_defer().\n\nops-\u003eqc_defer() is heavier than the original mechanism because full qc\nis prepped before determining to defer it, but various information is\nneeded to determine defer conditinos and fully translating a qc is the\nonly way to supply such information in generic manner.\n\nIMHO, this shouldn\u0027t cause any noticeable performance issues as\n\n* for most cases deferring occurs rarely (except for NCQ-aware\n  cmd-switching PMP)\n* translation itself isn\u0027t that expensive\n* once deferred the command won\u0027t be repeated until another command\n  completes which usually is a very long time cpu-wise.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "854c73a2f1c3bcc4aa88c25e208dc597e8efb795",
      "tree": "210569f3c4fa4f9413ceb0bc3fcf89648a9894b2",
      "parents": [
        "c78968bb0f7714ceba1cdfa23714454fc98cefdf"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Sep 23 13:14:11 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:40 2007 -0400"
      },
      "message": "libata: misc updates for AN\n\nUpdate AN support in preparation of PMP support.\n\n* s/ata_id_has_AN/ata_id_has_atapi_AN/\n* add AN enabled reporting during configuration\n* add err_mask to AN configuration failure reporting\n* update LOCKING comment for ata_scsi_media_change_notify()\n* check whether ATA dev is attached to SCSI dev ata_scsi_media_change_notify()\n* set ATA_FLAG_AN in ahci and sata_sil24\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Kriten Carlson Accardi \u003ckristen.c.accardi@intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "c78968bb0f7714ceba1cdfa23714454fc98cefdf",
      "tree": "cbf066559205ce0d00829c74a406f3a2140623e4",
      "parents": [
        "24f756866676b40446e361c1f87738707161da93"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Sep 21 21:03:28 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:40 2007 -0400"
      },
      "message": "[libata] SCSI: simulator version, not device version, belongs in VPD\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "24f756866676b40446e361c1f87738707161da93",
      "tree": "2709ec5b4bb5f0e9c980621e7a1a2b97bdcd7a93",
      "parents": [
        "00bd02027fc4a5cf92a3e538896b3642b40515df"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Sep 21 07:54:49 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:40 2007 -0400"
      },
      "message": "[libata] SCSI: clean up R/W recovery mode page\n\nClear ARRE, we don\u0027t do auto-reallocation on reads, just on writes.\n\nAlso, hardcode the size of the array using RW_RECOVERY_MPAGE_LEN,\nfollowing the style of the surrounding code.\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "00bd02027fc4a5cf92a3e538896b3642b40515df",
      "tree": "e5e2a72a467577a5a65be5886f96039c2f62a8af",
      "parents": [
        "453941455218a81eedcea5dbafa38b8815920a8c"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Sep 21 07:26:08 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:40 2007 -0400"
      },
      "message": "[libata] SCSI: improve FORMAT UNIT; minor code cleanups\n\n* SAT specifies that FORMAT UNIT should be translated into a series\n  of READ and WRITE commands that zero the ATA device.  That is far too\n  cumbersome to bother with.\n\n  Since we don\u0027t actually format the device, the old behavior of\n  always returning success was inaccurate.  Change FORMAT UNIT from\n  returning success immediately (old behavior) to always returning\n  an error (new behavior).\n\n* Add some comments around SYNCHRONIZE CACHE\n\n* Shuffle scsi command code around a bit, so that things are close\n  to alphabetic order.\n\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "453941455218a81eedcea5dbafa38b8815920a8c",
      "tree": "b2f21afae3beb39da13f089c02f0f09bfc4de697",
      "parents": [
        "ad355b4628a19ba2af30409e13083edda221a5c9"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Sep 21 06:23:42 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:40 2007 -0400"
      },
      "message": "[libata] Slightly improved no-op REQUEST SENSE, SEND DIAGNOSTIC\n\nA few pedantic apps care about missing or lame \"mandatory\" SCSI\ncommands, so\n\nREQUEST SENSE -- as we autosense, R.S. just returns zeroes\n\nSEND DIAGNOSTIC -- our default (no-op) self-test succeeds, all\n\t\t   other requests for testing fail.\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "ad355b4628a19ba2af30409e13083edda221a5c9",
      "tree": "775ade42b8a7e67d0c687b54f01f13122c2482db",
      "parents": [
        "d4155e6f13e931048036976d9fb47b5db53ee7a3"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Sep 21 20:38:03 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:40 2007 -0400"
      },
      "message": "[libata] SCSI: support INQUIRY page 89h (ATA info page)\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "7120165cf31e989baf7836218ca0a13643074735",
      "tree": "c3297a0ce98a012edf582348132090aa6a1764f7",
      "parents": [
        "e10b8c3f5f23188e065b1845ba732570eca007fe"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Tue Sep 18 17:48:50 2007 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:38 2007 -0400"
      },
      "message": "libata-scsi: convert to use the data buffer accessors\n\n  simple search-and-replace of direct scsi_cmnd access to\n  use the data buffer accessors.\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "e10b8c3f5f23188e065b1845ba732570eca007fe",
      "tree": "f236f3a850bbefc16e4819992a725f678c6a0421",
      "parents": [
        "d2a84f47899d1efc24fa610696f7b793692279c7"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Tue Sep 18 17:46:12 2007 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:38 2007 -0400"
      },
      "message": "libata-scsi: Remove !use_sg code paths\n\n     This is a minimal patch needed to remove use of !use_sg\n     but it is not a complete clean up of the !use_sg paths.\n     Libata-core still has the qc-\u003eflags \u0026 ATA_QCFLAG_SG\n     and !qc-\u003en_elem code paths. Perhaps an ata maintainer\n     would have a go at it.\n\n     - TODO: further cleanup of qc-\u003eflags \u0026 ATA_QCFLAG_SG\n       and !qc-\u003en_elem code paths in libata-core\n     - TODO: Use scsi_dma_{map,unmap} where applicable.\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "2f2949680ad89d606db838340b17c30216c0bb0f",
      "tree": "25d7918c7b846d151776bbdf6a111a1d241d6b05",
      "parents": [
        "9f45cbd3f0fc597530aaf85cad7fe52cd63f1fd8"
      ],
      "author": {
        "name": "Kristen Carlson Accardi",
        "email": "kristen.c.accardi@intel.com",
        "time": "Wed Aug 15 04:11:25 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:33 2007 -0400"
      },
      "message": "[libata] ahci: send event when AN received\n\nWhen we get an SDB FIS with the \u0027N\u0027 bit set, we should send\nan event to user space to indicate that there has been a\nmedia change.  This will be done via the scsi device.\n\nSigned-off-by: Kristen Carlson Accardi \u003ckristen.c.accardi@intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "baf4fdfaaf5cb9f4fb1c341c8cef60a64e580582",
      "tree": "f26293a36958a6813bf1353cb07afd3d6be6aa0d",
      "parents": [
        "4cc980b34b2a25f600576dcd11de388bc44e1ebd"
      ],
      "author": {
        "name": "Mark Lord",
        "email": "liml@rtr.ca",
        "time": "Wed Aug 08 01:08:45 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:32 2007 -0400"
      },
      "message": "libata: add support for ATA_16 on ATAPI\n\nAdd support for issuing ATA_16 passthru commands to ATAPI devices\nmanaged by libata.  It requires the previous CDB length fix patch.\n\nA boot/module parameter, \"atapi_passthru16\u003d0\" can be used to globally\ndisable this feature, if ever desired.\n\ntj: restructured __ata_scsi_queuecmd() according to Jeff\u0027s suggestion.\n\nSigned-off-by: Mark Lord \u003climl@rtr.ca\u003e\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "41bda9c98035dd3589b02cbc1de02f71d2faf9c8",
      "tree": "2a5b0c85584d443c1c8f7cb2b592e75bea3da6cf",
      "parents": [
        "9b1e2658faf3f3095a96558c333b333c0e29dbc0"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Aug 06 18:36:24 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:32 2007 -0400"
      },
      "message": "libata-link: update hotplug to handle PMP links\n\nUpdate hotplug to handle PMP links.  When PMP is attached, the PMP\nnumber corresponds to C of SCSI H:C:I:L.  While at it, change argument\nto ata_find_dev() to @devno from @id to avoid confusion with SCSI\ndevice ID.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "f58229f8060055b08b34008ea08f31de1e2f003c",
      "tree": "6ca5ef546671cb975ef3632fb032c238eaf1bb4c",
      "parents": [
        "9af5c9c97dc9d599281778864c72b385f0c63341"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Aug 06 18:36:23 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:30 2007 -0400"
      },
      "message": "libata-link: implement and use link/device iterators\n\nMultiple links and different number of devices per link should be\nconsidered to iterate over links and devices.  This patch implements\nand uses link and device iterators - ata_port_for_each_link() and\nata_link_for_each_dev() - and ata_link_max_devices().\n\nThis change makes a lot of functions iterate over only possible\ndevices instead of from dev 0 to dev ATA_MAX_DEVICES.  All such\nchanges have been examined and nothing should be broken.\n\nWhile at it, add a separating comment before device helpers to\ndistinguish them better from link helpers and others.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "9af5c9c97dc9d599281778864c72b385f0c63341",
      "tree": "8359986bd42c4a9a5b1993078aa9ee4c7971ac3d",
      "parents": [
        "640fdb504941fa2b9f6f274716fc9f97f2bf6bff"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Aug 06 18:36:22 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:30 2007 -0400"
      },
      "message": "libata-link: introduce ata_link\n\nIntroduce ata_link.  It abstracts PHY and sits between ata_port and\nata_device.  This new level of abstraction is necessary to support\nSATA Port Multiplier, which basically adds a bunch of links (PHYs) to\na ATA host port.  Fields related to command execution, spd_limit and\nEH are per-link and thus moved to ata_link.\n\nThis patch only defines the host link.  Multiple link handling will be\nadded later.  Also, a lot of ap-\u003elink derefences are added but many of\nthem will be removed as each part is converted to deal directly with\nata_link instead of ata_port.\n\nThis patch introduces no behavior change.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "165125e1e480f9510a5ffcfbfee4e3ee38c05f23",
      "tree": "8009c8a5ff09e26dc2418d42f66ecafb055c52a2",
      "parents": [
        "f695baf2df9e0413d3521661070103711545207a"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jul 24 09:28:11 2007 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jul 24 09:28:11 2007 +0200"
      },
      "message": "[BLOCK] Get rid of request_queue_t typedef\n\nSome of the code has been gradually transitioned to using the proper\nstruct request_queue, but there\u0027s lots left. So do a full sweet of\nthe kernel and get rid of this typedef and replace its uses with\nthe proper type.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "1ae463171cc1b1ea6dad7bcb298e96c073e7373e",
      "tree": "c3d62562c9be8c855f7238785ea9c9348f1e56f1",
      "parents": [
        "f1545154a5c96590b1992aac8ee1e2c445e301ed"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Jul 16 14:29:40 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Jul 20 08:26:25 2007 -0400"
      },
      "message": "libata: improve SCSI scan failure handling\n\nSCSI scan may fail due to memory allocation failure even if EH is not\nin progress.  Due to use of GFP_ATOMIC in SCSI scan path, allocation\nfailure isn\u0027t too rare especially while probing multiple devices at\nonce which is the case when a bunch of devices are connected to PMP.\n\nThis patch moves SCSI scan failure detetion logic from\nata_scsi_hotplug() to ata_scsi_scan_host() and implement synchronous\nscan behavior.  The synchronous path sleeps briefly and repeats SCSI\nscan if some devices aren\u0027t attached properly.  It contains robust\nretry loop to minimize the chance of device misdetection during boot\nand falls back to async retry if everything fails.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "d26fc9551a15fdad0d5de8376a78816b8af44f00",
      "tree": "5c829c1baf499ad1f31ed4b8b41e766b290a6306",
      "parents": [
        "c1e6f28cc5de37dcd113b9668a185c0b9334ba8a"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Fri Jul 06 19:13:52 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jul 09 12:17:35 2007 -0400"
      },
      "message": "libata: Support chips with 64K PRD quirk\n\nAdd ata_dumb_qc_prep and supporting logic so that a driver can just\nspecify it needs to be helped in this area. 64K entries are split\nas with drivers/ide.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "e00f1ff3c8977eff07d0214d2f3478ac947bda0f",
      "tree": "1209cd341d4be66b319d2779ffb91d0b5988e42f",
      "parents": [
        "914616a3c2a54504f3b0eda0b67fcd32226b3e83"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Jun 27 02:47:35 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jun 27 02:50:08 2007 -0400"
      },
      "message": "libata: call ata_check_atapi_dma() with qc better prepared\n\nIn atapi_xlat(), prepare qc better before calling\nata_check_atapi_dma() such that ata_check_atapi_dma() can use info\nfrom qc.  While at it, reformat weird looking if/else block in the\nfunction.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "2c3d2a46f1ccf591850b20f4fdde12bcf2bf3dfd",
      "tree": "148a2cd32ae40185bb547cb96cd17bcd920b8ab0",
      "parents": [
        "fa4453c4c94a61bbefe470b16ddbb6218481c6dc"
      ],
      "author": {
        "name": "Albert Lee",
        "email": "albertcc@tw.ibm.com",
        "time": "Thu Jun 07 16:01:17 2007 +0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Jun 09 23:08:12 2007 -0400"
      },
      "message": "libata passthru: update cached device paramters\n\nINIT_DEV_PARAMS and SET_MULTI_MODE change the device parameters cached\nby libata.  Re-read IDENTIFY DEVICE info and update the cached device\nparamters when seeing these commands.\n\nSigned-off-by: Albert Lee \u003calbertcc@tw.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "fa4453c4c94a61bbefe470b16ddbb6218481c6dc",
      "tree": "63a861f6fdb92729f7f15b65684e5add0bac5c62",
      "parents": [
        "23cb1d718ddbeb718ed7ca5be283dcbfb63993c3"
      ],
      "author": {
        "name": "Albert Lee",
        "email": "albertcc@tw.ibm.com",
        "time": "Thu Jun 07 15:52:07 2007 +0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Jun 09 23:08:12 2007 -0400"
      },
      "message": "libata passthru: always enforce correct DEV bit\n\n Always enforce correct DEV bit since we know which drive the command\nis targeted. SAT demands to ignore the DEV bit, too.\n\nSigned-off-by: Albert Lee \u003calbertcc@tw.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "23cb1d718ddbeb718ed7ca5be283dcbfb63993c3",
      "tree": "1c569650afa5b6916a68e71656aafdec9ba4163d",
      "parents": [
        "1dce589c38c36ae69614840ee230183f3a7d43c5"
      ],
      "author": {
        "name": "Albert Lee",
        "email": "albertcc@tw.ibm.com",
        "time": "Thu Jun 07 15:50:44 2007 +0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Jun 09 23:08:11 2007 -0400"
      },
      "message": "libata passthru: map UDMA protocols\n\n Map the ATA passthru UDMA protocols to ATA_PROT_DMA.\n\nSigned-off-by: Albert Lee \u003calbertcc@tw.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "1dce589c38c36ae69614840ee230183f3a7d43c5",
      "tree": "b236f4ee06cca72bc07d88f6fbbf87ddc6b8ab83",
      "parents": [
        "f93f1078d08e0f63a6a4bdaa154de3642fc03d5d"
      ],
      "author": {
        "name": "Albert Lee",
        "email": "albertcc@tw.ibm.com",
        "time": "Thu Jun 07 15:49:22 2007 +0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Jun 09 23:08:11 2007 -0400"
      },
      "message": "libata passthru: support PIO multi commands\n\n  support the pass through of PIO multi commands.\n\nSigned-off-by: Albert Lee \u003calbertcc@tw.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "f93f1078d08e0f63a6a4bdaa154de3642fc03d5d",
      "tree": "7baa983d1a2c0b5a4ece57e8d23d9e40d9fd521f",
      "parents": [
        "6070068b875f604ff3f62e6e342bbd4c1f34a895"
      ],
      "author": {
        "name": "Albert Lee",
        "email": "albertcc@tw.ibm.com",
        "time": "Thu Jun 07 15:47:13 2007 +0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Jun 09 23:08:11 2007 -0400"
      },
      "message": "libata passthru: update protocol numbers\n\n Update the ATA passthru protocol numbers according to the new spec.\n\nSigned-off-by: Albert Lee \u003calbertcc@tw.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "6c7b7d2b7615110edbc4ea7816831c13b0250ebb",
      "tree": "63c408afb9290dbcaac53f46f3c1b6b19910bc70",
      "parents": [
        "ddfc87a098a0172ad13ce50edf55d5fe266f1352"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri May 25 04:39:39 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri May 25 04:39:39 2007 -0400"
      },
      "message": "[libata] Fix decoding of 6-byte commands\n\nThe code for parsing 6-byte SCSI command LBAs\nmissed the top 5 bits (the MSB).\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "d9aca22cf443f5ed77d15a320abbab055ae4a976",
      "tree": "a808d879baf21a557a93e9ef3a0d96b004985f8b",
      "parents": [
        "1daf9ce74e0e0ef8ffde800ab495339458c3375f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu May 17 16:43:26 2007 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu May 17 20:57:38 2007 -0400"
      },
      "message": "libata: remove libata.spindown_compat\n\nWith STANDBYDOWN tracking added, libata.spindown_compat isn\u0027t\nnecessary anymore.  If userspace shutdown(8) issues STANDBYNOW, libata\nwarns.  If userspace shutdown(8) doesn\u0027t issue STANDBYNOW, libata does\nthe right thing.  Userspace can tell whether kernel supports spindown\nby testing whether sysfs node manage_start_stop exists as before.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "13b8d09f5de0aaa3153bbccc98baf247387823dc",
      "tree": "d35c90bd2460d7808595917ccf7c102229353365",
      "parents": [
        "da071b42f73dabbd0daf7ea4c3ff157d53b00648"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue May 15 12:29:22 2007 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed May 16 01:18:31 2007 -0400"
      },
      "message": "libata: track spindown status and skip spindown_compat if possible\n\nOur assumption that most distros issue STANDBYNOW seems wrong.  The\nupstream sysvinit and thus many distros including gentoo and opensuse\ndon\u0027t take any action for libata disks on spindown.  We can skip\ncompat handling for these distros so that they don\u0027t need to update\nanything to take advantage of kernel-side shutdown.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "da071b42f73dabbd0daf7ea4c3ff157d53b00648",
      "tree": "6b8aa61169f6c18263821d9c5fe298b3b2eb6b21",
      "parents": [
        "3cadbcc09891b8544203f211dac13f9cc4e6832a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 14 17:26:18 2007 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed May 16 01:18:31 2007 -0400"
      },
      "message": "libata: fix shutdown warning message printing\n\nUnlocking ap-\u003elock and ssleeping don\u0027t work because SCSI commands can\nbe issued from completion path without context.  Reimplement delayed\ncompletion by allowing translation functions to override\nqc-\u003escsidone(), storing the original completion function to\nscmd-\u003escsi_done() and overriding qc-\u003escsidone() with a function which\nschedules delayed invocation of scmd-\u003escsi_done().\n\nThis isn\u0027t pretty at all but all the ugly parts are thankfully\ncontained in the stop translation path where the compat feature is\nimplemented.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "920a4b1038e442700a1cfac77ea7e20bd615a2c3",
      "tree": "4209c04b64b021a3e4253a484b108b2475a2860a",
      "parents": [
        "9666f4009c22f6520ac3fb8a19c9e32ab973e828"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri May 04 21:28:48 2007 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri May 11 18:01:04 2007 -0400"
      },
      "message": "libata: implement libata.spindown_compat\n\nNow that libata uses sd-\u003emanage_start_stop, libata spins down disk on\nshutdown.  In an attempt to compensate libata\u0027s previous shortcoming,\nsome distros sync and spin down disks attached via libata in their\nshutdown(8).  Some disks spin back up just to spin down again on\nSTANDBYNOW1 if the command is issued when the disk is spun down, so\nthis double spinning down causes problem.\n\nThis patch implements module parameter libata.spindown_compat which,\nwhen set to one (default value), prevents libata from spinning down\ndisks on shutdown thus avoiding double spinning down.  Note that\nlibata spins down disks for suspend to mem and disk, so with\nlibata.spindown_compat set to one, disks should be properly spun down\nin all cases without modifying shutdown(8).\n\nshutdown(8) should be fixed eventually.  Some drive do spin up on\nSYNCHRONZE_CACHE even when their cache is clean.  Those disks\ncurrently spin up briefly when sd tries to shutdown the device and\nthen the machine powers off immediately, which can\u0027t be good for the\nhead.  We can\u0027t skip SYNCHRONIZE_CACHE during shudown as it can be\ndangerous data integrity-wise.\n\nSo, this spindown_compat parameter is already scheduled for removal by\nthe end of the next year and here\u0027s what shutdown(8) should do.\n\n  * Check whether /sys/modules/libata/parameters/spindown_compat\n    exists.  If it does, write 0 to it.\n\n  * For each libata harddisk {\n\t* Check whether /sys/class/scsi_disk/h:c:i:l/manage_start_stop\n\t  exists.  Iff it doesn\u0027t, synchronize cache and spin the disk\n\t  down as before.\n  }\n\nThe above procedure will make shutdown(8) work properly with kernels\nbefore this change, ones with this workaround and later ones without\nit.\n\nTo accelerate shutdown(8) updates, if the compat mode is in use, this\npatch prints BIG FAT warning for five seconds during shutdown (the\noptimal interval to annoy the user just the right amount discovered by\nhours of tireless usability testing).\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "9666f4009c22f6520ac3fb8a19c9e32ab973e828",
      "tree": "eaac13cd5890af6298e5576a48c29891f0890bd1",
      "parents": [
        "0a3fd051c7036ef71b58863f8e5da7c3dabd9d3f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri May 04 21:27:47 2007 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri May 11 18:01:03 2007 -0400"
      },
      "message": "libata: reimplement suspend/resume support using sdev-\u003emanage_start_stop\n\nReimplement suspend/resume support using sdev-\u003emanage_start_stop.\n\n* Device suspend/resume is now SCSI layer\u0027s responsibility and the\n  code is simplified a lot.\n\n* DPM is dropped.  This also simplifies code a lot.  Suspend/resume\n  status is port-wide now.\n\n* ata_scsi_device_suspend/resume() and ata_dev_ready() removed.\n\n* Resume now has to wait for disk to spin up before proceeding.  I\n  couldn\u0027t find easy way out as libata is in EH waiting for the\n  disk to be ready and sd is waiting for EH to complete to issue\n  START_STOP.\n\n* sdev-\u003emanage_start_stop is set to 1 in ata_scsi_slave_config().\n  This fixes spindown on shutdown and suspend-to-disk.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "f31871951b38daf2d7ca17daad59fdb735062da3",
      "tree": "4286402eaf679b6fb73e893d8e51bb693559091d",
      "parents": [
        "ecef7253235e7a9365afe08a508e11bed91c1c11"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Apr 17 23:44:07 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Apr 28 14:16:03 2007 -0400"
      },
      "message": "libata: separate out ata_host_alloc() and ata_host_register()\n\nReorganize ata_host_alloc() and its subroutines into the following\nthree functions.\n\n* ata_host_alloc() : allocates host and its ports.  shost is not\n  registered automatically.\n\n* ata_scsi_add_hosts() : allocates and adds shosts associated with an\n  ATA host.  Used by ata_host_register().\n\n* ata_host_register() : takes a fully initialized ata_host structure\n  and registers it to libata layer and probes it.\n\nOnly ata_host_alloc() and ata_host_register() are exported.\nata_device_add() is rewritten using the above functions.  This patch\ndoes not introduce any observable behavior change.  Things worth\nmentioning.\n\n* print_id is assigned at registration time and LLDs are allowed to\n  overallocate ports and reduce host-\u003en_ports during initialization.\n  ata_host_register() will throw away unused ports automatically.\n\n* All SCSI host initialization stuff now resides in\n  ata_scsi_add_hosts() in libata-scsi.c, where it should be.\n\n* ipr is now the only user of ata_host_init().  Either kill it by\n  converting ipr to use ata_host_alloc() and friends or rename and\n  move it to libata-scsi.c\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "5a5dbd18a7496ed403f6f54bb20c955c65482fa5",
      "tree": "031eec40ab42ac4ab04e59db539b8126ac31fb6d",
      "parents": [
        "1234010684bb9cde51125ec3d1c71054a9f24f47"
      ],
      "author": {
        "name": "Mark Lord",
        "email": "liml@rtr.ca",
        "time": "Fri Mar 16 10:22:26 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Apr 28 14:16:01 2007 -0400"
      },
      "message": "libata: add support for READ/WRITE LONG\n\nThe READ/WRITE LONG commands are theoretically obsolete,\nbut the majority of drives in existance still implement them.\n\nThe WRITE_LONG and WRITE_LONG_ONCE commands are of particular\ninterest for fault injection testing -- eg. creating \"media errors\"\nat specific locations on a disk.\n\nThe fussy bit is that these commands require a non-standard\nsector size, usually 520 bytes instead of 512.\n\nThis patch adds support to libata for READ/WRITE LONG commands\nissued via SG_IO/ATA_16.\n\nSigned-off-by:  Mark Lord \u003cmlord@pobox.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "f0ef88ed413232daebfe675c7b1bbf100d604d4b",
      "tree": "fc235d7aede0d6c4d2e500ef5d0446122eaa611a",
      "parents": [
        "cd0d3bbcdd650651b7ccfaf55d107e3fc237d95a"
      ],
      "author": {
        "name": "Mark Lord",
        "email": "liml@rtr.ca",
        "time": "Fri Feb 02 12:36:25 2007 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Apr 28 14:15:55 2007 -0400"
      },
      "message": "RESEND: libata: check cdb len per dev instead of per host\n\nResending, with s/printk/DPRINTK/ as pointed out by Alan.\n\nFix libata to perform CDB len validation per device\nrather than per host.  This way, validation still works\nwhen we have a mix of 12-byte and 16-byte devices on\na common host interface.\n\nSigned-off-by: Mark Lord \u003cmlord@pobox.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "277239f228654fc03affdf2aa0e7a3969f420415",
      "tree": "d49b4eb2b7190e7624d312925fef5a4670043ae5",
      "parents": [
        "4742d54fa4b391342dfb8f34de14d51da101fb39"
      ],
      "author": {
        "name": "Mark Lord",
        "email": "mlord@pobox.com",
        "time": "Fri Mar 30 17:45:52 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Apr 04 02:07:28 2007 -0400"
      },
      "message": "libata bugfix: preserve LBA bit for HDIO_DRIVE_TASK\n\nPreserve the LBA bit in the DevSel/Head register for HDIO_DRIVE_TASK.\n\nSigned-off-by:  Mark Lord \u003cmlord@pobox.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "6ffa01d88c9dd45e2ed917b5eeeb494d07efb1ab",
      "tree": "3fe262ccaa1c0f8c5e5d187216d8bfc70db34d95",
      "parents": [
        "438ac6d5e3f8106a6bd1a5682c508d660294a85d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri Mar 02 17:32:47 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Mar 02 18:30:35 2007 -0500"
      },
      "message": "libata: add CONFIG_PM to libata core layer\n\nConditionalize all PM related stuff in libata core layer using\nCONFIG_PM.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "44877b4e22f391d39c6589412106a3668e81a05b",
      "tree": "10bf134c2c8c15e3504d67461b42f53c6de88523",
      "parents": [
        "5ce0cf6fafd02fb4c43fc1a1bee6069d6c0a36b1"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Feb 21 01:06:51 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Feb 21 04:58:20 2007 -0500"
      },
      "message": "libata: s/ap-\u003eid/ap-\u003eprint_id/g\n\nata_port has two different id fields - id and port_no.  id is\nsystem-wide 1-based unique id for the port while port_no is 0-based\nhost-wide port number.  The former is primarily used to identify the\nATA port to the user in printk messages while the latter is used in\nvarious places in libata core and LLDs to index the port inside the\nhost.\n\nThe two fields feel quite similar and sometimes ap-\u003eid is used in\nplace of ap-\u003eport_no, which is very difficult to spot.  This patch\nrenames ap-\u003eid to ap-\u003eprint_id to reduce the possibility of such bugs.\n\nSome printk messages are adjusted such that id string (ata%u[.%u])\nisn\u0027t printed twice and/or to use ata_*_printk() instead of hardcoded\nid format.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "c3c70c443c2ef1fce31f201a93780c884b903993",
      "tree": "cfb23ec2831ad4f10c87f6362573db9eb6a33cbd",
      "parents": [
        "fcf1bf1584647f9fd864c193fee81840c4c5ce41"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Feb 20 23:31:22 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Feb 21 04:58:19 2007 -0500"
      },
      "message": "libata: fix ata_scsi_change_queue_depth()\n\nFix ata_scsi_change_queue_depth() such that...\n\n* NCQ on/off is exactly determined using the same logic as the issue path.\n\n* queue depth is adjusted to 1 if NCQ is not enabled.\n\n* -EINVAL is returned if requested action is ignored due to limitations.\n\nThis fixes the bug which allows queue depth to be increased on\nblacklisted NCQ hosts/devices.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "fcf1bf1584647f9fd864c193fee81840c4c5ce41",
      "tree": "6271f12b805d57edcb4ba908149c02e754c348e0",
      "parents": [
        "6d1245bf294e9ea65b3717be9fa0338bfb6ff6c9"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Feb 20 23:27:06 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Feb 21 04:58:18 2007 -0500"
      },
      "message": "libata: fix ata_scmd_need_defer()\n\nFix ata_scmd_need_defer() such that...\n\n* whether NCQ is used or not is exactly determined using the same\n  criteria as the issue path.\n\n* defer-check is performed in all cases.\n\nThis fixes race condition where turning off NCQ on the fly causes\nnon-NCQ commands sneak into NCQ phase.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "4d05447ec702364b8a2aebb4d625b16479268575",
      "tree": "1a3ed3c67f9c9ea5229aa3a368809101e9711bc7",
      "parents": [
        "8d9db2d2fbae9e05022825c32f86e00c8e342860"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Feb 18 02:24:37 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Feb 21 04:58:17 2007 -0500"
      },
      "message": "libata: fix probe_ent alloc/free bugs\n\nata_probe_ent_alloc() had a temporary hack such that devm_kzalloc()\nwas used for allocation if devres had been previously initialized on\nthe device; otherwise, plain kzalloc() was used.  This was to make the\ncode useable from both the old and devres-aware libata drivers during\ntransition.  This hack made ata_sas_port_alloc() unable to determine\nhow the probe_ent is allocated, causing double free in some cases.\n\nRemove the now-unneeded hack and make ata_sas_port_alloc() use\ndevm_kfree().\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "2b06719153089aa8f5ac577f15f8aa8e5b5fe357",
      "tree": "306d99bdb306a43aab31f7a6104b54b8e68dccfd",
      "parents": [
        "909706a2477a92b6e0f3083ed4b944cb1d09acfa"
      ],
      "author": {
        "name": "Mark Lord",
        "email": "liml@rtr.ca",
        "time": "Wed Feb 07 11:40:12 2007 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Feb 21 04:58:17 2007 -0500"
      },
      "message": "libata bugfix: HDIO_DRIVE_TASK\n\nI was trying to use HDIO_DRIVE_TASK for something today,\nand discovered that the libata implementation does not copy\nover the upper four LBA bits from args[6].\n\nThis is serious, as any tools using this ioctl would have their\ncommands applied to the wrong sectors on the drive, possibly resulting\nin disk corruption.\n\nIdeally, newer apps should use SG_IO/ATA_16 directly,\navoiding this bug.  But with libata poised to displace drivers/ide,\nbetter compatibility here is a must.\n\nThis patch fixes libata to use the upper four LBA bits passed\nin from the ioctl.\n\nThe original drivers/ide implementation copies over all bits\nexcept for the master/slave select bit.  With this patch,\nlibata will copy only the four high-order LBA bits,\njust in case there are assumptions elsewhere in libata (?).\n\nSigned-Off-By:  Mark Lord \u003cmlord@pobox.com\u003e\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "f0d36efdc624beb3d9e29b9ab9e9537bf0f25d5b",
      "tree": "eac4efb465aa682d6eaac61f76b3174ffd9fd8cd",
      "parents": [
        "0529c159dbdd79794796c1b50b39442d72efbe97"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sat Jan 20 16:00:28 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 09 17:39:37 2007 -0500"
      },
      "message": "libata: update libata core layer to use devres\n\nUpdate libata core layer to use devres.\n\n* ata_device_add() acquires all resources in managed mode.\n\n* ata_host is allocated as devres associated with ata_host_release.\n\n* Port attached status is handled as devres associated with\n  ata_host_attach_release().\n\n* Initialization failure and host removal is handedl by releasing\n  devres group.\n\n* Except for ata_scsi_release() removal, LLD interface remains the\n  same.  Some functions use hacky is_managed test to support both\n  managed and unmanaged devices.  These will go away once all LLDs are\n  updated to use devres.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "5924b74c1cde5ef0246cf0dfbe689b27ffbe815b",
      "tree": "c4f71c6c5b607d01ceef359275cb9868662dbd21",
      "parents": [
        "18d90deb07ed6fc1818b0f0b326ecc788cea514e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Jan 02 20:20:07 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 09 17:39:34 2007 -0500"
      },
      "message": "libata: implement HDIO_GET_IDENTITY\n\n\u0027hdparm -I\u0027 doesn\u0027t work with ATAPI devices and sg_sat is not widely\nspread yet leaving no easy way to access ATAPI IDENTIFY data.\nImplement HDIO_GET_IDENTITY such that at least \u0027hdparm -i\u0027 works.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "726f0785b608d09bdd64bdbadc09217ebbf9920e",
      "tree": "cefc97e9d5fefb2735b1b7a5ca22d3b3cc742b13",
      "parents": [
        "16454445e1f0ca21ca2f29accb58478a7ff765a2"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Jan 03 17:30:39 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 09 17:39:31 2007 -0500"
      },
      "message": "libata: kill qc-\u003ensect and cursect\n\nlibata used two separate sets of variables to record request size and\ncurrent offset for ATA and ATAPI.  This is confusing and fragile.\nThis patch replaces qc-\u003ensect/cursect with qc-\u003enbytes/curbytes and\nkills them.  Also, ata_pio_sector() is updated to use bytes for\nqc-\u003ecursg_ofs instead of sectors.  The field used to be used in bytes\nfor ATAPI and in sectors for ATA.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "a0cf733b333eeeafb7324e2897448006c693c26c",
      "tree": "9a08b3e197cf4d1d17c39ed93cbcdd26fd722316",
      "parents": [
        "cdf56bcf14b9d441777703eef95eef807e4136ec"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Jan 02 20:18:49 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 09 17:39:30 2007 -0500"
      },
      "message": "libata: straighten out ATA_ID_* constants\n\n* Kill _OFS suffixes in ATA_ID_{SERNO|FW_REV|PROD}_OFS for consistency\n  with other ATA_ID_* constants.\n\n* Kill ATA_SERNO_LEN\n\n* Add and use ATA_ID_SERNO_LEN, ATA_ID_FW_REV_LEN and ATA_ID_PROD_LEN.\n  This change also makes ata_device_blacklisted() use proper length\n  for fwrev.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "7102d230d6e8cf48ab366fa110c0a7f5ea160d07",
      "tree": "6771763556f65654abae30c18e9092285ff7044b",
      "parents": [
        "904dbd1307100edc12e2f98dd12b2338f1914f5b"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Thu Jan 04 00:09:36 2007 +0100"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 09 17:39:30 2007 -0500"
      },
      "message": "drivers/ata/: make 4 functions static\n\nThis patch makes the following needlessly global functions static:\n- libata-core.c: ata_qc_complete_internal()\n- libata-scsi.c: ata_scsi_qc_new()\n- libata-scsi.c: ata_dump_status()\n- libata-scsi.c: ata_to_sense_error()\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "7a44e910f43cbb5186e7242f4c32b3a5d2fb6666",
      "tree": "94d0831a769d73222c792464f8ae05aaae0ba62a",
      "parents": [
        "d4013f07bd5380178bf28ef1cd76649779367288"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Tue Dec 19 13:05:53 2006 -0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 09 17:39:29 2007 -0500"
      },
      "message": "[PATCH] user of the jiffies rounding patch: ATA subsystem\n\nThis patch introduces users of the round_jiffies() function: ATA subsystem\n\nThis delayed work is of the \"about once a second\" variety and can be rounded\nto coincide with other wakers.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "78981a7c6c34bddbb90da72cf6ce10953e84aad8",
      "tree": "65e9f6dc9e9c0e8462a32e09e511ef81617264d8",
      "parents": [
        "af068bd1debcc76c1bc265aa01401901bf0067ed"
      ],
      "author": {
        "name": "Robert Hancock",
        "email": "hancockr@shaw.ca",
        "time": "Tue Jan 30 00:59:18 2007 -0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Jan 30 09:20:39 2007 -0500"
      },
      "message": "libata: fix translation for START STOP UNIT\n\nlibata\u0027s SCSI translation for the SCSI START STOP UNIT command with the\nSTART bit clear (i.e.  stopping the drive) appears to be incorrect.  It\nsends an ATA STANDBY command with the time period set to 0, which the code\ncomment says means \"now\", but the ATA standard says this means disable the\nstandby timer, which effectively does nothing.  Change this to issue a\nSTANDBY IMMEDIATE command which will actually spin the drive down.  The SAT\n(SCSI/ATA Translation) standard revision 9 concurs with this choice.\n\nSigned-off-by: Robert Hancock \u003chancockr@shaw.ca\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "af068bd1debcc76c1bc265aa01401901bf0067ed",
      "tree": "88d360e0974105ba87c6e05ddb4a06612406913d",
      "parents": [
        "2ca6611b1fc1f913f5370b3c50a0a35d817491b3"
      ],
      "author": {
        "name": "David Milburn",
        "email": "dmilburn@redhat.com",
        "time": "Tue Jan 30 00:59:15 2007 -0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Jan 30 09:20:39 2007 -0500"
      },
      "message": "libata-scsi: ata_task_ioctl should return ATA registers from sense data\n\nUser applications using the HDIO_DRIVE_TASK ioctl through libata expect\nspecific ATA registers to be returned to userspace.  Verified that\nata_task_ioctl correctly returns register values to the smartctl\napplication.\n\nSigned-off-by: David Milburn \u003cdmilburn@redhat.com\u003e\nAcked-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "7a801184fa480e11e6431f184a5bdf31f63326fb",
      "tree": "b68cc5daee76cc564f7f48cc038f52be4a855be7",
      "parents": [
        "07c53dac4904206a50dd7c87adabbb1acff903fb"
      ],
      "author": {
        "name": "Brian King",
        "email": "brking@linux.vnet.ibm.com",
        "time": "Wed Jan 17 12:32:12 2007 -0600"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 24 02:04:34 2007 -0500"
      },
      "message": "libata: Fixup n_elem initialization\n\nFixup the inialization of qc-\u003en_elem. It currently gets\ninitialized to 1 for commands that do not transfer any data.\nFix this by initializing n_elem to 0 and only setting to 1\nin ata_scsi_qc_new when there is data to transfer. This fixes\nsome problems seen with SATA devices attached to ipr adapters.\n\nSigned-off-by: Brian King \u003cbrking@linux.vnet.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "2e5704f63ed56b040a3189f6b7eb17f6f849ea22",
      "tree": "4b3df2d375da3fefa5a8d22f6f41a9e5f7ce5798",
      "parents": [
        "ad706991f4f0d1476aecbdae2df5e36552b340b2"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Dec 17 10:46:33 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Dec 20 14:26:26 2006 -0500"
      },
      "message": "[PATCH] libata: take scmd-\u003ecmd_len into account when translating SCSI commands\n\nlibata depended on SCSI command to have the correct length when\ntranlating it into an ATA command.  This generally worked for commands\nissued by SCSI HLD but user could issue arbitrary broken command using\nsg interface.\n\nAlso, when building ATAPI command, full command size was always\ncopied.  Because some ATAPI devices needs bytes after CDB cleared, if\nupper layer doesn\u0027t clear bytes after CDB, such devices will\nmalfunction.  This necessiated recent clear-garbage-after-CDB fix in\nsg interfaces.  However, scsi_execute() isn\u0027t fixed yet and HL-DT-ST\nDVD-RAM GSA-H30N malfunctions on initialization commands issued from\nSCSI.\n\nThis patch makes xlat functions always consider SCSI cmd_len.  Each\ntranslation function checks for proper cmd_len and ATAPI translaation\nclears bytes after CDB.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Douglas Gilbert \u003cdougg@torque.net\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "ad706991f4f0d1476aecbdae2df5e36552b340b2",
      "tree": "3abc5ec16c191d168fd3a34dd1f6ea46491cb7b2",
      "parents": [
        "542b1444c5639e5964f9aa99e1cb231381d8a7a4"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Dec 17 10:45:57 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Dec 20 14:26:26 2006 -0500"
      },
      "message": "[PATCH] libata: kill @cdb argument from xlat methods\n\nxlat function will be updated to consider qc-\u003escsicmd-\u003ecmd_len and\nmany xlat functions deference qc-\u003escsicmd already.  It doesn\u0027t make\nsense to pass qc-\u003escsicmd-\u003ecmnd as @cdb separately.  Kill the\nargument.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "542b1444c5639e5964f9aa99e1cb231381d8a7a4",
      "tree": "6cdc8ed951a8581f1e0ab0cedba9d5abe89e407f",
      "parents": [
        "6fbf5ba461f5bd36e921627568aca20abc0e2abe"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Dec 17 10:45:08 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Dec 20 14:26:26 2006 -0500"
      },
      "message": "[PATCH] libata: clean up variable name usage in xlat related functions\n\nVariable names in xlat functions are quite confusing now.  \u0027scsicmd\u0027\nis used for CDB while qc-\u003escsicmd points to struct scsi_cmnd while\n\u0027cmd\u0027 is used for struct scsi_cmnd.\n\nThis patch cleans up variable names in xlat functions such that \u0027scmd\u0027\nis used for struct scsi_cmnd and \u0027cdb\u0027 for CDB.  Also, \u0027scmd\u0027 local\nvariable is added if qc-\u003escsicmd is used multiple times.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "da02d2a16ef3accd625f9e6e7bf83bb0f946ff62",
      "tree": "768172e71db53ff2178ee4fe5d2edc626a1545ec",
      "parents": [
        "fae07dc389bc32a3638b9d4c61dd3738ca3fb61d"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Dec 11 11:05:53 2006 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Dec 16 10:12:36 2006 -0500"
      },
      "message": "[libata] use kmap_atomic(KM_IRQ0) in SCSI simulator\n\nWe are inside spin_lock_irqsave().  quoth akpm\u0027s debug facility:\n\n [  231.948000] SCSI device sda: 195371568 512-byte hdwr sectors (100030 MB)\n [  232.232000] ata1.00: configured for UDMA/33\n [  232.404000] WARNING (1) at arch/i386/mm/highmem.c:47 kmap_atomic()\n [  232.404000]  [\u003cc01162e6\u003e] kmap_atomic+0xa9/0x1ab\n [  232.404000]  [\u003cc0242c81\u003e] ata_scsi_rbuf_get+0x1c/0x30\n [  232.404000]  [\u003cc0242caf\u003e] ata_scsi_rbuf_fill+0x1a/0x87\n [  232.404000]  [\u003cc0243ab2\u003e] ata_scsiop_mode_sense+0x0/0x309\n [  232.404000]  [\u003cc01729d5\u003e] end_bio_bh_io_sync+0x0/0x37\n [  232.404000]  [\u003cc02311c6\u003e] scsi_done+0x0/0x16\n [  232.404000]  [\u003cc02311c6\u003e] scsi_done+0x0/0x16\n [  232.404000]  [\u003cc0242dcc\u003e] ata_scsi_simulate+0xb0/0x13f\n[...]\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "9db73724453a9350e1c22dbe732d427e2939a5c9",
      "tree": "15e3ead6413ae97398a54292acc199bee0864d42",
      "parents": [
        "4c1ac1b49122b805adfa4efc620592f68dccf5db",
        "e62438630ca37539c8cc1553710bbfaa3cf960a7"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Dec 05 17:01:28 2006 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@warthog.cambridge.redhat.com",
        "time": "Tue Dec 05 17:01:28 2006 +0000"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6\n\nConflicts:\n\n\tdrivers/ata/libata-scsi.c\n\tinclude/linux/libata.h\n\nFuther merge of Linus\u0027s head and compilation fixups.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "4c1ac1b49122b805adfa4efc620592f68dccf5db",
      "tree": "87557f4bc2fd4fe65b7570489c2f610c45c0adcd",
      "parents": [
        "c4028958b6ecad064b1a6303a6a5906d4fe48d73",
        "d916faace3efc0bf19fe9a615a1ab8fa1a24cd93"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Dec 05 14:37:56 2006 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@warthog.cambridge.redhat.com",
        "time": "Tue Dec 05 14:37:56 2006 +0000"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6\n\nConflicts:\n\n\tdrivers/infiniband/core/iwcm.c\n\tdrivers/net/chelsio/cxgb2.c\n\tdrivers/net/wireless/bcm43xx/bcm43xx_main.c\n\tdrivers/net/wireless/prism54/islpci_eth.c\n\tdrivers/usb/core/hub.h\n\tdrivers/usb/input/hid-core.c\n\tnet/core/netpoll.c\n\nFix up merge failures with Linus\u0027s head and fix new compilation failures.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "bd056d7eeb55d696556ee4f5ee2acb67b2d16df4",
      "tree": "f6ca604abc43d73d42354d977f1bcedd262dbcda",
      "parents": [
        "2432697ba0ce312d60be5009ffe1fa054a761bb9"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Nov 14 22:47:10 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Dec 03 17:56:24 2006 +0900"
      },
      "message": "[PATCH] libata: separate out rw ATA taskfile building into ata_build_rw_tf()\n\nSeparate out rw ATA taskfile building from ata_scsi_rw_xlat() into\nata_build_rw_tf().  This will be used to improve media error handling.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "f84e7e41e1b88547218a3c3b1eb528005e9afdb4",
      "tree": "60142d47e5293405701ac44d97722762c7386beb",
      "parents": [
        "a569a30d301e4dbc0ad67a211292edece2da1146"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Nov 22 11:21:31 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Dec 03 17:56:24 2006 +0900"
      },
      "message": "[PATCH] libata: make sure sdev doesn\u0027t go away while rescanning\n\nata_scsi_dev_rescan() doesn\u0027t synchronize against SCSI device detach\nand the target sdev might go away in the middle.  Fix it.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "6a36261e63770ab61422550b774fe949ccca5fa9",
      "tree": "2bbd8271e01f933c6395fb1b836269ab939fca34",
      "parents": [
        "3d3cca37559e3ab2b574eda11ed5207ccdb8980a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Nov 20 11:15:47 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Dec 03 17:56:23 2006 +0900"
      },
      "message": "[PATCH] libata: fix READ CAPACITY simulation\n\n* READ CAPACITY (16) implementation fixed.  Result was shifted by two\n  bytes.  Carlos Pardo spotted this problem and submitted preliminary\n  patch.  Capacity \u003d\u003e 2TB is handled correctly now.  (verifid w/ fake\n  capacity)\n\n* Use dev-\u003en_sectors instead of re-reading directly from ID data.\n\n* Define and use ATA_SCSI_RBUF_SET() which considers rbuf length.\n  This should be done for all simulation functions.  Userland can\n  issue any simulated command with arbitrary buffer length.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Carlos Pardo \u003cCarlos.Pardo@siliconimage.com\u003e\n"
    },
    {
      "commit": "d25614bad6eec8fb80f3ef5bffbf720ebb7d2412",
      "tree": "955408142e756dbb9dd0b9538525959d526bd8fc",
      "parents": [
        "35b649fe2587b2e569c17c022ba3506ba441b6a2"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Nov 14 22:37:35 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Dec 01 22:46:00 2006 -0500"
      },
      "message": "[PATCH] libata: improve SCSI sense data generation\n\nUpdate ata_gen_ata_sense() to use desc format sense data to report the\nfirst failed block.  The first failed block is read from result_tf\nusing ata_tf_read_block() which can handle all three address formats.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "750426aa1ad1ddd1fa8bb4ed531a7956f3b9a27c",
      "tree": "40772a293ad5249a678cbbc862ea10734d956b32",
      "parents": [
        "f38621b3109068adc8430bc2d170ccea59df4261"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Nov 14 22:37:35 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Dec 01 22:46:00 2006 -0500"
      },
      "message": "[PATCH] libata: cosmetic changes to sense generation functions\n\n* s/ata_gen_ata_desc_sense/ata_gen_passthru_sense/\n\n* s/ata_gen_fixed_sense/ata_gen_ata_sense/\n\n* make both functions static\n\n* neither function has locking requirement, change it to None.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "f38621b3109068adc8430bc2d170ccea59df4261",
      "tree": "599e6600f495a02e637b06d788fc8d8790e7c99a",
      "parents": [
        "39599a5334decc2669ba794fb0ccd2b112ef1ba4"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Nov 14 22:37:35 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Dec 01 22:46:00 2006 -0500"
      },
      "message": "[PATCH] libata: fix passthru sense data header\n\nsb[7] should contain the length of whole information sense data\ndescriptor while desc[1] should contain the number of following bytes\nin the descriptor.  ie. 14 for sb[7] but 12 for desc[1].\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "6fc49adb9417b9c793e8f88d485387bb89ceb733",
      "tree": "d94f536f24e504b1a654c392171fb6f08a195ca2",
      "parents": [
        "648a88be4a016d2637ace3ae74b85a0512255ee8"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sat Nov 11 20:10:45 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Dec 01 22:45:54 2006 -0500"
      },
      "message": "[PATCH] libata: use FLUSH_EXT only when driver is larger than LBA28 limit\n\nMany drives support LBA48 even when its capacity is smaller than\n1\u003c\u003c28, as LBA48 is required for many functionalities.  FLUSH_EXT is\nmandatory for drives w/ LBA48 support.\n\nInterestingly, at least one of such drives (ST960812A) has problems\ndealing with FLUSH_EXT.  It eventually completes the command but takes\naround 7 seconds to finish in many cases thus drastically slowing down\nIO transactions.  This seems to be a firmware bug which sneaked into\nproduction probably because no other ATA driver including linux IDE\nissues FLUSH_EXT to drives which report support for LBA48 \u0026 FLUSH_EXT\nbut is smaller than 1\u003c\u003c28 blocks.\n\nThis patch adds ATA_DFLAG_FLUSH_EXT which is set iff the drive\nsupports LBA48 \u0026 FLUSH_EXT and is larger than LBA28 limit.  Both cache\nflush paths are updated to issue FLUSH_EXT only when the flag is set.\nNote that the changed behavior is more inline with the rest of libata.\nlibata prefers shorter commands whenever possible.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Danny Kukawka \u003cdkukawka@novell.com\u003e\nCc: Stefan Seyfried \u003cseife@novell.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "914ed354b373680b648d913161cca6f742f32791",
      "tree": "64d33d5813680fc564374aa0e085fe7541006325",
      "parents": [
        "baa1e78a834c917984a4659fd282f712c17ee3bf"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Nov 01 18:39:55 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Dec 01 22:41:31 2006 -0500"
      },
      "message": "[PATCH] libata: move dev-\u003emax_sectors configuration into ata_dev_configure()\n\nMove dev-\u003emax_sectors configuration from ata_scsi_dev_config() to\nata_dev_configure().\n\n* more consistent.\n* allows LLDs to peek at the default dev-\u003emax_sectors value.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "309afcb5c87b5a41da51cc0c36f61c0e0d43ca9a",
      "tree": "21566a73f25ec3b91163c5a0ba0252e7079c7370",
      "parents": [
        "722420fe6e2ab63bebc5a9ea346016b59076d75d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sat Sep 30 18:07:17 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Dec 01 22:40:29 2006 -0500"
      },
      "message": "[PATCH] libata: make user scan wait for scan to complete\n\nMake user scan wait for scan to complete.  This way user can wait for\nwarm plug request to complete and is prevented from causing EH event\nstorm by repetitively issuing scan request while EH is in progress.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Fajun Chen \u003cfajunchen@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "08475a1920aa7acc535324d6991b830fa7625bd8",
      "tree": "12ec45ed05da376bac8205f31cb3c48fe35cd4aa",
      "parents": [
        "f33d625f40e3b803c4cdea3219abb96cabf5ea03"
      ],
      "author": {
        "name": "Brian King",
        "email": "brking@us.ibm.com",
        "time": "Mon Nov 20 13:51:56 2006 -0600"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Nov 28 03:51:55 2006 -0500"
      },
      "message": "[PATCH] libata: Fixup ata_sas_queuecmd to handle __ata_scsi_queuecmd failure\n\nFixes ata_sas_queuecmd to properly handle a failure from\n__ata_scsi_queuecmd.\n\nSigned-off-by: Brian King \u003cbrking@us.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "c31f571d9f42fa2e89148811730fe3dc64943a6e",
      "tree": "0b2be4fe17824d8dc89e9c838e9f8ff934472504",
      "parents": [
        "2ea5814472c3c910aed5c5b60f1f3b1000e353f1"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Nov 22 12:39:43 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Nov 28 03:45:13 2006 -0500"
      },
      "message": "[PATCH] libata: don\u0027t schedule EH on wcache on/off if old EH\n\nDo not schedule EH for revalidation on wcache on/off if old EH.  Old\nEH cannot handle it and will result in WARN_ON()\u0027s and oops.\n\nThis closes bug #7412.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "65f27f38446e1976cc98fd3004b110fedcddd189",
      "tree": "68f8be93feae31dfa018c22db392a05546b63ee1",
      "parents": [
        "365970a1ea76d81cb1ad2f652acb605f06dae256"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Nov 22 14:55:48 2006 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Nov 22 14:55:48 2006 +0000"
      },
      "message": "WorkStruct: Pass the work_struct pointer instead of context data\n\nPass the work_struct pointer to the work function rather than context data.\nThe work function can use container_of() to work out the data.\n\nFor the cases where the container of the work_struct may go away the moment the\npending bit is cleared, it is made possible to defer the release of the\nstructure by deferring the clearing of the pending bit.\n\nTo make this work, an extra flag is introduced into the management side of the\nwork_struct.  This governs auto-release of the structure upon execution.\n\nOrdinarily, the work queue executor would release the work_struct for further\nscheduling or deallocation by clearing the pending bit prior to jumping to the\nwork function.  This means that, unless the driver makes some guarantee itself\nthat the work_struct won\u0027t go away, the work function may not access anything\nelse in the work_struct or its container lest they be deallocated..  This is a\nproblem if the auxiliary data is taken away (as done by the last patch).\n\nHowever, if the pending bit is *not* cleared before jumping to the work\nfunction, then the work function *may* access the work_struct and its container\nwith no problems.  But then the work function must itself release the\nwork_struct by calling work_release().\n\nIn most cases, automatic release is fine, so this is the default.  Special\ninitiators exist for the non-auto-release case (ending in _NAR).\n\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "253b92ecbd3d2e9f5a79fc7632c89ac74bff16c4",
      "tree": "8153c5044d97f5a46ee57329a9895256ab161500",
      "parents": [
        "3f9dd27a22ff79b6b6c4eccd19e4063bff0ddc7e"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Tue Nov 14 09:55:41 2006 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Nov 14 09:55:41 2006 -0500"
      },
      "message": "libata: fix double-completion on error\n\nA curious thing happens, however, when ata_qc_new_init fails to get\nan ata_queued_cmd:\n\nFirst, ata_qc_new_init handles the failure like this:\n    cmd-\u003eresult \u003d (DID_OK \u003c\u003c 16) | (QUEUE_FULL \u003c\u003c 1);\n    done(cmd);\n\nThen, we return to ata_scsi_translate and do this:\n    err_mem:\n        cmd-\u003eresult \u003d (DID_ERROR \u003c\u003c 16);\n        done(cmd);\n\nIt appears to me that first we set a status code indicating that we\u0027re\nok but the device queue is full and finish the command,  but then\nwe blow away that status code and replace it with an error flag and\nfinish the command a second time!  That does not seem to be desirable\nbehavior since we merely want the I/O to wait until a command slot\nfrees up, not send errors up the block layer.\n\nIn the err_mem case, we should simply exit out of ata_scsi_translate\ninstead.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "bbe1fe7ea3438f8c4447dbcd46a126581ed2ed41",
      "tree": "5b1eec4a822887a2f1380f6a0aa649322c986a91",
      "parents": [
        "4ad99f15c6a3cadf36928c399459ea4fdb3d49f9"
      ],
      "author": {
        "name": "Eran Tromer",
        "email": "eran@tromer.org",
        "time": "Tue Oct 10 14:29:25 2006 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Oct 11 04:18:07 2006 -0400"
      },
      "message": "[PATCH] libata: return sense data in HDIO_DRIVE_CMD ioctl\n\nMake the HDIO_DRIVE_CMD ioctl in libata (ATA command pass through) return a\nfew ATA registers to userspace, following the same convention as the\ndrivers/ide implementation of the same ioctl.  This is needed to support ATA\ncommands like CHECK POWER MODE, which return information in nsectors.\n\nThis fixes \"hdparm -C\" on SATA drives.\n\nForcing the sense data read via the cc flag causes spurious check conditions,\nso we filter these out (following the ATA command pass-through specification\nT10/04-262r7).\n\nSigned-off-by: Eran Tromer \u003ceran@tromer.org\u003e\nAcked-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "360f654e7cda850034f3f6252a7a7cff3fa77356",
      "tree": "2279e397c59501cfda60d7d97d4976e42b8f2983",
      "parents": [
        "e5c9e081e9c980fa785cd9002c25a251cf3f090e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sat Sep 30 19:45:00 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Sep 30 07:39:24 2006 -0400"
      },
      "message": "[PATCH] libata: turn off NCQ if queue depth is adjusted to 1\n\nTurn off NCQ if queue depth is adjusted to 1.\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "4f931374ecc599f6df7852509b6917abd5377205",
      "tree": "44455b075b8ef581fe104daa61955c29444fd3b1",
      "parents": [
        "2d2744fc8be620a2dc469cf48349e3e704119f1b"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Sep 29 05:07:25 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Sep 29 05:07:25 2006 -0400"
      },
      "message": "[libata] DocBook minor updates, fixes\n\nUpdate copyright year, fix minor stuff \u0027make xmldocs\u0027 complains about.\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "cca3974e48607c3775dc73b544a5700b2e37c21a",
      "tree": "0777d6121ba199af0aad196eb5a693510ec8e62e",
      "parents": [
        "54a86bfc3d4601be9c36cd4e8a1bdc580c98fa6a"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Aug 24 03:19:22 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Aug 24 03:19:22 2006 -0400"
      },
      "message": "libata: Grand renaming.\n\nThe biggest change is that ata_host_set is renamed to ata_host.\n\n* ata_host_set\t\t\t\u003d\u003e ata_host\n* ata_probe_ent-\u003ehost_flags\t\u003d\u003e ata_probe_ent-\u003eport_flags\n* ata_probe_ent-\u003ehost_set_flags\t\u003d\u003e ata_probe_ent-\u003e_host_flags\n* ata_host_stats\t\t\u003d\u003e ata_port_stats\n* ata_port-\u003ehost\t\t\u003d\u003e ata_port-\u003escsi_host\n* ata_port-\u003ehost_set\t\t\u003d\u003e ata_port-\u003ehost\n* ata_port_info-\u003ehost_flags\t\u003d\u003e ata_port_info-\u003eflags\n* ata_(.*)host_set(.*)\\(\\)\t\u003d\u003e ata_\\1host\\2()\n\nThe leading underscore in ata_probe_ent-\u003e_host_flags is to avoid\nreusing -\u003ehost_flags for different purpose.  Currently, the only user\nof the field is libata-bmdma.c and probe_ent itself is scheduled to be\nremoved.\n\nata_port-\u003ehost is reused for different purpose but this field is used\ninside libata core proper and of different type.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "c6fd280766a050b13360d7c2d59a3d6bd3a27d9a",
      "tree": "fdbeab639bc3dec29267bbf4b32cff7c8dd03593",
      "parents": [
        "79ed35a9f139ad2b2653dfdd5f45a8f1453e2cbb"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Aug 10 07:31:37 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Aug 10 07:31:37 2006 -0400"
      },
      "message": "Move libata to drivers/ata.\n"
    },
    {
      "commit": "3f066887595de490c411762ce58a31412b09e939",
      "tree": "a26e04a120ae71ae72910cbd85c52ceba40a3ffc",
      "parents": [
        "f4b5cc874158a139c091b3decd468929e10645e6",
        "22aac0896b1b0b8cabaf00714c55dd12f25d5738"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Aug 09 01:19:18 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Aug 09 01:19:18 2006 -0400"
      },
      "message": "Merge branch \u0027upstream-fixes\u0027 into upstream\n"
    },
    {
      "commit": "22aac0896b1b0b8cabaf00714c55dd12f25d5738",
      "tree": "fbae079c8ca9b22103a1e11439ae8b738d756c72",
      "parents": [
        "85455dd34219376dcc7dce94bea67058f0b7d731"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Aug 08 14:08:59 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Aug 09 01:16:27 2006 -0400"
      },
      "message": "[PATCH] libata: clear sdev-\u003elocked on door lock failure\n\nSCSI EH locks door if sdev-\u003elocked is set.  Sometimes door lock\ncommand fails continuously (e.g. when medium is not present) and as\nlibata uses EH to acquire sense data, this easily creates a loop where\na failed lock door invokes EH and EH issues lock door on completion.\n\nThis patch clears sdev-\u003elocked on door lock failure to break this\nloop.  This problem has been spotted and diagnosed by Unicorn Chang\n\u003cuchang@tw.ibm.com\u003e.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "80289167fd3ebaeb7b2641e69cbec44b61165fe7",
      "tree": "cb979ef0563377b9c901359dbcb1f117ff7d48d5",
      "parents": [
        "f6d950e2a5209bd7e3fb1a238f43f24f3697f5b0"
      ],
      "author": {
        "name": "Brian King",
        "email": "brking@us.ibm.com",
        "time": "Mon Aug 07 14:27:31 2006 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Aug 09 00:08:39 2006 -0400"
      },
      "message": "[PATCH] libata: Add support for SATA attachment to SAS adapters\n\nThe following patch enhances libata to allow SAS device drivers\nto utilize libata to talk to SATA devices. It introduces some\nnew APIs which allow libata to be used without allocating a\nvirtual scsi host.\n\nNew APIs:\n\nata_sas_port_alloc - Allocate an ata_port\nata_sas_port_init - Initialize an ata_port (probe device, etc)\nata_sas_port_destroy - Free an ata_port allocated by ata_sas_port_alloc\nata_sas_slave_configure - configure scsi device\nata_sas_queuecmd - queue a scsi command, similar to ata_scsi_queuecomand\n\nThese new APIs can be used either directly by a SAS LLDD or could be used\nby the SAS transport class.\n\nPossible usage for a SAS LLDD would be:\n\nscsi_scan_host\n\ttarget_alloc\n\t\tata_sas_port_alloc\n\tslave_alloc\n\t\tata_sas_port_init\n\tslave_configure\n\t\tata_sas_slave_configure\n\nCommands received by the LLDD for SATA devices would call ata_sas_queuecmd.\n\nDevice teardown would occur with:\n\nslave_destroy\n\tport_disable\ntarget_destroy\n\tata_sas_port_destroy\n\nSigned-off-by: Brian King \u003cbrking@us.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "3c5100c1c40cc5e27b4da4a736994c76d93392a0",
      "tree": "27060b36ff09d3423da9539fc1c796ec058aca29",
      "parents": [
        "c1332875cbe0c148c7f200d4f9b36b64e34d9872"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Jul 26 16:58:33 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Jul 29 04:04:55 2006 -0400"
      },
      "message": "[PATCH] libata: cosmetic changes to PM functions\n\nUnify pm_message_t argument to the new-style @mesg.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "d6f26d1f1f1128a896f38a7f8426daed0a1205a2",
      "tree": "ee86bb8f6fff0e1c8df78978ae7f402fbc1dc454",
      "parents": [
        "02670bf379267f55a43aa57f6895689697e90eb3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Jul 03 16:07:26 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jul 05 22:16:28 2006 -0400"
      },
      "message": "[PATCH] libata: reimplement per-dev PM\n\nReimplement per-dev PM.  The original implementation directly put the\ndevice into suspended mode and didn\u0027t synchronize w/ EH operations\nincluding hotplug.  This patch reimplements ata_scsi_device_suspend()\nand ata_scsi_device_resume() such that they request EH to perform the\nrespective operations.  Both functions synchronize with hotplug such\nthat it doesn\u0027t operate on detached devices.\n\nSuspend waits for completion but resume just issues request and\nreturns.  This allows parallel wake up of devices and thus speeds up\nsystem resume.\n\nDue to sdev detach synchronization, it\u0027s not feasible to separate out\nEH requesting from sdev handling; thus, ata_device_suspend/resume()\nare removed and everything is implemented in the respective\nlibata-scsi functions.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "28324304350e23db24d679c55de3f06a5b1e40aa",
      "tree": "d1100fbbc939a5f214a3d2917f5ef9cce5159a0e",
      "parents": [
        "e30349d27e093f32ef517b5416d9dce1998d4676"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Jul 03 16:07:26 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jul 05 22:16:27 2006 -0400"
      },
      "message": "[PATCH] libata: implement ATA_EHI_RESUME_LINK\n\nImplement ATA_EHI_RESUME_LINK, which indicates that the link needs to\nbe resumed.  This used to be implied by ATA_EHI_HOTPLUGGED.  However,\nhotplug isn\u0027t the only event which requires link resume and separating\nthis out allows other places to request link resume.  This\ndifferentiation also allows better debounce timing selection.\n\nThis patch converts user scan to use ATA_EHI_RESUME_LINK.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "b51e9e5db0e36239f786692f1cac6e435ed30c66",
      "tree": "396f2da741820f25174f0ef2d05af957a8dafc22",
      "parents": [
        "e6d902a3bfd53da375588e498251f4f4f6cd9650"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Jun 29 01:29:30 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jul 05 21:51:42 2006 -0400"
      },
      "message": "[PATCH] libata: add ap-\u003epflags and move core dynamic flags to it\n\nap-\u003eflags is way too clamped.  Separate out core dynamic flags to\nap-\u003epflags.  ATA_FLAG_DISABLED is a dynamic flag but left alone as\nit\u0027s referenced by a lot of LLDs and it\u0027s gonna be removed once all\nLLDs are converted to new EH.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "8f7607803717e9d045965b210cd16a25d80cd04b",
      "tree": "1e8af970aa305be5e229a86b3ccc2525f3936d3b",
      "parents": [
        "9a66a53f558efc2619a438278d2919b3c9a7f673"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jesper.juhl@gmail.com",
        "time": "Tue Jun 27 02:55:06 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:48 2006 -0700"
      },
      "message": "[PATCH] Remove redundant NULL checks before [kv]free - in drivers/\n\nRemove redundant NULL chck before kfree + tiny CodingStyle cleanup for\ndrivers/\n\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "99ba9e093d058f6dff54f475136018e2e281d50f",
      "tree": "8e69fbee21e413dc0f452cf3fb9bf3c383265c49",
      "parents": [
        "ba6a13083c1b720a47c05bee7bedbb6ef06c4611"
      ],
      "author": {
        "name": "Brian King",
        "email": "brking@us.ibm.com",
        "time": "Mon Jun 12 14:54:17 2006 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Jun 22 23:46:45 2006 -0400"
      },
      "message": "[PATCH] libata: Add ata_scsi_dev_disabled\n\nSeparate out parts of ata_scsi_find_dev to be reused in\nfuture SAS/SATA patches.\n\nAcked-by: Jeff Garzik \u003cjgarzik@pobox.com\u003e\n\nSigned-off-by: Brian King \u003cbrking@us.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "ba6a13083c1b720a47c05bee7bedbb6ef06c4611",
      "tree": "26f9d8d37145fac426744f96ecf006ec0a481e31",
      "parents": [
        "47005f255ed126a4b48a1a2f63164fb1d83bcb0a"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Jun 22 23:46:10 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Jun 22 23:46:10 2006 -0400"
      },
      "message": "[libata] Add host lock to struct ata_port\n\nPrepare for changes required to support SATA devices\nattached to SAS HBAs. For these devices we don\u0027t want to\nuse host_set at all, since libata will not be the owner\nof struct scsi_host.\n\nSigned-off-by: Brian King \u003cbrking@us.ibm.com\u003e\n\n(with slight merge modifications made by...)\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "71d530cd1b6d97094481002a04c77fea1c8e1c22",
      "tree": "e786da7145d83c19a594adf76ed90d52c51058b1",
      "parents": [
        "d7a80dad2fe19a2b8c119c8e9cba605474a75a2b",
        "d588fcbe5a7ba8bba2cebf7799ab2d573717a806"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Jun 22 22:11:56 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Jun 22 22:11:56 2006 -0400"
      },
      "message": "Merge branch \u0027master\u0027 into upstream\n\nConflicts:\n\n\tdrivers/scsi/libata-core.c\n\tdrivers/scsi/libata-scsi.c\n\tinclude/linux/pci_ids.h\n"
    },
    {
      "commit": "d01712698c7c52bc71f41192e864dccc90a1217d",
      "tree": "f7736e757162618bb7f1dbebe3f60a78f861a49a",
      "parents": [
        "d4c85325a817d3351e61c4be64b437116e8483b4"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Jun 12 22:51:14 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jun 12 10:23:21 2006 -0400"
      },
      "message": "[PATCH] libata: fix oops caused rescanning NULL sdev\n\nDepending on timing, ata_scsi_dev_rescan() might encounter a device\nwhich is enabled but not yet attached to sdev.  On such cases, the\noriginal code caused oops.  This patch makes ata_scsi_dev_rescan()\nrescan only device which are attached to sdevs.\n\nWhile at it, properly indent leading comment and add description about\nhow it\u0027s synchronized with sdev attach/detach.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "3057ac3c1a992ee135cbb7b7d1a12e58d81f0739",
      "tree": "38d83a88ee949b9db8f6655f90f98d88f8a5f2fd",
      "parents": [
        "39b07ce6d9f7cd4da8567baed844801e0aaa7b1a"
      ],
      "author": {
        "name": "zhao, forrest",
        "email": "forrest.zhao@intel.com",
        "time": "Mon Jun 12 12:01:34 2006 +0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jun 12 00:18:35 2006 -0400"
      },
      "message": "[PATCH] Snoop SET FEATURES - WRITE CACHE ENABLE/DISABLE command(v5)\n\nThis patch makes libata snoop \u0027SET FEATURES - WRITE CACHE\nENABLE/DISABLE\u0027 command, executing requisite revalidation processes\nto update cached data.\n\nSigned-off-by: Forrest Zhao \u003cforrest.zhao@intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "beb40487508290f5d6565598c60a3f44261beef2",
      "tree": "ca63df47d8db8f1b1161b5db094b0a9c2b541d91",
      "parents": [
        "1951d099dfd8fa529e86f4ac81d1a34554fbe302"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sat Jun 10 18:01:03 2006 +0200"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "jejb@mulgrave.il.steeleye.com",
        "time": "Sat Jun 10 16:24:40 2006 -0500"
      },
      "message": "[SCSI] remove scsi_request infrastructure\n\nWith Achim patch the last user (gdth) is switched away from scsi_request\nso we an kill it now.  Also disables some code in i2o_scsi that was\nbroken since the sg driver stopped using scsi_requests.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\n"
    },
    {
      "commit": "5d5ff44fe6775ccb922fd1f7d478b2ba9ca95068",
      "tree": "d8569caefe1cb5ecced30929ef98d3e1fe642425",
      "parents": [
        "e4a082c7c1f9a7b11fece6918e7ee5519b39ac46"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sat Jun 03 13:21:13 2006 +0200"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "jejb@mulgrave.il.steeleye.com",
        "time": "Tue Jun 06 11:07:25 2006 -0400"
      },
      "message": "[SCSI] fix up request buffer reference in various scsi drivers\n\nVarious scsi drivers use scsi_cmnd.buffer and scsi_cmnd.bufflen in their\nqueuecommand functions.  Those fields are internal storage for the\nmidlayer only and are used to restore the original payload after\nrequest_buffer and request_bufflen have been overwritten for EH.  Using\nthe buffer and bufflen fields means they do very broken things in error\nhandling.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\n"
    },
    {
      "commit": "ccf68c3405fca11386004674377d951b9b18e756",
      "tree": "b42439454c401ab801e3fbd3b4ee872c73956725",
      "parents": [
        "83c47bcb3c533180a6dda78152334de50065358a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:28:09 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:28:09 2006 +0900"
      },
      "message": "[PATCH] libata-hp: hook warmplug\n\nHook transportt-\u003euser_scan() and hostt-\u003eslave_destroy().\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "83c47bcb3c533180a6dda78152334de50065358a",
      "tree": "4bc9ac04f8c3797e49284e0b96e2d654769254ff",
      "parents": [
        "580b2102327ab8444af5bde4e70b50d268a1d558"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:28:07 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:28:07 2006 +0900"
      },
      "message": "[PATCH] libata-hp: implement warmplug\n\nImplement warmplug.  User-initiated unplug can be detected by\nhostt-\u003eslave_destroy() and plug by transportt-\u003euser_scan().  This\npatch only implements the two callbacks.  The next function will hook\nthem.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "580b2102327ab8444af5bde4e70b50d268a1d558",
      "tree": "01389e898e09dbaddb06405b182116b9be0e6d59",
      "parents": [
        "084fe639b81c4d418a2cf714acb0475e3713cb73"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:28:05 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:28:05 2006 +0900"
      },
      "message": "[PATCH] libata-hp: implement SCSI part of hotplug\n\nImplement SCSI part of hotplug.\n\nThis must be done in a separate context as SCSI makes use of EH during\nprobing.  SCSI scan fails silently if EH is in progress.  In such\ncases, libata pauses briefly and retries until every device is\nattached.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "0ea035a3d1ad948096e205f08f350c03d5cea453",
      "tree": "fd003f929ab079f0852e3709436ca30a18265a39",
      "parents": [
        "e8e008e7b5ed8c65675cc9b3e778b8bb909f65ab"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:28:01 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:28:01 2006 +0900"
      },
      "message": "[PATCH] libata-hp: implement ata_eh_detach_dev()\n\nImplement ata_eh_detach_dev().  This function is responsible for\ndetaching an ATA device and offlining the associated SCSI device\natomically so that the detached device is not accessed after ATA\ndetach is complete.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "3edebac41bab7e146578ad9e723ee7fff71c99c0",
      "tree": "c5f1276f7c0e93b51ad67b12e241b37c05f4f38a",
      "parents": [
        "5a04bf4befa8bffa012eedc3a0903c158b9131a9"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:27:40 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:27:40 2006 +0900"
      },
      "message": "[PATCH] libata-hp-prep: store attached SCSI device\n\nAdd device persistent field dev-\u003esdev and store the attached SCSI\ndevice.  With hotplug, libata needs to know the attached SCSI device\nto offline and detach it, but scsi_device_lookup() cannot be used\nbecause libata will reuse SCSI ID numbers - dead but not gone devices\n(due to zombie opens, etc...) interfere with the lookup.\n\ndev-\u003esdev doesn\u0027t hold reference to the SCSI device.  It\u0027s cleared\nwhen the SCSI device goes away.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "315343637b988ac32d730a6a9f7bf5866838bcb0",
      "tree": "2e6660fa9d30127cd9fe88149219b75ee2c3ce3f",
      "parents": [
        "ab5b3a5b2d887ce63f8c6a7fcb9f5c07ca4b4d43"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:27:36 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:27:36 2006 +0900"
      },
      "message": "[PATCH] libata-hp-prep: use __ata_scsi_find_dev()\n\nConvert direct sdev -\u003e dev lookup to __ata_scsi_find_dev().\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    }
  ],
  "next": "ab5b3a5b2d887ce63f8c6a7fcb9f5c07ca4b4d43"
}
