summaryrefslogtreecommitdiff
path: root/drivers/nfc
diff options
context:
space:
mode:
authorChristophe Ricard <christophe.ricard@gmail.com>2015-08-14 22:33:35 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-09-29 19:33:15 +0200
commit27c9e18257756f81c25143120ed952d3ab6ee780 (patch)
tree410a59a8dd0785754a2e62852bd85cdc88acf080 /drivers/nfc
parentf7836c1c3ce1b777fa1fb8c0b6fa759d1196aee2 (diff)
nfc: st-nci: Remove data from ack_pending_q when receiving a SYNC_ACK
commit 1d816b6eb513498aa28a0ff1e4db7632bded1707 upstream. When receiving a NDLC PCB_SYNC_ACK the pending data was never removed from ack_pending_q and cleared. Signed-off-by: Christophe Ricard <christophe-h.ricard@st.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/nfc')
-rw-r--r--drivers/nfc/st-nci/ndlc.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/nfc/st-nci/ndlc.c b/drivers/nfc/st-nci/ndlc.c
index 56c6a4cb4c96..bb08b16f45cf 100644
--- a/drivers/nfc/st-nci/ndlc.c
+++ b/drivers/nfc/st-nci/ndlc.c
@@ -171,6 +171,8 @@ static void llt_ndlc_rcv_queue(struct llt_ndlc *ndlc)
if ((pcb & PCB_TYPE_MASK) == PCB_TYPE_SUPERVISOR) {
switch (pcb & PCB_SYNC_MASK) {
case PCB_SYNC_ACK:
+ skb = skb_dequeue(&ndlc->ack_pending_q);
+ kfree_skb(skb);
del_timer_sync(&ndlc->t1_timer);
del_timer_sync(&ndlc->t2_timer);
ndlc->t2_active = false;