Re: v5.15-rc7 AMD no kernel dump, spews "scsi_dma_map failed: request for 36 bytes!"
From: Marshall Midden
Date: Wed Oct 27 2021 - 13:21:44 EST
Yes, the spewing of messages stopped. Kernel crash dump taking is now
occurring. Patch applied to v5.15-rc7.
Reworded: THANKS! Patch works!
Dunno why the dmesg isn't right, but at least there is a core image!
[I updated makedumpfs for v5.15-rc4 -- applying a bunch of cifs/smb,
qlogic, etc. patches and was getting ready for new kernel release in a
few weeks -- couldn't debug a cifs crash. :) Down the rabbit hole...
;) ]
Intel machine booted, etc. and it has a dmesg correct. *sigh* I don't
think "I" need to worry about that. Someone else can report it.
/media/parsecdata/crash/127.0.0.1-2021-10-27-12:06:53:
total 5283408
-rw------- 1 root root 5410206160 Oct 27 12:06 vmcore
-rw-r--r-- 1 root root 0 Oct 27 12:06 vmcore-dmesg-incomplete.txt
On Wed, Oct 27, 2021 at 11:41 AM Logan Gunthorpe <logang@xxxxxxxxxxxx> wrote:
>
> Hi,
>
> On 2021-10-27 10:08 a.m., Marshall Midden wrote:
> > v5.15-rc7 AMD no kernel dump, spews "scsi_dma_map failed: request for 36 bytes!"
> >
> > With v5.15-rc (1 through 7), AMD processor kernel crash dumps do not occur,
> > instead spews:
> > "scsci_dma_map failed: request for 36 bytes!"
> > Works on Intel machines, and in v5.14.0 (and v5.14.14) - as well as previous
> > kernels (down to v5.3.x.)
> > git bisect torvalds repository shows: dabb16f67215918c48cf3ff1fc4bc36ca421da2b
> > Reverse patch to tag v5.15-rc7 allows kernel crash dumps to occur/happen.
> >
>
> On careful review I think I see what might be causing this. Can you
> please try the following patch?
>
> Thanks,
>
> Logan
>
> --
>
> diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
> index cd0f1a593997..3bfb5da87802 100644
> --- a/drivers/iommu/dma-iommu.c
> +++ b/drivers/iommu/dma-iommu.c
> @@ -1028,7 +1028,8 @@ static int iommu_dma_map_sg(struct device *dev,
> struct sc>
>
> if (static_branch_unlikely(&iommu_deferred_attach_enabled)) {
> ret = iommu_deferred_attach(dev, domain);
> - goto out;
> + if (ret)
> + goto out;
> }
>
> if (!(attrs & DMA_ATTR_SKIP_CPU_SYNC))