Applied to for-usb-linus to be queued for 3.13.  (I changed my mind
about some of the big endian sparse fixes, and marked them to be queued
for the stable tree, so some of your patches have migrated from
for-usb-next-queue to for-usb-linus-queue.)

Sarah Sharp

On Fri, Nov 15, 2013 at 03:18:07AM +0200, Xenia Ragiadakou wrote:
> The field 'dev_info' in struct xhci_slot_ctx has type __le32 and it needs
> to be converted to CPU byteorder for the correct retrieval of its subfield
> 'Context Entries'. This field is used by the trace event 'xhci_address_ctx'
> to trace only the contexts of valid endpoints.
> This bug was found using sparse.
> 
> Signed-off-by: Xenia Ragiadakou <burzalod...@gmail.com>
> ---
> 
> Changes from v1:
>   * fix patch to apply cleanly on for-usb-next-queue branch of xhci tree
> 
>  drivers/usb/host/xhci.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
> index 1d26b3f..900ba36 100644
> --- a/drivers/usb/host/xhci.c
> +++ b/drivers/usb/host/xhci.c
> @@ -3771,7 +3771,7 @@ int xhci_address_device(struct usb_hcd *hcd, struct 
> usb_device *udev)
>       xhci_dbg(xhci, "Slot ID %d Input Context:\n", udev->slot_id);
>       xhci_dbg_ctx(xhci, virt_dev->in_ctx, 2);
>       trace_xhci_address_ctx(xhci, virt_dev->in_ctx,
> -                             slot_ctx->dev_info >> 27);
> +                             le32_to_cpu(slot_ctx->dev_info) >> 27);
>  
>       spin_lock_irqsave(&xhci->lock, flags);
>       cmd_trb = xhci_find_next_enqueue(xhci->cmd_ring);
> @@ -3850,7 +3850,7 @@ int xhci_address_device(struct usb_hcd *hcd, struct 
> usb_device *udev)
>       xhci_dbg(xhci, "Slot ID %d Input Context:\n", udev->slot_id);
>       xhci_dbg_ctx(xhci, virt_dev->in_ctx, 2);
>       trace_xhci_address_ctx(xhci, virt_dev->in_ctx,
> -                             slot_ctx->dev_info >> 27);
> +                             le32_to_cpu(slot_ctx->dev_info) >> 27);
>       xhci_dbg(xhci, "Slot ID %d Output Context:\n", udev->slot_id);
>       xhci_dbg_ctx(xhci, virt_dev->out_ctx, 2);
>       /*
> @@ -3859,7 +3859,7 @@ int xhci_address_device(struct usb_hcd *hcd, struct 
> usb_device *udev)
>        */
>       slot_ctx = xhci_get_slot_ctx(xhci, virt_dev->out_ctx);
>       trace_xhci_address_ctx(xhci, virt_dev->out_ctx,
> -                             slot_ctx->dev_info >> 27);
> +                             le32_to_cpu(slot_ctx->dev_info) >> 27);
>       /* Zero the input context control for later use */
>       ctrl_ctx->add_flags = 0;
>       ctrl_ctx->drop_flags = 0;
> -- 
> 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