> -----Original Message----- > From: Wood Scott-B07421 > Sent: Saturday, December 14, 2013 2:33 AM > To: Alexey Kardashevskiy > Cc: linuxppc-dev@xxxxxxxxxxxxxxxx; kvm@xxxxxxxxxxxxxxx; linux- > kernel@xxxxxxxxxxxxxxx; Alex Williamson; Paul Mackerras; David Gibson; Sethi > Varun-B16395; Bhushan Bharat-R65777 > Subject: Re: [1/3] powerpc/vfio: Enable on POWERNV platform > > On Fri, 2013-12-13 at 14:02 +1100, Alexey Kardashevskiy wrote: > > On 12/13/2013 10:35 AM, Scott Wood wrote: > > > On Tue, May 21, 2013 at 01:33:09PM +1000, Alexey Kardashevskiy wrote: > > >> +static int iommu_add_device(struct device *dev) { > > >> + struct iommu_table *tbl; > > >> + int ret = 0; > > >> + > > >> + if (WARN_ON(dev->iommu_group)) { > > >> + pr_warn("iommu_tce: device %s is already in iommu group %d, > skipping\n", > > >> + dev_name(dev), > > >> + iommu_group_id(dev->iommu_group)); > > >> + return -EBUSY; > > >> + } > > > [snip] > > >> +static int __init tce_iommu_init(void) { > > >> + struct pci_dev *pdev = NULL; > > >> + > > >> + BUILD_BUG_ON(PAGE_SIZE < IOMMU_PAGE_SIZE); > > >> + > > >> + for_each_pci_dev(pdev) > > >> + iommu_add_device(&pdev->dev); > > >> + > > >> + bus_register_notifier(&pci_bus_type, &tce_iommu_bus_nb); > > >> + return 0; > > >> +} > > >> + > > >> +subsys_initcall_sync(tce_iommu_init); > > > > > > This is missing a check to see whether the appropriate hardware is > > > present. This file should also be renamed to something less > > > generic, and depend on a kconfig symbol more specific than CONFIG_PPC64. > > > > > > When this is combined with CONFIG_FSL_PAMU on hardware with a PAMU, > > > I get a bunch of those "WARN_ON(dev->iommu_group)" dumps because > > > PAMU already got to them. Presumably without PAMU it silently (or > > > with just pr_debug) bails out at some other point. > > > > > > I posted (yet again) yesterday "[PATCH v11] PPC: POWERNV: move > > iommu_add_device earlier" which should fix this. And Bharat asked many > > times for this to get accepted :) > > I still get the WARN_ONs even with that patch. You're still registering the bus > notifier unconditionally. I have not tried v11 but tested V9 version of that patch. And yes, in that version the bus notifier was not registered unconditionally in kernel/iommu.c . Thanks -Bharat > > -Scott > ��.n��������+%������w��{.n�����o�^n�r������&��z�ޗ�zf���h���~����������_��+v���)ߣ