The patch below does not apply to the 4.3-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <[email protected]>.

thanks,

greg k-h

------------------ original commit in Linus's tree ------------------

>From 92d108b6f4fcabf45df5fa9631cfc4ada35e9ab1 Mon Sep 17 00:00:00 2001
From: Christophe Ricard <[email protected]>
Date: Sun, 25 Oct 2015 22:54:31 +0100
Subject: [PATCH] NFC: st21nfca: Keep st21nfca_gates unchanged in load_session

We need to keep initial st_nci_gates values in order for
nfc_hci_dev_connect_gates to create and open pipe when necessary.

For example after a firmware update CLF pipes are cleared. Changing
pipe values in st21nfca_gates was causing nfc_hci_dev_connect_gates
not using accurate pipes value.

Cc: [email protected]
Signed-off-by: Christophe Ricard <[email protected]>
Signed-off-by: Samuel Ortiz <[email protected]>

diff --git a/drivers/nfc/st21nfca/core.c b/drivers/nfc/st21nfca/core.c
index 819a94af3964..b4451f83d000 100644
--- a/drivers/nfc/st21nfca/core.c
+++ b/drivers/nfc/st21nfca/core.c
@@ -190,14 +190,14 @@ static int st21nfca_hci_load_session(struct nfc_hci_dev 
*hdev)
                if (j < ARRAY_SIZE(st21nfca_gates) &&
                        st21nfca_gates[j].gate == info->dst_gate_id &&
                        ST21NFCA_DM_IS_PIPE_OPEN(info->pipe_state)) {
-                       st21nfca_gates[j].pipe = pipe_info[2];
+                       hdev->init_data.gates[j].pipe = pipe_info[2];
 
                        hdev->gate2pipe[st21nfca_gates[j].gate] =
-                                                       st21nfca_gates[j].pipe;
-                       hdev->pipes[st21nfca_gates[j].pipe].gate =
-                                                       st21nfca_gates[j].gate;
-                       hdev->pipes[st21nfca_gates[j].pipe].dest_host =
-                                                       info->src_host_id;
+                                               pipe_info[2];
+                       hdev->pipes[pipe_info[2]].gate =
+                                               st21nfca_gates[j].gate;
+                       hdev->pipes[pipe_info[2]].dest_host =
+                                               info->src_host_id;
                }
                kfree_skb(skb_pipe_info);
        }

--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to