Hi Larry, >>> Suspend could fail for some platforms because >>> btusb_suspend==> btusb_stop_traffic ==> usb_kill_anchored_urbs, >>> >>> When btusb_bulk_complete returns before system suspend and resubmits an urb, >>> the system cannot enter suspend state. >>> >>> Signed-off-by: Champion Chen <champion_chen@xxxxxxxxxxxxxx> >>> Signed-off-by: Larry Finger <Larry.Finger@xxxxxxxxxxxx> >>> Cc: Stable <stable@xxxxxxxxxxxxxxx> >>> --- >>> Johan, >>> >>> To help Champion with the process, I have formatted the patch in >>> the correct manner. I hope I understand the issue correctly and >>> stated it in a coherent manner in the commit message. >>> >>> Larry >>> --- >>> drivers/bluetooth/btusb.c | 9 +++++++++ >>> 1 file changed, 9 insertions(+) >>> >>> diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c >>> index 292c38e..45a7211 100644 >>> --- a/drivers/bluetooth/btusb.c >>> +++ b/drivers/bluetooth/btusb.c >>> @@ -330,6 +330,9 @@ static void btusb_intr_complete(struct urb *urb) >>> BT_ERR("%s corrupted event packet", hdev->name); >>> hdev->stat.err_rx++; >>> } >>> + } else if (urb->status == -ENOENT) { >>> + /* Avoid suspend failed when usb_kill_urb */ >>> + return; >>> } >>> >>> if (!test_bit(BTUSB_INTR_RUNNING, &data->flags)) >>> @@ -417,6 +420,9 @@ static void btusb_bulk_complete(struct urb *urb) >>> urb->actual_length) < 0) { >>> BT_ERR("%s corrupted ACL packet", hdev->name); >>> hdev->stat.err_rx++; >>> + } else if (urb->status == -ENOENT) { >>> + /* Avoid suspend failed when usb_kill_urb */ >>> + return; >>> } >> >> this one is utterly bogus. Either urb->status is 0 or it is -ENOENT, but it will not be both. I think you put it to the wrong if clause. > > Thanks for the review. Obviously, you are correct. A revised patch will be sent soon. one other thing. Please let maintainers decide when a patch is useful for stable and when not. Patches need to go upstream first anyway. People spamming stable@xxxxxxxxxxxxxxx with patches that are not reviewed yet is pretty much a waste of time. Regards Marcel -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html