--- x/net/nfc/nci/core.c +++ c/net/nfc/nci/core.c @@ -541,8 +541,10 @@ static int nci_open_device(struct nci_de skb_queue_purge(&ndev->rx_q); skb_queue_purge(&ndev->tx_q); - ndev->ops->close(ndev); ndev->flags = 0; + mutex_unlock(&ndev->req_lock); + ndev->ops->close(ndev); + return rc; } done: