diff options
| author | Tejun Heo <[email protected]> | 2010-12-09 15:13:15 +0000 |
|---|---|---|
| committer | Jeff Garzik <[email protected]> | 2010-12-24 18:34:34 +0000 |
| commit | e5005b15c91f3362036067bde5210d5c78af2f0d (patch) | |
| tree | cbddea07bc4b27921f40a7cc0c0a687d7239041e /fs/ubifs/commit.c | |
| parent | libata: no special completion processing for EH commands (diff) | |
| download | kernel-e5005b15c91f3362036067bde5210d5c78af2f0d.tar.gz kernel-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 <[email protected]>
Reported-by: Kyle McMartin <[email protected]>
Cc: [email protected]
Signed-off-by: Jeff Garzik <[email protected]>
Diffstat (limited to 'fs/ubifs/commit.c')
0 files changed, 0 insertions, 0 deletions
