Re: [RESEND PATCH] iommu/intel: fix variable 'iommu' set but not used

From: Andrew Morton
Date: Wed May 22 2019 - 17:17:39 EST


On Wed, 22 May 2019 16:36:26 -0400 Qian Cai <cai@xxxxxx> wrote:

> The commit cf04eee8bf0e ("iommu/vt-d: Include ACPI devices in iommu=pt")
> added for_each_active_iommu() in iommu_prepare_static_identity_mapping()
> but never used the each element, i.e, "drhd->iommu".
>
> drivers/iommu/intel-iommu.c: In function
> 'iommu_prepare_static_identity_mapping':
> drivers/iommu/intel-iommu.c:3037:22: warning: variable 'iommu' set but
> not used [-Wunused-but-set-variable]
> struct intel_iommu *iommu;
>
> Fixed the warning by passing "drhd->iommu" directly to
> for_each_active_iommu() which all subsequent self-assignments should be
> ignored by a compiler anyway.
>

Yes, assigning drhd->iommu to itself seems a bit nasty. Maybe this is
a case for __mabe_unused (with a comment explaining why), if that fixes
the warning. Dunno.

btw, for_each_active_dev_scope() and for_each_dev_scope() should be
dragged out and shot. Or at least, should have those single-char
identifiers changed into something meaningful so poor sods like me have
a hope of understanding the code :(