<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-dev/drivers/scsi/libata-eh.c, branch master</title>
<subtitle>Linux kernel development work - see feature branches</subtitle>
<id>https://git.zx2c4.com/linux-dev/atom/drivers/scsi/libata-eh.c?h=master</id>
<link rel='self' href='https://git.zx2c4.com/linux-dev/atom/drivers/scsi/libata-eh.c?h=master'/>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/'/>
<updated>2006-08-10T11:31:37Z</updated>
<entry>
<title>Move libata to drivers/ata.</title>
<updated>2006-08-10T11:31:37Z</updated>
<author>
<name>Jeff Garzik</name>
<email>jeff@garzik.org</email>
</author>
<published>2006-08-10T11:31:37Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=c6fd280766a050b13360d7c2d59a3d6bd3a27d9a'/>
<id>urn:sha1:c6fd280766a050b13360d7c2d59a3d6bd3a27d9a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>[PATCH] libata: improve EH action and EHI flag handling</title>
<updated>2006-07-19T18:06:53Z</updated>
<author>
<name>Tejun Heo</name>
<email>htejun@gmail.com</email>
</author>
<published>2006-07-10T14:18:46Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=13abf50df209008b5d44075bafeeab42ace56aa6'/>
<id>urn:sha1:13abf50df209008b5d44075bafeeab42ace56aa6</id>
<content type='text'>
Update ata_eh_about_to_do() and ata_eh_done() to improve EH action and
EHI flag handling.

* There are two types of EHI flags - one which expires on successful
  EH and the other which expires on a successful reset.  Make this
  distinction clear.

* Unlike other EH actions, reset actions are represented by two EH
  action masks and a EHI modifier.  Implement correct about_to_do/done
  semantics for resets.  That is, prior to reset, related EH info is
  sucked in from ehi and cleared, and after reset is complete, related
  EH info in ehc is cleared.

These changes improve consistency and remove unnecessary EH actions
caused by stale EH action masks and EHI flags.

Signed-off-by: Tejun Heo &lt;htejun@gmail.com&gt;
Signed-off-by: Jeff Garzik &lt;jeff@garzik.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] libata: fix eh_skip_recovery condition</title>
<updated>2006-07-19T18:06:53Z</updated>
<author>
<name>Tejun Heo</name>
<email>htejun@gmail.com</email>
</author>
<published>2006-07-10T14:18:23Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=7c8c2cff81b2b7f6dd3f9fd7b77033c1be5d7920'/>
<id>urn:sha1:7c8c2cff81b2b7f6dd3f9fd7b77033c1be5d7920</id>
<content type='text'>
* (ata_dev_absent() || ata_dev_ready()) test doesn't indicate
  SUSPENDED state properly.  Fix it.

* Link resuming resets shouldn't be skipped.  Don't skip recovery on
  EHI_RESUME_LINK.  This doesn't matter for host ports as EHI_RESUME
  always coincides with EHI_HOTPLUGGED which makes attached disabled
  devices vacant.  However, PMP reset causes non-hotplug link-resuming
  resets which shouldn't be skipped.

Signed-off-by: Tejun Heo &lt;htejun@gmail.com&gt;
Signed-off-by: Jeff Garzik &lt;jeff@garzik.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] libata: fix autopsy ehc-&gt;i.action and ehc-&gt;i.dev handling</title>
<updated>2006-07-19T18:06:53Z</updated>
<author>
<name>Tejun Heo</name>
<email>htejun@gmail.com</email>
</author>
<published>2006-07-08T11:17:26Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=4528e4da79675b4995e085046b8ffbe0415c3261'/>
<id>urn:sha1:4528e4da79675b4995e085046b8ffbe0415c3261</id>
<content type='text'>
Commit 0662c58b3265f52f708a6d59476bc7862b01f9c0 updated
ata_eh_autopsy() to OR determined action to ehc-&gt;i.action to preserve
action mask set directly into ehc-&gt;i.action by nested functions.  This
broke action mask clearing on SENSE_VALID case causing revalidation
and EH complete message on successful ATAPI CC.

This patch removes two local variables - action and failed_dev - which
cache ehc-&gt;i.action and ehc-&gt;i.dev respectively, and make the function
directly modify ehc-&gt;i.* fields to remove aliasing issues.

Signed-off-by: Tejun Heo &lt;htejun@gmail.com&gt;
Signed-off-by: Jeff Garzik &lt;jeff@garzik.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] libata: reimplement controller-wide PM</title>
<updated>2006-07-06T02:16:28Z</updated>
<author>
<name>Tejun Heo</name>
<email>htejun@gmail.com</email>
</author>
<published>2006-07-03T07:07:27Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=500530f652f9e5dabe7571b018dec47742ce0f16'/>
<id>urn:sha1:500530f652f9e5dabe7571b018dec47742ce0f16</id>
<content type='text'>
Reimplement controller-wide PM.  ata_host_set_suspend/resume() are
defined to suspend and resume a host_set.  While suspended, EHs for
all ports in the host_set are pegged using ATA_FLAG_SUSPENDED and
frozen.

Because SCSI device hotplug is done asynchronously against the rest of
libata EH and the same mutex is used when adding new device, suspend
cannot wait for hotplug to complete.  So, if SCSI device hotplug is in
progress, suspend fails with -EBUSY.

