On 13/05/2025 19:14, Jonathan Cameron via wrote: > > +hwaddr cxl_fmws_set_memmap(hwaddr base, hwaddr max_addr) > +{ > + GSList *cfmws_list, *iter; > + > + struct cfmw_update_state cfmwss = { > + .base = base, > + .maxaddr = max_addr, > + .update_mmio = false, > + }; > + cfmws_list = cxl_fmws_get_all_sorted(); > + for (iter = cfmws_list; iter; iter = iter->next) { > + cxl_fmws_update(iter->data, &cfmwss); > + } > + g_slist_free(cfmws_list); > + > + return cfmwss.base; > +} > + > hwaddr cxl_fmws_set_memmap_and_update_mmio(hwaddr base, hwaddr max_addr) > { > GSList *cfmws_list, *iter; > @@ -445,6 +466,7 @@ hwaddr cxl_fmws_set_memmap_and_update_mmio(hwaddr base, > hwaddr max_addr) > struct cfmw_update_state cfmwss = { > .base = base, > .maxaddr = max_addr, > + .update_mmio = true, > }; > cfmws_list = cxl_fmws_get_all_sorted(); > for (iter = cfmws_list; iter; iter = iter->next) { > @@ -455,6 +477,26 @@ hwaddr cxl_fmws_set_memmap_and_update_mmio(hwaddr base, > hwaddr max_addr) > return cfmwss.base; > } >
It seem we can share most of the code in cxl_fmws_set_memmap_and_update_mmio() and cxl_fmws_set_memmap() In addition, we can drop the cfmw_update_state::update_mmio if there is no other users. Just pass it to cxl_fmws_update() directly. Thanks Zhijian