@@ -60,6 +60,7 @@ struct misc_cg {
};
struct misc_cg *root_misc(void);
+struct misc_cg *parent_misc(struct misc_cg *cg);
unsigned long misc_cg_res_total_usage(enum misc_res_type type);
int misc_cg_set_capacity(enum misc_res_type type, unsigned long capacity);
int misc_cg_try_charge(enum misc_res_type type, struct misc_cg *cg,
@@ -112,6 +113,11 @@ static inline struct misc_cg *root_misc(void)
return NULL;
}
+static inline struct misc_cg *parent_misc(struct misc_cg *cg)
+{
+ return NULL;
+}
+
static inline unsigned long misc_cg_res_total_usage(enum misc_res_type type)
{
return 0;
@@ -63,10 +63,11 @@ EXPORT_SYMBOL_GPL(root_misc);
* * struct misc_cg* - Parent of the @cgroup.
* * %NULL - If @cgroup is null or the passed cgroup does not have a parent.
*/
-static struct misc_cg *parent_misc(struct misc_cg *cgroup)
+struct misc_cg *parent_misc(struct misc_cg *cgroup)
{
return cgroup ? css_misc(cgroup->css.parent) : NULL;
}
+EXPORT_SYMBOL_GPL(parent_misc);
/**
* valid_type() - Check if @type is valid or not.
To manage the SGX EPC memory via the misc controller, the SGX driver will need to be able to iterate over the misc cgroup hierarchy. Make parent_misc() available for a future patch that will utilize it. Signed-off-by: Kristen Carlson Accardi <kristen@linux.intel.com> --- include/linux/misc_cgroup.h | 6 ++++++ kernel/cgroup/misc.c | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-)