madwifi: Fix compile warnings
authoracinonyx <acinonyx@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sat, 12 Oct 2013 19:54:01 +0000 (19:54 +0000)
committeracinonyx <acinonyx@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sat, 12 Oct 2013 19:54:01 +0000 (19:54 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/packages@38373 3c298f89-4303-0410-b956-a3cf2f4a3e73

net/madwifi/patches/482-fix_enum-compare.patch [new file with mode: 0644]
net/madwifi/patches/483-fix_frame-larger-than.patch [new file with mode: 0644]

diff --git a/net/madwifi/patches/482-fix_enum-compare.patch b/net/madwifi/patches/482-fix_enum-compare.patch
new file mode 100644 (file)
index 0000000..2bcab33
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/ath/if_ath.c
++++ b/ath/if_ath.c
+@@ -2560,7 +2560,7 @@ static int ath_setintmit(struct ath_soft
+       switch(sc->sc_intmit) {
+               case -1:
+-                      if (sc->sc_opmode != IEEE80211_M_MONITOR)
++                      if (sc->sc_opmode != HAL_M_MONITOR)
+                               val = 1;
+                       else
+                               val = 0;
diff --git a/net/madwifi/patches/483-fix_frame-larger-than.patch b/net/madwifi/patches/483-fix_frame-larger-than.patch
new file mode 100644 (file)
index 0000000..3b7dea2
--- /dev/null
@@ -0,0 +1,80 @@
+--- a/net80211/ieee80211_skb.c
++++ b/net80211/ieee80211_skb.c
+@@ -108,7 +108,7 @@ static void skb_print_message(
+ {
+       va_list args;
+       char skb_count[32] = { '\0' };
+-      char expanded_message[1024] = { '\0' };
++      char *expanded_message;
+       if (show_counter) {
+ #ifdef IEEE80211_DEBUG_REFCNT
+               snprintf(skb_count, 
+@@ -125,6 +125,7 @@ static void skb_print_message(
+       }
+       va_start(args, message);
++      expanded_message = kzalloc(1024, GFP_KERNEL);
+       vsnprintf(expanded_message, sizeof(expanded_message), message, args);
+ #ifdef IEEE80211_DEBUG_REFCNT
+       printk(KERN_DEBUG "%s: %s%s:%d -> %s:%d %s\n",
+@@ -138,6 +139,7 @@ static void skb_print_message(
+ #endif
+               func2, line2,
+               expanded_message);
++      kfree(expanded_message);
+       va_end(args);
+ }
+--- a/net80211/ieee80211_wireless.c
++++ b/net80211/ieee80211_wireless.c
+@@ -1647,17 +1647,21 @@ ieee80211_ioctl_iwaplist(struct net_devi
+ {
+       struct ieee80211vap *vap = netdev_priv(dev);
+       struct ieee80211com *ic = vap->iv_ic;
+-      struct waplistreq req;          /* XXX off stack */
++      struct waplistreq *req;
+-      req.vap = vap;
+-      req.i = 0;
+-      ieee80211_scan_iterate(ic, waplist_cb, &req);
++      req = kmalloc(sizeof(struct waplistreq), GFP_KERNEL);
++      if (!req)
++              return -ENOMEM;
++      req->vap = vap;
++      req->i = 0;
++      ieee80211_scan_iterate(ic, waplist_cb, req);
+-      data->length = req.i;
+-      memcpy(extra, &req.addr, req.i * sizeof(req.addr[0]));
++      data->length = req->i;
++      memcpy(extra, &req->addr, req->i * sizeof(req->addr[0]));
+       data->flags = 1;                /* signal quality present (sort of) */
+-      memcpy(extra + req.i * sizeof(req.addr[0]), &req.qual,
+-              req.i * sizeof(req.qual[0]));
++      memcpy(extra + req->i * sizeof(req->addr[0]), &req->qual,
++              req->i * sizeof(req->qual[0]));
++      kfree(req);
+       return 0;
+ }
+--- a/net80211/ieee80211_linux.c
++++ b/net80211/ieee80211_linux.c
+@@ -312,8 +312,9 @@ ieee80211_notify_sta_stats(struct ieee80
+       static const char *tag = "STA-TRAFFIC-STAT";
+       struct net_device *dev = vap->iv_dev;
+       union iwreq_data wreq;
+-      char buf[1024];
++      char *buf;
++      buf = kmalloc(1024, GFP_KERNEL);
+       snprintf(buf, sizeof(buf), "%s\nmac=" MAC_FMT "\nrx_packets=%u\nrx_bytes=%llu\n"
+                       "tx_packets=%u\ntx_bytes=%llu\n", tag,
+                       MAC_ADDR(ni->ni_macaddr), ni->ni_stats.ns_rx_data,
+@@ -323,6 +324,7 @@ ieee80211_notify_sta_stats(struct ieee80
+       memset(&wreq, 0, sizeof(wreq));
+       wreq.data.length = strlen(buf);
+       wireless_send_event(dev, IWEVCUSTOM, &wreq, buf);
++      kfree(buf);
+ }
+ void