)]}'
{
  "log": [
    {
      "commit": "a4f19040a3a6cd431efe0a10b9d2e8d5e3904865",
      "tree": "6e28b0fb878e80959385ddc70bd899f65d16f504",
      "parents": [
        "f41891c134ccdd07583ebd8d4af7fed883375672"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Fri Oct 10 22:39:20 2008 +0200"
      },
      "committer": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Fri Oct 10 22:39:20 2008 +0200"
      },
      "message": "libata: WIN_* -\u003e ATA_CMD_*\n\nAcked-by: Jeff Garzik \u003cjeff@garzik.org\u003e\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\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": "8bff7c6b0f63c7ee9c5e3a076338d74125b8debb",
      "tree": "0863c7e0d09592ee9f4d568625348ef12e4a30df",
      "parents": [
        "a68bbddba486020c9c74825ce90c4c1ec463e0e8"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Sep 24 13:05:10 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:19 2008 +0200"
      },
      "message": "libata: set queue SSD flag for SSD devices\n\nSSD devices should give an RPM setting of 1 in word 217 of the ID\npage. If we see such a device, tell the block layer about it.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "45fabbb77bd95adff7a80bde1c7a0ace1075fde6",
      "tree": "0e98efc190b25a11f84b8ae7d1ee0a17c41d3da8",
      "parents": [
        "ea6ce53cd5d005455ec0a3cc1d45d3af0cb90919"
      ],
      "author": {
        "name": "Elias Oltmanns",
        "email": "eo@nebensachen.de",
        "time": "Sun Sep 21 11:54:08 2008 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Mon Sep 29 00:27:54 2008 -0400"
      },
      "message": "libata: Implement disk shock protection support\n\nOn user request (through sysfs), the IDLE IMMEDIATE command with UNLOAD\nFEATURE as specified in ATA-7 is issued to the device and processing of\nthe request queue is stopped thereafter until the specified timeout\nexpires or user space asks to resume normal operation. This is supposed\nto prevent the heads of a hard drive from accidentally crashing onto the\nplatter when a heavy shock is anticipated (like a falling laptop\nexpected to hit the floor). In fact, the whole port stops processing\ncommands until the timeout has expired in order to avoid any resets due\nto failed commands on another device.\n\nSigned-off-by: Elias Oltmanns \u003ceo@nebensachen.de\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": "b312bf359e20cc39c00d480fd40a24c245d80bf7",
      "tree": "756247f113688403cf35d1d7437fc92d390279d2",
      "parents": [
        "dc221eae08eea3b0db127d1f152fac24d10b6a52",
        "2640d7c0b8d5d9d9ee303b8cd09f5124176f6239"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 15 11:18:10 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 15 11:18:10 2008 -0700"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:\n  AHCI: Remove an unnecessary flush from ahci_qc_issue\n  AHCI: speed up resume\n  [libata] Add support for VPD page b1\n  ata: endianness annotations in pata drivers\n  libata-eh: update atapi_eh_request_sense() to take @dev instead of @qc\n  [libata] sata_svw: update code comments relating to data corruption\n  libata/ahci: enclosure management support\n  libata: improve EH internal command timeout handling\n  libata: use ULONG_MAX to terminate reset timeout table\n  libata: improve EH retry delay handling\n  libata: consistently use msecs for time durations\n"
    },
    {
      "commit": "1e9dbc9291738149577cc488fd441f061815e02e",
      "tree": "34d8cf8a8f339d0fad6c7741aa3bee2d033bac70",
      "parents": [
        "6ad67403da47e833d9e418caf7f28295c9472e11"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew@wil.cx",
        "time": "Thu Jun 19 13:13:38 2008 -0600"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Mon Jul 14 15:59:33 2008 -0400"
      },
      "message": "[libata] Add support for VPD page b1\n\nSCSI VPD page b1 reports the nominal rotation speed and physical size\nof the device.  Devices that conform to ATA-8 can return this information\nin words 217 and 168 of the identify data.\n\nSigned-off-by: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "18f7ba4c2f4be6b37d925931f04d6cc28d88d1ee",
      "tree": "4f127510c378cba33e79d5fb71bd9fc14a28e1cb",
      "parents": [
        "87fbc5a060faf2394bee88a93519f9b9d434727c"
      ],
      "author": {
        "name": "Kristen Carlson Accardi",
        "email": "kristen.c.accardi@intel.com",
        "time": "Tue Jun 03 10:33:55 2008 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Mon Jul 14 15:59:33 2008 -0400"
      },
      "message": "libata/ahci: enclosure management support\n\nAdd Enclosure Management support to libata and ahci.\n\nSigned-off-by:  Kristen Carlson Accardi \u003ckristen.c.accardi@intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "27f8221af406e43b529a5425bc99c9b1e9bdf521",
      "tree": "6e847b9359327449b77d4b6350cc9d44fd9208b6",
      "parents": [
        "2610324fcacf38a24b630090ebcb802538763187"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Fri Jul 04 09:30:03 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Jul 04 09:52:13 2008 +0200"
      },
      "message": "block: add blk_queue_update_dma_pad\n\nThis adds blk_queue_update_dma_pad to prevent LLDs from overwriting\nthe dma pad mask wrongly (we added blk_queue_update_dma_alignment due\nto the same reason).\n\nThis also converts libata to use blk_queue_update_dma_pad instead of\nblk_queue_dma_pad.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nCc: Thomas Bogendoerfer \u003ctsbogend@alpha.franken.de\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.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": "ec2a20e61974f7c9ebe6dd99ac479ec309a750bc",
      "tree": "c31c6ed4cf84b729bc85eff68c326c95b3355c1f",
      "parents": [
        "2da676594a73825f10d2a99358cc7465119684f9"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Wed Apr 30 12:57:00 2008 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri May 30 12:37:50 2008 -0400"
      },
      "message": "libata: fix libata-scsi kernel-doc notation\n\nFix libata-scsi kernel-doc notation:\n\nWarning(linux-2.6.25-git15//drivers/ata/libata-scsi.c:1659): No description found for parameter \u0027cmd\u0027\nWarning(linux-2.6.25-git15//drivers/ata/libata-scsi.c:1971): No description found for parameter \u0027buf\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "50af2fa1e18d0ab411d06bf727ecadb7e01721e9",
      "tree": "16f2b3b74c51a02ee182f29e9de5752088aaadbe",
      "parents": [
        "906c1ff44a81aaad96a9feb40ea13d73bbf3662a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 19 01:15:14 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Mon May 19 17:51:48 2008 -0400"
      },
      "message": "libata: ignore SIMG4726 config pseudo device\n\nI was hoping ATA_HORKAGE_NODMA | ATA_HORKAGE_SKIP_PM could keep it\nhappy but no even this doesn\u0027t work under certain configurations and\nit\u0027s not like we can do anything useful with the cofig device anyway.\nReplace ATA_HORKAGE_SKIP_PM with ATA_HORKAGE_DISABLE and use it for\nthe config device.  This makes the device completely ignored by\nlibata.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "87340e98345155631f7a1a4d8d66cf0ab286cb1b",
      "tree": "311ce808242cc06c65f976b4ce3c0c46c1110197",
      "parents": [
        "f0761be344f9b1cc4284b1d945933cd983c233a4"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Apr 28 17:48:51 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Tue Apr 29 02:17:03 2008 -0400"
      },
      "message": "libata-scsi: improve rbuf handling for simulated commands\n\nBuffer length handling in simulated commands is error-prone and full\nof bugs.  There are a number of places where necessary length checks\nare missing and if the output buffer is passed in as sglist, nothing\nworks.\n\nThis patch adds a static buffer ata_scsi_rbuf which is sufficiently\nlarge to handle the larges output from simulated commands (4k\ncurrently), let all simulte functions write to the buffer and removes\nall length checks as we know that there always is enough buffer space.\nCopying in (for ATAPI inquiry fix up) and out are handled by\nsg_copy_to/from_buffer() behind ata_scsi_rbuf_get/put() interface\nwhich handles sglist properly.\n\nThis patch is inspired from buffer length check fix patch from Petr\nVandrovec.\n\nUpdated to use sg_copy_to/from_buffer() as suggested by FUJITA\nTomonori.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Petr Vandrovec \u003cpetr@vmware.com\u003e\nCc: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\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": "ee959b00c335d7780136c5abda37809191fe52c3",
      "tree": "7775f3b274fd8caf5e7e5154fea89e96f2babd94",
      "parents": [
        "56d110e852b0b1c85ad6c9bfe1cb4473ceb16402"
      ],
      "author": {
        "name": "Tony Jones",
        "email": "tonyj@suse.de",
        "time": "Fri Feb 22 00:13:36 2008 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sat Apr 19 19:10:33 2008 -0700"
      },
      "message": "SCSI: convert struct class_device to struct device\n\nIt\u0027s big, but there doesn\u0027t seem to be a way to split it up smaller...\n\nSigned-off-by: Tony Jones \u003ctonyj@suse.de\u003e\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: Roland Dreier \u003crolandd@cisco.com\u003e\nCc: Sean Hefty \u003csean.hefty@intel.com\u003e\nCc: Hal Rosenstock \u003chal.rosenstock@gmail.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "2cca775baecbfede2fec20c99add709232311fe7",
      "tree": "b0eefe80881d263ba7976174144ae4e9cf238425",
      "parents": [
        "eddeb0e2d863e3941d8768e70cb50c6120e61fa0",
        "94795b61e84994a3b058f92d041d1fb3d869c7d5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 18 11:25:31 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 18 11:25:31 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (137 commits)\n  [SCSI] iscsi: bidi support for iscsi_tcp\n  [SCSI] iscsi: bidi support at the generic libiscsi level\n  [SCSI] iscsi: extended cdb support\n  [SCSI] zfcp: Fix error handling for blocked unit for send FCP command\n  [SCSI] zfcp: Remove zfcp_erp_wait from slave destory handler to fix deadlock\n  [SCSI] zfcp: fix 31 bit compile warnings\n  [SCSI] bsg: no need to set BSG_F_BLOCK bit in bsg_complete_all_commands\n  [SCSI] bsg: remove minor in struct bsg_device\n  [SCSI] bsg: use better helper list functions\n  [SCSI] bsg: replace kobject_get with blk_get_queue\n  [SCSI] bsg: takes a ref to struct device in fops-\u003eopen\n  [SCSI] qla1280: remove version check\n  [SCSI] libsas: fix endianness bug in sas_ata\n  [SCSI] zfcp: fix compiler warning caused by poking inside new semaphore (linux-next)\n  [SCSI] aacraid: Do not describe check_reset parameter with its value\n  [SCSI] aacraid: Fix down_interruptible() to check the return value\n  [SCSI] sun3_scsi_vme: add MODULE_LICENSE\n  [SCSI] st: rename flush_write_buffer()\n  [SCSI] tgt: use KMEM_CACHE macro\n  [SCSI] initio: fix big endian problems for auto request sense\n  ...\n"
    },
    {
      "commit": "855d854a33fca71cf68bad258bd5e66e5b265d10",
      "tree": "fcb5cac022d38af474c5243182a3c6f91de0b2ec",
      "parents": [
        "e675349e2bdbfb661fa0d8ff2441b4cf48fb7e48"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Apr 18 13:18:48 2008 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 18 11:20:42 2008 -0700"
      },
      "message": "libata: fix boot panic with SATAPI devices on non-SFF HBAs\n\nThe kernel now panics reliably on boot if you have a SATAPI device\nconnected.\n\nThe problem was introduced by the libata merge trying to pull out all\nthe SFF code into a separate module.  Unfortunately, if you\u0027re a satapi\ndevice you usually need to call atapi_request_sense, which has a bare\ninvocation of a SFF callback which is NULL on non-SFF HBAs.  Fix this by\nmaking the call conditional.\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "071f44b1d2c051641b62a3571223314737ccbe59",
      "tree": "a07794c8109e5d82a78223ae0159eadbf862c463",
      "parents": [
        "48515f6c006c2a9d7b624ee8ad068018c2d3fe0e"
      ],
      "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: implement PMP helpers\n\nImplement helpers to test whether PMP is supported, attached and\ndetermine pmp number to use when issuing SRST to a link.  While at it,\nmove ata_is_host_link() so that it\u0027s together with the two new PMP\nhelpers.\n\nThis change simplifies LLDs and helps making 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": "5682ed33aae05d10a25c95633ef9d9c062825888",
      "tree": "1632d4d70f4fd2dc25596a5cde1183f70f162ac3",
      "parents": [
        "9363c3825ea9ad76561eb48a395349dd29211ed6"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Apr 07 22:47:16 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Apr 17 15:44:22 2008 -0400"
      },
      "message": "libata: rename SFF port ops\n\nAdd sff_ prefix to SFF specific port ops.\n\nThis rename is in preparation of separating SFF support out of libata\ncore layer.  This patch strictly renames ops and doesn\u0027t introduce any\nbehavior difference.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "b558edddb1c42c70a30cfe494984d4be409f7b2b",
      "tree": "b03275d15675a519de7d4edde709892f885a5fa0",
      "parents": [
        "8cebf274dd1c955a6e03385a85fd6569ce445946"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Jan 24 00:05:14 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Apr 17 15:44:16 2008 -0400"
      },
      "message": "libata: kill ata_ehi_schedule_probe()\n\nata_ehi_schedule_probe() was created to hide details of link-resuming\nreset magic.  Now that all the softreset workarounds are gone,\nscheduling probe is very simple - set probe_mask and request RESET.\nKill ata_ehi_schedule_probe() and open code it.  This also increases\nconsistency as ata_ehi_schedule_probe() couldn\u0027t cover individual\ndevice probings so they were open-coded even when the helper existed.\n\nWhile at it, define ATA_ALL_DEVICES as mask of all possible devices on\na link and always use it when requesting probe on link level for\nsimplicity and consistency.  Setting extra bits in the probe_mask\ndoesn\u0027t hurt anybody.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "672b2d65ba83a6f3f801fd3d58851aa9c0725a54",
      "tree": "ed3a2fe8013bf8322df637838deccf9f2bc9c92c",
      "parents": [
        "d692abd92f22a81b38d52c39601871003262841c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Jan 24 00:05:14 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Apr 17 15:44:16 2008 -0400"
      },
      "message": "libata: kill ATA_EHI_RESUME_LINK\n\nATA_EHI_RESUME_LINK has two functions - promote reset to hardreset if\nATA_LFLAG_HRST_TO_RESUME is set and preventing EH from shortcutting\nreset action when probing is requested.  The former is gone now and\nthe latter can easily be achieved by making EH to perform at least one\nreset if reset is requested, which also makes more sense than\ndepending on RESUME_LINK flag.\n\nAs ATA_EHI_RESUME_LINK was the only EHI reset modifier, this also\nkills reset modifier handling.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "cf48062658e7ab3bc55e10c65676c3c73c16f8bf",
      "tree": "9a50a016ceb6051d8a30a43ea39f2a4d3d25570e",
      "parents": [
        "4b119e21d0c66c22e8ca03df05d9de623d0eb50f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Jan 24 00:05:14 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Apr 17 15:44:15 2008 -0400"
      },
      "message": "libata: prefer hardreset\n\nWhen both soft and hard resets are available, libata preferred\nsoftreset till now.  The logic behind it was to be softer to devices;\nhowever, this doesn\u0027t really help much.  Rationales for the change:\n\n* BIOS may freeze lock certain things during boot and softreset can\u0027t\n  unlock those.  This by itself is okay but during operation PHY event\n  or other error conditions can trigger hardreset and the device may\n  end up with different configuration.\n\n  For example, after a hardreset, previously unlockable HPA can be\n  unlocked resulting in different device size and thus revalidation\n  failure.  Similar condition can occur during or after resume.\n\n* Certain ATAPI devices require hardreset to recover after certain\n  error conditions.  On PATA, this is done by issuing the DEVICE RESET\n  command.  On SATA, COMRESET has equivalent effect.  The problem is\n  that DEVICE RESET needs its own execution protocol.\n\n  For SFF controllers with bare TF access, it can be easily\n  implemented but more advanced controllers (e.g. ahci and sata_sil24)\n  require specialized implementations.  Simply using hardreset solves\n  the problem nicely.\n\n* COMRESET initialization sequence is the norm in SATA land and many\n  SATA devices don\u0027t work properly if only SRST is used.  For example,\n  some PMPs behave this way and libata works around by always issuing\n  hardreset if the host supports PMP.\n\n  Like the above example, libata has developed a number of mechanisms\n  aiming to promote softreset to hardreset if softreset is not going\n  to work.  This approach is time consuming and error prone.\n\n  Also, note that, dependingon how you read the specs, it could be\n  argued that PMP fan-out ports require COMRESET to start operation.\n  In fact, all the PMPs on the market except one don\u0027t work properly\n  if COMRESET is not issued to fan-out ports after PMP reset.\n\n* COMRESET is an integral part of SATA connection and any working\n  device should be able to handle COMRESET properly.  After all, it\u0027s\n  the way to signal hardreset during reboot.  This is the most used\n  and recommended (at least by the ahci spec) method of resetting\n  devices.\n\nSo, this patch makes libata prefer hardreset over softreset by making\nthe following changes.\n\n* Rename ATA_EH_RESET_MASK to ATA_EH_RESET and use it whereever\n  ATA_EH_{SOFT|HARD}RESET used to be used.  ATA_EH_{SOFT|HARD}RESET is\n  now only used to tell prereset whether soft or hard reset will be\n  issued.\n\n* Strip out now unneeded promote-to-hardreset logics from\n  ata_eh_reset(), ata_std_prereset(), sata_pmp_std_prereset() and\n  other places.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "526917641aa50eb852591cc3953a92374bedc836",
      "tree": "38d2033ed637a54ff607e4c1adf861fb3b90f44a",
      "parents": [
        "a34c4e98367965402134f2e66c3cdc4416f109e4"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Tue Mar 25 09:26:51 2008 +0900"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Mon Apr 07 12:19:02 2008 -0500"
      },
      "message": "[SCSI] libata: use scsi_build_sense_buffer\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "aacda37538e7f9cf2148eedf3766239829e51ba4",
      "tree": "0206d2db8ce636aadabf8e3effd1ee3114ccff2a",
      "parents": [
        "cc7feea39bed2951cc29af3ad642f39a99dfe8d3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Mar 18 17:47:43 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Mar 24 22:09:12 2008 -0400"
      },
      "message": "libata: implement ata_qc_raw_nbytes()\n\nImplement ata_qc_raw_nbytes() which determines the raw user-requested\nsize of a PC command.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "e3790c7d42a545e8fe8b38b513613ca96687b670",
      "tree": "0b849ba46007c4d7f7a34271a76d58e7406cbad7",
      "parents": [
        "7a85f8896f4b4a4a0249563b92af9e3161a6b467"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Mar 04 11:18:17 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Mar 04 11:18:17 2008 +0100"
      },
      "message": "block: separate out padding from alignment\n\nBlock layer alignment was used for two different purposes - memory\nalignment and padding.  This causes problems in lower layers because\ndrivers which only require memory alignment ends up with adjusted\nrq-\u003edata_len.  Separate out padding such that padding occurs iff\ndriver explicitly requests it.\n\nTomo: restorethe code to update bio in blk_rq_map_user\n      introduced by the commit 40b01b9bbdf51ae543a04744283bf2d56c4a6afa\n      according to padding alignment.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "7a85f8896f4b4a4a0249563b92af9e3161a6b467",
      "tree": "616c62e3c96237e874fc0f47133fbca2160913b5",
      "parents": [
        "89b6e743788516491846724d7ef89bcac7ac9c99"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Tue Mar 04 11:17:11 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@carl.home.kernel.dk",
        "time": "Tue Mar 04 11:17:11 2008 +0100"
      },
      "message": "block: restore the meaning of rq-\u003edata_len to the true data length\n\nThe meaning of rq-\u003edata_len was changed to the length of an allocated\nbuffer from the true data length. It breaks SG_IO friends and\nbsg. This patch restores the meaning of rq-\u003edata_len to the true data\nlength and adds rq-\u003eextra_len to store an extended length (due to\ndrain buffer and padding).\n\nThis patch also removes the code to update bio in blk_rq_map_user\nintroduced by the commit 40b01b9bbdf51ae543a04744283bf2d56c4a6afa.\nThe commit adjusts bio according to memory alignment\n(queue_dma_alignment). However, memory alignment is NOT padding\nalignment. This adjustment also breaks SG_IO friends and bsg. Padding\nalignment needs to be fixed in a proper way (by a separate patch).\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Jens Axboe \u003caxboe@carl.home.kernel.dk\u003e\n"
    },
    {
      "commit": "b445c56815d84b9fce40707f99811bdc354458e0",
      "tree": "f8e9e9137a11417f4bfd422245d251d13a8f2177",
      "parents": [
        "931506d3b2208362efc678ee863ee42a90755e89"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 29 19:10:51 2008 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 29 19:10:51 2008 -0500"
      },
      "message": "[libata] wrap kmap_atomic(KM_IRQ0) with local_irq_save/restore()\n\nInterrupts must be disabled if using kmap_atomic(KM_IRQ0), but that was\nnot the case in a few code paths coming directly from ATA driver\ninterrupt handlers (which use spin_lock rather than spin_lock_irqsave).\n\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "9116300634c5c76cfcd0d2af689846e04d172256",
      "tree": "dfc527d28af35f19dcb9c4092757d6eabb8afb1d",
      "parents": [
        "559bbe6cbd0d8c68d40076a5f7dc98e3bf5864b2"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Feb 21 13:25:50 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sun Feb 24 00:27:33 2008 -0500"
      },
      "message": "libata: automatically use DMADIR if drive/bridge requires it\n\nBack in 2.6.17-rc2, a libata module parameter was added for atapi_dmadir.\n\nThat\u0027s nice, but most SATA devices which need it will tell us about it\nin their IDENTIFY PACKET response, as bit-15 of word-62 of the\nreturned data (as per ATA7, ATA8 specifications).\n\nSo for those which specify it, we should automatically use the DMADIR bit.\nOtherwise, disc writing will fail by default on many SATA-ATAPI drives.\n\nThis patch adds ATA_DFLAG_DMADIR and make ata_dev_configure() set it\nif atapi_dmadir is set or identify data indicates DMADIR is necessary.\natapi_xlat() is converted to check ATA_DFLAG_DMADIR before setting\nDMADIR.\n\nOriginal patch is from Mark Lord.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Mark Lord \u003cmlord@pobox.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "73fd8b6d310196ae878767200786503fcff57bd5",
      "tree": "643c3c2471d9741f8923f72064c51df8bad013f7",
      "parents": [
        "f1cb0ea12fee23018ad1865bf789cbd463f13747"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue Feb 19 13:43:21 2008 -0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Feb 20 12:20:49 2008 -0500"
      },
      "message": "libata: fix kernel-doc parameter warning\n\nFix libata kernel-doc parameter:\n\nWarning(linux-2.6.25-rc2-git3//drivers/ata/libata-scsi.c:845): No description found for parameter \u0027rq\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "fa2fc7f4813bfec1ae3232d49e3befbd601e8a6f",
      "tree": "f5598bd35f38812318da493cc027238a2256e036",
      "parents": [
        "dde2020754aeb14e17052d61784dcb37f252aac2"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Tue Feb 19 11:36:57 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Feb 19 11:36:57 2008 +0100"
      },
      "message": "libata: implement drain buffers\n\nThis just updates the libata slave configure routine to take advantage\nof the block layer drain buffers.  It also adjusts the size lengths in\nthe atapi code to add the drain buffer to the DMA length so the driver\nknows it can rely on it.\n\nI suspect I should also be checking for AHCI as well as ATA_DEV_ATAPI,\nbut I couldn\u0027t see how to do that easily.\n\ntj: * atapi_drain_needed() added such that draining is applied to only\n      misc ATAPI commands.\n    * q-\u003ebounce_gfp used when allocating drain buffer.\n    * Now duplicate ATAPI PIO drain logic dropped.\n    * ata_dev_printk() used instead of sdev_printk().\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "dde2020754aeb14e17052d61784dcb37f252aac2",
      "tree": "1b6d57c6eff2024fd13e4b3b115d0a6770d8cb80",
      "parents": [
        "db0a2e0099be3a1cff55879225881465f16c67d3"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Tue Feb 19 11:36:56 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Feb 19 11:36:56 2008 +0100"
      },
      "message": "libata: eliminate the home grown dma padding in favour of\n\nthat provided by the block layer\n\nATA requires that all DMA transfers begin and end on word boundaries.\nBecause of this, a large amount of machinery grew up in ide to adjust\nscatterlists on this basis.  However, as of 2.5, the block layer has a\ndma_alignment variable which ensures both the beginning and length of a\nDMA transfer are aligned on the dma_alignment boundary.  Although the\nblock layer does adjust the beginning of the transfer to ensure this\nhappens, it doesn\u0027t actually adjust the length, it merely makes sure\nthat space is allocated for transfers beyond the declared length.  The\nupshot of this is that scatterlists may be padded to any size between\nthe actual length and the length adjusted to the dma_alignment safely\nknowing that memory is allocated in this region.\n\nRight at the moment, SCSI takes the default dma_aligment which is on a\n512 byte boundary.  Note that this aligment only applies to transfers\ncoming in from user space.  However, since all kernel allocations are\nautomatically aligned on a minimum of 32 byte boundaries, it is safe to\nadjust them in this manner as well.\n\ntj: * Adjusting sg after padding is done in block layer.  Make libata\n      set queue alignment correctly for ATAPI devices and drop broken\n      sg mangling from ata_sg_setup().\n    * Use request-\u003eraw_data_len for ATAPI transfer chunk size.\n    * Killed qc-\u003eraw_nbytes.\n    * Separated out killing qc-\u003en_iter.\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "08f01058fe8fcf0d4d69d96d667c51d52859b31d",
      "tree": "f14379342d508ad03fc13af8a6c708209a3903e2",
      "parents": [
        "e760e716d47b48caf98da348368fd41b4a9b9e7e"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Thu Feb 14 10:45:20 2008 -0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 15 13:50:53 2008 -0500"
      },
      "message": "ata: make ata_scsiop_inq_89 static in libata-scsi.c\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "9b73e76f3cf63379dcf45fcd4f112f5812418d0a",
      "tree": "4e6bef87cd0cd6d848fc39a5ae25b981dbbe035b",
      "parents": [
        "50d9a126240f9961cfdd063336bbeb91f77a7dce",
        "23c3e290fb9ce38cabc2822b47583fc8702411bf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 25 17:19:08 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 25 17:19:08 2008 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (200 commits)\n  [SCSI] usbstorage: use last_sector_bug flag universally\n  [SCSI] libsas: abstract STP task status into a function\n  [SCSI] ultrastor: clean up inline asm warnings\n  [SCSI] aic7xxx: fix firmware build\n  [SCSI] aacraid: fib context lock for management ioctls\n  [SCSI] ch: remove forward declarations\n  [SCSI] ch: fix device minor number management bug\n  [SCSI] ch: handle class_device_create failure properly\n  [SCSI] NCR5380: fix section mismatch\n  [SCSI] sg: fix /proc/scsi/sg/devices when no SCSI devices\n  [SCSI] IB/iSER: add logical unit reset support\n  [SCSI] don\u0027t use __GFP_DMA for sense buffers if not required\n  [SCSI] use dynamically allocated sense buffer\n  [SCSI] scsi.h: add macro for enclosure bit of inquiry data\n  [SCSI] sd: add fix for devices with last sector access problems\n  [SCSI] fix pcmcia compile problem\n  [SCSI] aacraid: add Voodoo Lite class of cards.\n  [SCSI] aacraid: add new driver features flags\n  [SCSI] qla2xxx: Update version number to 8.02.00-k7.\n  [SCSI] qla2xxx: Issue correct MBC_INITIALIZE_FIRMWARE command.\n  ...\n"
    },
    {
      "commit": "d0ad3bc97c06fba5d37b4ca03c03b7eeeda39c47",
      "tree": "5aaecdc97e807dc9be911243604c9b9e0f22bde6",
      "parents": [
        "465ff3185e0cb76d46137335a4d21d0d9d3ac8a2"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Tue Jan 22 13:43:48 2008 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Wed Jan 23 11:27:54 2008 -0600"
      },
      "message": "[SCSI] libata: fix corruption induced by relaxed DMA alignment in SCSI\n\nHugh Dickens noticed that SMART commands issued from user space can\nend up corupting memory.  The problem occurs if the buffer used to\nread data spans two pages.  The reason is that the PIO sector routines\nin libata are expecting physically contiguous pages when they do\nsector operations, so the left overs on the second page go into the\nnext physically adjacent page rather than the next page in the sg\nmapping.\n\nFix this by enforcing strict 512 byte alignment on all buffers from\nuserspace.\n\nAcked-by: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-by: Jeff Garzik \u003cjeff@garzik.org\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "7ccd720da3857c21ea893448aaf73620cfe1d27e",
      "tree": "5e42391c4cb3465ea0beadeec6c8f27523b2519b",
      "parents": [
        "b832548773b0cd98216534caa31b9ed7607c4e76"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Jan 17 11:56:24 2008 -0600"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 23 05:24:17 2008 -0500"
      },
      "message": "[libata] Prefer SCSI_SENSE_BUFFERSIZE to sizeof()\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "cadb7345d92628d46cccd3765cc15cb9cd6abccf",
      "tree": "2d5895102c0cd9182521eb408d7c77333498c1f1",
      "parents": [
        "defc9cd826e4a99f550504a744f9407b518828ae"
      ],
      "author": {
        "name": "akpm@linux-foundation.org",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Jan 15 16:01:52 2008 -0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 23 05:24:16 2008 -0500"
      },
      "message": "[libata] Prefer SCSI_SENSE_BUFFERSIZE to sizeof()\n\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.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": "4ca4e439640cd1d3659cbcf60e7a73c2ae0450b3",
      "tree": "659dceb7469341dca95d7a96774e787c3b510872",
      "parents": [
        "35a10a80daa04b7316d6bac1b1402cc347c35b1e"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Sun Dec 30 09:32:22 2007 +0000"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 23 05:24:15 2008 -0500"
      },
      "message": "libata annotations and fixes\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "ff2aeb1eb64c8a4770a6304f9addbae9f9828646",
      "tree": "c6febbec290ec6c40bf3abc7bcdb7188f5039443",
      "parents": [
        "f92a26365a72333f418abe82700c6030d4a1a807"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Dec 05 16:43:11 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 23 05:24:14 2008 -0500"
      },
      "message": "libata: convert to chained sg\n\nlibata used private sg iterator to handle padding sg.  Now that sg can\nbe chained, padding can be handled using standard sg ops.  Convert to\nchained sg.\n\n* s/qc-\u003e__sg/qc-\u003esg/\n\n* s/qc-\u003epad_sgent/qc-\u003eextra_sg[]/.  Because chaining consumes one sg\n  entry.  There need to be two extra sg entries.  The renaming is also\n  for future addition of other extra sg entries.\n\n* Padding setup is moved into ata_sg_setup_extra() which is organized\n  in a way that future addition of other extra sg entries is easy.\n\n* qc-\u003eorig_n_elem is unused and removed.\n\n* qc-\u003en_elem now contains the number of sg entries that LLDs should\n  map.  qc-\u003emapped_n_elem is added to carry the original number of\n  mapped sgs for unmapping.\n\n* The last sg of the original sg list is used to chain to extra sg\n  list.  The original last sg is pointed to by qc-\u003elast_sg and the\n  content is stored in qc-\u003esaved_last_sg.  It\u0027s restored during\n  ata_sg_clean().\n\n* All sg walking code has been updated.  Unnecessary assertions and\n  checks for conditions the core layer already guarantees are removed.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "0dc36888d4422140f9eaf50f24953ec109f750a3",
      "tree": "80253b1831849e4063b73c31c15011c5e4c48404",
      "parents": [
        "537b53c1692960b8b3b0324e886fbe48cb9e5c00"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Dec 18 16:34:43 2007 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 23 05:24:14 2008 -0500"
      },
      "message": "libata: rename ATA_PROT_ATAPI_* to ATAPI_PROT_*\n\nATA_PROT_ATAPI_* are ugly and naming schemes between ATA_PROT_* and\nATA_PROT_ATAPI_* are inconsistent causing confusion.  Rename them to\nATAPI_PROT_* and make them consistent with ATA counterpart.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "93f8fecbe72bc3c121f3605dd198ff39ef358522",
      "tree": "46080625a3bf8331f1d31c0d77fbcd024fd6ddef",
      "parents": [
        "1973a023a616b40ba33fd0d38b1055c62c88e73d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Dec 05 16:43:01 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 23 05:24:13 2008 -0500"
      },
      "message": "libata: make atapi_request_sense() use sg\n\natapi_request_sense() is now the only left user of ata_sg_init_one().\nConvert it to use sg interface.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Rusty Russel \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\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": "d8cf5389bd9d1f0ac9fea51796c274ba64b83d80",
      "tree": "b6f6c10b9d7ca625ad531bd5ca1778d354fb15d5",
      "parents": [
        "c2e14f11120bbef0c883e795da8180b58f3cddae"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Jan 15 08:46:59 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jan 14 21:11:02 2008 -0500"
      },
      "message": "libata: relocate sdev-\u003emanage_start_stop configuration\n\nAfter 9b8e8de7, manage_start_stop configuration depends on valid ATA\ndevice.  Move it into ata_scsi_dev_config().  This was detected by the\ncoverity checker.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "465ff3185e0cb76d46137335a4d21d0d9d3ac8a2",
      "tree": "171068cd7d99600cd094c2eb72bac712649fd9eb",
      "parents": [
        "11c3e689f1c3a73e3af7b0ea767b1b0626da8033"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Tue Jan 01 10:00:10 2008 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Jan 11 18:29:22 2008 -0600"
      },
      "message": "[SCSI] relax scsi dma alignment\n\nThis patch relaxes the default SCSI DMA alignment from 512 bytes to 4\nbytes.  I remember from previous discussions that usb and firewire have\nsector size alignment requirements, so I upped their alignments in the\nrespective slave allocs.\n\nThe reason for doing this is so that we don\u0027t get such a huge amount of\ncopy overhead in bio_copy_user() for udev.  (basically all inquiries it\nissues can now be directly mapped).\n\nAcked-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "9b8e8de7e59b3a2dab3113d620b52dc8ba890fb3",
      "tree": "d935740d82e28e0579700ceacef2688147890420",
      "parents": [
        "13cc546be3060324de9d92ebde3bc9dbd950df23"
      ],
      "author": {
        "name": "Ondrej Zary",
        "email": "linux@rainbow-software.org",
        "time": "Thu Jan 10 17:13:19 2008 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Jan 10 17:13:19 2008 -0500"
      },
      "message": "libata and starting/stopping ATAPI floppy devices\n\nPrevent libata from starting/stopping non-ATA devices (like ATAPI floppy\ndrives) as they don\u0027t seem to like it:\n\nsd 1:0:1:0: [sdb] Starting disk\nata2.01: configured for PIO2\nsd 1:0:1:0: [sdb] Result: hostbyte\u003d0x00 driverbyte\u003d0x08\nsd 1:0:1:0: [sdb] Sense Key : 0x2 [current]\nsd 1:0:1:0: [sdb] ASC\u003d0x3a ASCQ\u003d0x0\n\nSigned-off-by: Ondrej Zary \u003clinux@rainbow-software.org\u003e\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "e190222d04cb1119c62876ac87cf9b9403ba3bd5",
      "tree": "e7aabe0c306f4f5b169c06d0829258717953cc5a",
      "parents": [
        "dc86f6d4183c79a08fa01c08dd2191895c0c7eb0"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Nov 26 20:58:02 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Nov 26 11:03:40 2007 -0500"
      },
      "message": "libata: bump transfer chunk size if it\u0027s odd\n\nNone of the drives I have follows what the standard says about\ntransfer chunk size.  Of the four SATA and six PATA ATAPI devices\ntested, four ignore transfer chunk size completely and the ones which\nhonor it don\u0027t behave according to the spec when it\u0027s odd.\n\nAccording to the spec, transfer chunk size can be odd if the amount of\ndata to transfer equals or is smaller than the chunk size and the\ndevice can indicate the same odd number and transfer the whole thing\nat one go with a pad byte appended.  However, in reality, none of the\ndrives I have does that.  They all indicate and transfer even number\nof bytes one byte shorter than the chunk size first; then indicate and\ntransfer two bytes, which is clearly out of spec.\n\nIn addition to unnecessary second PIO data phase, this also creates a\nweird problem when combined with SATA controllers which perform PIO\nvia DMA.  Some of these controllers use actualy number of bytes\nreceived to update DMA pointer so chunks which are sized 4n + 2 makes\nDMA pointer off by two bytes.  This causes data corruption and buffer\noverruns.\n\nThis patch rounds nbytes up to the nearest even number such that ATAPI\ndevices don\u0027t split data transfer for the last odd byte.  This\nshouldn\u0027t confuse controllers which depend on transfer chunk size as\ndevices will report the rounded-up number, actually transfer that much\nand padding buffer is there to receive them.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "607126c2a21cd6e9bb807fdd415c1a992f7b9009",
      "tree": "ec383bc937b0a19b8da4e1c02a3191ea625f40db",
      "parents": [
        "f442cd86c1c86c5f44bc2cf23f89536f7e4cfe59"
      ],
      "author": {
        "name": "Mark Lord",
        "email": "liml@rtr.ca",
        "time": "Thu Nov 15 13:13:59 2007 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Nov 19 12:28:11 2007 +0900"
      },
      "message": "libata-scsi: be tolerant of 12-byte ATAPI commands in 16-byte CDBs\n\nSebastian Kemper reported that issuing CD/DVD commands under libata is\nnot fully compatible with ide-scsi.  In particular, the\nGPCMD_SET_STREAMING was being rejected at the host level in some\ninstances.\n\nThe reason is that libata-scsi insists upon the cmd_len field exactly\nmatching the SCSI opcode being issued, whereas ide-scsi tolerates\n12-byte commands contained within a 16-byte (cmd_len) CDB.\n\nThere doesn\u0027t seem to be a good reason for us to not be compatible\nthere, so here is a patch to fix libata-scsi to permit SCSI opcodes so\nlong as they fit within whatever size CDB is provided.\n\nSigned-off-by: Mark Lord \u003cmlord@pobox.com\u003e\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "f26792d5c63344e14540ced4b19deb29e360bb8d",
      "tree": "5e4287a72bf42bd47b4b7993087e33a6d1cc0a4b",
      "parents": [
        "a341cd0f6a0fde1f85fec9aa8f81f824ea4a3f92"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Oct 29 17:18:39 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Nov 03 22:23:02 2007 -0400"
      },
      "message": "[libata] Utilize new SCSI event infrastructure\n\nAn end to CD-ROM polling (if you have a device that supports AN)...\nhooray!\n\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "a2d6ed149cefab495dbb573124e7e1ca331005fd",
      "tree": "a32cd6492dafe396ec6fc52df3a2dd37c8e815c4",
      "parents": [
        "1992a5ede1246a746782f687bfe07bf76650770b"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Wed Oct 31 00:50:23 2007 +0100"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Nov 03 08:46:29 2007 -0400"
      },
      "message": "make ata_scsi_lpm_get() static\n\nata_scsi_lpm_get() can become static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "e027bd36c146582cef382364e5c826db93d4427b",
      "tree": "45f3d3db848a5bd44bcb2191db17cbfd30f4911a",
      "parents": [
        "f90f0828e57e97cb1ff19520d252882cfc6fb3c0"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri Oct 26 16:19:26 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Oct 30 09:59:43 2007 -0400"
      },
      "message": "libata: implement and use ATA_QCFLAG_QUIET\n\nImplement ATA_QCFLAG_QUIET which indicates that there\u0027s no need to\nreport if the command fails with AC_ERR_DEV and set it for passthrough\ncommands.\n\nCombined with previous changes, this now makes device errors for all\ndirect commands reported directly to the issuer without going through\nEH actions and reporting.\n\nNote that EH is still invoked after non-IO device errors to determine\nthe nature of the error and resume command execution (some controller\nrequires special care after error to continue).  It just performs\ndefault maintenance after error, examines what\u0027s going on, realizes\nthat it\u0027s none of its business and reports the command failure without\nlogging any error messages.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "b666da35d900c26cbea1caa465649e2e0afa406c",
      "tree": "c1636d741569fd9fcf39557e36210226e9d5d860",
      "parents": [
        "5595ddf98cb3bf2c18b3b96587a1a9b0b08c267a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri Oct 26 15:53:59 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Oct 30 09:59:42 2007 -0400"
      },
      "message": "libata: flush is an IO command\n\nATA_QCFLAG_IO is used to mark commands which are used to perform\nregluar IO transfers via block layer.  These commands are assumed to\nbe valid and taken more seriously during error handling.  Cache flush\nis used by regular IO path and necessary for data integrity.  Mark it\nwith ATA_QCFLAG_IO.\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": "4dbfa39b6c95eb9d0aedb5bd00bb552b91c31e3d",
      "tree": "b3b92aa44fe651af464373d8a21a3da8897fa479",
      "parents": [
        "2a397e82c7db18019e408f953dd58dc1963a328c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Oct 25 18:22:44 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Oct 29 06:15:25 2007 -0400"
      },
      "message": "libata: relocate and fix post-command processing\n\nSome commands need post-processing after successful completion.  This\nwas done in ata_scsi_qc_complete() till now but this has the following\nproblems.\n\n* Post-command processing gets executed when qc is completed from EH.\n  Some qc\u0027s are retried from EH with zero err_mask and thus triggers\n  unnecessary/incorrect post-command processing.\n\n* Command post processing doesn\u0027t belong to SAT layer.\n\n* Link-wide revalidation was scheduled where device revalidation\n  suffices.\n\nThis patch moves post-command processing to success completion path of\nata_qc_complete() which is travelled iff the command is going to be\ncompleted without passing through EH and updates post-command\nprocessing such that device-specific action is used.  While at it,\nrestructure code a bit for readability.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "2dcb407e61458ded17503d6bd12b8c064965368b",
      "tree": "6044e032197b84f9943a385b0c9dbb6656c3f97f",
      "parents": [
        "01e7ae8c13bb06a2ce622ebace33bb7e28ef596c"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 19 06:42:56 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Oct 23 20:59:42 2007 -0400"
      },
      "message": "[libata] checkpatch-inspired cleanups\n\nTackle the relatively sane complaints of checkpatch --file.\n\nThe vast majority is indentation and whitespace changes, the rest are\n\n* #include fixes\n* printk KERN_xxx prefix addition\n* BSS/initializer cleanups\n\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "45711f1af6eff1a6d010703b4862e0d2b9afd056",
      "tree": "3d0048f46e3df9d217d56127462ebe680348bd5a",
      "parents": [
        "78c2f0b8c285c5305b3e67b0595200541e15eb43"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Oct 22 21:19:53 2007 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Oct 22 21:19:53 2007 +0200"
      },
      "message": "[SG] Update drivers to use sg helpers\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "92d15c2ccbb3e31a3fc71ad28fdb55e1319383c0",
      "tree": "8d83c0dc3c6b935d8367e331872f242b742f0a8a",
      "parents": [
        "f20bf6125605acbbc7eb8c9420d7221c91aa83eb",
        "644bd2f048972d75eb1979b1fdca257d528ce687"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 10:09:16 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 10:09:16 2007 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/data/git/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/data/git/linux-2.6-block: (63 commits)\n  Fix memory leak in dm-crypt\n  SPARC64: sg chaining support\n  SPARC: sg chaining support\n  PPC: sg chaining support\n  PS3: sg chaining support\n  IA64: sg chaining support\n  x86-64: enable sg chaining\n  x86-64: update pci-gart iommu to sg helpers\n  x86-64: update nommu to sg helpers\n  x86-64: update calgary iommu to sg helpers\n  swiotlb: sg chaining support\n  i386: enable sg chaining\n  i386 dma_map_sg: convert to using sg helpers\n  mmc: need to zero sglist on init\n  Panic in blk_rq_map_sg() from CCISS driver\n  remove sglist_len\n  remove blk_queue_max_phys_segments in libata\n  revert sg segment size ifdefs\n  Fixup u14-34f ENABLE_SG_CHAINING\n  qla1280: enable use_sg_chaining option\n  ...\n"
    },
    {
      "commit": "8889e3c129780cdbe15fed3c366ba3aa3026684d",
      "tree": "6dd87deff0a8b2423b79a4f0234f7b234a259e37",
      "parents": [
        "fd820f405574a30aacf9a859886e173d641f080b"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Tue Sep 18 12:16:45 2007 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Oct 16 11:24:44 2007 +0200"
      },
      "message": "remove blk_queue_max_phys_segments in libata\n\nLIBATA_MAX_PRD is the maximum number of DMA scatter/gather elements\npermitted by the HBA\u0027s DMA engine. It\u0027s properly set to\nq-\u003emax_hw_segments via the sg_tablesize parameter.\n\nlibata shouldn\u0027t call blk_queue_max_phys_segments. Now LIBATA_MAX_PRD\nis equal to SCSI_MAX_PHYS_SEGMENTS by default (both is 128), so\neverything is fine. But if they are changed, some code (like the scsi\nmid layer, sg chaining, etc) might not work properly.\n\n(Addition from Jens) The basic issue is that the physical segment\nsetting is purely a driver issue. And since SCSI is managing the sglist,\nlibata has no business changing the setting. All libata should care\nabout is the hw segment setting.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "c5d0e6a0d225c03b59a0a70f940e439085235ba2",
      "tree": "c041f599955a1e9ac97416da2307ac9050612cfe",
      "parents": [
        "23f9b75e79f6fbe438a20d10a11ca45a14b8a584"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Mon Oct 15 17:29:46 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 15 17:56:36 2007 -0700"
      },
      "message": "docbook: fix libata content\n\nFix libata docbook warnings.\n\nWarning(linux-2.6.23-git8//drivers/ata/libata-scsi.c:3251): No description found for parameter \u0027dev\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f58db80267c24e15d959e372d23651a43443c5f3",
      "tree": "bcbc79c4c4232b68a5a5b109f27083c2e55c64b1",
      "parents": [
        "f140f0f12fc8dc7264d2f97cbe663564e7d24f6d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Oct 10 15:57:44 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Oct 15 15:24:54 2007 -0400"
      },
      "message": "libata: fix revalidation issuing after configuration commands\n\nAfter commands which can change device configuration, EH is scheduled\nto revalidate and reconfigure the device.  Host link was incorrectly\nused unconditionally when scheduling EH action.  This resulted in\nbogus revalidation request and mismatched configuration between device\nand driver.  Fix it.\n\nThis bug was reported by Igor Durdanovic.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Igor Durdanovic \u003cidurdanovic@comcast.net\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "2db78dd302d26d242d3e8e5c4c5024b6c3ea93c2",
      "tree": "3d1b15c4314568dd7ccedb43a406060d5b6093be",
      "parents": [
        "681c80b5d96076f447e8101ac4325c82d8dce508"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Tue Oct 02 13:53:04 2007 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:45 2007 -0400"
      },
      "message": "libata_scsi: Fix ATAPI transfer lengths\n\nSome controller variants snoop the ATAPI length value for Packet\ntransfers to do state machine and FIFO management. Thus we want to\nset it properly, even for cases where it is otherwise meaningless.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "7d77b247088fb360aa74bfdd9e19bce1e1987668",
      "tree": "add1b03309dd6fa82eb0f47e1a88766695f38f28",
      "parents": [
        "e31e8531d668c9c4dc7883054788f89805188003"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Sep 23 13:14:13 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:42 2007 -0400"
      },
      "message": "libata-pmp-prep: implement sata_async_notification()\n\nAN serves multiple purposes.  For ATAPI, it\u0027s used for media change\nnotification.  For PMP, for downstream PHY status change notification.\nImplement sata_async_notification() which demultiplexes AN.\n\nTo avoid unnecessary port events, ATAPI AN is not enabled if PMP is\nattached but SNTF is not available.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Kriten Carlson Accardi \u003ckristen.c.accardi@intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "e31e8531d668c9c4dc7883054788f89805188003",
      "tree": "9c3762792344d24c996d6459409456664a2e381b",
      "parents": [
        "668108d73bbb1ae85f01db38d6be822fd28ece1f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Sep 23 13:14:13 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:41 2007 -0400"
      },
      "message": "libata-pmp-prep: implement ATA_HORKAGE_SKIP_PM\n\nSome pseudo devices fail PM commands unnecessarily aborting system\nsuspend.  Implement ATA_HORKAGE_SKIP_PM which makes libata skip PM\ncommands for these devices.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "31cc23b34913bc173680bdc87af79e551bf8cc0d",
      "tree": "ec64421ead9259174f0de8b22c36449ece6d69a4",
      "parents": [
        "fb7fd61454c8681cd2621051a710b78a00369203"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Sep 23 13:14:12 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:41 2007 -0400"
      },
      "message": "libata-pmp-prep: implement ops-\u003eqc_defer()\n\nControllers which support PMP have various restrictions on which\ncombinations of commands are allowed to what number of devices\nconcurrently.  This patch implements ops-\u003eqc_defer() which determines\nwhether a qc can be issued at the moment or should be deferred.\n\nIf the function returns ATA_DEFER_LINK, the qc will be deferred until\na qc completes on the link.  If ATA_DEFER_PORT, until a qc completes\non any link.  The defer conditions are advisory and in general\nATA_DEFER_LINK can be considered as lower priority deferring than\nATA_DEFER_PORT.\n\nops-\u003eqc_defer() replaces fixed ata_scmd_need_defer().  For standard\nNCQ/non-NCQ exclusion, ata_std_qc_defer() is implemented.  ahci and\nsata_sil24 are converted to use ata_std_qc_defer().\n\nops-\u003eqc_defer() is heavier than the original mechanism because full qc\nis prepped before determining to defer it, but various information is\nneeded to determine defer conditinos and fully translating a qc is the\nonly way to supply such information in generic manner.\n\nIMHO, this shouldn\u0027t cause any noticeable performance issues as\n\n* for most cases deferring occurs rarely (except for NCQ-aware\n  cmd-switching PMP)\n* translation itself isn\u0027t that expensive\n* once deferred the command won\u0027t be repeated until another command\n  completes which usually is a very long time cpu-wise.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "854c73a2f1c3bcc4aa88c25e208dc597e8efb795",
      "tree": "210569f3c4fa4f9413ceb0bc3fcf89648a9894b2",
      "parents": [
        "c78968bb0f7714ceba1cdfa23714454fc98cefdf"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Sep 23 13:14:11 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:40 2007 -0400"
      },
      "message": "libata: misc updates for AN\n\nUpdate AN support in preparation of PMP support.\n\n* s/ata_id_has_AN/ata_id_has_atapi_AN/\n* add AN enabled reporting during configuration\n* add err_mask to AN configuration failure reporting\n* update LOCKING comment for ata_scsi_media_change_notify()\n* check whether ATA dev is attached to SCSI dev ata_scsi_media_change_notify()\n* set ATA_FLAG_AN in ahci and sata_sil24\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Kriten Carlson Accardi \u003ckristen.c.accardi@intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "c78968bb0f7714ceba1cdfa23714454fc98cefdf",
      "tree": "cbf066559205ce0d00829c74a406f3a2140623e4",
      "parents": [
        "24f756866676b40446e361c1f87738707161da93"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Sep 21 21:03:28 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:40 2007 -0400"
      },
      "message": "[libata] SCSI: simulator version, not device version, belongs in VPD\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "24f756866676b40446e361c1f87738707161da93",
      "tree": "2709ec5b4bb5f0e9c980621e7a1a2b97bdcd7a93",
      "parents": [
        "00bd02027fc4a5cf92a3e538896b3642b40515df"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Sep 21 07:54:49 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:40 2007 -0400"
      },
      "message": "[libata] SCSI: clean up R/W recovery mode page\n\nClear ARRE, we don\u0027t do auto-reallocation on reads, just on writes.\n\nAlso, hardcode the size of the array using RW_RECOVERY_MPAGE_LEN,\nfollowing the style of the surrounding code.\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "00bd02027fc4a5cf92a3e538896b3642b40515df",
      "tree": "e5e2a72a467577a5a65be5886f96039c2f62a8af",
      "parents": [
        "453941455218a81eedcea5dbafa38b8815920a8c"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Sep 21 07:26:08 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:40 2007 -0400"
      },
      "message": "[libata] SCSI: improve FORMAT UNIT; minor code cleanups\n\n* SAT specifies that FORMAT UNIT should be translated into a series\n  of READ and WRITE commands that zero the ATA device.  That is far too\n  cumbersome to bother with.\n\n  Since we don\u0027t actually format the device, the old behavior of\n  always returning success was inaccurate.  Change FORMAT UNIT from\n  returning success immediately (old behavior) to always returning\n  an error (new behavior).\n\n* Add some comments around SYNCHRONIZE CACHE\n\n* Shuffle scsi command code around a bit, so that things are close\n  to alphabetic order.\n\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "453941455218a81eedcea5dbafa38b8815920a8c",
      "tree": "b2f21afae3beb39da13f089c02f0f09bfc4de697",
      "parents": [
        "ad355b4628a19ba2af30409e13083edda221a5c9"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Sep 21 06:23:42 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:40 2007 -0400"
      },
      "message": "[libata] Slightly improved no-op REQUEST SENSE, SEND DIAGNOSTIC\n\nA few pedantic apps care about missing or lame \"mandatory\" SCSI\ncommands, so\n\nREQUEST SENSE -- as we autosense, R.S. just returns zeroes\n\nSEND DIAGNOSTIC -- our default (no-op) self-test succeeds, all\n\t\t   other requests for testing fail.\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "ad355b4628a19ba2af30409e13083edda221a5c9",
      "tree": "775ade42b8a7e67d0c687b54f01f13122c2482db",
      "parents": [
        "d4155e6f13e931048036976d9fb47b5db53ee7a3"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Sep 21 20:38:03 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:40 2007 -0400"
      },
      "message": "[libata] SCSI: support INQUIRY page 89h (ATA info page)\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "7120165cf31e989baf7836218ca0a13643074735",
      "tree": "c3297a0ce98a012edf582348132090aa6a1764f7",
      "parents": [
        "e10b8c3f5f23188e065b1845ba732570eca007fe"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Tue Sep 18 17:48:50 2007 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:38 2007 -0400"
      },
      "message": "libata-scsi: convert to use the data buffer accessors\n\n  simple search-and-replace of direct scsi_cmnd access to\n  use the data buffer accessors.\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "e10b8c3f5f23188e065b1845ba732570eca007fe",
      "tree": "f236f3a850bbefc16e4819992a725f678c6a0421",
      "parents": [
        "d2a84f47899d1efc24fa610696f7b793692279c7"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Tue Sep 18 17:46:12 2007 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:38 2007 -0400"
      },
      "message": "libata-scsi: Remove !use_sg code paths\n\n     This is a minimal patch needed to remove use of !use_sg\n     but it is not a complete clean up of the !use_sg paths.\n     Libata-core still has the qc-\u003eflags \u0026 ATA_QCFLAG_SG\n     and !qc-\u003en_elem code paths. Perhaps an ata maintainer\n     would have a go at it.\n\n     - TODO: further cleanup of qc-\u003eflags \u0026 ATA_QCFLAG_SG\n       and !qc-\u003en_elem code paths in libata-core\n     - TODO: Use scsi_dma_{map,unmap} where applicable.\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "2f2949680ad89d606db838340b17c30216c0bb0f",
      "tree": "25d7918c7b846d151776bbdf6a111a1d241d6b05",
      "parents": [
        "9f45cbd3f0fc597530aaf85cad7fe52cd63f1fd8"
      ],
      "author": {
        "name": "Kristen Carlson Accardi",
        "email": "kristen.c.accardi@intel.com",
        "time": "Wed Aug 15 04:11:25 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:33 2007 -0400"
      },
      "message": "[libata] ahci: send event when AN received\n\nWhen we get an SDB FIS with the \u0027N\u0027 bit set, we should send\nan event to user space to indicate that there has been a\nmedia change.  This will be done via the scsi device.\n\nSigned-off-by: Kristen Carlson Accardi \u003ckristen.c.accardi@intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "baf4fdfaaf5cb9f4fb1c341c8cef60a64e580582",
      "tree": "f26293a36958a6813bf1353cb07afd3d6be6aa0d",
      "parents": [
        "4cc980b34b2a25f600576dcd11de388bc44e1ebd"
      ],
      "author": {
        "name": "Mark Lord",
        "email": "liml@rtr.ca",
        "time": "Wed Aug 08 01:08:45 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:32 2007 -0400"
      },
      "message": "libata: add support for ATA_16 on ATAPI\n\nAdd support for issuing ATA_16 passthru commands to ATAPI devices\nmanaged by libata.  It requires the previous CDB length fix patch.\n\nA boot/module parameter, \"atapi_passthru16\u003d0\" can be used to globally\ndisable this feature, if ever desired.\n\ntj: restructured __ata_scsi_queuecmd() according to Jeff\u0027s suggestion.\n\nSigned-off-by: Mark Lord \u003climl@rtr.ca\u003e\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "41bda9c98035dd3589b02cbc1de02f71d2faf9c8",
      "tree": "2a5b0c85584d443c1c8f7cb2b592e75bea3da6cf",
      "parents": [
        "9b1e2658faf3f3095a96558c333b333c0e29dbc0"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Aug 06 18:36:24 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:32 2007 -0400"
      },
      "message": "libata-link: update hotplug to handle PMP links\n\nUpdate hotplug to handle PMP links.  When PMP is attached, the PMP\nnumber corresponds to C of SCSI H:C:I:L.  While at it, change argument\nto ata_find_dev() to @devno from @id to avoid confusion with SCSI\ndevice ID.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "f58229f8060055b08b34008ea08f31de1e2f003c",
      "tree": "6ca5ef546671cb975ef3632fb032c238eaf1bb4c",
      "parents": [
        "9af5c9c97dc9d599281778864c72b385f0c63341"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Aug 06 18:36:23 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:30 2007 -0400"
      },
      "message": "libata-link: implement and use link/device iterators\n\nMultiple links and different number of devices per link should be\nconsidered to iterate over links and devices.  This patch implements\nand uses link and device iterators - ata_port_for_each_link() and\nata_link_for_each_dev() - and ata_link_max_devices().\n\nThis change makes a lot of functions iterate over only possible\ndevices instead of from dev 0 to dev ATA_MAX_DEVICES.  All such\nchanges have been examined and nothing should be broken.\n\nWhile at it, add a separating comment before device helpers to\ndistinguish them better from link helpers and others.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "9af5c9c97dc9d599281778864c72b385f0c63341",
      "tree": "8359986bd42c4a9a5b1993078aa9ee4c7971ac3d",
      "parents": [
        "640fdb504941fa2b9f6f274716fc9f97f2bf6bff"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Aug 06 18:36:22 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:30 2007 -0400"
      },
      "message": "libata-link: introduce ata_link\n\nIntroduce ata_link.  It abstracts PHY and sits between ata_port and\nata_device.  This new level of abstraction is necessary to support\nSATA Port Multiplier, which basically adds a bunch of links (PHYs) to\na ATA host port.  Fields related to command execution, spd_limit and\nEH are per-link and thus moved to ata_link.\n\nThis patch only defines the host link.  Multiple link handling will be\nadded later.  Also, a lot of ap-\u003elink derefences are added but many of\nthem will be removed as each part is converted to deal directly with\nata_link instead of ata_port.\n\nThis patch introduces no behavior change.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "165125e1e480f9510a5ffcfbfee4e3ee38c05f23",
      "tree": "8009c8a5ff09e26dc2418d42f66ecafb055c52a2",
      "parents": [
        "f695baf2df9e0413d3521661070103711545207a"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jul 24 09:28:11 2007 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jul 24 09:28:11 2007 +0200"
      },
      "message": "[BLOCK] Get rid of request_queue_t typedef\n\nSome of the code has been gradually transitioned to using the proper\nstruct request_queue, but there\u0027s lots left. So do a full sweet of\nthe kernel and get rid of this typedef and replace its uses with\nthe proper type.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "1ae463171cc1b1ea6dad7bcb298e96c073e7373e",
      "tree": "c3d62562c9be8c855f7238785ea9c9348f1e56f1",
      "parents": [
        "f1545154a5c96590b1992aac8ee1e2c445e301ed"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Jul 16 14:29:40 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Jul 20 08:26:25 2007 -0400"
      },
      "message": "libata: improve SCSI scan failure handling\n\nSCSI scan may fail due to memory allocation failure even if EH is not\nin progress.  Due to use of GFP_ATOMIC in SCSI scan path, allocation\nfailure isn\u0027t too rare especially while probing multiple devices at\nonce which is the case when a bunch of devices are connected to PMP.\n\nThis patch moves SCSI scan failure detetion logic from\nata_scsi_hotplug() to ata_scsi_scan_host() and implement synchronous\nscan behavior.  The synchronous path sleeps briefly and repeats SCSI\nscan if some devices aren\u0027t attached properly.  It contains robust\nretry loop to minimize the chance of device misdetection during boot\nand falls back to async retry if everything fails.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "d26fc9551a15fdad0d5de8376a78816b8af44f00",
      "tree": "5c829c1baf499ad1f31ed4b8b41e766b290a6306",
      "parents": [
        "c1e6f28cc5de37dcd113b9668a185c0b9334ba8a"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Fri Jul 06 19:13:52 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jul 09 12:17:35 2007 -0400"
      },
      "message": "libata: Support chips with 64K PRD quirk\n\nAdd ata_dumb_qc_prep and supporting logic so that a driver can just\nspecify it needs to be helped in this area. 64K entries are split\nas with drivers/ide.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "e00f1ff3c8977eff07d0214d2f3478ac947bda0f",
      "tree": "1209cd341d4be66b319d2779ffb91d0b5988e42f",
      "parents": [
        "914616a3c2a54504f3b0eda0b67fcd32226b3e83"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Jun 27 02:47:35 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jun 27 02:50:08 2007 -0400"
      },
      "message": "libata: call ata_check_atapi_dma() with qc better prepared\n\nIn atapi_xlat(), prepare qc better before calling\nata_check_atapi_dma() such that ata_check_atapi_dma() can use info\nfrom qc.  While at it, reformat weird looking if/else block in the\nfunction.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "2c3d2a46f1ccf591850b20f4fdde12bcf2bf3dfd",
      "tree": "148a2cd32ae40185bb547cb96cd17bcd920b8ab0",
      "parents": [
        "fa4453c4c94a61bbefe470b16ddbb6218481c6dc"
      ],
      "author": {
        "name": "Albert Lee",
        "email": "albertcc@tw.ibm.com",
        "time": "Thu Jun 07 16:01:17 2007 +0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Jun 09 23:08:12 2007 -0400"
      },
      "message": "libata passthru: update cached device paramters\n\nINIT_DEV_PARAMS and SET_MULTI_MODE change the device parameters cached\nby libata.  Re-read IDENTIFY DEVICE info and update the cached device\nparamters when seeing these commands.\n\nSigned-off-by: Albert Lee \u003calbertcc@tw.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "fa4453c4c94a61bbefe470b16ddbb6218481c6dc",
      "tree": "63a861f6fdb92729f7f15b65684e5add0bac5c62",
      "parents": [
        "23cb1d718ddbeb718ed7ca5be283dcbfb63993c3"
      ],
      "author": {
        "name": "Albert Lee",
        "email": "albertcc@tw.ibm.com",
        "time": "Thu Jun 07 15:52:07 2007 +0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Jun 09 23:08:12 2007 -0400"
      },
      "message": "libata passthru: always enforce correct DEV bit\n\n Always enforce correct DEV bit since we know which drive the command\nis targeted. SAT demands to ignore the DEV bit, too.\n\nSigned-off-by: Albert Lee \u003calbertcc@tw.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "23cb1d718ddbeb718ed7ca5be283dcbfb63993c3",
      "tree": "1c569650afa5b6916a68e71656aafdec9ba4163d",
      "parents": [
        "1dce589c38c36ae69614840ee230183f3a7d43c5"
      ],
      "author": {
        "name": "Albert Lee",
        "email": "albertcc@tw.ibm.com",
        "time": "Thu Jun 07 15:50:44 2007 +0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Jun 09 23:08:11 2007 -0400"
      },
      "message": "libata passthru: map UDMA protocols\n\n Map the ATA passthru UDMA protocols to ATA_PROT_DMA.\n\nSigned-off-by: Albert Lee \u003calbertcc@tw.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "1dce589c38c36ae69614840ee230183f3a7d43c5",
      "tree": "b236f4ee06cca72bc07d88f6fbbf87ddc6b8ab83",
      "parents": [
        "f93f1078d08e0f63a6a4bdaa154de3642fc03d5d"
      ],
      "author": {
        "name": "Albert Lee",
        "email": "albertcc@tw.ibm.com",
        "time": "Thu Jun 07 15:49:22 2007 +0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Jun 09 23:08:11 2007 -0400"
      },
      "message": "libata passthru: support PIO multi commands\n\n  support the pass through of PIO multi commands.\n\nSigned-off-by: Albert Lee \u003calbertcc@tw.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "f93f1078d08e0f63a6a4bdaa154de3642fc03d5d",
      "tree": "7baa983d1a2c0b5a4ece57e8d23d9e40d9fd521f",
      "parents": [
        "6070068b875f604ff3f62e6e342bbd4c1f34a895"
      ],
      "author": {
        "name": "Albert Lee",
        "email": "albertcc@tw.ibm.com",
        "time": "Thu Jun 07 15:47:13 2007 +0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Jun 09 23:08:11 2007 -0400"
      },
      "message": "libata passthru: update protocol numbers\n\n Update the ATA passthru protocol numbers according to the new spec.\n\nSigned-off-by: Albert Lee \u003calbertcc@tw.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "6c7b7d2b7615110edbc4ea7816831c13b0250ebb",
      "tree": "63c408afb9290dbcaac53f46f3c1b6b19910bc70",
      "parents": [
        "ddfc87a098a0172ad13ce50edf55d5fe266f1352"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri May 25 04:39:39 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri May 25 04:39:39 2007 -0400"
      },
      "message": "[libata] Fix decoding of 6-byte commands\n\nThe code for parsing 6-byte SCSI command LBAs\nmissed the top 5 bits (the MSB).\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "d9aca22cf443f5ed77d15a320abbab055ae4a976",
      "tree": "a808d879baf21a557a93e9ef3a0d96b004985f8b",
      "parents": [
        "1daf9ce74e0e0ef8ffde800ab495339458c3375f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu May 17 16:43:26 2007 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu May 17 20:57:38 2007 -0400"
      },
      "message": "libata: remove libata.spindown_compat\n\nWith STANDBYDOWN tracking added, libata.spindown_compat isn\u0027t\nnecessary anymore.  If userspace shutdown(8) issues STANDBYNOW, libata\nwarns.  If userspace shutdown(8) doesn\u0027t issue STANDBYNOW, libata does\nthe right thing.  Userspace can tell whether kernel supports spindown\nby testing whether sysfs node manage_start_stop exists as before.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "13b8d09f5de0aaa3153bbccc98baf247387823dc",
      "tree": "d35c90bd2460d7808595917ccf7c102229353365",
      "parents": [
        "da071b42f73dabbd0daf7ea4c3ff157d53b00648"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue May 15 12:29:22 2007 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed May 16 01:18:31 2007 -0400"
      },
      "message": "libata: track spindown status and skip spindown_compat if possible\n\nOur assumption that most distros issue STANDBYNOW seems wrong.  The\nupstream sysvinit and thus many distros including gentoo and opensuse\ndon\u0027t take any action for libata disks on spindown.  We can skip\ncompat handling for these distros so that they don\u0027t need to update\nanything to take advantage of kernel-side shutdown.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "da071b42f73dabbd0daf7ea4c3ff157d53b00648",
      "tree": "6b8aa61169f6c18263821d9c5fe298b3b2eb6b21",
      "parents": [
        "3cadbcc09891b8544203f211dac13f9cc4e6832a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 14 17:26:18 2007 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed May 16 01:18:31 2007 -0400"
      },
      "message": "libata: fix shutdown warning message printing\n\nUnlocking ap-\u003elock and ssleeping don\u0027t work because SCSI commands can\nbe issued from completion path without context.  Reimplement delayed\ncompletion by allowing translation functions to override\nqc-\u003escsidone(), storing the original completion function to\nscmd-\u003escsi_done() and overriding qc-\u003escsidone() with a function which\nschedules delayed invocation of scmd-\u003escsi_done().\n\nThis isn\u0027t pretty at all but all the ugly parts are thankfully\ncontained in the stop translation path where the compat feature is\nimplemented.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "920a4b1038e442700a1cfac77ea7e20bd615a2c3",
      "tree": "4209c04b64b021a3e4253a484b108b2475a2860a",
      "parents": [
        "9666f4009c22f6520ac3fb8a19c9e32ab973e828"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri May 04 21:28:48 2007 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri May 11 18:01:04 2007 -0400"
      },
      "message": "libata: implement libata.spindown_compat\n\nNow that libata uses sd-\u003emanage_start_stop, libata spins down disk on\nshutdown.  In an attempt to compensate libata\u0027s previous shortcoming,\nsome distros sync and spin down disks attached via libata in their\nshutdown(8).  Some disks spin back up just to spin down again on\nSTANDBYNOW1 if the command is issued when the disk is spun down, so\nthis double spinning down causes problem.\n\nThis patch implements module parameter libata.spindown_compat which,\nwhen set to one (default value), prevents libata from spinning down\ndisks on shutdown thus avoiding double spinning down.  Note that\nlibata spins down disks for suspend to mem and disk, so with\nlibata.spindown_compat set to one, disks should be properly spun down\nin all cases without modifying shutdown(8).\n\nshutdown(8) should be fixed eventually.  Some drive do spin up on\nSYNCHRONZE_CACHE even when their cache is clean.  Those disks\ncurrently spin up briefly when sd tries to shutdown the device and\nthen the machine powers off immediately, which can\u0027t be good for the\nhead.  We can\u0027t skip SYNCHRONIZE_CACHE during shudown as it can be\ndangerous data integrity-wise.\n\nSo, this spindown_compat parameter is already scheduled for removal by\nthe end of the next year and here\u0027s what shutdown(8) should do.\n\n  * Check whether /sys/modules/libata/parameters/spindown_compat\n    exists.  If it does, write 0 to it.\n\n  * For each libata harddisk {\n\t* Check whether /sys/class/scsi_disk/h:c:i:l/manage_start_stop\n\t  exists.  Iff it doesn\u0027t, synchronize cache and spin the disk\n\t  down as before.\n  }\n\nThe above procedure will make shutdown(8) work properly with kernels\nbefore this change, ones with this workaround and later ones without\nit.\n\nTo accelerate shutdown(8) updates, if the compat mode is in use, this\npatch prints BIG FAT warning for five seconds during shutdown (the\noptimal interval to annoy the user just the right amount discovered by\nhours of tireless usability testing).\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "9666f4009c22f6520ac3fb8a19c9e32ab973e828",
      "tree": "eaac13cd5890af6298e5576a48c29891f0890bd1",
      "parents": [
        "0a3fd051c7036ef71b58863f8e5da7c3dabd9d3f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri May 04 21:27:47 2007 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri May 11 18:01:03 2007 -0400"
      },
      "message": "libata: reimplement suspend/resume support using sdev-\u003emanage_start_stop\n\nReimplement suspend/resume support using sdev-\u003emanage_start_stop.\n\n* Device suspend/resume is now SCSI layer\u0027s responsibility and the\n  code is simplified a lot.\n\n* DPM is dropped.  This also simplifies code a lot.  Suspend/resume\n  status is port-wide now.\n\n* ata_scsi_device_suspend/resume() and ata_dev_ready() removed.\n\n* Resume now has to wait for disk to spin up before proceeding.  I\n  couldn\u0027t find easy way out as libata is in EH waiting for the\n  disk to be ready and sd is waiting for EH to complete to issue\n  START_STOP.\n\n* sdev-\u003emanage_start_stop is set to 1 in ata_scsi_slave_config().\n  This fixes spindown on shutdown and suspend-to-disk.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "f31871951b38daf2d7ca17daad59fdb735062da3",
      "tree": "4286402eaf679b6fb73e893d8e51bb693559091d",
      "parents": [
        "ecef7253235e7a9365afe08a508e11bed91c1c11"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Apr 17 23:44:07 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Apr 28 14:16:03 2007 -0400"
      },
      "message": "libata: separate out ata_host_alloc() and ata_host_register()\n\nReorganize ata_host_alloc() and its subroutines into the following\nthree functions.\n\n* ata_host_alloc() : allocates host and its ports.  shost is not\n  registered automatically.\n\n* ata_scsi_add_hosts() : allocates and adds shosts associated with an\n  ATA host.  Used by ata_host_register().\n\n* ata_host_register() : takes a fully initialized ata_host structure\n  and registers it to libata layer and probes it.\n\nOnly ata_host_alloc() and ata_host_register() are exported.\nata_device_add() is rewritten using the above functions.  This patch\ndoes not introduce any observable behavior change.  Things worth\nmentioning.\n\n* print_id is assigned at registration time and LLDs are allowed to\n  overallocate ports and reduce host-\u003en_ports during initialization.\n  ata_host_register() will throw away unused ports automatically.\n\n* All SCSI host initialization stuff now resides in\n  ata_scsi_add_hosts() in libata-scsi.c, where it should be.\n\n* ipr is now the only user of ata_host_init().  Either kill it by\n  converting ipr to use ata_host_alloc() and friends or rename and\n  move it to libata-scsi.c\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "5a5dbd18a7496ed403f6f54bb20c955c65482fa5",
      "tree": "031eec40ab42ac4ab04e59db539b8126ac31fb6d",
      "parents": [
        "1234010684bb9cde51125ec3d1c71054a9f24f47"
      ],
      "author": {
        "name": "Mark Lord",
        "email": "liml@rtr.ca",
        "time": "Fri Mar 16 10:22:26 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Apr 28 14:16:01 2007 -0400"
      },
      "message": "libata: add support for READ/WRITE LONG\n\nThe READ/WRITE LONG commands are theoretically obsolete,\nbut the majority of drives in existance still implement them.\n\nThe WRITE_LONG and WRITE_LONG_ONCE commands are of particular\ninterest for fault injection testing -- eg. creating \"media errors\"\nat specific locations on a disk.\n\nThe fussy bit is that these commands require a non-standard\nsector size, usually 520 bytes instead of 512.\n\nThis patch adds support to libata for READ/WRITE LONG commands\nissued via SG_IO/ATA_16.\n\nSigned-off-by:  Mark Lord \u003cmlord@pobox.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "f0ef88ed413232daebfe675c7b1bbf100d604d4b",
      "tree": "fc235d7aede0d6c4d2e500ef5d0446122eaa611a",
      "parents": [
        "cd0d3bbcdd650651b7ccfaf55d107e3fc237d95a"
      ],
      "author": {
        "name": "Mark Lord",
        "email": "liml@rtr.ca",
        "time": "Fri Feb 02 12:36:25 2007 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Apr 28 14:15:55 2007 -0400"
      },
      "message": "RESEND: libata: check cdb len per dev instead of per host\n\nResending, with s/printk/DPRINTK/ as pointed out by Alan.\n\nFix libata to perform CDB len validation per device\nrather than per host.  This way, validation still works\nwhen we have a mix of 12-byte and 16-byte devices on\na common host interface.\n\nSigned-off-by: Mark Lord \u003cmlord@pobox.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "277239f228654fc03affdf2aa0e7a3969f420415",
      "tree": "d49b4eb2b7190e7624d312925fef5a4670043ae5",
      "parents": [
        "4742d54fa4b391342dfb8f34de14d51da101fb39"
      ],
      "author": {
        "name": "Mark Lord",
        "email": "mlord@pobox.com",
        "time": "Fri Mar 30 17:45:52 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Apr 04 02:07:28 2007 -0400"
      },
      "message": "libata bugfix: preserve LBA bit for HDIO_DRIVE_TASK\n\nPreserve the LBA bit in the DevSel/Head register for HDIO_DRIVE_TASK.\n\nSigned-off-by:  Mark Lord \u003cmlord@pobox.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "6ffa01d88c9dd45e2ed917b5eeeb494d07efb1ab",
      "tree": "3fe262ccaa1c0f8c5e5d187216d8bfc70db34d95",
      "parents": [
        "438ac6d5e3f8106a6bd1a5682c508d660294a85d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri Mar 02 17:32:47 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Mar 02 18:30:35 2007 -0500"
      },
      "message": "libata: add CONFIG_PM to libata core layer\n\nConditionalize all PM related stuff in libata core layer using\nCONFIG_PM.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "44877b4e22f391d39c6589412106a3668e81a05b",
      "tree": "10bf134c2c8c15e3504d67461b42f53c6de88523",
      "parents": [
        "5ce0cf6fafd02fb4c43fc1a1bee6069d6c0a36b1"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Feb 21 01:06:51 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Feb 21 04:58:20 2007 -0500"
      },
      "message": "libata: s/ap-\u003eid/ap-\u003eprint_id/g\n\nata_port has two different id fields - id and port_no.  id is\nsystem-wide 1-based unique id for the port while port_no is 0-based\nhost-wide port number.  The former is primarily used to identify the\nATA port to the user in printk messages while the latter is used in\nvarious places in libata core and LLDs to index the port inside the\nhost.\n\nThe two fields feel quite similar and sometimes ap-\u003eid is used in\nplace of ap-\u003eport_no, which is very difficult to spot.  This patch\nrenames ap-\u003eid to ap-\u003eprint_id to reduce the possibility of such bugs.\n\nSome printk messages are adjusted such that id string (ata%u[.%u])\nisn\u0027t printed twice and/or to use ata_*_printk() instead of hardcoded\nid format.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "c3c70c443c2ef1fce31f201a93780c884b903993",
      "tree": "cfb23ec2831ad4f10c87f6362573db9eb6a33cbd",
      "parents": [
        "fcf1bf1584647f9fd864c193fee81840c4c5ce41"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Feb 20 23:31:22 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Feb 21 04:58:19 2007 -0500"
      },
      "message": "libata: fix ata_scsi_change_queue_depth()\n\nFix ata_scsi_change_queue_depth() such that...\n\n* NCQ on/off is exactly determined using the same logic as the issue path.\n\n* queue depth is adjusted to 1 if NCQ is not enabled.\n\n* -EINVAL is returned if requested action is ignored due to limitations.\n\nThis fixes the bug which allows queue depth to be increased on\nblacklisted NCQ hosts/devices.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "fcf1bf1584647f9fd864c193fee81840c4c5ce41",
      "tree": "6271f12b805d57edcb4ba908149c02e754c348e0",
      "parents": [
        "6d1245bf294e9ea65b3717be9fa0338bfb6ff6c9"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Feb 20 23:27:06 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Feb 21 04:58:18 2007 -0500"
      },
      "message": "libata: fix ata_scmd_need_defer()\n\nFix ata_scmd_need_defer() such that...\n\n* whether NCQ is used or not is exactly determined using the same\n  criteria as the issue path.\n\n* defer-check is performed in all cases.\n\nThis fixes race condition where turning off NCQ on the fly causes\nnon-NCQ commands sneak into NCQ phase.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "4d05447ec702364b8a2aebb4d625b16479268575",
      "tree": "1a3ed3c67f9c9ea5229aa3a368809101e9711bc7",
      "parents": [
        "8d9db2d2fbae9e05022825c32f86e00c8e342860"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Feb 18 02:24:37 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Feb 21 04:58:17 2007 -0500"
      },
      "message": "libata: fix probe_ent alloc/free bugs\n\nata_probe_ent_alloc() had a temporary hack such that devm_kzalloc()\nwas used for allocation if devres had been previously initialized on\nthe device; otherwise, plain kzalloc() was used.  This was to make the\ncode useable from both the old and devres-aware libata drivers during\ntransition.  This hack made ata_sas_port_alloc() unable to determine\nhow the probe_ent is allocated, causing double free in some cases.\n\nRemove the now-unneeded hack and make ata_sas_port_alloc() use\ndevm_kfree().\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    }
  ],
  "next": "2b06719153089aa8f5ac577f15f8aa8e5b5fe357"
}
