diff options
Diffstat (limited to 'security/device_cgroup.c')
| -rw-r--r-- | security/device_cgroup.c | 19 | 
1 files changed, 16 insertions, 3 deletions
diff --git a/security/device_cgroup.c b/security/device_cgroup.c index 7d0f8f7431ff..43ab0ad45c1b 100644 --- a/security/device_cgroup.c +++ b/security/device_cgroup.c @@ -15,6 +15,8 @@  #include <linux/rcupdate.h>  #include <linux/mutex.h> +#ifdef CONFIG_CGROUP_DEVICE +  static DEFINE_MUTEX(devcgroup_mutex);  enum devcg_behavior { @@ -792,7 +794,7 @@ struct cgroup_subsys devices_cgrp_subsys = {  };  /** - * __devcgroup_check_permission - checks if an inode operation is permitted + * devcgroup_legacy_check_permission - checks if an inode operation is permitted   * @dev_cgroup: the dev cgroup to be tested against   * @type: device type   * @major: device major number @@ -801,7 +803,7 @@ struct cgroup_subsys devices_cgrp_subsys = {   *   * returns 0 on success, -EPERM case the operation is not permitted   */ -static int __devcgroup_check_permission(short type, u32 major, u32 minor, +static int devcgroup_legacy_check_permission(short type, u32 major, u32 minor,  					short access)  {  	struct dev_cgroup *dev_cgroup; @@ -825,6 +827,10 @@ static int __devcgroup_check_permission(short type, u32 major, u32 minor,  	return 0;  } +#endif /* CONFIG_CGROUP_DEVICE */ + +#if defined(CONFIG_CGROUP_DEVICE) || defined(CONFIG_CGROUP_BPF) +  int devcgroup_check_permission(short type, u32 major, u32 minor, short access)  {  	int rc = BPF_CGROUP_RUN_PROG_DEVICE_CGROUP(type, major, minor, access); @@ -832,6 +838,13 @@ int devcgroup_check_permission(short type, u32 major, u32 minor, short access)  	if (rc)  		return -EPERM; -	return __devcgroup_check_permission(type, major, minor, access); +	#ifdef CONFIG_CGROUP_DEVICE +	return devcgroup_legacy_check_permission(type, major, minor, access); + +	#else /* CONFIG_CGROUP_DEVICE */ +	return 0; + +	#endif /* CONFIG_CGROUP_DEVICE */  }  EXPORT_SYMBOL(devcgroup_check_permission); +#endif /* defined(CONFIG_CGROUP_DEVICE) || defined(CONFIG_CGROUP_BPF) */  |