staging: vt6656: iwctl.c: Rewrite siwrts funciton
authorMarcos Paulo de Souza <marcos.mage@gmail.com>
Wed, 28 Dec 2011 21:18:31 +0000 (21:18 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 Feb 2012 17:18:27 +0000 (09:18 -0800)
This function has the following issues:
Parameter info and extra are not used
Wrong error handling(the function not return -EINVAL when it
happens)

This patch simplifies this funtion, remove the not used parameters and
fix the error handilng.

Signed-off-by: Marcos Paulo de Souza <marcos.mage@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/vt6656/iwctl.c
drivers/staging/vt6656/iwctl.h
drivers/staging/vt6656/main_usb.c

index 4f33b0c..b24e531 100644 (file)
@@ -1010,27 +1010,19 @@ void iwctl_giwrate(struct net_device *dev,
 /*
  * Wireless Handler : set rts threshold
  */
-
 int iwctl_siwrts(struct net_device *dev,
-             struct iw_request_info *info,
-                        struct iw_param *wrq,
-             char *extra)
+                struct iw_param *wrq)
 {
-       PSDevice                pDevice = (PSDevice)netdev_priv(dev);
-       int rc = 0;
+       PSDevice pDevice = (PSDevice)netdev_priv(dev);
 
-    DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " SIOCSIWRTS \n");
+       if ((wrq->value < 0 || wrq->value > 2312) && !wrq->disabled)
+               return -EINVAL;
 
-       {
-           int rthr = wrq->value;
-           if(wrq->disabled)
-                       rthr = 2312;
-           if((rthr < 0) || (rthr > 2312)) {
-                       rc = -EINVAL;
-       }else {
-                   pDevice->wRTSThreshold = rthr;
-           }
-    }
+       else if (wrq->disabled)
+               pDevice->wRTSThreshold = 2312;
+
+       else
+               pDevice->wRTSThreshold = wrq->value;
 
        return 0;
 }
index bd38e9d..0c6e049 100644 (file)
@@ -113,10 +113,7 @@ void iwctl_giwrate(struct net_device *dev,
              char *extra);
 
 int iwctl_siwrts(struct net_device *dev,
-             struct iw_request_info *info,
-                        struct iw_param *wrq,
-             char *extra);
-
+                struct iw_param *wrq);
 
 int iwctl_giwrts(struct net_device *dev,
              struct iw_request_info *info,
index 33a451c..763e028 100644 (file)
@@ -1704,7 +1704,7 @@ static int  device_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) {
        // Set the desired RTS threshold
        case SIOCSIWRTS:
 
-               rc = iwctl_siwrts(dev, NULL, &(wrq->u.rts), NULL);
+               rc = iwctl_siwrts(dev, &(wrq->u.rts));
                break;
 
        // Get the current RTS threshold