Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp3336932pxf; Mon, 22 Mar 2021 04:12:26 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwA3WyT3E3H3YZ/7miJaPB3PAFRjATKfXAuEg7yXTpGix0VWh6AtfNu2qDXLOllnfxxXRDl X-Received: by 2002:a17:906:2312:: with SMTP id l18mr19223822eja.468.1616411546687; Mon, 22 Mar 2021 04:12:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1616411546; cv=none; d=google.com; s=arc-20160816; b=pr4uxAUmKy0LSVQaKhjfKf8AHWuOUZCM+AYUwpbRtj5XopGga3e8L8BZr/kXkJbCDT pyEJbl4DcS5vYDCoI0ut1eknutVAFul1RT67+iOHjSTWaavGTwa7HMAItJNeO1zi9pgE oP7ahPbjCPJ1yZXsQjc4gEfT75ALtz3AbAFm1F5DH9nVfroKRqZ5g3vjlo50VCu+Kl7P sIYQqmG1PzTJVZhRUBufw4EGBp+kktL6zAnbvCBKaDXa46tSaLiXYvBDAaqNCxLJaipz CITUe2aAsNfuXd9w5lgZ0WSgx26jBhNYCkXiadeIocOe3AKiaQMhHtJJfkTjqPe/kANZ c9uw== 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 :message-id:date:subject:cc:to:from:dkim-signature; bh=QkwhNbXuK1JmvMFvosqSfoCG6f1buJeHHN8tmaJp7YI=; b=RiyK7OYoYh1jQc4iHbcsGTm4rGnu4USzc+VLNWFHB5xBaJeXg4izzsZxPXGff57/Tp KnVqeTCsGDn2pITnjOyMZIePFuikfn7pWS1DAi4PQHhIir+XclYhqqpM2Xu6aQLNr+KC +/EFukivCqHr6rXb4unCkH4G/IblOu2gEhXrjJgBNXrzdthauLCXa9OglILhDHwIyxpv fLajFK++LcYVcryMcH1pnbbIa5cggbdfBTL88nqlgsu9fEMv+96FAOoBhVFAh6lFoRaq oOdYikHvV1zbC81f8+hucQmyf0yzD9mTUjfvv7Woaf26D0vqQ625svrDipDfTkg48x33 V5yg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=NvRmCNKp; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id ji4si11466206ejc.235.2021.03.22.04.12.04; Mon, 22 Mar 2021 04:12:26 -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=k20201202 header.b=NvRmCNKp; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229547AbhCVLK5 (ORCPT + 99 others); Mon, 22 Mar 2021 07:10:57 -0400 Received: from mail.kernel.org ([198.145.29.99]:34560 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229941AbhCVLKk (ORCPT ); Mon, 22 Mar 2021 07:10:40 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id EC17261984; Mon, 22 Mar 2021 11:10:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1616411436; bh=NC+1ODaAxS8f4l6Eky4fpzsmBqnrxmry+8HRa0Mpy8o=; h=From:To:Cc:Subject:Date:From; b=NvRmCNKpAkCtzMTEP6Rzoy6JWrrZ12TJlT9QM+GnoV4xCS1FuCCvOguKOtUZ4WY7A Y73NqI7LaXWIrYydNoNrqYb1fOefqzrA1ibq1+QnamTKh4OswTK1T0LNS/BLTvWmdz JySHq+PdhTZvFWgwwNvYILdycaUuB36y5u8polW6CLm9dJ5BJaBqzpfhjXx7zWm4uc HO0DWxKsKorlS56AUE+VjidXEadxek7fJV6nvvaPLgl2bblaUZb4vQWlF38wX63jAQ nNE1qljzVM6JBFFeW2nPkilZ0P6ckt0qD9XzVfp7M0POTkhO036WTZ3ahGAN/IXIU8 LX8LSSek2gBqQ== Received: from johan by xi with local (Exim 4.93.0.4) (envelope-from ) id 1lOISS-0008KL-A9; Mon, 22 Mar 2021 12:10:53 +0100 From: Johan Hovold To: Greg Kroah-Hartman Cc: linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , Sam Nobs , =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= , Thomas Gleixner , Sebastian Andrzej Siewior , Peter Zijlstra Subject: [PATCH] serial: imx: drop workaround for forced irq threading Date: Mon, 22 Mar 2021 12:10:36 +0100 Message-Id: <20210322111036.31966-1-johan@kernel.org> X-Mailer: git-send-email 2.26.3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Force-threaded interrupt handlers used to run with interrupts enabled, something which could lead to deadlocks in case a threaded handler shared a lock with code running in hard interrupt context (e.g. timer callbacks) and did not explicitly disable interrupts. This was specifically the case for serial drivers that take the port lock in their console write path as printk can be called from hard interrupt context also with forced threading ("threadirqs"). Since commit 81e2073c175b ("genirq: Disable interrupts for force threaded handlers") interrupt handlers always run with interrupts disabled on non-RT so that drivers no longer need to do handle this. Drop the now obsolete workaround added by commit 33f16855dcb9 ("tty: serial: imx: fix potential deadlock"). Cc: Sam Nobs Cc: Uwe Kleine-König Cc: Thomas Gleixner Cc: Sebastian Andrzej Siewior Cc: Peter Zijlstra Signed-off-by: Johan Hovold --- drivers/tty/serial/imx.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c index 8257597d034d..cca730fc2b0b 100644 --- a/drivers/tty/serial/imx.c +++ b/drivers/tty/serial/imx.c @@ -922,14 +922,8 @@ static irqreturn_t imx_uart_int(int irq, void *dev_id) struct imx_port *sport = dev_id; unsigned int usr1, usr2, ucr1, ucr2, ucr3, ucr4; irqreturn_t ret = IRQ_NONE; - unsigned long flags = 0; - /* - * IRQs might not be disabled upon entering this interrupt handler, - * e.g. when interrupt handlers are forced to be threaded. To support - * this scenario as well, disable IRQs when acquiring the spinlock. - */ - spin_lock_irqsave(&sport->port.lock, flags); + spin_lock(&sport->port.lock); usr1 = imx_uart_readl(sport, USR1); usr2 = imx_uart_readl(sport, USR2); @@ -999,7 +993,7 @@ static irqreturn_t imx_uart_int(int irq, void *dev_id) ret = IRQ_HANDLED; } - spin_unlock_irqrestore(&sport->port.lock, flags); + spin_unlock(&sport->port.lock); return ret; } -- 2.26.3