Skip to content

Commit 0fac9e2

Browse files
author
Kalle Valo
committed
Merge git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers.git
Mark Brown reported that there are conflicts in iwlwifi between the two trees so fix those now.
2 parents a39644b + a6127b4 commit 0fac9e2

File tree

32 files changed

+363
-242
lines changed

32 files changed

+363
-242
lines changed

drivers/net/wireless/ath/ath10k/pci.c

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3396,9 +3396,7 @@ static void ath10k_pci_remove(struct pci_dev *pdev)
33963396

33973397
MODULE_DEVICE_TABLE(pci, ath10k_pci_id_table);
33983398

3399-
#ifdef CONFIG_PM
3400-
3401-
static int ath10k_pci_pm_suspend(struct device *dev)
3399+
static __maybe_unused int ath10k_pci_pm_suspend(struct device *dev)
34023400
{
34033401
struct ath10k *ar = dev_get_drvdata(dev);
34043402
int ret;
@@ -3414,7 +3412,7 @@ static int ath10k_pci_pm_suspend(struct device *dev)
34143412
return ret;
34153413
}
34163414

3417-
static int ath10k_pci_pm_resume(struct device *dev)
3415+
static __maybe_unused int ath10k_pci_pm_resume(struct device *dev)
34183416
{
34193417
struct ath10k *ar = dev_get_drvdata(dev);
34203418
int ret;
@@ -3433,7 +3431,6 @@ static int ath10k_pci_pm_resume(struct device *dev)
34333431
static SIMPLE_DEV_PM_OPS(ath10k_pci_pm_ops,
34343432
ath10k_pci_pm_suspend,
34353433
ath10k_pci_pm_resume);
3436-
#endif
34373434

34383435
static struct pci_driver ath10k_pci_driver = {
34393436
.name = "ath10k_pci",

drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -980,20 +980,17 @@ static void brcmf_escan_prep(struct brcmf_cfg80211_info *cfg,
980980

981981
eth_broadcast_addr(params_le->bssid);
982982
params_le->bss_type = DOT11_BSSTYPE_ANY;
983-
params_le->scan_type = 0;
983+
params_le->scan_type = BRCMF_SCANTYPE_ACTIVE;
984984
params_le->channel_num = 0;
985985
params_le->nprobes = cpu_to_le32(-1);
986986
params_le->active_time = cpu_to_le32(-1);
987987
params_le->passive_time = cpu_to_le32(-1);
988988
params_le->home_time = cpu_to_le32(-1);
989989
memset(&params_le->ssid_le, 0, sizeof(params_le->ssid_le));
990990

991-
/* if request is null exit so it will be all channel broadcast scan */
992-
if (!request)
993-
return;
994-
995991
n_ssids = request->n_ssids;
996992
n_channels = request->n_channels;
993+
997994
/* Copy channel array if applicable */
998995
brcmf_dbg(SCAN, "### List of channelspecs to scan ### %d\n",
999996
n_channels);
@@ -1030,16 +1027,8 @@ static void brcmf_escan_prep(struct brcmf_cfg80211_info *cfg,
10301027
ptr += sizeof(ssid_le);
10311028
}
10321029
} else {
1033-
brcmf_dbg(SCAN, "Broadcast scan %p\n", request->ssids);
1034-
if ((request->ssids) && request->ssids->ssid_len) {
1035-
brcmf_dbg(SCAN, "SSID %s len=%d\n",
1036-
params_le->ssid_le.SSID,
1037-
request->ssids->ssid_len);
1038-
params_le->ssid_le.SSID_len =
1039-
cpu_to_le32(request->ssids->ssid_len);
1040-
memcpy(&params_le->ssid_le.SSID, request->ssids->ssid,
1041-
request->ssids->ssid_len);
1042-
}
1030+
brcmf_dbg(SCAN, "Performing passive scan\n");
1031+
params_le->scan_type = BRCMF_SCANTYPE_PASSIVE;
10431032
}
10441033
/* Adding mask to channel numbers */
10451034
params_le->channel_num =
@@ -3162,6 +3151,7 @@ brcmf_cfg80211_escan_handler(struct brcmf_if *ifp,
31623151
struct brcmf_cfg80211_info *cfg = ifp->drvr->config;
31633152
s32 status;
31643153
struct brcmf_escan_result_le *escan_result_le;
3154+
u32 escan_buflen;
31653155
struct brcmf_bss_info_le *bss_info_le;
31663156
struct brcmf_bss_info_le *bss = NULL;
31673157
u32 bi_length;
@@ -3181,11 +3171,23 @@ brcmf_cfg80211_escan_handler(struct brcmf_if *ifp,
31813171

31823172
if (status == BRCMF_E_STATUS_PARTIAL) {
31833173
brcmf_dbg(SCAN, "ESCAN Partial result\n");
3174+
if (e->datalen < sizeof(*escan_result_le)) {
3175+
brcmf_err("invalid event data length\n");
3176+
goto exit;
3177+
}
31843178
escan_result_le = (struct brcmf_escan_result_le *) data;
31853179
if (!escan_result_le) {
31863180
brcmf_err("Invalid escan result (NULL pointer)\n");
31873181
goto exit;
31883182
}
3183+
escan_buflen = le32_to_cpu(escan_result_le->buflen);
3184+
if (escan_buflen > BRCMF_ESCAN_BUF_SIZE ||
3185+
escan_buflen > e->datalen ||
3186+
escan_buflen < sizeof(*escan_result_le)) {
3187+
brcmf_err("Invalid escan buffer length: %d\n",
3188+
escan_buflen);
3189+
goto exit;
3190+
}
31893191
if (le16_to_cpu(escan_result_le->bss_count) != 1) {
31903192
brcmf_err("Invalid bss_count %d: ignoring\n",
31913193
escan_result_le->bss_count);
@@ -3202,9 +3204,8 @@ brcmf_cfg80211_escan_handler(struct brcmf_if *ifp,
32023204
}
32033205

32043206
bi_length = le32_to_cpu(bss_info_le->length);
3205-
if (bi_length != (le32_to_cpu(escan_result_le->buflen) -
3206-
WL_ESCAN_RESULTS_FIXED_SIZE)) {
3207-
brcmf_err("Invalid bss_info length %d: ignoring\n",
3207+
if (bi_length != escan_buflen - WL_ESCAN_RESULTS_FIXED_SIZE) {
3208+
brcmf_err("Ignoring invalid bss_info length: %d\n",
32083209
bi_length);
32093210
goto exit;
32103211
}

drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -424,7 +424,8 @@ void brcmf_fweh_process_event(struct brcmf_pub *drvr,
424424
if (code != BRCMF_E_IF && !fweh->evt_handler[code])
425425
return;
426426

427-
if (datalen > BRCMF_DCMD_MAXLEN)
427+
if (datalen > BRCMF_DCMD_MAXLEN ||
428+
datalen + sizeof(*event_packet) > packet_len)
428429
return;
429430

430431
if (in_interrupt())

drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil_types.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,11 @@
4545
#define BRCMF_SCAN_PARAMS_COUNT_MASK 0x0000ffff
4646
#define BRCMF_SCAN_PARAMS_NSSID_SHIFT 16
4747

48+
/* scan type definitions */
49+
#define BRCMF_SCANTYPE_DEFAULT 0xFF
50+
#define BRCMF_SCANTYPE_ACTIVE 0
51+
#define BRCMF_SCANTYPE_PASSIVE 1
52+
4853
#define BRCMF_WSEC_MAX_PSK_LEN 32
4954
#define BRCMF_WSEC_PASSPHRASE BIT(0)
5055

0 commit comments

Comments
 (0)