Re: [PATCH v9 02/12] iommu/arm-smmu-v3: Skip EVTQ/PRIQ setup in kdump kernel

Nicolin Chen <[email protected]>
Newsgroups dev.linux.lists.iommu,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
On Fri, Aug 21, 2026 at 08:15:25PM -0300, Jason Gunthorpe wrote:
> > @@ -4821,21 +4821,36 @@ static int arm_smmu_device_reset(struct arm_smmu_device *smmu)
> > -	/* PRI queue */
> > -	if (smmu->features & ARM_SMMU_FEAT_PRI) {
> > +	/*
> > +	 * PRI queue
> > +	 *
> > +	 * Do not enable in a kdump case, as we cannot serve page requests.
> > +	 */
> > +	if (!is_kdump_kernel() && (smmu->features & ARM_SMMU_FEAT_PRI)) {
> >  		writeq_relaxed(smmu->priq.q.q_base,
> 
> I'm reading this again and wondering why not drop FEAT_PRI much earlier so we
> don't need this is_kdump_kernel() here?

Yes. I added this:

@@ -5371,6 +5351,15 @@ static int arm_smmu_device_hw_probe(struct arm_smmu_device *smmu)
 	if (arm_smmu_sva_supported(smmu))
 		smmu->features |= ARM_SMMU_FEAT_SVA;
 
+       /*
+	* A kdump kernel wants neither queue: the crashed kernel's CDs and page
+	* tables might be corrupted, spamming events, and page requests cannot
+	* be served. A disabled queue discards new records without raising any
+	* global error.
+	*/
+       if (is_kdump_kernel())
+	       smmu->features &= ~(ARM_SMMU_FEAT_EVTQ | ARM_SMMU_FEAT_PRI);
+
 	dev_info(smmu->dev, "oas %lu-bit (features 0x%08x)\n",
 		 smmu->oas, smmu->features);

Thanks
Nicolin
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.