Re: [Stable-review] [24/28] USB: xhci - fix unsafe macrodefinitions

From: Ben Hutchings
Date: Tue Apr 19 2011 - 22:02:16 EST


On Tue, 2011-04-19 at 13:31 -0700, Greg KH wrote:
> 2.6.32-longterm review patch. If anyone has any objections, please let us know.
>
> ------------------
>
> From: Dmitry Torokhov <dtor@xxxxxxxxxx>
>
> commit 5a6c2f3ff039154872ce597952f8b8900ea0d732 upstream.
>
> Macro arguments used in expressions need to be enclosed in parenthesis
> to avoid unpleasant surprises.

Do you know of any specific uses of these macros where the missing
parentheses caused 'unpleasant surprises'?

Ben.

> This should be queued for kernels back to 2.6.31
>
> Signed-off-by: Dmitry Torokhov <dtor@xxxxxxxxxx>
> Signed-off-by: Sarah Sharp <sarah.a.sharp@xxxxxxxxxxxxxxx>
> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxx>
>
> ---
> drivers/usb/host/xhci.h | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> --- a/drivers/usb/host/xhci.h
> +++ b/drivers/usb/host/xhci.h
> @@ -232,7 +232,7 @@ struct xhci_op_regs {
> * notification type that matches a bit set in this bit field.
> */
> #define DEV_NOTE_MASK (0xffff)
> -#define ENABLE_DEV_NOTE(x) (1 << x)
> +#define ENABLE_DEV_NOTE(x) (1 << (x))
> /* Most of the device notification types should only be used for debug.
> * SW does need to pay attention to function wake notifications.
> */
> @@ -579,11 +579,11 @@ struct xhci_ep_ctx {
> #define EP_STATE_STOPPED 3
> #define EP_STATE_ERROR 4
> /* Mult - Max number of burtst within an interval, in EP companion desc. */
> -#define EP_MULT(p) ((p & 0x3) << 8)
> +#define EP_MULT(p) (((p) & 0x3) << 8)
> /* bits 10:14 are Max Primary Streams */
> /* bit 15 is Linear Stream Array */
> /* Interval - period between requests to an endpoint - 125u increments. */
> -#define EP_INTERVAL(p) ((p & 0xff) << 16)
> +#define EP_INTERVAL(p) (((p) & 0xff) << 16)
> #define EP_INTERVAL_TO_UFRAMES(p) (1 << (((p) >> 16) & 0xff))
>
> /* ep_info2 bitmasks */
>
>
> _______________________________________________
> Stable-review mailing list
> Stable-review@xxxxxxxxxxxxxxxx
> http://linux.kernel.org/mailman/listinfo/stable-review
>

--
Ben Hutchings
Once a job is fouled up, anything done to improve it makes it worse.

Attachment: signature.asc
Description: This is a digitally signed message part