If the previous nci_request (NCI reset) failed the setup function was being called anyway. It shouldn't be called if the reset failed. The result of the setup function is taken into consideration. If it fails the init should fail. Signed-off-by: Robert Dolca <robert.dolca@xxxxxxxxx> --- net/nfc/nci/core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/nfc/nci/core.c b/net/nfc/nci/core.c index 1a449ac..d2e7adf 100644 --- a/net/nfc/nci/core.c +++ b/net/nfc/nci/core.c @@ -365,8 +365,8 @@ static int nci_open_device(struct nci_dev *ndev) rc = __nci_request(ndev, nci_reset_req, 0, msecs_to_jiffies(NCI_RESET_TIMEOUT)); - if (ndev->ops->setup) - ndev->ops->setup(ndev); + if (!rc && ndev->ops->setup) + rc = ndev->ops->setup(ndev); if (!rc) { rc = __nci_request(ndev, nci_init_req, 0, -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html