On 10/27/11 10:02, Lars-Peter Clausen wrote: > On 10/27/2011 10:44 AM, Lars-Peter Clausen wrote: >> Make sure we only use the allotted space for channel numbers in the event mask >> and do not let them override other fields. >> >> Since negative values are valid channel number, cast the channel number to >> signed when extracting it from an event mask. >> >> Signed-off-by: Lars-Peter Clausen <lars@xxxxxxxxxx> >> --- >> drivers/staging/iio/events.h | 5 +++-- >> 1 files changed, 3 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/staging/iio/events.h b/drivers/staging/iio/events.h >> index 7cf9306..fc2b7e5 100644 >> --- a/drivers/staging/iio/events.h >> +++ b/drivers/staging/iio/events.h >> @@ -56,7 +56,8 @@ enum iio_event_direction { >> type, chan, chan1, chan2) \ >> (((u64)type << 56) | ((u64)diff << 55) | \ >> ((u64)direction << 48) | ((u64)modifier << 40) | \ >> - ((u64)chan_type << 32) | (chan2 << 16) | chan1 | chan) >> + ((u64)chan_type << 32) | (((u16)chan2) << 16) | ((u16)chan1) | \ >> + ((u16)chan)) >> >> >> #define IIO_EV_DIR_MAX 4 >> @@ -95,7 +96,7 @@ enum iio_event_direction { >> >> /* Event code number extraction depends on which type of event we have. >> * Perhaps review this function in the future*/ >> -#define IIO_EVENT_CODE_EXTRACT_NUM(mask) (mask & 0xFFFF) >> +#define IIO_EVENT_CODE_EXTRACT_NUM(mask) ((s16)(mask & 0xFFFF)) >> > > Since we want to use it in userspace this should obviously be __s16, sorry. > Will fix this before sending the patch on. Acked-by: Jonathan Cameron <jic23@xxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html