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

Reply via email to