]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/commit
Merge SETAN changes from head:
authorimp <imp@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Tue, 26 Aug 2014 03:45:54 +0000 (03:45 +0000)
committerimp <imp@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Tue, 26 Aug 2014 03:45:54 +0000 (03:45 +0000)
commit7b3cdb6caaa4a5360a6f337d40818d3c10d170e4
tree6cd1dbba3ba16e1dca27df218d81965798c53b34
parent2dc719ef4e9f01e82c0d4864da535ae4036c94a7
Merge SETAN changes from head:

r270327 | imp | 2014-08-22 07:15:59 -0600 (Fri, 22 Aug 2014) | 6 lines
We should never enter the PROBE_SETAN phase if we're not ATAPI, since
that's ATAPI specific. Instead, skip to PROBE_SET_MULTI instead for
non ATAPI protocols. The prior code incorrectly terminated the probe
with a break, rather than arranging for probedone to get called. This
caused panics or worse on some systems.

r270249 | imp | 2014-08-20 16:58:12 -0600 (Wed, 20 Aug 2014) | 13 lines
Turns out that IDENTIFY DEVICE and IDENTIFY PACKET DEVICE return data
that's only mostly similar. Specifically word 78 bits are defined for
IDENTIFY DEVICE as
        5 Supports Hardware Feature Control
while a IDENTIFY PACKET DEVICE defines them as
        5 Asynchronous notification supported
Therefore, only pay attention to bit 5 when we're talking to ATAPI
devices (we don't use the hardware feature control at this time).
Ignore it for ATA devices. Remove kludge that papered over this issue
for Samsung SATA SSDs, since Micron drives also have the bit set and
the error was caused by this bad interpretation of the spec (which is
quite easy to do, since bits aren't normally overlapping like this).

Sponsored by: Netflix (the merge and the original work)

git-svn-id: svn://svn.freebsd.org/base/stable/10@270645 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/cam/ata/ata_xpt.c