Skip to content

Commit

Permalink
NFC: Fix hci_connect_gate() when a pre-opened pipe is passed
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Eric Lapuyade authored and Samuel Ortiz committed Nov 19, 2012
1 parent ac46ba4 commit 07887e9
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions net/nfc/hci/command.c
Original file line number Diff line number Diff line change
Expand Up @@ -344,7 +344,7 @@ int nfc_hci_connect_gate(struct nfc_hci_dev *hdev, u8 dest_host, u8 dest_gate,
return -EADDRINUSE;

if (pipe != NFC_HCI_INVALID_PIPE)
goto pipe_is_open;
goto open_pipe;

switch (dest_gate) {
case NFC_HCI_LINK_MGMT_GATE:
Expand All @@ -361,6 +361,7 @@ int nfc_hci_connect_gate(struct nfc_hci_dev *hdev, u8 dest_host, u8 dest_gate,
break;
}

open_pipe:
r = nfc_hci_open_pipe(hdev, pipe);
if (r < 0) {
if (pipe_created)
Expand All @@ -371,7 +372,6 @@ int nfc_hci_connect_gate(struct nfc_hci_dev *hdev, u8 dest_host, u8 dest_gate,
return r;
}

pipe_is_open:
hdev->gate2pipe[dest_gate] = pipe;

return 0;
Expand Down

0 comments on commit 07887e9

Please sign in to comment.