diff --git a/drivers/virt/haven/hh_rm_core.c b/drivers/virt/haven/hh_rm_core.c index 6be1b9e17924..25d0ff88dde5 100644 --- a/drivers/virt/haven/hh_rm_core.c +++ b/drivers/virt/haven/hh_rm_core.c @@ -16,6 +16,7 @@ #include #include #include +#include #include #include @@ -667,6 +668,9 @@ static int hh_rm_populate_hyp_res(void) ret = hh_msgq_populate_cap_info(label, cap_id, HH_MSGQ_DIRECTION_RX, linux_irq); break; + case HH_RM_RES_TYPE_VCPU: + ret = hh_vcpu_populate_affinity_info(label, cap_id); + break; case HH_RM_RES_TYPE_DB_TX: break; case HH_RM_RES_TYPE_DB_RX: diff --git a/drivers/virt/haven/hh_rm_drv_private.h b/drivers/virt/haven/hh_rm_drv_private.h index 4aa68ef98ddb..b71d59353559 100644 --- a/drivers/virt/haven/hh_rm_drv_private.h +++ b/drivers/virt/haven/hh_rm_drv_private.h @@ -139,6 +139,7 @@ struct hh_vm_console_write_resp_payload { #define HH_RM_RES_TYPE_DB_RX 1 #define HH_RM_RES_TYPE_MQ_TX 2 #define HH_RM_RES_TYPE_MQ_RX 3 +#define HH_RM_RES_TYPE_VCPU 4 struct hh_vm_get_hyp_res_req_payload { u16 vmid; diff --git a/include/linux/sched.h b/include/linux/sched.h index 5b68f8f56b60..c129efc6cc0f 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -540,6 +540,15 @@ struct cpu_cycle_counter_cb { DECLARE_PER_CPU_READ_MOSTLY(int, sched_load_boost); +#ifdef CONFIG_QCOM_HYP_CORE_CTL +extern int hh_vcpu_populate_affinity_info(u32 cpu_index, u64 cap_id); +#else +static inline int hh_vcpu_populate_affinity_info(u32 cpu_index, u64 cap_id) +{ + return 0; +} +#endif /* CONFIG_QCOM_HYP_CORE_CTL */ + #ifdef CONFIG_SCHED_WALT extern void sched_exit(struct task_struct *p); extern int __weak