From patchwork Fri Mar 13 20:46:51 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Doug Anderson X-Patchwork-Id: 11437825 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A0B5914B4 for ; Fri, 13 Mar 2020 20:47:22 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 7E5F12074E for ; Fri, 13 Mar 2020 20:47:22 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="OLfls09r" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727210AbgCMUrW (ORCPT ); Fri, 13 Mar 2020 16:47:22 -0400 Received: from mail-pj1-f66.google.com ([209.85.216.66]:54392 "EHLO mail-pj1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726926AbgCMUrV (ORCPT ); Fri, 13 Mar 2020 16:47:21 -0400 Received: by mail-pj1-f66.google.com with SMTP id np16so4739907pjb.4 for ; Fri, 13 Mar 2020 13:47:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=ZnKWe5Bitvm6HNCJn4nVCZ5y8dNJJUHTl0yto409qyY=; b=OLfls09rQF1wozKG2lePYqatpiYhqrd+Eq4NXV+WaxGp0AwpkZyKs5j5H9Czd89YJu Lnkds9VKW8VGN7M2OfoTvQEAy8tP8W+TAbAM3dxbO3XCD0fAg3d6VeyauoU1/ZIWL1pr K5CzAYa0jVWTBcascq4e5bUIUdJoyaCCDsJ9Y= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=ZnKWe5Bitvm6HNCJn4nVCZ5y8dNJJUHTl0yto409qyY=; b=UbC8QXTzTVMjmHQcPEjFNqq4ioQ0LVPrZH2xzHczXQeO/51GROorqVvKeum5ECr6FD DGboe+INxsc0oawyZyMvFZNeNBLEqiytCvavtjR74wp2GgzKOpS2+mKlEWXN8qjjjiOR UhCSfXn2Ky+uZoLotYk3bhSyReUh93wIqUs5/nRMpn2LHQ5tBzFrpxJDuZ9K3VOI7p7k Ne3pepzKi087mq+N7fHKZSuiVxW5v+joxWXoLMHkzELfPzchHXDwFt1SKMdqb/WD8xiY Bo3XBHzsZIfi/dIY4fxJC4AoJhOF2ZQVNzqfQ2iXAdlaxNWBTzF44xcabtbk99E1/LbY X4+g== X-Gm-Message-State: ANhLgQ3AMpiMKMccqkKSI3AiYhCLUdK0ijKeZJQIgwk+af4W7pIY+jNm AMeXOMZwIRpvAsqtQpIj3mlYKg== X-Google-Smtp-Source: ADFU+vsiBDRZxQvqlXgHWXpfQHmmGpQZZfBg2hu2n/nkhiFxNIU+yUk+rbuPivW6v98RkDC1VvQKZQ== X-Received: by 2002:a17:90b:3711:: with SMTP id mg17mr10382797pjb.73.1584132440939; Fri, 13 Mar 2020 13:47:20 -0700 (PDT) Received: from tictac2.mtv.corp.google.com ([2620:15c:202:1:24fa:e766:52c9:e3b2]) by smtp.gmail.com with ESMTPSA id a13sm26532278pfc.24.2020.03.13.13.47.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Mar 2020 13:47:20 -0700 (PDT) From: Douglas Anderson To: gregkh@linuxfoundation.org Cc: mka@chromium.org, swboyd@chromium.org, ryandcase@chromium.org, bjorn.andersson@linaro.org, akashast@codeaurora.org, skakit@codeaurora.org, rojay@codeaurora.org, mgautam@codeaurora.org, Douglas Anderson , Andy Gross , Doug Anderson , Girish Mahadevan , Jiri Slaby , Karthikeyan Ramasubramanian , Sagar Dharia , linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-serial@vger.kernel.org Subject: [PATCH 1/2] tty: serial: qcom_geni_serial: No need to stop tx/rx on UART shutdown Date: Fri, 13 Mar 2020 13:46:51 -0700 Message-Id: <20200313134635.1.Icf54c533065306b02b880c46dfd401d8db34e213@changeid> X-Mailer: git-send-email 2.25.1.481.gfbce0eb801-goog MIME-Version: 1.0 Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org On a board using qcom_geni_serial I found that I could no longer interact with kdb if I got a crash after the "agetty" running on the same serial port was killed. This meant that various classes of crashes that happened at reboot time were undebuggable. Reading through the code, I couldn't figure out why qcom_geni_serial felt the need to run so much code at port shutdown time. All we need to do is disable the interrupt. After I make this change then a hardcoded kgdb_breakpoint in some late shutdown code now allows me to interact with the debugger. I also could freely close / re-open the port without problems. Fixes: c4f528795d1a ("tty: serial: msm_geni_serial: Add serial driver support for GENI based QUP") Signed-off-by: Douglas Anderson Reviewed-by: Stephen Boyd Reviewed-by: Akash Asthana --- drivers/tty/serial/qcom_geni_serial.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/drivers/tty/serial/qcom_geni_serial.c b/drivers/tty/serial/qcom_geni_serial.c index 272bae0eebc7..09d8612517aa 100644 --- a/drivers/tty/serial/qcom_geni_serial.c +++ b/drivers/tty/serial/qcom_geni_serial.c @@ -827,17 +827,11 @@ static void get_tx_fifo_size(struct qcom_geni_serial_port *port) static void qcom_geni_serial_shutdown(struct uart_port *uport) { - unsigned long flags; - /* Stop the console before stopping the current tx */ if (uart_console(uport)) console_stop(uport->cons); disable_irq(uport->irq); - spin_lock_irqsave(&uport->lock, flags); - qcom_geni_serial_stop_tx(uport); - qcom_geni_serial_stop_rx(uport); - spin_unlock_irqrestore(&uport->lock, flags); } static int qcom_geni_serial_port_setup(struct uart_port *uport) From patchwork Fri Mar 13 20:46:52 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Doug Anderson X-Patchwork-Id: 11437827 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 01002913 for ; Fri, 13 Mar 2020 20:47:29 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id D537420767 for ; Fri, 13 Mar 2020 20:47:28 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="OsR77xO6" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726949AbgCMUr1 (ORCPT ); Fri, 13 Mar 2020 16:47:27 -0400 Received: from mail-pj1-f67.google.com ([209.85.216.67]:36420 "EHLO mail-pj1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727470AbgCMUrY (ORCPT ); Fri, 13 Mar 2020 16:47:24 -0400 Received: by mail-pj1-f67.google.com with SMTP id nu11so1712204pjb.1 for ; Fri, 13 Mar 2020 13:47:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=WmR0Zy/INv8T8Q5kpQokwP6/VvkYAWeVeStzwjBb3QQ=; b=OsR77xO6S3/Q0dciqM0G3rlzGynb1g8GBeeGYt0oyJ2X9+/Yt1IVFN2292US9JwJ3I m4gWfpLKPMMVfqbtGJzfzOdmZgnRQqxn05Eoc61EAhZQLc44M2ZHEjGuxdb7lXvQIfot YNSbpQjw4kgzI//8hMEzKSiXnvuIlCFUfSj5o= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=WmR0Zy/INv8T8Q5kpQokwP6/VvkYAWeVeStzwjBb3QQ=; b=YM43//op1QWgsyfW2AO22QnApCqB4OOXPoYqLCfGgo0BaAs2ATvCWblKkgwR7ufHwl r9kI2ox0bZsTxstLXK9A1wQAN+JDiRUle2/8BXQF93ASSAvEkgFvCvFRf5nnw6oe5NVd 5ewG7rJC0baKQHxvhFqyRqWpRypgY2+NWcbI2BFnwePPr0fPM9wevxhLiwwF6o8OYOD6 Vgmvf72sLbrvPbt9L5XrlU1JRp8ghA80z4ooAmKLJpRktgCGHzTiqhNKF8dqsE8Nr4XZ ZZgd92cg2xjCnrGf3EHuKXX/WFfcZpIi2vvtabucyQqAsR8aIrB9K1GNF+2lbcDM9UzG 4c+w== X-Gm-Message-State: ANhLgQ30nA1bffyC9p3RsqDtsnNBOGUIjoRR0iuy/+5hoflyvWEEG0V9 PLUKoKhwwtogFKcDFCyBfu/Sfw== X-Google-Smtp-Source: ADFU+vueocNRDiEDaoc5lL0rcsBqaOHG/wMpUZqEnr6mvREDuEKQvFR/4jeFV7cx64SuqEFaTFBMlA== X-Received: by 2002:a17:90a:da01:: with SMTP id e1mr12067723pjv.100.1584132442065; Fri, 13 Mar 2020 13:47:22 -0700 (PDT) Received: from tictac2.mtv.corp.google.com ([2620:15c:202:1:24fa:e766:52c9:e3b2]) by smtp.gmail.com with ESMTPSA id a13sm26532278pfc.24.2020.03.13.13.47.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Mar 2020 13:47:21 -0700 (PDT) From: Douglas Anderson To: gregkh@linuxfoundation.org Cc: mka@chromium.org, swboyd@chromium.org, ryandcase@chromium.org, bjorn.andersson@linaro.org, akashast@codeaurora.org, skakit@codeaurora.org, rojay@codeaurora.org, mgautam@codeaurora.org, Douglas Anderson , Andy Gross , Doug Anderson , Girish Mahadevan , Jiri Slaby , Karthikeyan Ramasubramanian , Sagar Dharia , linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-serial@vger.kernel.org Subject: [PATCH 2/2] tty: serial: qcom_geni_serial: Don't try to manually disable the console Date: Fri, 13 Mar 2020 13:46:52 -0700 Message-Id: <20200313134635.2.I3648fac6c98b887742934146ac2729ecb7232eb1@changeid> X-Mailer: git-send-email 2.25.1.481.gfbce0eb801-goog In-Reply-To: <20200313134635.1.Icf54c533065306b02b880c46dfd401d8db34e213@changeid> References: <20200313134635.1.Icf54c533065306b02b880c46dfd401d8db34e213@changeid> MIME-Version: 1.0 Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org The geni serial driver's shutdown code had a special case to call console_stop(). Grepping through the code, it was the only serial driver doing something like this (the only other caller of console_stop() was in serial_core.c). As far as I can tell there's no reason to call console_stop() in the geni code. ...and a good reason _not_ to call it. Specifically if you have an agetty running on the same serial port as the console then killing the agetty kills your console and if you start the agetty again the console doesn't come back. Fixes: c4f528795d1a ("tty: serial: msm_geni_serial: Add serial driver support for GENI based QUP") Signed-off-by: Douglas Anderson Reviewed-by: Stephen Boyd Reviewed-by: Akash Asthana --- drivers/tty/serial/qcom_geni_serial.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/drivers/tty/serial/qcom_geni_serial.c b/drivers/tty/serial/qcom_geni_serial.c index 09d8612517aa..69a0072e0c53 100644 --- a/drivers/tty/serial/qcom_geni_serial.c +++ b/drivers/tty/serial/qcom_geni_serial.c @@ -827,10 +827,6 @@ static void get_tx_fifo_size(struct qcom_geni_serial_port *port) static void qcom_geni_serial_shutdown(struct uart_port *uport) { - /* Stop the console before stopping the current tx */ - if (uart_console(uport)) - console_stop(uport->cons); - disable_irq(uport->irq); }