tree 4e5aca665e6b747950aeb5696758e5cb5369037c
parent a8e264b6a6a43a5997093d3df446c3fc4428d560
parent 9ae2c670d8df85cc3b44cd02c063ddd1e1ffa14d
author Kyle Yan <kyan@codeaurora.org> 1501285948 -0700
committer Kyle Yan <kyan@codeaurora.org> 1501285955 -0700

Merge remote-tracking branch '4.9/tmp-9ae2c67' into 4.9

* 4.9/tmp-9ae2c67:
  Linux 4.9.40
  alarmtimer: don't rate limit one-shot timers
  tracing: Fix kmemleak in instance_rmdir
  PM / Domains: defer dev_pm_domain_set() until genpd->attach_dev succeeds if present
  reiserfs: Don't clear SGID when inheriting ACLs
  spmi: Include OF based modalias in device uevent
  of: device: Export of_device_{get_modalias, uvent_modalias} to modules
  acpi/nfit: Fix memory corruption/Unregister mce decoder on failure
  ovl: fix random return value on mount
  hfsplus: Don't clear SGID when inheriting ACLs
  mlx5: Avoid that mlx5_ib_sg_to_klms() overflows the klms[] array
  drm/mst: Avoid processing partially received up/down message transactions
  drm/mst: Avoid dereferencing a NULL mstb in drm_dp_mst_handle_up_req()
  drm/mst: Fix error handling during MST sideband message reception
  RDMA/core: Initialize port_num in qp_attr
  ceph: fix race in concurrent readdir
  staging: lustre: ko2iblnd: check copy_from_iter/copy_to_iter return code
  staging: sm750fb: avoid conflicting vesafb
  staging: comedi: ni_mio_common: fix AO timer off-by-one regression
  staging: rtl8188eu: add TL-WN722N v2 support
  Revert "perf/core: Drop kernel samples even though :u is specified"
  perf annotate: Fix broken arrow at row 0 connecting jmp instruction to its target
  iser-target: Avoid isert_conn->cm_id dereference in isert_login_recv_done
  target: Fix COMPARE_AND_WRITE caw_sem leak during se_cmd quiesce
  udf: Fix deadlock between writeback and udf_setsize()
  NFS: only invalidate dentrys that are clearly invalid.
  sunrpc: use constant time memory comparison for mac
  IB/core: Namespace is mandatory input for address resolution
  IB/iser: Fix connection teardown race condition
  Input: i8042 - fix crash at boot time
  MIPS: Fix a typo: s/preset/present/ in r2-to-r6 emulation error message
  MIPS: Send SIGILL for R6 branches in `__compute_return_epc_for_insn'
  MIPS: Send SIGILL for linked branches in `__compute_return_epc_for_insn'
  MIPS: Rename `sigill_r6' to `sigill_r2r6' in `__compute_return_epc_for_insn'
  MIPS: Send SIGILL for BPOSGE32 in `__compute_return_epc_for_insn'
  MIPS: math-emu: Prevent wrong ISA mode instruction emulation
  MIPS: Fix unaligned PC interpretation in `compute_return_epc'
  MIPS: Actually decode JALX in `__compute_return_epc_for_insn'
  MIPS: Save static registers before sysmips
  MIPS: Fix MIPS I ISA /proc/cpuinfo reporting
  x86/ioapic: Pass the correct data to unmask_ioapic_irq()
  x86/acpi: Prevent out of bound access caused by broken ACPI tables
  Revert "ACPI / EC: Enable event freeze mode..." to fix a regression
  ACPI / EC: Drop EC noirq hooks to fix a regression
  ubifs: Don't leak kernel memory to the MTD
  MIPS: Negate error syscall return in trace
  MIPS: Fix mips_atomic_set() with EVA
  MIPS: Fix mips_atomic_set() retry condition
  ftrace: Fix uninitialized variable in match_records()
  nvme-rdma: remove race conditions from IB signalling
  vfio: New external user group/file match
  vfio: Fix group release deadlock
  ovl: drop CAP_SYS_RESOURCE from saved mounter's credentials
  drm/ttm: Fix use-after-free in ttm_bo_clean_mm
  f2fs: Don't clear SGID when inheriting ACLs
  f2fs: sanity check size of nat and sit cache
  xfs: Don't clear SGID when inheriting ACLs
  ipmi:ssif: Add missing unlock in error branch
  ipmi: use rcu lock around call to intf->handlers->sender()
  drm/radeon: Fix eDP for single-display iMac10,1 (v2)
  drm/radeon/ci: disable mclk switching for high refresh rates (v2)
  drm/amd/amdgpu: Return error if initiating read out of range on vram
  s390/syscalls: Fix out of bounds arguments access
  Raid5 should update rdev->sectors after reshape
  ext2: Don't clear SGID when inheriting ACLs
  libnvdimm: fix badblock range handling of ARS range
  libnvdimm, btt: fix btt_rw_page not returning errors
  cx88: Fix regression in initial video standard setting
  x86/xen: allow userspace access during hypercalls
  md: don't use flush_signals in userspace processes
  usb: renesas_usbhs: gadget: disable all eps when the driver stops
  usb: renesas_usbhs: fix usbhsc_resume() for !USBHSF_RUNTIME_PWCTRL
  USB: cdc-acm: add device-id for quirky printer
  usb: storage: return on error to avoid a null pointer dereference
  mxl111sf: Fix driver to use heap allocate buffers for USB messages
  xhci: Bad Ethernet performance plugged in ASM1042A host
  xhci: Fix NULL pointer dereference when cleaning up streams for removed host
  xhci: fix 20000ms port resume timeout
  ipvs: SNAT packet replies only for NATed connections
  PCI/PM: Restore the status of PCI devices across hibernation
  PCI: rockchip: Use normal register bank for config accessors
  PCI: Work around poweroff & suspend-to-RAM issue on Macbook Pro 11
  af_key: Fix sadb_x_ipsecrequest parsing
  powerpc/mm/radix: Properly clear process table entry
  powerpc/asm: Mark cr0 as clobbered in mftb()
  powerpc: Fix emulation of mfocrf in emulate_step()
  powerpc: Fix emulation of mcrf in emulate_step()
  powerpc/64: Fix atomic64_inc_not_zero() to return an int
  powerpc/pseries: Fix passing of pp0 in updatepp() and updateboltedpp()
  xen/scsiback: Fix a TMR related use-after-free
  iscsi-target: Add login_keys_workaround attribute for non RFC initiators
  scsi: Add STARGET_CREATED_REMOVE state to scsi_target_state
  scsi: ses: do not add a device to an enclosure if enclosure_add_links() fails.
  PM / Domains: Fix unsafe iteration over modified list of domains
  PM / Domains: Fix unsafe iteration over modified list of domain providers
  PM / Domains: Fix unsafe iteration over modified list of device links
  ASoC: compress: Derive substream from stream based on direction
  igb: Explicitly select page 0 at initialization
  btrfs: Don't clear SGID when inheriting ACLs
  wlcore: fix 64K page support
  Bluetooth: use constant time memory comparison for secret values
  perf intel-pt: Clear FUP flag on error
  perf intel-pt: Use FUP always when scanning for an IP
  perf intel-pt: Ensure never to set 'last_ip' when packet 'count' is zero
  perf intel-pt: Fix last_ip usage
  perf intel-pt: Ensure IP is zero when state is INTEL_PT_STATE_NO_IP
  perf intel-pt: Fix missing stack clear
  perf intel-pt: Improve sample timestamp
  perf intel-pt: Move decoder error setting into one condition
  NFC: Add sockaddr length checks before accessing sa_family in bind handlers
  nfc: Fix the sockaddr length sanitization in llcp_sock_connect
  nfc: Ensure presence of required attributes in the activate_target handler
  NFC: nfcmrvl: fix firmware-management initialisation
  NFC: nfcmrvl: use nfc-device for firmware download
  NFC: nfcmrvl: do not use device-managed resources
  NFC: nfcmrvl_uart: add missing tty-device sanity check
  NFC: fix broken device allocation
  ath9k: fix an invalid pointer dereference in ath9k_rng_stop()
  ath9k: fix tx99 bus error
  ath9k: fix tx99 use after free
  thermal: cpu_cooling: Avoid accessing potentially freed structures
  thermal: max77620: fix device-node reference imbalance
  s5p-jpeg: don't return a random width/height
  dm mpath: cleanup -Wbool-operation warning in choose_pgpath()
  ir-core: fix gcc-7 warning on bool arithmetic
  disable new gcc-7.1.1 warnings for now
  Use %zu to print resid (size_t).
  ANDROID: keychord: Fix a slab out-of-bounds read.
  UPSTREAM: af_key: Fix sadb_x_ipsecrequest parsing
  ANDROID: lowmemorykiller: Add tgid to kill message
  Revert "ANDROID: proc: smaps: Allow smaps access for CAP_SYS_RESOURCE"
  4.9.39
  kvm: vmx: allow host to access guest MSR_IA32_BNDCFGS
  kvm: vmx: Check value written to IA32_BNDCFGS
  kvm: x86: Guest BNDCFGS requires guest MPX support
  kvm: vmx: Do not disable intercepts for BNDCFGS
  tracing: Use SOFTIRQ_OFFSET for softirq dectection for more accurate results
  PM / QoS: return -EINVAL for bogus strings
  PM / wakeirq: Convert to SRCU
  sched/topology: Fix overlapping sched_group_mask
  sched/topology: Optimize build_group_mask()
  sched/topology: Fix building of overlapping sched-groups
  sched/fair, cpumask: Export for_each_cpu_wrap()
  Revert "sched/core: Optimize SCHED_SMT"
  crypto: caam - fix signals handling
  crypto: caam - properly set IV after {en,de}crypt
  crypto: sha1-ssse3 - Disable avx2
  crypto: atmel - only treat EBUSY as transient if backlog
  crypto: talitos - Extend max key length for SHA384/512-HMAC and AEAD
  mm: fix overflow check in expand_upwards()
  selftests/capabilities: Fix the test_execve test
  mnt: Make propagate_umount less slow for overlapping mount propagation trees
  mnt: In propgate_umount handle visiting mounts in any order
  mnt: In umount propagation reparent in a separate pass
  nvmem: core: fix leaks on registration errors
  rcu: Add memory barriers for NOCB leader wakeup
  vt: fix unchecked __put_user() in tioclinux ioctls
  ARM64: dts: marvell: armada37xx: Fix timer interrupt specifiers
  exec: Limit arg stack to at most 75% of _STK_LIM
  s390: reduce ELF_ET_DYN_BASE
  powerpc: move ELF_ET_DYN_BASE to 4GB / 4MB
  arm64: move ELF_ET_DYN_BASE to 4GB / 4MB
  arm: move ELF_ET_DYN_BASE to 4MB
  binfmt_elf: use ELF_ET_DYN_BASE only for PIE
  checkpatch: silence perl 5.26.0 unescaped left brace warnings
  fs/dcache.c: fix spin lockup issue on nlru->lock
  mm/list_lru.c: fix list_lru_count_node() to be race free
  kernel/extable.c: mark core_kernel_text notrace
  thp, mm: fix crash due race in MADV_FREE handling
  tools/lib/lockdep: Reduce MAX_LOCK_DEPTH to avoid overflowing lock_chain/: Depth
  parisc/mm: Ensure IRQs are off in switch_mm()
  parisc: DMA API: return error instead of BUG_ON for dma ops on non dma devs
  parisc: use compat_sys_keyctl()
  parisc: Report SIGSEGV instead of SIGBUS when running out of stack
  irqchip/gic-v3: Fix out-of-bound access in gic_set_affinity
  cfg80211: Check if NAN service ID is of expected size
  cfg80211: Check if PMKID attribute is of expected size
  cfg80211: Validate frequencies nested in NL80211_ATTR_SCAN_FREQUENCIES
  cfg80211: Define nla_policy for NL80211_ATTR_LOCAL_MESH_POWER_MODE
  sfc: don't read beyond unicast address list
  brcmfmac: Fix glom_skb leak in brcmf_sdiod_recv_chain
  brcmfmac: Fix a memory leak in error handling path in 'brcmf_cfg80211_attach'
  brcmfmac: fix possible buffer overflow in brcmf_cfg80211_mgmt_tx()
  rds: tcp: use sock_create_lite() to create the accept socket
  vrf: fix bug_on triggered by rx when destroying a vrf
  net: ipv6: Compare lwstate in detecting duplicate nexthops
  net: core: Fix slab-out-of-bounds in netdev_stats_to_stats64
  vxlan: fix hlist corruption
  ipv6: dad: don't remove dynamic addresses if link is down
  net/mlx5e: Fix TX carrier errors report in get stats ndo
  liquidio: fix bug in soft reset failure detection
  net/mlx5: Cancel delayed recovery work when unloading the driver
  net: handle NAPI_GRO_FREE_STOLEN_HEAD case also in napi_frags_finish()
  bpf: prevent leaking pointer via xadd on unpriviledged
  rocker: move dereference before free
  bridge: mdb: fix leak on complete_info ptr on fail path
  net: prevent sign extension in dev_get_stats()
  tcp: reset sk_rx_dst in tcp_disconnect()
  net: dp83640: Avoid NULL pointer dereference.
  ipv6: avoid unregistering inet6_dev for loopback
  net/phy: micrel: configure intterupts after autoneg workaround
  net: sched: Fix one possible panic when no destroy callback
  net_sched: fix error recovery at qdisc creation
  xen-netfront: Rework the fix for Rx stall during OOM and network stress
  ANDROID: android-verity: mark dev as rw for linear target
  ANDROID: sdcardfs: Remove unnecessary lock
  ANDROID: binder: don't check prio permissions on restore.
  Add BINDER_GET_NODE_DEBUG_INFO ioctl
  ANDROID: binder: add RT inheritance flag to node.
  ANDROID: binder: improve priority inheritance.
  ANDROID: binder: add min sched_policy to node.
  ANDROID: binder: add support for RT prio inheritance.
  ANDROID: binder: push new transactions to waiting threads.
  ANDROID: binder: remove proc waitqueue

Conflicts:
	drivers/staging/android/lowmemorykiller.c

Change-Id: I2954e47d7e4fc74cf9bb5033fc151537958b78af
Signed-off-by: Kyle Yan <kyan@codeaurora.org>
