)]}'
{
  "log": [
    {
      "commit": "b7db04d9264fca4b00e949da7b3180c50e243fca",
      "tree": "038ef53ed19ec37d4a47ab55f21bccc79843673c",
      "parents": [
        "1896b15eddb4ff7266bccf3efa981885ecf80ab1"
      ],
      "author": {
        "name": "Brian Norris",
        "email": "computersforpeace@gmail.com",
        "time": "Fri Nov 02 12:29:32 2012 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Mon Dec 03 05:15:17 2012 -0500"
      },
      "message": "libata: implement ata_platform_remove_one()\n\nThis relatively simple boiler-plate code is repeated in several platform\ndrivers. We should implement a common version in libata.\n\nSigned-off-by: Brian Norris \u003ccomputersforpeace@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "0d0cdb028f9d9771e2b346038707734121f906e3",
      "tree": "0bae4e559e963bdc1b487806848b5df7021a3283",
      "parents": [
        "a52f514c911978dee418f19d1d0103e3bc25fa62"
      ],
      "author": {
        "name": "Aaron Lu",
        "email": "aaron.lu@intel.com",
        "time": "Mon Nov 26 13:55:25 2012 +0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Mon Dec 03 04:57:15 2012 -0500"
      },
      "message": "libata: restore acpi disable functionality\n\nCommit 66fa7f215 \"libata-acpi: improve ACPI disabling\" introdcued the\nbehaviour of disabling ATA ACPI if ata_acpi_on_devcfg failed the 2nd\ntime, but commit 30dcf76ac dropped this behaviour and this caused\nproblem for Dimitris Damigos, where his laptop can not resume correctly.\n\nThe bugzilla page for it is:\nhttps://bugzilla.kernel.org/show_bug.cgi?id\u003d49331\n\nThe problem is, ata_dev_push_id will fail the 2nd time it is invoked,\nand due to disabling ACPI code is dropped, ata_acpi_on_devcfg which\ncalls ata_dev_push_id will keep failing and eventually made the device\ndisabled.\n\nThis patch restores the original behaviour, if acpi failed the 2nd time,\ndisable acpi functionality for the device(and we do not event need to\nadd a debug message for this as it is still there ;-).\n\nReported-by: Dimitris Damigos \u003cdamigos@freemail.gr\u003e\nSigned-off-by: Aaron Lu \u003caaron.lu@intel.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "3151367f8778a1789d6f6e6f6c642681b6cd6d64",
      "tree": "1869d5429a25abd994ae94079808b8db060ec6f3",
      "parents": [
        "16642a2e7be23bbda013fc32d8f6c68982eab603",
        "fe709ed827d370e6b0c0a9f9456da1c22bdcd118"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 02 19:01:32 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 02 19:01:32 2012 -0700"
      },
      "message": "Merge tag \u0027scsi-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi\n\nPull first round of SCSI updates from James Bottomley:\n \"This is a large set of updates, mostly for drivers (qla2xxx [including\n  support for new 83xx based card], qla4xxx, mpt2sas, bfa, zfcp, hpsa,\n  be2iscsi, isci, lpfc, ipr, ibmvfc, ibmvscsi, megaraid_sas).\n\n  There\u0027s also a rework for tape adding virtually unlimited numbers of\n  tape drives plus a set of dif fixes for sd and a fix for a live lock\n  on hot remove of SCSI devices.\n\n  This round includes a signed tag pull of isci-for-3.6\n\n  Signed-off-by: James Bottomley \u003cJBottomley@Parallels.com\u003e\"\n\nFix up trivial conflict in drivers/scsi/qla2xxx/qla_nx.c due to new PCI\nhelper function use in a function that was removed by this pull.\n\n* tag \u0027scsi-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (198 commits)\n  [SCSI] st: remove st_mutex\n  [SCSI] sd: Ensure we correctly disable devices with unknown protection type\n  [SCSI] hpsa: gen8plus Smart Array IDs\n  [SCSI] qla4xxx: Update driver version to 5.03.00-k1\n  [SCSI] qla4xxx: Disable generating pause frames for ISP83XX\n  [SCSI] qla4xxx: Fix double clearing of risc_intr for ISP83XX\n  [SCSI] qla4xxx: IDC implementation for Loopback\n  [SCSI] qla4xxx: update copyrights in LICENSE.qla4xxx\n  [SCSI] qla4xxx: Fix panic while rmmod\n  [SCSI] qla4xxx: Fail probe_adapter if IRQ allocation fails\n  [SCSI] qla4xxx: Prevent MSI/MSI-X falling back to INTx for ISP82XX\n  [SCSI] qla4xxx: Update idc reg in case of PCI AER\n  [SCSI] qla4xxx: Fix double IDC locking in qla4_8xxx_error_recovery\n  [SCSI] qla4xxx: Clear interrupt while unloading driver for ISP83XX\n  [SCSI] qla4xxx: Print correct IDC version\n  [SCSI] qla4xxx: Added new mbox cmd to pass driver version to FW\n  [SCSI] scsi_dh_alua: Enable STPG for unavailable ports\n  [SCSI] scsi_remove_target: fix softlockup regression on hot remove\n  [SCSI] ibmvscsi: Fix host config length field overflow\n  [SCSI] ibmvscsi: Remove backend abstraction\n  ...\n"
    },
    {
      "commit": "65fe1f0f66a57380229a4ced844188103135f37b",
      "tree": "eb96e6c8de3bf8c4697618c8ee1dce4bd6d6a9ea",
      "parents": [
        "583661a89ed2e484bd295e7b4606099340478c38"
      ],
      "author": {
        "name": "Shane Huang",
        "email": "shane.huang@amd.com",
        "time": "Fri Sep 07 22:40:01 2012 +0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Sep 13 01:08:53 2012 -0400"
      },
      "message": "ahci: implement aggressive SATA device sleep support\n\nDevice Sleep is a feature as described in AHCI 1.3.1 Technical Proposal.\nThis feature enables an HBA and SATA storage device to enter the DevSleep\ninterface state, enabling lower power SATA-based systems.\n\nAggressive Device Sleep enables the HBA to assert the DEVSLP signal as\nsoon as there are no commands outstanding to the device and the port\nspecific Device Sleep idle timer has expired. This enables autonomous\nentry into the DevSleep interface state without waiting for software\nin power sensitive systems.\n\nThis patch enables Aggressive Device Sleep only if both host controller\nand device support it.\n\nTested on AMD reference board together with Device Sleep supported device\nsample.\n\nSigned-off-by: Shane Huang \u003cshane.huang@amd.com\u003e\nReviewed-by: Aaron Lu \u003caaron.lwe@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "8d8e7d13146eb6be8b98dbd58ac30421a4f8edf3",
      "tree": "d00645c868455e957fc79d61e8bdd07dfe920516",
      "parents": [
        "e468dc112f38220ee78bc0de64190eca9812749b"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Mon Jul 09 21:06:08 2012 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "JBottomley@Parallels.com",
        "time": "Fri Aug 24 13:10:24 2012 +0400"
      },
      "message": "[SCSI] libsas, ipr: cleanup ata_host flags initialization via ata_host_init\n\nlibsas and ipr pass flags to ata_host_init that are meant for the port.\n\nata_host flags:\n\tATA_HOST_SIMPLEX\t\u003d (1 \u003c\u003c 0),\t/* Host is simplex, one DMA channel per host only */\n\tATA_HOST_STARTED\t\u003d (1 \u003c\u003c 1),\t/* Host started */\n\tATA_HOST_PARALLEL_SCAN\t\u003d (1 \u003c\u003c 2),\t/* Ports on this host can be scanned in parallel */\n\tATA_HOST_IGNORE_ATA\t\u003d (1 \u003c\u003c 3),\t/* Ignore ATA devices on this host. */\n\nflags passed by libsas:\n\tATA_FLAG_SATA\t\t\u003d (1 \u003c\u003c 1),\n\tATA_FLAG_PIO_DMA\t\u003d (1 \u003c\u003c 7), /* PIO cmds via DMA */\n\tATA_FLAG_NCQ\t\t\u003d (1 \u003c\u003c 10), /* host supports NCQ */\n\nThe only one that aliases is ATA_HOST_STARTED which is a \u0027don\u0027t care\u0027 in\nthe libsas and ipr cases since ata_hosts from these sources are not\nregistered with libata.\n\nReported-by: Hannes Reinecke \u003chare@suse.com\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-by: Brian King \u003cbrking@us.ibm.com\u003e\nAcked-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\nSigned-off-by: James Bottomley \u003cJBottomley@Parallels.com\u003e\n"
    },
    {
      "commit": "2fcbdcb4c802fe40d6827dbc365dac90cfe8c0a3",
      "tree": "d4a583b2477afcf474a4ec226406748d9a327613",
      "parents": [
        "ca6d43b051b5a061b33c43303b6b4c93b46a34b5"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Thu Jun 21 23:41:46 2012 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "JBottomley@Parallels.com",
        "time": "Fri Aug 24 13:10:23 2012 +0400"
      },
      "message": "[SCSI] libata: export ata_port suspend/resume infrastructure for sas\n\nReuse ata_port_{suspend|resume}_common for sas.  This path is chosen\nover adding coordination between ata-tranport and sas-transport because\nlibsas wants to revalidate the domain at resume-time at the host level.\nIt can not validate links have resumed properly until libata has had a\nchance to perform its revalidation, and any sane placing of an ata_port\nin the sas-transport model would delay it\u0027s resumption until after the\nhost.\n\nExport the common portion of port suspend/resume (bypass pm_runtime),\nand allow sas to perform these operations asynchronously (similar to the\nlibsas async-ata probe implmentation).  Async operation is determined by\nhaving an external, rather than stack based, location for storing the\nresult of the operation.\n\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nReviewed-by: Jacek Danecki \u003cjacek.danecki@intel.com\u003e\nAcked-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\nSigned-off-by: James Bottomley \u003cJBottomley@Parallels.com\u003e\n"
    },
    {
      "commit": "ca6d43b051b5a061b33c43303b6b4c93b46a34b5",
      "tree": "159875541331b8e087d058a107a6393f287511d0",
      "parents": [
        "d9875690d9b89a866022ff49e3fcea892345ad92"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Thu Jun 21 23:41:41 2012 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "JBottomley@Parallels.com",
        "time": "Fri Aug 24 13:04:08 2012 +0400"
      },
      "message": "[SCSI] libata: reset once\n\nHotplug testing with libsas currently encounters a 55 second wait for\nlink recovery to give up.  In the case where the user trusts the\nresponse time of their devices permit the recovery attempts to be\nlimited to one.\n\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: James Bottomley \u003cJBottomley@Parallels.com\u003e\n"
    },
    {
      "commit": "8407884dd9164ec18ed2afc00f56b87e36c51fcf",
      "tree": "b6ea42c231d7d39f454de28a068d78ce11709770",
      "parents": [
        "dc7f71f486f4f5fa96f6dcf86833da020cde8a11",
        "bdc0077af574800d24318b6945cf2344e8dbb050"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jul 25 15:58:48 2012 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Wed Jul 25 15:58:48 2012 -0400"
      },
      "message": "Merge branch \u0027master\u0027 [vanilla Linus master] into libata-dev.git/upstream\n\nTwo bits were appended to the end of the bitfield\nlist in struct scsi_device.  Resolve that conflict\nby including both bits.\n\nConflicts:\n\tinclude/scsi/scsi_device.h\n"
    },
    {
      "commit": "e4a9c3732cea3e3c8c704aad86636090ffe6b25f",
      "tree": "faea8e91b3d917dcdb4c89adbb021ac737a6cb35",
      "parents": [
        "3b661a92e869ebe2358de8f4b3230ad84f7fce51"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Thu Jun 21 23:25:27 2012 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "JBottomley@Parallels.com",
        "time": "Fri Jul 20 08:58:45 2012 +0100"
      },
      "message": "[SCSI] libata, libsas: introduce sched_eh and end_eh port ops\n\nWhen managing shost-\u003ehost_eh_scheduled libata assumes that there is a\n1:1 shost-to-ata_port relationship.  libsas creates a 1:N relationship\nso it needs to manage host_eh_scheduled cumulatively at the host level.\nThe sched_eh and end_eh port port ops allow libsas to track when domain\ndevices enter/leave the \"eh-pending\" state under ha-\u003elock (previously\nnamed ha-\u003estate_lock, but it is no longer just a lock for ha-\u003estate\nchanges).\n\nSince host_eh_scheduled indicates eh without backing commands pinning\nthe device it can be deallocated at any time.  Move the taking of the\ndomain_device reference under the port_lock to guarantee that the\nata_port stays around for the duration of eh.\n\nReviewed-by: Jacek Danecki \u003cjacek.danecki@intel.com\u003e\nAcked-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJBottomley@Parallels.com\u003e\n"
    },
    {
      "commit": "b1354cbb5bfce28f2e1ed28d77b362dfdfca638d",
      "tree": "0784fe570bc70663207f56a214f0ff529962bdc6",
      "parents": [
        "a606dac368eed5696fb38e16b1394f1d049c09e9"
      ],
      "author": {
        "name": "Lin Ming",
        "email": "ming.m.lin@intel.com",
        "time": "Mon Jun 25 16:13:08 2012 +0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri Jun 29 11:38:17 2012 -0400"
      },
      "message": "libata: detect Device Attention support\n\nAdd a new flag ATA_DFLAG_DA to indicate that device supports \"Device\nAttention\".\n\nAcked-by: Aaron Lu \u003caaron.lu@amd.com\u003e\nSigned-off-by: Lin Ming \u003cming.m.lin@intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "30dcf76acc695cbd2fa919e294670fe9552e16e7",
      "tree": "77156836889ea87b90058dd23f634f0f7d99b757",
      "parents": [
        "6b66d95895c149cbc04d4fac5a2f5477c543a8ae"
      ],
      "author": {
        "name": "Matthew Garrett",
        "email": "mjg@redhat.com",
        "time": "Mon Jun 25 16:13:04 2012 +0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri Jun 29 11:38:11 2012 -0400"
      },
      "message": "libata: migrate ACPI code over to new bindings\n\nNow that we have the ability to directly glue the ACPI namespace to the\ndriver model in libata, we don\u0027t need the custom code to handle the same\nthing. Remove it and migrate the functions over to the new code.\n\nSigned-off-by: Matthew Garrett \u003cmjg@redhat.com\u003e\nSigned-off-by: Holger Macht \u003cholger@homac.de\u003e\nSigned-off-by: Lin Ming \u003cming.m.lin@intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "db63a4c8115a0bb904496e1cdd3e7488e68b0d06",
      "tree": "326448b28bf8de7c6205ed9e598070111e8a5020",
      "parents": [
        "d48b97b403d23f6df0b990cee652bdf9a52337a3"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@canonical.com",
        "time": "Fri May 04 22:15:10 2012 +0100"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Mon May 07 15:32:23 2012 -0400"
      },
      "message": "libata: add a host flag to ignore detected ATA devices\n\nWhere devices are visible via more than one host we sometimes wish to\nindicate that cirtain devices should be ignored on a specific host.  Add a\nhost flag indicating that this host wishes to ignore ATA specific devices.\n\nSigned-off-by: Andy Whitcroft \u003capw@canonical.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "b2024459252a9d2d312ee562f86f332a1498f412",
      "tree": "751987779eee44a601a68c766ba2ff258b77d25a",
      "parents": [
        "0f3fce5cc77e1f35758ef0e46a989e76e5046a7b"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Wed Mar 21 21:09:07 2012 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "JBottomley@Parallels.com",
        "time": "Mon Apr 23 12:11:47 2012 +0100"
      },
      "message": "[SCSI] libsas, libata: fix start of life for a sas ata_port\n\nThis changes the ordering of initialization and probing events from:\n  1/ allocate rphy in PORTE_BYTES_DMAED, DISCE_REVALIDATE_DOMAIN\n  2/ allocate ata_port and schedule port probe in DISCE_PROBE\n...to:\n  1/ allocate ata_port in PORTE_BYTES_DMAED, DISCE_REVALIDATE_DOMAIN\n  2/ allocate rphy in PORTE_BYTES_DMAED, DISCE_REVALIDATE_DOMAIN\n  3/ schedule port probe in DISCE_PROBE\n\nThis ordering prevents PHYE_SIGNAL_LOSS_EVENTS from sneaking in to\ndestrory ata devices before they have been fully initialized:\n\n  BUG: unable to handle kernel paging request at 0000000000003b10\n  IP: [\u003cffffffffa0053d7e\u003e] sas_ata_end_eh+0x12/0x5e [libsas]\n  ...\n  [\u003cffffffffa004d1af\u003e] sas_unregister_common_dev+0x78/0xc9 [libsas]\n  [\u003cffffffffa004d4d4\u003e] sas_unregister_dev+0x4f/0xad [libsas]\n  [\u003cffffffffa004d5b1\u003e] sas_unregister_domain_devices+0x7f/0xbf [libsas]\n  [\u003cffffffffa004c487\u003e] sas_deform_port+0x61/0x1b8 [libsas]\n  [\u003cffffffffa004bed0\u003e] sas_phye_loss_of_signal+0x29/0x2b [libsas]\n\n...and kills the awkward \"sata domain_device briefly existing in the\ndomain without an ata_port\" state.\n\nReported-by: Michal Kosciowski \u003cmichal.kosciowski@intel.com\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\nSigned-off-by: James Bottomley \u003cJBottomley@Parallels.com\u003e\n"
    },
    {
      "commit": "9508a66f898d46e726a318469312b45e0b1d078b",
      "tree": "e6b61e6c2a7dc8b40fdc0fe34901ff3db4af47a9",
      "parents": [
        "92625f9bff3853951cc75f5bc084ee67c1317d2f"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Wed Jan 18 20:47:01 2012 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "JBottomley@Parallels.com",
        "time": "Wed Feb 29 15:35:41 2012 -0600"
      },
      "message": "[SCSI] libsas: async ata scanning\n\nlibsas ata error handling is already async but this does not help the\nscan case.  Move initial link recovery out from under host-\u003escan_mutex,\nand delay synchronization with eh until after all port probe/recovery\nwork has been queued.\n\nDevice ordering is maintained with scan order by still calling\nsas_rphy_add() in order of domain discovery.\n\nSince we now scan the domain list when invoking libata-eh we need to be\ncareful to check for fully initialized ata ports.\n\nAcked-by: Jack Wang \u003cjack_wang@usish.com\u003e\nAcked-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJBottomley@Parallels.com\u003e\n"
    },
    {
      "commit": "81c757bc696284f39f07766f0c2ca67af64ce9bd",
      "tree": "a01a13219199520c7a992f90d54cc83513a5cdb0",
      "parents": [
        "0b3e09da1350397f3f8b6fd839ab455b0b587451"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Dec 02 16:07:01 2011 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "JBottomley@Parallels.com",
        "time": "Sun Feb 19 14:13:51 2012 -0600"
      },
      "message": "[SCSI] libsas: execute transport link resets with libata-eh via host workqueue\n\nLink resets leave ata affiliations intact, so arrange for libsas to make\nan effort to avoid dropping the device due to a slow-to-recover link.\nTowards this end carry out reset in the host workqueue so that it can\ncheck for ata devices and kick the reset request to libata.  Hard\nresets, in contrast, bypass libata since they are meant for associating\nan ata device with another initiator in the domain (tears down\naffiliations).\n\nNeed to add a new transport_sas_phy_reset() since the current\nsas_phy_reset() is a utility function to libsas lldds.  They are not\nprepared for it to loop back into eh.\n\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJBottomley@Parallels.com\u003e\n"
    },
    {
      "commit": "b9075fa968a0a4347aef35e235e2995c0e57dddd",
      "tree": "cf9f9716784e790d8a43339653256d9cf9178ff3",
      "parents": [
        "ae29bc92da01a2e9d278a9a58c3b307d41cc0254"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Oct 31 17:11:33 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:54 2011 -0700"
      },
      "message": "treewide: use __printf not __attribute__((format(printf,...)))\n\nStandardize the style for compiler based printf format verification.\nStandardized the location of __printf too.\n\nDone via script and a little typing.\n\n$ grep -rPl --include\u003d*.[ch] -w \"__attribute__\" * | \\\n  grep -vP \"^(tools|scripts|include/linux/compiler-gcc.h)\" | \\\n  xargs perl -n -i -e \u0027local $/; while (\u003c\u003e) { s/\\b__attribute__\\s*\\(\\s*\\(\\s*format\\s*\\(\\s*printf\\s*,\\s*(.+)\\s*,\\s*(.+)\\s*\\)\\s*\\)\\s*\\)/__printf($1, $2)/g ; print; }\u0027\n\n[akpm@linux-foundation.org: revert arch bits]\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nCc: \"Kirill A. Shutemov\" \u003ckirill@shutemov.name\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f6e67035a9edd79b8b202c159d5bec560bb9c358",
      "tree": "ba884b5a2de7cb60bd1e6f67813b47fdb8ff509a",
      "parents": [
        "2fc62e2ac350b8f574e0a09170b350a8f2fa4a02"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Tue Sep 20 15:10:33 2011 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "JBottomley@Parallels.com",
        "time": "Sun Oct 02 12:30:30 2011 -0500"
      },
      "message": "[SCSI] libsas,libata: fix -\u003echange_queue_{depth|type} for sata devices\n\nPass queue_depth change requests to libata, and prevent queue_type\nchanges for ATA devices.\n\nOtherwise:\n1/ we do not honor the libata specific restrictions on the queue depth\n2/ libsas drivers that do not set sdev-\u003etagged_supported are unable to\n   change the queue_depth of ata devices via sysfs\n\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nAcked-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\nSigned-off-by: James Bottomley \u003cJBottomley@Parallels.com\u003e\n"
    },
    {
      "commit": "06296a1e684bcd40b9a28d5d8030809e4295528b",
      "tree": "474fcc8507fb11107e9e5de885217396a12d99f1",
      "parents": [
        "a9a79dfec239568bdbf778242f8fcd10bcc5b9e2"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Fri Apr 15 15:52:00 2011 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Sat Jul 23 17:57:36 2011 -0400"
      },
      "message": "ata: Add and use ata_print_version_once\n\nUse a single mechanism to show driver version.\nReduces text a tiny bit too.\n\nRemove uses of static int printed_version\nAdd and use ata_print_version(const struct device *, const char *ver)\nand ata_print_version_once.\n\n$ size drivers/ata/built-in.*\n   text\t   data\t    bss\t    dec\t    hex\tfilename\n 544969\t  73893\t 116584\t 735446\t  b38d6\tdrivers/ata/built-in.allyesconfig.ata.o\n 543870\t  73893\t 116592\t 734355\t  b34ad\tdrivers/ata/built-in.allyesconfig.print_once.o\n 141328\t  14689\t   4220\t 160237\t  271ed\tdrivers/ata/built-in.defconfig.ata.o\n 141212\t  14689\t   4220\t 160121\t  27179\tdrivers/ata/built-in.defconfig.print_once.o\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@pobox.com\u003e\n"
    },
    {
      "commit": "a9a79dfec239568bdbf778242f8fcd10bcc5b9e2",
      "tree": "620648585f89cdb589d1625431f8c21ef70a9258",
      "parents": [
        "a44fec1fce5d5d14cc3ac4545b8da346394de666"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Fri Apr 15 15:51:59 2011 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Sat Jul 23 17:57:36 2011 -0400"
      },
      "message": "ata: Convert ata_\u003cfoo\u003e_printk(KERN_\u003cLEVEL\u003e to ata_\u003cfoo\u003e_\u003clevel\u003e\n\nSaves text by removing nearly duplicated text format strings by\ncreating ata_\u003cfoo\u003e_printk functions and printf extension %pV.\n\nata defconfig size shrinks ~5% (~8KB), allyesconfig ~2.5% (~13KB)\n\nFormat string duplication comes from:\n\n #define ata_link_printk(link, lv, fmt, args...) do { \\\n       if (sata_pmp_attached((link)-\u003eap) || (link)-\u003eap-\u003eslave_link)    \\\n               printk(\"%sata%u.%02u: \"fmt, lv, (link)-\u003eap-\u003eprint_id,   \\\n                      (link)-\u003epmp , ##args); \\\n       else \\\n               printk(\"%sata%u: \"fmt, lv, (link)-\u003eap-\u003eprint_id , ##args); \\\n       } while(0)\n\nCoalesce long formats.\n\n$ size drivers/ata/built-in.*\n   text\t   data\t    bss\t    dec\t    hex\tfilename\n 544969\t  73893\t 116584\t 735446\t  b38d6\tdrivers/ata/built-in.allyesconfig.ata.o\n 558429\t  73893\t 117864\t 750186\t  b726a\tdrivers/ata/built-in.allyesconfig.dev_level.o\n 141328\t  14689\t   4220\t 160237\t  271ed\tdrivers/ata/built-in.defconfig.ata.o\n 149567\t  14689\t   4220\t 168476\t  2921c\tdrivers/ata/built-in.defconfig.dev_level.o\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@pobox.com\u003e\n"
    },
    {
      "commit": "8a745f1f39b7a20047a362b67ce9151c07d14440",
      "tree": "f8f08be7a284d195f30a8b2e6fc63b714e4f7f21",
      "parents": [
        "0afc6f5ba95419fd505e60637f7645425f16e407"
      ],
      "author": {
        "name": "Kristen Carlson Accardi",
        "email": "kristen@linux.intel.com",
        "time": "Fri Mar 04 10:24:11 2011 -0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Thu May 19 20:50:53 2011 -0400"
      },
      "message": "libata: Power off empty ports\n\nGive users the option of completely powering off unoccupied\nSATA ports using the existing min_power link_power_management_policy\noption.  When the use selects this option on an empty port, we\nwill power the port off by setting DET to off.  For occupied ports,\nbehavior is unchanged.\n\nSigned-off-by: Kristen Carlson Accardi \u003ckristen@linux.intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@pobox.com\u003e\n"
    },
    {
      "commit": "ae01b2493c3bf03c504c32ac4ebb01d528508db3",
      "tree": "e2f10e9054ca9c883f59aab7fec776ed2aece281",
      "parents": [
        "3f7ac1d6671ebca7a955853f7127c937f7befbd3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 16 11:14:55 2011 +0100"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Sun Apr 24 11:32:16 2011 -0400"
      },
      "message": "libata: Implement ATA_FLAG_NO_DIPM and apply it to mcp65\n\nNVIDIA mcp65 familiy of controllers cause command timeouts when DIPM\nis used.  Implement ATA_FLAG_NO_DIPM and apply it.\n\nThis problem was reported by Stefan Bader in the following thread.\n\n http://thread.gmane.org/gmane.linux.ide/48841\n\nstable: applicable to 2.6.37 and 38.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Stefan Bader \u003cstefan.bader@canonical.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Jeff Garzik \u003cjgarzik@pobox.com\u003e\n"
    },
    {
      "commit": "3f7ac1d6671ebca7a955853f7127c937f7befbd3",
      "tree": "935a287d51ea6531e95e1b1173983a4de94820b5",
      "parents": [
        "6e5fe5b12cfcd9ed4303c9a4f4a22a694104d28f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 16 11:14:25 2011 +0100"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Sun Apr 24 11:32:03 2011 -0400"
      },
      "message": "libata: Kill unused ATA_DFLAG_{H|D}IPM flags\n\nATA_DFLAG_{H|D}IPM flags are no longer used.  Kill them.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@pobox.com\u003e\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "64b97594251bb909d74d64012a2b9e5cc32bb11d",
      "tree": "c1b857de305f0fc403efaab8b17ddf1711010656",
      "parents": [
        "64a3903d0885879ba8706a8bcf71c5e3e7664db2"
      ],
      "author": {
        "name": "Viresh Kumar",
        "email": "viresh.kumar@st.com",
        "time": "Tue Feb 22 14:32:38 2011 +0530"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Mon Mar 14 02:52:41 2011 -0400"
      },
      "message": "libata-sff: add ata_sff_queue_work() \u0026 ata_sff_queue_delayed_work()\n\nThis patch adds ata_sff_queue_work() \u0026 ata_sff_queue_delayed_work() routine in\nlibata-sff.c file. This routine can be used by ata drivers to use ata_sff_wq.\n\nSigned-off-by: Viresh Kumar \u003cviresh.kumar@st.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@pobox.com\u003e\n"
    },
    {
      "commit": "1a0f6b7ecdcd810f8991ea26c95d93ff965e8f41",
      "tree": "bb1abb63a075726081a94794b3b712c5ac6e5ffd",
      "parents": [
        "9cbe056f6c467e7395d5aec39aceec47812eb98e"
      ],
      "author": {
        "name": "Sergei Shtylyov",
        "email": "sshtylyov@ru.mvista.com",
        "time": "Fri Feb 04 22:08:22 2011 +0300"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Wed Mar 02 02:36:46 2011 -0500"
      },
      "message": "libata: remove ATA_FLAG_LPM\n\nCommit 6b7ae9545ad9875a289f4191c0216b473e313cb9 (libata: reimplement link power\nmanagement) removed the check of ATA_FLAG_LPM but neglected to remove the flag\nitself.  Do it now...\n\nSigned-off-by: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "9cbe056f6c467e7395d5aec39aceec47812eb98e",
      "tree": "3ca13e73718fc14fc39f3d875dc3a1f724a255c4",
      "parents": [
        "3696df309971b3427cb9cb039138a1732a865a0b"
      ],
      "author": {
        "name": "Sergei Shtylyov",
        "email": "sshtylyov@ru.mvista.com",
        "time": "Fri Feb 04 22:05:48 2011 +0300"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Wed Mar 02 02:36:46 2011 -0500"
      },
      "message": "libata: remove ATA_FLAG_NO_LEGACY\n\nAll checks of ATA_FLAG_NO_LEGACY have been removed by the commits\nc791c30670ea61f19eec390124128bf278e854fe ([libata] minor PCI IDE probe\nfixes and cleanups) and f0d36efdc624beb3d9e29b9ab9e9537bf0f25d5b (libata:\nupdate libata core layer to use devres), so I think it\u0027s time to finally\nget rid of this flag...\n\nSigned-off-by: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "3696df309971b3427cb9cb039138a1732a865a0b",
      "tree": "334c7506273d2facf14abbdf42ed93e3da8cf615",
      "parents": [
        "c10f97b9d8df818e51e6073be1b96454630595c1"
      ],
      "author": {
        "name": "Sergei Shtylyov",
        "email": "sshtylyov@ru.mvista.com",
        "time": "Fri Feb 04 22:04:17 2011 +0300"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Wed Mar 02 02:36:46 2011 -0500"
      },
      "message": "libata: remove ATA_FLAG_MMIO\n\nCommit 0d5ff566779f894ca9937231a181eb31e4adff0e (libata: convert to iomap)\nremoved all checks of ATA_FLAG_MMIO but neglected to remove the flag itself.\nDo it now, at last...\n\nSigned-off-by: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "c10f97b9d8df818e51e6073be1b96454630595c1",
      "tree": "2837ef82cff20a04cb126a3eb06a01db8dcd76f7",
      "parents": [
        "0f2e0330a85d351b0300583da1e335690c86bdd7"
      ],
      "author": {
        "name": "Sergei Shtylyov",
        "email": "sshtylyov@ru.mvista.com",
        "time": "Fri Feb 04 22:03:34 2011 +0300"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Wed Mar 02 02:36:46 2011 -0500"
      },
      "message": "libata: remove ATA_FLAG_{SRST|SATA_RESET}\n\nThese flags are marked as obsolete and the checks for them have been removed\nby commit 294440887b32c58d220fb54b73b7a58079b78f20 (libata-sff: kill unused\nata_bus_reset()), so I think it\u0027s time to finally get rid of them...\n\nSigned-off-by: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "0e0b494ca8c54a7297d0cc549405091019b3b77e",
      "tree": "7d675c0ccae0763402585e91c38f1aa42818031c",
      "parents": [
        "c34aeebc06e8bdde93e8c8f40d9903b1aaab63c6"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Sun Jan 23 09:42:50 2011 -0600"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Wed Mar 02 02:36:45 2011 -0500"
      },
      "message": "libata: separate error handler into usable components\n\nRight at the moment, the libata error handler is incredibly\nmonolithic.  This makes it impossible to use from composite drivers\nlike libsas and ipr which have to handle error themselves in the first\ninstance.\n\nThe essence of the change is to split the monolithic error handler\ninto two components: one which handles a queue of ata commands for\nprocessing and the other which handles the back end of readying a\nport.  This allows the upper error handler fine grained control in\ncalling libsas functions (and making sure they only get called for ATA\ncommands whose lower errors have been fixed up).\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "b27dcfb0670ea7352a67137f4ff7947c2a9f6892",
      "tree": "cd48976174179304780651fa4e75bd5d1ffd1522",
      "parents": [
        "02cdfcf043c5c6ebcbbaba1c35130b5fbcb10867"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Nov 17 22:56:48 2010 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Wed Jan 05 19:43:22 2011 -0500"
      },
      "message": "[libata] avoid needlessly passing around ptr to SCSI completion func\n\nIt\u0027s stored in struct scsi_cmnd-\u003escsi_done, making several \u0027done\u0027\nparameters to functions redundant.\n\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "f281233d3eba15fb225d21ae2e228fd4553d824a",
      "tree": "51134454ba8acb558735f90be5540f7d756483e3",
      "parents": [
        "bdbd01ac444bffb3c9aefed3059d12554059b320"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Nov 16 02:10:29 2010 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 16 13:33:23 2010 -0800"
      },
      "message": "SCSI host lock push-down\n\nMove the mid-layer\u0027s -\u003equeuecommand() invocation from being locked\nwith the host lock to being unlocked to facilitate speeding up the\ncritical path for drivers who don\u0027t need this lock taken anyway.\n\nThe patch below presents a simple SCSI host lock push-down as an\nequivalent transformation.  No locking or other behavior should change\nwith this patch.  All existing bugs and locking orders are preserved.\n\nAdditionally, add one parameter to queuecommand,\n\tstruct Scsi_Host *\nand remove one parameter from queuecommand,\n\tvoid (*done)(struct scsi_cmnd *)\n\nScsi_Host* is a convenient pointer that most host drivers need anyway,\nand \u0027done\u0027 is redundant to struct scsi_cmnd-\u003escsi_done.\n\nMinimal code disturbance was attempted with this change.  Most drivers\nneeded only two one-line modifications for their host lock push-down.\n\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\nAcked-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "89692c03226a066a017048cf7fbacbaa645f0e79",
      "tree": "de43d86e117524d39caa761b7dc54cdf278ee073",
      "parents": [
        "c0695733d56ea12ad62ee534c2eed91f917548ae"
      ],
      "author": {
        "name": "Andrea Gelmini",
        "email": "andrea.gelmini@gelma.net",
        "time": "Sat Oct 16 15:19:18 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Oct 21 21:18:54 2010 -0400"
      },
      "message": "include/linux/libata.h: fix typo\n\nSigned-off-by: Andrea Gelmini \u003candrea.gelmini@gelma.net\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "b34e90429ce8a23546b6b927d4e151df4c113644",
      "tree": "2034e09265b646d9e74bbb1165fc221b3f39cfcd",
      "parents": [
        "02e0a60477d839b8f8f974790192f5230f2371d2"
      ],
      "author": {
        "name": "Richard Kennedy",
        "email": "richard@rsk.demon.co.uk",
        "time": "Fri Sep 10 12:19:43 2010 +0100"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Oct 21 20:21:05 2010 -0400"
      },
      "message": "libata: reorder ata_queued_cmd to remove alignment padding on 64 bit builds\n\nReorder structure ata_queued_cmd to remove 8 bytes of alignment padding\non 64 bit builds \u0026 therefore reduce the size of structure ata_port by\n256 bytes.\n\nOverall this will have little impact, other than reducing the amount of\nmemory that is cleared when allocating ata_ports.\n\nSigned-off-by: Richard Kennedy \u003crichard@rsk.demon.co.uk\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "c0c362b60e259e3480a36ef70280d545818844f0",
      "tree": "d9871b719cd76f9f683278f938662e080a6ad9d7",
      "parents": [
        "97750cebb3000a9cc08f8ce8dc8c7143be7d7201"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Sep 06 17:57:14 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Oct 21 20:21:05 2010 -0400"
      },
      "message": "libata: implement cross-port EH exclusion\n\nIn libata, the non-EH code paths should always take and release\nap-\u003elock explicitly when accessing hardware or shared data structures.\nHowever, once EH is active, it\u0027s assumed that the port is owned by EH\nand EH methods don\u0027t explicitly take ap-\u003elock unless race from irq\nhandler or other code paths are expected.  However, libata EH didn\u0027t\nguarantee exclusion among EHs for ports of the same host.  IOW,\nmultiple EHs may execute in parallel on multiple ports of the same\ncontroller.\n\nIn many cases, especially in SATA, the ports are completely\nindependent of each other and this doesn\u0027t cause problems; however,\nthere are cases where different ports share the same resource, which\nlead to obscure timing related bugs such as the one fixed by commit\n213373cf (ata_piix: fix locking around SIDPR access).\n\nThis patch implements exclusion among EHs of the same host.  When EH\nbegins, it acquires per-host EH ownership by calling ata_eh_acquire().\nWhen EH finishes, the ownership is released by calling\nata_eh_release().  EH ownership is also released whenever the EH\nthread goes to sleep from ata_msleep() or explicitly and reacquired\nafter waking up.\n\nThis ensures that while EH is actively accessing the hardware, it has\nexclusive access to it while allowing EHs to interleave and progress\nin parallel as they hit waiting stages, which dominate the time spent\nin EH.  This achieves cross-port EH exclusion without pervasive and\nfragile changes while still allowing parallel EH for the most part.\n\nThis was first reported by yuanding02@gmail.com more than three years\nago in the following bugzilla.  :-)\n\n  https://bugzilla.kernel.org/show_bug.cgi?id\u003d8223\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nReported-by: yuanding02@gmail.com\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "97750cebb3000a9cc08f8ce8dc8c7143be7d7201",
      "tree": "04220b8a8ed3f353e3e0023805b32e7d746dc6f3",
      "parents": [
        "a97c40068fab5d85c4241451fc312cb9025d7e6c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Sep 06 17:56:29 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Oct 21 20:21:05 2010 -0400"
      },
      "message": "libata: add @ap to ata_wait_register() and introduce ata_msleep()\n\nAdd optional @ap argument to ata_wait_register() and replace msleep()\ncalls with ata_msleep() which take optional @ap in addition to the\nduration.  These will be used to implement EH exclusion.\n\nThis patch doesn\u0027t cause any behavior difference.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "6b7ae9545ad9875a289f4191c0216b473e313cb9",
      "tree": "216b4db276202d727ba134d256144a6670497180",
      "parents": [
        "1152b2617a6e1943b6b82e07c962950e56f1000c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Sep 01 17:50:06 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Oct 21 20:21:04 2010 -0400"
      },
      "message": "libata: reimplement link power management\n\nThe current LPM implementation has the following issues.\n\n* Operation order isn\u0027t well thought-out.  e.g. HIPM should be\n  configured after IPM in SControl is properly configured.  Not the\n  other way around.\n\n* Suspend/resume paths call ata_lpm_enable/disable() which must only\n  be called from EH context directly.  Also, ata_lpm_enable/disable()\n  were called whether LPM was in use or not.\n\n* Implementation is per-port when it should be per-link.  As a result,\n  it can\u0027t be used for controllers with slave links or PMP.\n\n* LPM state isn\u0027t managed consistently.  After a link reset for\n  whatever reason including suspend/resume the actual LPM state would\n  be reset leaving ap-\u003elpm_policy inconsistent.\n\n* Generic/driver-specific logic boundary isn\u0027t clear.  Currently,\n  libahci has to mangle stuff which libata EH proper should be\n  handling.  This makes the implementation unnecessarily complex and\n  fragile.\n\n* Tied to ALPM.  Doesn\u0027t consider DIPM only cases and doesn\u0027t check\n  whether the device allows HIPM.\n\n* Error handling isn\u0027t implemented.\n\nGiven the extent of mismatch with the rest of libata, I don\u0027t think\ntrying to fix it piecewise makes much sense.  This patch reimplements\nLPM support.\n\n* The new implementation is per-link.  The target policy is still\n  port-wide (ap-\u003etarget_lpm_policy) but all the mechanisms and states\n  are per-link and integrate well with the rest of link abstraction\n  and can work with slave and PMP links.\n\n* Core EH has proper control of LPM state.  LPM state is reconfigured\n  when and only when reconfiguration is necessary.  It makes sure that\n  LPM state is reset when probing for new device on the link.\n  Controller agnostic logic is now implemented in libata EH proper and\n  driver implementation only has to deal with controller specifics.\n\n* Proper error handling.  LPM config failure is attributed to the\n  device on the link and LPM is disabled for the link if it fails\n  repeatedly.\n\n* ops-\u003eenable/disable_pm() are replaced with single ops-\u003eset_lpm()\n  which takes @policy and @hints.  This simplifies driver specific\n  implementation.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "1152b2617a6e1943b6b82e07c962950e56f1000c",
      "tree": "820b7ca42901b42b1ac5688dcba1f55a5930e176",
      "parents": [
        "c93b263e0d4fa8ce5fec0142a98196d1a127e845"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Sep 01 17:50:05 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Oct 21 20:21:04 2010 -0400"
      },
      "message": "libata: implement sata_link_scr_lpm() and make ata_dev_set_feature() global\n\nLink power management is about to be reimplemented.  Prepare for it.\n\n* Implement sata_link_scr_lpm().\n\n* Drop static from ata_dev_set_feature() and make it available to\n  other libata files.\n\n* Trivial whitespace adjustments.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "c93b263e0d4fa8ce5fec0142a98196d1a127e845",
      "tree": "6495053b65f7a79d1e5c11aaea77dd25e4082a84",
      "parents": [
        "c43d559f0423816bb2918d892131d21c51816c3d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Sep 01 17:50:04 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Oct 21 20:21:04 2010 -0400"
      },
      "message": "libata: clean up lpm related symbols and sysfs show/store functions\n\nLink power management related symbols are in confusing state w/ mixed\nusages of lpm, ipm and pm.  This patch cleans up lpm related symbols\nand sysfs show/store functions as follows.\n\n* lpm states - NOT_AVAILABLE, MIN_POWER, MAX_PERFORMANCE and\n  MEDIUM_POWER are renamed to ATA_LPM_UNKNOWN and\n  ATA_LPM_{MIN|MAX|MED}_POWER.\n\n* Pre/postfixes are unified to lpm.\n\n* sysfs show/store functions for link_power_management_policy were\n  curiously named get/put and unnecessarily complex.  Renamed to\n  show/store and simplified.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "d9027470b88631d0956ac37cdadfdeb9cdcf2c99",
      "tree": "b15273e88431ba734a24965dfc81132ac13bc8bd",
      "parents": [
        "f6f94e2ab1b33f0082ac22d71f66385a60d8157f"
      ],
      "author": {
        "name": "Gwendal Grignou",
        "email": "gwendal@google.com",
        "time": "Tue May 25 12:31:38 2010 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Oct 21 20:21:03 2010 -0400"
      },
      "message": "[libata] Add ATA transport class\n\nThis is a scheleton for libata transport class.\nAll information is read only, exporting information from libata:\n- ata_port class: one per ATA port\n- ata_link class: one per ATA port or 15 for SATA Port Multiplier\n- ata_device class: up to 2 for PATA link, usually one for SATA.\n\nSigned-off-by: Gwendal Grignou \u003cgwendal@google.com\u003e\nReviewed-by: Grant Grundler \u003cgrundler@google.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "ea3c64506ea7965f86f030155e6fdef381de10e2",
      "tree": "e98d1fbe34fd0c1c81d0fb08b3314f6f059eb494",
      "parents": [
        "e2f3d75fc0e4a0d03c61872bad39ffa2e74a04ff"
      ],
      "author": {
        "name": "Gwendal Grignou",
        "email": "gwendal@google.com",
        "time": "Tue Aug 31 16:20:36 2010 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Sep 09 22:31:55 2010 -0400"
      },
      "message": "libata-sff: Reenable Port Multiplier after libata-sff remodeling.\n\nKeep track of the link on the which the current request is in progress.\nIt allows support of links behind port multiplier.\n\nNot all libata-sff is PMP compliant. Code for native BMDMA controller\ndoes not take in accound PMP.\n\nTested on Marvell 7042 and Sil7526.\n\nSigned-off-by: Gwendal Grignou \u003cgwendal@google.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "e2f3d75fc0e4a0d03c61872bad39ffa2e74a04ff",
      "tree": "b98d70dadfe9143453494bd145a53c06910df4f7",
      "parents": [
        "992b3fb9b5391bc4de5b42bb810dc6dd583a6c4a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Sep 07 14:05:31 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Sep 09 22:27:59 2010 -0400"
      },
      "message": "libata: skip EH autopsy and recovery during suspend\n\nFor some mysterious reason, certain hardware reacts badly to usual EH\nactions while the system is going for suspend.  As the devices won\u0027t\nbe needed until the system is resumed, ask EH to skip usual autopsy\nand recovery and proceed directly to suspend.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nTested-by: Stephan Diestelhorst \u003cstephan.diestelhorst@amd.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "ad72cf9885c536e3adae03f8337557ac9dd1e4bb",
      "tree": "e93af7f241987ffe365792c0130d182b0ac890d1",
      "parents": [
        "d313dd85ad846bc768d58e9ceb28588f917f4c9a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Jul 02 10:03:52 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Jul 02 10:59:24 2010 +0200"
      },
      "message": "libata: take advantage of cmwq and remove concurrency limitations\n\nlibata has two concurrency related limitations.\n\na. ata_wq which is used for polling PIO has single thread per CPU.  If\n   there are multiple devices doing polling PIO on the same CPU, they\n   can\u0027t be executed simultaneously.\n\nb. ata_aux_wq which is used for SCSI probing has single thread.  In\n   cases where SCSI probing is stalled for extended period of time\n   which is possible for ATAPI devices, this will stall all probing.\n\n#a is solved by increasing maximum concurrency of ata_wq.  Please note\nthat polling PIO might be used under allocation path and thus needs to\nbe served by a separate wq with a rescuer.\n\n#b is solved by using the default wq instead and achieving exclusion\nvia per-port mutex.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Jeff Garzik \u003cjgarzik@pobox.com\u003e\n"
    },
    {
      "commit": "d8d9129ea28e2177749627c82962feb26e8d11e9",
      "tree": "f930703c8e3ba66cadcaf712ee7ce9b36a6d0823",
      "parents": [
        "68939ce5fc17ee9c03ef6e543d4f82bd9f5583d4"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat May 15 20:09:34 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Wed Jun 02 13:50:10 2010 -0400"
      },
      "message": "libata: implement on-demand HPA unlocking\n\nImplement ata_scsi_unlock_native_capacity() which will be called\nthrough SCSI layer when block layer notices that partitions on a\ndevice extend beyond the end of the device.  It requests EH to unlock\nHPA, waits for completion and returns the current device capacity.\n\nThis allows libata to unlock HPA on demand instead of having to decide\nwhether to unlock upfront.  Unlocking on demand is safer than\nunlocking by upfront because some BIOSes write private data to the\narea beyond HPA limit.  This was suggested by Ben Hutchings.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSuggested-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "43c9c59185eec7caaff6e9dd8d4c93a4d9836a86",
      "tree": "6c627f018b6d83c448d059d61fff0fafd8c55b86",
      "parents": [
        "e7ecd435692ca9bde9d124be30b3a26e672ea6c2"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun May 23 12:59:11 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Tue May 25 19:41:19 2010 -0400"
      },
      "message": "libata: implement dump_id force param\n\nAdd dump_id libata.force parameter.  If specified, libata dumps full\nIDENTIFY data during device configuration.  This is to aid debugging.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Larry Baker \u003cbaker@usgs.gov\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "9a7780c9acb821fe1c2b6fc53f74cc2556ff5364",
      "tree": "9590f79a1a0631120322ecfa8a86f610859d7aec",
      "parents": [
        "d6b0de8c28ef32d081cfee938e443ce2a2429cfe"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed May 19 22:10:24 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Tue May 25 19:41:12 2010 -0400"
      },
      "message": "libata-sff: make BMDMA optional\n\nMake BMDMA optional depending on new config variable CONFIG_ATA_BMDMA.\nIn Kconfig, drivers are grouped into five groups - non-SFF native, SFF\nw/ custom DMA interface, SFF w/ BMDMA, PIO-only SFF, and generic\nfallback / legacy ones.  Kconfig and Makefile are reorganized\naccording to the groups and ordered alphabetically inside each group.\n\nata_ioports.bmdma_addr and ata_port.bmdma_prd[_dma] are put into\nCONFIG_ATA_BMDMA, as are all bmdma related ops, variables and\nfunctions.\n\nThis increase the binary size slightly when BMDMA is enabled but on\nboth native-only and PIO-only configurations the size is slightly\nreduced.  Either way, the size difference is insignificant.  This\nchange is more meaningful to signify the separation between SFF and\nBMDMA and as a tool to verify the separation.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "1c5afdf7a629d2e77de8dd043b97a33dcd7e6dfa",
      "tree": "9f29bfdd32dd1bf497167cd7a8f596c7680059dd",
      "parents": [
        "c3b2889424c26f3b42962b6f39aabb4f1fd1b576"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed May 19 22:10:22 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Tue May 25 19:40:30 2010 -0400"
      },
      "message": "libata-sff: separate out BMDMA init\n\nSeparate out ata_pci_bmdma_prepare_host() and ata_pci_bmdma_init_one()\nfrom their SFF counterparts.  SFF ones no longer try to initialize\nBMDMA or set PCI master.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "c3b2889424c26f3b42962b6f39aabb4f1fd1b576",
      "tree": "c131d260c18815cb84331357db75c17dabf083d8",
      "parents": [
        "37f65b8bc262a5ae4c8e58be92fe3032f0aaaf04"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed May 19 22:10:21 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Tue May 25 19:40:24 2010 -0400"
      },
      "message": "libata-sff: separate out BMDMA irq handler\n\nSeparate out BMDMA irq handler from SFF irq handler.  The misnamed\nhost_intr() functions are renamed to ata_sff_port_intr() and\nata_bmdma_port_intr().  Common parts are factored into\n__ata_sff_port_intr() and __ata_sff_interrupt() and used by sff and\nbmdma interrupt routines.\n\nAll BMDMA drivers now use ata_bmdma_interrupt() or\nata_bmdma_port_intr() while all non-BMDMA SFF ones use\nata_sff_interrupt() or ata_sff_port_intr().\n\nFor now, ata_pci_sff_init_one() uses ata_bmdma_interrupt() as it\u0027s\nused by both SFF and BMDMA drivers.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "37f65b8bc262a5ae4c8e58be92fe3032f0aaaf04",
      "tree": "0a7507b26bdc61024d01b538ad7d3d25bc4f7811",
      "parents": [
        "2f20ccf8190b064468cb2c7ba92e757ae37e61b1"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed May 19 22:10:20 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Tue May 25 19:40:19 2010 -0400"
      },
      "message": "libata-sff: ata_sff_irq_clear() is BMDMA specific\n\nata_sff_irq_clear() is BMDMA specific.  Rename it to\nata_bmdma_irq_clear(), move it to ata_bmdma_port_ops and make\n-\u003esff_irq_clear() optional.\n\nNote: ata_bmdma_irq_clear() is actually only needed by ata_piix and\n      possibly by sata_sil.  This should be moved to respective low\n      level drivers later.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "360ff7833098e944e5003618b03894251e937802",
      "tree": "aaa8c8f771cf35b2a0dab58ea6bad35d88f4ac8a",
      "parents": [
        "f60d70113fa04e32aee2dedbf304a48469c9c45c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon May 10 21:41:42 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Wed May 19 13:38:55 2010 -0400"
      },
      "message": "libata-sff: separate out BMDMA qc_issue\n\nSeparate out ata_bmdma_qc_issue() from ata_sff_qc_issue() such that\nata_sff_qc_issue() only deals with non-BMDMA SFF protocols (PIO and\nnodata) while ata_bmdma_qc_issue() deals with the BMDMA protocols and\nuses ata_sff_qc_issue() for non-DMA commands.  All the users are\nupdated accordingly.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "f60d70113fa04e32aee2dedbf304a48469c9c45c",
      "tree": "6e74f483773dfae0adda0faa8754b5ce6129d8f7",
      "parents": [
        "f47451c45fe0032ef491aaf3e0623fa0154e156d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon May 10 21:41:41 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Wed May 19 13:38:54 2010 -0400"
      },
      "message": "libata-sff: prd is BMDMA specific\n\nstruct ata_prd and ap-\u003eprd are BMDMA specific.  Add bmdma_ prefix to\nthem and move them inside CONFIG_ATA_SFF.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "f47451c45fe0032ef491aaf3e0623fa0154e156d",
      "tree": "3e2901991480836be75f75288c2220ef086fe694",
      "parents": [
        "fe06e5f9b7c61dc567edace3f4909672067f7d7e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon May 10 21:41:40 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Wed May 19 13:36:50 2010 -0400"
      },
      "message": "libata-sff: ata_sff_[dumb_]qc_prep are BMDMA specific\n\nBoth qc_prep functions deal only with BMDMA PRD setup and PIO only SFF\ndrivers don\u0027t need them.  Rename to ata_bmdma_[dumb_]qc_prep() and\nrelocate.\n\nAll usages are renamed except for pdc_adma and sata_qstor.  Those two\ndrivers are not BMDMA drivers and don\u0027t need to call BMDMA qc_prep\nfunctions.  Calls to ata_sff_qc_prep() in the two drivers are removed.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "fe06e5f9b7c61dc567edace3f4909672067f7d7e",
      "tree": "b2242169e8e3b32c63925ed9901fff9d49c26192",
      "parents": [
        "c429137a67b82788d24682153bb9c96501a9ef34"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon May 10 21:41:39 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Wed May 19 13:36:46 2010 -0400"
      },
      "message": "libata-sff: separate out BMDMA EH\n\nSome of error handling logic in ata_sff_error_handler() and all of\nata_sff_post_internal_cmd() are for BMDMA.  Create\nata_bmdma_error_handler() and ata_bmdma_post_internal_cmd() and move\nBMDMA part into those.\n\nWhile at it, change DMA protocol check to ata_is_dma(), fix\npost_internal_cmd to call ap-\u003eops-\u003ebmdma_stop instead of directly\ncalling ata_bmdma_stop() and open code hardreset selection so that\nata_std_error_handler() doesn\u0027t have to know about sff hardreset.\n\nAs these two functions are BMDMA specific, there\u0027s no reason to check\nfor bmdma_addr before calling bmdma methods if the protocol of the\nfailed command is DMA.  sata_mv and pata_mpc52xx now don\u0027t need to set\n.post_internal_cmd to ATA_OP_NULL and pata_icside and sata_qstor don\u0027t\nneed to set it to their bmdma_stop routines.\n\nata_sff_post_internal_cmd() becomes noop and is removed.\n\nThis fixes p3 described in clean-up-BMDMA-initialization patch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "c429137a67b82788d24682153bb9c96501a9ef34",
      "tree": "b24ed75908f08cc9cddb19efc74fcb46be75de8f",
      "parents": [
        "5fe7454aa9c6ef5fcf506b0f2dfc20f696891f1a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon May 10 21:41:38 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Wed May 19 13:35:49 2010 -0400"
      },
      "message": "libata-sff: port_task is SFF specific\n\nport_task is tightly bound to the standard SFF PIO HSM implementation.\nUsing it for any other purpose would be error-prone and there\u0027s no\nsuch user and if some drivers need such feature, it would be much\nbetter off using its own.  Move it inside CONFIG_ATA_SFF and rename it\nto sff_pio_task.\n\nThe only function which is exposed to the core layer is\nata_sff_flush_pio_task() which is renamed from ata_port_flush_task()\nand now also takes care of resetting hsm_task_state to HSM_ST_IDLE,\nwhich is possible as it\u0027s now specific to PIO HSM.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "5fe7454aa9c6ef5fcf506b0f2dfc20f696891f1a",
      "tree": "94e01d83671ed916dd6c931333722702bf46c7ef",
      "parents": [
        "8244cd05979ef924787aa70fd80304f1773976a1"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon May 10 21:41:37 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Wed May 19 13:35:47 2010 -0400"
      },
      "message": "libata-sff: ap-\u003e[last_]ctl are SFF specific\n\nap-\u003e[last_]ctl are specific to SFF controllers.  Put them inside\nCONFIG_ATA_SFF and move initialization into ata_sff_port_init().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "8244cd05979ef924787aa70fd80304f1773976a1",
      "tree": "1e6f2434807eb3adbc097b3f4d7a4240237bc105",
      "parents": [
        "270390e1ae1818b111543b8bfffa08095d73c1a5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon May 10 21:41:36 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Wed May 19 13:35:44 2010 -0400"
      },
      "message": "libata-sff: rename ap-\u003eops-\u003edrain_fifo() to sff_drain_fifo()\n\n-\u003edrain_fifo() is SFF specific.  Rename and relocate it.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "c7087652e1890a3feef35b30ee1d4be68e1932cd",
      "tree": "04aeca0f44e87a531d7cb5f894b6790391c2c552",
      "parents": [
        "8930ff254a3a80d4477c3391ade07d6dd2a036c7"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon May 10 21:41:34 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Wed May 19 13:32:19 2010 -0400"
      },
      "message": "libata-sff: clean up BMDMA initialization\n\nWhen BMDMA initialization failed or BMDMA was not available for\nwhatever reason, bmdma_addr was left at zero and used as an indication\nthat BMDMA shouldn\u0027t be used.  This leads to the following problems.\n\np1. For BMDMA drivers which don\u0027t use traditional BMDMA register,\n    ata_bmdma_mode_filter() incorrectly inhibits DMA modes.  Those\n    drivers either have to inherit from ata_sff_port_ops or clear\n    -\u003emode_filter explicitly.\n\np2. non-BMDMA drivers call into BMDMA PRD table allocation.  It\n    doesn\u0027t actually allocate PRD table if bmdma_addr is not\n    initialized but is still confusing.\n\np3. For BMDMA drivers which don\u0027t use traditional BMDMA register, some\n    methods might not be invoked as expected (e.g. bmdma_stop from\n    ata_sff_post_internal_cmd()).\n\np4. SFF drivers w/ custom DMA interface implement noop BMDMA ops\n    worrying libata core might call into one of them.\n\nThese problems are caused by the muddy line between SFF and BMDMA and\nthe assumption that all BMDMA controllers initialize bmdma_addr.\n\nThis patch fixes p1 and p2 by removing the bmdma_addr assumption and\nmoving prd allocation to BMDMA port start.  Later patches will fix the\nremaining issues.\n\nThis patch improves BMDMA initialization such that\n\n* When BMDMA register initialization fails, falls back to PIO instead\n  of failing.  ata_pci_bmdma_init() never fails now.\n\n* When ata_pci_bmdma_init() falls back to PIO, it clears\n  ap-\u003emwdma_mask and udma_mask instead of depending on\n  ata_bmdma_mode_filter().  This makes ata_bmdma_mode_filter()\n  unnecessary thus resolving p1.\n\n* ata_port_start() which actually is BMDMA specific is moved to\n  ata_bmdma_port_start().  ata_port_start() and ata_sff_port_start()\n  are killed.\n\n* ata_sff_port_start32() is moved and renamed to\n  ata_bmdma_port_start32().\n\nDrivers which no longer call into PRD table allocation are...\n\n  pdc_adma, sata_inic162x, sata_qstor, sata_sx4, pata_cmd640 and all\n  drivers which inherit from ata_sff_port_ops.\n\npata_icside sets -\u003eport_start to ATA_OP_NULL as it doesn\u0027t need PRD\nbut is a BMDMA controller and doesn\u0027t have custom port_start like\nother such controllers.\n\nNote that with the previous patch which makes all and only BMDMA\ndrivers inherit from ata_bmdma_port_ops, this change doesn\u0027t break\ndrivers which need PRD table.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "9f2f72107ff621fdf3066e5a1b5ecb03ee587ebc",
      "tree": "266c1371cb706c941ebaebd097380beccd530041",
      "parents": [
        "6bc0d390dd3dfb7be4325ad0685ae8ec2baf15a4"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon May 10 21:41:32 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Mon May 17 22:49:07 2010 -0400"
      },
      "message": "libata-sff: reorder SFF/BMDMA functions\n\nReorder functions such that SFF and BMDMA functions are grouped.\nWhile at it, s/BMDMA/SFF in a few comments where it actually meant\nSFF.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "3e4ec3443f70fbe144799ccf0b1c3797f78d1715",
      "tree": "cfb297e42075baacbbabfb6034e3e7c9a44c73b2",
      "parents": [
        "c7a8209f766961eea4cfc6f22d2d6e06ef63546c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon May 10 21:41:30 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Mon May 17 22:49:02 2010 -0400"
      },
      "message": "libata: kill ATA_FLAG_DISABLED\n\nATA_FLAG_DISABLED is only used by drivers which don\u0027t use\n-\u003eerror_handler framework and is largely broken.  Its only meaningful\nfunction is to make irq handlers skip processing if the flag is set,\nwhich is largely useless and even harmful as it makes those ports more\nlikely to cause IRQ storms.\n\nKill ATA_FLAG_DISABLED and makes the callers disable attached devices\ninstead.  ata_port_probe() and ata_port_disable() which manipulate the\nflag are also killed.\n\nThis simplifies condition check in IRQ handlers.  While updating IRQ\nhandlers, remove ap NULL check as libata guarantees consecutive port\nallocation (unoccupied ports are initialized with dummies) and\nlong-obsolete ATA_QCFLAG_ACTIVE check (checked by ata_qc_from_tag()).\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "e42a542ba9cca594897176020445023c54d903d6",
      "tree": "b2a136581d6fcea9a2a6c534888319b70e15c2af",
      "parents": [
        "41dec29bcb05eb8ec396f70ce791c6e3e4ce4712"
      ],
      "author": {
        "name": "Sergei Shtylyov",
        "email": "sshtylyov@ru.mvista.com",
        "time": "Fri May 07 22:49:02 2010 +0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri May 14 17:35:52 2010 -0400"
      },
      "message": "libata: make sff_irq_on() method optional\n\nNow, with the introduction of the sff_set_devctl() method, we can\nuse it in sff_irq_on() method too -- that way its implementations\nin \u0027pata_bf54x\u0027 and \u0027pata_scc\u0027 become virtually identical to\nata_sff_irq_on().  The sff_irq_on() method now becomes quite\nsuperfluous, and the only reason not to remove it completely is\nthe existence of the \u0027pata_octeon_cf\u0027 driver which implements it\nas an empty function. Just make the method optional then, with\nata_sff_irq_on() becoming generic taskfile-bound function, still\nglobal for the \u0027pata_bf54x\u0027 driver to be able to call it from its\nthaw() and postreset() methods.\n\nWhile at it, make the sff_irq_on() method and ata_sff_irq_on() return\n\u0027void\u0027 as the result is always ignored anyway.\n\nSigned-off-by: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "41dec29bcb05eb8ec396f70ce791c6e3e4ce4712",
      "tree": "e76f63519031769e848dcc6eba63c9207cf4d84e",
      "parents": [
        "55787183ade44c4f826f581a068f52a1a80c6a2e"
      ],
      "author": {
        "name": "Sergei Shtylyov",
        "email": "sshtylyov@ru.mvista.com",
        "time": "Fri May 07 22:47:50 2010 +0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri May 14 17:35:52 2010 -0400"
      },
      "message": "libata: introduce sff_set_devctl() method\n\nThe set of libata\u0027s taskfile access methods is clearly incomplete as\nit lacks a method to write to the device control register -- which\nforces drivers like \u0027pata_bf54x\u0027 and \u0027pata_scc\u0027 to implement more\n\"high level\" (and more weighty) methods like freeze() and postreset().\n\nSo, introduce the optional sff_set_devctl() method which the drivers\nonly have to implement if the standard iowrite8() can\u0027t be used (just\nlike the existing sff_check_altstatus() method) and make use of it\nin the freeze() and postreset() method implementations (I could also\nhave used it in softreset() method but it also reads other taskfile\nregisters without using tf_read() making that quite pointless);\nthis makes freeze() method implementations in the \u0027pata_bf54x\u0027 and\n\u0027pata_scc\u0027 methods virtually identical to ata_sff_freeze(), so we\ncan get rid of them completely.\n\nSigned-off-by: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "b48d58f55aa1d2d0d12378e45663842d4021916e",
      "tree": "6fe1afb742eef755f4d09022548b6d2d2f8e919e",
      "parents": [
        "294440887b32c58d220fb54b73b7a58079b78f20"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Apr 09 19:46:38 2010 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri May 14 17:08:02 2010 -0400"
      },
      "message": "libata: use longer 0xff wait if parallel scan is enabled\n\nThere are some SATA devices which take relatively long to get out of\n0xff status after reset.  In libata, this timeout is determined by\nATA_TMOUT_FF_WAIT.  Quantum GoVault is the worst requring about 2s for\nreliable detection.  However, because 2s 0xff timeout can introduce\nrather long spurious delay during boot, libata has been compromising\nat the next longest timeout of 800ms for HHD424020F7SV00 iVDR drive.\n\nNow that parallel scan is in place for common drivers, libata can\nafford 2s 0xff timeout.  Use 2s 0xff timeout if parallel scan is\nenabled.\n\nPlease note that the chance of spurious wait is pretty slim w/ working\nSCR access so this will only affect SATA controllers w/o SCR access\nwhich isn\u0027t too common these days.\n\nPlease read the following thread for more information on the GoVault\ndrive.\n\n  http://thread.gmane.org/gmane.linux.ide/14545/focus\u003d14663\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Gary Hade \u003cgaryhade@us.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "294440887b32c58d220fb54b73b7a58079b78f20",
      "tree": "83ad03746ca4e7e34fb74cdb2e42b075e085d4da",
      "parents": [
        "4f2c774856708bccecb74c0e6296e9e2c9136ee1"
      ],
      "author": {
        "name": "Sergei Shtylyov",
        "email": "sshtylyov@ru.mvista.com",
        "time": "Thu Apr 22 20:03:35 2010 +0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri May 14 17:08:02 2010 -0400"
      },
      "message": "libata-sff: kill unused ata_bus_reset()\n\n... since I see no callers of it.\n\nSigned-off-by: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "445d211b0da4e9a6e6d576edff85085c2aaf53df",
      "tree": "039ade5b49cb0bbd388babc369f28f541c76ec96",
      "parents": [
        "68b0ddb289220b6d4d865be128939663be34959d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Apr 05 10:33:13 2010 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Tue Apr 06 10:55:33 2010 -0400"
      },
      "message": "libata: unlock HPA if device shrunk\n\nSome BIOSes don\u0027t configure HPA during boot but do so while resuming.\nThis causes harddrives to shrink during resume making libata detach\nand reattach them.  This can be worked around by unlocking HPA if old\nsize equals native size.\n\nAdd ATA_DFLAG_UNLOCK_HPA so that HPA unlocking can be controlled\nper-device and update ata_dev_revalidate() such that it sets\nATA_DFLAG_UNLOCK_HPA and fails with -EIO when the above condition is\ndetected.\n\nThis patch fixes the following bug.\n\n  https://bugzilla.kernel.org/show_bug.cgi?id\u003d15396\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Oleksandr Yermolenko \u003cyaa.bta@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "16ea0fc98d53c72cb4e1a9edcb685a87e3a81430",
      "tree": "1a799ce01f8ea2b3a425631e791b946cb94285b1",
      "parents": [
        "cb6643e1c38b6bd5c1594f0a45d8cf6943a6f934"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@linux.intel.com",
        "time": "Tue Feb 23 02:26:06 2010 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Mon Mar 01 14:58:46 2010 -0500"
      },
      "message": "libata: Pass host flags into the pci helper\n\nThis allows parallel scan and the like to be set without having to stop\nusing the existing full helper functions. This patch merely adds the argument\nand fixes up the callers. It doesn\u0027t undo the special cases already in the\ntree or add any new parallel callers.\n\nSigned-off-by: Alan Cox \u003calan@linux.intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "27943620cbd960f710a385ff4a538e14ed3f1922",
      "tree": "fae161f49c10fa488f7a5891085961f284021544",
      "parents": [
        "d88ec2e5c13261cf317b46832a7de216f6d06537"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jan 19 10:49:19 2010 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Mon Mar 01 14:58:44 2010 -0500"
      },
      "message": "libata: implement spurious irq handling for SFF and apply it to piix\n\nTraditional IDE interface sucks in that it doesn\u0027t have a reliable IRQ\npending bit, so if the controller raises IRQ while the driver is\nexpecting it not to, the IRQ won\u0027t be cleared and eventually the IRQ\nline will be killed by interrupt subsystem.  Some controllers have\nnon-standard mechanism to indicate IRQ pending so that this condition\ncan be detected and worked around.\n\nThis patch adds an optional operation -\u003esff_irq_check() which will be\ncalled for each port from the ata_sff_interrupt() if an unexpected\ninterrupt is received.  If the operation returns %true,\n-\u003esff_check_status() and -\u003esff_irq_clear() will be cleared for the\nport.  Note that this doesn\u0027t mark the interrupt as handled so it\nwon\u0027t prevent IRQ subsystem from killing the IRQ if this mechanism\nfails to clear the spurious IRQ.\n\nThis patch also implements -\u003esff_irq_check() for ata_piix.  Note that\nthis adds slight overhead to shared IRQ operation as IRQs which are\ndestined for other controllers will trigger extra register accesses to\ncheck whether IDE interrupt is pending but this solves rare screaming\nIRQ cases and for some curious reason also helps weird BIOS related\nglitch on Samsung n130 as reported in bko#14314.\n\n  http://bugzilla.kernel.org/show_bug.cgi?id\u003d14314\n\n* piix_base_ops dropped as suggested by Sergei.\n\n* Spurious IRQ detection doesn\u0027t kick in anymore if polling qc is in\n  progress.  This provides less protection but some controllers have\n  possible data corruption issues if the wrong register is accessed\n  while a command is in progress.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Johannes Stezenbach \u003cjs@sig21.net\u003e\nReported-by: Hans Werner \u003chwerner4@gmx.de\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "5040ab67a2c6d5710ba497dc52a8f7035729d7b0",
      "tree": "dea2290e50111fde938bfcbb83de0377e7c4d94a",
      "parents": [
        "0b67c7439fe2a5d76602de36854c88e2beab00b0"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Jan 11 11:14:44 2010 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Tue Jan 12 14:34:14 2010 -0500"
      },
      "message": "libata: retry link resume if necessary\n\nInterestingly, when SIDPR is used in ata_piix, writes to DET in\nSControl sometimes get ignored leading to detection failure.  Update\nsata_link_resume() such that it reads back SControl after clearing DET\nand retry if it\u0027s not clear.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: fengxiangjun \u003cfengxiangjun@neusoft.com\u003e\nReported-by: Jim Faulkner \u003cjfaulkne@ccs.neu.edu\u003e\nCc: stable@kernel.org\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "382f51fe2f2276344d8a21447656778cdf6583b6",
      "tree": "c2836a2cca4126c9c026ce5aa2fdf9f1c8ccded6",
      "parents": [
        "701791cc3c8fc6dd83f6ec8af7e2541b4a316606",
        "54987386ee3790f3900de4df2ed4deb0e18dfc9f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:42:25 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:42:25 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (222 commits)\n  [SCSI] zfcp: Remove flag ZFCP_STATUS_FSFREQ_TMFUNCNOTSUPP\n  [SCSI] zfcp: Activate fc4s attributes for zfcp in FC transport class\n  [SCSI] zfcp: Block scsi_eh thread for rport state BLOCKED\n  [SCSI] zfcp: Update FSF error reporting\n  [SCSI] zfcp: Improve ELS ADISC handling\n  [SCSI] zfcp: Simplify handling of ct and els requests\n  [SCSI] zfcp: Remove ZFCP_DID_MASK\n  [SCSI] zfcp: Move WKA port to zfcp FC code\n  [SCSI] zfcp: Use common code definitions for FC CT structs\n  [SCSI] zfcp: Use common code definitions for FC ELS structs\n  [SCSI] zfcp: Update FCP protocol related code\n  [SCSI] zfcp: Dont fail SCSI commands when transitioning to blocked fc_rport\n  [SCSI] zfcp: Assign scheduled work to driver queue\n  [SCSI] zfcp: Remove STATUS_COMMON_REMOVE flag as it is not required anymore\n  [SCSI] zfcp: Implement module unloading\n  [SCSI] zfcp: Merge trace code for fsf requests in one function\n  [SCSI] zfcp: Access ports and units with container_of in sysfs code\n  [SCSI] zfcp: Remove suspend callback\n  [SCSI] zfcp: Remove global config_mutex\n  [SCSI] zfcp: Replace local reference counting with common kref\n  ...\n"
    },
    {
      "commit": "e881a172dac4d9ea3b2a1540041d872963c269bd",
      "tree": "9eb1f344b107806c0041c4e0a64192a055117289",
      "parents": [
        "dbf9bfe615717d1145f263c0049fe2328e6ed395"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Thu Oct 15 17:46:39 2009 -0700"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Fri Dec 04 12:00:41 2009 -0600"
      },
      "message": "[SCSI] modify change_queue_depth to take in reason why it is being called\n\nThis patch modifies scsi_host_template-\u003echange_queue_depth so that\nit takes an argument indicating why it is being called. This will be\nused so that if a LLD needs to do some extra processing when\nhandling queue fulls or later ramp ups, it can do so.\n\nThis is a simple port of the drivers setting a change_queue_depth\ncallback. In the patch I just have these LLDs adjust the queue depth\nif the user was requesting it.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\n\n[Vasu.Dev: v2\n\tAlso converted pmcraid_change_queue_depth and then verified\nall modules compile  using \"make allmodconfig\" for any new build\nwarnings on X86_64.\n\n\tUpdated original description after combing two original\npatches from Mike to make this patch git bisectable.]\nSigned-off-by: Vasu Dev \u003cvasu.dev@intel.com\u003e\n[jejb: fixed up 53c700]\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "95514fd8ff0f30de7815950edfd84ef1e19fb1c8",
      "tree": "dc9ab63bb174ce7b1727efc5ad5836f89d046b99",
      "parents": [
        "7a02267e0f3938a6e91c0a0a82211e4d7007210e"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Wed Nov 25 18:12:48 2009 +0100"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Dec 03 14:36:18 2009 -0500"
      },
      "message": "libata: add private driver field to struct ata_device\n\nThis brings struct ata_device in-line with struct ata_{port,host}.\n\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "6013efd8860bf15c1f86f365332642cfe557152f",
      "tree": "9d7fe6d92ed9e067cda3b2e62d69f50175450e97",
      "parents": [
        "fd6c29e3dec9e44ecbcba3c57efa08af70a10f1e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Nov 19 15:36:45 2009 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Dec 03 02:46:35 2009 -0500"
      },
      "message": "libata: retry failed FLUSH if device didn\u0027t fail it\n\nIf ATA device failed FLUSH, it means that the device failed to write\nout some amount of data and the error needs to be reported to upper\nlayers. As retries can\u0027t recover the lost data, FLUSH failures need to\nbe reported immediately in general.\n\nHowever, if FLUSH fails due to transmission errors, the FLUSH needs to\nbe retried; otherwise, filesystems may switch to RO mode and/or raid\narray may drop a drive for a random transmission glitch.\n\nThis condition can be rather easily reproduced on certain ahci\ncontrollers which go through a PHY event after powersave mode switch +\next4 combination.  Powersave mode switch is often closely followed by\nflush from the filesystem failing the FLUSH with ATA bus error which\nmakes the filesystem code believe that data is lost and drop to RO\nmode.  This was reported in the following bugzilla bug.\n\n  http://bugzilla.kernel.org/show_bug.cgi?id\u003d14543\n\nThis patch makes libata EH retry FLUSH if it wasn\u0027t failed by the\ndevice.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Andrey Vihrov \u003candrey.vihrov@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "110f66d25c33c2259b1125255fa7063ab07b8340",
      "tree": "2d524b3f27aa168eb01cbb007c2bfa195bea42f4",
      "parents": [
        "fa5b561c4ea170caf9759109acc2e961a7e83bea"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Sep 16 04:17:28 2009 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Tue Oct 06 00:26:27 2009 -0400"
      },
      "message": "libata: make gtf_filter per-dev\n\nAdd -\u003egtf_filter to ata_device and set it to ata_acpi_gtf_filter when\ninitializing ata_link.  This is to allow quirks which apply different\ngtf filters.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "fa5b561c4ea170caf9759109acc2e961a7e83bea",
      "tree": "55d872dc6bba8bce920f95d1a19bf441784c94ac",
      "parents": [
        "f1bce7f80e3b400cf29787b0afa9c3042b959017"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Sep 16 04:17:02 2009 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Tue Oct 06 00:26:26 2009 -0400"
      },
      "message": "libata: implement more acpi filtering options\n\nCurrently libata-acpi can only filter DIPM among SATA feature enables\nvia _GTF.  This patch adds the capability to filter out FPDMA non-zero\noffset, in-order guarantee and auto-activation.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "f1bce7f80e3b400cf29787b0afa9c3042b959017",
      "tree": "fa0cec132984e3cd36890c2dfedb52dd0e64df24",
      "parents": [
        "4c521c8ef0e802f88f1d80352dd1b3d6a6aa1cc8"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Sep 16 04:16:04 2009 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Tue Oct 06 00:25:03 2009 -0400"
      },
      "message": "libata: cosmetic updates\n\nWe\u0027re about to add more SATA_* and ATA_ACPI_FILTER_* constants.\nReformat them in preparation.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "051d9fbdd1d1ec85ea18ba20581234cf23f1c217",
      "tree": "7ad5adda0326170be068578782129ce59c41f491",
      "parents": [
        "6521148c6449724c3b707820b9c535c7e8b8afcd"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Jul 03 11:46:12 2009 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Tue Sep 01 19:47:20 2009 -0400"
      },
      "message": "libata: remove spindown skipping and warning\n\nThis was a hack to give userland shutdown tools time to drop manual\nspindown.  All popular distros updated quite some time ago and the due\nis well passed.  Drop it.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Jaswinder Singh Rajput \u003cjaswinder@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "388539f3ff0cf1de926b03f94e1eec112358f74d",
      "tree": "6840b76ede7e27e27eb9aaf516f827beba16c5ad",
      "parents": [
        "2fc37adba0fb05760b8635c6706773af828ccf3c"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Mon Jul 27 09:24:35 2009 +0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Tue Sep 01 19:47:19 2009 -0400"
      },
      "message": "[libata] add DMA setup FIS auto-activate feature\n\nHopefully results in fewer on-the-wire FIS\u0027s and no breakage.  We\u0027ll see!\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "5920dadfb4aec6c1372c5570e71bcd3b4837e63c",
      "tree": "4d4e1c5a47d23b1578bfde9ab223b07206a77c64",
      "parents": [
        "7d084d96fdf1d791cb171da57efc1ca89d68dd6c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Jul 15 17:11:41 2009 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Tue Jul 28 21:07:09 2009 -0400"
      },
      "message": "libata: accept late unlocking of HPA\n\nOn certain configurations, HPA isn\u0027t or can\u0027t be unlocked during\nprobing but it somehow ends up unlocked afterwards.  In the following\nthread, the problem can be reliably reproduced after resuming from\nSTR.  The BIOS turns on HPA during boot but forgets to do it during\nresume.\n\n  http://thread.gmane.org/gmane.linux.kernel/858310\n\nThis patch updates libata revalidation such that it considers native\nn_sectors.  If the device size has increased to match native\nn_sectors, it\u0027s assumed that HPA has been unlocked involuntarily and\nthe device is recognized as the same one.  This should be fairly safe\nwhile nicely working around the problem.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Christof Warlich \u003cchristof@warlich.name\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "d0cb43b35d64877b2944bd37719708be5d7bbf99",
      "tree": "7b282b1070613c552143d143f74e407c2ccb4b6e",
      "parents": [
        "fe2c4d018fc6127610fef677e020b3bb41cfaaaf"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jul 09 09:27:50 2009 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Tue Jul 14 22:41:46 2009 -0400"
      },
      "message": "libata: implement and use HORKAGE_NOSETXFER, take#2\n\nPIONEER DVD-RW DVRTD08 times out SETXFER if no media is present.  The\ndevice is SATA and simply skipping SETXFER works around the problem.\nImplement ATA_HORKAGE_NOSETXFER and apply it to the device.\n\nReported by Moritz Rigler in the following thread.\n\n  http://thread.gmane.org/gmane.linux.ide/36790\n\nand by Lars in bko#9540.\n\nUpdated to whine and ignore NOSETXFER if PATA component is detected as\nsuggested by Alan Cox.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Moritz Rigler \u003clinux-ide@momail.e4ward.com\u003e\nReported-by: Lars \u003clars21ce@gmx.de\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "e3cf95dd6d352954b663d2934110d6e30af2406d",
      "tree": "f3245e91c30e0c1e12a169af637373a8b5ff670a",
      "parents": [
        "62afe5d744047df8ff15a369f4c1ebad71c937d4"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Thu Apr 09 17:31:17 2009 +0100"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Apr 16 15:28:23 2009 -0400"
      },
      "message": "ata: Report 16/32bit PIO as best we can\n\nThe legacy old IDE ioctl API for this is a bit primitive so we try\nand map stuff sensibly onto it.\n\n- Set PIO over DMA devices to report 32bit\n- Add ability to change the PIO32 settings if the controller permits it\n- Add that functionality into the sff drivers\n- Add that functionality into the VLB legacy driver\n- Turn on the 32bit PIO on the ninja32 and add support there\n\nSigned-off-by: Alan Cox \u003calan@linux.intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "877d03105d04b2c13e241130277fa69c8d2564f0",
      "tree": "79234721145f9dab3e0970027ed0b9b9f8929725",
      "parents": [
        "caa790ba6cb88dccfab356960d93e2f4e0bd8704"
      ],
      "author": {
        "name": "Nick Andrew",
        "email": "nick@nick-andrew.net",
        "time": "Mon Jan 26 11:06:57 2009 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Mar 30 15:21:59 2009 +0200"
      },
      "message": "trivial: Fix misspelling of firmware\n\nFix misspelling of firmware.\n\nSigned-off-by: Nick Andrew \u003cnick@nick-andrew.net\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "c96f1732e25362d10ee7bcac1df8412a2e6b7d23",
      "tree": "66e24eddb174d6751579ec5952f72cbbac0fb038",
      "parents": [
        "3d47aa8e7e7b2aa09256590388aa8dddc79280f9"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Tue Mar 24 10:23:46 2009 +0000"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Tue Mar 24 22:52:39 2009 -0400"
      },
      "message": "[libata] Improve timeout handling\n\nOn a timeout call a device specific handler early in the recovery so that\nwe can complete and process successful commands which timed out due to IRQ\nloss or the like rather more elegantly.\n\n[Revised to exclude the timeout handling on a few devices that inherit from\n SFF but are not SFF enough to use the default timeout handler]\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "3d47aa8e7e7b2aa09256590388aa8dddc79280f9",
      "tree": "82f4c85842e5e02489eb0533609dabb865e55198",
      "parents": [
        "c0f2ee34a5a0b79fd98d965ad8ae765d4639bfa5"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Tue Mar 24 10:23:19 2009 +0000"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Tue Mar 24 22:48:26 2009 -0400"
      },
      "message": "[libata] Drain data on errors\n\nIf the device is signalling that there is data to drain after an error we\nshould read the bytes out and throw them away. Without this some devices\nand controllers get wedged and don\u0027t recover.\n\nBased on earlier work by Mark Lord\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "1a660164c291f41b2aa853a7269b310933574ef9",
      "tree": "ba113e3cb6579c45d4e11aede7d8714e9dde2b05",
      "parents": [
        "d16ab3f633b75aac1cf42b00355cd9aa65033dcc"
      ],
      "author": {
        "name": "Mark Lord",
        "email": "mlord@pobox.com",
        "time": "Wed Feb 25 15:18:32 2009 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Tue Mar 24 22:02:41 2009 -0400"
      },
      "message": "[libata] Export ata_pio_queue_task() so that it can be used from sata_mv.\n\nSigned-off-by: Mark Lord \u003cmlord@pobox.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "84bda12af31f930e4200c5244aa111de2485d7b0",
      "tree": "08d214bf7a1ce56e8c994e7970513bfb4b215e3d",
      "parents": [
        "5825627c9463581fd9e70f8285685889ae5bb9bb"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Mar 02 18:53:26 2009 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Mar 05 07:25:02 2009 -0500"
      },
      "message": "libata: align ap-\u003esector_buf\n\nap-\u003esector_buf is used as DMA target and should at least be aligned on\ncacheline.  This caused problems on some embedded machines.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "5825627c9463581fd9e70f8285685889ae5bb9bb",
      "tree": "321a20a0e25aee8f32254b13730f423f6b434486",
      "parents": [
        "e7d3ef13d52a126438f687a1a32da65ff926ed57"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Fri Feb 27 17:35:43 2009 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Mar 05 07:24:57 2009 -0500"
      },
      "message": "libata: fix dma_unmap_sg misuse\n\nlibata passes the returned value of dma_map_sg() to\ndma_unmap_sg(),which is the misuse of dma_unmap_sg().\n\nDMA-mapping.txt says:\n\nTo unmap a scatterlist, just call:\n\n\tpci_unmap_sg(pdev, sglist, nents, direction);\n\nAgain, make sure DMA activity has already finished.\n\nPLEASE NOTE:  The \u0027nents\u0027 argument to the pci_unmap_sg call must be\n              the _same_ one you passed into the pci_map_sg call,\n\t      it should _NOT_ be the \u0027count\u0027 value _returned_ from the\n              pci_map_sg call.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nAcked-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "e7d3ef13d52a126438f687a1a32da65ff926ed57",
      "tree": "b4eb90e422f33fe6bb8756fcaadbd19863eae649",
      "parents": [
        "559595a985e106d2fa9f0c79b7f5805453fed593"
      ],
      "author": {
        "name": "Stuart Hayes",
        "email": "stuart_hayes@dell.com",
        "time": "Wed Mar 04 11:59:46 2009 -0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Mar 05 07:24:42 2009 -0500"
      },
      "message": "libata: change drive ready wait after hard reset to 5s\n\nThis fixes problems during resume with drives that take longer than 1s to\nbe ready.  The ATA-6 spec appears to allow 5 seconds for a drive to be\nready.\n\nOn one affected system, this patch changes \"PM: resume devices took...\"\nmessage from 17 seconds to 4 seconds, and gets rid of a lot of ugly\ntimeout/error messages.\n\nWithout this patch, the libata code moves on after 1s, tries to send a\nsoft reset (which the drive doesn\u0027t see because it isn\u0027t ready) which also\ntimes out, then an IDENTIFY command is sent to the drive which times out,\nand finally the error handler will try to send another hard reset which\nwill finally get things working.\n\nSigned-off-by: Stuart Hayes \u003cstuart_hayes@dell.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "9062712fa9ed13b531dfc2228086650b8bd6a255",
      "tree": "d1bde6caeb53936859943bb1866ac65794cae5cb",
      "parents": [
        "cf9a590a9eae3b99ca77d8db17afd2d7dbdd0986"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jan 29 20:31:36 2009 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Mon Feb 02 23:04:31 2009 -0500"
      },
      "message": "libata: implement HORKAGE_1_5_GBPS and apply it to WD My Book\n\n3Gbps is often much more prone to transmission failures.  It\u0027s usually\nokay to let EH handle speed down after transmission failures but some\nWD My Book drives completely shutdown after certain transmission\nfailures and after it only power cycling can revive them.  Combined\nwith the fact that external drives often end up with cable assembly\nwhich is longer than usual and more likely to have intervening gender,\nthis makes these drives very likely to shutdown under certain\nconfigurations virtually rendering them unusable.\n\nThis patch implements HOARKGE_1_5_GBPS and applies it to WD My Book\nsuch that 1.5Gbps is forced once the device is identified.\n\nPlease take a look at the following bz for related reports.\n\n  http://bugzilla.kernel.org/show_bug.cgi?id\u003d9913\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "99cf610aa4840d822cdc67d194b23b55010ca9bd",
      "tree": "68bc3d6c1f13849731bb7b4b11414b4b0e5fbffb",
      "parents": [
        "9913ff8abf1c70a8d52560dc931e1901d025ad27"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jan 29 20:31:32 2009 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Mon Feb 02 23:03:17 2009 -0500"
      },
      "message": "libata: clear dev-\u003eering in smarter way\n\ndev-\u003eering used to be cleared together with the rest of ata_device in\nata_dev_init() which is called whenever a probing event occurs.\ndev-\u003eering is about to be used to track probing failures so it needs\nto remain persistent over multiple porbing events.  This patch\nachieves this by doing the following.\n\n* Instead of CLEAR_OFFSET, define CLEAR_BEGIN and CLEAR_END and only\n  clear between BEGIN and END.  ering is moved after END.  The split\n  of persistent area is to allow hotter items remain at the head.\n\n* ering is explicitly cleared on ata_dev_disable() and when device\n  attach succeeds.  So, ering is persistent throug a device\u0027s life\n  time (unless explicitly cleared of course) and also through periods\n  inbetween disablement of an attached device and successful detection\n  of the next one.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "2a6e58d2731dcc05dafa7f976d935e0f0627fcd7",
      "tree": "836d0ec85dccde709aeaaedb3b7686ac51805ad1",
      "parents": [
        "d7b1956fed33d30c4815e848fd7a143722916868"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Jan 19 20:56:43 2009 +0100"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Tue Jan 27 02:15:49 2009 -0500"
      },
      "message": "SATA: Blacklisting of systems that spin off disks during ACPI power off\n\nIntroduce new libata flags ATA_FLAG_NO_POWEROFF_SPINDOWN and\nATA_FLAG_NO_HIBERNATE_SPINDOWN that, if set, will prevent disks from\nbeing spun off during system power off and hibernation, respectively\n(to handle the hibernation case we need the new system state\nSYSTEM_HIBERNATE_ENTER that can be checked against by libata, in\nanalogy with SYSTEM_POWER_OFF).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "3ada9c126499dd4700dcdbd5b9fe8110ad17f578",
      "tree": "aec4fc6d574589eec606cf234eb7f5df529b05f3",
      "parents": [
        "6813952021a7820a505002de260bda36978671f7"
      ],
      "author": {
        "name": "David Daney",
        "email": "ddaney@caviumnetworks.com",
        "time": "Thu Jan 15 17:45:31 2009 -0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri Jan 16 10:23:37 2009 -0500"
      },
      "message": "libata: Add another column to the ata_timing table.\n\nThe forthcoming OCTEON SOC Compact Flash driver needs an additional\ntiming value that was not available in the ata_timing table.  I add a\nnew column for dmack_hold time.  The values were obtained from the\nCompact Flash specification Rev 4.1.\n\nSigned-off-by: David Daney \u003cddaney@caviumnetworks.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "94be9a58d7e683ac3c1df1858a17f09ebade8da0",
      "tree": "2f346bb4d179caf1cf0f61012f35c8277504c55a",
      "parents": [
        "5393f780277165f282a37ed82dd878159ec9dad5"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Jan 16 10:17:09 2009 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri Jan 16 10:17:09 2009 -0500"
      },
      "message": "[libata] get-identity ioctl: Fix use of invalid memory pointer\nfor SAS drivers.\n\nCaught by Ke Wei (and team?) at Marvell.\n\nAlso, move the ata_scsi_ioctl export to libata-scsi.c, as that seems to be the\ngeneral trend.\n\nAcked-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "886ad09fc83342aa1c5a02a0b6d3298b78a8067f",
      "tree": "82a7818829b25db9c67f95c315521dac3da47fc6",
      "parents": [
        "3d14bdad40315b54470cb7812293d14c8af2bf7d"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Fri Jan 09 15:54:07 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 10 15:06:52 2009 -0800"
      },
      "message": "libata: Add a per-host flag to opt-in into parallel port probes\n\nThis patch adds a per host flag that allows drivers to opt in into\nhaving its busses scanned in parallel.\n\nDrivers that do not set this flag get their ports scanned in\nthe \"original\" sequence.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "871af1210f13966ab911ed2166e4ab2ce775b99d",
      "tree": "f17f0016f6e966d54a379a3de6e6bbde3b9359fe",
      "parents": [
        "e427fe042cf90c0652eed9a85e57a8fd8af89890"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Jan 05 14:16:39 2009 +0000"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Jan 08 16:34:27 2009 -0500"
      },
      "message": "libata: Add 32bit PIO support\n\nThis matters for some controllers and in one or two cases almost doubles\nPIO performance. Add a bmdma32 operations set we can inherit and activate\nit for some controllers\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "ece180d1cfe5fa751eaa85bf796cf28b2150af15",
      "tree": "aca9d485036858ed3f1859e679473cebd3476845",
      "parents": [
        "ad74e4c18d0962397314460d0da312e72c8bd02d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 03 20:04:37 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Sun Dec 28 22:43:21 2008 -0500"
      },
      "message": "libata: perform port detach in EH\n\nata_port_detach() first made sure EH saw ATA_PFLAG_UNLOADING and then\nassumed EH context belongs to it and performed detach operation\nitself.  However, UNLOADING doesn\u0027t disable all of EH and this could\nlead to problems including triggering WARN_ON()\u0027s in EH path.\n\nThis patch makes port detach behave more like other EH actions such\nthat ata_port_detach() requests EH to detach and waits for completion.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "1eca4365be25c540650693e941bc06a66cf38f94",
      "tree": "e3ed82850da00308180bf166118f9f9e69d92898",
      "parents": [
        "3c92ec8ae91ecf59d88c798301833d7cf83f2179"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 03 20:03:17 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Sun Dec 28 22:43:20 2008 -0500"
      },
      "message": "libata: beef up iterators\n\nThere currently are the following looping constructs.\n\n* __ata_port_for_each_link() for all available links\n* ata_port_for_each_link() for edge links\n* ata_link_for_each_dev() for all devices\n* ata_link_for_each_dev_reverse() for all devices in reverse order\n\nNow there\u0027s a need for looping construct which is similar to\n__ata_port_for_each_link() but iterates over PMP links before the host\nlink.  Instead of adding another one with long name, do the following\ncleanup.\n\n* Implement and export ata_link_next() and ata_dev_next() which take\n  @mode parameter and can be used to build custom loop.\n* Implement ata_for_each_link() and ata_for_each_dev() which take\n  looping mode explicitly.\n\nThe following iteration modes are implemented.\n\n* ATA_LITER_EDGE\t\t: loop over edge links\n* ATA_LITER_HOST_FIRST\t\t: loop over all links, host link first\n* ATA_LITER_PMP_FIRST\t\t: loop over all links, PMP links first\n\n* ATA_DITER_ENABLED\t\t: loop over enabled devices\n* ATA_DITER_ENABLED_REVERSE\t: loop over enabled devices in reverse order\n* ATA_DITER_ALL\t\t\t: loop over all devices\n* ATA_DITER_ALL_REVERSE\t\t: loop over all devices in reverse order\n\nThis change removes exlicit device enabledness checks from many loops\nand makes it clear which ones are iterated over in which direction.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "ac70a964b0e22a95af3628c344815857a01461b7",
      "tree": "c5711139bd95053b9b5c8897e3f7cd50b8331141",
      "parents": [
        "03f60840fa462e92220b093f778b2426ceab23af"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Nov 27 13:36:48 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Mon Dec 01 13:49:27 2008 -0500"
      },
      "message": "libata: blacklist Seagate drives which time out FLUSH_CACHE when used with NCQ\n\nSome recent Seagate harddrives have firmware bug which causes FLUSH\nCACHE to timeout under certain circumstances if NCQ is being used.\nThis can be worked around by disabling NCQ and fixed by updating the\nfirmware.  Implement ATA_HORKAGE_FIRMWARE_UPDATE and blacklist these\ndevices.\n\nThe wiki page has been updated to contain information on this issue.\n\n  http://ata.wiki.kernel.org/index.php/Known_issues\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "8a8bc22332ee6ea49137508467a76aa7f4367719",
      "tree": "f41c62dc99c4249d592935b4659569081d4a190a",
      "parents": [
        "f7160c7573615ec82c691e294cf80d920b5d588d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 10 14:48:21 2008 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 10 08:04:47 2008 -0800"
      },
      "message": "libata: revert convert-to-block-tagging patches\n\nThis patch reverts the following three commits which convert libata to\nuse block layer tagging.\n\n 43a49cbdf31e812c0d8f553d433b09b421f5d52c\n e013e13bf605b9e6b702adffbe2853cfc60e7806\n 2fca5ccf97d2c28bcfce44f5b07d85e74e3cd18e\n\nAlthough using block layer tagging is the right direction, due to the\ntight coupling among tag number, data structure allocation and\nhardware command slot allocation, libata doesn\u0027t work correctly with\nthe current conversion.\n\nThe biggest problem is guaranteeing that tag 0 is always used for\nnon-NCQ commands.  Due to the way blk-tag is implemented and how SCSI\nstarts and finishes requests, such guarantee can\u0027t be made.  I\u0027m not\nsure whether this would actually break any low level driver but it\ndoesn\u0027t look like a good idea to break such assumption given the\nfrailty of ATA controllers.\n\nSo, for the time being, keep using the old dumb in-libata qc\nallocation.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Jens Axobe \u003cjens.axboe@oracle.com\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6a87e42e955ff27e07a77f65f8f077dc7c4171e1",
      "tree": "e5d50b2b91c17c6719b75bbd88ea5cbed4130304",
      "parents": [
        "a464189de350b050aa8f334bd4cc53ed406e56dd"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 03 19:01:09 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Tue Nov 04 01:08:27 2008 -0500"
      },
      "message": "libata: implement ATA_HORKAGE_ATAPI_MOD16_DMA and apply it\n\nlibata always uses PIO for ATAPI commands when the number of bytes to\ntransfer isn\u0027t multiple of 16 but quantum DAT72 chokes on odd bytes\nPIO transfers.  Implement a horkage to skip the mod16 check and apply\nit to the quantum device.\n\nThis is reported by John Clark in the following thread.\n\n  http://thread.gmane.org/gmane.linux.ide/34748\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: John Clark \u003cclarkjc@runbox.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "9ce8e3073d9cfd6f859c22a25441db41b85cbf6e",
      "tree": "81ddeb3d7203677b541b132b4ed8a909137d7ccf",
      "parents": [
        "b9d5b89b487517cbd4cb4702da829e07ef9e4432"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Aug 27 15:23:18 2008 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri Oct 31 01:45:06 2008 -0400"
      },
      "message": "libata: add whitelist for devices with known good pata-sata bridges\n\nlibata currently imposes a UDMA5 max transfer rate and 200 sector max\ntransfer size for SATA devices that sit behind a pata-sata bridge. Lots\nof devices have known good bridges that don\u0027t need this limit applied.\nThe MTRON SSD disks are such devices. Transfer rates are increased by\n20-30% with the restriction removed.\n\nSo add a \"blacklist\" entry for the MTRON devices, with a flag indicating\nthat the bridge is known good.\n\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "2fca5ccf97d2c28bcfce44f5b07d85e74e3cd18e",
      "tree": "483dedd08d6ccbb56959eeb127e82ab8f84edf2e",
      "parents": [
        "332edc2f7fa58b818dfed1cede60272eecc27c0a"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Oct 22 09:34:49 2008 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 16:05:26 2008 -0700"
      },
      "message": "libata: switch to using block layer tagging support\n\nlibata currently has a pretty dumb ATA_MAX_QUEUE loop for finding\na free tag to use. Instead of fixing that up, convert libata to\nusing block layer tagging - gets rid of code in libata, and is also\nmuch faster.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "848e4c68c4695beae563f9a3d59fce596b466a74",
      "tree": "90c5ea1ff1b016f72888641f96f014336e969434",
      "parents": [
        "570106df6bdb4907ad7f70793079c762f34d561a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Oct 21 14:26:39 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Wed Oct 22 20:40:19 2008 -0400"
      },
      "message": "libata: transfer EHI control flags to slave ehc.i\n\nATA_EHI_NO_AUTOPSY and ATA_EHI_QUIET are used to control the behavior\nof EH.  As only the master link is visible outside EH, these flags are\nset only for the master link although they should also apply to the\nslave link, which causes spurious EH messages during probe and\nsuspend/resume.\n\nThis patch transfers those two flags to slave ehc.i before performing\nslave autopsy and reporting.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    }
  ],
  "next": "6866e7bc83f13a1bc6de59099930e9db1ab0042f"
}
