This refactors original KSU hooks to replace deep kernel function hooks with targeted hooks.
This backports KernelSU pr#1657 and having pr#2084 elements (32-bit sucompat).
It reduces the scope of kernel function interception and still maintains full fucntionality.
This commit is a squash of the following:
* fs/exec: do_execve: ksu_handle_execve_sucompat hook
* fs/exec: compat_do_execve: ksu_handle_execve_sucompat hook
fs/open: sys_faccessat: ksu_handle_faccessat hook
* fs/read_write: sys_read: ksu_handle_sys_read hook
* fs/stat: sys_newfstatat: ksu_handle_stat hook
* fs/stat: sys_fstatat64: ksu_handle_stat hook
* drivers: input: input_event: ksu_handle_input_handle_event hook
references: KernelSU pr#1657, pr#2084
https://kernelsu.org/guide/how-to-integrate-for-non-gki.html
Signed-off-by: backslashxx <118538522+backslashxx@users.noreply.github.com>
* common/android-4.9-q:
ANDROID: android-verity: Prevent double-freeing metadata
Linux 4.9.317
bpf: Enlarge offset check value to INT_MAX in bpf_skb_{load,store}_bytes
NFSD: Fix possible sleep during nfsd4_release_lockowner()
tpm: ibmvtpm: Correct the return value in tpm_ibmvtpm_probe()
dm verity: set DM_TARGET_IMMUTABLE feature flag
dm stats: add cond_resched when looping over entries
dm crypt: make printing of the key constant-time
exec: Force single empty string when argv is empty
block-map: add __GFP_ZERO flag for alloc_page in function bio_copy_kern
drm/i915: Fix -Wstringop-overflow warning in call to intel_read_wm_latency()
assoc_array: Fix BUG_ON during garbage collect
drivers: i2c: thunderx: Allow driver to work with ACPI defined TWSI controllers
net: af_key: check encryption module availability consistency
Linux 4.9.316
net: stmmac: fix missing pci_disable_device() on error in stmmac_pci_probe()
ethernet: tulip: fix missing pci_disable_device() on error in tulip_init_one()
mac80211: fix rx reordering with non explicit / psmp ack policy
scsi: qla2xxx: Fix missed DMA unmap for aborted commands
perf bench numa: Address compiler error on s390
igb: skip phy status check where unavailable
ARM: 9197/1: spectre-bhb: fix loop8 sequence for Thumb2
ARM: 9196/1: spectre-bhb: enable for Cortex-A15
net: af_key: add check for pfkey_broadcast in function pfkey_process
NFC: nci: fix sleep in atomic context bugs caused by nci_skb_alloc
net/qla3xxx: Fix a test in ql_reset_work()
net: vmxnet3: fix possible NULL pointer dereference in vmxnet3_rq_cleanup()
net: vmxnet3: fix possible use-after-free bugs in vmxnet3_rq_alloc_rx_buf()
drm/dp/mst: fix a possible memory leak in fetch_monitor_name()
perf: Fix sys_perf_event_open() race against self
ALSA: wavefront: Proper check of get_user() error
mmc: core: Default to generic_cmd6_time as timeout in __mmc_switch()
mmc: block: Use generic_cmd6_time when modifying INAND_CMD38_ARG_EXT_CSD
mmc: core: Specify timeouts for BKOPS and CACHE_FLUSH for eMMC
ARM: 9191/1: arm/stacktrace, kasan: Silence KASAN warnings in unwind_frame()
drbd: remove usage of list iterator variable after loop
MIPS: lantiq: check the return value of kzalloc()
Input: add bounds checking to input_set_capability()
um: Cleanup syscall_handler_t definition/cast, fix warning
floppy: use a statically allocated error counter
Linux 4.9.315
tty/serial: digicolor: fix possible null-ptr-deref in digicolor_uart_probe()
ping: fix address binding wrt vrf
USB: serial: option: add Fibocom MA510 modem
USB: serial: option: add Fibocom L610 modem
USB: serial: qcserial: add support for Sierra Wireless EM7590
USB: serial: pl2303: add device id for HP LM930 Display
usb: cdc-wdm: fix reading stuck on device close
ASoC: ops: Validate input values in snd_soc_put_volsw_range()
ASoC: max98090: Generate notifications on changes for custom control
ASoC: max98090: Reject invalid values in custom control put()
hwmon: (f71882fg) Fix negative temperature
net: sfc: ef10: fix memory leak in efx_ef10_mtd_probe()
s390/lcs: fix variable dereferenced before check
s390/ctcm: fix potential memory leak
s390/ctcm: fix variable dereferenced before check
mac80211_hwsim: call ieee80211_tx_prepare_skb under RCU protection
netlink: do not reset transport header in netlink_recvmsg()
ipv4: drop dst in multicast routing path
net: Fix features skip in for_each_netdev_feature()
Linux 4.9.314
mm: userfaultfd: fix missing cache flush in mcopy_atomic_pte() and __mcopy_atomic()
mmc: rtsx: add 74 Clocks in power on flow
Bluetooth: Fix the creation of hdev->name
can: grcan: only use the NAPI poll budget for RX
can: grcan: grcan_probe(): fix broken system id check for errata workaround needs
block: drbd: drbd_nl: Make conversion to 'enum drbd_ret_code' explicit
MIPS: Use address-of operator on section symbols
Linux 4.9.313
dm: interlock pending dm_io and dm_wait_for_bios_completion
dm: fix mempool NULL pointer race when completing IO
net: ipv6: ensure we call ipv6_mc_down() at most once
net: sched: prevent UAF on tc_ctl_tfilter when temporarily dropping rtnl_lock
kvm: x86/cpuid: Only provide CPUID leaf 0xA if host has architectural PMU
net: igmp: respect RCU rules in ip_mc_source() and ip_mc_msfilter()
btrfs: always log symlinks in full mode
smsc911x: allow using IRQ0
net: emaclite: Add error handling for of_address_to_resource()
ASoC: dmaengine: Restore NULL prepare_slave_config() callback
hwmon: (adt7470) Fix warning on module removal
NFC: netlink: fix sleep in atomic bug when firmware download timeout
nfc: nfcmrvl: main: reorder destructive operations in nfcmrvl_nci_unregister_dev to avoid bugs
nfc: replace improper check device_is_registered() in netlink related functions
can: grcan: use ofdev->dev when allocating DMA memory
can: grcan: grcan_close(): fix deadlock
ASoC: wm8958: Fix change notifications for DSP controls
firewire: core: extend card->lock in fw_core_handle_bus_reset
firewire: remove check of list iterator against head past the loop body
firewire: fix potential uaf in outbound_phy_packet_callback()
Revert "SUNRPC: attempt AF_LOCAL connect on setup"
ALSA: fireworks: fix wrong return count shorter than expected by 4 bytes
parisc: Merge model and model name into one line in /proc/cpuinfo
MIPS: Fix CP0 counter erratum detection for R4k CPUs
tty: n_gsm: fix incorrect UA handling
tty: n_gsm: fix wrong command frame length field encoding
tty: n_gsm: fix wrong command retry handling
tty: n_gsm: fix missing explicit ldisc flush
tty: n_gsm: fix insufficient txframe size
tty: n_gsm: fix malformed counter for out of frame data
tty: n_gsm: fix wrong signal octet encoding in convergence layer type 2
x86/cpu: Load microcode during restore_processor_state()
drivers: net: hippi: Fix deadlock in rr_close()
ASoC: wm8731: Disable the regulator when probing fails
bnx2x: fix napi API usage sequence
clk: sunxi: sun9i-mmc: check return value after calling platform_get_resource()
bus: sunxi-rsb: Fix the return value of sunxi_rsb_device_create()
tcp: fix potential xmit stalls caused by TCP_NOTSENT_LOWAT
ip_gre: Make o_seqno start from 0 in native mode
pinctrl: pistachio: fix use of irq_of_parse_and_map()
mtd: rawnand: Fix return value check of wait_for_completion_timeout
ARM: dts: Fix mmc order for omap3-gta04
ARM: OMAP2+: Fix refcount leak in omap_gic_of_init
phy: samsung: exynos5250-sata: fix missing device put in probe error paths
phy: samsung: Fix missing of_node_put() in exynos_sata_phy_probe
ARM: dts: imx6qdl-apalis: Fix sgtl5000 detection issue
hex2bin: fix access beyond string end
hex2bin: make the function hex_to_bin constant-time
serial: 8250: Correct the clock for EndRun PTP/1588 PCIe device
serial: 8250: Also set sticky MCR bits in console restoration
usb: gadget: configfs: clear deactivation flag in configfs_composite_unbind()
usb: gadget: uvc: Fix crash when encoding data for usb request
usb: misc: fix improper handling of refcount in uss720_probe()
iio: magnetometer: ak8975: Fix the error handling in ak8975_power_on()
iio: dac: ad5446: Fix read_raw not returning set value
iio: dac: ad5592r: Fix the missing return value.
xhci: stop polling roothubs after shutdown
USB: serial: option: add Telit 0x1057, 0x1058, 0x1075 compositions
USB: serial: option: add support for Cinterion MV32-WA/MV32-WB
USB: serial: cp210x: add PIDs for Kamstrup USB Meter Reader
USB: serial: whiteheat: fix heap overflow in WHITEHEAT_GET_DTR_RTS
USB: quirks: add STRING quirk for VCOM device
USB: quirks: add a Realtek card reader
lightnvm: disable the subsystem
Revert "net: ethernet: stmmac: fix altr_tse_pcs function when using a fixed-link"
floppy: disable FDRAWCMD by default
Conflicts:
drivers/mmc/core/core.c
Change-Id: I32ebde76c794d1b17acb9dfc570c22936373a2e9
commit 8b188fba75195745026e11d408e4a7e94e01d701 upstream.
This reverts commit 37ef4c19b4c659926ce65a7ac709ceaefb211c40.
The touchpad present in the Dell Precision 7550 and 7750 laptops
reports a HID_DG_BUTTONTYPE of type MT_BUTTONTYPE_CLICKPAD. However,
the device is not a clickpad, it is a touchpad with physical buttons.
In order to fix this issue, a quirk for the device was introduced in
libinput [1] [2] to disable the INPUT_PROP_BUTTONPAD property:
[Precision 7x50 Touchpad]
MatchBus=i2c
MatchUdevType=touchpad
MatchDMIModalias=dmi:*svnDellInc.:pnPrecision7?50*
AttrInputPropDisable=INPUT_PROP_BUTTONPAD
However, because of the change introduced in 37ef4c19b4 ("Input: clear
BTN_RIGHT/MIDDLE on buttonpads") the BTN_RIGHT key bit is not mapped
anymore breaking the device right click button and making impossible to
workaround it in user space.
In order to avoid breakage on other present or future devices, revert
the patch causing the issue.
Signed-off-by: José Expósito <jose.exposito89@gmail.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20220321184404.20025-1-jose.exposito89@gmail.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[ Upstream commit 37ef4c19b4c659926ce65a7ac709ceaefb211c40 ]
Buttonpads are expected to map the INPUT_PROP_BUTTONPAD property bit
and the BTN_LEFT key bit.
As explained in the specification, where a device has a button type
value of 0 (click-pad) or 1 (pressure-pad) there should not be
discrete buttons:
https://docs.microsoft.com/en-us/windows-hardware/design/component-guidelines/touchpad-windows-precision-touchpad-collection#device-capabilities-feature-report
However, some drivers map the BTN_RIGHT and/or BTN_MIDDLE key bits even
though the device is a buttonpad and therefore does not have those
buttons.
This behavior has forced userspace applications like libinput to
implement different workarounds and quirks to detect buttonpads and
offer to the user the right set of features and configuration options.
For more information:
https://gitlab.freedesktop.org/libinput/libinput/-/merge_requests/726
In order to avoid this issue clear the BTN_RIGHT and BTN_MIDDLE key
bits when the input device is register if the INPUT_PROP_BUTTONPAD
property bit is set.
Notice that this change will not affect udev because it does not check
for buttons. See systemd/src/udev/udev-builtin-input_id.c.
List of known affected hardware:
- Chuwi AeroBook Plus
- Chuwi Gemibook
- Framework Laptop
- GPD Win Max
- Huawei MateBook 2020
- Prestigio Smartbook 141 C2
- Purism Librem 14v1
- StarLite Mk II - AMI firmware
- StarLite Mk II - Coreboot firmware
- StarLite Mk III - AMI firmware
- StarLite Mk III - Coreboot firmware
- StarLabTop Mk IV - AMI firmware
- StarLabTop Mk IV - Coreboot firmware
- StarBook Mk V
Acked-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Acked-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: José Expósito <jose.exposito89@gmail.com>
Link: https://lore.kernel.org/r/20220208174806.17183-1-jose.exposito89@gmail.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Merge 4.9.210 into android-4.9-q
Linux 4.9.210
drm/i915/gen9: Clear residual context state on context switch
netfilter: ipset: avoid null deref when IPSET_ATTR_LINENO is present
* netfilter: arp_tables: init netns pointer in xt_tgchk_param struct
net/ipv4/netfilter/arp_tables.c
* USB: Fix: Don't skip endpoint descriptors with maxpacket=0
drivers/usb/core/config.c
rtl8xxxu: prevent leaking urb
scsi: bfa: release allocated memory in case of error
mwifiex: pcie: Fix memory leak in mwifiex_pcie_alloc_cmdrsp_buf
mwifiex: fix possible heap overflow in mwifiex_process_country_ie()
* tty: always relink the port
drivers/tty/tty_port.c
* tty: link tty and port before configuring it as console
drivers/tty/serial/serial_core.c
drivers/tty/tty_port.c
staging: rtl8188eu: Add device code for TP-Link TL-WN727N v5.21
staging: comedi: adv_pci1710: fix AI channels 16-31 for PCI-1713
usb: musb: dma: Correct parameter passed to IRQ handler
usb: musb: Disable pullup at init
usb: musb: fix idling for suspend after disconnect interrupt
USB: serial: option: add ZLP support for 0x1bc7/0x9010
staging: vt6656: set usb_set_intfdata on driver fail.
can: can_dropped_invalid_skb(): ensure an initialized headroom in outgoing CAN sk_buffs
can: mscan: mscan_rx_poll(): fix rx path lockup when returning from polling to irq mode
can: gs_usb: gs_usb_probe(): use descriptors of current altsetting
* drm/dp_mst: correct the shifting in DP_REMOTE_I2C_READ
drivers/gpu/drm/drm_dp_mst_topology.c
* Input: add safety guards to input_set_keycode()
drivers/input/input.c
* HID: hid-input: clear unmapped usages
drivers/hid/hid-input.c
* HID: uhid: Fix returning EPOLLOUT from uhid_char_poll
drivers/hid/uhid.c
* HID: Fix slab-out-of-bounds read in hid_field_extract
drivers/hid/hid-core.c
tracing: Have stack tracer compile when MCOUNT_INSN_SIZE is not defined
kernel/trace: Fix do not unregister tracepoints when register sched_migrate_task fail
* tcp: minimize false-positives on TCP/GRO check
net/ipv4/tcp_input.c
* ALSA: usb-audio: Apply the sample rate quirk for Bose Companion 5
sound/usb/quirks.c
usb: chipidea: host: Disable port power only if previously enabled
* chardev: Avoid potential use-after-free in 'chrdev_open()'
fs/char_dev.c
* kobject: Export kobject_get_unless_zero()
include/linux/kobject.h
lib/kobject.c
Merge 4.9.209 into android-4.9-q
Linux 4.9.209
USB: serial: option: add Telit ME910G1 0x110a composition
* USB: core: fix check for duplicate endpoints
drivers/usb/core/config.c
vlan: fix memory leak in vlan_dev_set_egress_priority
* net: sch_prio: When ungrafting, replace with FIFO
net/sched/sch_prio.c
vlan: vlan_changelink() should propagate errors
vxlan: fix tos value before xmit
* tcp: fix "old stuff" D-SACK causing SACK to be treated as D-SACK
net/ipv4/tcp_input.c
sctp: free cmd->obj.chunk for the unprocessed SCTP_CMD_REPLY
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
* macvlan: do not assume mac_header is set in macvlan_broadcast()
include/linux/if_ether.h
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
block/blk-map.c
net: stmmac: RX buffer size must be 16 byte aligned
perf/x86/intel: Fix PT PMI handling
* kconfig: don't crash on NULL expressions in expr_eq()
scripts/kconfig/expr.c
regulator: rn5t618: fix module aliases
ASoC: wm8962: fix lambda value
* rfkill: Fix incorrect check to avoid NULL pointer dereference
net/rfkill/core.c
net: usb: lan78xx: Fix error message format specifier
bnx2x: Fix logic to get total no. of PFs per engine
bnx2x: Do not handle requests from VFs after parity
powerpc: Ensure that swiotlb buffer is allocated from low memory
samples: bpf: Replace symbol compare of trace_event
ARM: dts: am437x-gp/epos-evm: fix panel compatible
spi: spi-cavium-thunderx: Add missing pci_release_regions()
netfilter: uapi: Avoid undefined left-shift in xt_sctp.h
ARM: vexpress: Set-up shared OPP table instead of individual for each CPU
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
* netfilter: ctnetlink: netns exit must wait for callbacks
net/netfilter/nf_conntrack_netlink.c
locking/spinlock/debug: Fix various data races
* pstore/ram: Write new dumps to start of recycled zones
fs/pstore/ram.c
locking/x86: Remove the unused atomic_inc_short() methd
xen/blkback: Avoid unmapping unmapped grant pages
s390/smp: fix physical to logical CPU map for SMT
* net: add annotations on hh->hh_len lockless accesses
include/net/neighbour.h
net/core/neighbour.c
net/ethernet/eth.c
ath9k_htc: Discard undersized packets
ath9k_htc: Modify byte order for an error message
rxrpc: Fix possible NULL pointer access in ICMP handling
powerpc/pseries/hvconsole: Fix stack overread via udbg
* drm/mst: Fix MST sideband up-reply failure handling
drivers/gpu/drm/drm_dp_mst_topology.c
* fix compat handling of FICLONERANGE, FIDEDUPERANGE and FS_IOC_FIEMAP
fs/compat_ioctl.c
tty: serial: msm_serial: Fix lockup for sysrq and oops
media: usb: fix memory leak in af9005_identify_state
regulator: ab8500: Remove AB8505 USB regulator
media: flexcop-usb: ensure -EIO is returned on error condition
* Bluetooth: Fix memory leak in hci_connect_le_scan
net/bluetooth/hci_conn.c
* Bluetooth: delete a stray unlock
net/bluetooth/l2cap_core.c
Bluetooth: btusb: fix PM leak in error case of setup
xfs: don't check for AG deadlock for realtime files in bunmapi
nfsd4: fix up replay_matches_cache()
* PM / devfreq: Check NULL governor in available_governors_show
drivers/devfreq/devfreq.c
* arm64: Revert support for execute-only user mappings
arch/arm64/include/asm/pgtable-prot.h
arch/arm64/include/asm/pgtable.h
arch/arm64/mm/fault.c
mm/mmap.c
ftrace: Avoid potential division by zero in function profiler
ALSA: cs4236: fix error return comparison of an unsigned integer
tracing: Have the histogram compare functions convert to u64 first
* gpiolib: fix up emulated open drain outputs
drivers/gpio/gpiolib.c
ata: ahci_brcm: Fix AHCI resources management
ata: ahci_brcm: Allow optional reset controller to be used
ata: libahci_platform: Export again ahci_platform_<en/dis>able_phys()
* compat_ioctl: block: handle Persistent Reservations
block/compat_ioctl.c
* dmaengine: Fix access to uninitialized dma_slave_caps
include/linux/dmaengine.h
* locks: print unsigned ino in /proc/locks
fs/locks.c
* memcg: account security cred as well to kmemcg
kernel/cred.c
* mm/zsmalloc.c: fix the migrated zspage statistics.
mm/zsmalloc.c
MIPS: Avoid VDSO ABI breakage due to global register variable
ALSA: ice1724: Fix sleep-in-atomic in Infrasonic Quartet support code
Revert "perf report: Add warning when libunwind not compiled in"
* drm: limit to INT_MAX in create_blob ioctl
drivers/gpu/drm/drm_property.c
* taskstats: fix data-race
kernel/taskstats.c
xfs: fix mount failure crash on invalid iclog memory access
PM / hibernate: memory_bm_find_bit(): Tighten node optimisation
xen/balloon: fix ballooned page accounting without hotplug enabled
xen-blkback: prevent premature module unload
IB/mlx4: Follow mirror sequence of device add during device removal
s390/cpum_sf: Avoid SBD overflow condition in irq handler
s390/cpum_sf: Adjust sampling interval to avoid hitting sample limits
md: raid1: check rdev before reference in raid1_sync_request func
usb: gadget: fix wrong endpoint desc
scsi: libsas: stop discovering if oob mode is disconnected
scsi: iscsi: qla4xxx: fix double free in probe
scsi: qla2xxx: Don't call qlt_async_event twice
scsi: lpfc: Fix memory leak on lpfc_bsg_write_ebuf_set func
RDMA/cma: add missed unregister_pernet_subsys in init failure
* PM / devfreq: Don't fail devfreq_dev_release if not in list
drivers/devfreq/devfreq.c
* arm64: alternatives: use tpidr_el2 on VHE hosts
arch/arm64/mm/proc.S
Merge 4.9.208 into android-4.9-q
Linux 4.9.208
gtp: avoid zero size hashtable
gtp: fix wrong condition in gtp_genl_dump_pdp()
* tcp: do not send empty skb from tcp_write_xmit()
net/ipv4/tcp_output.c
* tcp/dccp: fix possible race __inet_lookup_established()
include/linux/rculist_nulls.h
include/net/inet_hashtables.h
include/net/sock.h
net/ipv4/inet_diag.c
net/ipv4/inet_hashtables.c
net/ipv4/tcp_ipv4.c
net/ipv6/inet6_hashtables.c
vhost/vsock: accept only packets with the right dst_cid
net: ena: fix napi handler misbehavior when the napi budget is zero
* mmc: sdhci: Update the tuning failed messages to pr_debug level
drivers/mmc/host/sdhci.c
pinctrl: baytrail: Really serialize all register accesses
tty/serial: atmel: fix out of range clock divider handling
* hrtimer: Annotate lockless access to timer->state
include/linux/hrtimer.h
kernel/time/hrtimer.c
* net: icmp: fix data-race in cmp_global_allow()
net/ipv4/icmp.c
netfilter: bridge: make sure to pull arp header in br_nf_forward_arp()
6pack,mkiss: fix possible deadlock
* netfilter: ebtables: compat: reject all padding in matches/watchers
net/bridge/netfilter/ebtables.c
* filldir[64]: remove WARN_ON_ONCE() for bad directory entries
fs/readdir.c
* Make filldir[64]() verify the directory entry filename is valid
fs/readdir.c
perf strbuf: Remove redundant va_end() in strbuf_addv()
ALSA: hda - Downgrade error message for single-cmd fallback
* net, sysctl: Fix compiler warning when only cBPF is present
net/core/sysctl_net_core.c
x86/mce: Fix possibly incorrect severity calculation on AMD
* kernel: sysctl: make drop_caches write-only
kernel/sysctl.c
ocfs2: fix passing zero to 'PTR_ERR' warning
s390/cpum_sf: Check for SDBT and SDB consistency
* libfdt: define INT32_MAX and UINT32_MAX in libfdt_env.h
include/linux/libfdt_env.h
perf regs: Make perf_reg_name() return "unknown" instead of NULL
cdrom: respect device capabilities during opening action
* scripts/kallsyms: fix definitely-lost memory leak
scripts/kallsyms.c
gpio: mpc8xxx: Don't overwrite default irq_set_type callback
scsi: target: iscsi: Wait for all commands to finish before freeing a session
scsi: scsi_debug: num_tgts must be >= 0
scsi: pm80xx: Fix for SATA device discovery
* ext4: work around deleting a file with i_nlink == 0 safely
fs/ext4/namei.c
* HID: Improve Windows Precision Touchpad detection.
drivers/hid/hid-core.c
bcache: at least try to shrink 1 node in bch_mca_scan()
clk: pxa: fix one of the pxa RTC clocks
scsi: atari_scsi: sun3_scsi: Set sg_tablesize to 1 instead of SG_NONE
powerpc/security: Fix wrong message when RFI Flush is disable
powerpc/pseries/cmm: Implement release() function for sysfs device
* scsi: ufs: fix potential bug which ends in system hang
drivers/scsi/ufs/ufshcd.c
scsi: lpfc: fix: Coverity: lpfc_cmpl_els_rsp(): Null pointer dereferences
* fs/quota: handle overflows of sysctl fs.quota.* and report as unsigned long
fs/quota/dquot.c
include/linux/quota.h
irqchip: ingenic: Error out if IRQ domain creation failed
irqchip/irq-bcm7038-l1: Enable parent IRQ if necessary
* clk: qcom: Allow constant ratio freq tables for rcg
drivers/clk/qcom/clk-rcg2.c
drivers/clk/qcom/common.c
scsi: lpfc: Fix duplicate unreg_rpi error in port offline flow
* scsi: tracing: Fix handling of TRANSFER LENGTH == 0 for READ(6) and WRITE(6)
drivers/scsi/scsi_trace.c
* jbd2: Fix statistics for the number of logged blocks
fs/jbd2/commit.c
powerpc/book3s64/hash: Add cond_resched to avoid soft lockup warning
powerpc/security/book3s64: Report L1TF status in sysfs
clocksource/drivers/asm9260: Add a check for of_clk_get
dma-debug: add a schedule point in debug_dma_dump_mappings()
powerpc/pseries: Don't fail hash page table insert for bolted mapping
powerpc/pseries: Mark accumulate_stolen_time() as notrace
scsi: csiostor: Don't enable IRQs too early
scsi: lpfc: Fix SLI3 hba in loop mode not discovering devices
scsi: target: compare full CHAP_A Algorithm strings
iommu/tegra-smmu: Fix page tables in > 4 GiB memory
Input: atmel_mxt_ts - disable IRQ across suspend
scsi: lpfc: Fix locking on mailbox command completion
scsi: mpt3sas: Fix clear pending bit in ioctl status
perf probe: Fix to show function entry line as probe-able
mmc: sdhci-of-esdhc: fix P2020 errata handling
powerpc/irq: fix stack overflow verification
* ext4: check for directory entries too close to block end
fs/ext4/dir.c
* ext4: fix ext4_empty_dir() for directories with holes
fs/ext4/namei.c
staging: comedi: gsc_hpdi: check dma_alloc_coherent() return value
platform/x86: hp-wmi: Make buffer for HPWMI_FEATURE2_QUERY 128 bytes
USB: EHCI: Do not return -EPIPE when hub is disconnected
usbip: Fix error path of vhci_recv_ret_submit()
* net: dst: Force 4-byte alignment of dst_metrics
include/net/dst.h
sctp: fully initialize v4 addr in some functions
net: usb: lan78xx: Fix suspend/resume PHY register access error
net: qlogic: Fix error paths in ql_alloc_large_buffers()
net: nfc: nci: fix a possible sleep-in-atomic-context bug in nci_uart_tty_receive()
net: hisilicon: Fix a BUG trigered by wrong bytes_compl
* mod_devicetable: fix PHY module format
include/linux/mod_devicetable.h
fjes: fix missed check in fjes_acpi_add
* af_packet: set defaule value for tmo
net/packet/af_packet.c
Btrfs: fix removal logic of the tree mod log that leads to use-after-free issues
btrfs: abort transaction after failed inode updates in create_subvol
btrfs: return error pointer from alloc_test_extent_buffer
btrfs: do not call synchronize_srcu() in inode_tree_del
btrfs: don't double lock the subvol_sem for rename exchange
* usb: xhci: Fix build warning seen with CONFIG_PM=n
drivers/usb/host/xhci-pci.c
* Revert "mmc: sdhci: Fix incorrect switch to HS mode"
drivers/mmc/host/sdhci.c
btrfs: don't prematurely free work in reada_start_machine_worker()
* net: phy: initialise phydev speed and duplex sanely
drivers/net/phy/phy_device.c
libtraceevent: Fix memory leakage in copy_filter_type
* crypto: vmx - Avoid weird build failures
drivers/crypto/vmx/Makefile
crypto: sun4i-ss - Fix 64-bit size_t warnings on sun4i-ss-hash.c
fbtft: Make sure string is NULL terminated
iwlwifi: check kasprintf() return value
x86/insn: Add some Intel instructions to the opcode map
spi: st-ssc4: add missed pm_runtime_disable
btrfs: don't prematurely free work in run_ordered_work()
btrfs: don't prematurely free work in end_workqueue_fn()
mmc: tmio: Add MMC_CAP_ERASE to allow erase/discard/trim requests
spi: tegra20-slink: add missed clk_unprepare
iwlwifi: mvm: fix unaligned read of rx_pkt_status
x86/crash: Add a forward declaration of struct kimage
* cpufreq: Register drivers only after CPU devices have been registered
drivers/cpufreq/cpufreq.c
parport: load lowlevel driver if ports not found
s390/disassembler: don't hide instruction addresses
ASoC: rt5677: Mark reg RT5677_PWR_ANLG2 as volatile
spi: pxa2xx: Add missed security checks
EDAC/ghes: Fix grain calculation
media: si470x-i2c: add missed operations in remove
media: pvrusb2: Fix oops on tear-down when radio support is not present
ath10k: fix get invalid tx rate for Mesh metric
perf probe: Filter out instances except for inlined subroutine and subprogram
perf probe: Skip end-of-sequence and non statement lines
perf probe: Fix to show calling lines of inlined functions
perf probe: Return a better scope DIE if there is no best scope
perf probe: Skip overlapped location on searching variables
perf probe: Fix to probe a function which has no entry pc
perf probe: Fix to show inlined function callsite without entry_pc
perf probe: Fix to show ranges of variables in functions without entry_pc
perf probe: Fix to probe an inline function which has no entry pc
perf probe: Walk function lines in lexical blocks
perf probe: Fix to list probe event with correct line number
perf probe: Fix to find range-only function instance
rtlwifi: fix memory leak in rtl92c_set_fw_rsvdpagepkt()
* ALSA: timer: Limit max amount of slave instances
sound/core/timer.c
spi: img-spfi: fix potential double release
bnx2x: Fix PF-VF communication over multi-cos queues.
* Bluetooth: Fix advertising duplicated flags
net/bluetooth/hci_request.c
pinctrl: sh-pfc: sh7734: Fix duplicate TCLK1_B
libata: Ensure ata_port probe has completed before detach
* arm64: psci: Reduce the waiting time for cpu_psci_cpu_kill()
arch/arm64/kernel/psci.c
x86/ioapic: Prevent inconsistent state when moving an interrupt
rtl8xxxu: fix RTL8723BU connection failure issue after warm reboot
drm/gma500: fix memory disclosures due to uninitialized bytes
x86/mce: Lower throttling MCE messages' priority to warning
* Bluetooth: hci_core: fix init for HCI_USER_CHANNEL
net/bluetooth/hci_core.c
iio: adc: max1027: Reset the device at probe time
* usb: usbfs: Suppress problematic bind and unbind uevents.
drivers/usb/core/devio.c
perf report: Add warning when libunwind not compiled in
perf test: Report failure for mmap events
x86/mm: Use the correct function type for native_set_fixmap()
extcon: sm5502: Reset registers during initialization
media: ti-vpe: vpe: Make sure YUYV is set as default format
media: ti-vpe: vpe: fix a v4l2-compliance failure about frame sequence number
media: ti-vpe: vpe: fix a v4l2-compliance warning about invalid pixel format
mwifiex: pcie: Fix memory leak in mwifiex_pcie_init_evt_ring
samples: pktgen: fix proc_cmd command result check logic
media: cec-funcs.h: add status_req checks
media: flexcop-usb: fix NULL-ptr deref in flexcop_usb_transfer_init()
regulator: max8907: Fix the usage of uninitialized variable in max8907_regulator_probe()
hwrng: omap3-rom - Call clk_disable_unprepare() on exit only if not idled
usb: renesas_usbhs: add suspend event support in gadget mode
tools/power/cpupower: Fix initializer override in hsw_ext_cstates
media: ov6650: Fix stored frame format not in sync with hardware
media: i2c: ov2659: Fix missing 720p register config
media: i2c: ov2659: fix s_stream return value
media: am437x-vpfe: Setting STD to current value is not an error
IB/iser: bound protection_sg size by data_sg size
libertas: fix a potential NULL pointer dereference
rtlwifi: prevent memory leak in rtl_usb_probe
staging: rtl8188eu: fix possible null dereference
staging: rtl8192u: fix multiple memory leaks on error path
* spi: Add call to spi_slave_abort() function when spidev driver is released
drivers/spi/spidev.c
iio: light: bh1750: Resolve compiler warning and make code more readable
drm/bridge: analogix-anx78xx: silence -EPROBE_DEFER warnings
* drm: mst: Fix query_payload ack reply struct
include/drm/drm_dp_mst_helper.h
ALSA: hda/ca0132 - Avoid endless loop
ALSA: hda/ca0132 - Keep power on during processing DSP response
* ALSA: pcm: Avoid possible info leaks from PCM stream buffers
sound/core/pcm_native.c
btrfs: handle ENOENT in btrfs_uuid_tree_iterate
btrfs: do not leak reloc root if we fail to read the fs root
btrfs: skip log replay on orphaned roots
* UPSTREAM: HID: input: map digitizer battery usage
drivers/hid/hid-input.c
include/linux/hid.h
ANDROID: cuttlefish_defconfig: Disable TRANSPARENT_HUGEPAGE
Merge 4.9.207 into android-4.9-q
Linux 4.9.207
net: stmmac: don't stop NAPI processing when dropping a packet
net: stmmac: use correct DMA buffer size in the RX descriptor
* xhci: fix USB3 device initiated resume race with roothub autosuspend
drivers/usb/host/xhci-hub.c
drivers/usb/host/xhci-ring.c
drivers/usb/host/xhci.h
drm/radeon: fix r1xx/r2xx register checker for POT textures
scsi: iscsi: Fix a potential deadlock in the timeout handler
dm btree: increase rebalance threshold in __rebalance2()
* dma-buf: Fix memory leak in sync_file_merge()
drivers/dma-buf/sync_file.c
vfio/pci: call irq_bypass_unregister_producer() before freeing irq
ARM: tegra: Fix FLOW_CTLR_HALT register clobbering by tegra_resume()
ARM: dts: s3c64xx: Fix init order of clock providers
CIFS: Respect O_SYNC and O_DIRECT flags during reconnect
xtensa: fix TLB sanity checker
* PCI/MSI: Fix incorrect MSI-X masking on resume
drivers/pci/msi.c
* PCI: Fix Intel ACS quirk UPDCR register address
drivers/pci/quirks.c
* Revert "regulator: Defer init completion for a while after late_initcall"
drivers/regulator/core.c
* tcp: Protect accesses to .ts_recent_stamp with {READ,WRITE}_ONCE()
include/net/tcp.h
* tcp: tighten acceptance of ACKs not matching a child socket
include/net/tcp.h
* tcp: fix rejected syncookies due to stale timestamps
include/linux/time.h
include/net/tcp.h
* inet: protect against too small mtu values.
include/linux/netdevice.h
include/net/ip.h
net/core/dev.c
net/ipv4/devinet.c
net/ipv4/ip_output.c
tipc: fix ordering of tipc module init and exit routine
* tcp: md5: fix potential overestimation of TCP option space
net/ipv4/tcp_output.c
openvswitch: support asymmetric conntrack
net: ethernet: ti: cpsw: fix extra rx interrupt
* net: bridge: deny dev_set_mac_address() when unregistering
net/bridge/br_device.c
nvme: host: core: fix precedence of ternary operator
* kernel/module.c: wakeup processes in module_wq on module unload
kernel/module.c
net/mlx5e: Fix SFF 8472 eeprom length
sunrpc: fix crash when cache_head become valid before update
* workqueue: Fix missing kfree(rescuer) in destroy_workqueue()
kernel/workqueue.c
* blk-mq: make sure that line break can be printed
block/blk-mq-sysfs.c
* ext4: fix a bug in ext4_wait_for_tail_page_commit
fs/ext4/inode.c
* mm/shmem.c: cast the type of unmap_start to u64
mm/shmem.c
* firmware: qcom: scm: Ensure 'a0' status code is treated as signed
drivers/firmware/qcom_scm-64.c
reiserfs: fix extended attributes on the root directory
powerpc: Fix vDSO clock_getres()
scsi: qla2xxx: Always check the qla2x00_wait_for_hba_online() return value
scsi: qla2xxx: Fix qla24xx_process_bidir_cmd()
scsi: qla2xxx: Fix session lookup in qlt_abort_work()
scsi: qla2xxx: Fix DMA unmap leak
pinctrl: samsung: Fix device node refcount leaks in S3C64xx wakeup controller init
ARM: dts: omap3-tao3530: Fix incorrect MMC card detection GPIO polarity
ath10k: fix fw crash by moving chip reset after napi disabled
x86/MCE/AMD: Carve out the MC4_MISC thresholding quirk
x86/MCE/AMD: Turn off MC4_MISC thresholding on all family 0x15 models
e100: Fix passing zero to 'PTR_ERR' warning in e100_load_ucode_wait
scsi: lpfc: Cap NPIV vports to 256
omap: pdata-quirks: remove openpandora quirks for mmc3 and wl1251
Btrfs: fix negative subv_writers counter and data space leak after buffered write
iio: adis16480: Add debugfs_reg_access entry
* xhci: make sure interrupts are restored to correct state
drivers/usb/host/xhci-hub.c
* xhci: Fix memory leak in xhci_add_in_port()
drivers/usb/host/xhci-mem.c
* usb: xhci: only set D3hot for pci device
drivers/usb/host/xhci-pci.c
drivers/usb/host/xhci.c
drivers/usb/host/xhci.h
scsi: zfcp: trace channel log even for FCP command responses
* quota: fix livelock in dquot_writeback_dquots
fs/quota/dquot.c
ext2: check err when partial != NULL
* quota: Check that quota is not dirty before release
fs/quota/dquot.c
include/linux/quotaops.h
* video/hdmi: Fix AVI bar unpack
drivers/video/hdmi.c
powerpc: Allow 64bit VDSO __kernel_sync_dicache to work across ranges >4GB
ppdev: fix PPGETTIME/PPSETTIME ioctls
mmc: host: omap_hsmmc: add code for special init of wl1251 to get rid of pandora_wl1251_init_card
pinctrl: samsung: Fix device node refcount leaks in init code
pinctrl: samsung: Fix device node refcount leaks in S3C24xx wakeup controller init
ACPI: PM: Avoid attaching ACPI PM domain to certain devices
ACPI: bus: Fix NULL pointer check in acpi_bus_get_private_data()
ACPI: OSL: only free map once in osl.c
* PM / devfreq: Lock devfreq in trans_stat_show
drivers/devfreq/devfreq.c
* cpuidle: Do not unset the driver if it is there already
drivers/cpuidle/driver.c
media: radio: wl1273: fix interrupt masking on release
media: bdisp: fix memleak on release
ar5523: check NULL before memcpy() in ar5523_cmd()
cgroup: pids: use atomic64_t for pids->limit
* blk-mq: avoid sysfs buffer overflow with too many CPU cores
block/blk-mq-sysfs.c
* ASoC: Jack: Fix NULL pointer dereference in snd_soc_jack_report
sound/soc/soc-jack.c
* workqueue: Fix pwq ref leak in rescuer_thread()
kernel/workqueue.c
* workqueue: Fix spurious sanity check failures in destroy_workqueue()
kernel/workqueue.c
ALSA: hda - Fix pending unsol events at shutdown
lib: raid6: fix awk build warnings
rtlwifi: rtl8192de: Fix missing enable interrupt flag
rtlwifi: rtl8192de: Fix missing callback that tests for hw release of buffer
rtlwifi: rtl8192de: Fix missing code to retrieve RX buffer address
btrfs: record all roots for rename exchange on a subvol
Btrfs: send, skip backreference walking for extents with many references
btrfs: Remove btrfs_bio::flags member
btrfs: check page->mapping when loading free space cache
virtio-balloon: fix managed page counts when migrating pages between zones
mtd: spear_smi: Fix Write Burst mode
usb: mon: Fix a deadlock in usbmon between mmap and read
* usb: core: urb: fix URB structure initialization function
drivers/usb/core/urb.c
USB: adutux: fix interface sanity check
USB: serial: io_edgeport: fix epic endpoint lookup
USB: idmouse: fix interface sanity checks
USB: atm: ueagle-atm: add missing endpoint check
iio: humidity: hdc100x: fix IIO_HUMIDITYRELATIVE channel reporting
ARM: dts: pandora-common: define wl1251 as child node of mmc3
* xhci: Increase STS_HALT timeout in xhci_suspend()
drivers/usb/host/xhci.c
staging: gigaset: add endpoint-type sanity check
staging: gigaset: fix illegal free on probe errors
staging: gigaset: fix general protection fault on probe
staging: rtl8712: fix interface sanity check
staging: rtl8188eu: fix interface sanity check
* usb: Allow USB device to be warm reset in suspended state
drivers/usb/core/hub.c
USB: uas: heed CAPACITY_HEURISTICS
USB: uas: honor flag to avoid CAPACITY16
* usb: gadget: configfs: Fix missing spin_lock_init()
drivers/usb/gadget/configfs.c
appletalk: Set error code if register_snap_client failed
* appletalk: Fix potential NULL pointer dereference in unregister_snap_client
include/linux/atalk.h
KVM: x86: fix out-of-bounds write in KVM_GET_EMULATED_CPUID (CVE-2019-19332)
* thermal: Fix deadlock in thermal thermal_zone_device_check
drivers/thermal/thermal_core.c
RDMA/qib: Validate ->show()/store() callbacks before calling them
spi: atmel: Fix CS high support
crypto: user - fix memory leak in crypto_report
crypto: ecdh - fix big endian bug in ECC library
crypto: ccp - fix uninitialized list head
crypto: crypto4xx - fix double-free in crypto4xx_destroy_sdr
KVM: x86: fix presentation of TSX feature in ARCH_CAPABILITIES
KVM: x86: do not modify masked bits of shared MSRs
drm/i810: Prevent underflow in ioctl
* jbd2: Fix possible overflow in jbd2_log_space_left()
include/linux/jbd2.h
can: slcan: Fix use-after-free Read in slcan_open
* tty: vt: keyboard: reject invalid keycodes
drivers/tty/vt/keyboard.c
CIFS: Fix SMB2 oplock break processing
CIFS: Fix NULL-pointer dereference in smb2_push_mandatory_locks
x86/PCI: Avoid AMD FCH XHCI USB PME# from D0 defect
coresight: etm4x: Fix input validation for sysfs.
Input: goodix - add upside-down quirk for Teclast X89 tablet
ALSA: pcm: oss: Avoid potential buffer overflows
* fuse: verify attributes
fs/fuse/dir.c
fs/fuse/fuse_i.h
* fuse: verify nlink
fs/fuse/dir.c
* sched/fair: Scale bandwidth quota and period without losing quota/period ratio precision
kernel/sched/fair.c
ARM: dts: sunxi: Fix PMU compatible strings
mlx4: Use snprintf instead of complicated strcpy
media: stkwebcam: Bugfix for wrong return values
* tty: Don't block on IO when ldisc change is pending
drivers/tty/n_tty.c
drivers/tty/tty_ldisc.c
include/linux/tty.h
nfsd: Return EPERM, not EACCES, in some SETATTR cases
MIPS: OCTEON: cvmx_pko_mem_debug8: use oldest forward compatible definition
powerpc/math-emu: Update macros from GCC
net/mlx4_core: Fix return codes of unsupported operations
dlm: fix invalid cluster name warning
ARM: dts: realview: Fix some more duplicate regulator nodes
clk: sunxi-ng: h3/h5: Fix CSI_MCLK parent
ARM: dts: pxa: clean up USB controller nodes
mtd: fix mtd_oobavail() incoherent returned value
* kbuild: fix single target build for external module
Makefile
* modpost: skip ELF local symbols during section mismatch check
scripts/mod/modpost.c
* tcp: fix SNMP TCP timeout under-estimation
net/ipv4/tcp_timer.c
* tcp: fix off-by-one bug on aborting window-probing socket
net/ipv4/tcp_timer.c
ARM: dts: realview-pbx: Fix duplicate regulator nodes
ARM: dts: mmp2: fix the gpio interrupt cell number
net/x25: fix null_x25_address handling
net/x25: fix called/calling length calculation in x25_parse_address_block
ARM: OMAP1/2: fix SoC name printing
nfsd: fix a warning in __cld_pipe_upcall()
ARM: debug: enable UART1 for socfpga Cyclone5
dlm: NULL check before kmem_cache_destroy is not needed
i2c: imx: don't print error message on probe defer
serial: imx: fix error handling in console_setup
altera-stapl: check for a null key before strcasecmp'ing it
* dma-mapping: fix return type of dma_set_max_seg_size()
include/linux/dma-mapping.h
* ACPI: fix acpi_find_child_device() invocation in acpi_preset_companion()
include/linux/acpi.h
* usb: dwc3: don't log probe deferrals; but do log other error codes
drivers/usb/dwc3/core.c
dmaengine: coh901318: Remove unused variable
dmaengine: coh901318: Fix a double-lock bug
media: pulse8-cec: return 0 when invalidating the logical address
ARM: dts: exynos: Use Samsung SoC specific compatible for DWC2 module
rtc: dt-binding: abx80x: fix resistance scale
rtc: max8997: Fix the returned value in case of error in 'max8997_rtc_read_alarm()'
math-emu/soft-fp.h: (_FP_ROUND_ZERO) cast 0 to void to fix warning
MIPS: OCTEON: octeon-platform: fix typing
* regulator: Fix return value of _set_load() stub
include/linux/regulator/consumer.h
Staging: iio: adt7316: Fix i2c data reading, set the data field
pinctrl: qcom: ssbi-gpio: fix gpio-hog related boot issues
scsi: zfcp: drop default switch case which might paper over missing case
MIPS: SiByte: Enable ZONE_DMA32 for LittleSur
dlm: fix missing idr_destroy for recover_idr
ARM: dts: rockchip: Fix rk3288-rock2 vcc_flash name
clk: rockchip: fix rk3188 sclk_mac_lbtest parameter ordering
clk: rockchip: fix rk3188 sclk_smc gate data
extcon: max8997: Fix lack of path setting in USB device mode
net/mlx5: Release resource on error flow
ARM: 8813/1: Make aligned 2-byte getuser()/putuser() atomic on ARMv6+
iwlwifi: mvm: Send non offchannel traffic via AP sta
cxgb4vf: fix memleak in mac_hlist initialization
* serial: core: Allow processing sysrq at port unlock time
include/linux/serial_core.h
net: ep93xx_eth: fix mismatch of request_mem_region in remove
rsxx: add missed destroy_workqueue calls in remove
* ALSA: pcm: Fix stream lock usage in snd_pcm_period_elapsed()
sound/core/pcm_lib.c
Input: cyttsp4_core - fix use after free bug
NFC: nxp-nci: Fix NULL pointer dereference after I2C communication error
audit_get_nd(): don't unlock parent too early
exportfs_decode_fh(): negative pinned may become positive without the parent locked
RDMA/hns: Correct the value of HNS_ROCE_HEM_CHUNK_LEN
autofs: fix a leak in autofs_expire_indirect()
serial: ifx6x60: add missed pm_runtime_disable
* serial: serial_core: Perform NULL checks for break_ctl ops
drivers/tty/serial/serial_core.c
serial: pl011: Fix DMA ->flush_buffer()
tty: serial: msm_serial: Fix flow control
tty: serial: fsl_lpuart: use the sg count from dma_map_sg
usb: gadget: u_serial: add missing port entry locking
arm64: tegra: Fix 'active-low' warning for Jetson TX1 regulator
* UPSTREAM: binder: fix incorrect calculation for num_valid
drivers/android/binder.c
* ANDROID: sched/core: Fix arm32 allmodconfig build-break
include/trace/events/sched.h
* BACKPORT: bpf: permit multiple bpf attachments for a single perf event
include/linux/bpf.h
include/linux/trace_events.h
include/trace/perf.h
kernel/bpf/core.c
kernel/events/core.c
kernel/trace/bpf_trace.c
kernel/trace/trace_kprobe.c
* UPSTREAM: bpf: use the same condition in perf event set/free bpf handler
kernel/events/core.c
* BACKPORT: bpf: multi program support for cgroup+bpf
include/linux/bpf-cgroup.h
include/linux/bpf.h
include/linux/filter.h
include/uapi/linux/bpf.h
kernel/bpf/cgroup.c
kernel/bpf/core.c
kernel/bpf/syscall.c
kernel/cgroup.c
Merge 4.9.206 into android-4.9-q
Linux 4.9.206
net: fec: fix clock count mis-match
platform/x86: hp-wmi: Fix ACPI errors caused by too small buffer
hwrng: stm32 - fix unbalanced pm_runtime_enable
* HID: core: check whether Usage Page item is after Usage ID items
drivers/hid/hid-core.c
* net: sched: fix `tc -s class show` no bstats on class with nolock subqueues
net/sched/sch_mq.c
net/sched/sch_multiq.c
net/sched/sch_prio.c
* sctp: cache netns in sctp_ep_common
include/net/sctp/structs.h
tipc: fix link name length check
openvswitch: remove another BUG_ON()
openvswitch: drop unneeded BUG_ON() in ovs_flow_cmd_build_info()
slip: Fix use-after-free Read in slip_open
openvswitch: fix flow command message size
macvlan: schedule bc_work even if error
media: atmel: atmel-isc: fix asd memory allocation
* pwm: Clear chip_data in pwm_put()
drivers/pwm/core.c
net: macb: fix error format in dev_err()
* media: v4l2-ctrl: fix flags for DO_WHITE_BALANCE
drivers/media/v4l2-core/v4l2-ctrls.c
mei: bus: prefix device names on bus with the bus name
USB: serial: ftdi_sio: add device IDs for U-Blox C099-F9P
staging: rtl8192e: fix potential use after free
clk: at91: fix update bit maps on CFG_MOR write
mm, gup: add missing refcount overflow checks on x86 and s390
mtd: Remove a debug trace in mtdpart.c
powerpc/pseries/dlpar: Fix a missing check in dlpar_parse_cc_property()
scsi: libsas: Check SMP PHY control function result
ACPI / APEI: Switch estatus pool to use vmalloc memory
scsi: libsas: Support SATA PHY connection rate unmatch fixing during discovery
iommu/amd: Fix NULL dereference bug in match_hid_uid
* net: dev: Use unsigned integer as an argument to left-shift
include/linux/netdevice.h
sctp: don't compare hb_timer expire date before starting it
* net: fix possible overflow in __sk_mem_raise_allocated()
include/net/sock.h
net/core/sock.c
sfc: initialise found bitmap in efx_ef10_mtd_probe
tipc: fix skb may be leaky in tipc_link_input
decnet: fix DN_IFREQ_SIZE
* ip_tunnel: Make none-tunnel-dst tunnel port work with lwtunnel
net/ipv4/ip_tunnel.c
sfc: suppress duplicate nvmem partition types in efx_ef10_mtd_probe
* net/core/neighbour: fix kmemleak minimal reference count for hash tables
net/core/neighbour.c
* net/core/neighbour: tell kmemleak about hash tables
net/core/neighbour.c
tipc: fix memory leak in tipc_nl_compat_publ_dump
mtd: Check add_mtd_device() ret code
* lib/genalloc.c: include vmalloc.h
lib/genalloc.c
* drivers/base/platform.c: kmemleak ignore a known leak
drivers/base/platform.c
* lib/genalloc.c: use vzalloc_node() to allocate the bitmap
lib/genalloc.c
* lib/genalloc.c: fix allocation of aligned buffer from non-aligned chunk
include/linux/genalloc.h
lib/genalloc.c
* vmscan: return NODE_RECLAIM_NOSCAN in node_reclaim() when CONFIG_NUMA is n
include/linux/swap.h
mm/internal.h
ocfs2: clear journal dirty flag after shutdown journal
net/wan/fsl_ucc_hdlc: Avoid double free in ucc_hdlc_probe()
tipc: fix a missing check of genlmsg_put
atl1e: checking the status of atl1e_write_phy_reg
net: dsa: bcm_sf2: Propagate error value from mdio_write
net: stmicro: fix a missing check of clk_prepare
um: Make GCOV depend on !KCOV
* net/net_namespace: Check the return value of register_pernet_subsys()
net/core/net_namespace.c
pwm: clps711x: Fix period calculation
crypto: mxc-scc - fix build warnings on ARM64
powerpc/pseries: Fix node leak in update_lmb_associativity_index()
powerpc/83xx: handle machine check caused by watchdog timer
regulator: tps65910: fix a missing check of return value
drbd: fix print_st_err()'s prototype to match the definition
drbd: do not block when adjusting "disk-options" while IO is frozen
drbd: reject attach of unsuitable uuids even if connected
drbd: ignore "all zero" peer volume sizes in handshake
powerpc/powernv/eeh/npu: Fix uninitialized variables in opal_pci_eeh_freeze_status
vfio/spapr_tce: Get rid of possible infinite loop
powerpc/44x/bamboo: Fix PCI range
powerpc/mm: Make NULL pointer deferences explicit on bad page faults.
powerpc/prom: fix early DEBUG messages
ath6kl: Fix off by one error in scan completion
ath6kl: Only use match sets when firmware supports it
scsi: csiostor: fix incorrect dma device in case of vport
scsi: qla2xxx: deadlock by configfs_depend_item
RDMA/srp: Propagate ib_post_send() failures to the SCSI mid-layer
openrisc: Fix broken paths to arch/or32
serial: max310x: Fix tx_empty() callback
drivers/regulator: fix a missing check of return value
powerpc/xmon: fix dump_segments()
powerpc/book3s/32: fix number of bats in p/v_block_mapped()
IB/qib: Fix an error code in qib_sdma_verbs_send()
xfs: Fix bulkstat compat ioctls on x32 userspace.
xfs: Align compat attrlist_by_handle with native implementation.
gfs2: take jdata unstuff into account in do_grow
dm flakey: Properly corrupt multi-page bios.
HID: doc: fix wrong data structure reference for UHID_OUTPUT
pinctrl: sh-pfc: sh7734: Fix shifted values in IPSR10
pinctrl: sh-pfc: sh7264: Fix PFCR3 and PFCR0 register configuration
KVM: s390: unregister debug feature on failing arch init
net/mlx5: Continue driver initialization despite debugfs failure
pinctrl: xway: fix gpio-hog related boot issues
xen/pciback: Check dev_data before using it
HID: intel-ish-hid: fixes incorrect error handling
btrfs: only track ref_heads in delayed_ref_updates
mtd: rawnand: sunxi: Write pageprog related opcodes to WCMD_SET
VSOCK: bind to random port for VMADDR_PORT_ANY
* gpiolib: Fix return value of gpio_to_desc() stub if !GPIOLIB
include/linux/gpio/consumer.h
microblaze: move "... is ready" messages to arch/microblaze/Makefile
microblaze: adjust the help to the real behavior
ubi: Do not drop UBI device reference before using
ubi: Put MTD device after it is not used
xfs: require both realtime inodes to mount
rtl818x: fix potential use after free
mwifiex: debugfs: correct histogram spacing, formatting
mwifiex: fix potential NULL dereference and use after free
crypto: user - support incremental algorithm dumps
ACPI / LPSS: Ignore acpi_device_fix_up_power() return value
ARM: ks8695: fix section mismatch warning
PM / AVS: SmartReflex: NULL check before some freeing functions is not needed
* arm64: smp: Handle errors reported by the firmware
arch/arm64/kernel/smp.c
* arm64: mm: Prevent mismatched 52-bit VA support
arch/arm64/kernel/head.S
arch/arm64/kernel/smp.c
parisc: Fix HP SDC hpa address output
parisc: Fix serio address output
ARM: dts: imx53-voipac-dmm-668: Fix memory node duplication
ARM: debug-imx: only define DEBUG_IMX_UART_PORT if needed
scsi: lpfc: Fix dif and first burst use in write commands
pwm: bcm-iproc: Prevent unloading the driver module while in use
block: drbd: remove a stray unlock in __drbd_send_protocol()
mac80211: fix station inactive_time shortly after boot
scripts/gdb: fix debugging modules compiled with hot/cold partitioning
watchdog: meson: Fix the wrong value of left time
can: c_can: D_CAN: c_can_chip_config(): perform a sofware reset on open
can: peak_usb: report bus recovery as well
net: fec: add missed clk_disable_unprepare in remove
clk: at91: avoid sleeping early
* reset: fix reset_control_ops kerneldoc comment
include/linux/reset-controller.h
clk: samsung: exynos5420: Preserve PLL configuration during suspend/resume
ASoC: kirkwood: fix external clock probe defer
* ASoC: compress: fix unsigned integer overflow check
sound/core/compress_offload.c
Change-Id: Ida917e8b91aa0dd373b92c6bdc283734141543d4
Signed-off-by: lucaswei <lucaswei@google.com>
Currently, evdev stamps events with timestamps acquired in
evdev_events() However, this timestamping may not be accurate in terms
of measuring when the actual event happened.
Let's allow individual drivers specify timestamp in order to provide a
more accurate sense of time for the event. It is expected that drivers
will set the timestamp in their hard interrupt routine.
(cherry picked from commit 3b51c44bd6936e86a7180abd9aebc4387a479253)
Link: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/input?id=3b51c44bd6936e86a7180abd9aebc4387a479253
Signed-off-by: Atif Niyaz <atifniyaz@google.com>
Bug: 119840121
Change-Id: I91a5144879f8da498b7eb160da9719cf403a9b0e
Commit 4369c64c79 ("Input: Send events one packet at a time")
significantly reduced amount of entropy input core was feeding to the rest
of the system, because only the very first event in the event block would
be used as source of entropy.
With this change we will be calling add_input_randomness() for every event
that is not filtered by the input core as a duplicate. In addition, all
EV_SYN events are ignored.
Acked-by: Henrik Rydberg <rydberg@bitmath.org>
Acked-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Acked-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Add new function input_enable_softrepeat() that allows drivers to
initialize their own values for input_dev->rep[REP_DELAY] and
input_dev->rep[REP_PERIOD], but also use the software autorepeat
functionality from input.c.
For example, a HID driver could do:
static void xyz_input_configured(struct hid_device *hid,
struct hid_input *hidinput)
{
input_enable_softrepeat(hidinput->input, 400, 100);
}
static struct hid_driver xyz_driver = {
.input_configured = xyz_input_configured,
}
Signed-off-by: Petri Gynther <pgynther@google.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Do not emit EV_SYN/SYN_REPORT on suspend if there were no keys that are
still pressed as we are suspending the device (and in all other cases when
input core is forcibly releasing keys via input_dev_release_keys() call).
Reviewed-by: Benson Leung <bleung@chromium.org>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Instead of iterating over all bits in a bitmap and test them individually
let's siwtch to for_each_set_bit() which is more compact and is also
faster.
Also use bitmap_weight() when counting number of set bits.
This also fixes INPUT_DO_TOGGLE() implementation as it should have used
*_CNT as the upper boundary, not *_MAX.
Signed-off-by: Anshul Garg <aksgarg1989@gmail.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
If given input handler is not a filter there is no point is iterating list
of events in a packet to see if some of them need to be filtered out.
Signed-off-by: Anshul Garg <anshul.g@samsung.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
If a device does not support autorepeat or does not emit any key events we
should not be scanning all events in a packet to decide if we should start
or stop autorepeat function.
Signed-off-by: Anshul Garg <anshul.g@samsung.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
This patch avoids unnecessary operations while estimating events per
packet for an input device when event type is not set.
Signed-off-by: Anshul Garg <anshul.g@samsung.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Let's initializes input_no to -1 in order to avoid extra subtraction
operation performed every time we allocate an input device.
Signed-off-by: Aniroop Mathur <aniroop.mathur@gmail.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Fix the format string for input device name generation to avoid negative
device numbers when the id exceeds the maximum signed integer value.
Signed-off-by: Richard Leitner <richard.leitner@skidata.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Let's automatically set EV_ABS bit in device's event type list when calling
input_set_abs_params() so that drivers do not have to do it explicitly.
These calls are never in a hot paths so we won't lose much time by setting
the same bit several times.
Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
We attempt to remove noise from coordinates reported by devices in
input_handle_abs_event(), unfortunately, unless we were dropping the
event altogether, we were ignoring the adjusted value and were passing
on the original value instead.
Cc: stable@vger.kernel.org
Reviewed-by: Andrew de los Reyes <adlr@chromium.org>
Reviewed-by: Benson Leung <bleung@chromium.org>
Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
Reviewed-by: Henrik Rydberg <rydberg@euromail.se>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
We need to make sure we allocate absinfo data when we are setting one of
EV_ABS/ABS_XXX capabilities, otherwise we may bomb when we try to emit this
event.
Rested-by: Paul Cercueil <pcercuei@gmail.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
When waking up the platform by pressing a specific key, sending a
release on that key makes it impossible to react on the event in
user-space. This is fixed by moving the input_reset_device() call to
resume instead.
[dmitry.torokhov@gmail.com: make sure we still restore LED/sound state
after resume, handle hibernation properly]
Signed-off-by: Aleksej Makarov <aleksej.makarov@sonymobile.com>
Signed-off-by: Oskar Andero <oskar.andero@sonymobile.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
dev->hint_events_per_packet is guaranteed to be >= packet_size.
so an extra max() call is not needed.
Signed-off-by: Kang Hu <hukangustc@gmail.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
We want to allow drivers to call input_event() at any time after the
device got allocated. This means input_event() and input_register_device()
must be allowed to run in parallel.
The only conflicting calls in input_register_device() are init_timer() and
dev_set_name(). Both can safely be moved to device allocation and we're
good to go.
Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Apparently some users of managed input devices are confused whether
input_unregister_device() is needed when working with them. Clarify
this in the kernel doc for devm_input_allocate_device(): in most cases
there is no need to call neither input_unregister_device() nor
input_free_device() when working with managed devices.
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
There is a demand from driver's writers to use managed devices framework
for their drivers. Unfortunately up to this moment input devices did not
provide support for managed devices and that lead to mixing two styles
of resource management which usually introduced more bugs, such as
manually unregistering input device but relying in devres to free
interrupt handler which (unless device is properly shut off) can cause
ISR to reference already freed memory.
This change introduces devm_input_allocate_device() that will allocate
managed instance of input device so that driver writers who prefer
using devm_* framework do not have to mix 2 styles.
Reviewed-by: Henrik Rydberg <rydberg@euromail.se>
Reviewed-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
This fixes the following warning:
drivers/input/input.c:538:23: error: incompatible types in comparison expression (different address spaces)
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Extend the amount of character devices, such as eventX, mouseX and jsX,
from a hard limit of 32 per input handler to about 1024 shared across
all handlers.
To be compatible with legacy installations input handlers will start
creating char devices with minors in their legacy range, however once
legacy range is exhausted they will start allocating minors from the
dynamic range 256-1024.
Reviewed-by: David Herrmann <dh.herrmann@googlemail.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Merge Henrik's updates to multitouch code. Even though Jiri already
pulled them in I need to do it too since my changes to evdev using
dynamic major would clash with them.
On heavy event loads, such as a multitouch driver, the irqsoff latency
can be as high as 250 us. By accumulating a frame worth of data
before passing it on, the latency can be dramatically reduced. As a
side effect, the special EV_SYN handling can be removed, since the
frame is now atomic.
This patch adds the events() handler callback and uses it if it
exists. The latency is improved by 50 us even without the callback.
Cc: Daniel Kurtz <djkurtz@chromium.org>
Tested-by: Benjamin Tissoires <benjamin.tissoires@enac.fr>
Tested-by: Ping Cheng <pingc@wacom.com>
Tested-by: Sedat Dilek <sedat.dilek@gmail.com>
Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
For some EV_KEY types, sending a larger-than-one value causes the
input state to oscillate. This patch makes sure this cannot happen,
clearing up the autorepeat bypass logic in the process.
Tested-by: Benjamin Tissoires <benjamin.tissoires@enac.fr>
Tested-by: Ping Cheng <pingc@wacom.com>
Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
The events-per-packet estimate has so far been used by MT devices
only. This patch adjusts the packet buffer size to also accomodate the
KEY and MSC events. Keyboards normally send one or two keys at a
time. MT devices normally send a number of button keys along with the
MT information. The buffer size chosen here covers those cases, and
matches the default buffer size in evdev. Since the input estimate is
now preferred, remove the special input-mt estimate.
Reviewed-and-tested-by: Ping Cheng <pingc@wacom.com>
Tested-by: Benjamin Tissoires <benjamin.tissoires@enac.fr>
Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
Move all MT-related things to a separate place. This saves some
bytes for non-mt input devices, and prepares for new MT features.
Reviewed-and-tested-by: Benjamin Tissoires <benjamin.tissoires@enac.fr>
Tested-by: Ping Cheng <pingc@wacom.com>
Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
MATCH_BIT() is ugly and stupid, we have much nicer bitmap_subset() which
does the same and does not hide control flow.
Reported-by: Baodong Chen <chenbdchenbd@gmail.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
The current MT accessor function does not distinguish between the MT
values and the slot specification event. Add an accessor function for
the values only, and use it where appropriate.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
both callers of device_get_devnode() are only interested in lower 16bits
and nobody tries to return anything wider than 16bit anyway.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
There is no need to call synchronize_rcu() after a list insertion,
or a NULL->ptr assignment.
However, the reverse operations do need this call.
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Calculate a default based on the number of ABS axes, REL axes,
and MT slots for the device during input device registration.
Signed-off-by: Jeff Brown <jeffbrown@android.com>
Reviewed-by: Henrik Rydberg <rydberg@euromail.se>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
This reverts commit 5fdbe44d03.
Apparently there exist userspace programs that expect to be able to
"loop back" and distribute to readers events written into
/dev/input/eventX and this change made for the benefit of SysRq
handler broke them. Now that SysRq uses alternative method to suppress
filtering of the events it re-injects we can safely revert this change.
Reported-by: Kristen Carlson Accardi <kristen@linux.intel.com>
Cc: stable@kernel.org
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
All users of old style get/setkeycode methids have been converted so
it is time to retire them.
Acked-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Acked-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (58 commits)
Input: wacom_w8001 - support pen or touch only devices
Input: wacom_w8001 - use __set_bit to set keybits
Input: bu21013_ts - fix misuse of logical operation in place of bitop
Input: i8042 - add Acer Aspire 5100 to the Dritek list
Input: wacom - add support for digitizer in Lenovo W700
Input: psmouse - disable the synaptics extension on OLPC machines
Input: psmouse - fix up Synaptics comment
Input: synaptics - ignore bogus mt packet
Input: synaptics - add multi-finger and semi-mt support
Input: synaptics - report clickpad property
input: mt: Document interface updates
Input: fix double equality sign in uevent
Input: introduce device properties
hid: egalax: Add support for Wetab (726b)
Input: include MT library as source for kerneldoc
MAINTAINERS: Update input-mt entry
hid: egalax: Add support for Samsung NB30 netbook
hid: egalax: Document the new devices in Kconfig
hid: egalax: Add support for Wetab
hid: egalax: Convert to MT slots
...
Fixed up trivial conflict in drivers/input/keyboard/Kconfig