/* . Get or set fragmented interleave (SCTP_FRAGMENT_INTERLEAVE) (chapter and verse is quoted at sctp_setsockopt_fragment_interleave())  */
static int sctp_getsockopt_fragment_interleave(struct sock *sk, int len, char __user *optval, int __user *optlen)
/* . Get or set fragmented interleave (SCTP_FRAGMENT_INTERLEAVE) (chapter and verse is quoted at sctp_setsockopt_fragment_interleave())  */
static int sctp_getsockopt_fragment_interleave(struct sock *sk, int len, char __user *optval, int __user *optlen)
{
	int val;
	if (len < sizeof(int))
		return -EINVAL;
	len = sizeof(int);
	val = sctp_sk(sk)->frag_interleave;
	if (put_user(len, optlen))
		return -EFAULT;
	if (copy_to_user(optval, &val, len))
		return -EFAULT;
	return 0;
}