)]}'
{
  "log": [
    {
      "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": "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": "270390e1ae1818b111543b8bfffa08095d73c1a5",
      "tree": "be6145d1a3ea7d2e80f303a62c5f9ba5a753c0f5",
      "parents": [
        "c7087652e1890a3feef35b30ee1d4be68e1932cd"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon May 10 21:41:35 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Wed May 19 13:34:10 2010 -0400"
      },
      "message": "libata-sff: introduce ata_sff_init/exit() and ata_sff_port_init()\n\nIn preparation of proper SFF/BMDMA separation, introduce\nata_sff_init/exit() and ata_sff_port_init().  These functions\ncurrently don\u0027t do anything.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "c7a8209f766961eea4cfc6f22d2d6e06ef63546c",
      "tree": "63b3b2ee55942218c6c155a56c40e86d99e223ea",
      "parents": [
        "2a7adff09ac3dd3d1facaf92b4a8cc1b92d370b6"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon May 10 21:41:29 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri May 14 22:38:46 2010 -0400"
      },
      "message": "libata-sff: kill unused prototype and make ata_dev_select() static\n\nata_irq_on() was renamed to ata_sff_irq_on() and exported a while ago\nbut prototype for the original function lingered in\ndrivers/ata/libata.h.  Kill it.  Also, ata_dev_select() is only used\ninside drivers/ata/libata-sff.c.  Make it static.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\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": "6521148c6449724c3b707820b9c535c7e8b8afcd",
      "tree": "b976cb33b4e7f09bdc765a09702659c14474c540",
      "parents": [
        "1e641060c4b564e820abdb6a4c7a603a0d386250"
      ],
      "author": {
        "name": "Robert Hancock",
        "email": "hancockrwd@gmail.com",
        "time": "Tue Jul 14 20:43:39 2009 -0600"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Tue Sep 01 19:47:20 2009 -0400"
      },
      "message": "libata: add command name parsing for error output\n\nThis patch improve libata\u0027s output for error/notification messages\nto allow easier comprehension and debugging:\n\nWhen ATAPI commands issued through the SCSI layer fail, use SCSI\nfunctions to print the CDB in human-readable form instead of just\ndumping out the CDB in hex.\n\nPrint out the name of the failed command (as defined by the ATA\nspecification) in error handling output along with the raw register\ncontents.\n\nWhen reporting status of ACPI taskfile commands executed on resume,\nalso output the names of the commands being executed (or not) in\nreadable form.\n\nSince the extra data for printing command names increases kernel\nsize slightly, a config option has been added to allow disabling\ncommand name output (as well as some of the error register parsing)\nfor those highly sensitive to kernel text size.\n\nSigned-off-by: Robert Hancock \u003chancockrwd@gmail.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": "a07d499b4759881db1359dd8812eecd00b0e0a28",
      "tree": "aaa5a5c95b64ab121ca89a71899abfe8837890f6",
      "parents": [
        "99cf610aa4840d822cdc67d194b23b55010ca9bd"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jan 29 20:31:33 2009 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Mon Feb 02 23:03:22 2009 -0500"
      },
      "message": "libata: add @spd_limit to sata_down_spd_limit()\n\nAdd @spd_limit to sata_down_spd_limit() so that the caller can specify\nthe SPD limit it wants.  This parameter doesn\u0027t get in the way even\nwhen it\u0027s too low.  The closest possible limit is applied.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "678afac678061ee41bc3007885003c125912a8e2",
      "tree": "134b4227b0826d14810f0d617090d5b7fe5e4369",
      "parents": [
        "d89293abd95bfd7dd9229087d6c30c1464c5ac83"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jan 29 20:31:30 2009 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Mon Feb 02 23:03:00 2009 -0500"
      },
      "message": "libata: move ata_dev_disable() to libata-eh.c\n\nata_dev_disable() is about to be more tightly integrated into EH\nlogic.  Move it to libata-eh.c.\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": "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": "e26feff647ef34423b048b940540a0059001ddb0",
      "tree": "acafe68602ee2f6f1a438c113073ffcc0040e949",
      "parents": [
        "d403a6484f0341bf0624d17ece46f24f741b6a92",
        "b911e473d24633c19414b54b82b9ff0b1a2419d7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 10 10:52:45 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 10 10:52:45 2008 -0700"
      },
      "message": "Merge branch \u0027for-2.6.28\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.28\u0027 of git://git.kernel.dk/linux-2.6-block: (132 commits)\n  doc/cdrom: Trvial documentation error, file not present\n  block_dev: fix kernel-doc in new functions\n  block: add some comments around the bio read-write flags\n  block: mark bio_split_pool static\n  block: Find bio sector offset given idx and offset\n  block: gendisk integrity wrapper\n  block: Switch blk_integrity_compare from bdev to gendisk\n  block: Fix double put in blk_integrity_unregister\n  block: Introduce integrity data ownership flag\n  block: revert part of d7533ad0e132f92e75c1b2eb7c26387b25a583c1\n  bio.h: Remove unused conditional code\n  block: remove end_{queued|dequeued}_request()\n  block: change elevator to use __blk_end_request()\n  gdrom: change to use __blk_end_request()\n  memstick: change to use __blk_end_request()\n  virtio_blk: change to use __blk_end_request()\n  blktrace: use BLKTRACE_BDEV_SIZE as the name size for setup structure\n  block: add lld busy state exporting interface\n  block: Fix blk_start_queueing() to not kick a stopped queue\n  include blktrace_api.h in headers_install\n  ...\n"
    },
    {
      "commit": "242f9dcb8ba6f68fcd217a119a7648a4f69290e9",
      "tree": "1bfe245ffbc50d204d76665cd8f90d85100f86a1",
      "parents": [
        "608aeef17a91747d6303de4df5e2c2e6899a95e8"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sun Sep 14 05:55:09 2008 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:13 2008 +0200"
      },
      "message": "block: unify request timeout handling\n\nRight now SCSI and others do their own command timeout handling.\nMove those bits to the block layer.\n\nInstead of having a timer per command, we try to be a bit more clever\nand simply have one per-queue. This avoids the overhead of having to\ntear down and setup a timer for each command, so it will result in a lot\nless timer fiddling.\n\nSigned-off-by: Mike Anderson \u003candmike@linux.vnet.ibm.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "b1c72916abbdd0a55015c87358536ca0ebaf6735",
      "tree": "1064fe92f2c3600dd6587c880d907020896b3348",
      "parents": [
        "b5b3fa386b8f96c7fa92e507e5deddc2637924b4"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jul 31 17:02:43 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Mon Sep 29 00:25:28 2008 -0400"
      },
      "message": "libata: implement slave_link\n\nExplanation taken from the comment of ata_slave_link_init().\n\n In libata, a port contains links and a link contains devices.  There\n is single host link but if a PMP is attached to it, there can be\n multiple fan-out links.  On SATA, there\u0027s usually a single device\n connected to a link but PATA and SATA controllers emulating TF based\n interface can have two - master and slave.\n\n However, there are a few controllers which don\u0027t fit into this\n abstraction too well - SATA controllers which emulate TF interface\n with both master and slave devices but also have separate SCR\n register sets for each device.  These controllers need separate links\n for physical link handling (e.g. onlineness, link speed) but should\n be treated like a traditional M/S controller for everything else\n (e.g. command issue, softreset).\n\n slave_link is libata\u0027s way of handling this class of controllers\n without impacting core layer too much.  For anything other than\n physical link handling, the default host link is used for both master\n and slave.  For physical link handling, separate @ap-\u003eslave_link is\n used.  All dirty details are implemented inside libata core layer.\n From LLD\u0027s POV, the only difference is that prereset, hardreset and\n postreset are called once more for the slave link, so the reset\n sequence looks like the following.\n\n prereset(M) -\u003e prereset(S) -\u003e hardreset(M) -\u003e hardreset(S) -\u003e\n softreset(M) -\u003e postreset(M) -\u003e postreset(S)\n\n Note that softreset is called only for the master.  Softreset resets\n both M/S by definition, so SRST on master should handle both (the\n standard method will work just fine).\n\nAs slave_link excludes PMP support and only code paths which deal with\nthe attributes of physical link are affected, all the changes are\nlocalized to libata.h, libata-core.c and libata-eh.c.\n\n * ata_is_host_link() updated so that slave_link is considered as host\n   link too.\n\n * iterator extended to iterate over the slave_link when using the\n   underbarred version.\n\n * force param handling updated such that devno 16 is mapped to the\n   slave link/device.\n\n * ata_link_on/offline() updated to return the combined result from\n   master and slave link.  ata_phys_link_on/offline() are the direct\n   versions.\n\n * EH autopsy and report are performed separately for master slave\n   links.  Reset is udpated to implement the above described reset\n   sequence.\n\nExcept for reset update, most changes are minor, many of them just\nmodifying dev-\u003elink to ata_dev_phys_link(dev) or using phys online\ntest instead.\n\nAfter this update, LLDs can take full advantage of per-dev SCR\nregisters by simply turning on slave link.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "2486fa561a3192bbbec39c7feef87a1e07bd6342",
      "tree": "4241264273c63714e4c2021e7de69aee8bb2b20c",
      "parents": [
        "bfce5e0179ad059035df28558724ff60af708e09"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jul 31 07:52:40 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Jul 31 01:47:05 2008 -0400"
      },
      "message": "libata: update atapi disable handling\n\nGlobal and per-LLD ATAPI disable checks were done in the command issue\npath probably because it was left out during EH conversion.  On\naffected machines, this can cause lots of warning messages.  Move them\nto where they belong - the probing path.\n\nReported by Chunbo Luo.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Chunbo Luo \u003cchunbo.luo@windriver.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "87fbc5a060faf2394bee88a93519f9b9d434727c",
      "tree": "6f90cacb1471e64051473c4e1e664b2dea8603e0",
      "parents": [
        "d8af0eb6046c56e7238171ca420622541db24926"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue May 20 02:17:54 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Mon Jul 14 15:59:32 2008 -0400"
      },
      "message": "libata: improve EH internal command timeout handling\n\nATA_TMOUT_INTERNAL which was 30secs were used for all internal\ncommands which is way too long when something goes wrong.  This patch\nimplements command type based stepped timeouts.  Different command\ntypes can use different timeouts and each command type can use\ndifferent timeout values after timeouts.\n\nie. the initial timeout is set to a value which should cover most of\nthe cases but not too long so that run away cases don\u0027t delay things\ntoo much.  After the first try times out, the second try can use\nlonger timeout and if that one times out too, it can go for full 30sec\ntimeout.\n\nIDENTIFYs use 5s - 10s - 30s timeout and all other commands use 5s -\n10s timeouts.\n\nThis patch significantly cuts down the needed time to handle failure\ncases while still allowing libata to work with nut job devices through\nretries.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "5895ef9a5b746e7cc9ebda50c87fbd11562da0a4",
      "tree": "264ed72edfef60f11260f3227523334b1e1aca80",
      "parents": [
        "d799e083a80b220f3681d7790f11e77d1704022b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jun 17 12:36:26 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Wed Jun 18 20:27:49 2008 -0400"
      },
      "message": "libata: don\u0027t check whether to use DMA or not for no data commands\n\nThere\u0027s no reason to check whether to use DMA or not for no data\ncommands.  Don\u0027t do it.  While at it, make local variable using_pio in\natapi_xlat() set iff ATAPI_PROT_PIO is going to be used and rename\nata_check_atapi_dma() to atapi_check_dma() for consistency.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "f0761be344f9b1cc4284b1d945933cd983c233a4",
      "tree": "d2b999a039bee7f36b0707b80cd13fd1e1b2cfbb",
      "parents": [
        "3dd654bfdf8905d0acb6f6231b5e736d2b0d4bc6"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Apr 28 17:16:52 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Tue Apr 29 02:16:37 2008 -0400"
      },
      "message": "libata-scsi: clean up inquiry / mode sense related functions\n\n* make ata_scsiop_*() static\n* make ata_scsi_set_sense() static and move it above its users\n* make ata_scsi_rbuf_fill() static\n* kill unused ata_scsi_badcmd()\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "1dc55e876182a13dcc5991c3aab893f38455d8a7",
      "tree": "3ab0cd75c5673b59802b652a0eefd4eca30219c0",
      "parents": [
        "6bdb4fc9f9e5307012f6f2afb8642b52dad9c186"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Mon Apr 21 11:51:17 2008 +0300"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri Apr 25 00:46:11 2008 -0400"
      },
      "message": "make sata_set_spd_needed() static\n\nsata_set_spd_needed() can now become static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "88fcd5627563722483427a55113c0a83f56e8080",
      "tree": "6a596e33d6497fbed58147e8fdb59b611d956c12",
      "parents": [
        "071f44b1d2c051641b62a3571223314737ccbe59"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Apr 07 22:47:22 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Apr 17 15:44:25 2008 -0400"
      },
      "message": "libata: make PMP support optional\n\nMake PMP support optional by adding CONFIG_SATA_PMP and leaving out\nlibata-pmp.c if it isn\u0027t set.  PMP helpers return constant values if\nPMP support is not enabled and PMP declarations alias non-PMP\ncounterparts.  This makes the compiler to leave out PMP related part\nout and LLDs to use non-PMP counterparts automatically.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "48515f6c006c2a9d7b624ee8ad068018c2d3fe0e",
      "tree": "0ade033552ccb297ac7736a6b2d77dd249be4eb8",
      "parents": [
        "127102aea2ea9ec4e9ca233e2b1a75c8d3b058c4"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Apr 07 22:47:21 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Apr 17 15:44:25 2008 -0400"
      },
      "message": "libata: separate PMP support code from core code\n\nMost of PMP support code is already in libata-pmp.c.  All that are in\nlibata-core.c are sata_pmp_port_ops and EXPORTs.  Move them to\nlibata-pmp.c.  Also, collect PMP related prototypes and declarations\nin header files and move them right above of SFF stuff.\n\nThis change is to make PMP support optional.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "127102aea2ea9ec4e9ca233e2b1a75c8d3b058c4",
      "tree": "92fb528eac658adbc7307a009bd8a7558db2658a",
      "parents": [
        "350756f6dab6d37ef9ed3f18dec520e88969ddac"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Apr 07 22:47:21 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Apr 17 15:44:24 2008 -0400"
      },
      "message": "libata: make SFF support optional\n\nNow that SFF support is completely separated out from the core layer,\nit can be made optional.  Add CONFIG_ATA_SFF and let SFF drivers\ndepend on it.  If CONFIG_ATA_SFF isn\u0027t set, all codes in libata-sff.c\nand data structures for SFF support are disabled.  This saves good\nnumber of bytes for small systems.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "57c9efdfb3cee5d4564fcb5f70555e2edb1bc52a",
      "tree": "c2289500f093736853a94d2d9577036658676498",
      "parents": [
        "9dadd45b24145d6aee2fabb28d7aef972301892b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Apr 07 22:47:19 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Apr 17 15:44:23 2008 -0400"
      },
      "message": "libata: implement and use sata_std_hardreset()\n\nImplement sata_std_hardreset(), which simply wraps around\nsata_link_hardreset().  sata_std_hardreset() becomes new standard\nhardreset method for sata_port_ops and sata_sff_hardreset() moves from\nata_base_port_ops to ata_sff_port_ops, which is where it really\nbelongs.\n\nata_is_builtin_hardreset() is added so that both\nata_std_error_handler() and ata_sff_error_handler() skip both builtin\nhardresets if SCR isn\u0027t accessible.\n\npiix_sidpr_hardreset() in ata_piix.c is identical to\nsata_std_hardreset() in functionality and got replaced with the\nstandard function.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "aa2731ad9ad80ac3fca48bd1c4cf0eceede4810e",
      "tree": "db6d3327017b9b84355aba49a5ccd5c322d3f248",
      "parents": [
        "705e76beb90b97421e1f61e857c4246799781bb5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Apr 07 22:47:19 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Apr 17 15:44:22 2008 -0400"
      },
      "message": "libata: separate out ata_wait_ready() and implement ata_wait_after_reset()\n\nFactor out waiting logic (which is common to all ATA controllers) from\nata_sff_wait_ready() into ata_wait_ready().  ata_wait_ready() takes\n@check_ready function pointer and uses it to poll for readiness.  This\nallows non-SFF controllers to use ata_wait_ready() to wait for link\nreadiness.\n\nThis patch also implements ata_wait_after_reset() - generic version of\nata_sff_wait_after_reset() - using ata_wait_ready().\n\nata_sff_wait_ready() is reimplemented using ata_wait_ready() and\nata_sff_check_ready().  Functionality remains the same.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "d8b81b8008a0f131e01bb6eb5c681c900c327e2b",
      "tree": "3f6ef48e0787fc952f3f58e7a2991d7eab82fbf7",
      "parents": [
        "03faab7827e4e45823fd27c47b84c133e20a0cd0"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Mar 27 19:14:25 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Apr 17 15:44:20 2008 -0400"
      },
      "message": "libata: kill unused ata_flush_cache()\n\nata_flush_code() hasn\u0027t been in use for quite some time now.  Kill it.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "a5987e0a1b569146ed9cfa0a8c275a21b344fcaa",
      "tree": "23c6f0e4ac2e521fdcb87aadf214ad8987b67b22",
      "parents": [
        "06993d2237da45615b5a9a4dde3f344ce97ca17d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Mar 27 19:14:23 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Apr 17 15:44:20 2008 -0400"
      },
      "message": "libata: make ata_tf_to_lba[48]() generic\n\nata_tf_to_lba[48]() currently return LBA in tf + 1 for\nata_read_native_max_address().  Make them return LBA and make it\nglobal so that it can be used to read LBA off TF for other purposes.\nata_read_native_max_address() now adds 1 itself.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "624d5c514eed18d5a93062e9d86d67065175f30a",
      "tree": "61f89b05b70e9b443cf09083b4ae3d102dd357b7",
      "parents": [
        "272f7884e8c0effe594e5537092b9c0ccc0140b0"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Mar 25 22:16:41 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Apr 17 15:44:18 2008 -0400"
      },
      "message": "libata: reorganize SFF related stuff\n\n* Move SFF related functions from libata-core.c to libata-sff.c.\n\n  ata_[bmdma_]sff_port_ops, ata_devchk(), ata_dev_try_classify(),\n  ata_std_dev_select(), ata_tf_to_host(), ata_busy_sleep(),\n  ata_wait_after_reset(), ata_wait_ready(), ata_bus_post_reset(),\n  ata_bus_softreset(), ata_bus_reset(), ata_std_softreset(),\n  sata_std_hardreset(), ata_fill_sg(), ata_fill_sg_dumb(),\n  ata_qc_prep(), ata_dump_qc_prep(), ata_data_xfer(),\n  ata_data_xfer_noirq(), ata_pio_sector(), ata_pio_sectors(),\n  atapi_send_cdb(), __atapi_pio_bytes(), atapi_pio_bytes(),\n  ata_hsm_ok_in_wq(), ata_hsm_qc_complete(), ata_hsm_move(),\n  ata_pio_task(), ata_qc_issue_prot(), ata_host_intr(),\n  ata_interrupt(), ata_std_ports()\n\n* Make ata_pio_queue_task() global as it\u0027s now called from\n  libata-sff.c.\n\n* Move SFF related stuff in include/linux/libata.h and\n  drivers/ata/libata.h into one place.  While at it, move timing\n  constants into the global enum definition and fortify comments a\n  bit.\n\nThis patch strictly moves stuff around and as such doesn\u0027t cause any\nfunctional difference.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "c5c61bda5ecceaa0f16d326cd2c2147468a4c443",
      "tree": "92b76f6aaa863f3bed441f7feb8ce638fa553ea7",
      "parents": [
        "bfa274e2436fc7ef72ef51c878083647f1cfd429"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Mon Feb 25 02:07:25 2008 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Feb 25 17:29:35 2008 -0500"
      },
      "message": "make atapi_dmadir static\n\natapi_dmadir can now become static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "332673257056d8be8a69d759eda90a799af5472d",
      "tree": "b2ff47054b6424f70a6c10bcffd47f2bdd70e4c8",
      "parents": [
        "0fca0d6f2ce3336022a22bc7fc2e009e599e63a4"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Feb 13 09:15:09 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Feb 20 12:12:28 2008 -0500"
      },
      "message": "libata: implement libata.force module parameter\n\nThis patch implements libata.force module parameter which can\nselectively override ATA port, link and device configurations\nincluding cable type, SATA PHY SPD limit, transfer mode and NCQ.\n\nFor example, you can say \"use 1.5Gbps for all fan-out ports attached\nto the second port but allow 3.0Gbps for the PMP device itself, oh,\nthe device attached to the third fan-out port chokes on NCQ and\nshouldn\u0027t go over UDMA4\" by the following.\n\n libata.force\u003d2:1.5g,2.15:3.0g,2.03:noncq,udma4\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "6f1d1e3a03fd04a9d9c82fd3cf414020097bb142",
      "tree": "ceb7917e7ca056c2884ef9dd2a239945ad45724c",
      "parents": [
        "02c05a27e884c9655dae5b1c8bc0cd89c060c43d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Nov 27 19:28:55 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 23 05:24:10 2008 -0500"
      },
      "message": "libata: move ata_set_mode() to libata-eh.c\n\nMove ata_set_mode() to libata-eh.c.  ata_set_mode() is surely an EH\naction and will be more tightly coupled with the rest of error\nhandling.  Move it to libata-eh.c.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "bd3adca52bc43b72c75db3e4c7809d47923b154c",
      "tree": "ec42456926e50a4b0adf916ac1c5f39f76e057f8",
      "parents": [
        "ae8d4ee7ff429136c8b482c3b38ed994c021d3fc"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Fri Nov 02 09:32:38 2007 +0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 23 05:24:09 2008 -0500"
      },
      "message": "libata-acpi: add ACPI _PSx method\n\nACPI spec (ver 3.0a, p289) requires IDE power on/off executes ACPI _PSx\nmethods. As recently most PATA drivers use libata, this patch adds _PSx\nmethod support in libata. ACPI spec doesn\u0027t mention if SATA requires the\nsame _PSx method.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nAcked-by: Len Brown \u003clen.brown@intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "ae8d4ee7ff429136c8b482c3b38ed994c021d3fc",
      "tree": "bf45047ab8a4f5325c6b752be02313d3112eded0",
      "parents": [
        "ffe188dd83e84119516688c822388c8f30a54877"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Sun Nov 04 22:05:49 2007 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 23 05:24:09 2008 -0500"
      },
      "message": "libata: Disable ATA8-ACS proposed Trusted Computing features by default\n\nHistorically word 48 in the identify data was used to mean 32bit I/O\nwas supported for VLB IDE etc. ATA8 reassigns this word to the Trusted\nComputing Group, where it is used for TCG features. This means that\nan ATA8 TCG drive is going to trigger 32bit I/O on some systems which\nwill be funny.\n\nAnyway we need to sort this out ready for ATA8 so:\n- Reorder the ata.h header a bit so the ata_version function occurs early\n  in it\n- Make dword_io check the ATA version\n- Add an ATA8 version checking TCG presence test\n\nWhile we are at it the current drafts have a flaw where it may not be\npossible to disable TCG features at boot (and opt out of the trusted\nmodel) as TCG intends because it relies on presence of a different\noptional feature (DCS). Handle this in software by refusing the TCG\ncommands if libata.allow_tpm is not set. (We must make it possible\nas some environments such as proprietary VDR devices will doubtless\nwant to use it to lock up content)\n\nFinally as with CPRM print a warning so that the user knows they may\nnot be able to full access and use the device.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\n"
    },
    {
      "commit": "562f0c2d771ee7be6b37fe015f94a929f8056120",
      "tree": "17d1616b39894564f70255bd68eec5c19ebf0473",
      "parents": [
        "7f9ad9b8b96855f529f4fe9db0bf32cd3f14c01b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sat Dec 15 15:05:01 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Dec 17 20:33:12 2007 -0500"
      },
      "message": "libata-acpi: add new hooks ata_acpi_dissociate() and ata_acpi_on_disable()\n\nAdd two hooks - ata_acpi_dissociate() which is called during driver\ndetach after the whole host is shutdown and ata_acpi_on_disable()\nwhich is called when a device is disabled.\n\nSigned-off-by: Tejun heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "ca77329fb713b7fea6a307068e0dd0248e7aa640",
      "tree": "6a1b987f489d7c3f0bbe81647b4ee2b0216afe8a",
      "parents": [
        "ab6fc95f609b372a19e18ea689986846ab1ba29c"
      ],
      "author": {
        "name": "Kristen Carlson Accardi",
        "email": "kristen.c.accardi@intel.com",
        "time": "Thu Oct 25 00:58:59 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Oct 29 11:00:35 2007 -0400"
      },
      "message": "[libata] Link power management infrastructure\n\nDevice Initiated Power Management, which is defined\nin SATA 2.5 can be enabled for disks which support it.\nThis patch enables DIPM when the user sets the link\npower management policy to \"min_power\".\n\nAdditionally, libata drivers can define a function\n(enable_pm) that will perform hardware specific actions to\nenable whatever power management policy the user set up\nfor Host Initiated Power management (HIPM).\nThis power management policy will be activated after all\ndisks have been enumerated and intialized.  Drivers should\nalso define disable_pm, which will turn off link power\nmanagement, but not change link power management policy.\n\nDocumentation/scsi/link_power_management_policy.txt has additional\ninformation.\n\nSigned-off-by:  Kristen Carlson Accardi \u003ckristen.c.accardi@intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "2b789108fc1dcba22050a7e6e29ae5ebaea427dd",
      "tree": "1c241e249c388d956ad9771efacfd827a24ec41e",
      "parents": [
        "5f226c6bf78edab023ed1ea679531731d9df92a6"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Oct 09 15:05:44 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:47 2007 -0400"
      },
      "message": "libata: add @timeout to ata_exec_internal[_sg]()\n\nAdd @timeout argument to ata_exec_internal[_sg]().  If 0, default\ntimeout ata_probe_timeout is used.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "d0df8b5d0fb547a3351c2a4b1ded7f7cde5d713a",
      "tree": "a2005ec3be6e493844b092edeca9306fbc70f4b8",
      "parents": [
        "633273a3ed1cf37ced90475b0f95cf81deab04f1"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Sep 23 13:19:54 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:44 2007 -0400"
      },
      "message": "libata-pmp: extend ACPI support to cover PMP\n\nExtend ata_acpi_associate_sata_port() such that it can handle PMP and\ncall it when PMP is attached and detached.\n\nBuild breakage when !CONFIG_ATA_ACPI was spotted and fixed by Petr\nVandrovec.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Petr Vandrovec \u003cpetr@vandrovec.name\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "633273a3ed1cf37ced90475b0f95cf81deab04f1",
      "tree": "5cd42191d1ea8d5ee84fb2f7c7660f124787d9e8",
      "parents": [
        "3af9a77af9e2b72366363864bfcd3d51465ff98a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Sep 23 13:19:54 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:44 2007 -0400"
      },
      "message": "libata-pmp: hook PMP support and enable it\n\nHook PMP support into libata and enable it.  Connect SCR and probing\nfunctions, and update ata_dev_classify() to detect PMP.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "3af9a77af9e2b72366363864bfcd3d51465ff98a",
      "tree": "f6a311a56353cf81d34d64cf1a3f86aa6f659246",
      "parents": [
        "3495de733633d24ee97852080b737b436c110d6e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Sep 23 13:19:54 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:44 2007 -0400"
      },
      "message": "libata-pmp: implement Port Multiplier support\n\nImplement Port Multiplier support.  To support PMP, a LLDD has to\nsupply ops-\u003epmp_read() and pmp_write().  If non-null, -\u003epmp_attach and\n-\u003epmp_detach are called on PMP attach and detach, respectively.\n\n-\u003epmp_read/write() can be called while the port is frozen, so they\nmust be implemented by polling.  This patch supplies several helpers\nto ease -\u003epmp_read/write() implementation.\n\nAlso, irq_handler and error_handler must be PMP aware.  Most of PMP\naware EH can be done by calling ata_pmp_do_eh() with appropriate\nmethods.  PMP EH uses separate set of reset methods and this patch\nimplements standard prereset, hardreset and postreset methods.\n\nThis patch only implements PMP support.  The next patch will integrate\nPMP into the reset of libata and thus enable PMP support.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "7d77b247088fb360aa74bfdd9e19bce1e1987668",
      "tree": "add1b03309dd6fa82eb0f47e1a88766695f38f28",
      "parents": [
        "e31e8531d668c9c4dc7883054788f89805188003"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Sep 23 13:14:13 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:42 2007 -0400"
      },
      "message": "libata-pmp-prep: implement sata_async_notification()\n\nAN serves multiple purposes.  For ATAPI, it\u0027s used for media change\nnotification.  For PMP, for downstream PHY status change notification.\nImplement sata_async_notification() which demultiplexes AN.\n\nTo avoid unnecessary port events, ATAPI AN is not enabled if PMP is\nattached but SNTF is not available.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Kriten Carlson Accardi \u003ckristen.c.accardi@intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "fb7fd61454c8681cd2621051a710b78a00369203",
      "tree": "491cbdbca867f59b9f1cb1032a4f40a33385e471",
      "parents": [
        "422c9daa8b5bea09f3393b11a106afd68850b39b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Sep 23 13:14:12 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:41 2007 -0400"
      },
      "message": "libata-pmp-prep: make a number of functions global to libata\n\nMake a number of functions from libata-core.c and libata-eh.c global\nto libata (drivers/ata/libata.h).  These will be used by PMP.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "422c9daa8b5bea09f3393b11a106afd68850b39b",
      "tree": "76a4d15d77a26c049ca80ae850473b83df47d332",
      "parents": [
        "e0a7175263db4a226558883a51a88a5d2bc5d9fe"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Sep 23 13:14:12 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:40 2007 -0400"
      },
      "message": "libata-pmp-prep: add @new_class to ata_dev_revalidate()\n\nConsider newly found class code while revalidating.  PMP resetting\nalways results in valid class code and issuing PMP commands to\nATA/ATAPI device isn\u0027t very attractive.  Add @new_class to\nata_dev_revalidate() and check class code for revalidation.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "c78968bb0f7714ceba1cdfa23714454fc98cefdf",
      "tree": "cbf066559205ce0d00829c74a406f3a2140623e4",
      "parents": [
        "24f756866676b40446e361c1f87738707161da93"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Sep 21 21:03:28 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:40 2007 -0400"
      },
      "message": "[libata] SCSI: simulator version, not device version, belongs in VPD\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "baf4fdfaaf5cb9f4fb1c341c8cef60a64e580582",
      "tree": "f26293a36958a6813bf1353cb07afd3d6be6aa0d",
      "parents": [
        "4cc980b34b2a25f600576dcd11de388bc44e1ebd"
      ],
      "author": {
        "name": "Mark Lord",
        "email": "liml@rtr.ca",
        "time": "Wed Aug 08 01:08:45 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:32 2007 -0400"
      },
      "message": "libata: add support for ATA_16 on ATAPI\n\nAdd support for issuing ATA_16 passthru commands to ATAPI devices\nmanaged by libata.  It requires the previous CDB length fix patch.\n\nA boot/module parameter, \"atapi_passthru16\u003d0\" can be used to globally\ndisable this feature, if ever desired.\n\ntj: restructured __ata_scsi_queuecmd() according to Jeff\u0027s suggestion.\n\nSigned-off-by: Mark Lord \u003climl@rtr.ca\u003e\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "0260731f0187840e272bfa10d3ba0f3e417976f5",
      "tree": "d39219275e89ce782f3151b5ac47726957a81e24",
      "parents": [
        "cc0680a580b5be81a1ca321b58f8e9b80b5c1052"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Aug 06 18:36:23 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:31 2007 -0400"
      },
      "message": "libata-link: linkify config/EH related functions\n\nMake the following functions deal with ata_link instead of ata_port.\n\n* ata_set_mode()\n* ata_eh_autopsy() and related functions\n* ata_eh_report() and related functions\n* suspend/resume related functions\n* ata_eh_recover() and related functions\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "936fd7328657884d5a69a55666c74a55aa83ca27",
      "tree": "83a78a02d2c65ce835fe33882dfe5043d3240bff",
      "parents": [
        "f58229f8060055b08b34008ea08f31de1e2f003c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Aug 06 18:36:23 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:30 2007 -0400"
      },
      "message": "libata-link: linkify PHY-related functions\n\nMake the following PHY-related functions to deal with ata_link instead\nof ata_port.\n\n* sata_print_link_status()\n* sata_down_spd_limit()\n* ata_set_sata_spd_limit() and friends\n* sata_link_debounce/resume()\n* sata_scr_valid/read/write/write_flush()\n* ata_link_on/offline()\n\nThis patch introduces no behavior change.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "5ddf24c5ea9d715dc4f5d5d5dd1c9337d90466dc",
      "tree": "6ba89094decfada468fba1f4670b9395c6f66e42",
      "parents": [
        "4e57c517b3cbaceb7438eeec879ca129fc17442c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Jul 16 14:29:41 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Jul 20 08:26:26 2007 -0400"
      },
      "message": "libata: implement EH fast drain\n\nIn most cases, when EH is scheduled, all in-flight commands are\naborted causing EH to kick in immediately.  However, in some cases\n(especially with PMP), it\u0027s unclear which commands are affected by the\nerror condition and although aborting all in-flight commands work, it\nisn\u0027t optimal and may cause unnecessary disruption.  On the other\nhand, waiting for in-flight commands to drain themselves can take up\nto 30seconds.\n\nThis patch implements EH fast drain to handle such situations.  It\ngives in-flight commands some time to finish up but doesn\u0027t wait for\ntoo long.  After EH is scheduled, fast drain timer is started and if\nno other completion occurs in ATA_EH_FASTDRAIN_INTERVAL all in-flight\ncommands are aborted.  If any completion occurred in the interval, the\nport is given another interval to finish up itself.\n\nCurrently ATA_EH_FASTDRAIN_INTERVAL is 3 secs which should be enough\nfor finishing up most commands.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "1ae463171cc1b1ea6dad7bcb298e96c073e7373e",
      "tree": "c3d62562c9be8c855f7238785ea9c9348f1e56f1",
      "parents": [
        "f1545154a5c96590b1992aac8ee1e2c445e301ed"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Jul 16 14:29:40 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Jul 20 08:26:25 2007 -0400"
      },
      "message": "libata: improve SCSI scan failure handling\n\nSCSI scan may fail due to memory allocation failure even if EH is not\nin progress.  Due to use of GFP_ATOMIC in SCSI scan path, allocation\nfailure isn\u0027t too rare especially while probing multiple devices at\nonce which is the case when a bunch of devices are connected to PMP.\n\nThis patch moves SCSI scan failure detetion logic from\nata_scsi_hotplug() to ata_scsi_scan_host() and implement synchronous\nscan behavior.  The synchronous path sleeps briefly and repeats SCSI\nscan if some devices aren\u0027t attached properly.  It contains robust\nretry loop to minimize the chance of device misdetection during boot\nand falls back to async retry if everything fails.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "64578a3de723d502621860f9d4d28f34d001b066",
      "tree": "821e7ad8e8d6c3a0f3224b479ff000e00001a165",
      "parents": [
        "e5fa24dfdb522b642dbe9b8b1b692f68dce89835"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue May 15 03:28:16 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jul 09 12:17:32 2007 -0400"
      },
      "message": "libata-acpi: implement _GTM/_STM support\n\nImplement _GTM/_STM support.  acpi_gtm is added to ata_port which\nstores _GTM parameters over suspend/resume cycle.  A new hook\nata_acpi_on_suspend() is responsible for storing _GTM parameters\nduring suspend.  _STM is executed in ata_acpi_on_resume().  With this\nchange, invoking _GTF is safe on IDE hierarchy and acpi_sata check\nbefore _GTF is removed.\n\nata_acpi_gtm() and ata_acpi_stm() implementation is taken from Alan\nCox\u0027s pata_acpi implementation.  ata_acpi_gtm() is fixed such that the\nresult parameter is not shifted by sizeof(union acpi_object).\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "6746544c3b143ca7071d144f1882ccbe1f47b08d",
      "tree": "49106311ab2a748feda2fa91f977f700938d3d5c",
      "parents": [
        "69b16a5f4c4f1dab70d4d555c487c318c6878b3e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue May 15 03:28:16 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jul 09 12:17:31 2007 -0400"
      },
      "message": "libata: reimplement ACPI invocation\n\nThis patch reimplements ACPI invocation such that, instead of\nexporting ACPI details to the rest of libata, ACPI event handlers -\nata_acpi_on_resume() and ata_acpi_on_devcfg() - are used.  These two\nfunctions are responsible for determining whether specific ACPI method\nis used and when.\n\nOn resume, _GTF is scheduled by setting ATA_DFLAG_ACPI_PENDING device\nflag.  This is done this way to avoid performing the action on wrong\ndevice device (device swapping while suspended).\n\nOn every ata_dev_configure(), ata_acpi_on_devcfg() is called, which\nperforms _SDD and _GTF.  _GTF is performed only after resuming and, if\nSATA, hardreset as the ACPI spec specifies.  As _GTF may contain\narbitrary commands, IDENTIFY page is re-read after _GTF taskfiles are\nexecuted.\n\nIf one of ACPI methods fails, ata_acpi_on_devcfg() retries on the\nfirst failure.  If it fails again on the second try, ACPI is disabled\non the device.  Note that successful configuration clears ACPI failed\nstatus.\n\nWith all feature checks moved to the above two functions,\ndo_drive_set_taskfiles() is trivial and thus collapsed into\nata_acpi_exec_tfs(), which is now static and converted to return the\nnumber of executed taskfiles to be used by ata_acpi_on_resume().  As\nfailures are handled properly, ata_acpi_push_id() now returns -errno\non errors instead of unconditional zero.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "fafbae87db88a73b166d3bc3294d209207f27056",
      "tree": "158217a52a396b2be110688f23eacbe25cf1c2d7",
      "parents": [
        "7dcca30a32aadb0520417521b0c44f42d09fe05c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue May 15 03:28:16 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jul 09 12:17:31 2007 -0400"
      },
      "message": "libata-acpi: implement ata_acpi_associate()\n\n* Add acpi_handle to ata_host and ata_port.  Rename\n  ata_device-\u003eobj_handle to -\u003eacpi_handle and move it above such that\n  it doesn\u0027t get cleared on reconfiguration.\n\n* Replace ACPI node association which ata_acpi_associate() which is\n  called once during host initialization.  Unlike the previous\n  implementation, ata_acpi_associate() uses ATA_FLAG_ACPI_SATA to\n  choose between IDE or SATA ACPI hierarchy and uses simple child look\n  up instead of recursive walk to match the nodes.  This is way safer\n  and simpler.  Please read the following message for more info.\n\n  http://article.gmane.org/gmane.linux.ide/17554\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "d9aca22cf443f5ed77d15a320abbab055ae4a976",
      "tree": "a808d879baf21a557a93e9ef3a0d96b004985f8b",
      "parents": [
        "1daf9ce74e0e0ef8ffde800ab495339458c3375f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu May 17 16:43:26 2007 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu May 17 20:57:38 2007 -0400"
      },
      "message": "libata: remove libata.spindown_compat\n\nWith STANDBYDOWN tracking added, libata.spindown_compat isn\u0027t\nnecessary anymore.  If userspace shutdown(8) issues STANDBYNOW, libata\nwarns.  If userspace shutdown(8) doesn\u0027t issue STANDBYNOW, libata does\nthe right thing.  Userspace can tell whether kernel supports spindown\nby testing whether sysfs node manage_start_stop exists as before.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "fe30911b34098db58c21d0f936f6c3f17f32deb8",
      "tree": "70cca4ffb94f5f34650c30c68d46173505ee890f",
      "parents": [
        "d1c68fa6ce7e56e300d8561bb3b6492c336df863"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue May 15 03:28:15 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed May 16 01:18:30 2007 -0400"
      },
      "message": "libata: separate out ata_dev_reread_id()\n\nSeparate out ata_dev_reread_id() from ata_dev_revalidate().\nata_dev_reread_id() reads IDENTIFY page and determines whether the\nsame device is still there.  ata_dev_revalidate() reconfigures after\nreread completes.  This will be used by ACPI update.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "3a32a8e96694a243ec7e7feb6d76dfc4b1fe90c1",
      "tree": "c7e326d85996b196770e5bef4d7fd005380b09a0",
      "parents": [
        "e92351bb53c0849fabfa80be53cbf3b0aa166e54"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sat May 05 23:50:38 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri May 11 18:12:42 2007 -0400"
      },
      "message": "libata-acpi: clean up parameters and misc stuff\n\nThis patch cleans up libata-acpi such that it looks similar to other\nlibata files.  This patch doesn\u0027t introuce any behavior changes.\n\n* make libata-acpi functions take ata_device instead of ata_port +\n  device index\n* s/atadev/dev/\n* de-indent local variable declarations\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "e92351bb53c0849fabfa80be53cbf3b0aa166e54",
      "tree": "cb182d532feb99015e66c7377ecfaf9041153cc2",
      "parents": [
        "8575b814097af648dad284bd3087875a11b13d18"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sat May 05 23:50:38 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri May 11 18:12:42 2007 -0400"
      },
      "message": "libata-acpi: s/CONFIG_SATA_ACPI/CONFIG_ATA_ACPI/\n\nACPI applies to both SATA and PATA.  Drop the \u0027S\u0027 from the config\nvariable.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "920a4b1038e442700a1cfac77ea7e20bd615a2c3",
      "tree": "4209c04b64b021a3e4253a484b108b2475a2860a",
      "parents": [
        "9666f4009c22f6520ac3fb8a19c9e32ab973e828"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri May 04 21:28:48 2007 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri May 11 18:01:04 2007 -0400"
      },
      "message": "libata: implement libata.spindown_compat\n\nNow that libata uses sd-\u003emanage_start_stop, libata spins down disk on\nshutdown.  In an attempt to compensate libata\u0027s previous shortcoming,\nsome distros sync and spin down disks attached via libata in their\nshutdown(8).  Some disks spin back up just to spin down again on\nSTANDBYNOW1 if the command is issued when the disk is spun down, so\nthis double spinning down causes problem.\n\nThis patch implements module parameter libata.spindown_compat which,\nwhen set to one (default value), prevents libata from spinning down\ndisks on shutdown thus avoiding double spinning down.  Note that\nlibata spins down disks for suspend to mem and disk, so with\nlibata.spindown_compat set to one, disks should be properly spun down\nin all cases without modifying shutdown(8).\n\nshutdown(8) should be fixed eventually.  Some drive do spin up on\nSYNCHRONZE_CACHE even when their cache is clean.  Those disks\ncurrently spin up briefly when sd tries to shutdown the device and\nthen the machine powers off immediately, which can\u0027t be good for the\nhead.  We can\u0027t skip SYNCHRONIZE_CACHE during shudown as it can be\ndangerous data integrity-wise.\n\nSo, this spindown_compat parameter is already scheduled for removal by\nthe end of the next year and here\u0027s what shutdown(8) should do.\n\n  * Check whether /sys/modules/libata/parameters/spindown_compat\n    exists.  If it does, write 0 to it.\n\n  * For each libata harddisk {\n\t* Check whether /sys/class/scsi_disk/h:c:i:l/manage_start_stop\n\t  exists.  Iff it doesn\u0027t, synchronize cache and spin the disk\n\t  down as before.\n  }\n\nThe above procedure will make shutdown(8) work properly with kernels\nbefore this change, ones with this workaround and later ones without\nit.\n\nTo accelerate shutdown(8) updates, if the compat mode is in use, this\npatch prints BIG FAT warning for five seconds during shutdown (the\noptimal interval to annoy the user just the right amount discovered by\nhours of tireless usability testing).\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "6bfff31e77cfa1b13490337e5a4dbaa3407e83ac",
      "tree": "89f7dc5379453381aed939741fc3a7e46b0465fa",
      "parents": [
        "5d728824efeda61d304153bfcf1378a3c18b7d70"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Apr 17 23:44:08 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Apr 28 14:16:06 2007 -0400"
      },
      "message": "libata: kill probe_ent and related helpers\n\nAll drivers are converted to new init model.  Kill probe_ent,\nata_device_add() and ata_pci_init_native_mode().\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "f31871951b38daf2d7ca17daad59fdb735062da3",
      "tree": "4286402eaf679b6fb73e893d8e51bb693559091d",
      "parents": [
        "ecef7253235e7a9365afe08a508e11bed91c1c11"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Apr 17 23:44:07 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Apr 28 14:16:03 2007 -0400"
      },
      "message": "libata: separate out ata_host_alloc() and ata_host_register()\n\nReorganize ata_host_alloc() and its subroutines into the following\nthree functions.\n\n* ata_host_alloc() : allocates host and its ports.  shost is not\n  registered automatically.\n\n* ata_scsi_add_hosts() : allocates and adds shosts associated with an\n  ATA host.  Used by ata_host_register().\n\n* ata_host_register() : takes a fully initialized ata_host structure\n  and registers it to libata layer and probes it.\n\nOnly ata_host_alloc() and ata_host_register() are exported.\nata_device_add() is rewritten using the above functions.  This patch\ndoes not introduce any observable behavior change.  Things worth\nmentioning.\n\n* print_id is assigned at registration time and LLDs are allowed to\n  overallocate ports and reduce host-\u003en_ports during initialization.\n  ata_host_register() will throw away unused ports automatically.\n\n* All SCSI host initialization stuff now resides in\n  ata_scsi_add_hosts() in libata-scsi.c, where it should be.\n\n* ipr is now the only user of ata_host_init().  Either kill it by\n  converting ipr to use ata_host_alloc() and friends or rename and\n  move it to libata-scsi.c\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "d7d0dad62a641c156386288a747c1a2f6bb2e42d",
      "tree": "b95bd786ae78c199892791bff1d2c583475e2239",
      "parents": [
        "28defbea64622f69d65a6079bf800cedb9915a5f"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Mar 28 01:57:37 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Mar 28 01:57:37 2007 -0400"
      },
      "message": "[libata] Disable ACPI by default; fix namespace problems\n\nNot yet ready to turn on ATA ACPI by default, for either PATA or SATA.\n\nAlso, rename the global-scope module parameter variable \u0027noacpi\u0027 to\nsomething more libata-specific, reducing the potential for namespace\ncollision.\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "4bb64fb98168981d3e5a0e790c077ff511768e84",
      "tree": "0eb8abc40dc6777fb9ee0b98ae988904c2127b6b",
      "parents": [
        "2b06719153089aa8f5ac577f15f8aa8e5b5fe357"
      ],
      "author": {
        "name": "Alan",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Fri Feb 16 01:40:04 2007 -0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Feb 21 04:58:17 2007 -0500"
      },
      "message": "SiS warning fixes\n\nSomehow the sis_info133 external definition ended up in libata.h and that\nwas included by both drivers.  However libata.h contains libata-* specific\ninternals and clashing defines like DRV_NAME so this makes a mess.  Move\nthe extern into the C file and remove the warnings\n\n[akpm@linux-foundation.org: create sis.h to avoid extern-decl-in-C]\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "909706a2477a92b6e0f3083ed4b944cb1d09acfa",
      "tree": "a867e3ebbcec3d135022850df24a8685ea64ac36",
      "parents": [
        "7d47e8d4d4fb0c3d3bdc706759e70d5453b61ec3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri Feb 02 16:22:31 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Feb 21 04:58:17 2007 -0500"
      },
      "message": "libata: kill ATA_DNXFER_ANY\n\nATA_DNXFER_ANY isn\u0027t used anymore.  Kill it.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "458337dbb120d33f326e2b19d54eca8cf179b5c0",
      "tree": "91bc5284430b5a8856ec1b2fd4c277c4eb3f8827",
      "parents": [
        "a619f981b477035027dd27dfbee6148b4cd4a83c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri Feb 02 16:22:30 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Feb 21 04:58:16 2007 -0500"
      },
      "message": "libata: improve ata_down_xfermask_limit()\n\nMake ata_down_xfermask_limit() accept @sel instead of @force_pio0.\n@sel selects how the xfermask limit will be adjusted.  The following\nselectors are defined.\n\n* ATA_DNXFER_PIO\t: only speed down PIO\n* ATA_DNXFER_DMA\t: only speed down DMA, don\u0027t cause transfer mode change\n* ATA_DNXFER_40C\t: apply 40c cable limit\n* ATA_DNXFER_FORCE_PIO\t: force PIO\n* ATA_DNXFER_FORCE_PIO0\t: force PIO0 (same as original with @force_pio0 \u003d\u003d 1)\n* ATA_DNXFER_ANY\t: same as original with @force_pio0 \u003d\u003d 0\n\nCurrently, only ANY and FORCE_PIO0 are used to maintain the original\nbehavior.  Other selectors will be used later to improve EH speed down\nsequence.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "7ea1fbc2a2449bc034a3d255f36f2e5486d52fe8",
      "tree": "efa06ba55094924f27e7598b393a46b8c2753ec0",
      "parents": [
        "11ef697b37e3c85ce1ac21f7711babf1f5b12784"
      ],
      "author": {
        "name": "Kristen Carlson Accardi",
        "email": "kristen.c.accardi@intel.com",
        "time": "Thu Sep 28 11:29:12 2006 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 16 13:32:41 2007 -0500"
      },
      "message": "[PATCH] libata: ACPI _SDD support\n\n_SDD (Set Device Data) is an ACPI method that is used to tell the\nfirmware what the identify data is of the device that is attached to\nthe port.  It is an optional method, and it\u0027s ok for it to be missing.\nBecause of this, we always return success from the routine that calls\nthis method, even if the execution fails.\n\nSigned-off-by: Kristen Carlson Accardi \u003ckristen.c.accardi@intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n(cherry picked from 39aa79e0a1f5f2e28aa341f035940746a98b45b1 commit)\n"
    },
    {
      "commit": "11ef697b37e3c85ce1ac21f7711babf1f5b12784",
      "tree": "7b118d54bc8fc24ca8cbc626d603013d07ed8c2a",
      "parents": [
        "8a03d9a498eaf02c8a118752050a5154852c13bf"
      ],
      "author": {
        "name": "Kristen Carlson Accardi",
        "email": "kristen.c.accardi@intel.com",
        "time": "Thu Sep 28 11:29:01 2006 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 16 13:32:41 2007 -0500"
      },
      "message": "[PATCH] libata: ACPI and _GTF support\n\n_GTF is an acpi method that is used to reinitialize the drive.  It returns\na task file containing ata commands that are sent back to the drive to restore\nit to boot up defaults.\n\nSigned-off-by: Kristen Carlson Accardi \u003ckristen.c.accardi@intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n(cherry picked from 9c69cab24b51a89664f4c0dfaf8a436d32117624 commit)\n"
    },
    {
      "commit": "fda0efc5977864a90f365aeeb13f2546854e2aa9",
      "tree": "b022d56f648d3686f7d959d5a0be85adc5734694",
      "parents": [
        "d24bbbf251e70bf984cbaa9b1fcadc5f56fc3ae9"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 31 07:43:15 2007 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 09 17:39:37 2007 -0500"
      },
      "message": "[libata] Shuffle DRV_xxx in core and SiS drivers, to kill warnings\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "77a527eadb425b60db3f5f0aae6a4c51c38e35e5",
      "tree": "a6636031ac808b137b03a244e87db771e9eb3573",
      "parents": [
        "9b14dec5adf47287a2b52fc9fdedd6a0e245daca"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue Jan 30 00:59:17 2007 -0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 09 17:39:34 2007 -0500"
      },
      "message": "fix CONFIG_SATA_SIS\u003dy compile error\n\nStatic code shouldn\u0027t be used from other modules.\n\ndrivers/built-in.o: In function `sis_init_one\u0027:\nsata_sis.c:(.text+0x7634cd): undefined reference to `sis_info133\u0027\nsata_sis.c:(.text+0x7634d6): undefined reference to `sis_info133\u0027\n\nWhile I was at it, I also moved the prototype of this struct to a header\nfile.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "9db73724453a9350e1c22dbe732d427e2939a5c9",
      "tree": "15e3ead6413ae97398a54292acc199bee0864d42",
      "parents": [
        "4c1ac1b49122b805adfa4efc620592f68dccf5db",
        "e62438630ca37539c8cc1553710bbfaa3cf960a7"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Dec 05 17:01:28 2006 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@warthog.cambridge.redhat.com",
        "time": "Tue Dec 05 17:01:28 2006 +0000"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6\n\nConflicts:\n\n\tdrivers/ata/libata-scsi.c\n\tinclude/linux/libata.h\n\nFuther merge of Linus\u0027s head and compilation fixups.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "800b399669ad495ad4361d134df87401ae36f44f",
      "tree": "19e29f655836cd4808c668d736a83df552b7d8dd",
      "parents": [
        "3ac551a6a63dcbc707348772a27bd7090b081524"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Dec 03 21:34:13 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sun Dec 03 07:58:10 2006 -0500"
      },
      "message": "[PATCH] libata: always use polling IDENTIFY\n\nlibata switched to IRQ-driven IDENTIFY when IRQ-driven PIO was\nintroduced.  This has caused a lot of problems including device\nmisdetection and phantom device.\n\nATA_FLAG_DETECT_POLLING was added recently to selectively use polling\nIDENTIFY on problemetic drivers but many controllers and devices are\naffected by this problem and trying to adding ATA_FLAG_DETECT_POLLING\nfor each such case is diffcult and not very rewarding.\n\nThis patch makes libata always use polling IDENTIFY.  This is\nconsistent with libata\u0027s original behavior and drivers/ide\u0027s behavior.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "70e6ad0c6d1e6cb9ee3c036a85ca2561eb1fd766",
      "tree": "9af1423c89d7f58093d2ee3cfc2112c2060ebfca",
      "parents": [
        "bd056d7eeb55d696556ee4f5ee2acb67b2d16df4"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Nov 14 22:47:10 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Dec 03 17:56:24 2006 +0900"
      },
      "message": "[PATCH] libata: prepare ata_sg_clean() for invocation from EH\n\nMake ata_sg_clean() global and don\u0027t allow NCQ for internal commands.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "bd056d7eeb55d696556ee4f5ee2acb67b2d16df4",
      "tree": "f6ca604abc43d73d42354d977f1bcedd262dbcda",
      "parents": [
        "2432697ba0ce312d60be5009ffe1fa054a761bb9"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Nov 14 22:47:10 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Dec 03 17:56:24 2006 +0900"
      },
      "message": "[PATCH] libata: separate out rw ATA taskfile building into ata_build_rw_tf()\n\nSeparate out rw ATA taskfile building from ata_scsi_rw_xlat() into\nata_build_rw_tf().  This will be used to improve media error handling.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "2432697ba0ce312d60be5009ffe1fa054a761bb9",
      "tree": "8fe745ffb50986bee7d0cab5281278c7f77f983c",
      "parents": [
        "0f0a3ad3741fd93461fcfb85dc577103c58d9be8"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Nov 14 22:47:09 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Dec 03 17:56:24 2006 +0900"
      },
      "message": "[PATCH] libata: implement ata_exec_internal_sg()\n\nSg\u0027ify ata_exec_internal() and call it ata_exec_internal_sg().\nWrapper function around ata_exec_internal_sg() is implemented to\nprovide ata_exec_internal() interface.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "35b649fe2587b2e569c17c022ba3506ba441b6a2",
      "tree": "07d1b36f0241d48fa71159e7bc7a096ac5842bed",
      "parents": [
        "750426aa1ad1ddd1fa8bb4ed531a7956f3b9a27c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Nov 14 22:37:35 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Dec 01 22:46:00 2006 -0500"
      },
      "message": "[PATCH] libata: implement ata_tf_read_block()\n\nImplement ata_tf_read_block().\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "55a8e2c83ce50548dfef74bb19dfe2b809cb3099",
      "tree": "1d5ed12c49a254364f9009e9cdbf4609b92f3afb",
      "parents": [
        "bff0464769f2a1bd348265de704471747378e247"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri Nov 10 18:08:10 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Dec 01 22:45:55 2006 -0500"
      },
      "message": "[PATCH] libata: implement presence detection via polling IDENTIFY\n\nOn some controllers (ICHs in piix mode), there is *NO* reliable way to\ndetermine device presence other than issuing IDENTIFY and see how the\ntransaction proceeds by watching the TF status register.\n\nlibata acted this way before irq-pio and phantom devices caused very\nlittle problem but now that IDENTIFY is performed using IRQ drive PIO,\nsuch phantom devices now result in multiple 30sec timeouts during\nboot.\n\nThis patch implements ATA_FLAG_DETECT_POLLING.  If a LLD sets this\nflag, libata core issues the initial IDENTIFY in polling mode and if\nthe initial data transfer fails w/ HSM violation, the port is\nconsidered to be empty thus replicating the old libata and IDE\nbehavior.\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "bff0464769f2a1bd348265de704471747378e247",
      "tree": "50b04bf291837cb99ca67ac557d577aaf84a75f8",
      "parents": [
        "b3362f88a8f938fb700fdedf074ec222cba7cf83"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri Nov 10 18:08:10 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Dec 01 22:45:55 2006 -0500"
      },
      "message": "[PATCH] libata: convert @post_reset to @flags in ata_dev_read_id()\n\nMake ata_dev_read_id() take @flags instead of @post_reset.  Currently\nthere is only one flag defined - ATA_READID_POSTRESET, which is\nequivalent to @post_reset.  This is preparation for polling presence\ndetection.\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "efdaedc443e935eda82e9e78a6e65d1f993d242f",
      "tree": "8bcdc05ec85f7a9e7b0a5b1e5014ec21cf4e8aac",
      "parents": [
        "ad616ffbda8caf3ce76d2b43027e789d732abf48"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Nov 01 18:38:52 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Dec 01 22:41:31 2006 -0500"
      },
      "message": "[PATCH] libata: implement ATA_EHI_PRINTINFO\n\nImplement ehi flag ATA_EHI_PRINTINFO.  This flag is set when device\nconfiguration needs to print out device info.  This used to be handled\nby @print_info argument to ata_dev_configure() but LLDs also need to\nknow about it in -\u003edev_config() callback.\n\nThis patch replaces @print_info w/ ATA_EHI_PRINTINFO and make sata_sil\nprint workaround messages only on the initial configuration.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "90088bb41200b4da962282dfd45db82544adac3b",
      "tree": "84241a4af54715469dd237bd6925f46530f2b5b7",
      "parents": [
        "d1adc1bbd6dde3e05a91e2d3e6ab42d202ea61d5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Oct 09 11:10:26 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Dec 01 22:40:28 2006 -0500"
      },
      "message": "[PATCH] libata: move ata_irq_on() into libata-sff.c\n\nata_irq_on() isn\u0027t used outside of libata core layer.  The function is\nTF/SFF interface specific but currently used by core path with some\nhack too.  Move it from include/linux/libata.h to\ndrivers/ata/libata-sff.c.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "65f27f38446e1976cc98fd3004b110fedcddd189",
      "tree": "68f8be93feae31dfa018c22db392a05546b63ee1",
      "parents": [
        "365970a1ea76d81cb1ad2f652acb605f06dae256"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Nov 22 14:55:48 2006 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Nov 22 14:55:48 2006 +0000"
      },
      "message": "WorkStruct: Pass the work_struct pointer instead of context data\n\nPass the work_struct pointer to the work function rather than context data.\nThe work function can use container_of() to work out the data.\n\nFor the cases where the container of the work_struct may go away the moment the\npending bit is cleared, it is made possible to defer the release of the\nstructure by deferring the clearing of the pending bit.\n\nTo make this work, an extra flag is introduced into the management side of the\nwork_struct.  This governs auto-release of the structure upon execution.\n\nOrdinarily, the work queue executor would release the work_struct for further\nscheduling or deallocation by clearing the pending bit prior to jumping to the\nwork function.  This means that, unless the driver makes some guarantee itself\nthat the work_struct won\u0027t go away, the work function may not access anything\nelse in the work_struct or its container lest they be deallocated..  This is a\nproblem if the auxiliary data is taken away (as done by the last patch).\n\nHowever, if the pending bit is *not* cleared before jumping to the work\nfunction, then the work function *may* access the work_struct and its container\nwith no problems.  But then the work function must itself release the\nwork_struct by calling work_release().\n\nIn most cases, automatic release is fine, so this is the default.  Special\ninitiators exist for the non-auto-release case (ending in _NAR).\n\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "6e42acc4115bc376b8523acbcba2b2b7cc27d016",
      "tree": "c4783213a996aa07ba43bef5b0f337f3f0d3b9b9",
      "parents": [
        "f833229c96c0bf53c05995e4bd58709d9e9edd67"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri Oct 27 19:08:42 2006 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Oct 31 20:40:09 2006 -0500"
      },
      "message": "[PATCH] libata: unexport ata_dev_revalidate()\n\nata_dev_revalidate() isn\u0027t used outside of libata core.  Unexport it.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "cca3974e48607c3775dc73b544a5700b2e37c21a",
      "tree": "0777d6121ba199af0aad196eb5a693510ec8e62e",
      "parents": [
        "54a86bfc3d4601be9c36cd4e8a1bdc580c98fa6a"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Aug 24 03:19:22 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Aug 24 03:19:22 2006 -0400"
      },
      "message": "libata: Grand renaming.\n\nThe biggest change is that ata_host_set is renamed to ata_host.\n\n* ata_host_set\t\t\t\u003d\u003e ata_host\n* ata_probe_ent-\u003ehost_flags\t\u003d\u003e ata_probe_ent-\u003eport_flags\n* ata_probe_ent-\u003ehost_set_flags\t\u003d\u003e ata_probe_ent-\u003e_host_flags\n* ata_host_stats\t\t\u003d\u003e ata_port_stats\n* ata_port-\u003ehost\t\t\u003d\u003e ata_port-\u003escsi_host\n* ata_port-\u003ehost_set\t\t\u003d\u003e ata_port-\u003ehost\n* ata_port_info-\u003ehost_flags\t\u003d\u003e ata_port_info-\u003eflags\n* ata_(.*)host_set(.*)\\(\\)\t\u003d\u003e ata_\\1host\\2()\n\nThe leading underscore in ata_probe_ent-\u003e_host_flags is to avoid\nreusing -\u003ehost_flags for different purpose.  Currently, the only user\nof the field is libata-bmdma.c and probe_ent itself is scheduled to be\nremoved.\n\nata_port-\u003ehost is reused for different purpose but this field is used\ninside libata core proper and of different type.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "c6fd280766a050b13360d7c2d59a3d6bd3a27d9a",
      "tree": "fdbeab639bc3dec29267bbf4b32cff7c8dd03593",
      "parents": [
        "79ed35a9f139ad2b2653dfdd5f45a8f1453e2cbb"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Aug 10 07:31:37 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Aug 10 07:31:37 2006 -0400"
      },
      "message": "Move libata to drivers/ata.\n"
    },
    {
      "commit": "80289167fd3ebaeb7b2641e69cbec44b61165fe7",
      "tree": "cb979ef0563377b9c901359dbcb1f117ff7d48d5",
      "parents": [
        "f6d950e2a5209bd7e3fb1a238f43f24f3697f5b0"
      ],
      "author": {
        "name": "Brian King",
        "email": "brking@us.ibm.com",
        "time": "Mon Aug 07 14:27:31 2006 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Aug 09 00:08:39 2006 -0400"
      },
      "message": "[PATCH] libata: Add support for SATA attachment to SAS adapters\n\nThe following patch enhances libata to allow SAS device drivers\nto utilize libata to talk to SATA devices. It introduces some\nnew APIs which allow libata to be used without allocating a\nvirtual scsi host.\n\nNew APIs:\n\nata_sas_port_alloc - Allocate an ata_port\nata_sas_port_init - Initialize an ata_port (probe device, etc)\nata_sas_port_destroy - Free an ata_port allocated by ata_sas_port_alloc\nata_sas_slave_configure - configure scsi device\nata_sas_queuecmd - queue a scsi command, similar to ata_scsi_queuecomand\n\nThese new APIs can be used either directly by a SAS LLDD or could be used\nby the SAS transport class.\n\nPossible usage for a SAS LLDD would be:\n\nscsi_scan_host\n\ttarget_alloc\n\t\tata_sas_port_alloc\n\tslave_alloc\n\t\tata_sas_port_init\n\tslave_configure\n\t\tata_sas_slave_configure\n\nCommands received by the LLDD for SATA devices would call ata_sas_queuecmd.\n\nDevice teardown would occur with:\n\nslave_destroy\n\tport_disable\ntarget_destroy\n\tata_sas_port_destroy\n\nSigned-off-by: Brian King \u003cbrking@us.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "f6d950e2a5209bd7e3fb1a238f43f24f3697f5b0",
      "tree": "acdcb6deba03af3255c6e4bd76593ffa570e1698",
      "parents": [
        "155a8a9c8f4084016d9e27bf03ba1f19201438f4"
      ],
      "author": {
        "name": "Brian King",
        "email": "brking@us.ibm.com",
        "time": "Mon Aug 07 14:27:24 2006 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Aug 09 00:08:38 2006 -0400"
      },
      "message": "[PATCH] libata: Move ata_probe_ent_alloc to libata_core\n\nMove ata_probe_ent_alloc to libata-core. It will also be used by\nfuture SAS/SATA integration patches.\n\nSigned-off-by: Brian King \u003cbrking@us.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "155a8a9c8f4084016d9e27bf03ba1f19201438f4",
      "tree": "31ea68dd479537b3d1e039f124e34d4270cb9eb8",
      "parents": [
        "b03732f006bd1ecee32587ec8235c41af5ad905f"
      ],
      "author": {
        "name": "Brian King",
        "email": "brking@us.ibm.com",
        "time": "Mon Aug 07 14:27:17 2006 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Aug 09 00:08:38 2006 -0400"
      },
      "message": "[PATCH] libata: Add ata_port_init\n\nSeparate out the ata_port initialization from ata_host_init\nso that it can be used in future SAS patches.\n\nSigned-off-by: Brian King \u003cbrking@us.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "77b08fb56a41e84b5e78b14f24d79879235e3337",
      "tree": "fd91513aa74ea2d87bb5352b533a6985595778c7",
      "parents": [
        "977e6b9f3a9b17f1c608a9d1e5a7b5c46a5f7d4a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sat Jun 24 20:30:19 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jun 26 20:59:27 2006 -0400"
      },
      "message": "[PATCH] libata: make two functions global\n\nMake ata_do_simple_cmd() and ata_flush_cache() global.  These will be\nused from libata-eh.c.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "8676ce07d38a09e0f41497d178357a314c4620cf",
      "tree": "c9fd591510e54d7d555bc431df9c49dfdf18fdd1",
      "parents": [
        "eb99adde31b7d85c67a5e1c2fa5e098e1056dd79"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jun 26 20:41:33 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jun 26 20:41:33 2006 -0400"
      },
      "message": "[libata] Bump versions\n\nUpdate major version for libata, and several drivers.\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "3057ac3c1a992ee135cbb7b7d1a12e58d81f0739",
      "tree": "38d83a88ee949b9db8f6655f90f98d88f8a5f2fd",
      "parents": [
        "39b07ce6d9f7cd4da8567baed844801e0aaa7b1a"
      ],
      "author": {
        "name": "zhao, forrest",
        "email": "forrest.zhao@intel.com",
        "time": "Mon Jun 12 12:01:34 2006 +0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jun 12 00:18:35 2006 -0400"
      },
      "message": "[PATCH] Snoop SET FEATURES - WRITE CACHE ENABLE/DISABLE command(v5)\n\nThis patch makes libata snoop \u0027SET FEATURES - WRITE CACHE\nENABLE/DISABLE\u0027 command, executing requisite revalidation processes\nto update cached data.\n\nSigned-off-by: Forrest Zhao \u003cforrest.zhao@intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "d87fa38e70853a9607dc34a02d15cf5f149f49f2",
      "tree": "6afc6f8b9ff9c2c441efd61829d5d6fa6eb5698d",
      "parents": [
        "52783c5dcc8d317bc8c3e2692d366e8a305abada"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:28:24 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:28:24 2006 +0900"
      },
      "message": "[PATCH] libata-hp: move ata_do_reset() to libata-eh.c\n\nWith ops-\u003eprobe_init() gone, no user is left in libata-core.c.  Move\nata_do_reset() to libata-eh.c and make it static.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "580b2102327ab8444af5bde4e70b50d268a1d558",
      "tree": "01389e898e09dbaddb06405b182116b9be0e6d59",
      "parents": [
        "084fe639b81c4d418a2cf714acb0475e3713cb73"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:28:05 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:28:05 2006 +0900"
      },
      "message": "[PATCH] libata-hp: implement SCSI part of hotplug\n\nImplement SCSI part of hotplug.\n\nThis must be done in a separate context as SCSI makes use of EH during\nprobing.  SCSI scan fails silently if EH is in progress.  In such\ncases, libata pauses briefly and retries until every device is\nattached.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "0ea035a3d1ad948096e205f08f350c03d5cea453",
      "tree": "fd003f929ab079f0852e3709436ca30a18265a39",
      "parents": [
        "e8e008e7b5ed8c65675cc9b3e778b8bb909f65ab"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:28:01 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:28:01 2006 +0900"
      },
      "message": "[PATCH] libata-hp: implement ata_eh_detach_dev()\n\nImplement ata_eh_detach_dev().  This function is responsible for\ndetaching an ATA device and offlining the associated SCSI device\natomically so that the detached device is not accessed after ATA\ndetach is complete.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "a9beec95352ff675f27d74c3cb97dc258d022497",
      "tree": "f301e31e3a9648bd6e2f4050a44b4e89aebe0f18",
      "parents": [
        "453b07accb47c5b54aa2f156ebffac63c543027b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:27:44 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:27:44 2006 +0900"
      },
      "message": "[PATCH] libata-hp-prep: make probing related functions global\n\nHotplug will be implemented in libata-eh.c.  Make ata_dev_read_id()\nand ata_dev_configure() global.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "453b07accb47c5b54aa2f156ebffac63c543027b",
      "tree": "a08ee98bab64b1d92a9856e086c87de53012b6fc",
      "parents": [
        "3edebac41bab7e146578ad9e723ee7fff71c99c0"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:27:42 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:27:42 2006 +0900"
      },
      "message": "[PATCH] libata-hp-prep: add ata_aux_wq\n\nIt\u0027s best to run ATA hotplug from EH but attaching SCSI devices needs\nworking EH.  ata_aux_wq is used to give SCSI hotplug operations a\nseparate context.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "3ef3b43d5633d30fa3f033f62094ec2e9c5b8376",
      "tree": "815ba1afeb202834667e1dff08fa69b63ec0628f",
      "parents": [
        "abdda7331d469fa965167365f011d05e226008fb"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:27:30 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:27:30 2006 +0900"
      },
      "message": "[PATCH] libata-hp-prep: implement ata_dev_init()\n\nMove initialization of struct ata_device into ata_dev_init() in\npreparation for hotplug.  This patch calls ata_dev_init() from\nata_host_init() and thus makes no functional difference.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "c6cf9e99d1de5ca6a08fb639bb73031ffe50d802",
      "tree": "555a47d45b5b80ef14ff53ccb4c6d1439460e251",
      "parents": [
        "7395acb2c840fd4d0cacc91d6fb71440057141ab"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:27:27 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:27:27 2006 +0900"
      },
      "message": "[PATCH] libata: implement ata_eh_wait()\n\nImplement ata_eh_wait().  On return from this function, it\u0027s\nguaranteed that the EH which was pending or in progress when the\nfunction was called is complete - including the tailing part of SCSI\nEH.  This will be used by hotplug and others to synchronize with EH.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "7b70fc039824bc7303e4007a5f758f832de56611",
      "tree": "d973a40055dec97fedc5ae87852667ed2d30ea71",
      "parents": [
        "f686bcb8078ac7505ec88818886c2c72639f4fc5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:58:07 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:58:07 2006 +0900"
      },
      "message": "[PATCH] libata-eh-fw: implement ata_port_schedule_eh() and ata_port_abort()\n\nata_port_schedule_eh() directly schedules EH for @ap without\nassociated qc.  Once EH scheduled, no further qc is allowed and EH\nkicks in as soon as all currently active qc\u0027s are drained.\n\nata_port_abort() schedules all currently active commands for EH by\nqc_completing them with ATA_QCFLAG_FAILED set.  If ata_port_abort()\ndoesn\u0027t find any qc to abort, it directly schedule EH using\nata_port_schedule_eh().\n\nThese two functions provide ways to invoke EH for conditions which\naren\u0027t directly related to any specfic qc.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "f686bcb8078ac7505ec88818886c2c72639f4fc5",
      "tree": "7c563e0032b2d85b631b617b8bb2a7a648607468",
      "parents": [
        "f69499f42caf74194df678c9c293f2ee0fe90bc3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:58:05 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:58:05 2006 +0900"
      },
      "message": "[PATCH] libata-eh-fw: implement new EH scheduling via error completion\n\nThere are several ways a qc can get schedule for EH in new EH.  This\npatch implements one of them - completing a qc with ATA_QCFLAG_FAILED\nset or with non-zero qc-\u003eerr_mask.  ALL such qc\u0027s are examined by EH.\n\nNew EH schedules a qc for EH from completion iff -\u003eerror_handler is\nimplemented, qc is marked as failed or qc-\u003eerr_mask is non-zero and\nthe command is not an internal command (internal cmd is handled via\n-\u003epost_internal_cmd).  The EH scheduling itself is performed by asking\nSCSI midlayer to schedule EH for the specified scmd.\n\nFor drivers implementing old-EH, nothing changes.  As this change\nmakes ata_qc_complete() rather large, it\u0027s not inlined anymore and\n__ata_qc_complete() is exported to other parts of libata for later\nuse.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "3373efd89dead4ce7818d685729e0431448357c9",
      "tree": "d7e7a1afd83e269c3c0978f924cd8c54d9be7f5a",
      "parents": [
        "38d87234d6c47ca487fc6344100323d5adc6f32c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:57:53 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:57:53 2006 +0900"
      },
      "message": "[PATCH] libata: use dev-\u003eap\n\nUse dev-\u003eap where possible and eliminate superflous @ap from functions\nand structures.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "96bd39ec295e49443c8b0c25a6b69fdace18780f",
      "tree": "02b80f3a37f3b75b68f41e6243fab513aed30b32",
      "parents": [
        "3adcebb2b59d590d572844815c906ca30477b14a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:57:38 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:57:38 2006 +0900"
      },
      "message": "[PATCH] libata: remove postreset handling from ata_do_reset()\n\nMake ata_do_reset() deal only with reset.  postreset is now the\nresponsibility of the caller.  This is simpler and eases later\nprereset addition.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "3c567b7d1137633f3ff67cd1df94abc5fd497a85",
      "tree": "085d98f696a0b8a2440bac4686929731769a6760",
      "parents": [
        "c44078c03f018c8cc9d7463b0db4c6c7fb316792"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:57:23 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:57:23 2006 +0900"
      },
      "message": "[PATCH] libata: rename ata_down_sata_spd_limit() and friends\n\nRename ata_down_sata_spd_limit() and friends to sata_down_spd_limit()\nand likewise for simplicity \u0026 consistency.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "2bf2cb26b2512c6a609bb152982c388329bedff6",
      "tree": "9f1f3ea5000304fd946f34b24d9904c2a1027480",
      "parents": [
        "db70fef0750e5f8dbb64f9fadb333d2c7caf26a1"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Apr 11 22:16:45 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Apr 11 13:12:46 2006 -0400"
      },
      "message": "[PATCH] libata: kill @verbose from ata_reset_fn_t\n\n@verbose was added to ata_reset_fn_t because AHCI complained during\nprobing if no device was attached to the port.  However, muting\nfailure message isn\u0027t the correct approach.  Reset methods are\nresponsible for detecting no device condition and finishing\nsuccessfully.  Now that AHCI softreset is fixed, kill @verbose.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "381544bba3ae6f2f1004b267da34f840b469033c",
      "tree": "e748d5da19d3fa79bee2ad5b40b44722cdf64184",
      "parents": [
        "10a5fd5e6b7e2d464c9f95f67cade4ddbd63f4e1"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Apr 11 13:04:39 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Apr 11 13:04:39 2006 -0400"
      },
      "message": "libata: Fix EH merge difference between this branch and upstream.\n"
    }
  ],
  "next": "95de719adc94392a95c3c4d0a2d6b8b1ea39d236"
}
