mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Adrian Hunter <adrian.hunter@intel.com>,
	Avri Altman <avri.altman@wdc.com>,
	"Martin K . Petersen" <martin.petersen@oracle.com>,
	Sasha Levin <sashal@kernel.org>,
	linux-scsi@vger.kernel.org
Subject: [PATCH AUTOSEL 5.7 35/54] scsi: ufs: Improve interrupt handling for shared interrupts
Date: Mon, 24 Aug 2020 12:36:14 -0400	[thread overview]
Message-ID: <20200824163634.606093-35-sashal@kernel.org> (raw)
In-Reply-To: <20200824163634.606093-1-sashal@kernel.org>

From: Adrian Hunter <adrian.hunter@intel.com>

[ Upstream commit 127d5f7c4b653b8be5eb3b2c7bbe13728f9003ff ]

For shared interrupts, the interrupt status might be zero, so check that
first.

Link: https://lore.kernel.org/r/20200811133936.19171-2-adrian.hunter@intel.com
Reviewed-by: Avri Altman <avri.altman@wdc.com>
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/scsi/ufs/ufshcd.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index a61f95ffd45fd..93c8d1caeba2b 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -5677,7 +5677,7 @@ static irqreturn_t ufshcd_sl_intr(struct ufs_hba *hba, u32 intr_status)
  */
 static irqreturn_t ufshcd_intr(int irq, void *__hba)
 {
-	u32 intr_status, enabled_intr_status;
+	u32 intr_status, enabled_intr_status = 0;
 	irqreturn_t retval = IRQ_NONE;
 	struct ufs_hba *hba = __hba;
 	int retries = hba->nutrs;
@@ -5691,7 +5691,7 @@ static irqreturn_t ufshcd_intr(int irq, void *__hba)
 	 * read, make sure we handle them by checking the interrupt status
 	 * again in a loop until we process all of the reqs before returning.
 	 */
-	do {
+	while (intr_status && retries--) {
 		enabled_intr_status =
 			intr_status & ufshcd_readl(hba, REG_INTERRUPT_ENABLE);
 		if (intr_status)
@@ -5700,7 +5700,7 @@ static irqreturn_t ufshcd_intr(int irq, void *__hba)
 			retval |= ufshcd_sl_intr(hba, enabled_intr_status);
 
 		intr_status = ufshcd_readl(hba, REG_INTERRUPT_STATUS);
-	} while (intr_status && --retries);
+	}
 
 	if (retval == IRQ_NONE) {
 		dev_err(hba->dev, "%s: Unhandled interrupt 0x%08x\n",
-- 
2.25.1


  parent reply	other threads:[~2020-08-24 17:10 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-24 16:35 [PATCH AUTOSEL 5.7 01/54] spi: stm32: clear only asserted irq flags on interrupt Sasha Levin
2020-08-24 16:35 ` [PATCH AUTOSEL 5.7 02/54] jbd2: make sure jh have b_transaction set in refile/unfile_buffer Sasha Levin
2020-08-24 16:35 ` [PATCH AUTOSEL 5.7 03/54] ext4: don't BUG on inconsistent journal feature Sasha Levin
2020-08-24 16:35 ` [PATCH AUTOSEL 5.7 04/54] ext4: handle read only external journal device Sasha Levin
2020-08-24 16:35 ` [PATCH AUTOSEL 5.7 05/54] drm/virtio: fix memory leak in virtio_gpu_cleanup_object() Sasha Levin
2020-08-24 16:35 ` [PATCH AUTOSEL 5.7 06/54] ext4: abort the filesystem if failed to async write metadata buffer Sasha Levin
2020-08-24 16:35 ` [PATCH AUTOSEL 5.7 07/54] jbd2: abort journal if free a async write error " Sasha Levin
2020-08-24 16:35 ` [PATCH AUTOSEL 5.7 08/54] ext4: handle option set by mount flags correctly Sasha Levin
2020-08-24 16:35 ` [PATCH AUTOSEL 5.7 09/54] ext4: handle error of ext4_setup_system_zone() on remount Sasha Levin
2020-08-24 16:35 ` [PATCH AUTOSEL 5.7 10/54] ext4: correctly restore system zone info when remount fails Sasha Levin
2020-08-24 16:35 ` [PATCH AUTOSEL 5.7 11/54] fs: prevent BUG_ON in submit_bh_wbc() Sasha Levin
2020-08-24 16:35 ` [PATCH AUTOSEL 5.7 12/54] spi: stm32h7: fix race condition at end of transfer Sasha Levin
2020-08-24 16:35 ` [PATCH AUTOSEL 5.7 13/54] spi: stm32: fix fifo threshold level in case of short transfer Sasha Levin
2020-08-24 16:35 ` [PATCH AUTOSEL 5.7 14/54] spi: stm32: fix stm32_spi_prepare_mbr in case of odd clk_rate Sasha Levin
2020-08-24 16:35 ` [PATCH AUTOSEL 5.7 15/54] spi: stm32: always perform registers configuration prior to transfer Sasha Levin
2020-08-24 16:35 ` [PATCH AUTOSEL 5.7 16/54] drm/amd/powerplay: correct Vega20 cached smu feature state Sasha Levin
2020-08-24 16:35 ` [PATCH AUTOSEL 5.7 17/54] drm/amd/powerplay: correct UVD/VCE PG state on custom pptable uploading Sasha Levin
2020-08-24 16:35 ` [PATCH AUTOSEL 5.7 18/54] drm/amd/display: Fix LFC multiplier changing erratically Sasha Levin
2020-08-24 16:35 ` [PATCH AUTOSEL 5.7 19/54] drm/amd/display: Switch to immediate mode for updating infopackets Sasha Levin
2020-08-24 16:35 ` [PATCH AUTOSEL 5.7 20/54] selftests/bpf: Fix segmentation fault in test_progs Sasha Levin
2020-08-24 16:36 ` [PATCH AUTOSEL 5.7 21/54] libbpf: Handle GCC built-in types for Arm NEON Sasha Levin
2020-08-24 16:36 ` [PATCH AUTOSEL 5.7 22/54] netfilter: avoid ipv6 -> nf_defrag_ipv6 module dependency Sasha Levin
2020-08-24 16:36 ` [PATCH AUTOSEL 5.7 23/54] libbpf: Prevent overriding errno when logging errors Sasha Levin
2020-08-24 16:36 ` [PATCH AUTOSEL 5.7 24/54] selftests/bpf: Fix btf_dump test cases on 32-bit arches Sasha Levin
2020-08-24 16:36 ` [PATCH AUTOSEL 5.7 25/54] selftests/bpf: Correct various core_reloc 64-bit assumptions Sasha Levin
2020-08-24 16:36 ` [PATCH AUTOSEL 5.7 26/54] can: j1939: transport: j1939_xtp_rx_dat_one(): compare own packets to detect corruptions Sasha Levin
2020-08-24 16:36 ` [PATCH AUTOSEL 5.7 27/54] drivers/net/wan/hdlc_x25: Added needed_headroom and a skb->len check Sasha Levin
2020-08-24 16:36 ` [PATCH AUTOSEL 5.7 28/54] ALSA: hda/realtek: Add model alc298-samsung-headphone Sasha Levin
2020-08-24 16:36 ` [PATCH AUTOSEL 5.7 29/54] s390/cio: add cond_resched() in the slow_eval_known_fn() loop Sasha Levin
2020-08-24 16:36 ` [PATCH AUTOSEL 5.7 30/54] ASoC: wm8994: Avoid attempts to read unreadable registers Sasha Levin
2020-08-24 16:36 ` [PATCH AUTOSEL 5.7 31/54] ALSA: usb-audio: ignore broken processing/extension unit Sasha Levin
2020-08-24 16:36 ` [PATCH AUTOSEL 5.7 32/54] selftests: disable rp_filter for icmp_redirect.sh Sasha Levin
2020-08-24 16:36 ` [PATCH AUTOSEL 5.7 33/54] scsi: fcoe: Fix I/O path allocation Sasha Levin
2020-08-24 16:36 ` [PATCH AUTOSEL 5.7 34/54] scsi: ufs: Fix possible infinite loop in ufshcd_hold Sasha Levin
2020-08-24 16:36 ` Sasha Levin [this message]
2020-08-24 16:36 ` [PATCH AUTOSEL 5.7 36/54] scsi: ufs: Clean up completed request without interrupt notification Sasha Levin
2020-08-24 16:36 ` [PATCH AUTOSEL 5.7 37/54] scsi: qla2xxx: Flush all sessions on zone disable Sasha Levin
2020-08-24 16:36 ` [PATCH AUTOSEL 5.7 38/54] scsi: qla2xxx: Flush I/O " Sasha Levin
2020-08-24 16:36 ` [PATCH AUTOSEL 5.7 39/54] scsi: qla2xxx: Indicate correct supported speeds for Mezz card Sasha Levin
2020-08-24 16:36 ` [PATCH AUTOSEL 5.7 40/54] scsi: qla2xxx: Fix login timeout Sasha Levin
2020-08-24 16:36 ` [PATCH AUTOSEL 5.7 41/54] scsi: qla2xxx: Check if FW supports MQ before enabling Sasha Levin
2020-08-24 16:36 ` [PATCH AUTOSEL 5.7 42/54] scsi: qla2xxx: Fix null pointer access during disconnect from subsystem Sasha Levin
2020-08-24 16:36 ` [PATCH AUTOSEL 5.7 43/54] Revert "scsi: qla2xxx: Fix crash on qla2x00_mailbox_command" Sasha Levin
2020-08-24 16:36 ` [PATCH AUTOSEL 5.7 44/54] macvlan: validate setting of multiple remote source MAC addresses Sasha Levin
2020-08-24 16:36 ` [PATCH AUTOSEL 5.7 45/54] net: gianfar: Add of_node_put() before goto statement Sasha Levin
2020-08-24 16:36 ` [PATCH AUTOSEL 5.7 46/54] drm/amdgpu: disable gfxoff for navy_flounder Sasha Levin
2020-08-24 18:24   ` Alex Deucher
2020-08-24 16:36 ` [PATCH AUTOSEL 5.7 47/54] drm/amdgpu: fix NULL pointer access issue when unloading driver Sasha Levin
2020-08-24 16:36 ` [PATCH AUTOSEL 5.7 48/54] drm/amdkfd: fix the wrong sdma instance query for renoir Sasha Levin
2020-08-24 16:36 ` [PATCH AUTOSEL 5.7 49/54] Revert "drm/amdgpu: disable gfxoff for navy_flounder" Sasha Levin
2020-08-24 18:24   ` Alex Deucher
2020-08-24 16:36 ` [PATCH AUTOSEL 5.7 50/54] powerpc/perf: Fix soft lockups due to missed interrupt accounting Sasha Levin
2020-08-24 16:36 ` [PATCH AUTOSEL 5.7 51/54] libbpf: Fix map index used in error message Sasha Levin
2020-08-24 16:36 ` [PATCH AUTOSEL 5.7 52/54] bpf: selftests: global_funcs: Check err_str before strstr Sasha Levin
2020-08-24 16:36 ` [PATCH AUTOSEL 5.7 53/54] arm64: Move handling of erratum 1418040 into C code Sasha Levin
2020-08-24 16:36 ` [PATCH AUTOSEL 5.7 54/54] arm64: Allow booting of late CPUs affected by erratum 1418040 Sasha Levin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200824163634.606093-35-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=adrian.hunter@intel.com \
    --cc=avri.altman@wdc.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome