From patchwork Tue Jan 7 05:22:02 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Seung-Woo Kim X-Patchwork-Id: 1218602 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=samsung.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=samsung.com header.i=@samsung.com header.b="X1y7irmS"; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 47sLHL3GqHz9sRG for ; Tue, 7 Jan 2020 16:17:46 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id B04648170A; Tue, 7 Jan 2020 06:17:38 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=samsung.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=samsung.com header.i=@samsung.com header.b="X1y7irmS"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 46B238170D; Tue, 7 Jan 2020 06:17:37 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.1 required=5.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mailout1.samsung.com (mailout1.samsung.com [203.254.224.24]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 6710E81708 for ; Tue, 7 Jan 2020 06:17:31 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=samsung.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sw0312.kim@samsung.com Received: from epcas1p1.samsung.com (unknown [182.195.41.45]) by mailout1.samsung.com (KnoxPortal) with ESMTP id 20200107051727epoutp01c4b21e60bca337fa91c19271009a2884~ngwQRtxvg2818128181epoutp01c for ; Tue, 7 Jan 2020 05:17:27 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.samsung.com 20200107051727epoutp01c4b21e60bca337fa91c19271009a2884~ngwQRtxvg2818128181epoutp01c DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1578374247; bh=QiBx5qMUJU/Ov8xxK2jzFI3LMQnfKmV2cX08B1M3QuU=; h=From:To:Cc:Subject:Date:References:From; b=X1y7irmSae2PSgxQv+/lfOvDheYNeMGy2OEyTvqPeGGGVSb0KWBaL/N7HqSE2sSpU +WfG3GwrlU5H8kzfSCoEn2S0MDfRLZF7q2vx9BGeyihjmW/l3ZJymhx7sgH6+fVaGb i7U++D0H7BduxEcPr6xAOUCiPw2JLs2xVOXbtAXI= Received: from epsnrtp1.localdomain (unknown [182.195.42.162]) by epcas1p3.samsung.com (KnoxPortal) with ESMTP id 20200107051727epcas1p3fafa35fc99f897ca4ffe1aea166aa091~ngwP_Gejh0517505175epcas1p3B; Tue, 7 Jan 2020 05:17:27 +0000 (GMT) Received: from epsmges1p1.samsung.com (unknown [182.195.40.157]) by epsnrtp1.localdomain (Postfix) with ESMTP id 47sLGs0NvBzMqYlp; Tue, 7 Jan 2020 05:17:25 +0000 (GMT) Received: from epcas1p4.samsung.com ( [182.195.41.48]) by epsmges1p1.samsung.com (Symantec Messaging Gateway) with SMTP id A8.42.57028.364141E5; Tue, 7 Jan 2020 14:17:23 +0900 (KST) Received: from epsmtrp2.samsung.com (unknown [182.195.40.14]) by epcas1p4.samsung.com (KnoxPortal) with ESMTPA id 20200107051722epcas1p4a605cd1e55a2ce8e97dc831bb86067b2~ngwLn7lfv0957009570epcas1p4-; Tue, 7 Jan 2020 05:17:22 +0000 (GMT) Received: from epsmgms1p2new.samsung.com (unknown [182.195.42.42]) by epsmtrp2.samsung.com (KnoxPortal) with ESMTP id 20200107051722epsmtrp21fbed82eb5a9873fd55a6f734df0d46c~ngwLnOKEw2438724387epsmtrp2f; Tue, 7 Jan 2020 05:17:22 +0000 (GMT) X-AuditID: b6c32a35-4f3ff7000001dec4-7c-5e1414636c81 Received: from epsmtip1.samsung.com ( [182.195.34.30]) by epsmgms1p2new.samsung.com (Symantec Messaging Gateway) with SMTP id 9B.EF.06569.264141E5; Tue, 7 Jan 2020 14:17:22 +0900 (KST) Received: from localhost.localdomain (unknown [10.113.221.223]) by epsmtip1.samsung.com (KnoxPortal) with ESMTPA id 20200107051722epsmtip1da69c913aa8ddb2dc61844e8a04221f7~ngwLdGgic1380813808epsmtip1K; Tue, 7 Jan 2020 05:17:22 +0000 (GMT) From: Seung-Woo Kim To: u-boot@lists.denx.de Subject: [PATCH] usbtty: fix possible alignment issues Date: Tue, 7 Jan 2020 14:22:02 +0900 Message-Id: <20200107052202.510-1-sw0312.kim@samsung.com> X-Mailer: git-send-email 2.19.2 MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupik+LIzCtJLcpLzFFi42LZdljTQDdZRCTO4O97eYv7z76xW9z41cZq 8WnnY1aLb1u2MVrMmPySzeLt3k52BzaP2Q0XWTx2zrrL7nH2zg5Gj+tntjN59G1ZxRjAGpVt k5GamJJapJCal5yfkpmXbqvkHRzvHG9qZmCoa2hpYa6kkJeYm2qr5OIToOuWmQN0gpJCWWJO KVAoILG4WEnfzqYov7QkVSEjv7jEVim1ICWnwLJArzgxt7g0L10vOT/XytDAwMgUqDAhO2P2 64dMBR8lK46teszewPhLuIuRk0NCwERi5dd/LF2MXBxCAjsYJa5eP8oO4XxilPh6ZgqU841R 4tGBpewwLR8/PoFK7GWU6PmzlxnC+cIocfnBLkaQKjYBHYn9S36zgtgiAhISv/qvMoIUMQs0 MEosfjYZbJSwgJnE674NYA0sAqoSL/6eZgaxeQUsJeadXMECsU5e4sKGW6wQcUGJkzOfgMWZ geLNW2eDbZYQWMImsXzZASaIBheJZw/fQtnCEq+Ob4G6W0ri87u9bBB2tcT2CT/ZIZo7gH5o b4TaZiyxf+lkoGYOoA2aEut36UOEFSV2/p7LCLGYT+Ld1x5WkBIJAV6JjjYhiBIViZ1HJ7FB hKUkZm0Ihgh7SOzb+wjsAiGBWInm2xtYJzDKz0LyzSwk38xC2LuAkXkVo1hqQXFuemqxYYEh crRuYgSnQy3THYxTzvkcYhTgYFTi4Z0gIxwnxJpYVlyZe4hRgoNZSYS30U0wTog3JbGyKrUo P76oNCe1+BCjKTCwJzJLiSbnA1N1Xkm8oamRsbGxhYmhmamhoZI4L8ePi7FCAumJJanZqakF qUUwfUwcnFINjKF7t2Y9Uym9F/7pZZl5FP/iJ7dvZWlUMhXv6njewGNiHjs15958j37htdVc Ww7Ff+CUsV2zRlbq7TGXU35L9s9zepMj2V5nrbgry3nWfc7bf86KLZJa++j4HaeD/W+WJp27 EebXXbNup4Feta/+rhNivs7Xld5OTlQyr5GUKz7jwnfJ8i1PmxJLcUaioRZzUXEiAEJTZlOd AwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrBLMWRmVeSWpSXmKPExsWy7bCSnG6SiEicwaoTxhb3n31jt7jxq43V 4tPOx6wW37ZsY7SYMfklm8XbvZ3sDmwesxsusnjsnHWX3ePsnR2MHtfPbGfy6NuyijGANYrL JiU1J7MstUjfLoErY/brh0wFHyUrjq16zN7A+Eu4i5GTQ0LAROLjxyfsXYxcHEICuxklOnc+ ZoRISEnM/bYdyOYAsoUlDh8uhqj5xCgx4fAFJpAaNgEdif1LfrOC2CICEhK/+q8yghQxC7Qw Suz7MIEZJCEsYCbxum8D2FAWAVWJF39Pg8V5BSwl5p1cwQKxTF7iwoZbrBBxQYmTM5+AxZmB 4s1bZzNPYOSbhSQ1C0lqASPTKkbJ1ILi3PTcYsMCo7zUcr3ixNzi0rx0veT83E2M4PDU0trB eOJE/CFGAQ5GJR5eCynhOCHWxLLiytxDjBIczEoivI1ugnFCvCmJlVWpRfnxRaU5qcWHGKU5 WJTEeeXzj0UKCaQnlqRmp6YWpBbBZJk4OKUaGKv2chwISdjzrifcuYHnWMuXPadXinU01kSV c/5bylHHtvdjdPOCE1U2E20XN/7oE7q1WOvxDOaOG0LnYkp913/Z8vjzcb8L/lk+nxkO7g7S 5As+Monl+Nbbf1VmzPqaN//MKssv/rfPzVE/qxcy7e/TXQL3f01bpZ1noL1n6f9tHo49cqyn k38rsRRnJBpqMRcVJwIAXgLsRUsCAAA= X-CMS-MailID: 20200107051722epcas1p4a605cd1e55a2ce8e97dc831bb86067b2 X-Msg-Generator: CA X-Sendblock-Type: SVC_REQ_APPROVE CMS-TYPE: 101P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20200107051722epcas1p4a605cd1e55a2ce8e97dc831bb86067b2 References: X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.26 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: joe.hershberger@ni.com, imon.k.r.goldschmidt@gmail.com Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.101.4 at phobos.denx.de X-Virus-Status: Clean With gcc9, below warnings are shown: drivers/serial/usbtty.c: In function 'usbtty_init_strings': drivers/serial/usbtty.c:590:44: warning: taking address of packed member of 'struct usb_string_descriptor' may result in an unaligned pointer value [-Waddress-of-packed-member] 590 | str2wide (CONFIG_USBD_MANUFACTURER, string->wData); | ~~~~~~^~~~~~~ drivers/serial/usbtty.c:596:44: warning: taking address of packed member of 'struct usb_string_descriptor' may result in an unaligned pointer value [-Waddress-of-packed-member] 597 | str2wide (CONFIG_USBD_PRODUCT_NAME, string->wData); | ~~~~~~^~~~~~~ drivers/serial/usbtty.c:603:33: warning: taking address of packed member of 'struct usb_string_descriptor' may result in an unaligned pointer value [-Waddress-of-packed-member] 604 | str2wide (serial_number, string->wData); | ~~~~~~^~~~~~~ drivers/serial/usbtty.c:610:49: warning: taking address of packed member of 'struct usb_string_descriptor' may result in an unaligned pointer value [-Waddress-of-packed-member] 611 | str2wide (CONFIG_USBD_CONFIGURATION_STR, string->wData); | ~~~~~~^~~~~~~ drivers/serial/usbtty.c:617:50: warning: taking address of packed member of 'struct usb_string_descriptor' may result in an unaligned pointer value [-Waddress-of-packed-member] 618 | str2wide (CONFIG_USBD_DATA_INTERFACE_STR, string->wData); | ~~~~~~^~~~~~~ drivers/serial/usbtty.c:623:50: warning: taking address of packed member of 'struct usb_string_descriptor' may result in an unaligned pointer value [-Waddress-of-packed-member] 624 | str2wide (CONFIG_USBD_CTRL_INTERFACE_STR, string->wData); | ~~~~~~^~~~~~~ Fix the issues by using packed structure. Ref: commit 616ebd8b9cb4 ("usb: composite: fix possible alignment issues") Signed-off-by: Seung-Woo Kim Reviewed-by: Simon Glass --- drivers/serial/usbtty.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/serial/usbtty.c b/drivers/serial/usbtty.c index f1c1a260da..54e67dd0d1 100644 --- a/drivers/serial/usbtty.c +++ b/drivers/serial/usbtty.c @@ -48,6 +48,8 @@ #define CONFIG_USBD_DATA_INTERFACE_STR "Bulk Data Interface" #define CONFIG_USBD_CTRL_INTERFACE_STR "Control Interface" +typedef struct { __le16 val; } __attribute__((aligned(16))) __le16_packed; + /* * Buffers to hold input and output data */ @@ -372,14 +374,15 @@ static int fill_buffer (circbuf_t * buf); void usbtty_poll (void); /* utility function for converting char* to wide string used by USB */ -static void str2wide (char *str, u16 * wide) +static void str2wide (char *str, void *wide) { int i; + __le16_packed *tmp = wide; for (i = 0; i < strlen (str) && str[i]; i++){ #if defined(__LITTLE_ENDIAN) - wide[i] = (u16) str[i]; + tmp[i].val = (u16) str[i]; #elif defined(__BIG_ENDIAN) - wide[i] = ((u16)(str[i])<<8); + tmp[i].val = ((u16)(str[i])<<8); #else #error "__LITTLE_ENDIAN or __BIG_ENDIAN undefined" #endif