2016-03-03 07:15:12

by Wei Ni

[permalink] [raw]
Subject: [PATCH] thermal: consistently use int for trip temp

The commit 17e8351a7739 consistently use int for temperature,
however it missed a few in trip temperature and thermal_core.

In current codes, the trip->temperature used "unsigned long"
and zone->temperature used"int", if the temperature is negative
value, it will get wrong result when compare temperature with
trip temperature.

This patch can fix it.

Signed-off-by: Wei Ni <[email protected]>
---
drivers/thermal/thermal_core.c | 4 ++--
include/linux/thermal.h | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c
index a0a8fd1235e2..2cde55474e34 100644
--- a/drivers/thermal/thermal_core.c
+++ b/drivers/thermal/thermal_core.c
@@ -684,7 +684,7 @@ trip_point_temp_store(struct device *dev, struct device_attribute *attr,
{
struct thermal_zone_device *tz = to_thermal_zone(dev);
int trip, ret;
- unsigned long temperature;
+ int temperature;

if (!tz->ops->set_trip_temp)
return -EPERM;
@@ -895,7 +895,7 @@ emul_temp_store(struct device *dev, struct device_attribute *attr,
{
struct thermal_zone_device *tz = to_thermal_zone(dev);
int ret = 0;
- unsigned long temperature;
+ int temperature;

if (kstrtoul(buf, 10, &temperature))
return -EINVAL;
diff --git a/include/linux/thermal.h b/include/linux/thermal.h
index e13a1ace50e9..eee0b7ddd2c1 100644
--- a/include/linux/thermal.h
+++ b/include/linux/thermal.h
@@ -350,8 +350,8 @@ struct thermal_zone_of_device_ops {

struct thermal_trip {
struct device_node *np;
- unsigned long int temperature;
- unsigned long int hysteresis;
+ int temperature;
+ int hysteresis;
enum thermal_trip_type type;
};

--
1.9.1


2016-03-03 07:30:51

by kernel test robot

[permalink] [raw]
Subject: Re: [PATCH] thermal: consistently use int for trip temp

Hi Wei,

[auto build test WARNING on thermal/next]
[also build test WARNING on v4.5-rc6 next-20160302]
[if your patch is applied to the wrong git tree, please drop us a note to help improving the system]

url: https://github.com/0day-ci/linux/commits/Wei-Ni/thermal-consistently-use-int-for-trip-temp/20160303-151648
base: https://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux.git next
config: sparc64-allyesconfig (attached as .config)
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=sparc64

All warnings (new ones prefixed by >>):

drivers/thermal/thermal_core.c: In function 'trip_point_temp_store':
>> drivers/thermal/thermal_core.c:695:6: warning: passing argument 3 of 'kstrtoul' from incompatible pointer type
if (kstrtoul(buf, 10, &temperature))
^
In file included from include/linux/list.h:8:0,
from include/linux/module.h:9,
from drivers/thermal/thermal_core.c:28:
include/linux/kernel.h:291:32: note: expected 'long unsigned int *' but argument is of type 'int *'
static inline int __must_check kstrtoul(const char *s, unsigned int base, unsigned long *res)
^
drivers/thermal/thermal_core.c: In function 'emul_temp_store':
drivers/thermal/thermal_core.c:900:6: warning: passing argument 3 of 'kstrtoul' from incompatible pointer type
if (kstrtoul(buf, 10, &temperature))
^
In file included from include/linux/list.h:8:0,
from include/linux/module.h:9,
from drivers/thermal/thermal_core.c:28:
include/linux/kernel.h:291:32: note: expected 'long unsigned int *' but argument is of type 'int *'
static inline int __must_check kstrtoul(const char *s, unsigned int base, unsigned long *res)
^

vim +/kstrtoul +695 drivers/thermal/thermal_core.c

203d3d4a drivers/thermal/thermal.c Zhang Rui 2008-01-17 679 }
203d3d4a drivers/thermal/thermal.c Zhang Rui 2008-01-17 680
203d3d4a drivers/thermal/thermal.c Zhang Rui 2008-01-17 681 static ssize_t
c56f5c03 drivers/thermal/thermal_sys.c Durgadoss R 2012-07-25 682 trip_point_temp_store(struct device *dev, struct device_attribute *attr,
c56f5c03 drivers/thermal/thermal_sys.c Durgadoss R 2012-07-25 683 const char *buf, size_t count)
c56f5c03 drivers/thermal/thermal_sys.c Durgadoss R 2012-07-25 684 {
c56f5c03 drivers/thermal/thermal_sys.c Durgadoss R 2012-07-25 685 struct thermal_zone_device *tz = to_thermal_zone(dev);
c56f5c03 drivers/thermal/thermal_sys.c Durgadoss R 2012-07-25 686 int trip, ret;
1afa53cf drivers/thermal/thermal_core.c Wei Ni 2016-03-03 687 int temperature;
c56f5c03 drivers/thermal/thermal_sys.c Durgadoss R 2012-07-25 688
c56f5c03 drivers/thermal/thermal_sys.c Durgadoss R 2012-07-25 689 if (!tz->ops->set_trip_temp)
c56f5c03 drivers/thermal/thermal_sys.c Durgadoss R 2012-07-25 690 return -EPERM;
c56f5c03 drivers/thermal/thermal_sys.c Durgadoss R 2012-07-25 691
c56f5c03 drivers/thermal/thermal_sys.c Durgadoss R 2012-07-25 692 if (!sscanf(attr->attr.name, "trip_point_%d_temp", &trip))
c56f5c03 drivers/thermal/thermal_sys.c Durgadoss R 2012-07-25 693 return -EINVAL;
c56f5c03 drivers/thermal/thermal_sys.c Durgadoss R 2012-07-25 694
c56f5c03 drivers/thermal/thermal_sys.c Durgadoss R 2012-07-25 @695 if (kstrtoul(buf, 10, &temperature))
c56f5c03 drivers/thermal/thermal_sys.c Durgadoss R 2012-07-25 696 return -EINVAL;
c56f5c03 drivers/thermal/thermal_sys.c Durgadoss R 2012-07-25 697
c56f5c03 drivers/thermal/thermal_sys.c Durgadoss R 2012-07-25 698 ret = tz->ops->set_trip_temp(tz, trip, temperature);
ad74e46c drivers/thermal/thermal_core.c Kuninori Morimoto 2015-12-15 699 if (ret)
ad74e46c drivers/thermal/thermal_core.c Kuninori Morimoto 2015-12-15 700 return ret;
c56f5c03 drivers/thermal/thermal_sys.c Durgadoss R 2012-07-25 701
ad74e46c drivers/thermal/thermal_core.c Kuninori Morimoto 2015-12-15 702 thermal_zone_device_update(tz);
ad74e46c drivers/thermal/thermal_core.c Kuninori Morimoto 2015-12-15 703

:::::: The code at line 695 was first introduced by commit
:::::: c56f5c0342dfee11a1a13d2f5bb7618de5b17590 Thermal: Make Thermal trip points writeable

:::::: TO: Durgadoss R <[email protected]>
:::::: CC: Len Brown <[email protected]>

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation


Attachments:
(No filename) (4.75 kB)
.config.gz (44.05 kB)
Download all attachments

2016-03-03 07:38:30

by kernel test robot

[permalink] [raw]
Subject: Re: [PATCH] thermal: consistently use int for trip temp

Hi Wei,

[auto build test WARNING on thermal/next]
[also build test WARNING on v4.5-rc6 next-20160302]
[if your patch is applied to the wrong git tree, please drop us a note to help improving the system]

url: https://github.com/0day-ci/linux/commits/Wei-Ni/thermal-consistently-use-int-for-trip-temp/20160303-151648
base: https://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux.git next
config: x86_64-randconfig-x015-201609 (attached as .config)
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64

All warnings (new ones prefixed by >>):

In file included from include/uapi/linux/stddef.h:1:0,
from include/linux/stddef.h:4,
from include/uapi/linux/posix_types.h:4,
from include/uapi/linux/types.h:13,
from include/linux/types.h:5,
from include/linux/list.h:4,
from include/linux/module.h:9,
from drivers/thermal/thermal_core.c:28:
drivers/thermal/thermal_core.c: In function 'trip_point_temp_store':
drivers/thermal/thermal_core.c:695:24: warning: passing argument 3 of 'kstrtoul' from incompatible pointer type [-Wincompatible-pointer-types]
if (kstrtoul(buf, 10, &temperature))
^
include/linux/compiler.h:147:30: note: in definition of macro '__trace_if'
if (__builtin_constant_p(!!(cond)) ? !!(cond) : \
^
>> drivers/thermal/thermal_core.c:695:2: note: in expansion of macro 'if'
if (kstrtoul(buf, 10, &temperature))
^
In file included from include/linux/list.h:8:0,
from include/linux/module.h:9,
from drivers/thermal/thermal_core.c:28:
include/linux/kernel.h:291:32: note: expected 'long unsigned int *' but argument is of type 'int *'
static inline int __must_check kstrtoul(const char *s, unsigned int base, unsigned long *res)
^
In file included from include/uapi/linux/stddef.h:1:0,
from include/linux/stddef.h:4,
from include/uapi/linux/posix_types.h:4,
from include/uapi/linux/types.h:13,
from include/linux/types.h:5,
from include/linux/list.h:4,
from include/linux/module.h:9,
from drivers/thermal/thermal_core.c:28:
drivers/thermal/thermal_core.c:695:24: warning: passing argument 3 of 'kstrtoul' from incompatible pointer type [-Wincompatible-pointer-types]
if (kstrtoul(buf, 10, &temperature))
^
include/linux/compiler.h:147:42: note: in definition of macro '__trace_if'
if (__builtin_constant_p(!!(cond)) ? !!(cond) : \
^
>> drivers/thermal/thermal_core.c:695:2: note: in expansion of macro 'if'
if (kstrtoul(buf, 10, &temperature))
^
In file included from include/linux/list.h:8:0,
from include/linux/module.h:9,
from drivers/thermal/thermal_core.c:28:
include/linux/kernel.h:291:32: note: expected 'long unsigned int *' but argument is of type 'int *'
static inline int __must_check kstrtoul(const char *s, unsigned int base, unsigned long *res)
^
In file included from include/uapi/linux/stddef.h:1:0,
from include/linux/stddef.h:4,
from include/uapi/linux/posix_types.h:4,
from include/uapi/linux/types.h:13,
from include/linux/types.h:5,
from include/linux/list.h:4,
from include/linux/module.h:9,
from drivers/thermal/thermal_core.c:28:
drivers/thermal/thermal_core.c:695:24: warning: passing argument 3 of 'kstrtoul' from incompatible pointer type [-Wincompatible-pointer-types]
if (kstrtoul(buf, 10, &temperature))
^
include/linux/compiler.h:158:16: note: in definition of macro '__trace_if'
______r = !!(cond); \
^
>> drivers/thermal/thermal_core.c:695:2: note: in expansion of macro 'if'
if (kstrtoul(buf, 10, &temperature))
^
In file included from include/linux/list.h:8:0,
from include/linux/module.h:9,
from drivers/thermal/thermal_core.c:28:
include/linux/kernel.h:291:32: note: expected 'long unsigned int *' but argument is of type 'int *'
static inline int __must_check kstrtoul(const char *s, unsigned int base, unsigned long *res)
^
In file included from include/uapi/linux/stddef.h:1:0,
from include/linux/stddef.h:4,
from include/uapi/linux/posix_types.h:4,
from include/uapi/linux/types.h:13,
from include/linux/types.h:5,
from include/linux/list.h:4,
from include/linux/module.h:9,
from drivers/thermal/thermal_core.c:28:
drivers/thermal/thermal_core.c: In function 'emul_temp_store':
drivers/thermal/thermal_core.c:900:24: warning: passing argument 3 of 'kstrtoul' from incompatible pointer type [-Wincompatible-pointer-types]
if (kstrtoul(buf, 10, &temperature))
^
include/linux/compiler.h:147:30: note: in definition of macro '__trace_if'
if (__builtin_constant_p(!!(cond)) ? !!(cond) : \
^
drivers/thermal/thermal_core.c:900:2: note: in expansion of macro 'if'
if (kstrtoul(buf, 10, &temperature))
^
In file included from include/linux/list.h:8:0,
from include/linux/module.h:9,
from drivers/thermal/thermal_core.c:28:
include/linux/kernel.h:291:32: note: expected 'long unsigned int *' but argument is of type 'int *'
static inline int __must_check kstrtoul(const char *s, unsigned int base, unsigned long *res)
^
In file included from include/uapi/linux/stddef.h:1:0,
from include/linux/stddef.h:4,
from include/uapi/linux/posix_types.h:4,
from include/uapi/linux/types.h:13,
from include/linux/types.h:5,
from include/linux/list.h:4,
from include/linux/module.h:9,
from drivers/thermal/thermal_core.c:28:
drivers/thermal/thermal_core.c:900:24: warning: passing argument 3 of 'kstrtoul' from incompatible pointer type [-Wincompatible-pointer-types]
if (kstrtoul(buf, 10, &temperature))
^
include/linux/compiler.h:147:42: note: in definition of macro '__trace_if'
if (__builtin_constant_p(!!(cond)) ? !!(cond) : \
^
drivers/thermal/thermal_core.c:900:2: note: in expansion of macro 'if'
if (kstrtoul(buf, 10, &temperature))
^
In file included from include/linux/list.h:8:0,
from include/linux/module.h:9,
from drivers/thermal/thermal_core.c:28:
include/linux/kernel.h:291:32: note: expected 'long unsigned int *' but argument is of type 'int *'
static inline int __must_check kstrtoul(const char *s, unsigned int base, unsigned long *res)
^
In file included from include/uapi/linux/stddef.h:1:0,
from include/linux/stddef.h:4,
from include/uapi/linux/posix_types.h:4,
from include/uapi/linux/types.h:13,
from include/linux/types.h:5,
from include/linux/list.h:4,
from include/linux/module.h:9,
from drivers/thermal/thermal_core.c:28:
drivers/thermal/thermal_core.c:900:24: warning: passing argument 3 of 'kstrtoul' from incompatible pointer type [-Wincompatible-pointer-types]
if (kstrtoul(buf, 10, &temperature))
^
include/linux/compiler.h:158:16: note: in definition of macro '__trace_if'
______r = !!(cond); \
^
drivers/thermal/thermal_core.c:900:2: note: in expansion of macro 'if'
if (kstrtoul(buf, 10, &temperature))
^
In file included from include/linux/list.h:8:0,
from include/linux/module.h:9,
from drivers/thermal/thermal_core.c:28:
include/linux/kernel.h:291:32: note: expected 'long unsigned int *' but argument is of type 'int *'
static inline int __must_check kstrtoul(const char *s, unsigned int base, unsigned long *res)
^

vim +/if +695 drivers/thermal/thermal_core.c

203d3d4a drivers/thermal/thermal.c Zhang Rui 2008-01-17 679 }
203d3d4a drivers/thermal/thermal.c Zhang Rui 2008-01-17 680
203d3d4a drivers/thermal/thermal.c Zhang Rui 2008-01-17 681 static ssize_t
c56f5c03 drivers/thermal/thermal_sys.c Durgadoss R 2012-07-25 682 trip_point_temp_store(struct device *dev, struct device_attribute *attr,
c56f5c03 drivers/thermal/thermal_sys.c Durgadoss R 2012-07-25 683 const char *buf, size_t count)
c56f5c03 drivers/thermal/thermal_sys.c Durgadoss R 2012-07-25 684 {
c56f5c03 drivers/thermal/thermal_sys.c Durgadoss R 2012-07-25 685 struct thermal_zone_device *tz = to_thermal_zone(dev);
c56f5c03 drivers/thermal/thermal_sys.c Durgadoss R 2012-07-25 686 int trip, ret;
1afa53cf drivers/thermal/thermal_core.c Wei Ni 2016-03-03 687 int temperature;
c56f5c03 drivers/thermal/thermal_sys.c Durgadoss R 2012-07-25 688
c56f5c03 drivers/thermal/thermal_sys.c Durgadoss R 2012-07-25 689 if (!tz->ops->set_trip_temp)
c56f5c03 drivers/thermal/thermal_sys.c Durgadoss R 2012-07-25 690 return -EPERM;
c56f5c03 drivers/thermal/thermal_sys.c Durgadoss R 2012-07-25 691
c56f5c03 drivers/thermal/thermal_sys.c Durgadoss R 2012-07-25 692 if (!sscanf(attr->attr.name, "trip_point_%d_temp", &trip))
c56f5c03 drivers/thermal/thermal_sys.c Durgadoss R 2012-07-25 693 return -EINVAL;
c56f5c03 drivers/thermal/thermal_sys.c Durgadoss R 2012-07-25 694
c56f5c03 drivers/thermal/thermal_sys.c Durgadoss R 2012-07-25 @695 if (kstrtoul(buf, 10, &temperature))
c56f5c03 drivers/thermal/thermal_sys.c Durgadoss R 2012-07-25 696 return -EINVAL;
c56f5c03 drivers/thermal/thermal_sys.c Durgadoss R 2012-07-25 697
c56f5c03 drivers/thermal/thermal_sys.c Durgadoss R 2012-07-25 698 ret = tz->ops->set_trip_temp(tz, trip, temperature);
ad74e46c drivers/thermal/thermal_core.c Kuninori Morimoto 2015-12-15 699 if (ret)
ad74e46c drivers/thermal/thermal_core.c Kuninori Morimoto 2015-12-15 700 return ret;
c56f5c03 drivers/thermal/thermal_sys.c Durgadoss R 2012-07-25 701
ad74e46c drivers/thermal/thermal_core.c Kuninori Morimoto 2015-12-15 702 thermal_zone_device_update(tz);
ad74e46c drivers/thermal/thermal_core.c Kuninori Morimoto 2015-12-15 703

:::::: The code at line 695 was first introduced by commit
:::::: c56f5c0342dfee11a1a13d2f5bb7618de5b17590 Thermal: Make Thermal trip points writeable

:::::: TO: Durgadoss R <[email protected]>
:::::: CC: Len Brown <[email protected]>

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation


Attachments:
(No filename) (11.33 kB)
.config.gz (24.29 kB)
Download all attachments