diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c index 69520ad3d83b..d825f4a40b85 100644 --- a/net/xfrm/xfrm_state.c +++ b/net/xfrm/xfrm_state.c @@ -2271,7 +2271,7 @@ int xfrm_user_policy(struct sock *sk, int optname, sockptr_t optval, int optlen) struct xfrm_mgr *km; struct xfrm_policy *pol = NULL; - if (in_compat_syscall()) + if (!IS_ENABLED(CONFIG_ANDROID) && in_compat_syscall()) return -EOPNOTSUPP; if (sockptr_is_null(optval) && !optlen) { diff --git a/net/xfrm/xfrm_user.c b/net/xfrm/xfrm_user.c index 8e4fb35cfc06..cf35d68e97cc 100644 --- a/net/xfrm/xfrm_user.c +++ b/net/xfrm/xfrm_user.c @@ -2642,6 +2642,9 @@ static int xfrm_user_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh, const struct xfrm_link *link; int type, err; + if (!IS_ENABLED(CONFIG_ANDROID) && in_compat_syscall()) + return -EOPNOTSUPP; + type = nlh->nlmsg_type; if (type > XFRM_MSG_MAX) return -EINVAL;