Patchwork [U-Boot,v2,4/7] usb: ehci: Fix aliasing issue in EHCI interrupt code

login
register
mail settings
Submitter Simon Glass
Date Dec. 14, 2012, 2:21 a.m.
Message ID <1355451692-28017-5-git-send-email-sjg@chromium.org>
Download mbox | patch
Permalink /patch/206279/
State Superseded, archived
Delegated to: Marek Vasut
Headers show

Comments

Simon Glass - Dec. 14, 2012, 2:21 a.m.
From: Vincent Palatin <vpalatin@chromium.org>

The interrupt endpoint handling code stores the buffer pointer in the QH
padding field. We need to make it the size of a pointer to avoid strict
aliasing issue with the compiler.

Signed-off-by: Vincent Palatin <vpalatin@chromium.org>

Signed-off-by: Simon Glass <sjg@chromium.org>
---
Changes in v2: None

 drivers/usb/host/ehci.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
Simon Glass - March 6, 2013, 9:34 p.m.
+Julius

Hi Marek,

On Thu, Dec 13, 2012 at 6:21 PM, Simon Glass <sjg@chromium.org> wrote:
> From: Vincent Palatin <vpalatin@chromium.org>
>
> The interrupt endpoint handling code stores the buffer pointer in the QH
> padding field. We need to make it the size of a pointer to avoid strict
> aliasing issue with the compiler.
>
> Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
>
> Signed-off-by: Simon Glass <sjg@chromium.org>

I think this patch and a few others are still in the queue. Does that
sound right to you?

9c9f379 x86: Enable USB features for coreboot
ecefc3fc usb: Add multiple controllers support for EHCI PCI
4950984 usb: usbeth: smsc95xx: remove EEPROM loaded check
606a9e0 usb: ehci: Fix aliasing issue in EHCI interrupt code
d2f9f89 usb: ehci: Support interrupt transfers via periodic list

We will be sending a v3 with a few fixes.

Regards,
Simon

> ---
> Changes in v2: None
>
>  drivers/usb/host/ehci.h |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h
> index 8bc2ba1..5370eb0 100644
> --- a/drivers/usb/host/ehci.h
> +++ b/drivers/usb/host/ehci.h
> @@ -247,7 +247,7 @@ struct QH {
>          * aligned to 32 bytes
>          */
>         union {
> -               uint8_t fill[16];
> +               uint32_t fill[4];
>                 void *buffer;
>         };
>  };
> --
> 1.7.7.3
>

Patch

diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h
index 8bc2ba1..5370eb0 100644
--- a/drivers/usb/host/ehci.h
+++ b/drivers/usb/host/ehci.h
@@ -247,7 +247,7 @@  struct QH {
 	 * aligned to 32 bytes
 	 */
 	union {
-		uint8_t fill[16];
+		uint32_t fill[4];
 		void *buffer;
 	};
 };