Received: by 2002:a05:6a10:413:0:0:0:0 with SMTP id 19csp970601pxp; Wed, 16 Mar 2022 23:02:36 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzZ5+89q+lm2TG+gAvcaR9g9nEV5gFYbd5uoTHEuR3PubfhNGfQLFT1edJV9kEaoB8a0OPe X-Received: by 2002:a17:902:bf06:b0:14d:8c72:96c6 with SMTP id bi6-20020a170902bf0600b0014d8c7296c6mr3218714plb.156.1647496956434; Wed, 16 Mar 2022 23:02:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647496956; cv=none; d=google.com; s=arc-20160816; b=ZRPljewnKYLuDECSh4Q5Y+WQKP++xbo9tQ5PZcpW5VFSGIHnfqkEG/ax3U/vrvVu/2 ZGrTUpTyF2bnzt9NBDgenUx+bw5/mYQKYeK4PGQzIdk7okve1N8FHR3bHst3Km+GwbHm D1MEvIWGYTzbs1DbiutWOnxUsZph2V7nZNi7wi9QB7veW61aslWZa0sa1Gij51X2oYrL g3uR8WbM+Qsxb1NimIMo9lD4OvIIyXi8pm5uiWLFG0dtkj3g6gv6K/LGmTZqn2rTTop/ TFwg4YK1ect5YMIYV0VXXruL3xIOdQJ+kGM8KdIRUWGWWdvT0xAp+RAlUrgN4eBSPXHL TMGg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=FdaRFj6Txp5dVh+5ToS7luAujkKT+3c923Qns25TpZk=; b=d+ZxbLxuq0XYuOeT1bc17kQ1U/PpHg/2939P2m/EV2Fw1SiuSsBoCqQMCQBwGtTj56 BI98e/DKIfn81Nl17HazxRwrOOkQvu4E0u53wjHq5VaYTfY4+Obc3w0EIP6wIuk1k6Re 9185HqE5upUZpqyIVROqddw8/9GGuhJOYhib+gN4JfFyNg4Ju9sUOvhtKj0NyU4dSihS JbPIaqmI7wS1aX7/M9BG+FyPC55LoQpnHXs1EdOWFFpMwr8M/bzD23/3JY7QLFt7k3KL WkxwiMOKBFY717CuDpMJV5E5xgSM4ZW9boq2Pbl02fF7tNAH7W2XVryyP+SiAXTlyl2v ur0g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=GjWrayXv; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id x18-20020a17090a789200b001c650f7fa7esi4909872pjk.48.2022.03.16.23.02.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Mar 2022 23:02:36 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=GjWrayXv; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 2EAC51AA4B1; Wed, 16 Mar 2022 22:04:36 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1356629AbiCPOjS (ORCPT + 99 others); Wed, 16 Mar 2022 10:39:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37566 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1350119AbiCPOjK (ORCPT ); Wed, 16 Mar 2022 10:39:10 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 10A8D614F for ; Wed, 16 Mar 2022 07:37:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1647441473; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=FdaRFj6Txp5dVh+5ToS7luAujkKT+3c923Qns25TpZk=; b=GjWrayXvHTOPiXT5oLEmbk3pJ47Lk5ACFAY5ZhcYnQHoNt72J60Ehs8xpUSuZBk4MTjMuF cUtBagfNoREKE3GtvMz4j3xVAQZSGzUGdvD5CrwsrB8agOn4mScunSqKQ7jKeMnwdEMB3F EdAW8LYjO0/6v/6MAky5Qk4IIs3nAxA= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-520-PX3TcyXXMn21kXKpX9Klgg-1; Wed, 16 Mar 2022 10:37:52 -0400 X-MC-Unique: PX3TcyXXMn21kXKpX9Klgg-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 453D91801388; Wed, 16 Mar 2022 14:37:51 +0000 (UTC) Received: from fedora.redhat.com (unknown [10.22.19.38]) by smtp.corp.redhat.com (Postfix) with ESMTP id 132C1400F73E; Wed, 16 Mar 2022 14:37:47 +0000 (UTC) From: Wander Lairson Costa To: Greg Kroah-Hartman , Jiri Slaby , Johan Hovold , Wander Lairson Costa , "Maciej W. Rozycki" , Serge Semin , Lukas Wunner , =?UTF-8?q?Pali=20Roh=C3=A1r?= , linux-serial@vger.kernel.org (open list:SERIAL DRIVERS), linux-kernel@vger.kernel.org (open list) Cc: rostedt@goodmis.org, senozhatsky@chromium.org, andre.goddard@gmail.com, sudipm.mukherjee@gmail.com, andy.shevchenko@gmail.com, David.Laight@aculab.com, jonathanh@nvidia.com, phil@raspberrypi.com Subject: [PATCH v4 5/5] serial/8250: Only use fifo after the port is initialized in console_write Date: Wed, 16 Mar 2022 11:36:44 -0300 Message-Id: <20220316143646.13301-6-wander@redhat.com> In-Reply-To: <20220316143646.13301-1-wander@redhat.com> References: <20220316143646.13301-1-wander@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.84 on 10.11.54.1 X-Spam-Status: No, score=-3.5 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The serial driver set the value of uart_8250_port.fcr in the function serial8250_config_port, but only writes the value to the controller register later in the initalization code. That opens a small window in which is not safe to use the fifo for console write. Make sure the port is initialized correctly before reading the FCR cached value. Unfortunately, I lost track of who originally reported the issue. If s/he is reading this, please speak up so I can give you the due credit. Signed-off-by: Wander Lairson Costa --- drivers/tty/serial/8250/8250_port.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c index 4acf620be241..7e2227161555 100644 --- a/drivers/tty/serial/8250/8250_port.c +++ b/drivers/tty/serial/8250/8250_port.c @@ -3416,6 +3416,7 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s, !(up->capabilities & UART_CAP_MINI) && up->tx_loadsz > 1 && (up->fcr & UART_FCR_ENABLE_FIFO) && + test_bit(TTY_PORT_INITIALIZED, &port->state->port.iflags) && /* * After we put a data in the fifo, the controller will send * it regardless of the CTS state. Therefore, only use fifo -- 2.35.1