Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'staging-5.12-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging

Pull staging driver fixes from Greg KH:
"Here are some small staging driver fixes for reported problems. They
include:

- wfx header file cleanup patch reverted as it could cause problems

- comedi driver endian fixes

- buffer overflow problems for staging wifi drivers

- build dependency issue for rtl8192e driver

All have been in linux-next for a while with no reported problems"

* tag 'staging-5.12-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (23 commits)
Revert "staging: wfx: remove unused included header files"
staging: rtl8188eu: prevent ->ssid overflow in rtw_wx_set_scan()
staging: rtl8188eu: fix potential memory corruption in rtw_check_beacon_data()
staging: rtl8192u: fix ->ssid overflow in r8192_wx_set_scan()
staging: comedi: pcl726: Use 16-bit 0 for interrupt data
staging: comedi: ni_65xx: Use 16-bit 0 for interrupt data
staging: comedi: ni_6527: Use 16-bit 0 for interrupt data
staging: comedi: comedi_parport: Use 16-bit 0 for interrupt data
staging: comedi: amplc_pc236_common: Use 16-bit 0 for interrupt data
staging: comedi: pcl818: Fix endian problem for AI command data
staging: comedi: pcl711: Fix endian problem for AI command data
staging: comedi: me4000: Fix endian problem for AI command data
staging: comedi: dmm32at: Fix endian problem for AI command data
staging: comedi: das800: Fix endian problem for AI command data
staging: comedi: das6402: Fix endian problem for AI command data
staging: comedi: adv_pci1710: Fix endian problem for AI command data
staging: comedi: addi_apci_1500: Fix endian problem for command sample
staging: comedi: addi_apci_1032: Fix endian problem for COS sample
staging: ks7010: prevent buffer overflow in ks_wlan_set_scan()
staging: rtl8712: Fix possible buffer overflow in r8712_sitesurvey_cmd
...

