Merge android-5.4.11 (fde6e0c) into msm-5.4

* refs/heads/tmp-fde6e0c:
  Linux 5.4.11
  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/mlx5: DR, Init lists that are used in rule's member
  net/mlx5e: Fix hairpin RSS table size
  net/mlx5: DR, No need for atomic refcount for internal SW steering resources
  net/mlx5e: Always print health reporter message to dmesg
  net: dsa: mv88e6xxx: force cmode write on 6141/6341
  net/mlx5: Move devlink registration before interfaces load
  macb: Don't unregister clks unconditionally
  vlan: vlan_changelink() should propagate errors
  vlan: fix memory leak in vlan_dev_set_egress_priority
  net: sch_prio: When ungrafting, replace with FIFO
  mlxsw: spectrum_qdisc: Ignore grafting of invisible FIFO
  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: Fixed link does not need MDIO Bus
  net: stmmac: dwmac-sunxi: Allow all RGMII modes
  net: stmmac: dwmac-sun8i: Allow all RGMII modes
  net: freescale: fec: Fix ethtool -d runtime PM
  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
  tracing: Do not create directories if lockdown is in affect
  selftests: pmtu: fix init mtu value in description
  hv_netvsc: Fix unwanted rx_table reset
  llc2: Fix return statement of llc_stat_ev_rx_null_dsap_xid_c (and _test_c)
  s390/qeth: don't return -ENOTSUPP to userspace
  s390/qeth: fix promiscuous mode after reset
  s390/qeth: handle error due to unsupported transport mode
  sbitmap: only queue kyber's wait callback if not already active
  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
  block: Fix a lockdep complaint triggered by request queue flushing
  arm64: cpu_errata: Add Hisilicon TSV110 to spectre-v2 safe list
  platform/x86: pcengines-apuv2: fix simswap GPIO assignment
  net/ixgbe: Fix concurrency issues between config flow and XSK
  net/i40e: Fix concurrency issues between config flow and XSK
  net/mlx5e: Fix concurrency issues between config flow and XSK
  xsk: Add rcu_read_lock around the XSK wakeup
  tpm/tpm_ftpm_tee: add shutdown call back
  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
  net: stmmac: Determine earlier the size of RX buffer
  net: stmmac: selftests: Needs to check the number of Multicast regs
  clk: Move clk_core_reparent_orphans() under CONFIG_OF
  io_uring: don't wait when under-submitting
  iommu/dma: Relax locking in iommu_dma_prepare_msi()
  perf/smmuv3: Remove the leftover put_cpu() in error path
  fs: call fsnotify_sb_delete after evict_inodes
  fs: avoid softlockups in s_inodes iterators
  block: end bio with BLK_STS_AGAIN in case of non-mq devs and REQ_NOWAIT
  usb: typec: fusb302: Fix an undefined reference to 'extcon_get_state'
  psi: Fix a division error in psi poll()
  sched/psi: Fix sampling error and rare div0 crashes with cgroups and high uptime
  perf/x86/intel: Fix PT PMI handling
  perf/x86: Fix potential out-of-bounds access
  scripts: package: mkdebian: add missing rsync dependency
  kconfig: don't crash on NULL expressions in expr_eq()
  iommu/iova: Init the struct iova to fix the possible memleak
  staging: axis-fifo: add unspecified HAS_IOMEM dependency
  clk: at91: fix possible deadlock
  spi: nxp-fspi: Ensure width is respected in spi-mem operations
  regulator: rn5t618: fix module aliases
  ASoC: wm8962: fix lambda value
  rfkill: Fix incorrect check to avoid NULL pointer dereference
  parisc: add missing __init annotation
  parisc: fix compilation when KEXEC=n and KEXEC_FILE=y
  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
  habanalabs: remove variable 'val' set but not used
  habanalabs: rate limit error msg on waiting for CS
  bpf: Clear skb->tstamp in bpf_redirect when necessary
  ocxl: Fix potential memory leak on context creation
  Btrfs: fix hole extent items with a zero size after range cloning
  btrfs: handle error in btrfs_cache_block_group
  powerpc/spinlocks: Include correct header for static key
  powerpc/vcpu: Assume dedicated processors as non-preempt
  Btrfs: fix cloning range with a hole when using the NO_HOLES feature
  btrfs: Fix error messages in qgroup_rescan_init
  powerpc: Ensure that swiotlb buffer is allocated from low memory
  pinctrl: pinmux: fix a possible null pointer in pinmux_can_be_used_for_gpio
  cfg80211: fix double-free after changing network namespace
  mac80211: fix TID field in monitor mode transmit
  clk: walk orphan list on clock provider registration
  bus: ti-sysc: Fix missing reset delay handling
  pinctrl: aspeed-g6: Fix LPC/eSPI mux configuration
  ARM: imx_v6_v7_defconfig: Explicitly restore CONFIG_DEBUG_FS
  arm64: dts: ls1028a: fix reboot node
  samples: bpf: fix syscall_tp due to unused syscall
  samples: bpf: Replace symbol compare of trace_event
  kselftest: Support old perl versions
  kselftest/runner: Print new line in print of timeout log
  ARM: dts: am437x-gp/epos-evm: fix panel compatible
  spi: spi-ti-qspi: Fix a bug when accessing non default CS
  perf header: Fix false warning when there are no duplicate cache entries
  perf metricgroup: Fix printing event names of metric group with multiple events
  bpftool: Don't crash on missing jited insns or ksyms
  bpf, mips: Limit to 33 tail calls
  bpf, riscv: Limit to 33 tail calls
  arm64: dts: ls1028a: fix typo in TMU calibration data
  ARM: dts: bcm283x: Fix critical trip point
  ARM: omap2plus_defconfig: Add back DEBUG_FS
  ARM: dts: am335x-sancloud-bbe: fix phy mode
  ASoC: SOF: Intel: split cht and byt debug window sizes
  ASoC: SOF: loader: snd_sof_fw_parse_ext_data log warning on unknown header
  ASoC: topology: Check return value for soc_tplg_pcm_create()
  ASoC: topology: Check return value for snd_soc_add_dai_link()
  reset: Do not register resource data for missing resets
  spi: spi-cavium-thunderx: Add missing pci_release_regions()
  ARM: dts: Cygnus: Fix MDIO node address/size cells
  ARM: exynos_defconfig: Restore debugfs support
  selftests: safesetid: Fix Makefile to set correct test program
  selftests: safesetid: Check the return value of setuid/setgid
  selftests: safesetid: Move link library to LDLIBS
  selftests/ftrace: Fix multiple kprobe testcase
  selftests/ftrace: Do not to use absolute debugfs path
  selftests/ftrace: Fix ftrace test cases to check unsupported
  selftests/ftrace: Fix to check the existence of set_ftrace_filter
  ARM: dts: BCM5301X: Fix MDIO node address/size cells
  netfilter: nf_tables_offload: return EOPNOTSUPP if rule specifies no actions
  netfilter: nf_tables: skip module reference count bump on object updates
  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/earlycon: Remap entire framebuffer after page initialization
  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
  selftests: netfilter: use randomized netns names
  ASoC: Intel: bytcr_rt5640: Update quirk for Teclast X89
  x86/efi: Update e820 with reserved EFI boot services data to fix kexec breakage
  regulator: core: fix regulator_register() error paths to properly release rdev
  libtraceevent: Copy pkg-config file to output folder when using O=
  libtraceevent: Fix lib installation with O=
  mwifiex: Fix heap overflow in mmwifiex_process_tdls_action_frame()
  netfilter: nf_tables_offload: Check for the NETDEV_UNREGISTER event
  x86/intel: Disable HPET on Intel Ice Lake platforms
  netfilter: ctnetlink: netns exit must wait for callbacks
  locking/spinlock/debug: Fix various data races
  spi: fsl: Handle the single hardwired chipselect case
  gpio: Handle counting of Freescale chipselects
  spi: fsl: Fix GPIO descriptor support
  ASoC: max98090: fix possible race conditions
  regulator: fix use after free issue
  spi: pxa2xx: Add support for Intel Jasper Lake
  ASoC: rt5682: fix i2c arbitration lost issue
  bpf: Fix passing modified ctx to ld/abs/ind instruction
  USB: dummy-hcd: use usb_urb_dir_in instead of usb_pipein
  ANDROID: Kconfig.gki: Add QCOM_SCM to QCOM Hidden configs
  ANDROID: iommu/arm-smmu: Allow inherting stream mapping from bootloader
  ANDROID: iommu/arm-smmu: Expose s2cr and smr structs to impl
  ANDROID: iommu/arm-smmu: Don't blindly use first SMR to calculate mask
  ANDROID: clk: qcom: Add sync_state = clk_sync_state for db845c clock providers
  UPSTREAM: net: usbnet: Fix -Wcast-function-type
  UPSTREAM: PM / QoS: Restore DEV_PM_QOS_MIN/MAX_FREQUENCY
  UPSTREAM: PM / QoS: Reorder pm_qos/freq_qos/dev_pm_qos structs
  UPSTREAM: USB: dummy-hcd: use usb_urb_dir_in instead of usb_pipein
  ANDROID: update kernel ABI (perf_event changes)
  BACKPORT: perf_event: Add support for LSM and SELinux checks
  ANDROID: Enable HID_STEAM and JOYSTICK_XPAD as y

