Subject: linux-next: manual merge of the selinux tree with the keys tree

From: Stephen Rothwell <[email-masked]>
Date: Wed, 12 Feb 2020 10:35:48 +1100

Hi all,

Today's linux-next merge of the selinux tree got conflicts in:

  security/selinux/include/security.h
  security/selinux/ss/services.c

between commit:

  87b14da5b76a ("security/selinux: Add support for new key permissions")

from the keys tree and commit:

  7470d0d13fb6 ("selinux: allow kernfs symlinks to inherit parent directory context")

from the selinux tree.

I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging.  You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.

-- 
Cheers,
Stephen Rothwell

diff --cc security/selinux/include/security.h
index 5353cd346433,d6036c018cf2..000000000000
--- a/security/selinux/include/security.h
+++ b/security/selinux/include/security.h
@@@ -79,7 -79,7 +79,8 @@@ enum 
  	POLICYDB_CAPABILITY_ALWAYSNETWORK,
  	POLICYDB_CAPABILITY_CGROUPSECLABEL,
  	POLICYDB_CAPABILITY_NNP_NOSUID_TRANSITION,
 +	POLICYDB_CAPABILITY_KEYPERMS,
+ 	POLICYDB_CAPABILITY_GENFS_SECLABEL_SYMLINKS,
  	__POLICYDB_CAPABILITY_MAX
  };
  #define POLICYDB_CAPABILITY_MAX (__POLICYDB_CAPABILITY_MAX - 1)
@@@ -210,13 -214,13 +215,20 @@@ static inline bool selinux_policycap_nn
  	return state->policycap[POLICYDB_CAPABILITY_NNP_NOSUID_TRANSITION];
  }
  
 +static inline bool selinux_policycap_key_perms(void)
 +{
 +	struct selinux_state *state = &selinux_state;
 +
 +	return state->policycap[POLICYDB_CAPABILITY_KEYPERMS];
 +}
 +
+ static inline bool selinux_policycap_genfs_seclabel_symlinks(void)
+ {
+ 	struct selinux_state *state = &selinux_state;
+ 
+ 	return state->policycap[POLICYDB_CAPABILITY_GENFS_SECLABEL_SYMLINKS];
+ }
+ 
  int security_mls_enabled(struct selinux_state *state);
  int security_load_policy(struct selinux_state *state,
  			 void *data, size_t len);
diff --cc security/selinux/ss/services.c
index 7527292fb31a,e310f8ee21a1..000000000000
--- a/security/selinux/ss/services.c
+++ b/security/selinux/ss/services.c
@@@ -74,7 -73,7 +73,8 @@@ const char *selinux_policycap_names[__P
  	"always_check_network",
  	"cgroup_seclabel",
  	"nnp_nosuid_transition",
- 	"key_perms"
++	"key_perms",
+ 	"genfs_seclabel_symlinks"
  };
  
  static struct selinux_ss selinux_ss;