Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp4462819ybz; Tue, 28 Apr 2020 11:42:41 -0700 (PDT) X-Google-Smtp-Source: APiQypIzjMksfFRjXuzxSWq9yjjbyupU7pm6Eru8JkR8Zm9EZBjjnmRQRmHwFnCqVZK9Z4psgBvK X-Received: by 2002:a17:907:2170:: with SMTP id rl16mr26743356ejb.238.1588099361741; Tue, 28 Apr 2020 11:42:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588099361; cv=none; d=google.com; s=arc-20160816; b=OjuERtRCvgPO/CyvrAbMHvl/3eS2+Kq4o4FBmMq5h3rcGA68Cq+y1njEBZ+Z2pNGPm oNiQNTqWkiHUQe5l6FUJT/ysY7ZvnsqYNQmL9izFMPrOjpBiOVL12kEzm/S07DFufOgV fHGY21mv3d84MX5jyE2gltofjMRNXQjUHH7Nh5E5hotml33yHSlODqeIkSXYzGf1WyJG sFWrmxHq70QOjci16FiLP0biQjhXeCQ7uyle3b5xgxmDe3AddkhNFaRVtV3LKWXOavQt csNvCfUqlBZGBoMMFkI703JAQAj1hoQk5Dxm8NVyb09wtK8s2e8vmwQOq1sJr9AiZUO7 KjyA== 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=13+BpGJI49/KTY2ECkq7TpK8dKQdWth3jDNOlQI9aEI=; b=vN9PXfGlZXgpD1zmPEv+Nxqxhni6OLfiNIItJjb7BxaCw3gzLOZ2Ej9OT0ztF1W1JB GqezO+MXRrG8eCtrn4rd7MKbZyiNj3Kedtow11QbVmCC616kr29LgXkNNzwfXTZOEKQM Mxh1jolP6udOGJSbJEfMeO9cwjDwRfOIYkPceD1oGA91whO3QgobcJQWkNvKENEroeZ7 vF1Mc3zqVDxYwT2qyHPhQmBIgFVi9ov6ZZXUP4OAb6sTLNvK1d/3G88+Qy5YM+ITmkhR IjSPzzWZOrI+a9hq8RAO64i6mKdpJduX+o4L9spJQ0OVHyl0UbjJNs5ginyMkssTfHuT lCKA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=PRNNCXH4; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id v23si2288311ejo.321.2020.04.28.11.42.17; Tue, 28 Apr 2020 11:42:41 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=PRNNCXH4; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730647AbgD1Sig (ORCPT + 99 others); Tue, 28 Apr 2020 14:38:36 -0400 Received: from mail.kernel.org ([198.145.29.99]:56966 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730632AbgD1Sia (ORCPT ); Tue, 28 Apr 2020 14:38:30 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (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 027B72076A; Tue, 28 Apr 2020 18:38:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1588099109; bh=0lPXiegyr/iApzt/uCz1N5w1u3DCYeQHzxUA3HwEud8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PRNNCXH4sf8cap2bxy4EAeNG7R1HN7k54rsi41GLcUpj0FNFNtmMe5dFbzRdL5Uj9 GDaEr8yrBHr8ddY4nh8vNAjDiXYigyKIzTmPYIztjT1Qx/u5OuI7QwydHZLMhp7rjB jgGoptR+WuVRXXHjTwaLAuUCqNfkHs8BC2r2mJfo= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Kazuhiro Fujita , Hao Bui , KAZUMI HARADA , Lad Prabhakar , Geert Uytterhoeven Subject: [PATCH 5.6 156/167] serial: sh-sci: Make sure status register SCxSR is read in correct sequence Date: Tue, 28 Apr 2020 20:25:32 +0200 Message-Id: <20200428182245.315652758@linuxfoundation.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200428182225.451225420@linuxfoundation.org> References: <20200428182225.451225420@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: Kazuhiro Fujita commit 3dc4db3662366306e54ddcbda4804acb1258e4ba upstream. For SCIF and HSCIF interfaces the SCxSR register holds the status of data that is to be read next from SCxRDR register, But where as for SCIFA and SCIFB interfaces SCxSR register holds status of data that is previously read from SCxRDR register. This patch makes sure the status register is read depending on the port types so that errors are caught accordingly. Cc: Signed-off-by: Kazuhiro Fujita Signed-off-by: Hao Bui Signed-off-by: KAZUMI HARADA Signed-off-by: Lad Prabhakar Tested-by: Geert Uytterhoeven Link: https://lore.kernel.org/r/1585333048-31828-1-git-send-email-kazuhiro.fujita.jg@renesas.com Signed-off-by: Greg Kroah-Hartman --- drivers/tty/serial/sh-sci.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) --- a/drivers/tty/serial/sh-sci.c +++ b/drivers/tty/serial/sh-sci.c @@ -870,9 +870,16 @@ static void sci_receive_chars(struct uar tty_insert_flip_char(tport, c, TTY_NORMAL); } else { for (i = 0; i < count; i++) { - char c = serial_port_in(port, SCxRDR); + char c; - status = serial_port_in(port, SCxSR); + if (port->type == PORT_SCIF || + port->type == PORT_HSCIF) { + status = serial_port_in(port, SCxSR); + c = serial_port_in(port, SCxRDR); + } else { + c = serial_port_in(port, SCxRDR); + status = serial_port_in(port, SCxSR); + } if (uart_handle_sysrq_char(port, c)) { count--; i--; continue;