staging: brcm80211: bugfix for fullmac return codes
authorRoland Vossen <rvossen@broadcom.com>
Tue, 3 May 2011 09:35:03 +0000 (11:35 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 3 May 2011 19:42:28 +0000 (12:42 -0700)
Some code paths in the fullmac driver did not return a negative value
on error. This has been corrected.

Cc: devel@linuxdriverproject.org
Cc: linux-wireless@vger.kernel.org
Cc: Brett Rudley <brudley@broadcom.com>
Cc: Henry Ptasinski <henryp@broadcom.com>
Cc: Roland Vossen <rvossen@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/brcm80211/brcmfmac/dhd_common.c
drivers/staging/brcm80211/brcmfmac/dhd_linux.c

index 8d5acb8..9eca208 100644 (file)
@@ -432,7 +432,7 @@ int dhd_ioctl(dhd_pub_t *dhd_pub, dhd_ioctl_t *ioc, void *buf, uint buflen)
 
        case DHD_GET_VERSION:
                if (buflen < sizeof(int))
-                       bcmerror = BCME_BUFTOOSHORT;
+                       bcmerror = -BCME_BUFTOOSHORT;
                else
                        *(int *)buf = DHD_IOCTL_VERSION;
                break;
index bb4fdc6..b43ac8a 100644 (file)
@@ -1699,7 +1699,7 @@ static int dhd_ioctl_entry(struct net_device *net, struct ifreq *ifr, int cmd)
 
        /* Copy the ioc control structure part of ioctl request */
        if (copy_from_user(&ioc, ifr->ifr_data, sizeof(wl_ioctl_t))) {
-               bcmerror = BCME_BADADDR;
+               bcmerror = -BCME_BADADDR;
                goto done;
        }
 
@@ -1715,11 +1715,11 @@ static int dhd_ioctl_entry(struct net_device *net, struct ifreq *ifr, int cmd)
                {
                        buf = kmalloc(buflen, GFP_ATOMIC);
                        if (!buf) {
-                               bcmerror = BCME_NOMEM;
+                               bcmerror = -BCME_NOMEM;
                                goto done;
                        }
                        if (copy_from_user(buf, ioc.buf, buflen)) {
-                               bcmerror = BCME_BADADDR;
+                               bcmerror = -BCME_BADADDR;
                                goto done;
                        }
                }
@@ -1728,12 +1728,12 @@ static int dhd_ioctl_entry(struct net_device *net, struct ifreq *ifr, int cmd)
        /* To differentiate between wl and dhd read 4 more byes */
        if ((copy_from_user(&driver, (char *)ifr->ifr_data + sizeof(wl_ioctl_t),
                            sizeof(uint)) != 0)) {
-               bcmerror = BCME_BADADDR;
+               bcmerror = -BCME_BADADDR;
                goto done;
        }
 
        if (!capable(CAP_NET_ADMIN)) {
-               bcmerror = BCME_EPERM;
+               bcmerror = -BCME_EPERM;
                goto done;
        }