diff --git a/net/iucv/af_iucv.c b/net/iucv/af_iucv.c index 3d0424e4a..7c73faa53 100755 --- a/net/iucv/af_iucv.c +++ b/net/iucv/af_iucv.c @@ -359,8 +359,8 @@ static void iucv_sever_path(struct sock *sk, int with_user_data) struct iucv_sock *iucv = iucv_sk(sk); struct iucv_path *path = iucv->path; - /* Whoever resets the path pointer, must sever and free it. */ - if (xchg(&iucv->path, NULL)) { + if (iucv->path) { + iucv->path = NULL; if (with_user_data) { low_nmcpy(user_data, iucv->src_name); high_nmcpy(user_data, iucv->dst_name);