| From 17129ef876b7addeeac2fd12270e4f4fb0ea8f75 Mon Sep 17 00:00:00 2001 |
| From: Johan Hovold <johan@kernel.org> |
| Date: Mon, 13 Jan 2020 18:23:58 +0100 |
| Subject: [PATCH] NFC: pn533: fix bulk-message timeout |
| |
| commit a112adafcb47760feff959ee1ecd10b74d2c5467 upstream. |
| |
| The driver was doing a synchronous uninterruptible bulk-transfer without |
| using a timeout. This could lead to the driver hanging on probe due to a |
| malfunctioning (or malicious) device until the device is physically |
| disconnected. While sleeping in probe the driver prevents other devices |
| connected to the same hub from being added to (or removed from) the bus. |
| |
| An arbitrary limit of five seconds should be more than enough. |
| |
| Fixes: dbafc28955fa ("NFC: pn533: don't send USB data off of the stack") |
| Signed-off-by: Johan Hovold <johan@kernel.org> |
| Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| Signed-off-by: Jakub Kicinski <kuba@kernel.org> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/nfc/pn533/usb.c b/drivers/nfc/pn533/usb.c |
| index e897e4d768ef..d7a355d05368 100644 |
| --- a/drivers/nfc/pn533/usb.c |
| +++ b/drivers/nfc/pn533/usb.c |
| @@ -391,7 +391,7 @@ static int pn533_acr122_poweron_rdr(struct pn533_usb_phy *phy) |
| cmd, sizeof(cmd), false); |
| |
| rc = usb_bulk_msg(phy->udev, phy->out_urb->pipe, buffer, sizeof(cmd), |
| - &transferred, 0); |
| + &transferred, 5000); |
| kfree(buffer); |
| if (rc || (transferred != sizeof(cmd))) { |
| nfc_err(&phy->udev->dev, |
| -- |
| 2.7.4 |
| |