diff -aur old/src/wl/sys/wl_cfg80211.c new/src/wl/sys/wl_cfg80211.c --- old/src/wl/sys/wl_cfg80211.c 2011-10-23 03:56:55.000000000 +1100 +++ new/src/wl/sys/wl_cfg80211.c 2012-05-24 18:43:17.324465658 +1000 @@ -1466,7 +1466,10 @@ scb_val.val = 0; err = wl_dev_ioctl(dev, WLC_GET_RSSI, &scb_val, sizeof(scb_val_t)); if (err) { - WL_ERR(("Could not get rssi (%d)\n", err)); + if (err != -EINVAL) { + // Don't fill syslog with EINVAL error + WL_ERR(("Could not get rssi (%d)\n", err)); + } return err; } rssi = dtoh32(scb_val.val); diff -aur old/src/wl/sys/wl_linux.c new/src/wl/sys/wl_linux.c --- old/src/wl/sys/wl_linux.c 2011-10-23 03:56:55.000000000 +1100 +++ new/src/wl/sys/wl_linux.c 2012-05-24 18:43:17.324465658 +1000 @@ -1579,11 +1579,7 @@ } WL_LOCK(wl); - if (!capable(CAP_NET_ADMIN)) { - bcmerror = BCME_EPERM; - } else { - bcmerror = wlc_ioctl(wl->wlc, ioc.cmd, buf, ioc.len, wlif->wlcif); - } + bcmerror = wlc_ioctl(wl->wlc, ioc.cmd, buf, ioc.len, wlif->wlcif); WL_UNLOCK(wl); done1: diff -aur old/src/wl/sys/wl_cfg80211.c new/src/wl/sys/wl_cfg80211.c.new --- old/src/wl/sys/wl_cfg80211.c 2013-04-30 18:21:18.190170600 +0300 +++ new/src/wl/sys/wl_cfg80211.c.new 2013-04-30 18:33:04.516810699 +0300 @@ -2073,7 +2073,11 @@ ie = ies->data; ie_len = ies->len; beacon_interval = bss->beacon_interval; - cfg80211_put_bss(bss); + #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 9, 0) + cfg80211_put_bss(bss); + #else + cfg80211_put_bss(wl_to_wiphy(wl), bss); + #endif } tim = bcm_parse_tlvs(ie, ie_len, WLAN_EID_TIM);