<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/ata/libata-core.c, branch linux-2.6.23.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.23.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.23.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2008-02-08T20:01:47Z</updated>
<entry>
<title>libata: port and host should be stopped before hardware resources are released</title>
<updated>2008-02-08T20:01:47Z</updated>
<author>
<name>Tejun Heo</name>
</author>
<published>2008-01-18T12:52:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=236dd7e3143e79b216e9f51e2488f9e3a60b4161'/>
<id>urn:sha1:236dd7e3143e79b216e9f51e2488f9e3a60b4161</id>
<content type='text'>
This is backport of 32ebbc0c0d5d18c0135b55d1eb0029f48c54aff0 and fixes
oops on driver module unload.

Port / host stop calls used to be made from ata_host_release() which
is called after all hardware resources acquired after host allocation
are released.  This is wrong as port and host stop routines often
access the hardware.

Add separate devres for port / host stop which is invoked right after
IRQ is released but with all other hardware resources intact.  The
devres is added iff -&gt;host_stop and/or -&gt;port_stop exist.

This problem has been spotted by Mark Lord.

Signed-off-by: Tejun Heo &lt;htejun@gmail.com&gt;
Cc: Mark Lord &lt;liml@rtr.ca&gt;
Signed-off-by: Jeff Garzik &lt;jeff@garzik.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>libata: kill spurious NCQ completion detection</title>
<updated>2007-12-14T17:51:15Z</updated>
<author>
<name>Tejun Heo</name>
</author>
<published>2007-12-08T00:25:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9ee303ef4e582f2f8b4f08e58ced6ba44debfb64'/>
<id>urn:sha1:9ee303ef4e582f2f8b4f08e58ced6ba44debfb64</id>
<content type='text'>
patch 459ad68893a84fb0881e57919340b97edbbc3dc7 in mainline.

Spurious NCQ completion detection implemented in ahci was incorrect.
On AHCI receving and processing FISes and raising interrupts are not
interlocked and spurious interrupts are expected.

For example, if an interrupt occurs while interrupt handler is running
and the running interrupt handler handles the event the new IRQ
indicated, after IRQ handler finishes, it will be executed again
because IRQ pending bit is set by the new interrupt but there won't be
anything to process.

Please read the following message for more information.

  http://article.gmane.org/gmane.linux.ide/26012

This patch...

* Removes all spurious IRQ whining from ahci.  Spurious NCQ completion
  detection was completely wrong.  Spurious D2H Register FIS taught us
  that some early drives send spurious D2H Register FIS with I bit set
  while NCQ commands are in progress but none of recent drives does
  that and even the ones which show such behavior can do NCQ fine.

* Kills all NCQ blacklist entries which were added because of spurious
  NCQ completions.  I tracked down each commit and verified all
  removed ones are actually added because of spurious completions.

  WD740ADFD-00NLR1 wasn't deleted but moved upward because the drive
  not only had spurious NCQ completions but also is slow on sequential
  data transfers if NCQ is enabled.

  Maxtor 7V300F0 was added by 0e3dbc01d53940fe10e5a5cfec15ede3e929c918
  from Alan Cox.  I can only find evidences that the drive only had
  troubles with spuruious completions by searching the mailing list.
  This entry needs to be verified and removed if it doesn't have other
  NCQ related problems.

Signed-off-by: Tejun Heo &lt;htejun@gmail.com&gt;
Cc: Alan Cox &lt;alan@lxorguk.ukuu.org.uk&gt;
Signed-off-by: Jeff Garzik &lt;jeff@garzik.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>libata: add HTS542525K9SA00 to NCQ blacklist</title>
<updated>2007-11-16T17:30:24Z</updated>
<author>
<name>Tejun Heo</name>
</author>
<published>2007-10-24T02:47:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=653ffa9b066dfb423baf6c14b2a2061a8c7b96c8'/>
<id>urn:sha1:653ffa9b066dfb423baf6c14b2a2061a8c7b96c8</id>
<content type='text'>
patch e14cbfa630cd3ab2631ee21b718b290928f47868 in mainline.

Another one doing spurious NCQ completions.  Blacklist it.

Signed-off-by: Tejun Heo &lt;htejun@gmail.com&gt;
Cc: Luca Tettamanti &lt;kronos.it@gmail.com&gt;
Signed-off-by: Jeff Garzik &lt;jeff@garzik.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>libata: sync NCQ blacklist with upstream</title>
<updated>2007-11-16T17:30:21Z</updated>
<author>
<name>Tejun Heo</name>
</author>
<published>2007-10-11T01:55:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f382e2f11caa82e381b093adbf9ccae5c6279877'/>
<id>urn:sha1:f382e2f11caa82e381b093adbf9ccae5c6279877</id>
<content type='text'>
Synchronize NCQ blacklist with the current upstream.  Based on changes
already in Linus's 2.6.24-rc kernel tree.

