Received: by 10.192.165.156 with SMTP id m28csp1174632imm; Wed, 11 Apr 2018 13:55:27 -0700 (PDT) X-Google-Smtp-Source: AIpwx48a4OmXXYmFgHSDewyRpFeFJNig4Ru/xbvX66ePtTfE0TV/W9YhkvqbPFoiAkmvka1Sd5rR X-Received: by 10.99.175.6 with SMTP id w6mr4435438pge.186.1523480127173; Wed, 11 Apr 2018 13:55:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1523480127; cv=none; d=google.com; s=arc-20160816; b=Mac0pb4KSL2b3vKmnkkP8TdRt4Nt3xgKh9RAonoLFsIZuUcL7fcRG8K/aw2eDaqHLN 2WFifypmPrBR7sR03XMa14ZjA+L4857fgRCTneeIta0Ggk0cPZa4eGjjrZfXyCbPl7YF RutdS1pmlfYqAF9DFovz4TWrt88giDDMNsmOiaiaotYSIFsY82KqfK9u6BMJGi9+OU+Z EUfsZB7jBQmIQorfi5DAkaTkwmXIXheskxueJyl7iEl+Xe0bPwdPqC/8SOWlJUv7YWe8 9oP4ywMdkixoLqFLjL4x0k1Y5wiLhOZ8J2gNA5sOCWFP7XRg+JfsQBacQII8EZfhkh1x SlOw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=GYEJuDRc2R4uYT2FMHsVyBw6Ta6A0k+1GFcDzscm3cA=; b=zuJC598P/k5e6VH58Q9TrXQHKerUIDb1S95Ab/IGfZ3crVmxeK3K/T//uUV88ukPkd e7fZ3JJtl1sbcmK1LoiaCbgZAblIKJWEu3VoWBXEVjqKObX+EKvmeDv5oJZ55y0k5T6P fGoAxfddsovRFOLtApWEb6bh6uQPrY34XibKCcatmIBK+9nUoS17OgHvpiLeJjLnBYSt LPOl05/0htSZPs8Rs+apv84WAU0amAeIuJSbhHq6qnr/RCXKb+afCMw/cqPT7q9EurU2 W0C2mriRXJk/TwKK6B9gMR6+vdMKuQY2fBF6iHeRTlOM0Xd6M73LBHSa2Nls/AjQ3SUW +ALg== ARC-Authentication-Results: i=1; mx.google.com; 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 b10-v6si1723347plz.464.2018.04.11.13.54.50; Wed, 11 Apr 2018 13:55:27 -0700 (PDT) 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; 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 S1755856AbeDKUwJ (ORCPT + 99 others); Wed, 11 Apr 2018 16:52:09 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:58602 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755532AbeDKSp3 (ORCPT ); Wed, 11 Apr 2018 14:45:29 -0400 Received: from localhost (LFbn-1-12247-202.w90-92.abo.wanadoo.fr [90.92.61.202]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id 6406CC64; Wed, 11 Apr 2018 18:45:28 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Vignesh R , Sasha Levin Subject: [PATCH 4.4 047/190] serial: 8250: omap: Disable DMA for console UART Date: Wed, 11 Apr 2018 20:34:53 +0200 Message-Id: <20180411183552.940102947@linuxfoundation.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180411183550.114495991@linuxfoundation.org> References: <20180411183550.114495991@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.4-stable review patch. If anyone has any objections, please let me know. ------------------ From: Vignesh R [ Upstream commit 84b40e3b57eef1417479c00490dd4c9f6e5ffdbc ] Kernel always writes log messages to console via serial8250_console_write()->serial8250_console_putchar() which directly accesses UART_TX register _without_ using DMA. But, if other processes like systemd using same UART port, then these writes are handled by a different code flow using 8250_omap driver where there is provision to use DMA. It seems that it is possible that both DMA and CPU might simultaneously put data to UART FIFO and lead to potential loss of data due to FIFO overflow and weird data corruption. This happens when both kernel console and userspace tries to write simultaneously to the same UART port. Therefore, disable DMA on kernel console port to avoid potential race between CPU and DMA. Signed-off-by: Vignesh R Signed-off-by: Greg Kroah-Hartman Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- drivers/tty/serial/8250/8250_omap.c | 4 ++++ 1 file changed, 4 insertions(+) --- a/drivers/tty/serial/8250/8250_omap.c +++ b/drivers/tty/serial/8250/8250_omap.c @@ -608,6 +608,10 @@ static int omap_8250_startup(struct uart up->lsr_saved_flags = 0; up->msr_saved_flags = 0; + /* Disable DMA for console UART */ + if (uart_console(port)) + up->dma = NULL; + if (up->dma) { ret = serial8250_request_dma(up); if (ret) {