"usb_wwan: error case of resume" (16871dcac) is buggy

From: Jiri Kosina
Date: Sun Mar 20 2011 - 20:36:55 EST


Hi,

the commit in subject make the kernel with CONFIG_PM_RUNTIME unset fail
during compilation, as struct dev_pm_info doesn't have whole bunch of
members in such case.

The commit in question adds this code:

/* we have to throw away the rest */
do {
unbusy_queued_urb(urb, portdata);
//extremely dirty
atomic_dec(&port->serial->interface->dev.power.usage_count);
} while ((urb = usb_get_from_anchor(&portdata->delayed)));

The 'extermely dirty' comment makes me a bit nervous whether the patch
below is correct or some more thinking would be necessary.



From: Jiri Kosina <jkosina@xxxxxxx>
Subject: [PATCH] USB: usb_wvan: fix compilation for !CONFIG_PM_RUNTIME case

With CONFIG_PM_RUNTIME unset, struct dev_pm_info doesn't have
usage count which is used only for run-time power management
purposes.

Signed-off-by: Jiri Kosina <jkosina@xxxxxxx>
---
drivers/usb/serial/usb_wwan.c | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/drivers/usb/serial/usb_wwan.c b/drivers/usb/serial/usb_wwan.c
index a65ddd5..8b456dc 100644
--- a/drivers/usb/serial/usb_wwan.c
+++ b/drivers/usb/serial/usb_wwan.c
@@ -698,8 +698,10 @@ static void play_delayed(struct usb_serial_port *port)
/* we have to throw away the rest */
do {
unbusy_queued_urb(urb, portdata);
- //extremely dirty
+#ifdef CONFIG_PM_RUNTIME
+ /* extremely dirty */
atomic_dec(&port->serial->interface->dev.power.usage_count);
+#endif
} while ((urb = usb_get_from_anchor(&portdata->delayed)));
break;
}
--
1.7.3.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/