stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Dmytro Maluka <dmy@semihalf.com>, Mark Brown <broonie@kernel.org>,
	Sasha Levin <sashal@kernel.org>,
	support.opensource@diasemi.com, lgirdwood@gmail.com,
	perex@perex.cz, tiwai@suse.com, alsa-devel@alsa-project.org
Subject: [PATCH AUTOSEL 5.10 07/25] ASoC: da7219: Check for failure reading AAD IRQ events
Date: Sun, 13 Aug 2023 12:09:18 -0400	[thread overview]
Message-ID: <20230813160936.1082758-7-sashal@kernel.org> (raw)
In-Reply-To: <20230813160936.1082758-1-sashal@kernel.org>

From: Dmytro Maluka <dmy@semihalf.com>

[ Upstream commit f0691dc16206f21b13c464434366e2cd632b8ed7 ]

When handling an AAD interrupt, if IRQ events read failed (for example,
due to i2c "Transfer while suspended" failure, i.e. when attempting to
read it while DA7219 is suspended, which may happen due to a spurious
AAD interrupt), the events array contains garbage uninitialized values.
So instead of trying to interprete those values and doing any actions
based on them (potentially resulting in misbehavior, e.g. reporting
bogus events), refuse to handle the interrupt.

Signed-off-by: Dmytro Maluka <dmy@semihalf.com>
Link: https://lore.kernel.org/r/20230717193737.161784-3-dmy@semihalf.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 sound/soc/codecs/da7219-aad.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/sound/soc/codecs/da7219-aad.c b/sound/soc/codecs/da7219-aad.c
index 7fbda445be8e8..b316d613a7090 100644
--- a/sound/soc/codecs/da7219-aad.c
+++ b/sound/soc/codecs/da7219-aad.c
@@ -347,11 +347,15 @@ static irqreturn_t da7219_aad_irq_thread(int irq, void *data)
 	struct da7219_priv *da7219 = snd_soc_component_get_drvdata(component);
 	u8 events[DA7219_AAD_IRQ_REG_MAX];
 	u8 statusa;
-	int i, report = 0, mask = 0;
+	int i, ret, report = 0, mask = 0;
 
 	/* Read current IRQ events */
-	regmap_bulk_read(da7219->regmap, DA7219_ACCDET_IRQ_EVENT_A,
-			 events, DA7219_AAD_IRQ_REG_MAX);
+	ret = regmap_bulk_read(da7219->regmap, DA7219_ACCDET_IRQ_EVENT_A,
+			       events, DA7219_AAD_IRQ_REG_MAX);
+	if (ret) {
+		dev_warn_ratelimited(component->dev, "Failed to read IRQ events: %d\n", ret);
+		return IRQ_NONE;
+	}
 
 	if (!events[DA7219_AAD_IRQ_REG_A] && !events[DA7219_AAD_IRQ_REG_B])
 		return IRQ_NONE;
-- 
2.40.1


  parent reply	other threads:[~2023-08-13 16:11 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-13 16:09 [PATCH AUTOSEL 5.10 01/25] phy: qcom-snps-femto-v2: keep cfg_ahb_clk enabled during runtime suspend Sasha Levin
2023-08-13 16:09 ` [PATCH AUTOSEL 5.10 02/25] phy: qcom-snps-femto-v2: use qcom_snps_hsphy_suspend/resume error code Sasha Levin
2023-08-13 16:09 ` [PATCH AUTOSEL 5.10 03/25] media: pulse8-cec: handle possible ping error Sasha Levin
2023-08-13 16:09 ` [PATCH AUTOSEL 5.10 04/25] media: pci: cx23885: fix error handling for cx23885 ATSC boards Sasha Levin
2023-08-13 16:09 ` [PATCH AUTOSEL 5.10 05/25] 9p: virtio: make sure 'offs' is initialized in zc_request Sasha Levin
2023-08-13 16:09 ` [PATCH AUTOSEL 5.10 06/25] ASoC: da7219: Flush pending AAD IRQ when suspending Sasha Levin
2023-08-13 16:09 ` Sasha Levin [this message]
2023-08-13 16:09 ` [PATCH AUTOSEL 5.10 08/25] ethernet: atheros: fix return value check in atl1c_tso_csum() Sasha Levin
2023-08-13 16:09 ` [PATCH AUTOSEL 5.10 09/25] vxlan: generalize vxlan_parse_gpe_hdr and remove unused args Sasha Levin
2023-08-13 16:09 ` [PATCH AUTOSEL 5.10 10/25] m68k: Fix invalid .section syntax Sasha Levin
2023-08-13 16:09 ` [PATCH AUTOSEL 5.10 11/25] s390/dasd: use correct number of retries for ERP requests Sasha Levin
2023-08-13 16:09 ` [PATCH AUTOSEL 5.10 12/25] s390/dasd: fix hanging device after request requeue Sasha Levin
2023-08-13 16:09 ` [PATCH AUTOSEL 5.10 13/25] fs/nls: make load_nls() take a const parameter Sasha Levin
2023-08-13 16:09 ` [PATCH AUTOSEL 5.10 14/25] ASoc: codecs: ES8316: Fix DMIC config Sasha Levin
2023-08-13 16:09 ` [PATCH AUTOSEL 5.10 15/25] ASoC: atmel: Fix the 8K sample parameter in I2SC master Sasha Levin
2023-08-13 16:09 ` [PATCH AUTOSEL 5.10 16/25] platform/x86: intel: hid: Always call BTNL ACPI method Sasha Levin
2023-08-13 16:09 ` [PATCH AUTOSEL 5.10 17/25] platform/x86: huawei-wmi: Silence ambient light sensor Sasha Levin
2023-08-13 16:09 ` [PATCH AUTOSEL 5.10 18/25] spi: spi-qcom-qspi: Add DMA_CHAIN_DONE to ALL_IRQS Sasha Levin
2023-08-13 16:09 ` [PATCH AUTOSEL 5.10 19/25] drm/amd/display: Exit idle optimizations before attempt to access PHY Sasha Levin
2023-08-13 16:09 ` [PATCH AUTOSEL 5.10 20/25] ovl: Always reevaluate the file signature for IMA Sasha Levin
2023-08-13 16:09 ` [PATCH AUTOSEL 5.10 21/25] ata: pata_arasan_cf: Use dev_err_probe() instead dev_err() in data_xfer() Sasha Levin
2023-08-13 16:09 ` [PATCH AUTOSEL 5.10 22/25] rbd: make get_lock_owner_info() return a single locker or NULL Sasha Levin
2023-08-14 13:23   ` Ilya Dryomov
2023-08-13 16:09 ` [PATCH AUTOSEL 5.10 23/25] staging: fbtft: ili9341: use macro FBTFT_REGISTER_SPI_DRIVER Sasha Levin
2023-08-13 16:09 ` [PATCH AUTOSEL 5.10 24/25] security: keys: perform capable check only on privileged operations Sasha Levin
2023-08-13 16:09 ` [PATCH AUTOSEL 5.10 25/25] kprobes: Prohibit probing on CFI preamble symbol 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=20230813160936.1082758-7-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=dmy@semihalf.com \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=perex@perex.cz \
    --cc=stable@vger.kernel.org \
    --cc=support.opensource@diasemi.com \
    --cc=tiwai@suse.com \
    /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;
as well as URLs for NNTP newsgroup(s).