Merge "net: usb: Handle interface suspend properly"
diff --git a/drivers/net/usb/rmnet_usb_ctrl.c b/drivers/net/usb/rmnet_usb_ctrl.c
index 1476bb3..c69bdc2 100644
--- a/drivers/net/usb/rmnet_usb_ctrl.c
+++ b/drivers/net/usb/rmnet_usb_ctrl.c
@@ -338,15 +338,6 @@
 	return retval;
 }
 
-int rmnet_usb_ctrl_suspend(struct rmnet_ctrl_dev *dev)
-{
-	if (work_busy(&dev->get_encap_work))
-		return -EBUSY;
-
-	usb_kill_anchored_urbs(&dev->rx_submitted);
-
-	return 0;
-}
 static int rmnet_usb_ctrl_alloc_rx(struct rmnet_ctrl_dev *dev)
 {
 	int	retval = -ENOMEM;
diff --git a/drivers/net/usb/rmnet_usb_data.c b/drivers/net/usb/rmnet_usb_data.c
index fdfe468..4a1423d 100644
--- a/drivers/net/usb/rmnet_usb_data.c
+++ b/drivers/net/usb/rmnet_usb_data.c
@@ -87,65 +87,35 @@
 {
 	struct usbnet		*unet;
 	struct rmnet_ctrl_dev	*dev;
-	int			retval = 0;
 
 	unet = usb_get_intfdata(iface);
-	if (!unet) {
-		pr_err("%s:data device not found\n", __func__);
-		retval = -ENODEV;
-		goto fail;
-	}
 
 	dev = (struct rmnet_ctrl_dev *)unet->data[1];
-	if (!dev) {
-		dev_err(&iface->dev, "%s: ctrl device not found\n",
-				__func__);
-		retval = -ENODEV;
-		goto fail;
-	}
 
-	retval = usbnet_suspend(iface, message);
-	if (!retval) {
-		retval = rmnet_usb_ctrl_suspend(dev);
-		iface->dev.power.power_state.event = message.event;
-	} else {
-		dev_dbg(&iface->dev,
-			"%s: device is busy can not suspend\n", __func__);
-	}
+	if (work_busy(&dev->get_encap_work))
+		return -EBUSY;
 
-fail:
-	return retval;
+	if (usbnet_suspend(iface, message))
+		return -EBUSY;
+
+	usb_kill_anchored_urbs(&dev->rx_submitted);
+
+	return 0;
 }
 
 static int rmnet_usb_resume(struct usb_interface *iface)
 {
 	int			retval = 0;
-	int			oldstate;
 	struct usbnet		*unet;
 	struct rmnet_ctrl_dev	*dev;
 
 	unet = usb_get_intfdata(iface);
-	if (!unet) {
-		pr_err("%s:data device not found\n", __func__);
-		retval = -ENODEV;
-		goto fail;
-	}
 
 	dev = (struct rmnet_ctrl_dev *)unet->data[1];
-	if (!dev) {
-		dev_err(&iface->dev, "%s: ctrl device not found\n", __func__);
-		retval = -ENODEV;
-		goto fail;
-	}
-	oldstate = iface->dev.power.power_state.event;
-	iface->dev.power.power_state.event = PM_EVENT_ON;
 
-	retval = usbnet_resume(iface);
-	if (!retval) {
-		if (oldstate & PM_EVENT_SUSPEND)
-			retval = rmnet_usb_ctrl_start_rx(dev);
-	}
-fail:
+	usbnet_resume(iface);
+	retval = rmnet_usb_ctrl_start_rx(dev);
+
 	return retval;
 }