Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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: Sahara <keun-o.park@windriver.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

authored by

Sahara and committed by
Rafael J. Wysocki
d24c2a4f 9350de06

+3 -3
+3 -3
kernel/power/qos.c
··· 477 477 { 478 478 int pm_qos_class; 479 479 480 - for (pm_qos_class = 0; 480 + for (pm_qos_class = PM_QOS_CPU_DMA_LATENCY; 481 481 pm_qos_class < PM_QOS_NUM_CLASSES; pm_qos_class++) { 482 482 if (minor == 483 483 pm_qos_array[pm_qos_class]->pm_qos_power_miscdev.minor) ··· 491 491 long pm_qos_class; 492 492 493 493 pm_qos_class = find_pm_qos_object_by_minor(iminor(inode)); 494 - if (pm_qos_class >= 0) { 494 + if (pm_qos_class >= PM_QOS_CPU_DMA_LATENCY) { 495 495 struct pm_qos_request *req = kzalloc(sizeof(*req), GFP_KERNEL); 496 496 if (!req) 497 497 return -ENOMEM; ··· 584 584 585 585 BUILD_BUG_ON(ARRAY_SIZE(pm_qos_array) != PM_QOS_NUM_CLASSES); 586 586 587 - for (i = 1; i < PM_QOS_NUM_CLASSES; i++) { 587 + for (i = PM_QOS_CPU_DMA_LATENCY; i < PM_QOS_NUM_CLASSES; i++) { 588 588 ret = register_pm_qos_misc(pm_qos_array[i]); 589 589 if (ret < 0) { 590 590 printk(KERN_ERR "pm_qos_param: %s setup failed\n",