Powerpc: Kernel warn_on when enabling IOMMU_API

Bhushan Bharat-R65777 R65777 at freescale.com
Tue Aug 13 20:44:03 EST 2013



> -----Original Message-----
> From: Alexey Kardashevskiy [mailto:aik at ozlabs.ru]
> Sent: Tuesday, August 13, 2013 5:41 AM
> To: Bhushan Bharat-R65777
> Cc: benh at kernel.crashing.org; linuxppc-dev at lists.ozlabs.org
> Subject: Re: Powerpc: Kernel warn_on when enabling IOMMU_API
> 
> On 08/13/2013 02:14 AM, Bhushan Bharat-R65777 wrote:
> >
> >
> >> -----Original Message-----
> >> From: Alexey Kardashevskiy [mailto:aik at ozlabs.ru]
> >> Sent: Monday, August 12, 2013 7:44 PM
> >> To: Bhushan Bharat-R65777
> >> Cc: benh at kernel.crashing.org; linuxppc-dev at lists.ozlabs.org
> >> Subject: Re: Powerpc: Kernel warn_on when enabling IOMMU_API
> >>
> >> On 08/12/2013 08:20 PM, Bhushan Bharat-R65777 wrote:
> >>> And this simple fix work for me
> >>> diff --git a/arch/powerpc/kernel/iommu.c
> >>> b/arch/powerpc/kernel/iommu.c index b20ff17..8869b0d 100644
> >>> --- a/arch/powerpc/kernel/iommu.c
> >>> +++ b/arch/powerpc/kernel/iommu.c
> >>> @@ -48,6 +48,8 @@
> >>>  #include <asm/vio.h>
> >>>  #include <asm/tce.h>
> >>>
> >>> +#define DEBUG
> >>> +
> >>>  #define DBG(...)
> >>>
> >>>  static int novmerge;
> >>> @@ -871,7 +873,7 @@ void iommu_free_coherent(struct iommu_table
> >>> *tbl, size_t
> >> size,
> >>>         }
> >>>  }
> >>>
> >>> -#ifdef CONFIG_IOMMU_API
> >>> +#ifdef SPAPR_TCE_IOMMU
> >>>  /*
> >>>   * SPAPR TCE API
> >>>   */
> >>> ----------------------
> >>
> >>
> >> And with this fix, what does "ls -laR /sys/kernel/iommu_groups/" print?
> >
> > It shows the list of group id and respective devices:
> >
> 
> Is it vanilla 3.11-rc1 kernel? Wow. What does "lspci" show there?

It is 3.11-rc1 + (FSL_IOMMU + VFIO-PCI : local changes).

root at p5040ds:~# lspci
00:00.0 Class 0604: 1957:0450
01:00.0 Class 0200: 8086:10fb
00:00.0 Class 0604: 1957:0450
01:00.0 Class 0200: 8086:10d3


We uses the bus_set_iommu(), generic iommu api, which creates a iommu_group for a device (drivers/iommu/iommu.c) using. Also this have notifier to support hotplug-able device.
So when this initcall (in arch/powerpc/kernel/iommu.c) is called, iommu group is already setup for the device/s.

I think we do not need this piece of code for powerpc.
So what is the best way to stub this out for FSL PowerPC/IOMMU?

Will the above #ifdef SPAPR_TCE_IOMMU work?
Other way can be selecting iommu.c and dma-iommu.c in Makefile if SPAPR_TCE_IOMMU defined and not if CONFIG_64BIT.

-Bharat

> 
> 
> --
> Alexey




More information about the Linuxppc-dev mailing list