Subject: Re: [PATCH kernel v5 10/20] powerpc/iommu_api: Move IOMMU groups setup to a single place

From: Michael Ellerman <[email-masked]>
Date: Wed, 19 Dec 2018 20:51:42 +1100

Alexey Kardashevskiy <[email-masked]> writes:
> On 19/12/2018 10:35, Michael Ellerman wrote:
>> Alexey Kardashevskiy <[email-masked]> writes:
>> 
>>> diff --git a/arch/powerpc/platforms/powernv/pci-ioda.c b/arch/powerpc/platforms/powernv/pci-ioda.c
>>> index b86a6e0..1168b185 100644
>>> --- a/arch/powerpc/platforms/powernv/pci-ioda.c
>>> +++ b/arch/powerpc/platforms/powernv/pci-ioda.c
>>> @@ -2735,12 +2733,68 @@ static struct iommu_table_group_ops pnv_pci_ioda2_npu_ops = {
>>>  	.release_ownership = pnv_ioda2_release_ownership,
>>>  };
>>>  
>>> +static void pnv_ioda_setup_bus_iommu_group_add_devices(struct pnv_ioda_pe *pe,
>>> +		struct pci_bus *bus)
>>> +{
>>> +	struct pci_dev *dev;
>>> +
>>> +	list_for_each_entry(dev, &bus->devices, bus_list) {
>>> +		iommu_add_device(&pe->table_group, &dev->dev);
>>> +
>>> +		if ((pe->flags & PNV_IODA_PE_BUS_ALL) && dev->subordinate)
>>> +			pnv_ioda_setup_bus_iommu_group_add_devices(pe,
>>> +					dev->subordinate);
>>> +	}
>>> +}
>>> +
>>> +static void pnv_ioda_setup_bus_iommu_group(struct pnv_ioda_pe *pe)
>>> +{
>>> +	if (!pnv_pci_ioda_pe_dma_weight(pe))
>>> +		return;
>>> +
>>> +	iommu_register_group(&pe->table_group, pe->phb->hose->global_number,
>>> +			pe->pe_number);
>>> +
>>> +	/*
>>> +	 * set_iommu_table_base(&pe->pdev->dev, tbl) should have been called
>>> +	 * by now
>>> +	 */
>>> +	if (pe->flags & PNV_IODA_PE_DEV)
>>> +		iommu_add_device(&pe->table_group, &pe->pdev->dev);
>>> +	else if (pe->flags & (PNV_IODA_PE_BUS | PNV_IODA_PE_BUS_ALL))
>>> +		pnv_ioda_setup_bus_iommu_group_add_devices(pe, pe->pbus);
>>> +}
>>> +
>> 
>> This breaks skiroot_defconfig with:
>> 
>> arch/powerpc/platforms/powernv/pci-ioda.c:2731:13: error: 'pnv_ioda_setup_bus_iommu_group' defined but not used [-Werror=unused-function]
>> 
>>   http://kisskb.ellerman.id.au/kisskb/buildresult/13623033/
>
>
> How do you enable these warnings? I do not get them no matter what I do.

Just build skiroot_defconfig ?

Or turn off CONFIG_SPAPR_TCE_IOMMU, CONFIG_IOMMU_SUPPORT,
CONFIG_IOMMU_API etc.

cheers