
We don't actually need to pack those structs, as they are not used to do actual hardware access.
This avoids some unaligned accesses and therefore makes the EHCI stack work on ARMv7 without compiler workarounds.
Signed-off-by: Lucas Stach dev@lynxeye.de --- drivers/usb/host/ehci-hcd.c | 2 +- include/usb.h | 2 +- 2 Dateien geändert, 2 Zeilen hinzugefügt(+), 2 Zeilen entfernt(-)
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c index 18b4bc6..2f4fa5e 100644 --- a/drivers/usb/host/ehci-hcd.c +++ b/drivers/usb/host/ehci-hcd.c @@ -45,7 +45,7 @@ static struct descriptor { struct usb_linux_config_descriptor config; struct usb_linux_interface_descriptor interface; struct usb_endpoint_descriptor endpoint; -} __attribute__ ((packed)) descriptor = { +} descriptor = { { 0x8, /* bDescLength */ 0x29, /* bDescriptorType: hub descriptor */ diff --git a/include/usb.h b/include/usb.h index ba3d169..63730ee 100644 --- a/include/usb.h +++ b/include/usb.h @@ -369,7 +369,7 @@ struct usb_hub_descriptor { unsigned char PortPowerCtrlMask[(USB_MAXCHILDREN+1+7)/8]; /* DeviceRemovable and PortPwrCtrlMask want to be variable-length bitmaps that hold max 255 entries. (bit0 is ignored) */ -} __attribute__ ((packed)); +};
struct usb_hub_device {