[U-Boot] [BUG] usb: drivers/usb/gadget/composite.c fails to build

Heinrich Schuchardt xypron.glpk at gmx.de
Thu Nov 21 07:00:56 UTC 2019


Hello Marek,

I tried to reproduce the problem with tbs2910_defconfig but
unfortunately the USB sub-system does not build at all with GCC 9.2.1.

The comments in include/linux/usb/ch9.h say that the __packed attribute
is needed.

The problem could be solved by replacing cpu_to_le16() by a function
working on byte buffers. What are your thoughts?

In file included from drivers/usb/gadget/g_dnl.c:24:
drivers/usb/gadget/composite.c: In function ‘get_string’:
drivers/usb/gadget/composite.c:545:23: error: taking address of packed
member of ‘struct usb_string_descriptor’ may result in an unaligned
pointer value [-Werror=address-of-packed-member]
   545 |    collect_langs(sp, s->wData);
       |                      ~^~~~~~~
drivers/usb/gadget/composite.c:550:24: error: taking address of packed
member of ‘struct usb_string_descriptor’ may result in an unaligned
pointer value [-Werror=address-of-packed-member]
   550 |     collect_langs(sp, s->wData);
       |                       ~^~~~~~~
drivers/usb/gadget/composite.c:555:25: error: taking address of packed
member of ‘struct usb_string_descriptor’ may result in an unaligned
pointer value [-Werror=address-of-packed-member]
   555 |      collect_langs(sp, s->wData);
       |                        ~^~~~~~~
drivers/usb/gadget/composite.c: In function ‘bos_desc’:
drivers/usb/gadget/composite.c:708:15: error: taking address of packed
member of ‘struct usb_bos_descriptor’ may result in an unaligned pointer
value [-Werror=address-of-packed-member]
   708 |  le16_add_cpu(&bos->wTotalLength, USB_DT_USB_EXT_CAP_SIZE);
       |               ^~~~~~~~~~~~~~~~~~
drivers/usb/gadget/composite.c:724:16: error: taking address of packed
member of ‘struct usb_bos_descriptor’ may result in an unaligned pointer
value [-Werror=address-of-packed-member]
   724 |   le16_add_cpu(&bos->wTotalLength, USB_DT_USB_SS_CAP_SIZE);
       |

Best regards

Heinrich


More information about the U-Boot mailing list