diff options
author | Tejun Heo <tj@kernel.org> | 2010-12-09 16:13:15 +0100 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2010-12-24 19:34:34 +0100 |
commit | e5005b15c91f3362036067bde5210d5c78af2f0d (patch) | |
tree | cbddea07bc4b27921f40a7cc0c0a687d7239041e /.gitignore | |
parent | libata: no special completion processing for EH commands (diff) | |
download | linux-e5005b15c91f3362036067bde5210d5c78af2f0d.tar.xz linux-e5005b15c91f3362036067bde5210d5c78af2f0d.zip |
libata: issue DIPM enable commands with LPM state updated
Low level drivers may behave differently depending on the current
link->lpm_policy. During ata_eh_set_lpm(), DIPM enable commands are
issued after the successful completion of ap->ops->set_lpm(), which
means that the controller is already in the target state. This causes
DIPM enable commands to be processed with mismatching controller power
state and link->lpm_policy value.
In ahci, link->lpm_policy is used to ignore certain PHY events if LPM
is enabled; however, as DIPM commands are issued with stale
link->lpm_policy, they sometimes end up triggering these conditions
and get aborted leading to LPM configuration failure.
Fix it by updating link->lpm_policy before issuing DIPM enable
commands.
Signed-off-by: Tejun Heo <tj@kernel.org>
Reported-by: Kyle McMartin <kyle@mcmartin.ca>
Cc: stable@kernel.org
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to '.gitignore')
0 files changed, 0 insertions, 0 deletions