From: Mark A. Greer Date: Tue, 2 Sep 2014 22:12:43 +0000 (-0700) Subject: NFC: trf7970a: Cancel timer when error encountered X-Git-Tag: v4.14-rc1~6619^2~75^2~80^2~38 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6fb9edcb43d0b1bf0ac2aaf6ba488d105c45f477;p=platform%2Fkernel%2Flinux-rpi.git NFC: trf7970a: Cancel timer when error encountered Some paths leave a timer still running when trf7970a_send_err_upstream() is called. This can cause a timeout to occur in a subsequent transaction making it fail. Fix this by ensuring there is no timer running before sending an error upstream. Signed-off-by: Mark A. Greer Signed-off-by: Samuel Ortiz --- diff --git a/drivers/nfc/trf7970a.c b/drivers/nfc/trf7970a.c index 0f09278..00fb2ce 100644 --- a/drivers/nfc/trf7970a.c +++ b/drivers/nfc/trf7970a.c @@ -506,6 +506,8 @@ static void trf7970a_send_err_upstream(struct trf7970a *trf, int errno) { dev_dbg(trf->dev, "Error - state: %d, errno: %d\n", trf->state, errno); + cancel_delayed_work(&trf->timeout_work); + kfree_skb(trf->rx_skb); trf->rx_skb = ERR_PTR(errno);