From patchwork Tue Jun 25 13:54:43 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Piotr Wilczek X-Patchwork-Id: 254157 X-Patchwork-Delegate: marek.vasut@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from theia.denx.de (theia.denx.de [85.214.87.163]) by ozlabs.org (Postfix) with ESMTP id B17732C0084 for ; Tue, 25 Jun 2013 23:55:53 +1000 (EST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 551354A02A; Tue, 25 Jun 2013 15:55:52 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at theia.denx.de Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id vpPZoVPb7mI8; Tue, 25 Jun 2013 15:55:52 +0200 (CEST) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id C144D4A021; Tue, 25 Jun 2013 15:55:46 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 770694A021 for ; Tue, 25 Jun 2013 15:55:39 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at theia.denx.de Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 9-owKdI1srYr for ; Tue, 25 Jun 2013 15:55:32 +0200 (CEST) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 BL_NJABL=ERR(-1.5) (only DNSBL check requested) Received: from mailout2.samsung.com (mailout2.samsung.com [203.254.224.25]) by theia.denx.de (Postfix) with ESMTP id 12CDA4A020 for ; Tue, 25 Jun 2013 15:55:24 +0200 (CEST) Received: from epcpsbgm2.samsung.com (epcpsbgm2 [203.254.230.27]) by mailout2.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0MOY00AN9BZYTE80@mailout2.samsung.com> for u-boot@lists.denx.de; Tue, 25 Jun 2013 22:55:22 +0900 (KST) X-AuditID: cbfee61b-b7f8e6d00000524c-c6-51c9a149433d Received: from epmmp1.local.host ( [203.254.227.16]) by epcpsbgm2.samsung.com (EPCPMTA) with SMTP id 0E.86.21068.941A9C15; Tue, 25 Jun 2013 22:55:22 +0900 (KST) Received: from mcdsrvbld02.digital.local ([106.116.37.23]) by mmp1.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0MOY00IVEBZEH320@mmp1.samsung.com>; Tue, 25 Jun 2013 22:55:21 +0900 (KST) From: Piotr Wilczek To: u-boot@lists.denx.de Date: Tue, 25 Jun 2013 15:54:43 +0200 Message-id: <1372168483-27588-1-git-send-email-p.wilczek@samsung.com> X-Mailer: git-send-email 1.7.10 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrBJMWRmVeSWpSXmKPExsVy+t9jAV2vhScDDWZ1MlqcbXrDbvHm4WZG izdtjYwW656sZbV4u7eT3YHVY96sEyweZ+/sYPTo27KKMYA5issmJTUnsyy1SN8ugStjfaNc wWveiuPXLzM1MB7h7mLk5JAQMJG4dGM/I4QtJnHh3nq2LkYuDiGBRYwSr9cvZwZJCAl0MUnc 3RcJYrMJaEssf/MGrEFEQELiV/9VRpAGZoH5jBLrDuxlA0kIC1hI/Lp0nxXEZhFQlVjbt5gd xOYVcJV4vP4LK8Q2eYmn9/vYJjByL2BkWMUomlqQXFCclJ5rpFecmFtcmpeul5yfu4kR7P9n 0jsYVzVYHGIU4GBU4uH9EHciUIg1say4MvcQowQHs5II76Gsk4FCvCmJlVWpRfnxRaU5qcWH GKU5WJTEeQ+2WgcKCaQnlqRmp6YWpBbBZJk4OKUaGDMWx83dwNRhZNP1hpvr2gkbFmbPCZc2 zGG6faWzZO8ZZY4Hyjms9oHMN2KKJMqiXZ1ud4sclGUK8pjQUVuvlmTKJ3gi8X7PYmc3tWqT 1NWt/JdKoz99+pEtpWfvFGp7Y9/dBda7dj7QKXh6TGdv6ZuSDYdCnssuLIx82Prq9g1nb7cb eU57lFiKMxINtZiLihMBFjZbm/sBAAA= Cc: Marek Vasut , Piotr Wilczek , Kyungmin Park Subject: [U-Boot] [PATCH] drivers:usb: use get|put_unaligned_le16 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: u-boot-bounces@lists.denx.de Errors-To: u-boot-bounces@lists.denx.de This patch use get|put_unaligned_le16 to access structure data to avoid data abort on some ARM platforms. Signed-off-by: Piotr Wilczek Signed-off-by: Kyungmin Park CC: Marek Vasut --- drivers/usb/gadget/f_mass_storage.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/usb/gadget/f_mass_storage.c b/drivers/usb/gadget/f_mass_storage.c index c28866f..b7e0df3 100644 --- a/drivers/usb/gadget/f_mass_storage.c +++ b/drivers/usb/gadget/f_mass_storage.c @@ -577,9 +577,9 @@ static int fsg_setup(struct usb_function *f, { struct fsg_dev *fsg = fsg_from_func(f); struct usb_request *req = fsg->common->ep0req; - u16 w_index = le16_to_cpu(ctrl->wIndex); - u16 w_value = le16_to_cpu(ctrl->wValue); - u16 w_length = le16_to_cpu(ctrl->wLength); + u16 w_index = get_unaligned_le16(&ctrl->wIndex); + u16 w_value = get_unaligned_le16(&ctrl->wValue); + u16 w_length = get_unaligned_le16(&ctrl->wLength); if (!fsg_is_set(fsg->common)) return -EOPNOTSUPP; @@ -617,7 +617,7 @@ static int fsg_setup(struct usb_function *f, "unknown class-specific control req " "%02x.%02x v%04x i%04x l%u\n", ctrl->bRequestType, ctrl->bRequest, - le16_to_cpu(ctrl->wValue), w_index, w_length); + get_unaligned_le16(&ctrl->wValue), w_index, w_length); return -EOPNOTSUPP; } @@ -2261,7 +2261,7 @@ reset: if (rc) goto reset; fsg->bulk_out_enabled = 1; - common->bulk_out_maxpacket = le16_to_cpu(d->wMaxPacketSize); + common->bulk_out_maxpacket = get_unaligned_le16(&d->wMaxPacketSize); clear_bit(IGNORE_BULK_OUT, &fsg->atomic_bitflags); /* Allocate the requests */