From patchwork Tue Nov 12 21:26:42 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Simon Goldschmidt X-Patchwork-Id: 1193868 X-Patchwork-Delegate: marek.vasut@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="knWz5hbw"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 47CLRW3cmkz9sNx for ; Wed, 13 Nov 2019 08:27:01 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 2588AC21E0F; Tue, 12 Nov 2019 21:26:53 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id A9BAAC21C51; Tue, 12 Nov 2019 21:26:51 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 57AB9C21C51; Tue, 12 Nov 2019 21:26:50 +0000 (UTC) Received: from mail-wm1-f68.google.com (mail-wm1-f68.google.com [209.85.128.68]) by lists.denx.de (Postfix) with ESMTPS id 04626C21C2F for ; Tue, 12 Nov 2019 21:26:50 +0000 (UTC) Received: by mail-wm1-f68.google.com with SMTP id u18so4836747wmc.3 for ; Tue, 12 Nov 2019 13:26:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=q0VZeSLYa+si7eOepLjy5S42ocpmB63cUH3eYapvDz0=; b=knWz5hbwHE4T05blhwfsbWp40EpRoOooJdolLUFuxLvC7Od/z+BAapLv0Nb0TVjhZr t+1PnjLd4K4QtMXTVrhdgsxmJoLsrlGR94G2mhyei1sICb2Nsthcsp5r1DXGe+9RUNwe Ar3ybgOBZxiLFvXZUoTaPRyMMSR9TRLCrriLjdVPUjksO0tsrt9IQOXvch1KgmnweIG8 fKXCy+JxFDhmnyIjhW8CYIKBo7q8+hRHWLR0bkR5UB7U3bviN2iul9nWsll8NFiJ+1o9 5qkf9+q5UlZc8A3UtqUANGorBoX97yJGeN2JSV0U2t5eqoBZYWYj3D7paq01D7cbcbbZ jvgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=q0VZeSLYa+si7eOepLjy5S42ocpmB63cUH3eYapvDz0=; b=fqGcfVj3/iJgCGj85yX0DkmYoeILvlZSyyn4bGH5kIdXKiaec3+Ys6lC8TnwitDM+6 JMLIamRG7UZU2njCe6rvht9CuPl8sh0Y6wjd9UTCbgffoFU25hrZZ8imBmAQ0Yj3gNMj ZxMTl1iUFmVcJxucMqkwWMARaL92Y/1Jpl+4OcO4UfjSPm4Aksa8TmOtCKUTNbk60lpP hI1iNKx/PunGOuGVwnUlo4BNFa3cDMUT+U1n1Ompemiv4UrMDsyZq4AybNLntT2WHK2m 227KIMLgJu7WK2ABdzt0A4DwJbSeJA0LfLu5cYQSlUDMQ02DrRs1YNaPWE0r53MeesQ5 J0hQ== X-Gm-Message-State: APjAAAV+mPGIkWvHFXnxboU8WNCa2imjK9E5INEPkXa9CBJ+VbOKY7Xw WanxnH2YKeP5SwNIrCEAwSs= X-Google-Smtp-Source: APXvYqzCZkyBYIINQCWo7oDgyOEu+sYc7J110WBcG4JmrtHIUWmk147E7MJEHn9favaIYcSPKLnWhw== X-Received: by 2002:a1c:16:: with SMTP id 22mr6360650wma.0.1573594009534; Tue, 12 Nov 2019 13:26:49 -0800 (PST) Received: from ubuntu.home ([2a02:8071:6a3:700:695e:d262:a293:b57]) by smtp.gmail.com with ESMTPSA id 205sm6588676wmb.3.2019.11.12.13.26.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Nov 2019 13:26:48 -0800 (PST) From: Simon Goldschmidt To: Marek Vasut Date: Tue, 12 Nov 2019 22:26:42 +0100 Message-Id: <20191112212643.915-1-simon.k.r.goldschmidt@gmail.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Cc: u-boot@lists.denx.de Subject: [U-Boot] [PATCH 1/2] usb: composite: fix possible alignment issues X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Since upgrading to gcc9, warnings are issued: "taking address of packed member of ‘...’ may result in an unaligned pointer value" Fix this by converting two functions to use unaligned access since packed structures may be on an unaligned address, depending on USB hardware. Signed-off-by: Simon Goldschmidt --- drivers/usb/gadget/composite.c | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c index 618a7d5016..cfc9512caa 100644 --- a/drivers/usb/gadget/composite.c +++ b/drivers/usb/gadget/composite.c @@ -12,8 +12,16 @@ #define USB_BUFSIZ 4096 +/* Helper type for accessing packed u16 pointers */ +typedef struct { __le16 val; } __packed __le16_packed; + static struct usb_composite_driver *composite; +static inline void le16_add_cpu_packed(__le16_packed *var, u16 val) +{ + var->val = cpu_to_le16(le16_to_cpu(var->val) + val); +} + /** * usb_add_function() - add a function to a configuration * @config: the configuration @@ -480,20 +488,20 @@ done: * the host side. */ -static void collect_langs(struct usb_gadget_strings **sp, __le16 *buf) +static void collect_langs(struct usb_gadget_strings **sp, void *buf) { const struct usb_gadget_strings *s; u16 language; - __le16 *tmp; + __le16_packed *tmp; while (*sp) { s = *sp; language = cpu_to_le16(s->language); - for (tmp = buf; *tmp && tmp < &buf[126]; tmp++) { - if (*tmp == language) + for (tmp = buf; tmp->val && tmp < &buf[126]; tmp++) { + if (tmp->val == language) goto repeat; } - *tmp++ = language; + tmp->val = language; repeat: sp++; } @@ -705,7 +713,8 @@ static int bos_desc(struct usb_composite_dev *cdev) */ usb_ext = cdev->req->buf + le16_to_cpu(bos->wTotalLength); bos->bNumDeviceCaps++; - le16_add_cpu(&bos->wTotalLength, USB_DT_USB_EXT_CAP_SIZE); + le16_add_cpu_packed((__le16_packed *)&bos->wTotalLength, + USB_DT_USB_EXT_CAP_SIZE); usb_ext->bLength = USB_DT_USB_EXT_CAP_SIZE; usb_ext->bDescriptorType = USB_DT_DEVICE_CAPABILITY; usb_ext->bDevCapabilityType = USB_CAP_TYPE_EXT; @@ -721,7 +730,8 @@ static int bos_desc(struct usb_composite_dev *cdev) ss_cap = cdev->req->buf + le16_to_cpu(bos->wTotalLength); bos->bNumDeviceCaps++; - le16_add_cpu(&bos->wTotalLength, USB_DT_USB_SS_CAP_SIZE); + le16_add_cpu_packed((__le16_packed *)&bos->wTotalLength, + USB_DT_USB_SS_CAP_SIZE); ss_cap->bLength = USB_DT_USB_SS_CAP_SIZE; ss_cap->bDescriptorType = USB_DT_DEVICE_CAPABILITY; ss_cap->bDevCapabilityType = USB_SS_CAP_TYPE; From patchwork Tue Nov 12 21:26:43 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Simon Goldschmidt X-Patchwork-Id: 1193869 X-Patchwork-Delegate: marek.vasut@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="VK/JBk1X"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 47CLS12td8z9s7T for ; Wed, 13 Nov 2019 08:27:29 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 14ECFC21F1A; Tue, 12 Nov 2019 21:27:07 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 145A1C21F2A; Tue, 12 Nov 2019 21:27:06 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 924BDC21EE4; Tue, 12 Nov 2019 21:26:59 +0000 (UTC) Received: from mail-wr1-f67.google.com (mail-wr1-f67.google.com [209.85.221.67]) by lists.denx.de (Postfix) with ESMTPS id 3860AC21ECF for ; Tue, 12 Nov 2019 21:26:57 +0000 (UTC) Received: by mail-wr1-f67.google.com with SMTP id p4so20157664wrm.8 for ; Tue, 12 Nov 2019 13:26:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=IBM8z/Mz7ax4HnsRUrSvd1LWw283HuOLFD1WruVWokQ=; b=VK/JBk1XrBql/LBl9XytqzxjgeoaulRYnvKLfmW/Pdc15FlmyxFFtqxSk31SYltUzN Hq1ezgGUIWocqr2HMc7Y8a98wZkR7HTTskMGHKf1nmnqCJD84nuYY++NQmYsKTajFWWx WH95Yzve2Ym1QNOK9zdWf0cS+5LgXxkCVbqEvXrjmN8vw8R/8vFiyMwiAcktCguqKgSV WS87dXmDrW39tbjnH/YGb9A1xXhortjpWGX/GjuRpV83ltblnULsKlTBlIUZ3MwYR+69 lPb6SCkA9O4z3JRXaLun7RJGjwZRNHUJ8ceFBTCix0cEJospIjhmzfq7SJEtDC/wnnd5 +woA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=IBM8z/Mz7ax4HnsRUrSvd1LWw283HuOLFD1WruVWokQ=; b=R7JIOyop/enOaQnuZ5rogfe78KJkcNn3wiYdHaYTXJ0IgWvuEmn1Txx13MoIE+Zx0N HAfeyd6lV38dqPoud1yJhw6HVr4EJDmE/pP5uB9gwNjrozgAf5R4LLI43IPtcOX5+kjo OZ3CZp61kh3ifjQBAimtZZ/X1b8VjIESHFYMTgu1TcDG4ZmcN+vTlaBPGmcGKzNK3BPK gKGEBiyOggnFyEbIKhCcIUQYQP2QEkDGkOuWfowL0f+eQNlPYZgjoKa5O85wkpX3Rw5y 9cGFEoayy3x7yupopRjOq5oFA6zQRZyQR+q5rgnDOXtUb/BPfhj0JXXzDA0WSnGhIz9w zzYw== X-Gm-Message-State: APjAAAXlkYByiNw03FvASUJCh1zXYkyd9OYWv3ETx87xObTG8U33KJ0Q esA09ldWTISvL3nJpQBOsFc= X-Google-Smtp-Source: APXvYqyEsfrI1caq2vHnjl8b6Dru9h2Oe/LzFylA3Y/hxscY1ne+ZvNjq0H8B16JiGBtHhQXQa871g== X-Received: by 2002:a05:6000:10c5:: with SMTP id b5mr11164543wrx.121.1573594016831; Tue, 12 Nov 2019 13:26:56 -0800 (PST) Received: from ubuntu.home ([2a02:8071:6a3:700:695e:d262:a293:b57]) by smtp.gmail.com with ESMTPSA id 205sm6588676wmb.3.2019.11.12.13.26.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Nov 2019 13:26:56 -0800 (PST) From: Simon Goldschmidt To: Marek Vasut Date: Tue, 12 Nov 2019 22:26:43 +0100 Message-Id: <20191112212643.915-2-simon.k.r.goldschmidt@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20191112212643.915-1-simon.k.r.goldschmidt@gmail.com> References: <20191112212643.915-1-simon.k.r.goldschmidt@gmail.com> MIME-Version: 1.0 Cc: u-boot@lists.denx.de Subject: [U-Boot] [PATCH 2/2] usb: dwc2: fix possible alignment issues X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Since upgrading to gcc9, warnings are issued: "taking address of packed member of ‘...’ may result in an unaligned pointer value" Fix this by converting dwc2_fifo_read to use unaligned access since packed structures may be on an unaligned address, depending on USB hardware. Signed-off-by: Simon Goldschmidt --- drivers/usb/gadget/dwc2_udc_otg_xfer_dma.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/usb/gadget/dwc2_udc_otg_xfer_dma.c b/drivers/usb/gadget/dwc2_udc_otg_xfer_dma.c index 7eb632d3b1..dba221dad0 100644 --- a/drivers/usb/gadget/dwc2_udc_otg_xfer_dma.c +++ b/drivers/usb/gadget/dwc2_udc_otg_xfer_dma.c @@ -731,7 +731,7 @@ static int write_fifo_ep0(struct dwc2_ep *ep, struct dwc2_request *req) return 0; } -static int dwc2_fifo_read(struct dwc2_ep *ep, u32 *cp, int max) +static int dwc2_fifo_read(struct dwc2_ep *ep, void *cp, int max) { invalidate_dcache_range((unsigned long)cp, (unsigned long)cp + ROUND(max, CONFIG_SYS_CACHELINE_SIZE)); @@ -1285,7 +1285,7 @@ static void dwc2_ep0_setup(struct dwc2_udc *dev) nuke(ep, -EPROTO); /* read control req from fifo (8 bytes) */ - dwc2_fifo_read(ep, (u32 *)usb_ctrl, 8); + dwc2_fifo_read(ep, usb_ctrl, 8); debug_cond(DEBUG_SETUP != 0, "%s: bRequestType = 0x%x(%s), bRequest = 0x%x"