28 Feb, 2018
31 commits
-
Attempting to build ssb.ko with CONFIG_SSB_DRIVER_PCICORE=y results in
a build error due to use of symbols not exported from vmlinux:ERROR: "pcibios_enable_device" [drivers/ssb/ssb.ko] undefined!
ERROR: "register_pci_controller" [drivers/ssb/ssb.ko] undefined!
make[1]: *** [scripts/Makefile.modpost:92: __modpost] Error 1To prevent this, don't allow the host mode feature to be built if
CONFIG_SSB=mSigned-off-by: Matt Redfearn
Signed-off-by: Kalle Valo -
In this laptop we have the following PCI device:
02:00.0 Network controller [0280]: Broadcom Limited BCM43142 802.11b/g/n [14e4:4365] (rev 01)
Subsystem: Hewlett-Packard Company BCM43142 802.11b/g/n [103c:804a]
[...]
Region 0: Memory at 91000000 (64-bit, non-prefetchable) [size=32K]
[...]With this patch, we can now see its WiFi chip:
bcma: bus0: Found chip with id 43142, rev 0x01 and package 0x08
bcma: bus0: Core 0 found: ChipCommon (manuf 0x4BF, id 0x800, rev 0x28, class 0x0)
bcma: bus0: Core 1 found: IEEE 802.11 (manuf 0x4BF, id 0x812, rev 0x21, class 0x0)
bcma: bus0: Core 2 found: PCIe (manuf 0x4BF, id 0x820, rev 0x16, class 0x0)
bcma: bus0: Core 3 found: UNKNOWN (manuf 0x43B, id 0x368, rev 0x00, class 0x0)
bcma: bus0: Found rev 15 PMU (capabilities 0x518C5E0F)
bcma: bus0: SPROM offset 0x840
bcma: bus0: Found SPROM revision 10
bcma: bus0: Workarounds unknown or not needed for device 0xA886
bcma: bus0: Bus registeredBut it not yet supported by brcmsmac so it won't work for now:
brcmsmac bcma0:1: brcms_b_attach wl0: vendor 0x14e4 device 0x4365
brcmsmac: unknown device id 4365Signed-off-by: Denis 'GNUtoo' Carikli
Signed-off-by: Kalle Valo -
This was detected with static analysis using Coccinelle:
./drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b1ant.c:1107:5-18:
duplicated argument to && or ||Reported-by: Colin Ian King
Signed-off-by: Ping-Ke Shih
Signed-off-by: Kalle Valo -
Bit pattern IEEE80211_CHAN_NO_IR is being bit-wise or'd twice;
remove the redundant 2nd IEEE80211_CHAN_NO_IRSigned-off-by: Colin Ian King
Signed-off-by: Kalle Valo -
nl80211 already allows specifying 48 bytes, but brcmfmac
only supports 32. Reject keys that are too long.Signed-off-by: Johannes Berg
Acked-by: Arend van Spriel
Signed-off-by: Kalle Valo -
In brcmf_sdio_firmware_callback() two pointer variables were used
pointing to the same construct. Get rid of sdiodev variable.Signed-off-by: Arend van Spriel
Signed-off-by: Kalle Valo -
Reducing the number of trace level messages in sdio code giving
them sdio log level instead.Reviewed-by: Hante Meuleman
Reviewed-by: Pieter-Paul Giesberts
Reviewed-by: Franky Lin
Signed-off-by: Arend van Spriel
Signed-off-by: Kalle Valo -
No longer needed to call this in bus layer so make it static and call
it in the last phase of brcmf_attach() instead.Reviewed-by: Hante Meuleman
Reviewed-by: Pieter-Paul Giesberts
Reviewed-by: Franky Lin
Signed-off-by: Arend van Spriel
Signed-off-by: Kalle Valo -
Moving the function in preparation of subsequent patch.
Reviewed-by: Hante Meuleman
Reviewed-by: Pieter-Paul Giesberts
Reviewed-by: Franky Lin
Signed-off-by: Arend van Spriel
Signed-off-by: Kalle Valo -
By calling brcmf_usb_up() during brcmf_bus_preinit() it does not need
to be called in brcmf_usb_bus_setup().Reviewed-by: Hante Meuleman
Reviewed-by: Pieter-Paul Giesberts
Reviewed-by: Franky Lin
Signed-off-by: Arend van Spriel
Signed-off-by: Kalle Valo -
Now we can move brcmf_attach() until after the firmware has been downloaded
to the device. Make the call just before brcmf_bus_started().Reviewed-by: Hante Meuleman
Reviewed-by: Pieter-Paul Giesberts
Reviewed-by: Franky Lin
Signed-off-by: Arend van Spriel
Signed-off-by: Kalle Valo -
Allocate the control rx buffer needed for firmware control interface
during brcmf_sdio_bus_preinit(). This relies on common layer setting
struct brcmf_bus::maxctl during brcmf_attach(). By moving the allocation
we can move brcmf_attach() in subsequent change.Reviewed-by: Hante Meuleman
Reviewed-by: Pieter-Paul Giesberts
Reviewed-by: Franky Lin
Signed-off-by: Arend van Spriel
Signed-off-by: Kalle Valo -
Moving the brcmf_bus_preinit() call allows the bus code to do some
required initialization before handling firmware control messages.Reviewed-by: Hante Meuleman
Reviewed-by: Pieter-Paul Giesberts
Reviewed-by: Franky Lin
Signed-off-by: Arend van Spriel
Signed-off-by: Kalle Valo -
Multiple interfaces with same bss type could affect each other if
they are sharing the same mac address. In this patch, different
mac address is assigned to new interface which have same bss type
with exist interfaces.Signed-off-by: Xinming Hu
Signed-off-by: Kalle Valo -
In pci probe() function start firmware loading, protocol handshake
and driver core initialization, and not wait for completion.Signed-off-by: Sergei Maksimenko
Signed-off-by: Kalle Valo -
This patch enables rmmod/insmod for qtnfmac kernel modules:
- do not 'pin' pci device in order to disable it on module unload
- implement card reset procedure
- restore PCI bar addresses for restarted wireless cardSigned-off-by: Sergei Maksimenko
Signed-off-by: Sergey Matyukevich
Signed-off-by: Kalle Valo -
Add missing PCI unmap for Tx buffers and release all buffers explicitly.
Managed release using devm_add_action is not suitable for qtnfmac Tx/Rx
data buffers. The reason is in ordering and dependencies: buffers
should be released after transmission is stopped but before PCI
device resources and DMA allocations are released.Signed-off-by: Sergey Matyukevich
Signed-off-by: Kalle Valo -
gcc-8 points out that source and destination of the memcpy() are
always the same pointer, so the effect of memcpy() is undefined
here (its arguments must not overlap):drivers/net/wireless/realtek/rtlwifi/rtl8192cu/trx.c: In function '_rtl_rx_process':
drivers/net/wireless/realtek/rtlwifi/rtl8192cu/trx.c:430:2: error: 'memcpy' source argument is the same as destination [-Werror=restrict]Most likely this is harmless, but it's easy to just remove the
line and get rid of the warning.Signed-off-by: Arnd Bergmann
Acked-by: Larry Finger
Signed-off-by: Kalle Valo -
In _rtl92c_get_txpower_writeval_by_regulatory() the variable writeVal
is assigned to itself in an if ... else statement, apparently only to
document that the branch condition is handled and that a previously read
value should be returned unmodified. The self-assignment causes clang to
raise the following warning:drivers/net/wireless/realtek/rtlwifi/rtl8192cu/rf.c:304:13:
error: explicitly assigning value of variable of type 'u32'
(aka 'unsigned int') to itself [-Werror,-Wself-assign]
writeVal = writeVal;Delete the branch with the self-assignment.
Signed-off-by: Matthias Kaehlcke
Acked-by: Larry Finger
Reviewed-by: Guenter Roeck
Signed-off-by: Kalle Valo -
Pointer q is initialized and then almost immediately afterwards being
re-assigned the same value. Remove the second redundant assignment.Cleans up clang warning:
drivers/net/wireless/zydas/zd1211rw/zd_mac.c:503:23: warning: Value
stored to 'q' during its initialization is never readSigned-off-by: Colin Ian King
Signed-off-by: Kalle Valo -
The wifi only btcoex is used to solo card (without BT), and it is also
useful to exclude the interference with BT to make debug easier.
There are only four ops for wifi only btcoex to initialze antenna and
switch the settings while band is changed.Signed-off-by: Ping-Ke Shih
Acked-by: Larry Finger
Signed-off-by: Kalle Valo -
Tell wifi and BT firmware the default port ID to set multiports' state
properly, but only 8822be needs this function currently.Signed-off-by: Ping-Ke Shih
Signed-off-by: Kalle Valo -
The new component phydm need to access efuse content, so we prepare ops
for reference.Signed-off-by: Tsang-Shian Lin
Signed-off-by: Ping-Ke Shih
Acked-by: Larry Finger
Signed-off-by: Kalle Valo -
Add rf mask definition (BIT 0, BIT 1, BIT 2, ...) that is different from
rf path definition (0, 1, 2, ...), and then combinations of rf path are
possible.Signed-off-by: Ping-Ke Shih
Acked-by: Larry Finger
Signed-off-by: Kalle Valo -
NSS is a argument of highest rate in RC, and it occupies bit 4-7 so use
ieee80211_rate_set_vht() to fill the values. Since it got correct rate
index, we don't need to check chips to assign NSS in set function anymore.Signed-off-by: Ping-Ke Shih
Acked-by: Larry Finger
Signed-off-by: Kalle Valo -
Add comments to make it to be easier to understand, and add compile time
assertions.Signed-off-by: Ping-Ke Shih
Acked-by: Larry Finger
Signed-off-by: Kalle Valo -
In older design, the TX power is grouped into rate section (smaller array
size), but new design groups them into rate (larger array size). Thus,
we extend the size for both cases, and add compile time assertion.Signed-off-by: Ping-Ke Shih
Acked-by: Larry Finger
Signed-off-by: Kalle Valo -
In new design, SW_DEFINE[1:0] of tx desc are used by firmware, and the TX
report only contains SW_DEFINE[7:0]. To satisfy with all cases, driver uses
SW_DEFINE[7:2] as sequence number.
Besides, the format of tx report have been changed, so a new flag
RTL_SPEC_EXT_C2H is used to access report.Signed-off-by: Ping-Ke Shih
Acked-by: Larry Finger
Signed-off-by: Kalle Valo -
We are going to add 8822be, which is a VHT 2x2 wifi chip, so add VHT flag
to replace enumeration of chips.Signed-off-by: Ping-Ke Shih
Signed-off-by: Kalle Valo -
Enable the mac80211 fast-tx feature, since our driver already support
hw_flags required by fast-tx and is able to let mac80211 stack to transmit
packet through fast-xmit path.Signed-off-by: Yan-Hsuan Chuang
Signed-off-by: Ping-Ke Shih
Acked-by: Larry Finger
Signed-off-by: Kalle Valo -
Return statements in functions returning bool should use
true/false instead of 1/0.This issue was detected with the help of Coccinelle.
Signed-off-by: Gustavo A. R. Silva
Signed-off-by: Kalle Valo
27 Feb, 2018
5 commits
-
After checking all possible call chains to bcma_pmu_resources_init() here,
my tool finds that this function is never called in atomic context,
namely never in an interrupt handler or holding a spinlock.
Thus mdelay can be replaced with usleep_range to avoid busy wait.This is found by a static analysis tool named DCNS written by myself.
Signed-off-by: Jia-Ju Bai
Acked-by: Larry Finger
Signed-off-by: Kalle Valo -
In case there is no valid MAC address kernel generates random one. This
patch propagate this generated MAC address back to NVS data which will be
uploaded to wl1251 chip. So HW would have same MAC address as linux kernel
uses.This should not change any functionality, but it is better to tell wl1251
correct mac address since beginning of chip usage.Signed-off-by: Pali Rohár
Signed-off-by: Kalle Valo -
This patch implements parsing MAC address from NVS data which are sent to
wl1251 chip. Calibration NVS data could contain valid MAC address and it
will be used instead of randomly generated one.This patch also moves code for requesting NVS data from userspace to driver
initialization code to make sure that NVS data will be there at time when
permanent MAC address is needed.Calibration NVS data for wl1251 are device specific. Every device with
wl1251 chip should have been calibrated in factory and needs to provide own
calibration data.Default example file wl1251-nvs.bin, found in linux-firmware repository,
contains MAC address 00:00:20:07:03:09. So this MAC address is marked as
invalid as it is not real device specific address, just example one.Format of calibration NVS data can be found at:
http://notaz.gp2x.de/misc/pnd/wl1251/nvs_map.txtSigned-off-by: Pali Rohár
Signed-off-by: Kalle Valo -
Before this patch, driver generated random MAC address every time it was
initialized. After that random MAC address could be overwritten with fixed
one, if provided.This patch changes order. First it tries to read fixed MAC address and if
it fails then driver generates random MAC address.Signed-off-by: Pali Rohár
Acked-by: Pavel Machek
Signed-off-by: Kalle Valo -
If kmemdup fails, then wl->nvs_len will contain invalid non-zero size.
Signed-off-by: Pali Rohár
Acked-by: Pavel Machek
Signed-off-by: Kalle Valo
24 Feb, 2018
4 commits
-
Pull networking fixes from David Miller:
1) Fix TTL offset calculation in mac80211 mesh code, from Peter Oh.
2) Fix races with procfs in ipt_CLUSTERIP, from Cong Wang.
3) Memory leak fix in lpm_trie BPF map code, from Yonghong Song.
4) Need to use GFP_ATOMIC in BPF cpumap allocations, from Jason Wang.
5) Fix potential deadlocks in netfilter getsockopt() code paths, from
Paolo Abeni.6) Netfilter stackpointer size checks really are needed to validate
user input, from Florian Westphal.7) Missing timer init in x_tables, from Paolo Abeni.
8) Don't use WQ_MEM_RECLAIM in mac80211 hwsim, from Johannes Berg.
9) When an ibmvnic device is brought down then back up again, it can be
sent queue entries from a previous session, handle this properly
instead of crashing. From Thomas Falcon.10) Fix TCP checksum on LRO buffers in mlx5e, from Gal Pressman.
11) When we are dumping filters in cls_api, the output SKB is empty, and
the filter we are dumping is too large for the space in the SKB, we
should return -EMSGSIZE like other netlink dump operations do.
Otherwise userland has no signal that is needs to increase the size
of its read buffer. From Roman Kapl.12) Several XDP fixes for virtio_net, from Jesper Dangaard Brouer.
13) Module refcount leak in netlink when a dump start fails, from Jason
Donenfeld.14) Handle sub-optimal GSO sizes better in TCP BBR congestion control,
from Eric Dumazet.15) Releasing bpf per-cpu arraymaps can take a long time, add a
condtional scheduling point. From Eric Dumazet.16) Implement retpolines for tail calls in x64 and arm64 bpf JITs. From
Daniel Borkmann.17) Fix page leak in gianfar driver, from Andy Spencer.
18) Missed clearing of estimator scratch buffer, from Eric Dumazet.
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (76 commits)
net_sched: gen_estimator: fix broken estimators based on percpu stats
gianfar: simplify FCS handling and fix memory leak
ipv6 sit: work around bogus gcc-8 -Wrestrict warning
macvlan: fix use-after-free in macvlan_common_newlink()
bpf, arm64: fix out of bounds access in tail call
bpf, x64: implement retpoline for tail call
rxrpc: Fix send in rxrpc_send_data_packet()
net: aquantia: Fix error handling in aq_pci_probe()
bpf: fix rcu lockdep warning for lpm_trie map_free callback
bpf: add schedule points in percpu arrays management
regulatory: add NUL to request alpha2
ibmvnic: Fix early release of login buffer
net/smc9194: Remove bogus CONFIG_MAC reference
net: ipv4: Set addr_type in hash_keys for forwarded case
tcp_bbr: better deal with suboptimal GSO
smsc75xx: fix smsc75xx_set_features()
netlink: put module reference if dump start fails
selftests/bpf/test_maps: exit child process without error in ENOMEM case
selftests/bpf: update gitignore with test_libbpf_open
selftests/bpf: tcpbpf_kern: use in6_* macros from glibc
.. -
…jmorris/linux-security
Pull security subsystem fixes from James Morris:
- keys fixes via David Howells:
"A collection of fixes for Linux keyrings, mostly thanks to Eric
Biggers:- Fix some PKCS#7 verification issues.
- Fix handling of unsupported crypto in X.509.
- Fix too-large allocation in big_key"
- Seccomp updates via Kees Cook:
"These are fixes for the get_metadata interface that landed during
-rc1. While the new selftest is strictly not a bug fix, I think
it's in the same spirit of avoiding bugs"- an IMA build fix from Randy Dunlap
* 'fixes-v4.16-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
integrity/security: fix digsig.c build error with header file
KEYS: Use individual pages in big_key for crypto buffers
X.509: fix NULL dereference when restricting key with unsupported_sig
X.509: fix BUG_ON() when hash algorithm is unsupported
PKCS#7: fix direct verification of SignerInfo signature
PKCS#7: fix certificate blacklisting
PKCS#7: fix certificate chain verification
seccomp: add a selftest for get_metadata
ptrace, seccomp: tweak get_metadata behavior slightly
seccomp, ptrace: switch get_metadata types to arch independent -
Pull arm64 fixes from Catalin Marinas:
"arm64 and perf fixes:- build error when accessing MPIDR_HWID_BITMASK from .S
- fix CTR_EL0 field definitions
- remove/disable some kernel messages on user faults (unhandled
signals, unimplemented syscalls)- fix kernel page fault in unwind_frame() with function graph tracing
- fix perf sleeping while atomic errors when booting with ACPI"
* tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
arm64: fix unwind_frame() for filtered out fn for function graph tracing
arm64: Enforce BBM for huge IO/VMAP mappings
arm64: perf: correct PMUVer probing
arm_pmu: acpi: request IRQs up-front
arm_pmu: note IRQs and PMUs per-cpu
arm_pmu: explicitly enable/disable SPIs at hotplug
arm_pmu: acpi: check for mismatched PPIs
arm_pmu: add armpmu_alloc_atomic()
arm_pmu: fold platform helpers into platform code
arm_pmu: kill arm_pmu_platdata
ARM: ux500: remove PMU IRQ bouncer
arm64: __show_regs: Only resolve kernel symbols when running at EL1
arm64: Remove unimplemented syscall log message
arm64: Disable unhandled signal log messages by default
arm64: cpufeature: Fix CTR_EL0 field definitions
arm64: uaccess: Formalise types for access_ok()
arm64: Fix compilation error while accessing MPIDR_HWID_BITMASK from .S files