In most cases, host_set resume is followed by device resume.  As each
resume operation requires a reset, a single host_set-wide resume
operation may result in multiple resets.  To avoid this, resume waits
upto 1 second giving PM to request resume for devices.

Signed-off-by: Tejun Heo &lt;htejun@gmail.com&gt;
Signed-off-by: Jeff Garzik &lt;jeff@garzik.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] libata: implement PM EH actions</title>
<updated>2006-07-06T02:16:28Z</updated>
<author>
<name>Tejun Heo</name>
<email>htejun@gmail.com</email>
</author>
<published>2006-07-03T07:07:26Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=02670bf379267f55a43aa57f6895689697e90eb3'/>
<id>urn:sha1:02670bf379267f55a43aa57f6895689697e90eb3</id>
<content type='text'>
Implement two PM per-dev EH actions - ATA_EH_SUSPEND and
ATA_EH_RESUME.  Each action puts the target device into suspended mode
and resumes from it respectively.

Once a device is put to suspended mode, no EH operations other than
RESUME is allowed on the device.  The device will stay suspended till
it gets resumed and thus reset and revalidated.  To implement this, a
new device state helper - ata_dev_ready() - is implemented and used in
EH action implementations to make them operate only on attached &amp;
running devices.

If all possible devices on a port are suspended, reset is skipped too.
This prevents spurious events including hotplug events from disrupting
suspended devices.

Signed-off-by: Tejun Heo &lt;htejun@gmail.com&gt;
Signed-off-by: Jeff Garzik &lt;jeff@garzik.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] libata: implement ATA_EHI_NO_AUTOPSY and QUIET</title>
<updated>2006-07-06T02:16:27Z</updated>
<author>
<name>Tejun Heo</name>
<email>htejun@gmail.com</email>
</author>
<published>2006-07-03T07:07:26Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=1cdaf534f829b8759ba30f97d5e8dceb2ab77ba4'/>
<id>urn:sha1:1cdaf534f829b8759ba30f97d5e8dceb2ab77ba4</id>
<content type='text'>
Implement ATA_EHI_NO_AUTOPSY and QUIET.  These used to be implied by
ATA_PFLAG_LOADING, but new power management and PMP support need to
use these separately.  e.g. Suspend/resume operations shouldn't print
full EH messages and resume shouldn't be recorded as an error.

Signed-off-by: Tejun Heo &lt;htejun@gmail.com&gt;
Signed-off-by: Jeff Garzik &lt;jeff@garzik.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] libata: replace ap_lock w/ ap-&gt;lock in ata_scsi_error()</title>
<updated>2006-07-06T02:05:34Z</updated>
<author>
<name>Tejun Heo</name>
<email>htejun@gmail.com</email>
</author>
<published>2006-07-02T18:02:15Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=e30349d27e093f32ef517b5416d9dce1998d4676'/>
<id>urn:sha1:e30349d27e093f32ef517b5416d9dce1998d4676</id>
<content type='text'>
ap_lock was used because &amp;ap-&gt;host_set-&gt;lock was too long and used a
lot.  Now that &amp;ap-&gt;host_set-&gt;lock is replaced with ap-&gt;lock, there's
no reason to keep ap_lock.

[ed. note: that's not entirely true.  ap_lock is a local variable,
caching the results of a de-ref.  In theory, if the compiler is smart
enough, this patch is cosmetic.  However, since this is not a fast
path (it is the error path), this patch is nonetheless acceptable,
even though it _may_ introduce a performance regression.]

Signed-off-by: Tejun Heo &lt;htejun@gmail.com&gt;
Signed-off-by: Jeff Garzik &lt;jeff@garzik.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] libata: fix ehc-&gt;i.action setting in ata_eh_autopsy()</title>
<updated>2006-07-06T01:51:42Z</updated>
<author>
<name>Tejun Heo</name>
<email>htejun@gmail.com</email>
</author>
<published>2006-07-02T17:54:58Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=0662c58b3265f52f708a6d59476bc7862b01f9c0'/>
<id>urn:sha1:0662c58b3265f52f708a6d59476bc7862b01f9c0</id>
<content type='text'>
ata_eh_autopsy() used to directly assign determined action mask to
ehc-&gt;i.action thus overriding actions set by some of nested analyze
functions.  This patch makes ata_eh_autopsy() add action masks just as
it's done in other places.

Signed-off-by: Tejun Heo &lt;htejun@gmail.com&gt;
Signed-off-by: Jeff Garzik &lt;jeff@garzik.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] libata: add ap-&gt;pflags and move core dynamic flags to it</title>
<updated>2006-07-06T01:51:42Z</updated>
<author>
<name>Tejun Heo</name>
<email>htejun@gmail.com</email>
</author>
<published>2006-06-28T16:29:30Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=b51e9e5db0e36239f786692f1cac6e435ed30c66'/>
<id>urn:sha1:b51e9e5db0e36239f786692f1cac6e435ed30c66</id>
<content type='text'>
ap-&gt;flags is way too clamped.  Separate out core dynamic flags to
ap-&gt;pflags.  ATA_FLAG_DISABLED is a dynamic flag but left alone as
it's referenced by a lot of LLDs and it's gonna be removed once all
LLDs are converted to new EH.

Signed-off-by: Tejun Heo &lt;htejun@gmail.com&gt;
Signed-off-by: Jeff Garzik &lt;jeff@garzik.org&gt;
</content>
</entry>
</feed>
