diff options
author | Christophe Ricard <christophe.ricard@gmail.com> | 2014-07-28 18:11:37 +0200 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2014-09-07 23:56:49 +0200 |
commit | 9ec1f58b9a8ecd72e675c33bfe8ceaf1bc0dc4c5 (patch) | |
tree | 2fb9ecdaf32008e74d08aabf5d5563cf78d8ad4f /drivers/nfc | |
parent | NFC: st21nfcb: Remove inappropriate kfree on a previously devm_kzalloc pointer (diff) | |
download | linux-9ec1f58b9a8ecd72e675c33bfe8ceaf1bc0dc4c5.tar.xz linux-9ec1f58b9a8ecd72e675c33bfe8ceaf1bc0dc4c5.zip |
NFC: st21nfca: Fix logic when setting session_id
If dev_num >= ST21NFCA_NUM_DEVICES, the driver was returning an incorrect
success return code.
Once dev_num is set, it was not stated as busy.
Signed-off-by: Christophe Ricard <christophe-h.ricard@st.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Diffstat (limited to 'drivers/nfc')
-rw-r--r-- | drivers/nfc/st21nfca/st21nfca.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/nfc/st21nfca/st21nfca.c b/drivers/nfc/st21nfca/st21nfca.c index b6ad8c902f8d..438e06e6eb6a 100644 --- a/drivers/nfc/st21nfca/st21nfca.c +++ b/drivers/nfc/st21nfca/st21nfca.c @@ -905,8 +905,11 @@ int st21nfca_hci_probe(void *phy_id, struct nfc_phy_ops *phy_ops, * persistent info to discriminate 2 identical chips */ dev_num = find_first_zero_bit(dev_mask, ST21NFCA_NUM_DEVICES); + if (dev_num >= ST21NFCA_NUM_DEVICES) - goto err_alloc_hdev; + return -ENODEV; + + set_bit(dev_num, dev_mask); scnprintf(init_data.session_id, sizeof(init_data.session_id), "%s%2x", "ST21AH", dev_num); |