usbnet: sierra_net: apply introduced usb command APIs
authorMing Lei <ming.lei@canonical.com>
Wed, 24 Oct 2012 19:47:02 +0000 (19:47 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 26 Oct 2012 07:36:52 +0000 (03:36 -0400)
Acked-by: Oliver Neukum <oneukum@suse.de>
Signed-off-by: Ming Lei <ming.lei@canonical.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/usb/sierra_net.c

index c27d277..eb5c7a8 100644 (file)
@@ -311,10 +311,9 @@ static int sierra_net_send_cmd(struct usbnet *dev,
        struct sierra_net_data *priv = sierra_net_get_private(dev);
        int  status;
 
-       status = usb_control_msg(dev->udev, usb_sndctrlpipe(dev->udev, 0),
-                       USB_CDC_SEND_ENCAPSULATED_COMMAND,
-                       USB_DIR_OUT|USB_TYPE_CLASS|USB_RECIP_INTERFACE, 0,
-                       priv->ifnum, cmd, cmdlen, USB_CTRL_SET_TIMEOUT);
+       status = usbnet_write_cmd(dev, USB_CDC_SEND_ENCAPSULATED_COMMAND,
+                                 USB_DIR_OUT|USB_TYPE_CLASS|USB_RECIP_INTERFACE,
+                                 0, priv->ifnum, cmd, cmdlen);
 
        if (status != cmdlen && status != -ENODEV)
                netdev_err(dev->net, "Submit %s failed %d\n", cmd_name, status);
@@ -632,32 +631,22 @@ static int sierra_net_change_mtu(struct net_device *net, int new_mtu)
 static int sierra_net_get_fw_attr(struct usbnet *dev, u16 *datap)
 {
        int result = 0;
-       u16 *attrdata;
-
-       attrdata = kmalloc(sizeof(*attrdata), GFP_KERNEL);
-       if (!attrdata)
-               return -ENOMEM;
-
-       result = usb_control_msg(
-                       dev->udev,
-                       usb_rcvctrlpipe(dev->udev, 0),
-                       /* _u8 vendor specific request */
-                       SWI_USB_REQUEST_GET_FW_ATTR,
-                       USB_DIR_IN | USB_TYPE_VENDOR,   /* __u8 request type */
-                       0x0000,         /* __u16 value not used */
-                       0x0000,         /* __u16 index  not used */
-                       attrdata,       /* char *data */
-                       sizeof(*attrdata),              /* __u16 size */
-                       USB_CTRL_SET_TIMEOUT);  /* int timeout */
-
-       if (result < 0) {
-               kfree(attrdata);
+       u16 attrdata;
+
+       result = usbnet_read_cmd(dev,
+                               /* _u8 vendor specific request */
+                               SWI_USB_REQUEST_GET_FW_ATTR,
+                               USB_DIR_IN | USB_TYPE_VENDOR,   /* __u8 request type */
+                               0x0000,         /* __u16 value not used */
+                               0x0000,         /* __u16 index  not used */
+                               &attrdata,      /* char *data */
+                               sizeof(attrdata)        /* __u16 size */
+                               );
+
+       if (result < 0)
                return -EIO;
-       }
-
-       *datap = le16_to_cpu(*attrdata);
 
-       kfree(attrdata);
+       *datap = le16_to_cpu(attrdata);
        return result;
 }