Received: by 2002:a25:31c3:0:0:0:0:0 with SMTP id x186csp4483762ybx; Mon, 4 Nov 2019 14:11:13 -0800 (PST) X-Google-Smtp-Source: APXvYqybnoDaf1MKf+g7QsfzEs2eY5RUtrfJBl566HLJAtQVR74iCgxQ80cqknzFN5c+3MnE4Y8z X-Received: by 2002:a17:906:2552:: with SMTP id j18mr472839ejb.244.1572905473783; Mon, 04 Nov 2019 14:11:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1572905473; cv=none; d=google.com; s=arc-20160816; b=H44pqWrkFXhJ2Tf7O+zqlB47CS3QeyAce99BvIEgD++lXlfAhHIGArcpea/tdkU/n4 WUmFLHe3/2RZZd+J2jzkz5kfL9PLvjqnVRlNYByojQJ/v09Dpw+MUJJ92rxV+VzRZbvl b8N/sqlRCWGfvhTvf73DK42zpxXZQ5cqpkNwgIRsvy6Up5OlGeWMXSCAoF5W8RaYpOxu BRBddw1kX+1RljaTytrrAIYJflAVc8IuXIt2JC/dWO9l1UI8lfNLOcIXQb8PQSUoklvJ L1QRtDHezWMvEfn1KxE3+QH9BSt8tlnwg1z3n434ndQiXALrErE7jKwuOsVkzPPIWjaT dx2Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=jn1gdUsGz2ryB02rdLHg/0XM6tiGB3+W22OtRpWH+sU=; b=XZEOHKUFjHOlpf/BnynXuMttlJkbwuoVtJa8nUhCwQ2xDV8+REh1SfuMn+Na9YndeY 01c2CdvV0Sb7OKntisXcHa5Y31jjj7tw40WTPpgzqsEaG7ttkuHjJWZTfMWTd7Yfdhin dGSBe6US/zteFDkp3PsSTfSibO5kfrwqEyjVQwYAWvMCZX2riL/lfgKOX6CGMKC9LwRe pvDSRu9E5EB5oeM6xcfJNcW0B19dCBoa0m4z6XFOP4Z0YvmyxQ0GK/F8GfSemZY1Y0i6 3J/RQcQf+jaU0C5atsxKAKDjuR+NEKG78P+vZHEbE67LDQ84UteHE89b0QyfOr5rdJOn WAMw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=IN8Pq889; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d15si9014998edn.49.2019.11.04.14.10.50; Mon, 04 Nov 2019 14:11:13 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=IN8Pq889; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2390295AbfKDWIt (ORCPT + 99 others); Mon, 4 Nov 2019 17:08:49 -0500 Received: from mail.kernel.org ([198.145.29.99]:41718 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388158AbfKDWIr (ORCPT ); Mon, 4 Nov 2019 17:08:47 -0500 Received: from localhost (6.204-14-84.ripe.coltfrance.com [84.14.204.6]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 561ED214E0; Mon, 4 Nov 2019 22:08:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572905326; bh=RF2KtCpXRQbrdWVBcadjdD4hBHy/4SVnpEHOGBeKPEw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IN8Pq889BrSRKl+a6IhNf2QGZdRL/NmxpmAdpAnK2RfgSA336LUk65QBP7NO5c2XW tSFYT33m+9MBCB3QZvNAX3n3X27+CfW5rEyGntzZhQqQ0R44nBD6vND/mPpWbJJTQj eTPl79+TKIRYqUaC1LPelnBpweXPWYaKg0DiRcwk= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Samuel Holland , Mathias Nyman Subject: [PATCH 5.3 108/163] usb: xhci: fix Immediate Data Transfer endianness Date: Mon, 4 Nov 2019 22:44:58 +0100 Message-Id: <20191104212147.993138919@linuxfoundation.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191104212140.046021995@linuxfoundation.org> References: <20191104212140.046021995@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Samuel Holland commit bfa3dbb343f664573292afb9e44f9abeb81a19de upstream. The arguments to queue_trb are always byteswapped to LE for placement in the ring, but this should not happen in the case of immediate data; the bytes copied out of transfer_buffer are already in the correct order. Add a complementary byteswap so the bytes end up in the ring correctly. This was observed on BE ppc64 with a "Texas Instruments TUSB73x0 SuperSpeed USB 3.0 xHCI Host Controller [104c:8241]" as a ch341 usb-serial adapter ("1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter") always transmitting the same character (generally NUL) over the serial link regardless of the key pressed. Cc: # 5.2+ Fixes: 33e39350ebd2 ("usb: xhci: add Immediate Data Transfer support") Signed-off-by: Samuel Holland Signed-off-by: Mathias Nyman Link: https://lore.kernel.org/r/1572013829-14044-3-git-send-email-mathias.nyman@linux.intel.com Signed-off-by: Greg Kroah-Hartman --- drivers/usb/host/xhci-ring.c | 2 ++ 1 file changed, 2 insertions(+) --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c @@ -3330,6 +3330,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd * if (xhci_urb_suitable_for_idt(urb)) { memcpy(&send_addr, urb->transfer_buffer, trb_buff_len); + le64_to_cpus(&send_addr); field |= TRB_IDT; } } @@ -3475,6 +3476,7 @@ int xhci_queue_ctrl_tx(struct xhci_hcd * if (xhci_urb_suitable_for_idt(urb)) { memcpy(&addr, urb->transfer_buffer, urb->transfer_buffer_length); + le64_to_cpus(&addr); field |= TRB_IDT; } else { addr = (u64) urb->transfer_dma;