Purge data added by lower layers (len and crc) in the head and tail of the frame during initial send. Now, the frame is correct to be resent. Signed-off-by: Waldemar Rymarkiewicz <waldemar.rymarkiewicz@xxxxxxxxx> --- net/nfc/hci/shdlc.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/net/nfc/hci/shdlc.c b/net/nfc/hci/shdlc.c index 8a5f034..30e353e 100644 --- a/net/nfc/hci/shdlc.c +++ b/net/nfc/hci/shdlc.c @@ -241,8 +241,9 @@ static void nfc_shdlc_requeue_ack_pending(struct nfc_shdlc *shdlc) pr_debug("ns reset to %d\n", shdlc->dnr); while ((skb = skb_dequeue_tail(&shdlc->ack_pending_q))) { - skb_pull(skb, 2); /* remove len+control */ - skb_trim(skb, skb->len - 2); /* remove crc */ + /* remove client head + shdlc control field */ + skb_pull(skb, shdlc->client_headroom + 1); + skb_trim(skb, skb->len - shdlc->client_tailroom); skb_queue_head(&shdlc->send_q, skb); } shdlc->ns = shdlc->dnr; -- 1.7.10 -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html