Conflicts:
	drivers/iommu/arm-smmu.c
	drivers/iommu/dma-iommu.c
	include/linux/pm_qos.h
	init/Kconfig.gki
	kernel/sched/psi.c

Restored change a7f7e61270 ("usb: dwc3: gadget: Fix logical condition")
since it is safe due to import of 158cbd970b ("usb: dwc3: gadget:
Fix request complete check").

Change-Id: Id8931bdd4b8a6bde233d654abc87019fc6f2ec22
Signed-off-by: Blagovest Kolenichev <bkolenichev@codeaurora.org>
This commit is contained in:
Blagovest Kolenichev 2020-03-07 10:01:57 -08:00
commit 6ec8cd9d1e
221 changed files with 51862 additions and 50108 deletions

View file

@ -11,6 +11,7 @@
#include <linux/trace_seq.h>
#include <linux/spinlock.h>
#include <linux/irq_work.h>
#include <linux/security.h>
#include <linux/uaccess.h>
#include <linux/hardirq.h>
#include <linux/kthread.h> /* for self test */
@ -5068,6 +5069,11 @@ static __init int test_ringbuffer(void)
int cpu;
int ret = 0;
if (security_locked_down(LOCKDOWN_TRACEFS)) {
pr_warning("Lockdown is enabled, skipping ring buffer tests\n");
return 0;
}
pr_info("Running ring buffer tests...\n");
buffer = ring_buffer_alloc(RB_TEST_BUFFER_SIZE, RB_FL_OVERWRITE);

View file

@ -1805,6 +1805,12 @@ int __init register_tracer(struct tracer *type)
return -1;
}
if (security_locked_down(LOCKDOWN_TRACEFS)) {
pr_warning("Can not register tracer %s due to lockdown\n",
type->name);
return -EPERM;
}
mutex_lock(&trace_types_lock);
tracing_selftest_running = true;
@ -8663,6 +8669,11 @@ struct dentry *tracing_init_dentry(void)
{
struct trace_array *tr = &global_trace;
if (security_locked_down(LOCKDOWN_TRACEFS)) {
pr_warning("Tracing disabled due to lockdown\n");
return ERR_PTR(-EPERM);
}
/* The top level trace array uses NULL as parent */
if (tr->dir)
return NULL;
@ -9105,6 +9116,12 @@ __init static int tracer_alloc_buffers(void)
int ring_buf_size;
int ret = -ENOMEM;
if (security_locked_down(LOCKDOWN_TRACEFS)) {
pr_warning("Tracing disabled due to lockdown\n");
return -EPERM;
}
/*
* Make sure we don't accidently add more trace options
* than we have bits for.

View file

@ -8,6 +8,7 @@
#include <linux/module.h>
#include <linux/kprobes.h>
#include <linux/security.h>
#include "trace.h"
#include "trace_probe.h"
@ -26,8 +27,10 @@ static int total_ref_count;
static int perf_trace_event_perm(struct trace_event_call *tp_event,
struct perf_event *p_event)
{
int ret;
if (tp_event->perf_perm) {
int ret = tp_event->perf_perm(tp_event, p_event);
ret = tp_event->perf_perm(tp_event, p_event);
if (ret)
return ret;
}
@ -46,8 +49,9 @@ static int perf_trace_event_perm(struct trace_event_call *tp_event,
/* The ftrace function trace is allowed only for root. */
if (ftrace_event_is_function(tp_event)) {
if (perf_paranoid_tracepoint_raw() && !capable(CAP_SYS_ADMIN))
return -EPERM;
ret = perf_allow_tracepoint(&p_event->attr);
if (ret)
return ret;
if (!is_sampling_event(p_event))
return 0;
@ -82,8 +86,9 @@ static int perf_trace_event_perm(struct trace_event_call *tp_event,
* ...otherwise raw tracepoint data can be a severe data leak,
* only allow root to have these.
*/
if (perf_paranoid_tracepoint_raw() && !capable(CAP_SYS_ADMIN))
return -EPERM;
ret = perf_allow_tracepoint(&p_event->attr);
if (ret)
return ret;
return 0;
}