*/
 bool rdt_alloc_capable;
 
-static void
-mba_wrmsr_intel(struct rdt_domain *d, struct msr_param *m,
-               struct rdt_resource *r);
-static void
-cat_wrmsr(struct rdt_domain *d, struct msr_param *m, struct rdt_resource *r);
-static void
-mba_wrmsr_amd(struct rdt_domain *d, struct msr_param *m,
-             struct rdt_resource *r);
+static void mba_wrmsr_intel(struct msr_param *m);
+static void cat_wrmsr(struct msr_param *m);
+static void mba_wrmsr_amd(struct msr_param *m);
 
 #define domain_init(id) LIST_HEAD_INIT(rdt_resources_all[id].r_resctrl.domains)
 
        rdt_get_cdp_config(RDT_RESOURCE_L2);
 }
 
-static void
-mba_wrmsr_amd(struct rdt_domain *d, struct msr_param *m, struct rdt_resource *r)
+static void mba_wrmsr_amd(struct msr_param *m)
 {
+       struct rdt_hw_resource *hw_res = resctrl_to_arch_res(m->res);
+       struct rdt_hw_domain *hw_dom = resctrl_to_arch_dom(m->dom);
        unsigned int i;
-       struct rdt_hw_domain *hw_dom = resctrl_to_arch_dom(d);
-       struct rdt_hw_resource *hw_res = resctrl_to_arch_res(r);
 
        for (i = m->low; i < m->high; i++)
                wrmsrl(hw_res->msr_base + i, hw_dom->ctrl_val[i]);
        return r->default_ctrl;
 }
 
-static void
-mba_wrmsr_intel(struct rdt_domain *d, struct msr_param *m,
-               struct rdt_resource *r)
+static void mba_wrmsr_intel(struct msr_param *m)
 {
+       struct rdt_hw_resource *hw_res = resctrl_to_arch_res(m->res);
+       struct rdt_hw_domain *hw_dom = resctrl_to_arch_dom(m->dom);
        unsigned int i;
-       struct rdt_hw_domain *hw_dom = resctrl_to_arch_dom(d);
-       struct rdt_hw_resource *hw_res = resctrl_to_arch_res(r);
 
        /*  Write the delay values for mba. */
        for (i = m->low; i < m->high; i++)
-               wrmsrl(hw_res->msr_base + i, delay_bw_map(hw_dom->ctrl_val[i], r));
+               wrmsrl(hw_res->msr_base + i, delay_bw_map(hw_dom->ctrl_val[i], m->res));
 }
 
-static void
-cat_wrmsr(struct rdt_domain *d, struct msr_param *m, struct rdt_resource *r)
+static void cat_wrmsr(struct msr_param *m)
 {
+       struct rdt_hw_resource *hw_res = resctrl_to_arch_res(m->res);
+       struct rdt_hw_domain *hw_dom = resctrl_to_arch_dom(m->dom);
        unsigned int i;
-       struct rdt_hw_domain *hw_dom = resctrl_to_arch_dom(d);
-       struct rdt_hw_resource *hw_res = resctrl_to_arch_res(r);
 
        for (i = m->low; i < m->high; i++)
                wrmsrl(hw_res->msr_base + i, hw_dom->ctrl_val[i]);
        struct msr_param *m = arg;
 
        hw_res = resctrl_to_arch_res(m->res);
-       hw_res->msr_update(m->dom, m, m->res);
+       hw_res->msr_update(m);
 }
 
 /*
        hw_dom->ctrl_val = dc;
        setup_default_ctrlval(r, dc);
 
+       m.res = r;
        m.dom = d;
        m.low = 0;
        m.high = hw_res->num_closid;
-       hw_res->msr_update(d, &m, r);
+       hw_res->msr_update(&m);
        return 0;
 }