linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Borislav Petkov <bp@alien8.de>
To: David Woodhouse <dwmw2@infradead.org>
Cc: iommu@lists.linux-foundation.org, Joerg Roedel <joro@8bytes.org>,
	Will Deacon <will@kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	lkml <linux-kernel@vger.kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
Subject: Re: [PATCH] iommu/amd: Set iommu->int_enabled consistently when interrupts are set up
Date: Tue, 5 Jan 2021 11:20:56 +0100	[thread overview]
Message-ID: <20210105102056.GA28649@zn.tnic> (raw)
In-Reply-To: <50cd5f55be8ead0937ac315cd2f5b89364f6a9a5.camel@infradead.org>

On Tue, Jan 05, 2021 at 01:32:51AM +0000, David Woodhouse wrote:
> From: David Woodhouse <dwmw@amazon.co.uk>
> 
> When I made the INTCAPXT support stop gratuitously pretending to be MSI,
> I missed the fact that iommu_setup_msi() also sets the ->int_enabled
> flag. I missed this in the iommu_setup_intcapxt() code path, which means
> that a resume from suspend will try to allocate the IRQ domains again,
> accidentally re-enabling interrupts as it does, resulting in much sadness.
> 
> Lift out the bit which sets iommu->int_enabled into the iommu_init_irq()
> function which is also where it gets checked.
> 
> Link: https://lore.kernel.org/r/20210104132250.GE32151@zn.tnic/
> Fixes: d1adcfbb520c ("iommu/amd: Fix IOMMU interrupt generation in X2APIC mode")
> Reported-by: Borislav Petkov <bp@alien8.de>
> Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
> ---
> There's a possibility we also need to ensure that the actual
> MMIO_INTCAPXT_xxx_OFFSET registers are restored too. Unless you
> actually trigger something to generate faults, you'll never know.
> I don't see offhand how that was working in the pretend-to-be-MSI case
> either.
> 
>  drivers/iommu/amd/init.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/iommu/amd/init.c b/drivers/iommu/amd/init.c
> index f54cd79b43e4..6a1f7048dacc 100644
> --- a/drivers/iommu/amd/init.c
> +++ b/drivers/iommu/amd/init.c
> @@ -1973,8 +1973,6 @@ static int iommu_setup_msi(struct amd_iommu *iommu)
>  		return r;
>  	}
>  
> -	iommu->int_enabled = true;
> -
>  	return 0;
>  }
>  
> @@ -2169,6 +2167,7 @@ static int iommu_init_irq(struct amd_iommu *iommu)
>  	if (ret)
>  		return ret;
>  
> +	iommu->int_enabled = true;
>  enable_faults:
>  	iommu_feature_enable(iommu, CONTROL_EVT_INT_EN);
>  
> -- 

Tested-by: Borislav Petkov <bp@suse.de>

Thx.

-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette

  reply	other threads:[~2021-01-05 10:21 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-04 13:22 Interrupts enabled after amd_iommu_resume+0x0/0x40 Borislav Petkov
2021-01-04 23:23 ` Borislav Petkov
2021-01-04 23:39   ` David Woodhouse
2021-01-05  1:32   ` [PATCH] iommu/amd: Set iommu->int_enabled consistently when interrupts are set up David Woodhouse
2021-01-05 10:20     ` Borislav Petkov [this message]
2021-01-05 22:07     ` Will Deacon

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=20210105102056.GA28649@zn.tnic \
    --to=bp@alien8.de \
    --cc=dwmw2@infradead.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=iommu@lists.linux-foundation.org \
    --cc=joro@8bytes.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rafael@kernel.org \
    --cc=suravee.suthikulpanit@amd.com \
    --cc=tglx@linutronix.de \
    --cc=will@kernel.org \
    /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).