From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qk1-f179.google.com (mail-qk1-f179.google.com [209.85.222.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 39B9E36BCCC for ; Thu, 6 Aug 2026 23:32:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.179 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786059158; cv=none; b=j5oQnsVWwwVOabJqwHpoP/l2u/LYBKUd9GF7y/s4h/Y1RiMe6lcNMt5WFi6H6RVhMovmxAqSgLEIBBiw4731YI2p/NLvjpsNFn2fupWbH5FH1gJCrsvnpkMo74FdgBeaGDF87YCuNAG4xgCOWpsnI2t0aPm/fufnUi8y6HkwacU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786059158; c=relaxed/simple; bh=gVAQZ+amyRHuws5F3tdAPZhZOfmuI+TufQC/ISSMwvM=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=DYfIbM44zYFTxrMKCw94a1iKKh/ltfvHQdCDYgoFG0j8Dsip53TCNxY4apQpbH652BBmewfmkhbGi1f1A7Fmg+kaosunEsN6XsV/9cPrPGbckhmhd+0A+Yz8wNIMsECv9WA0dVHT+65/rAxQp+QTo/bzoF0dT8fa+a7QefldQJ8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=MtAm+3v+; arc=none smtp.client-ip=209.85.222.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="MtAm+3v+" Received: by mail-qk1-f179.google.com with SMTP id af79cd13be357-92e54f8c051so151706385a.3 for ; Thu, 06 Aug 2026 16:32:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786059155; x=1786663955; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=bByA5tzpJTMFYPvaOtMt5JHJJTkEHrdfwgPmDZ1jMOs=; b=MtAm+3v+xyeEAs53KqmbmOvY98phSKJAHiihy1EmT2VHQ0J2dxdbUmG5er+zokcMCP HDqeehVOJVsAx53Jdl0NcTYgXdMxHG4Z2D6EC0ccweFD7gtRA3lz7/rsJXEHc2LFaEuz QEOXqTrCFzHUTi/v+X4R0zifm5drTG6WKFFSOXcws+OjcFcdXwhhZ2SukZqurouTKO5K IphLZLmCxFGZwbbGQrS2pHpNN7u5xkNsDcKT9KrT2b/iZtzgnepFPJRLsbfS/EllY8+d Sh87F12D+S/r4ls3uipiR4QDRZ8vggiKiSVYApxGEmsLyJeBM8RbbwwpiMJEccI97N7Q yvgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786059155; x=1786663955; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=bByA5tzpJTMFYPvaOtMt5JHJJTkEHrdfwgPmDZ1jMOs=; b=c4tngBEEBmjj7iV+jjIZ21uhaLcu4hmxTVhcGiiWhGwhwKChvn9A724y+4Px104+H+ cWusSD1uBzgU6hAUQPgKPBBh7vDOYiAhbLVXNGSVMLQHuMl0sMsLzuT8k5tUdPuaVwOW utFVDXnl77/hORrmhqzu9MBg7fUxLINWQxCeflQ/mKKQ78wiJFY+9NNPbpNf6g/dU6Bs KRbY0QeA6/Fh7gIUeyqQSaSN3LtKQcd5Ivvy9RZ0ic1EcxI5edq/shwXbMlLNnDTu0Bd la1PnXTxsZhHfZLNt75s+Xb5eE7zA63+agtxGVohg5lI3tNTvf5P6nIoEoGbNAZp2cvR 0ALQ== X-Forwarded-Encrypted: i=1; AHgh+RoW88NJBuOkviz1BQX5GoAi8T4kLBbjenmr29RqtVjSx5ip4NYL6APaQzOzZhJx+2dGwwD80sdHDLdJe40=@vger.kernel.org X-Gm-Message-State: AOJu0YzuFVAIBA4iu5Tg49zIWoDNwm8bh9nL9OVyBrw77YsU2QVIflok aPsHRzMac8ifGTiBPjY5nHi+NvmV51JGOstjAHNl5/9ksfPr/GtJFrmNtbqdlg== X-Gm-Gg: AR+sD117EGzz8LDFiY5BVUyUAASKy3FHvCV3TFit4/o/OFcRRtvYWAvT7vGzAKDK31K wj6MF4sN7f7YyFryRsxi0m2TvhyMGTciJ5zBYrvFnNLHDap61w3q3w/A0s6659aWDT3Rn7pCiEH mBRMgRmBxzROKi9O47Dtc43pgV4Xu3Z7SpjBZjTQY8nr6PdizXRFbyCNYmtzvKfJzUkBheM+87f A6/Vj38HhKw3eX+i2vt8HWoC3QGu/p25L8dGJDnL0F10d06R/nfNHjZPYRY4CqZeZAdvdiRsk8q eEpEp9U4Il1LWDrKFveFKF6bFn1km04Xhm06wB69qZoXfzOF144DVTlWPYwq8pA3Zzp7065g3E7 LTkDlWYjQIYKww6JXX25520G9tackprBV93wTNAifqyC8YcmvHvxFSxN6TblZG2WWrZ3mTsbfSt v6eb4gjhhFgxLkj3GQU7tRP/4xljFYxm58QFLWvGj2WYQDQkAUHUKZey0uvWzZZ7fIAnMCMuiP2 n56fNHQXi+qMIbJMzaMWbk6gQLYr0VtkRieI2i5BFN+35iLSdkdFxWhlJl1W3jUY+opJuxj1nDU YlWSxBcI6nLkopu70kOGvQzrpK6QeUqpGE6M4alPuK+H5ykt X-Received: by 2002:a05:620a:628b:b0:92e:f0a5:ac3e with SMTP id af79cd13be357-936490ebca7mr2066666285a.28.1786059155042; Thu, 06 Aug 2026 16:32:35 -0700 (PDT) Received: from ryzen.lan ([2601:644:8000:7a86::e35]) by smtp.gmail.com with ESMTPSA id af79cd13be357-9366e09dc07sm24753185a.15.2026.08.06.16.32.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Aug 2026 16:32:34 -0700 (PDT) From: Rosen Penev To: linux-sound@vger.kernel.org Cc: Vincenzo Frascino , Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , Michal Simek , Maruthi Srinivas Bayyavarapu , linux-arm-kernel@lists.infradead.org (moderated list:ARM/ZYNQ ARCHITECTURE), linux-kernel@vger.kernel.org (open list) Subject: [PATCH] ASoC: xilinx: formatter_pcm: pass aud_drv_data to irq handlers Date: Thu, 6 Aug 2026 16:32:31 -0700 Message-ID: <20260806233231.30631-1-rosenp@gmail.com> X-Mailer: git-send-email 2.55.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit The irq handlers take a struct device pointer and call dev_get_drvdata() to obtain the driver data. However, the driver data is only set at the end of probe, after devm_request_irq(), so an interrupt taken in between causes the handlers to pass a NULL pointer to readl() and crash. Pass the private data directly as the devm_request_irq() argument instead of the device pointer, matching what the handlers expect. Fixes: 6f6c3c36f091 ("ASoC: xlnx: add pcm formatter platform driver") Assisted-by: opencode:deepseek-v4-flash-free Signed-off-by: Rosen Penev --- sound/soc/xilinx/xlnx_formatter_pcm.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/sound/soc/xilinx/xlnx_formatter_pcm.c b/sound/soc/xilinx/xlnx_formatter_pcm.c index 7eba3a0205f1..b50306b0fc06 100644 --- a/sound/soc/xilinx/xlnx_formatter_pcm.c +++ b/sound/soc/xilinx/xlnx_formatter_pcm.c @@ -280,8 +280,7 @@ static irqreturn_t xlnx_mm2s_irq_handler(int irq, void *arg) { u32 val; void __iomem *reg; - struct device *dev = arg; - struct xlnx_pcm_drv_data *adata = dev_get_drvdata(dev); + struct xlnx_pcm_drv_data *adata = arg; reg = adata->mmio + XLNX_MM2S_OFFSET + XLNX_AUD_STS; val = readl(reg); @@ -299,8 +298,7 @@ static irqreturn_t xlnx_s2mm_irq_handler(int irq, void *arg) { u32 val; void __iomem *reg; - struct device *dev = arg; - struct xlnx_pcm_drv_data *adata = dev_get_drvdata(dev); + struct xlnx_pcm_drv_data *adata = arg; reg = adata->mmio + XLNX_S2MM_OFFSET + XLNX_AUD_STS; val = readl(reg); @@ -636,7 +634,7 @@ static int xlnx_formatter_pcm_probe(struct platform_device *pdev) } ret = devm_request_irq(dev, aud_drv_data->mm2s_irq, xlnx_mm2s_irq_handler, 0, - "xlnx_formatter_pcm_mm2s_irq", dev); + "xlnx_formatter_pcm_mm2s_irq", aud_drv_data); if (ret) { dev_err(dev, "xlnx audio mm2s irq request failed\n"); goto clk_err; @@ -663,7 +661,7 @@ static int xlnx_formatter_pcm_probe(struct platform_device *pdev) ret = devm_request_irq(dev, aud_drv_data->s2mm_irq, xlnx_s2mm_irq_handler, 0, "xlnx_formatter_pcm_s2mm_irq", - dev); + aud_drv_data); if (ret) { dev_err(dev, "xlnx audio s2mm irq request failed\n"); goto clk_err; -- 2.55.0