From: Bartosz Golaszewski <bgolaszewski@baylibre.com> Since commit c40aaaac1018 ("iommu/vt-d: Gracefully handle DMAR units with no supported address widths") dmar.c needs struct iommu_device to be selected. We can drop this dependency by not dereferencing struct iommu_device if IOMMU_API is not selected and by reusing the information stored in iommu->drhd->ignored instead. This fixes the following build error when IOMMU_API is not selected: drivers/iommu/intel/dmar.c: In function ‘free_iommu’: drivers/iommu/intel/dmar.c:1139:41: error: ‘struct iommu_device’ has no member named ‘ops’ 1139 | if (intel_iommu_enabled && iommu->iommu.ops) { ^ Fixes: c40aaaac1018 ("iommu/vt-d: Gracefully handle DMAR units with no supported address widths") Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com> --- drivers/iommu/intel/dmar.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/iommu/intel/dmar.c b/drivers/iommu/intel/dmar.c index 2d70d56d8e0d..404b40af31cb 100644 --- a/drivers/iommu/intel/dmar.c +++ b/drivers/iommu/intel/dmar.c @@ -1136,7 +1136,7 @@ static int alloc_iommu(struct dmar_drhd_unit *drhd) static void free_iommu(struct intel_iommu *iommu) { - if (intel_iommu_enabled && iommu->iommu.ops) { + if (intel_iommu_enabled && !iommu->drhd->ignored) { iommu_device_unregister(&iommu->iommu); iommu_device_sysfs_remove(&iommu->iommu); } -- 2.28.0
[-- Attachment #1: Type: text/plain, Size: 1091 bytes --] On Tue, 2020-10-13 at 09:30 +0200, Bartosz Golaszewski wrote: > From: Bartosz Golaszewski <bgolaszewski@baylibre.com> > > Since commit c40aaaac1018 ("iommu/vt-d: Gracefully handle DMAR units > with no supported address widths") dmar.c needs struct iommu_device to > be selected. We can drop this dependency by not dereferencing struct > iommu_device if IOMMU_API is not selected and by reusing the information > stored in iommu->drhd->ignored instead. > > This fixes the following build error when IOMMU_API is not selected: > > drivers/iommu/intel/dmar.c: In function ‘free_iommu’: > drivers/iommu/intel/dmar.c:1139:41: error: ‘struct iommu_device’ has no member named ‘ops’ > 1139 | if (intel_iommu_enabled && iommu->iommu.ops) { > ^ > > Fixes: c40aaaac1018 ("iommu/vt-d: Gracefully handle DMAR units with no supported address widths") > Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com> Oops, apologies for that. Thanks for fixing it. Acked-by: David Woodhouse <dwmw@amazon.co.uk> [-- Attachment #2: smime.p7s --] [-- Type: application/x-pkcs7-signature, Size: 5174 bytes --]
On 10/13/20 3:30 PM, Bartosz Golaszewski wrote: > From: Bartosz Golaszewski <bgolaszewski@baylibre.com> > > Since commit c40aaaac1018 ("iommu/vt-d: Gracefully handle DMAR units > with no supported address widths") dmar.c needs struct iommu_device to > be selected. We can drop this dependency by not dereferencing struct > iommu_device if IOMMU_API is not selected and by reusing the information > stored in iommu->drhd->ignored instead. > > This fixes the following build error when IOMMU_API is not selected: > > drivers/iommu/intel/dmar.c: In function ‘free_iommu’: > drivers/iommu/intel/dmar.c:1139:41: error: ‘struct iommu_device’ has no member named ‘ops’ > 1139 | if (intel_iommu_enabled && iommu->iommu.ops) { > ^ > > Fixes: c40aaaac1018 ("iommu/vt-d: Gracefully handle DMAR units with no supported address widths") > Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com> With commit title adjusted to "iommu/vt-d: Don't dereference iommu_device if IOMMU_API is not built", Acked-by: Lu Baolu <baolu.lu@linux.intel.com> Best regards, baolu > --- > drivers/iommu/intel/dmar.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/iommu/intel/dmar.c b/drivers/iommu/intel/dmar.c > index 2d70d56d8e0d..404b40af31cb 100644 > --- a/drivers/iommu/intel/dmar.c > +++ b/drivers/iommu/intel/dmar.c > @@ -1136,7 +1136,7 @@ static int alloc_iommu(struct dmar_drhd_unit *drhd) > > static void free_iommu(struct intel_iommu *iommu) > { > - if (intel_iommu_enabled && iommu->iommu.ops) { > + if (intel_iommu_enabled && !iommu->drhd->ignored) { > iommu_device_unregister(&iommu->iommu); > iommu_device_sysfs_remove(&iommu->iommu); > } >
On Wed, Oct 14, 2020 at 2:49 AM Lu Baolu <baolu.lu@linux.intel.com> wrote:
>
> On 10/13/20 3:30 PM, Bartosz Golaszewski wrote:
> > From: Bartosz Golaszewski <bgolaszewski@baylibre.com>
> >
> > Since commit c40aaaac1018 ("iommu/vt-d: Gracefully handle DMAR units
> > with no supported address widths") dmar.c needs struct iommu_device to
> > be selected. We can drop this dependency by not dereferencing struct
> > iommu_device if IOMMU_API is not selected and by reusing the information
> > stored in iommu->drhd->ignored instead.
> >
> > This fixes the following build error when IOMMU_API is not selected:
> >
> > drivers/iommu/intel/dmar.c: In function ‘free_iommu’:
> > drivers/iommu/intel/dmar.c:1139:41: error: ‘struct iommu_device’ has no member named ‘ops’
> > 1139 | if (intel_iommu_enabled && iommu->iommu.ops) {
> > ^
> >
> > Fixes: c40aaaac1018 ("iommu/vt-d: Gracefully handle DMAR units with no supported address widths")
> > Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
>
> With commit title adjusted to "iommu/vt-d: Don't dereference
> iommu_device if IOMMU_API is not built",
>
> Acked-by: Lu Baolu <baolu.lu@linux.intel.com>
>
Do you want me to resend it again with a changed title or can you fix
it up when applying? Or should someone else pick it up?
Bartosz
Hi Bartosz,
On 10/14/20 3:18 PM, Bartosz Golaszewski wrote:
> On Wed, Oct 14, 2020 at 2:49 AM Lu Baolu <baolu.lu@linux.intel.com> wrote:
>>
>> On 10/13/20 3:30 PM, Bartosz Golaszewski wrote:
>>> From: Bartosz Golaszewski <bgolaszewski@baylibre.com>
>>>
>>> Since commit c40aaaac1018 ("iommu/vt-d: Gracefully handle DMAR units
>>> with no supported address widths") dmar.c needs struct iommu_device to
>>> be selected. We can drop this dependency by not dereferencing struct
>>> iommu_device if IOMMU_API is not selected and by reusing the information
>>> stored in iommu->drhd->ignored instead.
>>>
>>> This fixes the following build error when IOMMU_API is not selected:
>>>
>>> drivers/iommu/intel/dmar.c: In function ‘free_iommu’:
>>> drivers/iommu/intel/dmar.c:1139:41: error: ‘struct iommu_device’ has no member named ‘ops’
>>> 1139 | if (intel_iommu_enabled && iommu->iommu.ops) {
>>> ^
>>>
>>> Fixes: c40aaaac1018 ("iommu/vt-d: Gracefully handle DMAR units with no supported address widths")
>>> Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
>>
>> With commit title adjusted to "iommu/vt-d: Don't dereference
>> iommu_device if IOMMU_API is not built",
>>
>> Acked-by: Lu Baolu <baolu.lu@linux.intel.com>
>>
>
> Do you want me to resend it again with a changed title or can you fix
> it up when applying? Or should someone else pick it up?
I suppose Joerg will pick this up. I guess you don't need to resend it
unless Joerg asks you to do.
Best regards,
baolu
On Wed, Oct 14, 2020 at 03:25:08PM +0800, Lu Baolu wrote:
> I suppose Joerg will pick this up. I guess you don't need to resend it
> unless Joerg asks you to do.
Yes, will pick this up soon, no need to re-send.
Thanks,
Joerg
[-- Attachment #1: Type: text/plain, Size: 347 bytes --] On Wed, 2020-10-14 at 14:57 +0200, Joerg Roedel wrote: > On Wed, Oct 14, 2020 at 03:25:08PM +0800, Lu Baolu wrote: > > I suppose Joerg will pick this up. I guess you don't need to resend it > > unless Joerg asks you to do. > > Yes, will pick this up soon, no need to re-send. Please could it, and the commit it fixes, both go to stable@ [-- Attachment #2: smime.p7s --] [-- Type: application/x-pkcs7-signature, Size: 5174 bytes --]
On Tue, Oct 13, 2020 at 09:30:55AM +0200, Bartosz Golaszewski wrote:
> From: Bartosz Golaszewski <bgolaszewski@baylibre.com>
>
> Since commit c40aaaac1018 ("iommu/vt-d: Gracefully handle DMAR units
> with no supported address widths") dmar.c needs struct iommu_device to
> be selected. We can drop this dependency by not dereferencing struct
> iommu_device if IOMMU_API is not selected and by reusing the information
> stored in iommu->drhd->ignored instead.
>
> This fixes the following build error when IOMMU_API is not selected:
>
> drivers/iommu/intel/dmar.c: In function ‘free_iommu’:
> drivers/iommu/intel/dmar.c:1139:41: error: ‘struct iommu_device’ has no member named ‘ops’
> 1139 | if (intel_iommu_enabled && iommu->iommu.ops) {
> ^
>
> Fixes: c40aaaac1018 ("iommu/vt-d: Gracefully handle DMAR units with no supported address widths")
> Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
> ---
> drivers/iommu/intel/dmar.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
Applied, thanks.