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>
This commit is contained in:
parent
9350de06be
commit
d24c2a4f91
1 changed files with 3 additions and 3 deletions
|
@ -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",
|
||||||
|
|
Loading…
Add table
Reference in a new issue