From 4f5eb26f28ee90d64ee646b84435d593acce8bf6 Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@openwrt.org>
Date: Sat, 9 Jul 2005 16:17:12 +0000
Subject: [PATCH] fix some small bugs in wificonf and wlcompat

SVN-Revision: 1385
---
 openwrt/package/wificonf/wificonf.c              | 7 -------
 openwrt/target/linux/package/wlcompat/wlcompat.c | 8 +++-----
 2 files changed, 3 insertions(+), 12 deletions(-)

diff --git a/openwrt/package/wificonf/wificonf.c b/openwrt/package/wificonf/wificonf.c
index acb5522cc8..e1df6675e2 100644
--- a/openwrt/package/wificonf/wificonf.c
+++ b/openwrt/package/wificonf/wificonf.c
@@ -36,21 +36,18 @@
 	do { \
 		ERR_SET_EXT(rname, request); \
 		fprintf(stderr, "    too few arguments.\n"); \
-		return; \
 	} while(0)
 
 #define ABORT_ARG_TYPE(rname, request, arg) \
 	do { \
 		ERR_SET_EXT(rname, request); \
 		fprintf(stderr, "    invalid argument \"%s\".\n", arg); \
-		return; \
 	} while(0)
 
 #define ABORT_ARG_SIZE(rname, request, max) \
 	do { \
 		ERR_SET_EXT(rname, request); \
 		fprintf(stderr, "    argument too big (max %d)\n", max); \
-		return; \
 	} while(0)
 
 /*------------------------------------------------------------------*/
@@ -64,7 +61,6 @@
 		ERR_SET_EXT(rname, request); \
 		fprintf(stderr, "    SET failed on device %-1.16s ; %s.\n", \
 			ifname, strerror(errno)); \
-		return; \
 	} } while(0)
 
 /*------------------------------------------------------------------*/
@@ -78,7 +74,6 @@
 		ERR_SET_EXT(rname, request); \
 		fprintf(stderr, "    GET failed on device %-1.16s ; %s.\n", \
 			ifname, strerror(errno)); \
-		return; \
 	} } while(0)
 
 char *prefix;
@@ -115,8 +110,6 @@ int bcom_ioctl(int skfd, char *ifname, int cmd, void *buf, int len)
 	strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
 
 	ret = ioctl(skfd, SIOCDEVPRIVATE, &ifr);
-	if (ret < 0)
-		fprintf(stderr, "bcom_ioctl [cmd=%d, buf=%08x, len=%d] failed: %d\n", cmd, buf, len, ret);
 
 	return ret;
 }
diff --git a/openwrt/target/linux/package/wlcompat/wlcompat.c b/openwrt/target/linux/package/wlcompat/wlcompat.c
index 652a3681bc..e96c867923 100644
--- a/openwrt/target/linux/package/wlcompat/wlcompat.c
+++ b/openwrt/target/linux/package/wlcompat/wlcompat.c
@@ -412,8 +412,7 @@ static int wlcompat_ioctl(struct net_device *dev,
 		{
 			int radio;
 
-			if (wl_ioctl(dev, WLC_GET_RADIO, &radio, sizeof(int)) < 0)
-				return -EINVAL;
+			wl_ioctl(dev, WLC_GET_RADIO, &radio, sizeof(int));
 			
 			if (wl_get_val(dev, "qtxpower", &(wrqu->txpower.value), sizeof(int)) < 0)
 				return -EINVAL;
@@ -431,10 +430,9 @@ static int wlcompat_ioctl(struct net_device *dev,
 			/* This is weird: WLC_SET_RADIO with 1 as argument disables the radio */
 			int radio = wrqu->txpower.disabled;
 
-			if (wl_ioctl(dev, WLC_SET_RADIO, &radio, sizeof(int)) < 0)
-				return -EINVAL;
+			wl_ioctl(dev, WLC_SET_RADIO, &radio, sizeof(int));
 			
-			if (!wrqu->txpower.disabled) {
+			if (!wrqu->txpower.disabled && (wrqu->txpower.value > 0)) {
 				int value;
 				
 				if (wl_get_val(dev, "qtxpower", &value, sizeof(int)) < 0)
-- 
2.30.2