Applied to for-usb-next for 3.14.

Thanks,
Sarah Sharp

On Mon, Sep 09, 2013 at 09:03:11PM +0300, Xenia Ragiadakou wrote:
> This patch fixes the retrieval of the DMA address of the TRB that generated
> the event by converting the field[0] (low address bits) and field[1] (high
> address bits) to CPU byteorder and then typecasting field[1] to u64 so that
> the bitshift will not lead to overflow.
> In the original code, the typecasting of le32 to u64 was incorrect and the
> subsequent conversion to le64 reverts the low and high address parts.
> This bug was found using sparse.
> 
> Signed-off-by: Xenia Ragiadakou <burzalod...@gmail.com>
> ---
>  drivers/usb/host/xhci-trace.h | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/usb/host/xhci-trace.h b/drivers/usb/host/xhci-trace.h
> index c156685..59a0b03 100644
> --- a/drivers/usb/host/xhci-trace.h
> +++ b/drivers/usb/host/xhci-trace.h
> @@ -125,8 +125,8 @@ DECLARE_EVENT_CLASS(xhci_log_event,
>       ),
>       TP_fast_assign(
>               __entry->va = trb_va;
> -             __entry->dma = le64_to_cpu(((u64)ev->field[1]) << 32 |
> -                                             ev->field[0]);
> +             __entry->dma = ((u64)le32_to_cpu(ev->field[1])) << 32 |
> +                                     le32_to_cpu(ev->field[0]);
>               __entry->status = le32_to_cpu(ev->field[2]);
>               __entry->flags = le32_to_cpu(ev->field[3]);
>               memcpy(__get_dynamic_array(trb), trb_va,
> -- 
> 1.8.3.4
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to