aboutsummaryrefslogtreecommitdiffstats
path: root/net/nfc
diff options
context:
space:
mode:
authorEric Lapuyade <eric.lapuyade@linux.intel.com>2012-10-17 10:47:13 -0400
committerSamuel Ortiz <sameo@linux.intel.com>2012-11-19 17:56:58 -0500
commit07887e92205c5808820de0be53bf326b4019d060 (patch)
tree68976461b293d8b77fc8efe4e40456b8903c8d20 /net/nfc
parentac46ba4384d2c44c56702d0da591696045fba682 (diff)
NFC: Fix hci_connect_gate() when a pre-opened pipe is passed
In some cases, pre-opened pipes don't stay open when a clear all pipes command is sent. They stay created however. Therefore, one can never assume that such a pipe is already open. As re-opening a pipe seems not to be a problem, we do that now. Signed-off-by: Eric Lapuyade <eric.lapuyade@intel.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Diffstat (limited to 'net/nfc')
-rw-r--r--net/nfc/hci/command.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/net/nfc/hci/command.c b/net/nfc/hci/command.c
index 07659cfd6d7b..7d99410e6c1a 100644
--- a/net/nfc/hci/command.c
+++ b/net/nfc/hci/command.c
@@ -344,7 +344,7 @@ int nfc_hci_connect_gate(struct nfc_hci_dev *hdev, u8 dest_host, u8 dest_gate,
344 return -EADDRINUSE; 344 return -EADDRINUSE;
345 345
346 if (pipe != NFC_HCI_INVALID_PIPE) 346 if (pipe != NFC_HCI_INVALID_PIPE)
347 goto pipe_is_open; 347 goto open_pipe;
348 348
349 switch (dest_gate) { 349 switch (dest_gate) {
350 case NFC_HCI_LINK_MGMT_GATE: 350 case NFC_HCI_LINK_MGMT_GATE:
@@ -361,6 +361,7 @@ int nfc_hci_connect_gate(struct nfc_hci_dev *hdev, u8 dest_host, u8 dest_gate,
361 break; 361 break;
362 } 362 }
363 363
364open_pipe:
364 r = nfc_hci_open_pipe(hdev, pipe); 365 r = nfc_hci_open_pipe(hdev, pipe);
365 if (r < 0) { 366 if (r < 0) {
366 if (pipe_created) 367 if (pipe_created)
@@ -371,7 +372,6 @@ int nfc_hci_connect_gate(struct nfc_hci_dev *hdev, u8 dest_host, u8 dest_gate,
371 return r; 372 return r;
372 } 373 }
373 374
374pipe_is_open:
375 hdev->gate2pipe[dest_gate] = pipe; 375 hdev->gate2pipe[dest_gate] = pipe;
376 376
377 return 0; 377 return 0;