diff options
author | Ursula Braun <ursula.braun@de.ibm.com> | 2014-05-13 14:38:02 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-06-30 20:09:40 -0700 |
commit | f6e39ac6156b2b46584d2dbbd4c2ead95e883552 (patch) | |
tree | 179a25702634cc3f0eeb0ad7d444edb1c0b9f820 /net | |
parent | 163cdc967af5001829d377017bf1e4defb2879f4 (diff) | |
download | linux-3.10-f6e39ac6156b2b46584d2dbbd4c2ead95e883552.tar.gz linux-3.10-f6e39ac6156b2b46584d2dbbd4c2ead95e883552.tar.bz2 linux-3.10-f6e39ac6156b2b46584d2dbbd4c2ead95e883552.zip |
af_iucv: wrong mapping of sent and confirmed skbs
commit f5738e2ef88070ef1372e6e718124d88e9abe4ac upstream.
When sending data through IUCV a MESSAGE COMPLETE interrupt
signals that sent data memory can be freed or reused again.
With commit f9c41a62bba3f3f7ef3541b2a025e3371bcbba97
"af_iucv: fix recvmsg by replacing skb_pull() function" the
MESSAGE COMPLETE callback iucv_callback_txdone() identifies
the wrong skb as being confirmed, which leads to data corruption.
This patch fixes the skb mapping logic in iucv_callback_txdone().
Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com>
Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'net')
-rw-r--r-- | net/iucv/af_iucv.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/iucv/af_iucv.c b/net/iucv/af_iucv.c index 276aa86f366..215e9b008db 100644 --- a/net/iucv/af_iucv.c +++ b/net/iucv/af_iucv.c @@ -1829,7 +1829,7 @@ static void iucv_callback_txdone(struct iucv_path *path, spin_lock_irqsave(&list->lock, flags); while (list_skb != (struct sk_buff *)list) { - if (msg->tag != IUCV_SKB_CB(list_skb)->tag) { + if (msg->tag == IUCV_SKB_CB(list_skb)->tag) { this = list_skb; break; } |