Signed-off-by: Tejun Heo &lt;htejun@gmail.com&gt;
Cc: Jeff Garzik &lt;jeff@garzik.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>libata: Update the blacklist with a few more devices</title>
<updated>2007-09-20T19:58:26Z</updated>
<author>
<name>Alan Cox</name>
</author>
<published>2007-09-20T14:22:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0e3dbc01d53940fe10e5a5cfec15ede3e929c918'/>
<id>urn:sha1:0e3dbc01d53940fe10e5a5cfec15ede3e929c918</id>
<content type='text'>
Signed-off-by: Alan Cox &lt;alan@redhat.com&gt;
Signed-off-by: Jeff Garzik &lt;jeff@garzik.org&gt;
</content>
</entry>
<entry>
<title>libata clear horkage on ata_dev_init()</title>
<updated>2007-09-11T02:07:42Z</updated>
<author>
<name>Tejun Heo</name>
</author>
<published>2007-09-03T03:20:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3dcc323fe8d7158bd662c04d41ba8b25fa3ce27b'/>
<id>urn:sha1:3dcc323fe8d7158bd662c04d41ba8b25fa3ce27b</id>
<content type='text'>
dev-&gt;horkage should be cleared over device hotunplug/plug.  Clear it
in ata_dev_init().

Signed-off-by: Tejun Heo &lt;htejun@gmail.com&gt;
Signed-off-by: Jeff Garzik &lt;jeff@garzik.org&gt;
</content>
</entry>
<entry>
<title>libata: implement BROKEN_HPA horkage and apply it to affected drives</title>
<updated>2007-08-31T08:21:13Z</updated>
<author>
<name>Tejun Heo</name>
</author>
<published>2007-08-29T02:58:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=16c55b038033d8f6f7601996dfae44399666d9ab'/>
<id>urn:sha1:16c55b038033d8f6f7601996dfae44399666d9ab</id>
<content type='text'>
Some drives choke on READ_NATIVE_MAX_ADDRESS[_EXT].  Implement
ATA_HORKAGE_BROKEN_HPA and apply it to affected drives.

Signed-off-by: Tejun Heo &lt;htejun@gmail.com&gt;
Signed-off-by: Jeff Garzik &lt;jeff@garzik.org&gt;
</content>
</entry>
<entry>
<title>libata-core: Allow translation setting to fail</title>
<updated>2007-08-31T07:37:55Z</updated>
<author>
<name>Alan Cox</name>
</author>
<published>2007-08-08T13:28:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=18b2466c3050e23c98bb69bd3f35295ff8164851'/>
<id>urn:sha1:18b2466c3050e23c98bb69bd3f35295ff8164851</id>
<content type='text'>
On some early drives (pre ATA1) this feature is not supported. If it
fails then we know the drive geometry is the hardware geometry and the
one we tried to set anyway so just carry on.

Signed-off-by: Alan Cox &lt;alan@redhat.com&gt;
Signed-off-by: Jeff Garzik &lt;jeff@garzik.org&gt;
</content>
</entry>
<entry>
<title>libata: don't check n_sectors during revalidation if zero</title>
<updated>2007-08-23T09:34:05Z</updated>
<author>
<name>Tejun Heo</name>
</author>
<published>2007-08-17T09:46:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b54eebd673861136291b97e409a0f248b96e74ae'/>
<id>urn:sha1:b54eebd673861136291b97e409a0f248b96e74ae</id>
<content type='text'>
If the initial configuration fails early, n_sectors is left at zero.
Checking against it during revalidation makes retried configuration
fail due to n_sectors mismatch.  Ignore zero n_sectors during
revalidation.

Signed-off-by: Tejun Heo &lt;htejun@gmail.com&gt;
Signed-off-by: Jeff Garzik &lt;jeff@garzik.org&gt;
</content>
</entry>
<entry>
<title>libata: fix n_sectors failure handling during revalidation</title>
<updated>2007-08-23T09:23:14Z</updated>
<author>
<name>Tejun Heo</name>
</author>
<published>2007-08-15T18:02:22Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8270bec40075eec9df8778c1d5da36ef0e535176'/>
<id>urn:sha1:8270bec40075eec9df8778c1d5da36ef0e535176</id>
<content type='text'>
If revalidation fails because device has different n_sectors after
configuration the original n_sectors should be restored before failing
revalidation.  Without this fix, n_sectors difference will incorrectly
and silently pass revalidation when revalidation is retried.

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