af_iucv: wrong mapping of sent and confirmed skbs
commitf5738e2ef8upstream. When sending data through IUCV a MESSAGE COMPLETE interrupt signals that sent data memory can be freed or reused again. With commitf9c41a62bb"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>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
163cdc967a
commit
f6e39ac615
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user