lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 08 Oct 2012 10:08:39 +0200 From: "Rafael J. Wysocki" <rjw@...k.pl> To: Linux PM list <linux-pm@...r.kernel.org> Cc: ACPI Devel Mailing List <linux-acpi@...r.kernel.org>, Alan Stern <stern@...land.harvard.edu>, Huang Ying <ying.huang@...el.com>, Sarah Sharp <sarah.a.sharp@...ux.intel.com>, Lan Tianyu <tianyu.lan@...el.com>, Aaron Lu <aaron.lu@...el.com>, Jean Pihet <j-pihet@...com>, linux-pci@...r.kernel.org, Greg Kroah-Hartman <gregkh@...uxfoundation.org>, mark gross <markgross@...gnar.org>, LKML <linux-kernel@...r.kernel.org> Subject: [PATCH 6/7] PM / Domains: Check device PM QoS flags in pm_genpd_poweroff() From: Rafael J. Wysocki <rafael.j.wysocki@...el.com> Make the generic PM domains pm_genpd_poweroff() function take device PM QoS flags into account when deciding whether or not to remove power from the domain. After this change the routine will return -EBUSY without executing the domain's .power_off() callback if there is at least one PM QoS flags request for at least one device in the domain and at least of those request has at least one of the NO_POWER_OFF and REMOTE_WAKEUP flags set. Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@...el.com> Reviewed-by: Jean Pihet <j-pihet@...com> --- drivers/base/power/domain.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) Index: linux/drivers/base/power/domain.c =================================================================== --- linux.orig/drivers/base/power/domain.c +++ linux/drivers/base/power/domain.c @@ -470,10 +470,19 @@ static int pm_genpd_poweroff(struct gene return -EBUSY; not_suspended = 0; - list_for_each_entry(pdd, &genpd->dev_list, list_node) + list_for_each_entry(pdd, &genpd->dev_list, list_node) { + enum pm_qos_flags_status stat; + + stat = dev_pm_qos_flags(pdd->dev, + PM_QOS_FLAG_NO_POWER_OFF + | PM_QOS_FLAG_REMOTE_WAKEUP); + if (stat > PM_QOS_FLAGS_NONE) + return -EBUSY; + if (pdd->dev->driver && (!pm_runtime_suspended(pdd->dev) || pdd->dev->power.irq_safe)) not_suspended++; + } if (not_suspended > genpd->in_progress) return -EBUSY; -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists