[PATCH] libertas: sparse fixes
authorDan Williams <dcbw@redhat.com>
Fri, 11 May 2007 03:09:33 +0000 (23:09 -0400)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 11 May 2007 18:54:55 +0000 (14:54 -0400)
Fix various issues reported by sparse.

Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/libertas/ioctl.c

index 42dfd45890c267195a5c84fa456762ff64c32633..a8f76c35899240837ba6aadb47f696a14a52d7b2 100644 (file)
@@ -680,6 +680,7 @@ static int wlan_fwt_list_neighbor_ioctl(wlan_private * priv, struct ifreq *req)
  */
 static int wlan_fwt_cleanup_ioctl(wlan_private * priv, struct ifreq *req)
 {
+       struct iwreq *wrq = (struct iwreq *)req;
        static struct cmd_ds_fwt_access fwt_access;
        int ret;
 
@@ -695,7 +696,7 @@ static int wlan_fwt_cleanup_ioctl(wlan_private * priv, struct ifreq *req)
                                    (void *)&fwt_access);
 
        if (ret == 0)
-               req->ifr_data = (char *)(le32_to_cpu(fwt_access.references));
+               wrq->u.param.value = le32_to_cpu(fwt_access.references);
        else
                return -EFAULT;
 
@@ -711,6 +712,7 @@ static int wlan_fwt_cleanup_ioctl(wlan_private * priv, struct ifreq *req)
  */
 static int wlan_fwt_time_ioctl(wlan_private * priv, struct ifreq *req)
 {
+       struct iwreq *wrq = (struct iwreq *)req;
        static struct cmd_ds_fwt_access fwt_access;
        int ret;
 
@@ -726,7 +728,7 @@ static int wlan_fwt_time_ioctl(wlan_private * priv, struct ifreq *req)
                                    (void *)&fwt_access);
 
        if (ret == 0)
-               req->ifr_data = (char *)(le32_to_cpu(fwt_access.references));
+               wrq->u.param.value = le32_to_cpu(fwt_access.references);
        else
                return -EFAULT;
 
@@ -742,6 +744,7 @@ static int wlan_fwt_time_ioctl(wlan_private * priv, struct ifreq *req)
  */
 static int wlan_mesh_get_ttl_ioctl(wlan_private * priv, struct ifreq *req)
 {
+       struct iwreq *wrq = (struct iwreq *)req;
        struct cmd_ds_mesh_access mesh_access;
        int ret;
 
@@ -754,9 +757,8 @@ static int wlan_mesh_get_ttl_ioctl(wlan_private * priv, struct ifreq *req)
                                    cmd_option_waitforrsp, 0,
                                    (void *)&mesh_access);
 
-       if (ret == 0) {
-               req->ifr_data = (char *)(le32_to_cpu(mesh_access.data[0]));
-       }
+       if (ret == 0)
+               wrq->u.param.value = le32_to_cpu(mesh_access.data[0]);
        else
                return -EFAULT;
 
@@ -832,10 +834,9 @@ int libertas_do_ioctl(struct net_device *dev, struct ifreq *req, int cmd)
                /* The first 4 bytes of req->ifr_data is sub-ioctl number
                 * after 4 bytes sits the payload.
                 */
-               subcmd = wrq->u.data.flags;     //from wpa_supplicant subcmd
-
+               subcmd = wrq->u.data.flags;
                if (!subcmd)
-                       subcmd = (int)req->ifr_data;    //from iwpriv subcmd
+                       subcmd = (int)wrq->u.param.value;
 
                switch (subcmd) {
                case WLANSETREGION:
@@ -887,7 +888,7 @@ int libertas_do_ioctl(struct net_device *dev, struct ifreq *req, int cmd)
                break;
 
        case WLAN_SETNONE_GETONEINT:
-               switch ((int)req->ifr_data) {
+               switch (wrq->u.param.value) {
                case WLANGETREGION:
                        pdata = (int *)wrq->u.name;
                        *pdata = (int)adapter->regioncode;