static const char *tag = "STA-TRAFFIC-STAT";
struct net_device *dev = vap->iv_dev;
union iwreq_data wreq;
- char buf[1024];
+ char buf[256];
snprintf(buf, sizeof(buf), "%s\nmac=" MAC_FMT "\nrx_packets=%u\nrx_bytes=%llu\n"
"tx_packets=%u\ntx_bytes=%llu\n", tag,
{
va_list args;
char skb_count[32] = { '\0' };
- char expanded_message[1024] = { '\0' };
+ char expanded_message[256] = { '\0' };
if (show_counter) {
#ifdef IEEE80211_DEBUG_REFCNT
snprintf(skb_count,
{
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]));
return 0;
}