Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d24c2a4f authored by Sahara's avatar Sahara Committed by Rafael J. Wysocki
Browse files

PM / QoS: correct the valid range of pm_qos_class



The valid start index for pm_qos_array is not 0, but
PM_QOS_CPU_DMA_LATENCY. There is a null_pm_qos at index 0 of
pm_qos_array.  However, null_pm_qos is not created as misc device so
that inclusion of 0 index for checking pm_qos_class especially for
file operations is not proper here.

[rjw: Changelog, a bit]
Signed-off-by: default avatarSahara <keun-o.park@windriver.com>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent 9350de06
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -477,7 +477,7 @@ static int find_pm_qos_object_by_minor(int minor)
{
{
	int pm_qos_class;
	int pm_qos_class;


	for (pm_qos_class = 0;
	for (pm_qos_class = PM_QOS_CPU_DMA_LATENCY;
		pm_qos_class < PM_QOS_NUM_CLASSES; pm_qos_class++) {
		pm_qos_class < PM_QOS_NUM_CLASSES; pm_qos_class++) {
		if (minor ==
		if (minor ==
			pm_qos_array[pm_qos_class]->pm_qos_power_miscdev.minor)
			pm_qos_array[pm_qos_class]->pm_qos_power_miscdev.minor)
@@ -491,7 +491,7 @@ static int pm_qos_power_open(struct inode *inode, struct file *filp)
	long pm_qos_class;
	long pm_qos_class;


	pm_qos_class = find_pm_qos_object_by_minor(iminor(inode));
	pm_qos_class = find_pm_qos_object_by_minor(iminor(inode));
	if (pm_qos_class >= 0) {
	if (pm_qos_class >= PM_QOS_CPU_DMA_LATENCY) {
		struct pm_qos_request *req = kzalloc(sizeof(*req), GFP_KERNEL);
		struct pm_qos_request *req = kzalloc(sizeof(*req), GFP_KERNEL);
		if (!req)
		if (!req)
			return -ENOMEM;
			return -ENOMEM;
@@ -584,7 +584,7 @@ static int __init pm_qos_power_init(void)


	BUILD_BUG_ON(ARRAY_SIZE(pm_qos_array) != PM_QOS_NUM_CLASSES);
	BUILD_BUG_ON(ARRAY_SIZE(pm_qos_array) != PM_QOS_NUM_CLASSES);


	for (i = 1; i < PM_QOS_NUM_CLASSES; i++) {
	for (i = PM_QOS_CPU_DMA_LATENCY; i < PM_QOS_NUM_CLASSES; i++) {
		ret = register_pm_qos_misc(pm_qos_array[i]);
		ret = register_pm_qos_misc(pm_qos_array[i]);
		if (ret < 0) {
		if (ret < 0) {
			printk(KERN_ERR "pm_qos_param: %s setup failed\n",
			printk(KERN_ERR "pm_qos_param: %s setup failed\n",