diff
< 		if (copy_from_sockptr(&opt, optval, sizeof(u32))) {
---
> 		u8 tmp_buf[sizeof(u32)];
> 		if (optlen > sizeof(tmp_buf))
> 			return -EINVAL;
> 		if (copy_from_sockptr(tmp_buf, optval, optlen)) {
> 			return -EFAULT;
> 		}
> 		memcpy(&opt, tmp_buf, optlen);
