Am Dienstag, 30. November 2010, 11:18:05 schrieb Stefan Seyfried:
On Tue, 30 Nov 2010 11:10:22 +0100 Stefan Seyfried <stefan.seyfried@googlemail.com> wrote:
Hi,
since a few days (probably since the update to 2.6.37-rc), i'm getting those all the time when using my Bluetooth mouse:
[280835.709269] btusb_bulk_complete: hci0 urb ffff880078654f00 failed to resubmit (1)
Has this something to do with runtime power management? It seems like it's always 3 messages about 2 or 3 seconds after the last mouse movement.
And indeed, "echo on > /sys/bus/usb/drivers/btusb/4-2\:1.0/power/control" makes it go away. However, is this a good idea? And is "auto" for that feature a good idea if it leads to constant syslog spamming? Or are those "failed to resubmit" messages mere debug output and thus should not be logged at all unless some debugging option is chosen? --
Hi, as no good dead goes unpunished, here's a patch to test. Thanks Oliver From 5667a03459b9b4b5cb33259115b57626bcc4ccf3 Mon Sep 17 00:00:00 2001 From: Oliver Neukum <oliver@neukum.org> Date: Tue, 30 Nov 2010 14:34:47 +0100 Subject: [PATCH] Bluetooth:btusb: Fix log spamming due to autosuspend If a device is autosuspend an inability to resubmit URBs is to be expected. Fix it by checking the error return. Signed-off-by: Oliver Neukum <oneukum@suse.de> --- drivers/bluetooth/btusb.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c index ab3894f..eb2ca82 100644 --- a/drivers/bluetooth/btusb.c +++ b/drivers/bluetooth/btusb.c @@ -238,7 +238,7 @@ static void btusb_intr_complete(struct urb *urb) usb_anchor_urb(urb, &data->intr_anchor); err = usb_submit_urb(urb, GFP_ATOMIC); - if (err < 0) { + if (err < 0 && err != -EPERM) { BT_ERR("%s urb %p failed to resubmit (%d)", hdev->name, urb, -err); usb_unanchor_urb(urb); @@ -322,7 +322,7 @@ static void btusb_bulk_complete(struct urb *urb) usb_mark_last_busy(data->udev); err = usb_submit_urb(urb, GFP_ATOMIC); - if (err < 0) { + if (err < 0 && err != -EPERM) { BT_ERR("%s urb %p failed to resubmit (%d)", hdev->name, urb, -err); usb_unanchor_urb(urb); @@ -411,7 +411,7 @@ static void btusb_isoc_complete(struct urb *urb) usb_anchor_urb(urb, &data->isoc_anchor); err = usb_submit_urb(urb, GFP_ATOMIC); - if (err < 0) { + if (err < 0 && err != -EPERM) { BT_ERR("%s urb %p failed to resubmit (%d)", hdev->name, urb, -err); usb_unanchor_urb(urb); -- 1.7.1 -- To unsubscribe, e-mail: opensuse-kernel+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-kernel+help@opensuse.org