Loading drivers/thermal/power_allocator.c +16 −10 Original line number Diff line number Diff line Loading @@ -229,7 +229,8 @@ static int allocate_power(struct thermal_zone_device *tz, struct thermal_instance *instance; struct power_allocator_params *params = tz->governor_data; u32 *req_power, *max_power, *granted_power, *extra_actor_power; u32 total_req_power, max_allocatable_power; u32 *weighted_req_power; u32 total_req_power, max_allocatable_power, total_weighted_req_power; u32 total_granted_power, power_range; int i, num_actors, total_weight, ret = 0; int trip_max_desired_temperature = params->trip_max_desired_temperature; Loading @@ -247,16 +248,17 @@ static int allocate_power(struct thermal_zone_device *tz, } /* * We need to allocate three arrays of the same size: * req_power, max_power and granted_power. They are going to * be needed until this function returns. Allocate them all * in one go to simplify the allocation and deallocation * logic. * We need to allocate five arrays of the same size: * req_power, max_power, granted_power, extra_actor_power and * weighted_req_power. They are going to be needed until this * function returns. Allocate them all in one go to simplify * the allocation and deallocation logic. */ BUILD_BUG_ON(sizeof(*req_power) != sizeof(*max_power)); BUILD_BUG_ON(sizeof(*req_power) != sizeof(*granted_power)); BUILD_BUG_ON(sizeof(*req_power) != sizeof(*extra_actor_power)); req_power = devm_kcalloc(&tz->device, num_actors * 4, BUILD_BUG_ON(sizeof(*req_power) != sizeof(*weighted_req_power)); req_power = devm_kcalloc(&tz->device, num_actors * 5, sizeof(*req_power), GFP_KERNEL); if (!req_power) { ret = -ENOMEM; Loading @@ -266,8 +268,10 @@ static int allocate_power(struct thermal_zone_device *tz, max_power = &req_power[num_actors]; granted_power = &req_power[2 * num_actors]; extra_actor_power = &req_power[3 * num_actors]; weighted_req_power = &req_power[4 * num_actors]; i = 0; total_weighted_req_power = 0; total_req_power = 0; max_allocatable_power = 0; Loading @@ -289,13 +293,14 @@ static int allocate_power(struct thermal_zone_device *tz, else weight = instance->weight; req_power[i] = frac_to_int(weight * req_power[i]); weighted_req_power[i] = frac_to_int(weight * req_power[i]); if (power_actor_get_max_power(cdev, tz, &max_power[i])) continue; total_req_power += req_power[i]; max_allocatable_power += max_power[i]; total_weighted_req_power += weighted_req_power[i]; i++; } Loading @@ -303,8 +308,9 @@ static int allocate_power(struct thermal_zone_device *tz, power_range = pid_controller(tz, current_temp, control_temp, max_allocatable_power); divvy_up_power(req_power, max_power, num_actors, total_req_power, power_range, granted_power, extra_actor_power); divvy_up_power(weighted_req_power, max_power, num_actors, total_weighted_req_power, power_range, granted_power, extra_actor_power); total_granted_power = 0; i = 0; Loading Loading
drivers/thermal/power_allocator.c +16 −10 Original line number Diff line number Diff line Loading @@ -229,7 +229,8 @@ static int allocate_power(struct thermal_zone_device *tz, struct thermal_instance *instance; struct power_allocator_params *params = tz->governor_data; u32 *req_power, *max_power, *granted_power, *extra_actor_power; u32 total_req_power, max_allocatable_power; u32 *weighted_req_power; u32 total_req_power, max_allocatable_power, total_weighted_req_power; u32 total_granted_power, power_range; int i, num_actors, total_weight, ret = 0; int trip_max_desired_temperature = params->trip_max_desired_temperature; Loading @@ -247,16 +248,17 @@ static int allocate_power(struct thermal_zone_device *tz, } /* * We need to allocate three arrays of the same size: * req_power, max_power and granted_power. They are going to * be needed until this function returns. Allocate them all * in one go to simplify the allocation and deallocation * logic. * We need to allocate five arrays of the same size: * req_power, max_power, granted_power, extra_actor_power and * weighted_req_power. They are going to be needed until this * function returns. Allocate them all in one go to simplify * the allocation and deallocation logic. */ BUILD_BUG_ON(sizeof(*req_power) != sizeof(*max_power)); BUILD_BUG_ON(sizeof(*req_power) != sizeof(*granted_power)); BUILD_BUG_ON(sizeof(*req_power) != sizeof(*extra_actor_power)); req_power = devm_kcalloc(&tz->device, num_actors * 4, BUILD_BUG_ON(sizeof(*req_power) != sizeof(*weighted_req_power)); req_power = devm_kcalloc(&tz->device, num_actors * 5, sizeof(*req_power), GFP_KERNEL); if (!req_power) { ret = -ENOMEM; Loading @@ -266,8 +268,10 @@ static int allocate_power(struct thermal_zone_device *tz, max_power = &req_power[num_actors]; granted_power = &req_power[2 * num_actors]; extra_actor_power = &req_power[3 * num_actors]; weighted_req_power = &req_power[4 * num_actors]; i = 0; total_weighted_req_power = 0; total_req_power = 0; max_allocatable_power = 0; Loading @@ -289,13 +293,14 @@ static int allocate_power(struct thermal_zone_device *tz, else weight = instance->weight; req_power[i] = frac_to_int(weight * req_power[i]); weighted_req_power[i] = frac_to_int(weight * req_power[i]); if (power_actor_get_max_power(cdev, tz, &max_power[i])) continue; total_req_power += req_power[i]; max_allocatable_power += max_power[i]; total_weighted_req_power += weighted_req_power[i]; i++; } Loading @@ -303,8 +308,9 @@ static int allocate_power(struct thermal_zone_device *tz, power_range = pid_controller(tz, current_temp, control_temp, max_allocatable_power); divvy_up_power(req_power, max_power, num_actors, total_req_power, power_range, granted_power, extra_actor_power); divvy_up_power(weighted_req_power, max_power, num_actors, total_weighted_req_power, power_range, granted_power, extra_actor_power); total_granted_power = 0; i = 0; Loading