This is a note to let you know that I've just added the patch titled scsi: dpt_i2o: Do not process completions with invalid addresses to the 5.10-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: scsi-dpt_i2o-do-not-process-completions-with-invalid-addresses.patch and it can be found in the queue-5.10 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From 157298ea77a54f7793b370cb8cdfa967811adb66 Mon Sep 17 00:00:00 2001 From: Ben Hutchings <benh@xxxxxxxxxx> Date: Sat, 27 May 2023 15:52:48 +0200 Subject: scsi: dpt_i2o: Do not process completions with invalid addresses From: Ben Hutchings <benh@xxxxxxxxxx> adpt_isr() reads reply addresses from a hardware register, which should always be within the DMA address range of the device's pool of reply address buffers. In case the address is out of range, it tries to muddle on, converting to a virtual address using bus_to_virt(). bus_to_virt() does not take DMA addresses, and it doesn't make sense to try to handle the completion in this case. Ignore it and continue looping to service the interrupt. If a completion has been lost then the SCSI core should eventually time-out and trigger a reset. There is no corresponding upstream commit, because this driver was removed upstream. Fixes: 67af2b060e02 ("[SCSI] dpt_i2o: move from virt_to_bus/bus_to_virt ...") Signed-off-by: Ben Hutchings <benh@xxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- drivers/scsi/Kconfig | 2 +- drivers/scsi/dpt_i2o.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) --- a/drivers/scsi/Kconfig +++ b/drivers/scsi/Kconfig @@ -444,7 +444,7 @@ config SCSI_MVUMI config SCSI_DPT_I2O tristate "Adaptec I2O RAID support " - depends on SCSI && PCI && VIRT_TO_BUS + depends on SCSI && PCI help This driver supports all of Adaptec's I2O based RAID controllers as well as the DPT SmartRaid V cards. This is an Adaptec maintained --- a/drivers/scsi/dpt_i2o.c +++ b/drivers/scsi/dpt_i2o.c @@ -56,7 +56,7 @@ MODULE_DESCRIPTION("Adaptec I2O RAID Dri #include <linux/mutex.h> #include <asm/processor.h> /* for boot_cpu_data */ -#include <asm/io.h> /* for virt_to_bus, etc. */ +#include <asm/io.h> #include <scsi/scsi.h> #include <scsi/scsi_cmnd.h> @@ -1865,7 +1865,7 @@ static irqreturn_t adpt_isr(int irq, voi } else { /* Ick, we should *never* be here */ printk(KERN_ERR "dpti: reply frame not from pool\n"); - reply = (u8 *)bus_to_virt(m); + continue; } if (readl(reply) & MSG_FAIL) { Patches currently in stable-queue which might be from benh@xxxxxxxxxx are queue-5.10/crypto-ccp-reject-sev-commands-with-mismatching-command-buffer.patch queue-5.10/scsi-dpt_i2o-remove-broken-pass-through-ioctl-i2ousercmd.patch queue-5.10/crypto-ccp-play-nice-with-vmalloc-d-memory-for-sev-command-structs.patch queue-5.10/scsi-dpt_i2o-do-not-process-completions-with-invalid-addresses.patch