* refs/heads/tmp-138a4a6:
Linux 4.19.95
usb: missing parentheses in USE_NEW_SCHEME
USB: serial: option: add Telit ME910G1 0x110a composition
USB: core: fix check for duplicate endpoints
usb: dwc3: gadget: Fix request complete check
net: sch_prio: When ungrafting, replace with FIFO
mlxsw: spectrum_qdisc: Ignore grafting of invisible FIFO
vlan: vlan_changelink() should propagate errors
vlan: fix memory leak in vlan_dev_set_egress_priority
vxlan: fix tos value before xmit
tcp: fix "old stuff" D-SACK causing SACK to be treated as D-SACK
sctp: free cmd->obj.chunk for the unprocessed SCTP_CMD_REPLY
sch_cake: avoid possible divide by zero in cake_enqueue()
pkt_sched: fq: do not accept silly TCA_FQ_QUANTUM
net: usb: lan78xx: fix possible skb leak
net: stmmac: dwmac-sunxi: Allow all RGMII modes
net: stmmac: dwmac-sun8i: Allow all RGMII modes
net: dsa: mv88e6xxx: Preserve priority when setting CPU port.
macvlan: do not assume mac_header is set in macvlan_broadcast()
gtp: fix bad unlock balance in gtp_encap_enable_socket
PCI/switchtec: Read all 64 bits of part_event_bitmap
ARM: dts: imx6ul: use nvmem-cells for cpu speed grading
cpufreq: imx6q: read OCOTP through nvmem for imx6ul/imx6ull
powerpc/spinlocks: Include correct header for static key
powerpc/vcpu: Assume dedicated processors as non-preempt
hv_netvsc: Fix unwanted rx_table reset
llc2: Fix return statement of llc_stat_ev_rx_null_dsap_xid_c (and _test_c)
parisc: Fix compiler warnings in debug_core.c
block: fix memleak when __blk_rq_map_user_iov() is failed
s390/dasd: fix memleak in path handling error case
s390/dasd/cio: Interpret ccw_device_get_mdc return value correctly
drm/exynos: gsc: add missed component_del
s390/purgatory: do not build purgatory with kcov, kasan and friends
net: stmmac: Always arm TX Timer at end of transmission start
net: stmmac: RX buffer size must be 16 byte aligned
net: stmmac: xgmac: Clear previous RX buffer size
net: stmmac: Do not accept invalid MTU values
fs: avoid softlockups in s_inodes iterators
perf/x86/intel: Fix PT PMI handling
kconfig: don't crash on NULL expressions in expr_eq()
iommu/iova: Init the struct iova to fix the possible memleak
regulator: rn5t618: fix module aliases
ASoC: wm8962: fix lambda value
rfkill: Fix incorrect check to avoid NULL pointer dereference
parisc: add missing __init annotation
net: usb: lan78xx: Fix error message format specifier
cxgb4: Fix kernel panic while accessing sge_info
bnx2x: Fix logic to get total no. of PFs per engine
bnx2x: Do not handle requests from VFs after parity
bpf: Clear skb->tstamp in bpf_redirect when necessary
btrfs: Fix error messages in qgroup_rescan_init
powerpc: Ensure that swiotlb buffer is allocated from low memory
samples: bpf: fix syscall_tp due to unused syscall
samples: bpf: Replace symbol compare of trace_event
ARM: dts: am437x-gp/epos-evm: fix panel compatible
spi: spi-ti-qspi: Fix a bug when accessing non default CS
bpf, mips: Limit to 33 tail calls
bnxt_en: Return error if FW returns more data than dump length
ARM: dts: bcm283x: Fix critical trip point
ASoC: topology: Check return value for soc_tplg_pcm_create()
spi: spi-cavium-thunderx: Add missing pci_release_regions()
ARM: dts: Cygnus: Fix MDIO node address/size cells
selftests/ftrace: Fix multiple kprobe testcase
ARM: dts: BCM5301X: Fix MDIO node address/size cells
netfilter: nf_tables: validate NFT_DATA_VALUE after nft_data_init()
netfilter: nf_tables: validate NFT_SET_ELEM_INTERVAL_END
netfilter: nft_set_rbtree: bogus lookup/get on consecutive elements in named sets
netfilter: uapi: Avoid undefined left-shift in xt_sctp.h
ARM: vexpress: Set-up shared OPP table instead of individual for each CPU
ARM: dts: imx6ul: imx6ul-14x14-evk.dtsi: Fix SPI NOR probing
efi/gop: Fix memory leak in __gop_query32/64()
efi/gop: Return EFI_SUCCESS if a usable GOP was found
efi/gop: Return EFI_NOT_FOUND if there are no usable GOPs
ASoC: Intel: bytcr_rt5640: Update quirk for Teclast X89
x86/efi: Update e820 with reserved EFI boot services data to fix kexec breakage
libtraceevent: Fix lib installation with O=
mwifiex: Fix heap overflow in mmwifiex_process_tdls_action_frame()
netfilter: ctnetlink: netns exit must wait for callbacks
locking/spinlock/debug: Fix various data races
ASoC: max98090: fix possible race conditions
regulator: fix use after free issue
bpf: Fix passing modified ctx to ld/abs/ind instruction
USB: dummy-hcd: increase max number of devices to 32
USB: dummy-hcd: use usb_urb_dir_in instead of usb_pipein
Conflicts:
kernel/locking/spinlock_debug.c
1683149 ("usb: dwc3: gadget: Fix logical condition") was reverted
on importing android-4.19-q.90 into msm-4.19 as this change
prevented the adbd userspace daemon from ever receiving packets
from the kernel USB driver. android-4.19-q.95 introduced new
change ceaeb21b ("usb: dwc3: gadget: Fix request complete check")
that fixed the regression, hence it is safe to restore the revert.
It is done in this merge.
Change-Id: I5f839319ad7746728a98c01f8b5c3dab9c9f368a
Signed-off-by: Ivaylo Georgiev <irgeorgiev@codeaurora.org>
[ Upstream commit 1a365e822372ba24c9da0822bc583894f6f3d821 ]
This fixes various data races in spinlock_debug. By testing with KCSAN,
it is observable that the console gets spammed with data races reports,
suggesting these are extremely frequent.
Example data race report:
read to 0xffff8ab24f403c48 of 4 bytes by task 221 on cpu 2:
debug_spin_lock_before kernel/locking/spinlock_debug.c:85 [inline]
do_raw_spin_lock+0x9b/0x210 kernel/locking/spinlock_debug.c:112
__raw_spin_lock include/linux/spinlock_api_smp.h:143 [inline]
_raw_spin_lock+0x39/0x40 kernel/locking/spinlock.c:151
spin_lock include/linux/spinlock.h:338 [inline]
get_partial_node.isra.0.part.0+0x32/0x2f0 mm/slub.c:1873
get_partial_node mm/slub.c:1870 [inline]
<snip>
write to 0xffff8ab24f403c48 of 4 bytes by task 167 on cpu 3:
debug_spin_unlock kernel/locking/spinlock_debug.c:103 [inline]
do_raw_spin_unlock+0xc9/0x1a0 kernel/locking/spinlock_debug.c:138
__raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:159 [inline]
_raw_spin_unlock_irqrestore+0x2d/0x50 kernel/locking/spinlock.c:191
spin_unlock_irqrestore include/linux/spinlock.h:393 [inline]
free_debug_processing+0x1b3/0x210 mm/slub.c:1214
__slab_free+0x292/0x400 mm/slub.c:2864
<snip>
As a side-effect, with KCSAN, this eventually locks up the console, most
likely due to deadlock, e.g. .. -> printk lock -> spinlock_debug ->
KCSAN detects data race -> kcsan_print_report() -> printk lock ->
deadlock.
This fix will 1) avoid the data races, and 2) allow using lock debugging
together with KCSAN.
Reported-by: Qian Cai <cai@lca.pw>
Signed-off-by: Marco Elver <elver@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Paul E. McKenney <paulmck@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Will Deacon <will.deacon@arm.com>
Link: https://lkml.kernel.org/r/20191120155715.28089-1-elver@google.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Currently dump_stack is printed once a spin_bug is detected for rwlock.
So provide an options to trigger a panic or watchdog bite for debugging
rwlock magic corruptions and lockups.
Change-Id: I20807e8eceb8b81635e58701d1f9f9bd36ab5877
Signed-off-by: Prasad Sodagudi <psodagud@codeaurora.org>
Signed-off-by: Venkata Narendra Kumar Gutta <vnkgutta@codeaurora.org>
Currently we cause a BUG_ON once a spin_bug is detected, but
that causes a whole lot of processing and the other CPUs would
have proceeded to perform other actions and the state of the
system is moved by the time we can analyze it.
Provide an option to trigger a watchdog bite instead so that we
can get the traces as close to the issue as possible.
Change-Id:Ic8d692ebd02c6940a3b4e5798463744db20b0026
Signed-off-by: Rohit Vaswani <rvaswani@codeaurora.org>
Signed-off-by: Rishabh Bhatnagar <rishabhb@codeaurora.org>