|
|
|
@ -511,7 +511,6 @@ static const struct attribute_group *thermal_zone_attribute_groups[] = { |
|
|
|
|
*/ |
|
|
|
|
static int create_trip_attrs(struct thermal_zone_device *tz, int mask) |
|
|
|
|
{ |
|
|
|
|
int size = sizeof(struct thermal_attr) * tz->trips; |
|
|
|
|
struct attribute **attrs; |
|
|
|
|
int indx; |
|
|
|
|
|
|
|
|
@ -519,18 +518,22 @@ static int create_trip_attrs(struct thermal_zone_device *tz, int mask) |
|
|
|
|
if (tz->trips <= 0) |
|
|
|
|
return -EINVAL; |
|
|
|
|
|
|
|
|
|
tz->trip_type_attrs = kzalloc(size, GFP_KERNEL); |
|
|
|
|
tz->trip_type_attrs = kcalloc(tz->trips, sizeof(*tz->trip_type_attrs), |
|
|
|
|
GFP_KERNEL); |
|
|
|
|
if (!tz->trip_type_attrs) |
|
|
|
|
return -ENOMEM; |
|
|
|
|
|
|
|
|
|
tz->trip_temp_attrs = kzalloc(size, GFP_KERNEL); |
|
|
|
|
tz->trip_temp_attrs = kcalloc(tz->trips, sizeof(*tz->trip_temp_attrs), |
|
|
|
|
GFP_KERNEL); |
|
|
|
|
if (!tz->trip_temp_attrs) { |
|
|
|
|
kfree(tz->trip_type_attrs); |
|
|
|
|
return -ENOMEM; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (tz->ops->get_trip_hyst) { |
|
|
|
|
tz->trip_hyst_attrs = kzalloc(size, GFP_KERNEL); |
|
|
|
|
tz->trip_hyst_attrs = kcalloc(tz->trips, |
|
|
|
|
sizeof(*tz->trip_hyst_attrs), |
|
|
|
|
GFP_KERNEL); |
|
|
|
|
if (!tz->trip_hyst_attrs) { |
|
|
|
|
kfree(tz->trip_type_attrs); |
|
|
|
|
kfree(tz->trip_temp_attrs); |
|
|
|
@ -538,7 +541,7 @@ static int create_trip_attrs(struct thermal_zone_device *tz, int mask) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
attrs = kzalloc(sizeof(*attrs) * tz->trips * 3 + 1, GFP_KERNEL); |
|
|
|
|
attrs = kcalloc(tz->trips * 3 + 1, sizeof(*attrs), GFP_KERNEL); |
|
|
|
|
if (!attrs) { |
|
|
|
|
kfree(tz->trip_type_attrs); |
|
|
|
|
kfree(tz->trip_temp_attrs); |
|
|
|
|