On Fri, 6 Feb 2026 09:57:15 +0000 "Zhijian Li (Fujitsu)" <[email protected]> wrote:
> On 04/02/2026 23:00, Alireza Sanaee wrote: > > This function will shortly be used to help find if there is a route to a > > device, serving an HPA, under a particular fixed memory window. Rather > > than having that new use case subtract the base address in the caller, > > only to add it again in cxl_cfmws_find_device(), push the responsibility > > for calculating the HPA to the caller. > > > > This also reduces the inconsistency in the meaning of the hwaddr > > addr parameter between this function and the calls made within it > > that access the HDM decoders that operating on HPA. > > > > Signed-off-by: Alireza Sanaee <[email protected]> > > --- > > hw/cxl/cxl-host.c | 6 ++---- > > 1 file changed, 2 insertions(+), 4 deletions(-) > > > > diff --git a/hw/cxl/cxl-host.c b/hw/cxl/cxl-host.c > > index f3479b1991..9633b01abf 100644 > > --- a/hw/cxl/cxl-host.c > > +++ b/hw/cxl/cxl-host.c > > @@ -168,8 +168,6 @@ static PCIDevice *cxl_cfmws_find_device(CXLFixedWindow > > *fw, hwaddr addr) > > bool target_found; > > PCIDevice *rp, *d; > > > > - /* Address is relative to memory region. Convert to HPA */ > > - addr += fw->base; > > > > rb_index = (addr / cxl_decode_ig(fw->enc_int_gran)) % fw->num_targets; > > hb = PCI_HOST_BRIDGE(fw->target_hbs[rb_index]->cxl_host_bridge); > > @@ -254,7 +252,7 @@ static MemTxResult cxl_read_cfmws(void *opaque, hwaddr > > addr, uint64_t *data, > > CXLFixedWindow *fw = opaque; > > PCIDevice *d; > > > > - d = cxl_cfmws_find_device(fw, addr); > > + d = cxl_cfmws_find_device(fw, addr + fw->base, true); > > > It seems you've added an extra parameter to the calls to > cxl_cfmws_find_device(), but its function signature wasn't updated. Good spot. The extra parameter should be in the next patch. Jonathan > > > > Thanks > Zhijian > > > > > if (d == NULL) { > > *data = 0; > > /* Reads to invalid address return poison */ > > @@ -271,7 +269,7 @@ static MemTxResult cxl_write_cfmws(void *opaque, hwaddr > > addr, > > CXLFixedWindow *fw = opaque; > > PCIDevice *d; > > > > - d = cxl_cfmws_find_device(fw, addr); > > + d = cxl_cfmws_find_device(fw, addr + fw->base, true); > > if (d == NULL) { > > /* Writes to invalid address are silent */ > > return MEMTX_OK;
