On Tue, 2021-04-13 at 17:18 +1000, Alexey Kardashevskiy wrote: > > On 13/04/2021 15:49, Leonardo Bras wrote: > > Thanks for the feedback! > > > > On Tue, 2020-09-29 at 13:56 +1000, Alexey Kardashevskiy wrote: > > > > -static bool find_existing_ddw(struct device_node *pdn, u64 *dma_addr) > > > > +static phys_addr_t ddw_memory_hotplug_max(void) > > > > > > > > > Please, forward declaration or a separate patch; this creates > > > unnecessary noise to the actual change. > > > > > > > Sure, done! > > > > > > > > > + _iommu_table_setparms(tbl, pci->phb->bus->number, > > > > create.liobn, win_addr, > > > > + 1UL << len, page_shift, 0, > > > > &iommu_table_lpar_multi_ops); > > > > + iommu_init_table(tbl, pci->phb->node, 0, 0); > > > > > > > > > It is 0,0 only if win_addr>0 which is not the QEMU case. > > > > > > > Oh, ok. > > I previously though it was ok to use 0,0 here as any other usage in > > this file was also 0,0. > > > > What should I use to get the correct parameters? Use the previous tbl > > it_reserved_start and tbl->it_reserved_end is enough? > > depends on whether you carry reserved start/end even if they are outside > of the dma window. >
Oh, that makes sense. On a previous patch (5/14 IIRC), I changed the behavior to only store the valid range on tbl, but now I understand why it's important to store the raw value. Ok, I will change it back so the reserved range stays in tbl even if it does not intersect with the DMA window. This way I can reuse the values in case of indirect mapping with DDW. Is that ok? Are the reserved values are supposed to stay the same after changing from Default DMA window to DDW? Best regards, Leonardo Bras