Commit da3b6ef1 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull ata fix from Niklas Cassel:

 - We currently enable DIPM (device initiated power management) in the
   device (using a SET FEATURES call to the device), regardless if the
   HBA supports any LPM states or not. It seems counter intuitive, and
   potentially dangerous to enable a device side feature, when the HBA
   does not have the corresponding support. Thus, make sure that we do
   not enable DIPM if the HBA does not support any LPM states.

* tag 'ata-6.10-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux:
  ata: ahci: Do not enable LPM if no LPM states are supported by the HBA
parents 1f5c5371 fa997b05
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -1735,6 +1735,14 @@ static void ahci_update_initial_lpm_policy(struct ata_port *ap)
	if (ap->pflags & ATA_PFLAG_EXTERNAL)
		return;

	/* If no LPM states are supported by the HBA, do not bother with LPM */
	if ((ap->host->flags & ATA_HOST_NO_PART) &&
	    (ap->host->flags & ATA_HOST_NO_SSC) &&
	    (ap->host->flags & ATA_HOST_NO_DEVSLP)) {
		ata_port_dbg(ap, "no LPM states supported, not enabling LPM\n");
		return;
	}

	/* user modified policy via module param */
	if (mobile_lpm_policy != -1) {
		policy = mobile_lpm_policy;