Skip to content

Commit 818f644

Browse files
committed
Merge branches 'for-next/misc' and 'for-next/mpam' into for-next/core
* for-next/misc: : Miscellaneous cleanups/fixes virt: arm-cca-guest: fix error check for RSI_INCOMPLETE arm64/hwcap: Include kernel-hwcap.h in list of generated files * for-next/mpam: : Fix an unmount->remount problem with the CDP emulation, uninitialised : variable and checker warnings arm_mpam: resctrl: Make resctrl_mon_ctx_waiters static arm_mpam: resctrl: Fix the check for no monitor components found arm_mpam: resctrl: Fix MBA CDP alloc_capable handling on unmount
3 parents 480a9e5 + e534e9d + 4d5bbba commit 818f644

3 files changed

Lines changed: 13 additions & 3 deletions

File tree

arch/arm64/include/asm/Kbuild

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,5 @@ generic-y += parport.h
1717
generic-y += user.h
1818

1919
generated-y += cpucap-defs.h
20+
generated-y += kernel-hwcap.h
2021
generated-y += sysreg-defs.h

drivers/resctrl/mpam_resctrl.c

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
#include "mpam_internal.h"
2424

25-
DECLARE_WAIT_QUEUE_HEAD(resctrl_mon_ctx_waiters);
25+
static DECLARE_WAIT_QUEUE_HEAD(resctrl_mon_ctx_waiters);
2626

2727
/*
2828
* The classes we've picked to map to resctrl resources, wrapped
@@ -220,10 +220,18 @@ int resctrl_arch_set_cdp_enabled(enum resctrl_res_level rid, bool enable)
220220
if (cdp_enabled && !mpam_resctrl_controls[RDT_RESOURCE_MBA].cdp_enabled)
221221
mpam_resctrl_controls[RDT_RESOURCE_MBA].resctrl_res.alloc_capable = false;
222222

223+
/*
224+
* If resctrl has attempted to enable CDP on MBA, re-enable MBA as two
225+
* configurations will be provided so there is no aliasing problem.
226+
*/
223227
if (mpam_resctrl_controls[RDT_RESOURCE_MBA].cdp_enabled &&
224228
mpam_resctrl_controls[RDT_RESOURCE_MBA].class)
225229
mpam_resctrl_controls[RDT_RESOURCE_MBA].resctrl_res.alloc_capable = true;
226230

231+
/* On unmount when CDP is disabled, re-enable MBA */
232+
if (!cdp_enabled && mpam_resctrl_controls[RDT_RESOURCE_MBA].class)
233+
mpam_resctrl_controls[RDT_RESOURCE_MBA].resctrl_res.alloc_capable = true;
234+
227235
if (enable) {
228236
if (mpam_partid_max < 1)
229237
return -EINVAL;
@@ -1399,7 +1407,7 @@ mpam_resctrl_alloc_domain(unsigned int cpu, struct mpam_resctrl_res *res)
13991407
}
14001408

14011409
if (r->mon_capable) {
1402-
struct mpam_component *any_mon_comp;
1410+
struct mpam_component *any_mon_comp = NULL;
14031411
struct mpam_resctrl_mon *mon;
14041412
enum resctrl_event_id eventid;
14051413

drivers/virt/coco/arm-cca-guest/arm-cca-guest.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,8 @@ static int arm_cca_report_new(struct tsm_report *report, void *data)
157157
} while (info.result == RSI_INCOMPLETE &&
158158
info.offset < RSI_GRANULE_SIZE);
159159

160-
if (info.result != RSI_SUCCESS) {
160+
/* Break out in case of failure */
161+
if (info.result != RSI_SUCCESS && info.result != RSI_INCOMPLETE) {
161162
ret = -ENXIO;
162163
token_size = 0;
163164
goto exit_free_granule_page;

0 commit comments

Comments
 (0)