+169 -38
+3 -1
drivers/staging/comedi/drivers/addi_apci_1032.c
··· 260 260 struct apci1032_private *devpriv = dev->private; 261 261 struct comedi_subdevice *s = dev->read_subdev; 262 262 unsigned int ctrl; 263 + unsigned short val; 263 264 264 265 /* check interrupt is from this device */ 265 266 if ((inl(devpriv->amcc_iobase + AMCC_OP_REG_INTCSR) & ··· 276 275 outl(ctrl & ~APCI1032_CTRL_INT_ENA, dev->iobase + APCI1032_CTRL_REG); 277 276 278 277 s->state = inl(dev->iobase + APCI1032_STATUS_REG) & 0xffff; 279 - comedi_buf_write_samples(s, &s->state, 1); 278 + val = s->state; 279 + comedi_buf_write_samples(s, &val, 1); 280 280 comedi_handle_events(dev, s); 281 281 282 282 /* enable the interrupt */
+9 -9
drivers/staging/comedi/drivers/addi_apci_1500.c
··· 208 208 struct comedi_device *dev = d; 209 209 struct apci1500_private *devpriv = dev->private; 210 210 struct comedi_subdevice *s = dev->read_subdev; 211 - unsigned int status = 0; 211 + unsigned short status = 0; 212 212 unsigned int val; 213 213 214 214 val = inl(devpriv->amcc + AMCC_OP_REG_INTCSR); ··· 238 238 * 239 239 * Mask Meaning 240 240 * ---------- ------------------------------------------ 241 - * 0x00000001 Event 1 has occurred 242 - * 0x00000010 Event 2 has occurred 243 - * 0x00000100 Counter/timer 1 has run down (not implemented) 244 - * 0x00001000 Counter/timer 2 has run down (not implemented) 245 - * 0x00010000 Counter 3 has run down (not implemented) 246 - * 0x00100000 Watchdog has run down (not implemented) 247 - * 0x01000000 Voltage error 248 - * 0x10000000 Short-circuit error 241 + * 0b00000001 Event 1 has occurred 242 + * 0b00000010 Event 2 has occurred 243 + * 0b00000100 Counter/timer 1 has run down (not implemented) 244 + * 0b00001000 Counter/timer 2 has run down (not implemented) 245 + * 0b00010000 Counter 3 has run down (not implemented) 246 + * 0b00100000 Watchdog has run down (not implemented) 247 + * 0b01000000 Voltage error 248 + * 0b10000000 Short-circuit error 249 249 */ 250 250 comedi_buf_write_samples(s, &status, 1); 251 251 comedi_handle_events(dev, s);
+5 -5
drivers/staging/comedi/drivers/adv_pci1710.c
··· 300 300 static int pci1710_ai_read_sample(struct comedi_device *dev, 301 301 struct comedi_subdevice *s, 302 302 unsigned int cur_chan, 303 - unsigned int *val) 303 + unsigned short *val) 304 304 { 305 305 const struct boardtype *board = dev->board_ptr; 306 306 struct pci1710_private *devpriv = dev->private; 307 - unsigned int sample; 307 + unsigned short sample; 308 308 unsigned int chan; 309 309 310 310 sample = inw(dev->iobase + PCI171X_AD_DATA_REG); ··· 345 345 pci1710_ai_setup_chanlist(dev, s, &insn->chanspec, 1, 1); 346 346 347 347 for (i = 0; i < insn->n; i++) { 348 - unsigned int val; 348 + unsigned short val; 349 349 350 350 /* start conversion */ 351 351 outw(0, dev->iobase + PCI171X_SOFTTRG_REG); ··· 395 395 { 396 396 struct comedi_cmd *cmd = &s->async->cmd; 397 397 unsigned int status; 398 - unsigned int val; 398 + unsigned short val; 399 399 int ret; 400 400 401 401 status = inw(dev->iobase + PCI171X_STATUS_REG); ··· 455 455 } 456 456 457 457 for (i = 0; i < devpriv->max_samples; i++) { 458 - unsigned int val; 458 + unsigned short val; 459 459 int ret; 460 460 461 461 ret = pci1710_ai_read_sample(dev, s, s->async->cur_chan, &val);
+3 -1
drivers/staging/comedi/drivers/amplc_pc236_common.c
··· 126 126 127 127 handled = pc236_intr_check(dev); 128 128 if (dev->attached && handled) { 129 - comedi_buf_write_samples(s, &s->state, 1); 129 + unsigned short val = 0; 130 + 131 + comedi_buf_write_samples(s, &val, 1); 130 132 comedi_handle_events(dev, s); 131 133 } 132 134 return IRQ_RETVAL(handled);
+2 -1
drivers/staging/comedi/drivers/comedi_parport.c
··· 210 210 struct comedi_device *dev = d; 211 211 struct comedi_subdevice *s = dev->read_subdev; 212 212 unsigned int ctrl; 213 + unsigned short val = 0; 213 214 214 215 ctrl = inb(dev->iobase + PARPORT_CTRL_REG); 215 216 if (!(ctrl & PARPORT_CTRL_IRQ_ENA)) 216 217 return IRQ_NONE; 217 218 218 - comedi_buf_write_samples(s, &s->state, 1); 219 + comedi_buf_write_samples(s, &val, 1); 219 220 comedi_handle_events(dev, s); 220 221 221 222 return IRQ_HANDLED;
+1 -1
drivers/staging/comedi/drivers/das6402.c
··· 186 186 if (status & DAS6402_STATUS_FFULL) { 187 187 async->events |= COMEDI_CB_OVERFLOW; 188 188 } else if (status & DAS6402_STATUS_FFNE) { 189 - unsigned int val; 189 + unsigned short val; 190 190 191 191 val = das6402_ai_read_sample(dev, s); 192 192 comedi_buf_write_samples(s, &val, 1);
+1 -1
drivers/staging/comedi/drivers/das800.c
··· 427 427 struct comedi_cmd *cmd; 428 428 unsigned long irq_flags; 429 429 unsigned int status; 430 - unsigned int val; 430 + unsigned short val; 431 431 bool fifo_empty; 432 432 bool fifo_overflow; 433 433 int i;
+1 -1
drivers/staging/comedi/drivers/dmm32at.c
··· 404 404 { 405 405 struct comedi_device *dev = d; 406 406 unsigned char intstat; 407 - unsigned int val; 407 + unsigned short val; 408 408 int i; 409 409 410 410 if (!dev->attached) {
+1 -1
drivers/staging/comedi/drivers/me4000.c
··· 924 924 struct comedi_subdevice *s = dev->read_subdev; 925 925 int i; 926 926 int c = 0; 927 - unsigned int lval; 927 + unsigned short lval; 928 928 929 929 if (!dev->attached) 930 930 return IRQ_NONE;
+3 -1
drivers/staging/comedi/drivers/ni_6527.c
··· 195 195 return IRQ_NONE; 196 196 197 197 if (status & NI6527_STATUS_EDGE) { 198 - comedi_buf_write_samples(s, &s->state, 1); 198 + unsigned short val = 0; 199 + 200 + comedi_buf_write_samples(s, &val, 1); 199 201 comedi_handle_events(dev, s); 200 202 } 201 203
+2 -1
drivers/staging/comedi/drivers/ni_65xx.c
··· 472 472 struct comedi_device *dev = d; 473 473 struct comedi_subdevice *s = dev->read_subdev; 474 474 unsigned int status; 475 + unsigned short val = 0; 475 476 476 477 status = readb(dev->mmio + NI_65XX_STATUS_REG); 477 478 if ((status & NI_65XX_STATUS_INT) == 0) ··· 483 482 writeb(NI_65XX_CLR_EDGE_INT | NI_65XX_CLR_OVERFLOW_INT, 484 483 dev->mmio + NI_65XX_CLR_REG); 485 484 486 - comedi_buf_write_samples(s, &s->state, 1); 485 + comedi_buf_write_samples(s, &val, 1); 487 486 comedi_handle_events(dev, s); 488 487 489 488 return IRQ_HANDLED;
+1 -1
drivers/staging/comedi/drivers/pcl711.c
··· 184 184 struct comedi_device *dev = d; 185 185 struct comedi_subdevice *s = dev->read_subdev; 186 186 struct comedi_cmd *cmd = &s->async->cmd; 187 - unsigned int data; 187 + unsigned short data; 188 188 189 189 if (!dev->attached) { 190 190 dev_err(dev->class_dev, "spurious interrupt\n");
+3 -1
drivers/staging/comedi/drivers/pcl726.c
··· 220 220 struct pcl726_private *devpriv = dev->private; 221 221 222 222 if (devpriv->cmd_running) { 223 + unsigned short val = 0; 224 + 223 225 pcl726_intr_cancel(dev, s); 224 226 225 - comedi_buf_write_samples(s, &s->state, 1); 227 + comedi_buf_write_samples(s, &val, 1); 226 228 comedi_handle_events(dev, s); 227 229 } 228 230
+1 -1
drivers/staging/comedi/drivers/pcl818.c
··· 423 423 424 424 static bool pcl818_ai_write_sample(struct comedi_device *dev, 425 425 struct comedi_subdevice *s, 426 - unsigned int chan, unsigned int val) 426 + unsigned int chan, unsigned short val) 427 427 { 428 428 struct pcl818_private *devpriv = dev->private; 429 429 struct comedi_cmd *cmd = &s->async->cmd;
+4 -2
drivers/staging/ks7010/ks_wlan_net.c
··· 1120 1120 { 1121 1121 struct ks_wlan_private *priv = netdev_priv(dev); 1122 1122 struct iw_scan_req *req = NULL; 1123 + int len; 1123 1124 1124 1125 if (priv->sleep_mode == SLP_SLEEP) 1125 1126 return -EPERM; ··· 1130 1129 if (wrqu->data.length == sizeof(struct iw_scan_req) && 1131 1130 wrqu->data.flags & IW_SCAN_THIS_ESSID) { 1132 1131 req = (struct iw_scan_req *)extra; 1133 - priv->scan_ssid_len = req->essid_len; 1134 - memcpy(priv->scan_ssid, req->essid, priv->scan_ssid_len); 1132 + len = min_t(int, req->essid_len, IW_ESSID_MAX_SIZE); 1133 + priv->scan_ssid_len = len; 1134 + memcpy(priv->scan_ssid, req->essid, len); 1135 1135 } else { 1136 1136 priv->scan_ssid_len = 0; 1137 1137 }
+5
drivers/staging/rtl8188eu/core/rtw_ap.c
··· 791 791 p = rtw_get_ie(ie + _BEACON_IE_OFFSET_, WLAN_EID_SSID, &ie_len, 792 792 pbss_network->ie_length - _BEACON_IE_OFFSET_); 793 793 if (p && ie_len > 0) { 794 + ie_len = min_t(int, ie_len, sizeof(pbss_network->ssid.ssid)); 794 795 memset(&pbss_network->ssid, 0, sizeof(struct ndis_802_11_ssid)); 795 796 memcpy(pbss_network->ssid.ssid, p + 2, ie_len); 796 797 pbss_network->ssid.ssid_length = ie_len; ··· 812 811 p = rtw_get_ie(ie + _BEACON_IE_OFFSET_, WLAN_EID_SUPP_RATES, &ie_len, 813 812 pbss_network->ie_length - _BEACON_IE_OFFSET_); 814 813 if (p) { 814 + ie_len = min_t(int, ie_len, NDIS_802_11_LENGTH_RATES_EX); 815 815 memcpy(supportRate, p + 2, ie_len); 816 816 supportRateNum = ie_len; 817 817 } ··· 821 819 p = rtw_get_ie(ie + _BEACON_IE_OFFSET_, WLAN_EID_EXT_SUPP_RATES, 822 820 &ie_len, pbss_network->ie_length - _BEACON_IE_OFFSET_); 823 821 if (p) { 822 + ie_len = min_t(int, ie_len, 823 + NDIS_802_11_LENGTH_RATES_EX - supportRateNum); 824 824 memcpy(supportRate + supportRateNum, p + 2, ie_len); 825 825 supportRateNum += ie_len; 826 826 } ··· 938 934 939 935 pht_cap->mcs.rx_mask[0] = 0xff; 940 936 pht_cap->mcs.rx_mask[1] = 0x0; 937 + ie_len = min_t(int, ie_len, sizeof(pmlmepriv->htpriv.ht_cap)); 941 938 memcpy(&pmlmepriv->htpriv.ht_cap, p + 2, ie_len); 942 939 } 943 940
+4 -2
drivers/staging/rtl8188eu/os_dep/ioctl_linux.c
··· 1133 1133 break; 1134 1134 } 1135 1135 sec_len = *(pos++); len -= 1; 1136 - if (sec_len > 0 && sec_len <= len) { 1136 + if (sec_len > 0 && 1137 + sec_len <= len && 1138 + sec_len <= 32) { 1137 1139 ssid[ssid_index].ssid_length = sec_len; 1138 - memcpy(ssid[ssid_index].ssid, pos, ssid[ssid_index].ssid_length); 1140 + memcpy(ssid[ssid_index].ssid, pos, sec_len); 1139 1141 ssid_index++; 1140 1142 } 1141 1143 pos += sec_len;
+1
drivers/staging/rtl8192e/Kconfig
··· 27 27 config RTLLIB_CRYPTO_TKIP 28 28 tristate "Support for rtllib TKIP crypto" 29 29 depends on RTLLIB 30 + select CRYPTO 30 31 select CRYPTO_LIB_ARC4 31 32 select CRYPTO_MICHAEL_MIC 32 33 default y
+4 -3
drivers/staging/rtl8192e/rtl8192e/rtl_wx.c
··· 406 406 struct iw_scan_req *req = (struct iw_scan_req *)b; 407 407 408 408 if (req->essid_len) { 409 - ieee->current_network.ssid_len = req->essid_len; 410 - memcpy(ieee->current_network.ssid, req->essid, 411 - req->essid_len); 409 + int len = min_t(int, req->essid_len, IW_ESSID_MAX_SIZE); 410 + 411 + ieee->current_network.ssid_len = len; 412 + memcpy(ieee->current_network.ssid, req->essid, len); 412 413 } 413 414 } 414 415
+4 -2
drivers/staging/rtl8192u/r8192U_wx.c
··· 331 331 struct iw_scan_req *req = (struct iw_scan_req *)b; 332 332 333 333 if (req->essid_len) { 334 - ieee->current_network.ssid_len = req->essid_len; 335 - memcpy(ieee->current_network.ssid, req->essid, req->essid_len); 334 + int len = min_t(int, req->essid_len, IW_ESSID_MAX_SIZE); 335 + 336 + ieee->current_network.ssid_len = len; 337 + memcpy(ieee->current_network.ssid, req->essid, len); 336 338 } 337 339 } 338 340
+4 -2
drivers/staging/rtl8712/rtl871x_cmd.c
··· 192 192 psurveyPara->ss_ssidlen = 0; 193 193 memset(psurveyPara->ss_ssid, 0, IW_ESSID_MAX_SIZE + 1); 194 194 if (pssid && pssid->SsidLength) { 195 - memcpy(psurveyPara->ss_ssid, pssid->Ssid, pssid->SsidLength); 196 - psurveyPara->ss_ssidlen = cpu_to_le32(pssid->SsidLength); 195 + int len = min_t(int, pssid->SsidLength, IW_ESSID_MAX_SIZE); 196 + 197 + memcpy(psurveyPara->ss_ssid, pssid->Ssid, len); 198 + psurveyPara->ss_ssidlen = cpu_to_le32(len); 197 199 } 198 200 set_fwstate(pmlmepriv, _FW_UNDER_SURVEY); 199 201 r8712_enqueue_cmd(pcmdpriv, ph2c);
+1 -1
drivers/staging/rtl8712/rtl871x_ioctl_linux.c
··· 924 924 struct iw_point *dwrq = (struct iw_point *)awrq; 925 925 926 926 len = dwrq->length; 927 - ext = memdup_user(dwrq->pointer, len); 927 + ext = strndup_user(dwrq->pointer, len); 928 928 if (IS_ERR(ext)) 929 929 return PTR_ERR(ext); 930 930
+1
drivers/staging/wfx/bh.c
··· 5 5 * Copyright (c) 2017-2020, Silicon Laboratories, Inc. 6 6 * Copyright (c) 2010, ST-Ericsson 7 7 */ 8 + #include <linux/gpio/consumer.h> 8 9 #include <net/mac80211.h> 9 10 10 11 #include "bh.h"
+4
drivers/staging/wfx/bh.h
··· 8 8 #ifndef WFX_BH_H 9 9 #define WFX_BH_H 10 10 11 + #include <linux/atomic.h> 12 + #include <linux/wait.h> 13 + #include <linux/workqueue.h> 14 + 11 15 struct wfx_dev; 12 16 13 17 struct wfx_hif {
+3
drivers/staging/wfx/bus.h
··· 8 8 #ifndef WFX_BUS_H 9 9 #define WFX_BUS_H 10 10 11 + #include <linux/mmc/sdio_func.h> 12 + #include <linux/spi/spi.h> 13 + 11 14 #define WFX_REG_CONFIG 0x0 12 15 #define WFX_REG_CONTROL 0x1 13 16 #define WFX_REG_IN_OUT_QUEUE 0x2
+6
drivers/staging/wfx/bus_sdio.c
··· 5 5 * Copyright (c) 2017-2020, Silicon Laboratories, Inc. 6 6 * Copyright (c) 2010, ST-Ericsson 7 7 */ 8 + #include <linux/module.h> 8 9 #include <linux/mmc/sdio.h> 9 10 #include <linux/mmc/sdio_func.h> 10 11 #include <linux/mmc/card.h> 12 + #include <linux/interrupt.h> 11 13 #include <linux/of_irq.h> 14 + #include <linux/irq.h> 12 15 13 16 #include "bus.h" 14 17 #include "wfx.h" 18 + #include "hwio.h" 19 + #include "main.h" 20 + #include "bh.h" 15 21 16 22 static const struct wfx_platform_data wfx_sdio_pdata = { 17 23 .file_fw = "wfm_wf200",
+7
drivers/staging/wfx/bus_spi.c
··· 6 6 * Copyright (c) 2011, Sagrad Inc. 7 7 * Copyright (c) 2010, ST-Ericsson 8 8 */ 9 + #include <linux/module.h> 10 + #include <linux/delay.h> 11 + #include <linux/gpio/consumer.h> 9 12 #include <linux/spi/spi.h> 13 + #include <linux/interrupt.h> 10 14 #include <linux/irq.h> 11 15 #include <linux/of.h> 12 16 13 17 #include "bus.h" 14 18 #include "wfx.h" 19 + #include "hwio.h" 20 + #include "main.h" 21 + #include "bh.h" 15 22 16 23 #define SET_WRITE 0x7FFF /* usage: and operation */ 17 24 #define SET_READ 0x8000 /* usage: or operation */
+5
drivers/staging/wfx/data_rx.c
··· 5 5 * Copyright (c) 2017-2020, Silicon Laboratories, Inc. 6 6 * Copyright (c) 2010, ST-Ericsson 7 7 */ 8 + #include <linux/etherdevice.h> 9 + #include <net/mac80211.h> 10 + 8 11 #include "data_rx.h" 9 12 #include "wfx.h" 13 + #include "bh.h" 14 + #include "sta.h" 10 15 11 16 static void wfx_rx_handle_ba(struct wfx_vif *wvif, struct ieee80211_mgmt *mgmt) 12 17 {
+5
drivers/staging/wfx/data_tx.c
··· 6 6 * Copyright (c) 2010, ST-Ericsson 7 7 */ 8 8 #include <net/mac80211.h> 9 + #include <linux/etherdevice.h> 9 10 11 + #include "data_tx.h" 10 12 #include "wfx.h" 13 + #include "bh.h" 11 14 #include "sta.h" 15 + #include "queue.h" 16 + #include "debug.h" 12 17 #include "traces.h" 13 18 #include "hif_tx_mib.h" 14 19
+3
drivers/staging/wfx/data_tx.h
··· 8 8 #ifndef WFX_DATA_TX_H 9 9 #define WFX_DATA_TX_H 10 10 11 + #include <linux/list.h> 12 + #include <net/mac80211.h> 13 + 11 14 #include "hif_api_cmd.h" 12 15 #include "hif_api_mib.h" 13 16
+6
drivers/staging/wfx/debug.c
··· 5 5 * Copyright (c) 2017-2020, Silicon Laboratories, Inc. 6 6 * Copyright (c) 2010, ST-Ericsson 7 7 */ 8 + #include <linux/debugfs.h> 9 + #include <linux/seq_file.h> 10 + #include <linux/crc32.h> 11 + 8 12 #include "debug.h" 9 13 #include "wfx.h" 10 14 #include "sta.h" 15 + #include "main.h" 16 + #include "hif_tx.h" 11 17 #include "hif_tx_mib.h" 12 18 13 19 #define CREATE_TRACE_POINTS
+2
drivers/staging/wfx/fwio.c
··· 6 6 * Copyright (c) 2010, ST-Ericsson 7 7 */ 8 8 #include <linux/firmware.h> 9 + #include <linux/slab.h> 10 + #include <linux/mm.h> 9 11 #include <linux/bitfield.h> 10 12 11 13 #include "fwio.h"
+4
drivers/staging/wfx/hif_api_cmd.h
··· 8 8 #ifndef WFX_HIF_API_CMD_H 9 9 #define WFX_HIF_API_CMD_H 10 10 11 + #include <linux/ieee80211.h> 12 + 13 + #include "hif_api_general.h" 14 + 11 15 enum hif_requests_ids { 12 16 HIF_REQ_ID_RESET = 0x0a, 13 17 HIF_REQ_ID_READ_MIB = 0x05,
+9
drivers/staging/wfx/hif_api_general.h
··· 8 8 #ifndef WFX_HIF_API_GENERAL_H 9 9 #define WFX_HIF_API_GENERAL_H 10 10 11 + #ifdef __KERNEL__ 12 + #include <linux/types.h> 13 + #include <linux/if_ether.h> 14 + #else 15 + #include <net/ethernet.h> 16 + #include <stdint.h> 17 + #define __packed __attribute__((__packed__)) 18 + #endif 19 + 11 20 #define HIF_ID_IS_INDICATION 0x80 12 21 #define HIF_COUNTER_MAX 7 13 22
+4
drivers/staging/wfx/hif_tx.c
··· 6 6 * Copyright (c) 2017-2020, Silicon Laboratories, Inc. 7 7 * Copyright (c) 2010, ST-Ericsson 8 8 */ 9 + #include <linux/etherdevice.h> 10 + 11 + #include "hif_tx.h" 9 12 #include "wfx.h" 13 + #include "bh.h" 10 14 #include "hwio.h" 11 15 #include "debug.h" 12 16 #include "sta.h"
+5
drivers/staging/wfx/hif_tx_mib.c
··· 6 6 * Copyright (c) 2010, ST-Ericsson 7 7 * Copyright (C) 2010, ST-Ericsson SA 8 8 */ 9 + 10 + #include <linux/etherdevice.h> 11 + 9 12 #include "wfx.h" 13 + #include "hif_tx.h" 10 14 #include "hif_tx_mib.h" 15 + #include "hif_api_mib.h" 11 16 12 17 int hif_set_output_power(struct wfx_vif *wvif, int val) 13 18 {
+3
drivers/staging/wfx/hwio.c
··· 5 5 * Copyright (c) 2017-2020, Silicon Laboratories, Inc. 6 6 * Copyright (c) 2010, ST-Ericsson 7 7 */ 8 + #include <linux/kernel.h> 9 + #include <linux/delay.h> 8 10 #include <linux/slab.h> 9 11 10 12 #include "hwio.h" 11 13 #include "wfx.h" 14 + #include "bus.h" 12 15 #include "traces.h" 13 16 14 17 /*
+2
drivers/staging/wfx/hwio.h
··· 8 8 #ifndef WFX_HWIO_H 9 9 #define WFX_HWIO_H 10 10 11 + #include <linux/types.h> 12 + 11 13 struct wfx_dev; 12 14 13 15 int wfx_data_read(struct wfx_dev *wdev, void *buf, size_t buf_len);
+2
drivers/staging/wfx/key.c
··· 5 5 * Copyright (c) 2017-2020, Silicon Laboratories, Inc. 6 6 * Copyright (c) 2010, ST-Ericsson 7 7 */ 8 + #include <linux/etherdevice.h> 8 9 #include <net/mac80211.h> 9 10 10 11 #include "key.h" 11 12 #include "wfx.h" 13 + #include "hif_tx_mib.h" 12 14 13 15 static int wfx_alloc_key(struct wfx_dev *wdev) 14 16 {
+2
drivers/staging/wfx/key.h
··· 8 8 #ifndef WFX_KEY_H 9 9 #define WFX_KEY_H 10 10 11 + #include <net/mac80211.h> 12 + 11 13 struct wfx_dev; 12 14 struct wfx_vif; 13 15
+7
drivers/staging/wfx/main.c
··· 10 10 * Copyright (c) 2006, Michael Wu <flamingice@sourmilk.net> 11 11 * Copyright (c) 2004-2006 Jean-Baptiste Note <jbnote@gmail.com>, et al. 12 12 */ 13 + #include <linux/module.h> 13 14 #include <linux/of.h> 14 15 #include <linux/of_net.h> 16 + #include <linux/gpio/consumer.h> 15 17 #include <linux/mmc/sdio_func.h> 16 18 #include <linux/spi/spi.h> 19 + #include <linux/etherdevice.h> 17 20 #include <linux/firmware.h> 18 21 22 + #include "main.h" 19 23 #include "wfx.h" 20 24 #include "fwio.h" 21 25 #include "hwio.h" 22 26 #include "bus.h" 27 + #include "bh.h" 23 28 #include "sta.h" 24 29 #include "key.h" 25 30 #include "scan.h" 26 31 #include "debug.h" 32 + #include "data_tx.h" 27 33 #include "hif_tx_mib.h" 34 + #include "hif_api_cmd.h" 28 35 29 36 #define WFX_PDS_MAX_SIZE 1500 30 37
+3
drivers/staging/wfx/main.h
··· 10 10 #ifndef WFX_MAIN_H 11 11 #define WFX_MAIN_H 12 12 13 + #include <linux/device.h> 13 14 #include <linux/gpio/consumer.h> 15 + 16 + #include "hif_api_general.h" 14 17 15 18 struct wfx_dev; 16 19 struct hwbus_ops;
+4
drivers/staging/wfx/queue.c
··· 5 5 * Copyright (c) 2017-2020, Silicon Laboratories, Inc. 6 6 * Copyright (c) 2010, ST-Ericsson 7 7 */ 8 + #include <linux/sched.h> 8 9 #include <net/mac80211.h> 9 10 11 + #include "queue.h" 10 12 #include "wfx.h" 13 + #include "sta.h" 14 + #include "data_tx.h" 11 15 #include "traces.h" 12 16 13 17 void wfx_tx_lock(struct wfx_dev *wdev)
+3
drivers/staging/wfx/queue.h
··· 8 8 #ifndef WFX_QUEUE_H 9 9 #define WFX_QUEUE_H 10 10 11 + #include <linux/skbuff.h> 12 + #include <linux/atomic.h> 13 + 11 14 struct wfx_dev; 12 15 struct wfx_vif; 13 16
+2
drivers/staging/wfx/scan.h
··· 8 8 #ifndef WFX_SCAN_H 9 9 #define WFX_SCAN_H 10 10 11 + #include <net/mac80211.h> 12 + 11 13 struct wfx_dev; 12 14 struct wfx_vif; 13 15
+6
drivers/staging/wfx/sta.c
··· 5 5 * Copyright (c) 2017-2020, Silicon Laboratories, Inc. 6 6 * Copyright (c) 2010, ST-Ericsson 7 7 */ 8 + #include <linux/etherdevice.h> 8 9 #include <net/mac80211.h> 9 10 10 11 #include "sta.h" 11 12 #include "wfx.h" 13 + #include "fwio.h" 14 + #include "bh.h" 15 + #include "key.h" 12 16 #include "scan.h" 17 + #include "debug.h" 18 + #include "hif_tx.h" 13 19 #include "hif_tx_mib.h" 14 20 15 21 #define HIF_MAX_ARP_IP_ADDRTABLE_ENTRIES 2
+2
drivers/staging/wfx/sta.h
··· 8 8 #ifndef WFX_STA_H 9 9 #define WFX_STA_H 10 10 11 + #include <net/mac80211.h> 12 + 11 13 struct wfx_dev; 12 14 struct wfx_vif; 13 15
+3
drivers/staging/wfx/traces.h
··· 12 12 #define _WFX_TRACE_H 13 13 14 14 #include <linux/tracepoint.h> 15 + #include <net/mac80211.h> 15 16 16 17 #include "bus.h" 18 + #include "hif_api_cmd.h" 19 + #include "hif_api_mib.h" 17 20 18 21 /* The hell below need some explanations. For each symbolic number, we need to 19 22 * define it with TRACE_DEFINE_ENUM() and in a list for __print_symbolic.
+3
drivers/staging/wfx/wfx.h
··· 10 10 #ifndef WFX_H 11 11 #define WFX_H 12 12 13 + #include <linux/completion.h> 14 + #include <linux/workqueue.h> 15 + #include <linux/mutex.h> 13 16 #include <linux/nospec.h> 14 17 #include <net/mac80211.h> 15 18