Message ID | 5ac9b54285b2189b848da2595408eb3cae8e5e9d.1649160813.git.robin.murphy@arm.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | ALSA: emu10k1: Stop using iommu_present() | expand |
On Tue, 05 Apr 2022 14:13:33 +0200, Robin Murphy wrote: > > iommu_get_domain_for_dev() is already perfectly happy to return NULL > if the given device has no IOMMU. Drop the unnecessary check. > > Signed-off-by: Robin Murphy <robin.murphy@arm.com> This will change the code behavior. The current code does nothing if no IOMMU is found, but after your removal of the check, the code reaches to emu->iommu_workaround = true incorrectly. thanks, Takashi > --- > sound/pci/emu10k1/emu10k1_main.c | 3 --- > 1 file changed, 3 deletions(-) > > diff --git a/sound/pci/emu10k1/emu10k1_main.c b/sound/pci/emu10k1/emu10k1_main.c > index 86cc1ca025e4..5ffab343b89c 100644 > --- a/sound/pci/emu10k1/emu10k1_main.c > +++ b/sound/pci/emu10k1/emu10k1_main.c > @@ -1751,9 +1751,6 @@ static void snd_emu10k1_detect_iommu(struct snd_emu10k1 *emu) > > emu->iommu_workaround = false; > > - if (!iommu_present(emu->card->dev->bus)) > - return; > - > domain = iommu_get_domain_for_dev(emu->card->dev); > if (domain && domain->type == IOMMU_DOMAIN_IDENTITY) > return; > -- > 2.28.0.dirty >
On 2022-04-05 13:29, Takashi Iwai wrote: > On Tue, 05 Apr 2022 14:13:33 +0200, > Robin Murphy wrote: >> >> iommu_get_domain_for_dev() is already perfectly happy to return NULL >> if the given device has no IOMMU. Drop the unnecessary check. >> >> Signed-off-by: Robin Murphy <robin.murphy@arm.com> > > This will change the code behavior. The current code does nothing if > no IOMMU is found, but after your removal of the check, the code > reaches to emu->iommu_workaround = true incorrectly. Ah, right you are - I should have looked more closely at the second check, where of course "domain &&" wants tweaking to "!domain ||" as well. I'll send a v2 in a bit... Thanks, Robin. > > > thanks, > > Takashi > >> --- >> sound/pci/emu10k1/emu10k1_main.c | 3 --- >> 1 file changed, 3 deletions(-) >> >> diff --git a/sound/pci/emu10k1/emu10k1_main.c b/sound/pci/emu10k1/emu10k1_main.c >> index 86cc1ca025e4..5ffab343b89c 100644 >> --- a/sound/pci/emu10k1/emu10k1_main.c >> +++ b/sound/pci/emu10k1/emu10k1_main.c >> @@ -1751,9 +1751,6 @@ static void snd_emu10k1_detect_iommu(struct snd_emu10k1 *emu) >> >> emu->iommu_workaround = false; >> >> - if (!iommu_present(emu->card->dev->bus)) >> - return; >> - >> domain = iommu_get_domain_for_dev(emu->card->dev); >> if (domain && domain->type == IOMMU_DOMAIN_IDENTITY) >> return; >> -- >> 2.28.0.dirty >>
diff --git a/sound/pci/emu10k1/emu10k1_main.c b/sound/pci/emu10k1/emu10k1_main.c index 86cc1ca025e4..5ffab343b89c 100644 --- a/sound/pci/emu10k1/emu10k1_main.c +++ b/sound/pci/emu10k1/emu10k1_main.c @@ -1751,9 +1751,6 @@ static void snd_emu10k1_detect_iommu(struct snd_emu10k1 *emu) emu->iommu_workaround = false; - if (!iommu_present(emu->card->dev->bus)) - return; - domain = iommu_get_domain_for_dev(emu->card->dev); if (domain && domain->type == IOMMU_DOMAIN_IDENTITY) return;
iommu_get_domain_for_dev() is already perfectly happy to return NULL if the given device has no IOMMU. Drop the unnecessary check. Signed-off-by: Robin Murphy <robin.murphy@arm.com> --- sound/pci/emu10k1/emu10k1_main.c | 3 --- 1 file changed, 3 deletions(-)