Re: [PATCH 2/8] Thermal: Create zone level APIs

From: Joe Perches
Date: Tue Dec 18 2012 - 06:30:12 EST


On Tue, 2012-12-18 at 14:59 +0530, Durgadoss R wrote:
> This patch adds a new thermal_zone structure to
> thermal.h. Also, adds zone level APIs to the thermal
> framework.

[]

> diff --git a/drivers/thermal/thermal_sys.c b/drivers/thermal/thermal_sys.c

> +#define GET_INDEX(tz, ptr, indx, type) \
> + do { \
> + int i; \
> + indx = -EINVAL; \
> + if (!tz || !ptr) \
> + break; \
> + mutex_lock(&type##_list_lock); \
> + for (i = 0; i < tz->type##_indx; i++) { \
> + if (tz->type##s[i] == ptr) { \
> + indx = i; \
> + break; \
> + } \
> + } \
> + mutex_unlock(&type##_list_lock); \
> + } while (0)

A statement expression macro returning int would be
more kernel style like and better to use.

(sorry about the whitespace, evolution 3.6 is crappy)

#define GET_INDEX(tx, ptr, type) \
({ \
int rtn = -EINVAL; \
do { \
int i; \
if (!tz || !ptr) \
break; \
mutex_lock(&type##_list_lock); \
for (i = 0; i < tz->type##_indx; i++) { \
if (tz->type##s[i] == ptr) { \
rtn = i; \
break; \
} \
} \
mutex_unlock(&type##_list_lock); \
} while (0); \
rtn; \
})


> +static void remove_sensor_from_zone(struct thermal_zone *tz,
> + struct thermal_sensor *ts)
> +{
> + int j, indx;
> +
> + GET_INDEX(tz, ts, indx, sensor);

This becomes

indx = GET_INDEX(tx, ts, sensor);

> + if (indx < 0)
> + return;


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/