Merge 4.19.125 into android-4.19-stable
Merge remote-tracking branch 'aosp/upstream-f2fs-stable-linux-4.19.y' into android-4.19-stable
Linux 4.19.125
rxrpc: Fix ack discard
* rxrpc: Trace discarded ACKs
include/trace/events/rxrpc.h
iio: adc: stm32-dfsdm: fix device used to request dma
iio: adc: stm32-dfsdm: Use dma_request_chan() instead dma_request_slave_channel()
iio: adc: stm32-adc: fix device used to request dma
iio: adc: stm32-adc: Use dma_request_chan() instead dma_request_slave_channel()
x86/unwind/orc: Fix unwind_get_return_address_ptr() for inactive tasks
rxrpc: Fix a memory leak in rxkad_verify_response()
rapidio: fix an error in get_user_pages_fast() error handling
ipack: tpci200: fix error return code in tpci200_register()
mei: release me_cl object reference
misc: rtsx: Add short delay after exit from ASPM
iio: dac: vf610: Fix an error handling path in 'vf610_dac_probe()'
iio: sca3000: Remove an erroneous 'get_device()'
staging: greybus: Fix uninitialized scalar variable
staging: iio: ad2s1210: Fix SPI reading
Revert "gfs2: Don't demote a glock until its revokes are written"
brcmfmac: abort and release host after error
tty: serial: qcom_geni_serial: Fix wrap around of TX buffer
cxgb4/cxgb4vf: Fix mac_hlist initialization and free
cxgb4: free mac_hlist properly
net: bcmgenet: abort suspend on error
net: bcmgenet: code movement
Revert "net/ibmvnic: Fix EOI when running in XIVE mode"
media: fdp1: Fix R-Car M3-N naming in debug message
thunderbolt: Drop duplicated get_switch_at_route()
staging: most: core: replace strcpy() by strscpy()
libnvdimm/btt: Fix LBA masking during 'free list' population
libnvdimm/btt: Remove unnecessary code in btt_freelist_init
* nfit: Add Hyper-V NVDIMM DSM command set to white list
include/uapi/linux/ndctl.h
powerpc/64s: Disable STRICT_KERNEL_RWX
powerpc: Remove STRICT_KERNEL_RWX incompatibility with RELOCATABLE
drm/i915/gvt: Init DPLL/DDI vreg for virtual display instead of inheritance.
dmaengine: owl: Use correct lock in owl_dma_get_pchan()
dmaengine: tegra210-adma: Fix an error handling path in 'tegra_adma_probe()'
apparmor: Fix aa_label refcnt leak in policy_update
apparmor: fix potential label refcnt leak in aa_change_profile
apparmor: Fix use-after-free in aa_audit_rule_init
drm/etnaviv: fix perfmon domain interation
ALSA: hda/realtek - Add more fixup entries for Clevo machines
ALSA: hda/realtek - Fix silent output on Gigabyte X570 Aorus Xtreme
* ALSA: pcm: fix incorrect hw_base increase
sound/core/pcm_lib.c
ALSA: iec1712: Initialize STDSP24 properly when using the model=staudio option
padata: purge get_cpu and reorder_via_wq from padata_do_serial
padata: initialize pd->cpu with effective cpumask
* padata: Replace delayed timer with immediate workqueue in padata_reorder
include/linux/padata.h
ARM: futex: Address build warning
platform/x86: asus-nb-wmi: Do not load on Asus T100TA and T200TA
* USB: core: Fix misleading driver bug report
drivers/usb/core/message.c
stmmac: fix pointer check after utilization in stmmac_interrupt
ceph: fix double unlock in handle_cap_export()
* HID: quirks: Add HID_QUIRK_NO_INIT_REPORTS quirk for Dell K12A keyboard-dock
drivers/hid/hid-ids.h
drivers/hid/hid-quirks.c
gtp: set NLM_F_MULTI flag in gtp_genl_dump_pdp()
x86/apic: Move TSC deadline timer debug printk
* HID: i2c-hid: reset Synaptics SYNA2393 on resume
drivers/hid/hid-ids.h
scsi: ibmvscsi: Fix WARN_ON during event pool release
* component: Silence bind error on -EPROBE_DEFER
drivers/base/component.c
aquantia: Fix the media type of AQC100 ethernet controller in the driver
vhost/vsock: fix packet delivery order to monitoring devices
* configfs: fix config_item refcnt leak in configfs_rmdir()
fs/configfs/dir.c
scsi: qla2xxx: Delete all sessions before unregister local nvme port
scsi: qla2xxx: Fix hang when issuing nvme disconnect-all in NPIV
* HID: alps: ALPS_1657 is too specific; use U1_UNICORN_LEGACY instead
drivers/hid/hid-ids.h
* HID: alps: Add AUI1657 device ID
drivers/hid/hid-ids.h
* HID: multitouch: add eGalaxTouch P80H84 support
drivers/hid/hid-ids.h
drivers/hid/hid-multitouch.c
* gcc-common.h: Update for GCC 10
scripts/gcc-plugins/gcc-common.h
ubi: Fix seq_file usage in detailed_erase_block_info debugfs file
i2c: mux: demux-pinctrl: Fix an error handling path in 'i2c_demux_pinctrl_probe()'
iommu/amd: Fix over-read of ACPI UID from IVRS table
ubifs: remove broken lazytime support
* fix multiplication overflow in copy_fdtable()
fs/file.c
mtd: spinand: Propagate ECC information to the MTD structure
ima: Fix return value of ima_write_policy()
evm: Check also if *tfm is an error pointer in init_desc()
ima: Set file->f_mode instead of file->f_flags in ima_calc_file_hash()
riscv: set max_pfn to the PFN of the last page
KVM: SVM: Fix potential memory leak in svm_cpu_init()
* i2c: dev: Fix the race between the release of i2c_dev and cdev
drivers/i2c/i2c-dev.c
* ubsan: build ubsan.c more conservatively
lib/Makefile
* x86/uaccess, ubsan: Fix UBSAN vs. SMAP
lib/Makefile
* ANDROID: scsi: ufs: Handle clocks when lrbp fails
drivers/scsi/ufs/ufshcd.c
* ANDROID: fscrypt: handle direct I/O with IV_INO_LBLK_32
fs/crypto/crypto.c
fs/crypto/inline_crypt.c
fs/direct-io.c
fs/ext4/inode.c
fs/f2fs/f2fs.h
include/linux/fscrypt.h
* BACKPORT: FROMLIST: fscrypt: add support for IV_INO_LBLK_32 policies
fs/crypto/crypto.c
fs/crypto/fscrypt_private.h
fs/crypto/inline_crypt.c
fs/crypto/keyring.c
fs/crypto/keysetup.c
fs/crypto/policy.c
include/uapi/linux/fscrypt.h
ANDROID: Update the ABI xml and qcom whitelist
ANDROID: Fix build.config.gki-debug
Merge 4.19.124 into android-4.19-stable
Linux 4.19.124
* Makefile: disallow data races on gcc-10 as well
Makefile
KVM: x86: Fix off-by-one error in kvm_vcpu_ioctl_x86_setup_mce
ARM: dts: r8a7740: Add missing extal2 to CPG node
arm64: dts: renesas: r8a77980: Fix IPMMU VIP[01] nodes
ARM: dts: r8a73a4: Add missing CMT1 interrupts
arm64: dts: rockchip: Rename dwc3 device nodes on rk3399 to make dtc happy
arm64: dts: rockchip: Replace RK805 PMIC node name with "pmic" on rk3328 boards
* clk: Unlink clock if failed to prepare or enable
drivers/clk/clk.c
Revert "ALSA: hda/realtek: Fix pop noise on ALC225"
usb: gadget: legacy: fix error return code in cdc_bind()
usb: gadget: legacy: fix error return code in gncm_bind()
usb: gadget: audio: Fix a missing error return value in audio_bind()
usb: gadget: net2272: Fix a memory leak in an error handling path in 'net2272_plat_probe()'
* dwc3: Remove check for HWO flag in dwc3_gadget_ep_reclaim_trb_sg()
drivers/usb/dwc3/gadget.c
clk: rockchip: fix incorrect configuration of rk3228 aclk_gpu* clocks
* exec: Move would_dump into flush_old_exec
fs/exec.c
x86/unwind/orc: Fix error handling in __unwind_start()
* x86: Fix early boot crash on gcc-10, third try
include/linux/compiler.h
init/main.c
cifs: fix leaked reference on requeued write
ARM: dts: imx27-phytec-phycard-s-rdk: Fix the I2C1 pinctrl entries
ARM: dts: dra7: Fix bus_dma_limit for PCIe
* usb: xhci: Fix NULL pointer dereference when enqueuing trbs from urb sg list
drivers/usb/host/xhci-ring.c
* USB: gadget: fix illegal array access in binding with UDC
drivers/usb/gadget/configfs.c
* usb: host: xhci-plat: keep runtime active when removing host
drivers/usb/host/xhci-plat.c
* usb: core: hub: limit HUB_QUIRK_DISABLE_AUTOSUSPEND to USB5534B
drivers/usb/core/hub.c
* ALSA: usb-audio: Add control message quirk delay for Kingston HyperX headset
sound/usb/quirks.c
* ALSA: rawmidi: Fix racy buffer resize under concurrent accesses
include/sound/rawmidi.h
sound/core/rawmidi.c
ALSA: hda/realtek - Limit int mic boost for Thinkpad T530
* gcc-10: avoid shadowing standard library 'free()' in crypto
crypto/xts.c
* gcc-10: disable 'restrict' warning for now
Makefile
* gcc-10: disable 'stringop-overflow' warning for now
Makefile
* gcc-10: disable 'array-bounds' warning for now
Makefile
* gcc-10: disable 'zero-length-bounds' warning for now
Makefile
* Stop the ad-hoc games with -Wno-maybe-initialized
Makefile
init/Kconfig
kernel/trace/Kconfig
* kbuild: compute false-positive -Wmaybe-uninitialized cases in Kconfig
Makefile
init/Kconfig
kernel/trace/Kconfig
* gcc-10 warnings: fix low-hanging fruit
include/linux/fs.h
include/linux/tty.h
* pnp: Use list_for_each_entry() instead of open coding
include/linux/pnp.h
hwmon: (da9052) Synchronize access with mfd
IB/mlx4: Test return value of calls to ib_get_cached_pkey
netfilter: nft_set_rbtree: Introduce and use nft_rbtree_interval_start()
arm64: fix the flush_icache_range arguments in machine_kexec
* netfilter: conntrack: avoid gcc-10 zero-length-bounds warning
include/net/netfilter/nf_conntrack.h
net/netfilter/nf_conntrack_core.c
NFSv4: Fix fscache cookie aux_data to ensure change_attr is included
nfs: fscache: use timespec64 in inode auxdata
NFS: Fix fscache super_cookie index_key from changing after umount
mmc: block: Fix request completion in the CQE timeout path
mmc: core: Check request type before completing the request
i40iw: Fix error handling in i40iw_manage_arp_cache()
pinctrl: cherryview: Add missing spinlock usage in chv_gpio_irq_handler
pinctrl: baytrail: Enable pin configuration setting for GPIO chip
gfs2: Another gfs2_walk_metadata fix
ALSA: hda/realtek - Fix S3 pop noise on Dell Wyse
ipc/util.c: sysvipc_find_ipc() incorrectly updates position index
drm/qxl: lost qxl_bo_kunmap_atomic_page in qxl_image_init_helper()
ALSA: hda/hdmi: fix race in monitor detection during probe
cpufreq: intel_pstate: Only mention the BIOS disabling turbo mode once
dmaengine: mmp_tdma: Reset channel error on release
dmaengine: pch_dma.c: Avoid data race between probe and irq handler
riscv: fix vdso build with lld
* tcp: fix SO_RCVLOWAT hangs with fat skbs
include/net/tcp.h
net/ipv4/tcp.c
net/ipv4/tcp_input.c
* net: tcp: fix rx timestamp behavior for tcp_recvmsg
net/ipv4/tcp.c
netprio_cgroup: Fix unlimited memory leak of v2 cgroups
* net: ipv4: really enforce backoff for redirects
net/ipv4/route.c
net: dsa: loop: Add module soft dependency
hinic: fix a bug of ndo_stop
virtio_net: fix lockdep warning on 32 bit
* tcp: fix error recovery in tcp_zerocopy_receive()
net/ipv4/tcp.c
* Revert "ipv6: add mtu lock check in __ip6_rt_update_pmtu"
net/ipv6/route.c
* pppoe: only process PADT targeted at local interfaces
drivers/net/ppp/pppoe.c
* net: phy: fix aneg restart in phy_ethtool_set_eee
drivers/net/phy/phy.c
* netlabel: cope with NULL catmap
net/ipv4/cipso_ipv4.c
net/ipv6/calipso.c
net/netlabel/netlabel_kapi.c
* net: fix a potential recursive NETDEV_FEAT_CHANGE
net/core/dev.c
mmc: sdhci-acpi: Add SDHCI_QUIRK2_BROKEN_64_BIT_DMA for AMDI0040
* scsi: sg: add sg_remove_request in sg_write
drivers/scsi/sg.c
virtio-blk: handle block_device_operations callbacks after hot unplug
drop_monitor: work around gcc-10 stringop-overflow warning
net: moxa: Fix a potential double 'free_irq()'
net/sonic: Fix a resource leak in an error handling path in 'jazz_sonic_probe()'
* shmem: fix possible deadlocks on shmlock_user_lock
mm/shmem.c
net: dsa: Do not make user port errors fatal
* ANDROID: rtc: class: call hctosys in resource managed registration
drivers/rtc/class.c
ANDROID: GKI: Update the ABI xml and whitelist
* ANDROID: power_supply: Add RTX power-supply property
drivers/power/supply/power_supply_sysfs.c
include/linux/power_supply.h
* f2fs: flush dirty meta pages when flushing them
fs/f2fs/checkpoint.c
* f2fs: fix checkpoint=disable:%u%%
fs/f2fs/f2fs.h
fs/f2fs/super.c
* f2fs: rework filename handling
fs/f2fs/dir.c
fs/f2fs/f2fs.h
fs/f2fs/hash.c
fs/f2fs/inline.c
fs/f2fs/namei.c
fs/f2fs/recovery.c
* f2fs: split f2fs_d_compare() from f2fs_match_name()
fs/f2fs/dir.c
fs/f2fs/f2fs.h
* f2fs: don't leak filename in f2fs_try_convert_inline_dir()
fs/f2fs/inline.c
ANDROID: clang: update to 11.0.1
FROMLIST: x86_64: fix jiffies ODR violation
* ANDROID: arm64: vdso: Fix removing SCS flags
arch/arm64/kernel/vdso/Makefile
Merge branch 'android-4.19' into android-4.19-stable
ANDROID: GKI: Update the ABI xml and whitelist
* ANDROID: Incremental fs: wake up log pollers less often
fs/incfs/data_mgmt.c
fs/incfs/data_mgmt.h
* ANDROID: Incremental fs: Fix scheduling while atomic error
fs/incfs/vfs.c
* ANDROID: Incremental fs: Avoid continually recalculating hashes
fs/incfs/data_mgmt.c
* ANDROID: export: Disable symbol trimming on modules
include/linux/export.h
ANDROID: GKI: Update the ABI xml and whitelist
* ANDROID: fscrypt: set dun_bytes more precisely
fs/crypto/inline_crypt.c
* ANDROID: dm-default-key: set dun_bytes more precisely
drivers/md/dm-default-key.c
* ANDROID: block: backport the ability to specify max_dun_bytes
block/blk-crypto.c
block/keyslot-manager.c
drivers/md/dm-default-key.c
drivers/scsi/ufs/ufshcd-crypto.c
fs/crypto/inline_crypt.c
include/linux/bio-crypt-ctx.h
include/linux/blk-crypto.h
include/linux/keyslot-manager.h
ANDROID: Revert "ANDROID: GKI: gki_defconfig: CONFIG_DM_DEFAULT_KEY=m"
Merge 4.19.123 into android-4.19
Linux 4.19.123
ipc/mqueue.c: change __do_notify() to bypass check_kill_permission()
scripts/decodecode: fix trapping instruction formatting
objtool: Fix stack offset tracking for indirect CFAs
netfilter: nf_osf: avoid passing pointer to local var
* netfilter: nat: never update the UDP checksum when it's 0
net/netfilter/nf_nat_proto_udp.c
x86/unwind/orc: Fix premature unwind stoppage due to IRET frames
x86/unwind/orc: Fix error path for bad ORC entry type
x86/unwind/orc: Prevent unwinding before ORC initialization
x86/unwind/orc: Don't skip the first frame for inactive tasks
x86/entry/64: Fix unwind hints in rewind_stack_do_exit()
x86/entry/64: Fix unwind hints in kernel exit path
x86/entry/64: Fix unwind hints in register clearing code
batman-adv: Fix refcnt leak in batadv_v_ogm_process
batman-adv: Fix refcnt leak in batadv_store_throughput_override
batman-adv: Fix refcnt leak in batadv_show_throughput_override
batman-adv: fix batadv_nc_random_weight_tq
KVM: VMX: Mark RCX, RDX and RSI as clobbered in vmx_vcpu_run()'s asm blob
KVM: VMX: Explicitly reference RCX as the vmx_vcpu pointer in asm blobs
* coredump: fix crash when umh is disabled
fs/coredump.c
kernel/umh.c
staging: gasket: Check the return value of gasket_get_bar_index()
* mm/page_alloc: fix watchdog soft lockups during set_zone_contiguous()
mm/page_alloc.c
arm64: hugetlb: avoid potential NULL dereference
KVM: arm64: Fix 32bit PC wrap-around
KVM: arm: vgic: Fix limit condition when writing to GICD_I[CS]ACTIVER
* tracing: Add a vmalloc_sync_mappings() for safe measure
kernel/trace/trace.c
USB: serial: garmin_gps: add sanity checking for data length
USB: uas: add quirk for LaCie 2Big Quadra
* HID: usbhid: Fix race between usbhid_close() and usbhid_stop()
drivers/hid/usbhid/hid-core.c
drivers/hid/usbhid/usbhid.h
* sctp: Fix bundling of SHUTDOWN with COOKIE-ACK
net/sctp/sm_statefuns.c
HID: wacom: Read HID_DG_CONTACTMAX directly for non-generic devices
* net: stricter validation of untrusted gso packets
include/linux/virtio_net.h
bnxt_en: Fix VF anti-spoof filter setup.
bnxt_en: Improve AER slot reset.
net/mlx5: Fix command entry leak in Internal Error State
net/mlx5: Fix forced completion access non initialized command entry
bnxt_en: Fix VLAN acceleration handling in bnxt_fix_features().
* tipc: fix partial topology connection closure
net/tipc/topsrv.c
sch_sfq: validate silly quantum values
sch_choke: avoid potential panic in choke_reset()
net: usb: qmi_wwan: add support for DW5816e
net_sched: sch_skbprio: add message validation to skbprio_change()
net/mlx4_core: Fix use of ENOSPC around mlx4_counter_alloc()
net: macsec: preserve ingress frame ordering
fq_codel: fix TCA_FQ_CODEL_DROP_BATCH_SIZE sanity checks
dp83640: reverse arguments to list_add_tail
vt: fix unicode console freeing with a common interface
tracing/kprobes: Fix a double initialization typo
USB: serial: qcserial: Add DW5816e support
* ANDROID: usb: gadget: Add missing inline qualifier to stub functions
include/linux/usb/gadget.h
ANDROID: Drop ABI monitoring from KASAN build config
ANDROID: Rename build.config.gki.arch_kasan
ANDROID: GKI: Enable CONFIG_STATIC_USERMODEHELPER
* ANDROID: dm-default-key: Update key size for wrapped keys
drivers/md/dm-default-key.c
ANDROID: gki_defconfig: enable CONFIG_MMC_CRYPTO
* ANDROID: mmc: MMC crypto API
drivers/mmc/core/Kconfig
include/linux/mmc/core.h
include/linux/mmc/host.h
ANDROID: GKI: Update the ABI xml and whitelist
* ANDROID: GKI: add missing exports for cam_smmu_api.ko
drivers/iommu/dma-iommu.c
Merge 4.19.122 into android-4.19
Linux 4.19.122
* drm/atomic: Take the atomic toys away from X
drivers/gpu/drm/drm_ioctl.c
cgroup, netclassid: remove double cond_resched
* mac80211: add ieee80211_is_any_nullfunc()
include/linux/ieee80211.h
platform/x86: GPD pocket fan: Fix error message when temp-limits are out of range
ALSA: hda: Match both PCI ID and SSID for driver blacklist
hexagon: define ioremap_uc
hexagon: clean up ioremap
mfd: intel-lpss: Use devm_ioremap_uc for MMIO
* lib: devres: add a helper function for ioremap_uc
include/linux/io.h
lib/devres.c
drm/amdgpu: Fix oops when pp_funcs is unset in ACPI event
* sctp: Fix SHUTDOWN CTSN Ack in the peer restart case
net/sctp/sm_make_chunk.c
net: systemport: suppress warnings on failed Rx SKB allocations
net: bcmgenet: suppress warnings on failed Rx SKB allocations
* lib/mpi: Fix building for powerpc with clang
lib/mpi/longlong.h
scripts/config: allow colons in option strings for sed
s390/ftrace: fix potential crashes when switching tracers
cifs: protect updating server->dstaddr with a spinlock
ASoC: rsnd: Fix "status check failed" spam for multi-SSI
ASoC: rsnd: Don't treat master SSI in multi SSI setup as parent
net: stmmac: Fix sub-second increment
net: stmmac: fix enabling socfpga's ptp_ref_clock
wimax/i2400m: Fix potential urb refcnt leak
drm/amdgpu: Correctly initialize thermal controller for GPUs with Powerplay table v0 (e.g Hawaii)
ASoC: codecs: hdac_hdmi: Fix incorrect use of list_for_each_entry
ASoC: rsnd: Fix HDMI channel mapping for multi-SSI mode
ASoC: rsnd: Fix parent SSI start/stop in multi-SSI mode
* usb: dwc3: gadget: Properly set maxpacket limit
drivers/usb/dwc3/core.h
drivers/usb/dwc3/gadget.c
ASoC: sgtl5000: Fix VAG power-on handling
selftests/ipc: Fix test failure seen after initial test run
ASoC: topology: Check return value of pcm_new_ver
powerpc/pci/of: Parse unassigned resources
vhost: vsock: kick send_pkt worker once device is started
ANDROID: GKI: fix build warning on 32bits due to ASoC msm change
ANDROID: GKI: fix build error on 32bits due to ASoC msm change
ANDROID: GKI: update abi definition due to FAIR_GROUP_SCHED removal
ANDROID: GKI: Remove FAIR_GROUP_SCHED
ANDROID: GKI: BULK update ABI XML representation and qcom whitelist
ANDROID: build.config.gki.aarch64: Enable WHITELIST_STRICT_MODE
ANDROID: GKI: Update the ABI xml and qcom whitelist
* ANDROID: remove unused variable
fs/f2fs/xattr.c
ANDROID: Drop ABI monitoring from KASAN build config
Merge 4.19.121 into android-4.19
Linux 4.19.121
mmc: meson-mx-sdio: remove the broken ->card_busy() op
mmc: meson-mx-sdio: Set MMC_CAP_WAIT_WHILE_BUSY
mmc: sdhci-msm: Enable host capabilities pertains to R1b response
mmc: sdhci-pci: Fix eMMC driver strength for BYT-based controllers
mmc: sdhci-xenon: fix annoying 1.8V regulator warning
mmc: cqhci: Avoid false "cqhci: CQE stuck on" by not open-coding timeout loop
btrfs: transaction: Avoid deadlock due to bad initialization timing of fs_info::journal_info
btrfs: fix partial loss of prealloc extent past i_size after fsync
* selinux: properly handle multiple messages in selinux_netlink_send()
security/selinux/hooks.c
dmaengine: dmatest: Fix iteration non-stop logic
nfs: Fix potential posix_acl refcnt leak in nfs3_set_acl
ALSA: opti9xx: shut up gcc-10 range warning
iommu/amd: Fix legacy interrupt remapping for x2APIC-enabled system
scsi: target/iblock: fix WRITE SAME zeroing
iommu/qcom: Fix local_base status check
vfio/type1: Fix VA->PA translation for PFNMAP VMAs in vaddr_get_pfn()
vfio: avoid possible overflow in vfio_iommu_type1_pin_pages
RDMA/core: Fix race between destroy and release FD object
RDMA/core: Prevent mixed use of FDs between shared ufiles
RDMA/mlx4: Initialize ib_spec on the stack
RDMA/mlx5: Set GRH fields in query QP on RoCE
scsi: qla2xxx: check UNLOADING before posting async work
scsi: qla2xxx: set UNLOADING before waiting for session deletion
dm multipath: use updated MPATHF_QUEUE_IO on mapping for bio-based mpath
dm writecache: fix data corruption when reloading the target
* dm verity fec: fix hash block number in verity_fec_decode
drivers/md/dm-verity-fec.c
PM: hibernate: Freeze kernel threads in software_resume()
PM: ACPI: Output correct message on target power state
ALSA: pcm: oss: Place the plugin buffer overflow checks correctly
ALSA: hda/hdmi: fix without unlocked before return
* ALSA: usb-audio: Correct a typo of NuPrime DAC-10 USB ID
sound/usb/quirks.c
ALSA: hda/realtek - Two front mics on a Lenovo ThinkCenter
btrfs: fix block group leak when removing fails
drm/qxl: qxl_release use after free
drm/qxl: qxl_release leak in qxl_hw_surface_alloc()
drm/qxl: qxl_release leak in qxl_draw_dirty_fb()
* drm/edid: Fix off-by-one in DispID DTD pixel clock
drivers/gpu/drm/drm_edid.c
ANDROID: GKI: Bulk update ABI XML representation
ANDROID: GKI: Enable net testing options
ANDROID: gki_defconfig: Enable CONFIG_REMOTEPROC
ANDROID: Rename build.config.gki.arch_kasan
ANDROID: GKI: Update ABI for IOMMU
* ANDROID: Incremental fs: Fix issues with very large files
fs/incfs/vfs.c
ANDROID: Correct build.config branch name
ANDROID: GKI: Bulk update ABI XML representation and whitelist.
* UPSTREAM: vdso: Fix clocksource.h macro detection
include/vdso/clocksource.h
Merge 4.19.120 into android-4.19
ANDROID: GKI: update abi definition due to added padding
* ANDROID: GKI: networking: add Android ABI padding to a lot of networking structures
include/linux/ipv6.h
include/linux/net.h
include/linux/netdevice.h
include/linux/skbuff.h
* ANDROID: GKI: dma-mapping.h: add Android ABI padding to a structure
include/linux/dma-mapping.h
* ANDROID: GKI: ioport.h: add Android ABI padding to a structure
include/linux/ioport.h
* ANDROID: GKI: iomap.h: add Android ABI padding to a structure
include/linux/iomap.h
* ANDROID: GKI: genhd.h: add Android ABI padding to some structures
include/linux/genhd.h
* ANDROID: GKI: hrtimer.h: add Android ABI padding to a structure
include/linux/hrtimer.h
* ANDROID: GKI: ethtool.h: add Android ABI padding to a structure
include/linux/ethtool.h
* ANDROID: GKI: sched: add Android ABI padding to some structures
include/linux/sched/topology.h
include/linux/sched/user.h
* ANDROID: GKI: kernfs.h: add Android ABI padding to some structures
include/linux/kernfs.h
* ANDROID: GKI: kobject.h: add Android ABI padding to some structures
include/linux/kobject.h
* ANDROID: GKI: mm.h: add Android ABI padding to a structure
include/linux/mm.h
* ANDROID: GKI: mmu_notifier.h: add Android ABI padding to some structures
include/linux/mmu_notifier.h
* ANDROID: GKI: pci: add Android ABI padding to some structures
drivers/pci/pci.h
include/linux/pci.h
* ANDROID: GKI: irqdomain.h: add Android ABI padding to a structure
include/linux/irqdomain.h
* ANDROID: GKI: blk_types.h: add Android ABI padding to a structure
include/linux/blk_types.h
* ANDROID: GKI: scsi.h: add Android ABI padding to a structure
drivers/scsi/sd.h
* ANDROID: GKI: quota.h: add Android ABI padding to some structures
include/linux/quota.h
* ANDROID: GKI: timer.h: add Android ABI padding to a structure
include/linux/timer.h
* ANDROID: GKI: user_namespace.h: add Android ABI padding to a structure
include/linux/user_namespace.h
FROMGIT: f2fs: fix missing check for f2fs_unlock_op
Linux 4.19.120
* propagate_one(): mnt_set_mountpoint() needs mount_lock
fs/pnode.c
* ext4: check for non-zero journal inum in ext4_calculate_overhead
fs/ext4/super.c
* qed: Fix use after free in qed_chain_free
include/linux/qed/qed_chain.h
bpf, x86_32: Fix clobbering of dst for BPF_JSET
hwmon: (jc42) Fix name to have no illegal characters
* ext4: convert BUG_ON's to WARN_ON's in mballoc.c
fs/ext4/mballoc.c
* ext4: increase wait time needed before reuse of deleted inode numbers
fs/ext4/ialloc.c
* ext4: use matching invalidatepage in ext4_writepage
fs/ext4/inode.c
* arm64: Delete the space separator in __emit_inst
arch/arm64/include/asm/sysreg.h
ALSA: hda: call runtime_allow() for all hda controllers
xen/xenbus: ensure xenbus_map_ring_valloc() returns proper grant status
objtool: Support Clang non-section symbols in ORC dump
objtool: Fix CONFIG_UBSAN_TRAP unreachable warnings
scsi: target: tcmu: reset_ring should reset TCMU_DEV_BIT_BROKEN
scsi: target: fix PR IN / READ FULL STATUS for FC
ALSA: hda: Explicitly permit using autosuspend if runtime PM is supported
ALSA: hda: Keep the controller initialization even if no codecs found
xfs: fix partially uninitialized structure in xfs_reflink_remap_extent
x86: hyperv: report value of misc_features
net: fec: set GPR bit on suspend by DT configuration.
bpf, x86: Fix encoding for lower 8-bit registers in BPF_STX BPF_B
xfs: clear PF_MEMALLOC before exiting xfsaild thread
* mm: shmem: disable interrupt when acquiring info->lock in userfaultfd_copy path
mm/shmem.c
bpf, x86_32: Fix incorrect encoding in BPF_LDX zero-extension
* perf/core: fix parent pid/tid in task exit events
kernel/events/core.c
net/mlx5: Fix failing fw tracer allocation on s390
* cpumap: Avoid warning when CONFIG_DEBUG_PER_CPU_MAPS is enabled
kernel/bpf/cpumap.c
ARM: dts: bcm283x: Disable dsi0 node
* PCI: Move Apex Edge TPU class quirk to fix BAR assignment
drivers/pci/quirks.c
* PCI: Avoid ASMedia XHCI USB PME# from D0 defect
drivers/pci/quirks.c
* svcrdma: Fix leak of svc_rdma_recv_ctxt objects
include/linux/sunrpc/svc_rdma.h
* svcrdma: Fix trace point use-after-free race
include/trace/events/rpcrdma.h
xfs: acquire superblock freeze protection on eofblocks scans
net/cxgb4: Check the return from t4_query_params properly
rxrpc: Fix DATA Tx to disable nofrag for UDP on AF_INET6 socket
i2c: altera: use proper variable to hold errno
nfsd: memory corruption in nfsd4_lock()
ASoC: wm8960: Fix wrong clock after suspend & resume
ASoC: tas571x: disable regulators on failed probe
ASoC: q6dsp6: q6afe-dai: add missing channels to MI2S DAIs
iio:ad7797: Use correct attribute_group
usb: gadget: udc: bdc: Remove unnecessary NULL checks in bdc_req_complete
* usb: dwc3: gadget: Do link recovery for SS and SSP
drivers/usb/dwc3/gadget.c
* binder: take read mode of mmap_sem in binder_alloc_free_page()
drivers/android/binder_alloc.c
* include/uapi/linux/swab.h: fix userspace breakage, use __BITS_PER_LONG for swap
include/uapi/linux/swab.h
mtd: cfi: fix deadloop in cfi_cmdset_0002.c do_write_buffer
remoteproc: Fix wrong rvring index computation
* FROMLIST: PM / devfreq: Restart previous governor if new governor fails to start
drivers/devfreq/devfreq.c
* ANDROID: GKI: arm64: Enable GZIP and LZ4 kernel compression modes
arch/arm64/Kconfig
ANDROID: GKI: arm64: gki_defconfig: Set arm_smmu configuration
* ANDROID: GKI: iommu/arm-smmu: Modularize ARM SMMU driver
drivers/iommu/Kconfig
drivers/iommu/arm-smmu.c
* ANDROID: GKI: iommu: Snapshot of vendor changes
arch/arm64/mm/dma-mapping.c
drivers/iommu/dma-iommu.c
drivers/iommu/io-pgtable.c
drivers/iommu/iommu.c
drivers/iommu/iova.c
include/linux/dma-iommu.h
include/linux/dma-mapping.h
include/linux/io-pgtable.h
include/linux/iommu.h
include/linux/iova.h
include/trace/events/iommu.h
* ANDROID: GKI: Additions to ARM SMMU register definitions
drivers/iommu/arm-smmu-regs.h
* ANDROID: GKI: iommu/io-pgtable-arm: LPAE related updates by vendor
drivers/iommu/io-pgtable-arm.c
* ANDROID: GKI: common: dma-mapping: make dma_common_contiguous_remap more robust
kernel/dma/mapping.c
* ANDROID: GKI: dma-coherent: Expose device base address and size
include/linux/dma-mapping.h
kernel/dma/coherent.c
* ANDROID: GKI: arm64: add support for NO_KERNEL_MAPPING and STRONGLY_ORDERED
arch/arm64/mm/dma-mapping.c
* ANDROID: GKI: dma-mapping: Add dma_remap functions
arch/arm64/mm/dma-mapping.c
include/linux/dma-mapping.h
kernel/dma/mapping.c
* ANDROID: GKI: arm64: Support early fixup for CMA
arch/arm64/include/asm/dma-contiguous.h
arch/arm64/mm/mmu.c
* ANDROID: GKI: iommu: dma-mapping-fast: Fast ARMv7/v8 Long Descriptor Format
arch/arm64/include/asm/dma-iommu.h
arch/arm64/mm/dma-mapping.c
drivers/iommu/Kconfig
drivers/iommu/Makefile
drivers/iommu/dma-mapping-fast.c
drivers/iommu/io-pgtable-fast.c
drivers/iommu/io-pgtable.c
include/linux/dma-mapping-fast.h
include/linux/io-pgtable-fast.h
include/linux/io-pgtable.h
* ANDROID: GKI: arm64: dma-mapping: add support for IOMMU mapper
arch/arm64/Kconfig
arch/arm64/include/asm/device.h
arch/arm64/include/asm/dma-iommu.h
arch/arm64/mm/dma-mapping.c
drivers/iommu/Kconfig
* ANDROID: GKI: add ARCH_NR_GPIO for ABI match
arch/arm64/Kconfig
* ANDROID: GKI: kernel: Export symbol of `cpu_do_idle`
arch/arm64/kernel/arm64ksyms.c
* ANDROID: GKI: kernel: Export symbols needed by msm_minidump.ko and minidump_log.ko (again)
arch/arm64/kernel/arm64ksyms.c
* ANDROID: GKI: add missing exports for __flush_dcache_area
arch/arm64/kernel/arm64ksyms.c
* ANDROID: GKI: arm64: Export caching APIs
arch/arm64/kernel/arm64ksyms.c
* ANDROID: GKI: arm64: provide dma cache routines with same API as 32 bit
arch/arm64/include/asm/cacheflush.h
arch/arm64/mm/cache.S
ANDROID: gki_defconfig: add FORTIFY_SOURCE, remove SPMI_MSM_PMIC_ARB
* Revert "ANDROID: GKI: spmi: pmic-arb: don't enable SPMI_MSM_PMIC_ARB by default"
drivers/spmi/Kconfig
ANDROID: GKI: update abi definitions after adding padding
* ANDROID: GKI: elevator: add Android ABI padding to some structures
include/linux/elevator.h
* ANDROID: GKI: dentry: add Android ABI padding to some structures
include/linux/dcache.h
* ANDROID: GKI: bio: add Android ABI padding to some structures
include/linux/bio.h
* ANDROID: GKI: scsi: add Android ABI padding to some structures
include/scsi/scsi_cmnd.h
include/scsi/scsi_device.h
include/scsi/scsi_host.h
* ANDROID: GKI: ufs: add Android ABI padding to some structures
drivers/scsi/ufs/ufshcd.h
* ANDROID: GKI: workqueue.h: add Android ABI padding to some structures
include/linux/workqueue.h
* ANDROID: GKI: fs.h: add Android ABI padding to some structures
include/linux/fs.h
* ANDROID: GKI: USB: add Android ABI padding to some structures
include/linux/usb.h
include/linux/usb/hcd.h
include/linux/usb/usbnet.h
* ANDROID: GKI: mm: add Android ABI padding to some structures
include/linux/mm_types.h
include/linux/mmzone.h
* ANDROID: GKI: mount.h: add Android ABI padding to some structures
include/linux/mount.h
* ANDROID: GKI: sched.h: add Android ABI padding to some structures
include/linux/sched.h
include/linux/sched/signal.h
* ANDROID: GKI: sock.h: add Android ABI padding to some structures
include/net/sock.h
* ANDROID: GKI: module.h: add Android ABI padding to some structures
include/linux/module.h
* ANDROID: GKI: device.h: add Android ABI padding to some structures
include/linux/device.h
* ANDROID: GKI: phy: add Android ABI padding to some structures
include/linux/phy.h
* ANDROID: GKI: add android_kabi.h
include/linux/android_kabi.h
ANDROID: ABI: update due to previous changes in the tree
* BACKPORT: sched/core: Fix reset-on-fork from RT with uclamp
kernel/sched/core.c
* ANDROID: GKI: Add support for missing V4L2 symbols
drivers/media/v4l2-core/v4l2-ioctl.c
include/uapi/linux/videodev2.h
ANDROID: GKI: Bulk update ABI XML representation
* ANDROID: GKI: arm64: psci: Support for OS initiated scheme
drivers/firmware/psci.c
* ANDROID: GKI: net: add counter for number of frames coalesced in GRO
include/linux/netdevice.h
* ANDROID: GKI: cfg80211: Include length of kek in rekey data
include/net/cfg80211.h
net/wireless/nl80211.c
* BACKPORT: loop: change queue block size to match when using DIO
drivers/block/loop.c
* ANDROID: Incremental fs: Add setattr call
fs/incfs/vfs.c
ANDROID: GKI: enable CONFIG_RTC_SYSTOHC
* ANDROID: GKI: ipv4: add vendor padding to __IPV4_DEVCONF_* enums
include/uapi/linux/ip.h
* Revert "ANDROID: GKI: ipv4: increase __IPV4_DEVCONF_MAX to 64"
include/uapi/linux/ip.h
* ANDROID: driver: gpu: drm: fix export symbol types
drivers/gpu/drm/drm_panel.c
* ANDROID: SoC: core: fix export symbol type
sound/soc/soc-core.c
* ANDROID: ufshcd-crypto: fix export symbol type
drivers/scsi/ufs/ufshcd-crypto.c
* ANDROID: GKI: drivers: mailbox: fix race resulting in multiple message submission
drivers/mailbox/mailbox.c
ANDROID: GKI: arm64: gki_defconfig: Enable a few thermal configs
* Revert "ANDROID: GKI: add base.h include to match MODULE_VERSIONS"
drivers/thermal/thermal_core.c
* FROMLIST: thermal: Make cooling device trip point writable from sysfs
drivers/thermal/thermal_core.c
drivers/thermal/thermal_core.h
drivers/thermal/thermal_sysfs.c
* ANDROID: GKI: drivers: thermal: cpu_cooling: Use CPU ID as cooling device ID
drivers/thermal/cpu_cooling.c
* ANDROID: GKI: PM / devfreq: Allow min freq to be 0
drivers/devfreq/devfreq.c
ANDROID: GKI: arm64: gki_defconfig: Enable REGULATOR_PROXY_CONSUMER
ANDROID: GKI: Bulk Update ABI XML representation
ANDROID: KASAN support for GKI remove CONFIG_CC_WERROR
ANDROID: KASAN support for GKI
ANDROID: virt_wifi: fix export symbol types
* ANDROID: vfs: fix export symbol type
fs/attr.c
* ANDROID: vfs: fix export symbol types
fs/namei.c
* ANDROID: fscrypt: fix export symbol type
fs/crypto/fname.c
* ANDROID: cfi: fix export symbol types
kernel/cfi.c
* ANDROID: bpf: fix export symbol type
kernel/bpf/core.c
Merge 4.19.119 into android-4.19
Linux 4.19.119
s390/mm: fix page table upgrade vs 2ndary address mode accesses
xfs: Fix deadlock between AGI and AGF with RENAME_WHITEOUT
serial: sh-sci: Make sure status register SCxSR is read in correct sequence
* xhci: prevent bus suspend if a roothub port detected a over-current condition
drivers/usb/host/xhci-hub.c
* usb: f_fs: Clear OS Extended descriptor counts to zero in ffs_data_reset()
drivers/usb/gadget/function/f_fs.c
* usb: dwc3: gadget: Fix request completion check
drivers/usb/dwc3/gadget.c
UAS: fix deadlock in error handling and PM flushing work
UAS: no use logging any details in case of ENODEV
cdc-acm: introduce a cool down
cdc-acm: close race betrween suspend() and acm_softint
staging: vt6656: Power save stop wake_up_count wrap around.
staging: vt6656: Fix pairwise key entry save.
staging: vt6656: Fix drivers TBTT timing counter.
staging: vt6656: Fix calling conditions of vnt_set_bss_mode
staging: vt6656: Don't set RCR_MULTICAST or RCR_BROADCAST by default.
vt: don't use kmalloc() for the unicode screen buffer
vt: don't hardcode the mem allocation upper bound
staging: comedi: Fix comedi_device refcnt leak in comedi_open
staging: comedi: dt2815: fix writing hi byte of analog output
powerpc/setup_64: Set cache-line-size based on cache-block-size
ARM: imx: provide v7_cpu_resume() only on ARM_CPU_SUSPEND=y
iwlwifi: mvm: beacon statistics shouldn't go backwards
iwlwifi: pcie: actually release queue memory in TVQM
* ASoC: dapm: fixup dapm kcontrol widget
sound/soc/soc-dapm.c
* audit: check the length of userspace generated audit records
kernel/audit.c
* usb-storage: Add unusual_devs entry for JMicron JMS566
drivers/usb/storage/unusual_devs.h
tty: rocket, avoid OOB access
tty: hvc: fix buffer overflow during hvc_alloc().
KVM: VMX: Enable machine check support for 32bit targets
* KVM: Check validity of resolved slot when searching memslots
include/linux/kvm_host.h
KVM: s390: Return last valid slot if approx index is out-of-bounds
tpm: ibmvtpm: retry on H_CLOSED in tpm_ibmvtpm_send()
tpm/tpm_tis: Free IRQ if probing fails
* ALSA: usb-audio: Filter out unsupported sample rates on Focusrite devices
sound/usb/format.c
* ALSA: usb-audio: Fix usb audio refcnt leak when getting spdif
sound/usb/mixer_quirks.c
ALSA: hda/realtek - Add new codec supported for ALC245
ALSA: hda/realtek - Fix unexpected init_amp override
ALSA: usx2y: Fix potential NULL dereference
tools/vm: fix cross-compile build
mm/ksm: fix NULL pointer dereference when KSM zero page is enabled
mm/hugetlb: fix a addressing exception caused by huge_pte_offset
* vmalloc: fix remap_vmalloc_range() bounds checks
include/linux/vmalloc.h
mm/vmalloc.c
* USB: hub: Fix handling of connect changes during sleep
drivers/usb/core/hub.c
* USB: core: Fix free-while-in-use bug in the USB S-Glibrary
drivers/usb/core/message.c
USB: early: Handle AMD's spec-compliant identifiers, too
* USB: Add USB_QUIRK_DELAY_CTRL_MSG and USB_QUIRK_DELAY_INIT for Corsair K70 RGB RAPIDFIRE
drivers/usb/core/quirks.c
USB: sisusbvga: Change port variable from signed to unsigned
* fs/namespace.c: fix mountpoint reference counter race
fs/namespace.c
iio: xilinx-xadc: Make sure not exceed maximum samplerate
iio: xilinx-xadc: Fix sequencer configuration for aux channels in simultaneous mode
iio: xilinx-xadc: Fix clearing interrupt when enabling trigger
iio: xilinx-xadc: Fix ADC-B powerdown
iio: adc: stm32-adc: fix sleep in atomic context
iio: st_sensors: rely on odr mask to know if odr can be set
* iio: core: remove extra semi-colon from devm_iio_device_register() macro
include/linux/iio/iio.h
* ALSA: usb-audio: Add connector notifier delegation
sound/usb/mixer.c
sound/usb/mixer.h
sound/usb/mixer_maps.c
* ALSA: usb-audio: Add static mapping table for ALC1220-VB-based mobos
sound/usb/mixer.c
sound/usb/mixer_maps.c
sound/usb/quirks-table.h
ALSA: hda: Remove ASUS ROG Zenith from the blacklist
* KEYS: Avoid false positive ENOMEM error on key read
security/keys/internal.h
security/keys/keyctl.c
mlxsw: Fix some IS_ERR() vs NULL bugs
vrf: Check skb for XFRM_TRANSFORMED flag
* xfrm: Always set XFRM_TRANSFORMED in xfrm{4,6}_output_finish
net/ipv4/xfrm4_output.c
net/ipv6/xfrm6_output.c
net: dsa: b53: b53_arl_rw_op() needs to select IVL or SVL
net: dsa: b53: Rework ARL bin logic
net: dsa: b53: Fix ARL register definitions
net: dsa: b53: Lookup VID in ARL searches when VLAN is enabled
vrf: Fix IPv6 with qdisc and xfrm
team: fix hang in team_mode_get()
* tcp: cache line align MAX_TCP_HEADER
include/net/tcp.h
sched: etf: do not assume all sockets are full blown
net/x25: Fix x25_neigh refcnt leak when receiving frame
net: stmmac: dwmac-meson8b: Add missing boundary to RGMII TX clock array
net: netrom: Fix potential nr_neigh refcnt leak in nr_add_node
net: bcmgenet: correct per TX/RX ring statistics
macvlan: fix null dereference in macvlan_device_event()
macsec: avoid to set wrong mtu
* ipv6: fix restrict IPV6_ADDRFORM operation
net/ipv6/ipv6_sockglue.c
cxgb4: fix large delays in PTP synchronization
cxgb4: fix adapter crash due to wrong MC size
x86/KVM: Clean up host's steal time structure
x86/KVM: Make sure KVM_VCPU_FLUSH_TLB flag is not missed
* x86/kvm: Cache gfn to pfn translation
include/linux/kvm_host.h
include/linux/kvm_types.h
* x86/kvm: Introduce kvm_(un)map_gfn()
include/linux/kvm_host.h
KVM: Properly check if "page" is valid in kvm_vcpu_unmap
kvm: fix compile on s390 part 2
kvm: fix compilation on s390
kvm: fix compilation on aarch64
* KVM: Introduce a new guest mapping API
include/linux/kvm_host.h
KVM: nVMX: Always sync GUEST_BNDCFGS when it comes from vmcs01
KVM: VMX: Zero out *all* general purpose registers after VM-Exit
* f2fs: fix to avoid memory leakage in f2fs_listxattr
fs/f2fs/xattr.c
* blktrace: fix dereference after null check
kernel/trace/blktrace.c
* blktrace: Protect q->blk_trace with RCU
include/linux/blkdev.h
include/linux/blktrace_api.h
kernel/trace/blktrace.c
* net: ipv6_stub: use ip6_dst_lookup_flow instead of ip6_dst_lookup
include/net/addrconf.h
net/ipv6/addrconf_core.c
net/ipv6/af_inet6.c
net/tipc/udp_media.c
* net: ipv6: add net argument to ip6_dst_lookup_flow
include/net/ipv6.h
net/ipv6/af_inet6.c
net/ipv6/datagram.c
net/ipv6/inet6_connection_sock.c
net/ipv6/ip6_output.c
net/ipv6/raw.c
net/ipv6/syncookies.c
net/ipv6/tcp_ipv6.c
net/l2tp/l2tp_ip6.c
net/sctp/ipv6.c
PCI/ASPM: Allow re-enabling Clock PM
scsi: smartpqi: fix call trace in device discovery
virtio-blk: improve virtqueue error to BLK_STS
tracing/selftests: Turn off timeout setting
drm/amd/display: Not doing optimize bandwidth if flip pending.
* xhci: Ensure link state is U3 after setting USB_SS_PORT_LS_U3
drivers/usb/host/xhci-hub.c
ASoC: Intel: bytcr_rt5640: Add quirk for MPMAN MPWIN895CL tablet
* perf/core: Disable page faults when getting phys address
kernel/events/core.c
pwm: bcm2835: Dynamically allocate base
pwm: renesas-tpu: Fix late Runtime PM enablement
Revert "powerpc/64: irq_work avoid interrupt when called with hardware irqs enabled"
* loop: Better discard support for block devices
drivers/block/loop.c
s390/cio: avoid duplicated 'ADD' uevents
kconfig: qconf: Fix a few alignment issues
ipc/util.c: sysvipc_find_ipc() should increase position index
selftests: kmod: fix handling test numbers above 9
kernel/gcov/fs.c: gcov_seq_next() should increase position index
nvme: fix deadlock caused by ANA update wrong locking
ASoC: Intel: atom: Take the drv->lock mutex before calling sst_send_slot_map()
scsi: iscsi: Report unbind session event when the target has been removed
pwm: rcar: Fix late Runtime PM enablement
ceph: don't skip updating wanted caps when cap is stale
ceph: return ceph_mdsc_do_request() errors from __get_parent()
scsi: lpfc: Fix crash in target side cable pulls hitting WAIT_FOR_UNREG
scsi: lpfc: Fix kasan slab-out-of-bounds error in lpfc_unreg_login
* watchdog: reset last_hw_keepalive time at start
drivers/watchdog/watchdog_dev.c
* arm64: Silence clang warning on mismatched value/register sizes
arch/arm64/kernel/sys_compat.c
* arm64: compat: Workaround Neoverse-N1 #1542419 for compat user-space
arch/arm64/kernel/sys_compat.c
* arm64: Fake the IminLine size on systems affected by Neoverse-N1 #1542419
arch/arm64/include/asm/cache.h
arch/arm64/kernel/traps.c
* arm64: errata: Hide CTR_EL0.DIC on systems affected by Neoverse-N1 #1542419
arch/arm64/Kconfig
arch/arm64/include/asm/cpucaps.h
arch/arm64/kernel/cpu_errata.c
arch/arm64/kernel/traps.c
* arm64: Add part number for Neoverse N1
arch/arm64/include/asm/cputype.h
* vti4: removed duplicate log message.
net/ipv4/ip_vti.c
crypto: mxs-dcp - make symbols 'sha1_null_hash' and 'sha256_null_hash' static
bpftool: Fix printing incorrect pointer in btf_dump_ptr
drm/msm: Use the correct dma_sync calls harder
* ext4: fix extent_status fragmentation for plain files
fs/ext4/extents.c
ANDROID: abi_gki_aarch64_cuttlefish_whitelist: remove stale symbols
* ANDROID: GKI: ipv4: increase __IPV4_DEVCONF_MAX to 64
include/uapi/linux/ip.h
* ANDROID: GKI: power: add missing export for POWER_RESET_QCOM=m
arch/arm64/kernel/process.c
arch/arm64/mm/init.c
* BACKPORT: cfg80211: Support key configuration for Beacon protection (BIGTK)
include/net/cfg80211.h
include/uapi/linux/nl80211.h
net/wireless/nl80211.c
net/wireless/rdev-ops.h
net/wireless/sme.c
net/wireless/trace.h
net/wireless/util.c
* BACKPORT: cfg80211: Enhance the AKM advertizement to support per interface.
include/net/cfg80211.h
include/uapi/linux/nl80211.h
net/wireless/nl80211.c
* UPSTREAM: sysrq: Use panic() to force a crash
drivers/tty/sysrq.c
* ANDROID: GKI: kernel: sound: update codec options with block size
include/uapi/sound/compress_params.h
ANDROID: add compat cross compiler
ANDROID: x86/vdso: disable LTO only for VDSO
* BACKPORT: arm64: vdso32: Enable Clang Compilation
arch/arm64/kernel/vdso32/Makefile
* UPSTREAM: arm64: compat: vdso: Expose BUILD_VDSO32
arch/arm64/include/asm/vdso/compat_gettimeofday.h
* BACKPORT: lib/vdso: Enable common headers
include/vdso/datapage.h
lib/vdso/gettimeofday.c
BACKPORT: arm: vdso: Enable arm to use common headers
BACKPORT: x86/vdso: Enable x86 to use common headers
BACKPORT: mips: vdso: Enable mips to use common headers
* UPSTREAM: arm64: vdso32: Include common headers in the vdso library
arch/arm64/include/asm/vdso/compat_gettimeofday.h
arch/arm64/kernel/vdso32/vgettimeofday.c
* UPSTREAM: arm64: vdso: Include common headers in the vdso library
arch/arm64/include/asm/vdso/gettimeofday.h
arch/arm64/kernel/vdso/vgettimeofday.c
* UPSTREAM: arm64: Introduce asm/vdso/processor.h
arch/arm64/include/asm/processor.h
arch/arm64/include/asm/vdso/processor.h
* BACKPORT: arm64: vdso32: Code clean up
arch/arm64/include/asm/vdso/compat_gettimeofday.h
arch/arm64/kernel/vdso32/vgettimeofday.c
* UPSTREAM: linux/elfnote.h: Replace elf.h with UAPI equivalent
include/linux/elfnote.h
* UPSTREAM: scripts: Fix the inclusion order in modpost
scripts/mod/modpost.c
* UPSTREAM: common: Introduce processor.h
include/vdso/processor.h
* UPSTREAM: linux/ktime.h: Extract common header for vDSO
include/linux/ktime.h
include/vdso/ktime.h
* UPSTREAM: linux/jiffies.h: Extract common header for vDSO
include/linux/jiffies.h
include/vdso/jiffies.h
* UPSTREAM: linux/time64.h: Extract common header for vDSO
include/linux/time64.h
include/vdso/time64.h
* BACKPORT: linux/time32.h: Extract common header for vDSO
include/linux/time32.h
include/vdso/time32.h
* BACKPORT: linux/time.h: Extract common header for vDSO
include/linux/time.h
include/vdso/time.h
* UPSTREAM: linux/math64.h: Extract common header for vDSO
include/linux/math64.h
include/vdso/math64.h
* BACKPORT: linux/clocksource.h: Extract common header for vDSO
include/linux/clocksource.h
include/vdso/clocksource.h
BACKPORT: mips: Introduce asm/vdso/clocksource.h
* BACKPORT: arm64: Introduce asm/vdso/clocksource.h
arch/arm64/include/asm/clocksource.h
arch/arm64/include/asm/vdso/clocksource.h
BACKPORT: arm: Introduce asm/vdso/clocksource.h
BACKPORT: x86: Introduce asm/vdso/clocksource.h
* UPSTREAM: linux/limits.h: Extract common header for vDSO
include/linux/limits.h
include/vdso/limits.h
* BACKPORT: linux/kernel.h: split *_MAX and *_MIN macros into <linux/limits.h>
include/linux/kernel.h
include/linux/limits.h
include/uapi/linux/limits.h
* BACKPORT: linux/bits.h: Extract common header for vDSO
include/linux/bits.h
include/vdso/bits.h
* UPSTREAM: linux/const.h: Extract common header for vDSO
include/linux/const.h
include/vdso/const.h
* BACKPORT: arm64: vdso: fix flip/flop vdso build bug
arch/arm64/kernel/vdso/Makefile
arch/arm64/kernel/vdso32/Makefile
* UPSTREAM: lib/vdso: Allow the high resolution parts to be compiled out
lib/vdso/gettimeofday.c
* UPSTREAM: lib/vdso: Only read hrtimer_res when needed in __cvdso_clock_getres()
lib/vdso/gettimeofday.c
* UPSTREAM: lib/vdso: Mark do_hres() and do_coarse() as __always_inline
lib/vdso/gettimeofday.c
* UPSTREAM: lib/vdso: Avoid duplication in __cvdso_clock_getres()
lib/vdso/gettimeofday.c
* UPSTREAM: lib/vdso: Let do_coarse() return 0 to simplify the callsite
lib/vdso/gettimeofday.c
* UPSTREAM: lib/vdso: Remove checks on return value for 32 bit vDSO
lib/vdso/gettimeofday.c
* UPSTREAM: lib/vdso: Build 32 bit specific functions in the right context
lib/vdso/gettimeofday.c
* UPSTREAM: lib/vdso: Make __cvdso_clock_getres() static
lib/vdso/gettimeofday.c
* UPSTREAM: lib/vdso: Make clock_getres() POSIX compliant again
lib/vdso/gettimeofday.c
* UPSTREAM: lib/vdso/32: Provide legacy syscall fallbacks
lib/vdso/gettimeofday.c
* UPSTREAM: lib/vdso: Move fallback invocation to the callers
lib/vdso/gettimeofday.c
* UPSTREAM: lib/vdso/32: Remove inconsistent NULL pointer checks
lib/vdso/gettimeofday.c
* UPSTREAM: lib/vdso: Make delta calculation work correctly
lib/vdso/gettimeofday.c
* UPSTREAM: arm64: compat: Fix syscall number of compat_clock_getres
arch/arm64/include/asm/unistd.h
* BACKPORT: arm64: lse: Fix LSE atomics with LLVM
arch/arm64/include/asm/lse.h
UPSTREAM: mips: Fix gettimeofday() in the vdso library
UPSTREAM: mips: vdso: Fix __arch_get_hw_counter()
* BACKPORT: arm64: Kconfig: Make CONFIG_COMPAT_VDSO a proper Kconfig option
arch/arm64/Kconfig
arch/arm64/Makefile
* UPSTREAM: arm64: vdso32: Rename COMPATCC to CC_COMPAT
arch/arm64/kernel/vdso32/Makefile
* UPSTREAM: arm64: vdso32: Pass '--target' option to clang via VDSO_CAFLAGS
arch/arm64/kernel/vdso32/Makefile
* UPSTREAM: arm64: vdso32: Don't use KBUILD_CPPFLAGS unconditionally
arch/arm64/kernel/vdso32/Makefile
* UPSTREAM: arm64: vdso32: Move definition of COMPATCC into vdso32/Makefile
arch/arm64/Makefile
arch/arm64/kernel/vdso32/Makefile
* UPSTREAM: arm64: Default to building compat vDSO with clang when CONFIG_CC_IS_CLANG
arch/arm64/Makefile
* UPSTREAM: lib: vdso: Remove CROSS_COMPILE_COMPAT_VDSO
lib/vdso/Kconfig
* UPSTREAM: arm64: vdso32: Remove jump label config option in Makefile
arch/arm64/kernel/vdso32/Makefile
* UPSTREAM: arm64: vdso32: Detect binutils support for dmb ishld
arch/arm64/include/asm/vdso/compat_barrier.h
arch/arm64/kernel/vdso32/Makefile
BACKPORT: arm64: vdso: Remove stale files from old assembly implementation
* UPSTREAM: arm64: vdso32: Fix broken compat vDSO build warnings
arch/arm64/Kconfig
arch/arm64/Makefile
arch/arm64/kernel/vdso32/Makefile
UPSTREAM: mips: compat: vdso: Use legacy syscalls as fallback
BACKPORT: arm64: Relax Documentation/arm64/tagged-pointers.rst
BACKPORT: arm64: Add tagged-address-abi.rst to index.rst
* UPSTREAM: arm64: vdso: Fix Makefile regression
arch/arm64/Makefile
UPSTREAM: mips: vdso: Fix flip/flop vdso building bug
UPSTREAM: mips: vdso: Fix source path
UPSTREAM: mips: Add clock_gettime64 entry point
UPSTREAM: mips: Add clock_getres entry point
BACKPORT: mips: Add support for generic vDSO
* BACKPORT: arm64: vdso: Explicitly add build-id option
arch/arm64/kernel/vdso/Makefile
* BACKPORT: arm64: vdso: use $(LD) instead of $(CC) to link VDSO
arch/arm64/kernel/vdso/Makefile
* BACKPORT: arm64: vdso: Cleanup Makefiles
arch/arm64/kernel/vdso/Makefile
arch/arm64/kernel/vdso32/Makefile
* UPSTREAM: arm64: vdso: Fix population of AT_SYSINFO_EHDR for compat vdso
arch/arm64/include/asm/elf.h
* UPSTREAM: arm64: vdso: Fix compilation with clang older than 8
arch/arm64/kernel/vdso/Makefile
* UPSTREAM: arm64: compat: Fix __arch_get_hw_counter() implementation
arch/arm64/include/asm/vdso/compat_gettimeofday.h
* UPSTREAM: arm64: Fix __arch_get_hw_counter() implementation
arch/arm64/include/asm/vdso/gettimeofday.h
UPSTREAM: x86/vdso/32: Use 32bit syscall fallback
UPSTREAM: x86/vdso: Fix flip/flop vdso build bug
UPSTREAM: x86/vdso: Give the [ph]vclock_page declarations real types
UPSTREAM: x86/vdso: Add clock_gettime64() entry point
BACKPORT: x86/vdso: Add clock_getres() entry point
BACKPORT: x86/vdso: Switch to generic vDSO implementation
UPSTREAM: x86/segments: Introduce the 'CPUNODE' naming to better document the segment limit CPU/node NR trick
UPSTREAM: x86/vdso: Initialize the CPU/node NR segment descriptor earlier
UPSTREAM: x86/vdso: Introduce helper functions for CPU and node number
UPSTREAM: x86/segments/64: Rename the GDT PER_CPU entry to CPU_NUMBER
* BACKPORT: arm64: vdso: Enable vDSO compat support
arch/arm64/Kconfig
arch/arm64/Makefile
arch/arm64/kernel/Makefile
* UPSTREAM: arm64: compat: Get sigreturn trampolines from vDSO
arch/arm64/include/asm/vdso.h
arch/arm64/kernel/signal32.c
* UPSTREAM: arm64: elf: VDSO code page discovery
arch/arm64/include/asm/elf.h
* UPSTREAM: arm64: compat: VDSO setup for compat layer
arch/arm64/kernel/vdso.c
* UPSTREAM: arm64: vdso: Refactor vDSO code
arch/arm64/kernel/vdso.c
* BACKPORT: arm64: compat: Add vDSO
arch/arm64/include/asm/vdso/compat_barrier.h
arch/arm64/include/asm/vdso/compat_gettimeofday.h
arch/arm64/kernel/vdso32/Makefile
arch/arm64/kernel/vdso32/note.c
arch/arm64/kernel/vdso32/sigreturn.S
arch/arm64/kernel/vdso32/vdso.S
arch/arm64/kernel/vdso32/vdso.lds.S
arch/arm64/kernel/vdso32/vgettimeofday.c
* UPSTREAM: arm64: compat: Generate asm offsets for signals
arch/arm64/kernel/asm-offsets.c
* UPSTREAM: arm64: compat: Expose signal related structures
arch/arm64/include/asm/signal32.h
arch/arm64/kernel/signal32.c
* UPSTREAM: arm64: compat: Add missing syscall numbers
arch/arm64/include/asm/unistd.h
* BACKPORT: arm64: vdso: Substitute gettimeofday() with C implementation
arch/arm64/Kconfig
arch/arm64/include/asm/vdso/gettimeofday.h
arch/arm64/include/asm/vdso/vsyscall.h
arch/arm64/kernel/asm-offsets.c
arch/arm64/kernel/vdso.c
arch/arm64/kernel/vdso/Makefile
arch/arm64/kernel/vdso/vgettimeofday.c
* UPSTREAM: timekeeping: Provide a generic update_vsyscall() implementation
include/asm-generic/vdso/vsyscall.h
include/vdso/vsyscall.h
kernel/time/Makefile
kernel/time/vsyscall.c
* UPSTREAM: lib/vdso: Add compat support
lib/vdso/gettimeofday.c
* UPSTREAM: lib/vdso: Provide generic VDSO implementation
include/vdso/helpers.h
lib/Kconfig
lib/vdso/Kconfig
lib/vdso/Makefile
lib/vdso/gettimeofday.c
* UPSTREAM: vdso: Define standardized vdso_datapage
include/vdso/datapage.h
* UPSTREAM: hrtimer: Split out hrtimer defines into separate header
include/linux/hrtimer.h
include/linux/hrtimer_defs.h
UPSTREAM: nds32: Fix vDSO clock_getres()
* UPSTREAM: arm64: compat: Reduce address limit for 64K pages
arch/arm64/include/asm/processor.h
* BACKPORT: arm64: compat: Add KUSER_HELPERS config option
arch/arm64/Kconfig
arch/arm64/kernel/Makefile
arch/arm64/kernel/kuser32.S
arch/arm64/kernel/vdso.c
* UPSTREAM: arm64: compat: Refactor aarch32_alloc_vdso_pages()
arch/arm64/kernel/vdso.c
* BACKPORT: arm64: compat: Split kuser32
arch/arm64/kernel/Makefile
arch/arm64/kernel/kuser32.S
* UPSTREAM: arm64: compat: Alloc separate pages for vectors and sigpage
arch/arm64/include/asm/elf.h
arch/arm64/include/asm/signal32.h
arch/arm64/kernel/signal32.c
arch/arm64/kernel/vdso.c
ANDROID: GKI: Update ABI XML representation
* ANDROID: GKI: Enable GENERIC_IRQ_CHIP
init/Kconfig.gki
* ANDROID: GKI: power_supply: Add FG_TYPE power-supply property
drivers/power/supply/power_supply_sysfs.c
include/linux/power_supply.h
* ANDROID: GKI: mm: export mm_trace_rss_stat for modules to report RSS changes
mm/memory.c
ANDROID: GKI: gki_defconfig: Enable CONFIG_LEDS_TRIGGER_TRANSIENT
ANDROID: GKI: gki_defconfig: Enable CONFIG_CPU_FREQ_STAT
ANDROID: GKI: arm64: gki_defconfig: Disable HW tracing features
ANDROID: GKI: gki_defconfig: Enable CONFIG_I2C_CHARDEV
* ANDROID: Incremental fs: Use simple compression in log buffer
fs/incfs/data_mgmt.c
fs/incfs/data_mgmt.h
fs/incfs/vfs.c
* ANDROID: GKI: usb: core: Add support to parse config summary capability descriptors
drivers/usb/core/config.c
drivers/usb/core/generic.c
include/linux/usb.h
include/uapi/linux/usb/ch9.h
ANDROID: GKI: Update ABI XML representation
ANDROID: dm-bow: Fix not to skip trim at framented range
* ANDROID: Remove VLA from uid_sys_stats.c
drivers/misc/uid_sys_stats.c
f2fs: fix missing check for f2fs_unlock_op
* ANDROID: fix wakeup reason findings
kernel/power/wakeup_reason.c
* UPSTREAM: cfg80211: fix and clean up cfg80211_gen_new_bssid()
include/net/cfg80211.h
* UPSTREAM: cfg80211: save multi-bssid properties
include/net/cfg80211.h
net/wireless/scan.c
* UPSTREAM: cfg80211: make BSSID generation function inline
include/net/cfg80211.h
net/wireless/scan.c
* UPSTREAM: cfg80211: parse multi-bssid only if HW supports it
include/net/cfg80211.h
net/wireless/scan.c
* UPSTREAM: cfg80211: Move Multiple BSS info to struct cfg80211_bss to be visible
include/net/cfg80211.h
net/wireless/core.h
net/wireless/scan.c
* UPSTREAM: cfg80211: Properly track transmitting and non-transmitting BSS
net/wireless/core.h
net/wireless/scan.c
* UPSTREAM: cfg80211: use for_each_element() for multi-bssid parsing
net/wireless/scan.c
* UPSTREAM: cfg80211: Parsing of Multiple BSSID information in scanning
net/wireless/core.h
net/wireless/scan.c
* UPSTREAM: cfg80211/nl80211: Offload OWE processing to user space in AP mode
include/net/cfg80211.h
include/uapi/linux/nl80211.h
net/wireless/nl80211.c
net/wireless/rdev-ops.h
net/wireless/trace.h
* ANDROID: GKI: cfg80211: Sync nl80211 commands/feature with upstream
include/uapi/linux/nl80211.h
ANDROID: GKI: gki_defconfig: Enable FW_LOADER_USER_HELPER*
ANDROID: GKI: arm64: gki_defconfig: Disable CONFIG_ARM64_TAGGED_ADDR_ABI
ANDROID: GKI: gki_defconfig: CONFIG_CHR_DEV_SG=y
ANDROID: GKI: gki_defconfig: CONFIG_DM_DEFAULT_KEY=m
ANDROID: update the ABI xml representation
* ANDROID: init: GKI: enable hidden configs for GPU
init/Kconfig.gki
Merge 4.19.118 into android-4.19
Linux 4.19.118
* bpf: fix buggy r0 retval refinement for tracing helpers
kernel/bpf/verifier.c
* KEYS: Don't write out to userspace while holding key semaphore
include/keys/big_key-type.h
include/keys/user-type.h
include/linux/key-type.h
net/dns_resolver/dns_key.c
security/keys/keyctl.c
security/keys/keyring.c
security/keys/request_key_auth.c
security/keys/user_defined.c
mtd: phram: fix a double free issue in error path
mtd: lpddr: Fix a double free in probe()
mtd: spinand: Explicitly use MTD_OPS_RAW to write the bad block marker to OOB
locktorture: Print ratio of acquisitions, not failures
tty: evh_bytechan: Fix out of bounds accesses
iio: si1133: read 24-bit signed integer for measurement
fbdev: potential information leak in do_fb_ioctl()
net: dsa: bcm_sf2: Fix overflow checks
* f2fs: fix to wait all node page writeback
fs/f2fs/node.c
iommu/amd: Fix the configuration of GCR3 table root pointer
libnvdimm: Out of bounds read in __nd_ioctl()
power: supply: axp288_fuel_gauge: Broaden vendor check for Intel Compute Sticks.
ext2: fix debug reference to ext2_xattr_cache
ext2: fix empty body warnings when -Wextra is used
iommu/vt-d: Fix mm reference leak
drm/vc4: Fix HDMI mode validation
* f2fs: fix NULL pointer dereference in f2fs_write_begin()
fs/f2fs/super.c
NFS: Fix memory leaks in nfs_pageio_stop_mirroring()
drm/amdkfd: kfree the wrong pointer
* x86: ACPI: fix CPU hotplug deadlock
include/acpi/processor.h
KVM: s390: vsie: Fix possible race when shadowing region 3 tables
* compiler.h: fix error in BUILD_BUG_ON() reporting
include/linux/compiler.h
* percpu_counter: fix a data race at vm_committed_as
include/linux/percpu_counter.h
* include/linux/swapops.h: correct guards for non_swap_entry()
include/linux/swapops.h
cifs: Allocate encryption header through kmalloc
um: ubd: Prevent buffer overrun on command completion
* ext4: do not commit super on read-only bdev
fs/ext4/super.c
s390/cpum_sf: Fix wrong page count in error message
powerpc/maple: Fix declaration made after definition
s390/cpuinfo: fix wrong output when CPU0 is offline
NFS: direct.c: Fix memory leak of dreq when nfs_get_lock_context fails
NFSv4/pnfs: Return valid stateids in nfs_layout_find_inode_by_stateid()
rtc: 88pm860x: fix possible race condition
soc: imx: gpc: fix power up sequencing
clk: tegra: Fix Tegra PMC clock out parents
power: supply: bq27xxx_battery: Silence deferred-probe error
clk: at91: usb: continue if clk_hw_round_rate() return zero
x86/Hyper-V: Report crash data in die() when panic_on_oops is set
x86/Hyper-V: Report crash register data when sysctl_record_panic_msg is not set
x86/Hyper-V: Trigger crash enlightenment only once during system crash.
x86/Hyper-V: Free hv_panic_page when fail to register kmsg dump
x86/Hyper-V: Unload vmbus channel in hv panic callback
xsk: Add missing check on user supplied headroom size
rbd: call rbd_dev_unprobe() after unwatching and flushing notifies
rbd: avoid a deadlock on header_rwsem when flushing notifies
video: fbdev: sis: Remove unnecessary parentheses and commented code
lib/raid6: use vdupq_n_u8 to avoid endianness warnings
x86/Hyper-V: Report crash register data or kmsg before running crash kernel
of: overlay: kmemleak in dup_and_fixup_symbol_prop()
of: unittest: kmemleak in of_unittest_overlay_high_level()
of: unittest: kmemleak in of_unittest_platform_populate()
of: unittest: kmemleak on changeset destroy
ALSA: hda: Don't release card at firmware loading error
irqchip/mbigen: Free msi_desc on device teardown
netfilter: nf_tables: report EOPNOTSUPP on unsupported flags/object type
ARM: dts: imx6: Use gpc for FEC interrupt controller to fix wake on LAN.
arm, bpf: Fix bugs with ALU64 {RSH, ARSH} BPF_K shift by 0
watchdog: sp805: fix restart handler
* ext4: use non-movable memory for superblock readahead
fs/buffer.c
fs/ext4/inode.c
fs/ext4/super.c
include/linux/buffer_head.h
* scsi: sg: add sg_remove_request in sg_common_write
drivers/scsi/sg.c
objtool: Fix switch table detection in .text.unlikely
arm, bpf: Fix offset overflow for BPF_MEM BPF_DW
ANDROID: GKI: Bulk update ABI report.
* ANDROID: GKI: qos: Register irq notify after adding the qos request
kernel/power/qos.c
* ANDROID: GKI: Add dual role mode to usb_dr_modes array
drivers/usb/common/common.c
* UPSTREAM: virtio-gpu api: comment feature flags
include/uapi/linux/virtio_gpu.h
* ANDROID: arch:arm64: Increase kernel command line size
arch/arm64/include/uapi/asm/setup.h
* ANDROID: GKI: Add special linux_banner_ptr for modules
include/linux/printk.h
init/version.c
* Revert "ANDROID: GKI: Make linux_banner a C pointer"
include/linux/printk.h
init/version.c
* ANDROID: GKI: PM / devfreq: Add new flag to do simple clock scaling
drivers/devfreq/governor_simpleondemand.c
include/linux/devfreq.h
* ANDROID: GKI: Resolve ABI diff for struct snd_usb_audio
sound/usb/card.c
sound/usb/stream.c
sound/usb/usbaudio.h
ANDROID: GKI: Bulk update ABI
ANDROID: GKI: Update the whitelist for qcom SoCs
ANDROID: GKI: arm64: gki_defconfig: Set CONFIG_SCSI_UFSHCD=m
* ANDROID: GKI: scsi: add option to override the command timeout
drivers/scsi/scsi_lib.c
drivers/scsi/sd.c
drivers/scsi/sg.c
include/scsi/scsi_device.h
* ANDROID: GKI: scsi: Adjust DBD setting in mode sense for caching mode page per LLD
drivers/scsi/sd.c
include/scsi/scsi_host.h
* ANDROID: add ion_stat tracepoint to common kernel
drivers/staging/android/ion/Makefile
drivers/staging/android/ion/ion.c
lib/vsprintf.c
* UPSTREAM: gpu/trace: add a gpu total memory usage tracepoint
drivers/Kconfig
drivers/gpu/Makefile
drivers/gpu/trace/Kconfig
include/trace/events/gpu_mem.h
Merge 4.19.117 into android-4.19
Linux 4.19.117
* mm/vmalloc.c: move 'area->pages' after if statement
mm/vmalloc.c
wil6210: remove reset file from debugfs
wil6210: make sure Rx ring sizes are correlated
wil6210: add general initialization/size checks
wil6210: ignore HALP ICR if already handled
wil6210: check rx_buff_mgmt before accessing it
x86/resctrl: Fix invalid attempt at removing the default resource group
x86/resctrl: Preserve CDP enable over CPU hotplug
x86/microcode/AMD: Increase microcode PATCH_MAX_SIZE
* scsi: target: fix hang when multiple threads try to destroy the same iscsi session
include/target/iscsi/iscsi_target_core.h
scsi: target: remove boilerplate code
kvm: x86: Host feature SSBD doesn't imply guest feature SPEC_CTRL_SSBD
* ext4: do not zeroout extents beyond i_disksize
fs/ext4/extents.c
drm/amd/powerplay: force the trim of the mclk dpm_levels if OD is enabled
* usb: dwc3: gadget: Don't clear flags before transfer ended
drivers/usb/dwc3/gadget.c
* usb: dwc3: gadget: don't enable interrupt when disabling endpoint
drivers/usb/dwc3/gadget.c
mac80211_hwsim: Use kstrndup() in place of kasprintf()
btrfs: check commit root generation in should_ignore_root
* tracing: Fix the race between registering 'snapshot' event trigger and triggering 'snapshot' operation
kernel/trace/trace_events_trigger.c
* keys: Fix proc_keys_next to increase position index
security/keys/proc.c
* ALSA: usb-audio: Check mapping at creating connector controls, too
sound/usb/mixer.c
sound/usb/mixer_maps.c
* ALSA: usb-audio: Don't create jack controls for PCM terminals
sound/usb/mixer.c
* ALSA: usb-audio: Don't override ignore_ctl_error value from the map
sound/usb/mixer.c
* ALSA: usb-audio: Filter error from connector kctl ops, too
sound/usb/mixer.c
ASoC: Intel: mrfld: return error codes when an error occurs
ASoC: Intel: mrfld: fix incorrect check on p->sink
* ext4: fix incorrect inodes per group in error message
fs/ext4/super.c
* ext4: fix incorrect group count in ext4_fill_super error message
fs/ext4/super.c
pwm: pca9685: Fix PWM/GPIO inter-operation
* jbd2: improve comments about freeing data buffers whose page mapping is NULL
fs/jbd2/commit.c
* scsi: ufs: Fix ufshcd_hold() caused scheduling while atomic
drivers/scsi/ufs/ufshcd.c
* ovl: fix value of i_ino for lower hardlink corner case
fs/overlayfs/inode.c
net: dsa: mt7530: fix tagged frames pass-through in VLAN-unaware mode
net: stmmac: dwmac-sunxi: Provide TX and RX fifo sizes
* net: revert default NAPI poll timeout to 2 jiffies
net/core/dev.c
* net: qrtr: send msgs from local of same id as broadcast
net/qrtr/qrtr.c
* net: ipv6: do not consider routes via gateways for anycast address check
include/net/ip6_route.h
* net: ipv4: devinet: Fix crash when add/del multicast IP with autojoin
net/ipv4/devinet.c
hsr: check protocol version in hsr_newlink()
amd-xgbe: Use __napi_schedule() in BH context
* ANDROID: GKI: drivers: of-thermal: Relate thermal zones using same sensor
drivers/thermal/of-thermal.c
ANDROID: GKI: Bulk ABI update
* ANDROID: GKI: dma: Add set_dma_mask hook to struct dma_map_ops
include/linux/dma-mapping.h
Merge remote-tracking branch 'aosp/upstream-f2fs-stable-linux-4.19.y' into android-4.19
ANDROID: GKI: ABI update due to recent patches
Merge 4.19.116 into android-4.19
* FROMLIST: drm/prime: add support for virtio exported objects
drivers/gpu/drm/drm_prime.c
include/drm/drm_drv.h
* FROMLIST: dma-buf: add support for virtio exported objects
drivers/dma-buf/dma-buf.c
include/linux/dma-buf.h
UPSTREAM: drm/virtio: module_param_named() requires linux/moduleparam.h
UPSTREAM: drm/virtio: fix resource id creation race
UPSTREAM: drm/virtio: make resource id workaround runtime switchable.
BACKPORT: drm/virtio: Drop deprecated load/unload initialization
* ANDROID: GKI: Add DRM_TTM config to GKI
init/Kconfig.gki
ANDROID: Bulk update the ABI xml representation
* ANDROID: GKI: spmi: pmic-arb: don't enable SPMI_MSM_PMIC_ARB by default
drivers/spmi/Kconfig
* ANDROID: GKI: attribute page lock and waitqueue functions as sched
include/linux/pagemap.h
include/linux/wait.h
kernel/sched/wait.c
mm/filemap.c
* ANDROID: GKI: extcon: Fix Add usage of blocking notifier chain
drivers/extcon/extcon.c
include/linux/extcon.h
* ANDROID: GKI: USB: pd: Extcon fix for C current
include/linux/extcon.h
* ANDROID: drm/dsi: Fix byte order of DCS set/get brightness
drivers/gpu/drm/drm_mipi_dsi.c
include/drm/drm_mipi_dsi.h
* ANDROID: GKI: mm: Export symbols to modularize CONFIG_MSM_DRM
mm/vmalloc.c
* ANDROID: GKI: ALSA: compress: Add support to send codec specific data
include/sound/compress_driver.h
include/uapi/sound/compress_offload.h
sound/core/compress_offload.c
sound/soc/soc-compress.c
* ANDROID: GKI: ALSA: Compress - dont use lock for all ioctls
sound/core/compress_offload.c
* ANDROID: GKI: ASoC: msm: qdsp6v2: add support for AMR_WB_PLUS offload
include/uapi/sound/compress_params.h
* ANDROID: GKI: msm: dolby: MAT and THD audiocodec name modification
include/uapi/sound/compress_params.h
* ANDROID: GKI: asoc: msm: Add support for compressed perf mode
include/uapi/sound/compress_params.h
* ANDROID: GKI: msm: audio: support for gapless_pcm
include/uapi/sound/compress_params.h
* ANDROID: GKI: uapi: msm: dolby: Support for TrueHD and MAT decoders
include/uapi/sound/compress_params.h
* ANDROID: GKI: ASoC: msm: qdsp6v2: Add TrueHD HDMI compress pass-though
include/uapi/sound/compress_params.h
* ANDROID: GKI: ALSA: compress: Add APTX format support in ALSA
include/uapi/sound/compress_params.h
* ANDROID: GKI: msm: qdsp6v2: Add timestamp support for compress capture
include/uapi/sound/compress_params.h
* ANDROID: GKI: SoC: msm: Add support for meta data in compressed TX
include/uapi/sound/compress_params.h
* ANDROID: GKI: ALSA: compress: Add DSD format support for ALSA
include/uapi/sound/compress_params.h
* ANDROID: GKI: ASoC: msm: qdsp6v2: add support for ALAC and APE offload
include/uapi/sound/compress_params.h
* ANDROID: GKI: SoC: msm: Add compressed TX and passthrough support
include/uapi/sound/compress_offload.h
include/uapi/sound/compress_params.h
* ANDROID: GKI: ASoC: msm: qdsp6v2: Add FLAC in compress offload path
include/uapi/sound/compress_params.h
* ANDROID: GKI: ASoC: msm: add support for different compressed formats
include/uapi/sound/compress_params.h
* ANDROID: GKI: ASoC: msm: Update the encode option and sample rate
include/uapi/sound/compress_params.h
ANDROID: GKI: Enable CONFIG_SND_VERBOSE_PROCFS in gki_defconfig
* ANDROID: GKI: Add hidden CONFIG_SND_SOC_COMPRESS to gki_defconfig
init/Kconfig.gki
* ANDROID: GKI: ALSA: pcm: add locks for accessing runtime resource
include/sound/pcm.h
ANDROID: GKI: Update ABI for DRM changes
* ANDROID: GKI: Add drm_dp_send_dpcd_{read,write} accessor functions
drivers/gpu/drm/drm_dp_mst_topology.c
include/drm/drm_dp_mst_helper.h
* ANDROID: GKI: drm: Add drm_dp_mst_get_max_sdp_streams_supported accessor function
drivers/gpu/drm/drm_dp_mst_topology.c
include/drm/drm_dp_mst_helper.h
* ANDROID: GKI: drm: Add drm_dp_mst_has_fec accessor function
drivers/gpu/drm/drm_dp_mst_topology.c
include/drm/drm_dp_mst_helper.h
* ANDROID: GKI: Add 'dsc_info' to struct drm_dp_mst_port
drivers/gpu/drm/drm_dp_mst_topology.c
include/drm/drm_dp_mst_helper.h
* ANDROID: GKI: usb: Add support to handle USB SMMU S1 address
drivers/usb/core/hcd.c
drivers/usb/core/usb.c
drivers/usb/host/xhci.c
include/linux/usb.h
include/linux/usb/hcd.h
* ANDROID: GKI: usb: Add helper APIs to return xhci phys addresses
drivers/usb/core/hcd.c
drivers/usb/core/usb.c
drivers/usb/host/xhci.c
include/linux/usb.h
include/linux/usb/hcd.h
* ANDROID: Add C protos for dma_buf/drm_prime get_uuid
include/drm/drm_prime.h
include/linux/dma-buf.h
* ANDROID: GKI: Make linux_banner a C pointer
include/linux/printk.h
init/version.c
* ANDROID: GKI: Add 'refresh_rate', 'id' to struct drm_panel_notifier
include/drm/drm_panel.h
* ANDROID: GKI: Add 'i2c_mutex' to struct drm_dp_aux
include/drm/drm_dp_helper.h
* ANDROID: GKI: Add 'checksum' to struct drm_connector
include/drm/drm_connector.h
* Revert "BACKPORT: drm: Add HDR source metadata property"
drivers/gpu/drm/drm_atomic.c
drivers/gpu/drm/drm_connector.c
include/drm/drm_connector.h
include/drm/drm_mode_config.h
include/linux/hdmi.h
include/uapi/drm/drm_mode.h
* Revert "BACKPORT: drm: Parse HDR metadata info from EDID"
drivers/gpu/drm/drm_edid.c
* ANDROID: drm: Add DP colorspace property
drivers/gpu/drm/drm_connector.c
include/drm/drm_connector.h
* ANDROID: GKI: drm: Initialize display->hdmi when parsing vsdb
drivers/gpu/drm/drm_edid.c
* ANDROID: drivers: gpu: drm: add support to batch commands
drivers/gpu/drm/drm_mipi_dsi.c
include/drm/drm_mipi_dsi.h
ANDROID: ABI: update the qcom whitelist
* ANDROID: GKI: ARM64: smp: add vendor field pending_ipi
arch/arm64/kernel/smp.c
ANDROID: gki_defconfig: enable msm serial early console
* ANDROID: serial: msm_geni_serial_console : Add Earlycon support
drivers/tty/serial/Kconfig
drivers/tty/serial/Makefile
drivers/tty/serial/msm_geni_serial_console.c
* ANDROID: GKI: serial: core: export uart_console_device
drivers/tty/serial/serial_core.c
* f2fs: fix quota_sync failure due to f2fs_lock_op
fs/f2fs/data.c
* f2fs: support read iostat
fs/f2fs/checkpoint.c
fs/f2fs/data.c
fs/f2fs/f2fs.h
fs/f2fs/file.c
fs/f2fs/gc.c
fs/f2fs/node.c
fs/f2fs/sysfs.c
include/trace/events/f2fs.h
* f2fs: Fix the accounting of dcc->undiscard_blks
fs/f2fs/segment.c
* f2fs: fix to handle error path of f2fs_ra_meta_pages()
fs/f2fs/checkpoint.c
* f2fs: report the discard cmd errors properly
fs/f2fs/segment.c
* f2fs: fix long latency due to discard during umount
fs/f2fs/segment.c
* f2fs: add tracepoint for f2fs iostat
fs/f2fs/f2fs.h
fs/f2fs/super.c
fs/f2fs/sysfs.c
include/trace/events/f2fs.h
* f2fs: introduce sysfs/data_io_flag to attach REQ_META/FUA
fs/f2fs/data.c
fs/f2fs/f2fs.h
fs/f2fs/sysfs.c
ANDROID: GKI: update abi definition due to previous changes in the tree
Linux 4.19.116
efi/x86: Fix the deletion of variables in mixed mode
mfd: dln2: Fix sanity checking for endpoints
etnaviv: perfmon: fix total and idle HI cyleces readout
misc: echo: Remove unnecessary parentheses and simplify check for zero
powerpc/fsl_booke: Avoid creating duplicate tlb1 entry
ftrace/kprobe: Show the maxactive number on kprobe_events
* drm: Remove PageReserved manipulation from drm_pci_alloc
drivers/gpu/drm/drm_pci.c
* drm/dp_mst: Fix clearing payload state on topology disable
drivers/gpu/drm/drm_dp_mst_topology.c
* Revert "drm/dp_mst: Remove VCPI while disabling topology mgr"
drivers/gpu/drm/drm_dp_mst_topology.c
crypto: ccree - only try to map auth tag if needed
crypto: ccree - dec auth tag size from cryptlen map
crypto: ccree - don't mangle the request assoclen
crypto: ccree - zero out internal struct before use
crypto: ccree - improve error handling
crypto: caam - update xts sector size for large input length
dm zoned: remove duplicate nr_rnd_zones increase in dmz_init_zone()
btrfs: use nofs allocations for running delayed items
powerpc: Make setjmp/longjmp signature standard
powerpc: Add attributes for setjmp/longjmp
scsi: mpt3sas: Fix kernel panic observed on soft HBA unplug
powerpc/kprobes: Ignore traps that happened in real mode
powerpc/xive: Use XIVE_BAD_IRQ instead of zero to catch non configured IPIs
powerpc/hash64/devmap: Use H_PAGE_THP_HUGE when setting up huge devmap PTE entries
powerpc/64/tm: Don't let userspace set regs->trap via sigreturn
powerpc/powernv/idle: Restore AMR/UAMOR/AMOR after idle
xen/blkfront: fix memory allocation flags in blkfront_setup_indirect()
ipmi: fix hung processes in __get_guid()
libata: Return correct status in sata_pmp_eh_recover_pm() when ATA_DFLAG_DETACH is set
hfsplus: fix crash and filesystem corruption when deleting files
cpufreq: powernv: Fix use-after-free
* kmod: make request_module() return an error when autoloading is disabled
kernel/kmod.c
clk: ingenic/jz4770: Exit with error if CGU init failed
Input: i8042 - add Acer Aspire 5738z to nomux list
s390/diag: fix display of diagnose call statistics
perf tools: Support Python 3.8+ in Makefile
ocfs2: no need try to truncate file beyond i_size
* fs/filesystems.c: downgrade user-reachable WARN_ONCE() to pr_warn_once()
fs/filesystems.c
* ext4: fix a data race at inode->i_blocks
fs/ext4/inode.c
NFS: Fix a page leak in nfs_destroy_unlinked_subrequests()
powerpc/pseries: Avoid NULL pointer dereference when drmem is unavailable
drm/etnaviv: rework perfmon query infrastructure
rtc: omap: Use define directive for PIN_CONFIG_ACTIVE_HIGH
selftests: vm: drop dependencies on page flags from mlock2 tests
* arm64: armv8_deprecated: Fix undef_hook mask for thumb setend
arch/arm64/kernel/armv8_deprecated.c
scsi: zfcp: fix missing erp_lock in port recovery trigger for point-to-point
* dm verity fec: fix memory leak in verity_fec_dtr
drivers/md/dm-verity-fec.c
dm writecache: add cond_resched to avoid CPU hangs
arm64: dts: allwinner: h6: Fix PMU compatible
* net: qualcomm: rmnet: Allow configuration updates to existing devices
drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c
* mm: Use fixed constant in page_frag_alloc instead of size + 1
mm/page_alloc.c
tools: gpio: Fix out-of-tree build regression
* x86/speculation: Remove redundant arch_smt_update() invocation
kernel/cpu.c
powerpc/pseries: Drop pointless static qualifier in vpa_debugfs_init()
erofs: correct the remaining shrink objects
crypto: mxs-dcp - fix scatterlist linearization for hash
btrfs: fix missing semaphore unlock in btrfs_sync_file
btrfs: fix missing file extent item for hole after ranged fsync
btrfs: drop block from cache on error in relocation
btrfs: set update the uuid generation as soon as possible
Btrfs: fix crash during unmount due to race with delayed inode workers
mtd: spinand: Do not erase the block before writing a bad block marker
mtd: spinand: Stop using spinand->oobbuf for buffering bad block markers
CIFS: Fix bug which the return value by asynchronous read is error
KVM: VMX: fix crash cleanup when KVM wasn't used
KVM: x86: Gracefully handle __vmalloc() failure during VM allocation
KVM: VMX: Always VMCLEAR in-use VMCSes during crash with kexec support
KVM: x86: Allocate new rmap and large page tracking when moving memslot
KVM: s390: vsie: Fix delivery of addressing exceptions
KVM: s390: vsie: Fix region 1 ASCE sanity shadow address checks
KVM: nVMX: Properly handle userspace interrupt window request
x86/entry/32: Add missing ASM_CLAC to general_protection entry
* signal: Extend exec_id to 64bits
fs/exec.c
include/linux/sched.h
kernel/signal.c
ath9k: Handle txpower changes even when TPC is disabled
MIPS: OCTEON: irq: Fix potential NULL pointer dereference
MIPS/tlbex: Fix LDDIR usage in setup_pw() for Loongson-3
* pstore: pstore_ftrace_seq_next should increase position index
fs/pstore/inode.c
irqchip/versatile-fpga: Apply clear-mask earlier
* KEYS: reaching the keys quotas correctly
security/keys/key.c
security/keys/keyctl.c
tpm: tpm2_bios_measurements_next should increase position index
tpm: tpm1_bios_measurements_next should increase position index
tpm: Don't make log failures fatal
* PCI: endpoint: Fix for concurrent memory allocation in OB address region
include/linux/pci-epc.h
* PCI: Add boot interrupt quirk mechanism for Xeon chipsets
drivers/pci/quirks.c
PCI/ASPM: Clear the correct bits when enabling L1 substates
PCI: pciehp: Fix indefinite wait on sysfs requests
nvme: Treat discovery subsystems as unique subsystems
* nvme-fc: Revert "add module to ops template to allow module references"
include/linux/nvme-fc-driver.h
* thermal: devfreq_cooling: inline all stubs for CONFIG_DEVFREQ_THERMAL=n
include/linux/devfreq_cooling.h
acpi/x86: ignore unspecified bit positions in the ACPI global lock field
media: ti-vpe: cal: fix disable_irqs to only the intended target
ALSA: hda/realtek - Add quirk for MSI GL63
ALSA: hda/realtek - Remove now-unnecessary XPS 13 headphone noise fixups
ALSA: hda/realtek - Set principled PC Beep configuration for ALC256
ALSA: doc: Document PC Beep Hidden Register on Realtek ALC256
ALSA: pcm: oss: Fix regression by buffer overflow fix
ALSA: ice1724: Fix invalid access for enumerated ctl items
ALSA: hda: Fix potential access overflow in beep helper
ALSA: hda: Add driver blacklist
* ALSA: usb-audio: Add mixer workaround for TRX40 and co
sound/usb/mixer_maps.c
* usb: gadget: composite: Inform controller driver of self-powered
drivers/usb/gadget/composite.c
* usb: gadget: f_fs: Fix use after free issue as part of queue failure
drivers/usb/gadget/function/f_fs.c
ASoC: topology: use name_prefix for new kcontrol
* ASoC: dpcm: allow start or stop during pause for backend
sound/soc/soc-pcm.c
* ASoC: dapm: connect virtual mux with default value
sound/soc/soc-dapm.c
* ASoC: fix regwmask
sound/soc/soc-ops.c
* slub: improve bit diffusion for freelist ptr obfuscation
mm/slub.c
* uapi: rename ext2_swab() to swab() and share globally in swab.h
include/linux/swab.h
include/uapi/linux/swab.h
lib/find_bit.c
* IB/mlx5: Replace tunnel mpls capability bits for tunnel_offloads
include/linux/mlx5/mlx5_ifc.h
btrfs: track reloc roots based on their commit root bytenr
btrfs: remove a BUG_ON() from merge_reloc_roots()
btrfs: qgroup: ensure qgroup_rescan_running is only set when the worker is at least queued
block, bfq: fix use-after-free in bfq_idle_slice_timer_body
locking/lockdep: Avoid recursion in lockdep_count_{for,back}ward_deps()
* firmware: fix a double abort case with fw_load_sysfs_fallback
drivers/base/firmware_loader/fallback.c
md: check arrays is suspended in mddev_detach before call quiesce operations
* irqchip/gic-v4: Provide irq_retrigger to avoid circular locking dependency
drivers/irqchip/irq-gic-v3-its.c
* usb: dwc3: core: add support for disabling SS instances in park mode
drivers/usb/dwc3/core.c
drivers/usb/dwc3/core.h
media: i2c: ov5695: Fix power on and off sequences
* block: Fix use-after-free issue accessing struct io_cq
block/blk-ioc.c
include/linux/iocontext.h
* genirq/irqdomain: Check pointer in irq_domain_alloc_irqs_hierarchy()
kernel/irq/irqdomain.c
efi/x86: Ignore the memory attributes table on i386
x86/boot: Use unsigned comparison for addresses
gfs2: Don't demote a glock until its revokes are written
* pstore/platform: fix potential mem leak if pstore_init_fs failed
fs/pstore/platform.c
libata: Remove extra scsi_host_put() in ata_scsi_add_hosts()
media: i2c: video-i2c: fix build errors due to 'imply hwmon'
PCI/switchtec: Fix init_completion race condition with poll_wait()
selftests/x86/ptrace_syscall_32: Fix no-vDSO segfault
* sched: Avoid scale real weight down to zero
kernel/sched/sched.h
irqchip/versatile-fpga: Handle chained IRQs properly
* block: keep bdi->io_pages in sync with max_sectors_kb for stacked devices
block/blk-settings.c
x86: Don't let pgprot_modify() change the page encryption bit
* xhci: bail out early if driver can't accress host in resume
drivers/usb/host/xhci.c
null_blk: fix spurious IO errors after failed past-wp access
null_blk: Handle null_add_dev() failures properly
null_blk: Fix the null_add_dev() error path
firmware: arm_sdei: fix double-lock on hibernate with shared events
media: venus: hfi_parser: Ignore HEVC encoding for V1
cpufreq: imx6q: Fixes unwanted cpu overclocking on i.MX6ULL
i2c: st: fix missing struct parameter description
qlcnic: Fix bad kzalloc null test
cxgb4/ptp: pass the sign of offset delta in FW CMD
hinic: fix wrong para of wait_for_completion_timeout
hinic: fix a bug of waitting for IO stopped
net: vxge: fix wrong __VA_ARGS__ usage
bus: sunxi-rsb: Return correct data when mixing 16-bit and 8-bit reads
ARM: dts: sun8i-a83t-tbs-a711: HM5065 doesn't like such a high voltage
ANDROID: build.config.allmodconfig: Re-enable XFS_FS
* FROMGIT: of: property: Add device link support for extcon
drivers/of/property.c
ANDROID: GKI: arm64: gki_defconfig: enable CONFIG_MM_EVENT_STAT
* ANDROID: GKI: add fields from per-process mm event tracking feature
include/linux/mm_event.h
include/linux/sched.h
mm/Kconfig
mm/Makefile
mm/mm_event.c
* ANDROID: GKI: fix ABI diffs caused by ION heap and pool vmstat additions
include/linux/mmzone.h
mm/vmstat.c
* UPSTREAM: GKI: panic/reboot: allow specifying reboot_mode for panic only
include/linux/reboot.h
kernel/panic.c
kernel/reboot.c
* ANDROID: GKI: of: property: Add device link support for phys property
drivers/of/property.c
* ANDROID: GKI: usb: phy: Fix ABI diff for usb_otg_state
include/linux/usb/phy.h
* ANDROID: GKI: usb: phy: Fix ABI diff due to usb_phy.drive_dp_pulse
include/linux/usb/phy.h
* ANDROID: GKI: usb: phy: Fix ABI diff for usb_phy_type and usb_phy.reset
include/linux/usb/phy.h
ANDROID: gki_defconfig: enable CONFIG_GPIO_SYSFS
* ANDROID: GKI: qcom: Fix compile issue when setting msm_lmh_dcvs as a module
kernel/trace/power-traces.c
* ANDROID: GKI: drivers: cpu_cooling: allow platform freq mitigation
drivers/thermal/cpu_cooling.c
include/linux/cpu_cooling.h
* ANDROID: GKI: ASoC: Add locking in DAPM widget power update
include/sound/soc.h
sound/soc/soc-core.c
sound/soc/soc-dapm.c
* ANDROID: GKI: ASoC: jack: Fix buttons enum value
include/sound/jack.h
* ANDROID: GKI: ALSA: jack: Add support to report second microphone
include/sound/jack.h
include/uapi/linux/input-event-codes.h
sound/core/jack.c
* ANDROID: GKI: ALSA: jack: Update supported jack switch types
include/linux/mod_devicetable.h
include/sound/jack.h
include/uapi/linux/input-event-codes.h
sound/core/jack.c
* ANDROID: GKI: ALSA: jack: update jack types
include/sound/jack.h
* ANDROID: GKI: Export symbols arm_cpuidle_suspend, cpuidle_dev and cpuidle_register_governor
arch/arm64/kernel/cpuidle.c
drivers/cpuidle/cpuidle.c
* ANDROID: GKI: usb: hcd: Add USB atomic notifier callback for HC died error
drivers/usb/core/hcd.c
drivers/usb/core/notify.c
drivers/usb/core/usb.h
include/linux/usb.h
* ANDROID: media: increase video max frame number
include/media/videobuf2-core.h
include/uapi/linux/videodev2.h
* BACKPORT: nvmem: core: add NVMEM_SYSFS Kconfig
drivers/nvmem/Kconfig
drivers/nvmem/Makefile
drivers/nvmem/core.c
drivers/nvmem/nvmem-sysfs.c
drivers/nvmem/nvmem.h
* UPSTREAM: nvmem: add support for cell info
drivers/nvmem/core.c
include/linux/nvmem-provider.h
* UPSTREAM: nvmem: remove the global cell list
drivers/nvmem/core.c
* UPSTREAM: nvmem: use kref
drivers/nvmem/core.c
* UPSTREAM: nvmem: use list_for_each_entry_safe in nvmem_device_remove_all_cells()
drivers/nvmem/core.c
* UPSTREAM: nvmem: provide nvmem_dev_name()
drivers/nvmem/core.c
include/linux/nvmem-consumer.h
ANDROID: GKI: Bulk ABI update
* ANDROID: GKI: cpuhotplug: adding hotplug enums for vendor code
include/linux/cpuhotplug.h
* ANDROID: Incremental fs: Fix create_file performance
fs/incfs/format.c
ANDROID: build.config.common: Add BUILDTOOLS_PREBUILT_BIN
* UPSTREAM: kheaders: include only headers into kheaders_data.tar.xz
kernel/gen_kheaders.sh
* UPSTREAM: kheaders: remove meaningless -R option of 'ls'
kernel/gen_kheaders.sh
* ANDROID: GKI: of: platform: initialize of_reserved_mem
drivers/of/platform.c
* ANDROID: driver: gpu: drm: add notifier for panel related events
drivers/gpu/drm/drm_panel.c
include/drm/drm_connector.h
include/drm/drm_panel.h
* ANDROID: include: drm: support unicasting mipi cmds to dsi ctrls
include/drm/drm_mipi_dsi.h
* ANDROID: include: drm: increase DRM max property count to 64
include/drm/drm_mode_object.h
* BACKPORT: drm: Add HDMI colorspace property
drivers/gpu/drm/drm_atomic.c
drivers/gpu/drm/drm_connector.c
include/drm/drm_connector.h
* ANDROID: drm: edid: add support for additional CEA extension blocks
drivers/gpu/drm/drm_edid.c
include/drm/drm_connector.h
include/drm/drm_edid.h
* BACKPORT: drm: Parse HDR metadata info from EDID
drivers/gpu/drm/drm_edid.c
* BACKPORT: drm: Add HDR source metadata property
drivers/gpu/drm/drm_atomic.c
drivers/gpu/drm/drm_connector.c
include/drm/drm_connector.h
include/drm/drm_mode_config.h
include/linux/hdmi.h
include/uapi/drm/drm_mode.h
* BACKPORT: drm/dp_mst: Parse FEC capability on MST ports
drivers/gpu/drm/drm_dp_mst_topology.c
include/drm/drm_dp_mst_helper.h
ANDROID: GKI: ABI update for DRM changes
ANDROID: ABI: add missing elf variables to representation
* ANDROID: GKI: power_supply: Add PROP_MOISTURE_DETECTION_ENABLED
drivers/power/supply/power_supply_sysfs.c
include/linux/power_supply.h
* ANDROID: include: drm: add the definitions for DP Link Compliance tests
include/drm/drm_dp_helper.h
* ANDROID: drivers: gpu: drm: fix bugs encountered while fuzzing
drivers/gpu/drm/drm_file.c
drivers/gpu/drm/drm_property.c
* FROMLIST: power_supply: Add additional health properties to the header
drivers/power/supply/power_supply_sysfs.c
include/linux/power_supply.h
UPSTREAM: power: supply: core: Update sysfs-class-power ABI document
* UPSTREAM: Merge remote-tracking branch 'aosp/upstream-f2fs-stable-linux-4.19.y' into android-4.19 (v5.7-rc1)
fs/f2fs/Kconfig
fs/f2fs/checkpoint.c
fs/f2fs/data.c
fs/f2fs/debug.c
fs/f2fs/dir.c
fs/f2fs/f2fs.h
fs/f2fs/file.c
fs/f2fs/gc.c
fs/f2fs/inode.c
fs/f2fs/namei.c
fs/f2fs/node.c
fs/f2fs/recovery.c
fs/f2fs/segment.c
fs/f2fs/segment.h
fs/f2fs/shrinker.c
fs/f2fs/super.c
fs/f2fs/sysfs.c
fs/f2fs/xattr.c
fs/f2fs/xattr.h
include/linux/f2fs_fs.h
include/trace/events/f2fs.h
mm/swapfile.c
* ANDROID: drivers: gpu: drm: add support for secure framebuffer
drivers/gpu/drm/drm_framebuffer.c
include/uapi/drm/drm_mode.h
* ANDROID: include: uapi: drm: add additional QCOM modifiers
include/uapi/drm/drm_fourcc.h
* ANDROID: drm: dsi: add two DSI mode flags for BLLP
include/drm/drm_mipi_dsi.h
* ANDROID: include: uapi: drm: add additional drm mode flags
include/uapi/drm/drm_mode.h
* UPSTREAM: drm: plug memory leak on drm_setup() failure
drivers/gpu/drm/drm_file.c
* UPSTREAM: drm: factor out drm_close_helper() function
drivers/gpu/drm/drm_file.c
ANDROID: GKI: Bulk ABI update
* BACKPORT: nl80211: Add per peer statistics to compute FCS error rate
include/net/cfg80211.h
include/uapi/linux/nl80211.h
net/wireless/nl80211.c
* ANDROID: GKI: sound: usb: Add snd_usb_enable_audio_stream/find_snd_usb_substream
sound/usb/card.c
sound/usb/card.h
sound/usb/pcm.c
sound/usb/pcm.h
sound/usb/usbaudio.h
* ANDROID: GKI: add dma-buf includes
drivers/dma-buf/dma-buf.c
* ANDROID: GKI: sched: struct fields for Per-Sched-domain over utilization
include/linux/sched/topology.h
* ANDROID: GKI: Add vendor fields to root_domain
kernel/sched/sched.h
ANDROID: gki_defconfig: Enable CONFIG_IRQ_TIME_ACCOUNTING
ANDROID: fix allmodconfig build to use the right toolchain
ANDROID: fix allmodconfig build to use the right toolchain
ANDROID: GKI: Update ABI
* Revert "UPSTREAM: mm, page_alloc: spread allocations across zones before introducing fragmentation"
mm/internal.h
mm/page_alloc.c
* Revert "UPSTREAM: mm: use alloc_flags to record if kswapd can wake"
mm/internal.h
mm/page_alloc.c
* Revert "BACKPORT: mm: move zone watermark accesses behind an accessor"
include/linux/mmzone.h
mm/compaction.c
mm/page_alloc.c
* Revert "BACKPORT: mm: reclaim small amounts of memory when an external fragmentation event occurs"
include/linux/mm.h
include/linux/mmzone.h
kernel/sysctl.c
mm/page_alloc.c
mm/vmscan.c
* Revert "BACKPORT: mm, compaction: be selective about what pageblocks to clear skip hints"
include/linux/mmzone.h
mm/compaction.c
* ANDROID: GKI: panic: add vendor callback function in panic()
include/linux/kernel.h
kernel/panic.c
* UPSTREAM: GKI: thermal: make device_register's type argument const
drivers/thermal/thermal_core.c
include/linux/thermal.h
* ANDROID: GKI: add base.h include to match MODULE_VERSIONS
drivers/thermal/thermal_core.c
ANDROID: update the ABI based on the new whitelist
* ANDROID: GKI: fdt: export symbols required by modules
drivers/of/fdt.c
* ANDROID: GKI: drivers: of: Add APIs to find DDR device rank, HBB
drivers/of/fdt.c
include/linux/of_fdt.h
* ANDROID: GKI: security: Add mmap export symbols for modules
security/min_addr.c
* ANDROID: GKI: arch: add stub symbols for boot_reason and cold_boot
arch/arm64/kernel/setup.c
* ANDROID: GKI: USB: Fix ABI diff for struct usb_bus
drivers/usb/core/driver.c
include/linux/usb.h
* ANDROID: GKI: USB: Resolve ABI diff for usb_gadget and usb_gadget_ops
drivers/usb/gadget/udc/core.c
include/linux/usb/gadget.h
* ANDROID: GKI: add hidden V4L2_MEM2MEM_DEV
init/Kconfig.gki
ANDROID: GKI: enable VIDEO_V4L2_SUBDEV_API
* ANDROID: GKI: export symbols from abi_gki_aarch64_qcom_whitelist
arch/arm64/mm/mmu.c
drivers/base/core.c
drivers/clocksource/arm_arch_timer.c
drivers/cpuidle/governor.c
drivers/gpu/drm/drm_atomic_helper.c
drivers/gpu/drm/drm_modes.c
fs/kernfs/symlink.c
kernel/params.c
kernel/power/main.c
kernel/power/qos.c
kernel/power/suspend.c
kernel/printk/printk.c
kernel/time/tick-sched.c
lib/ioremap.c
lib/plist.c
mm/memblock.c
mm/mmap.c
security/security.c
sound/usb/helper.c
ANDROID: Update the whitelist for qcom SoCs
* ANDROID: Incremental fs: Fix compound page usercopy crash
fs/incfs/data_mgmt.c
fs/incfs/vfs.c
ANDROID: Incremental fs: Clean up incfs_test build process
* ANDROID: Incremental fs: make remount log buffer change atomic
fs/incfs/data_mgmt.c
fs/incfs/data_mgmt.h
fs/incfs/vfs.c
* ANDROID: Incremental fs: Optimize get_filled_block
fs/incfs/data_mgmt.c
fs/incfs/format.c
* ANDROID: Incremental fs: Fix mislabeled __user ptrs
fs/incfs/data_mgmt.c
fs/incfs/integrity.c
fs/incfs/vfs.c
* ANDROID: Incremental fs: Use 64-bit int for file_size when writing hash blocks
fs/incfs/format.c
fs/incfs/format.h
Merge remote-tracking branch 'aosp/upstream-f2fs-stable-linux-4.19.y' into android-4.19 (v5.7-rc1)
Merge remote-tracking branch 'aosp/android-4.19' into android-4.19-stable
ubifs: wire up FS_IOC_GET_ENCRYPTION_NONCE
* f2fs: wire up FS_IOC_GET_ENCRYPTION_NONCE
fs/f2fs/file.c
* ext4: wire up FS_IOC_GET_ENCRYPTION_NONCE
fs/ext4/ioctl.c
* fscrypt: add FS_IOC_GET_ENCRYPTION_NONCE ioctl
fs/crypto/fscrypt_private.h
fs/crypto/keysetup.c
fs/crypto/policy.c
include/linux/fscrypt.h
include/uapi/linux/fscrypt.h
* f2fs: keep inline_data when compression conversion
fs/f2fs/file.c
* f2fs: fix to disable compression on directory
fs/f2fs/f2fs.h
fs/f2fs/file.c
* f2fs: add missing CONFIG_F2FS_FS_COMPRESSION
fs/f2fs/sysfs.c
* f2fs: switch discard_policy.timeout to bool type
fs/f2fs/f2fs.h
fs/f2fs/segment.c
f2fs: fix to verify tpage before releasing in f2fs_free_dic()
* f2fs: show compression in statx
fs/f2fs/file.c
f2fs: clean up dic->tpages assignment
* f2fs: compress: support zstd compress algorithm
fs/f2fs/Kconfig
fs/f2fs/f2fs.h
fs/f2fs/super.c
include/trace/events/f2fs.h
f2fs: compress: add .{init,destroy}_decompress_ctx callback
f2fs: compress: fix to call missing destroy_compress_ctx()
* f2fs: change default compression algorithm
fs/f2fs/super.c
f2fs: clean up {cic,dic}.ref handling
* f2fs: fix to use f2fs_readpage_limit() in f2fs_read_multi_pages()
fs/f2fs/data.c
* f2fs: xattr.h: Make stub helpers inline
fs/f2fs/xattr.h
* f2fs: fix to avoid double unlock
fs/f2fs/data.c
* f2fs: fix potential .flags overflow on 32bit architecture
fs/f2fs/f2fs.h
fs/f2fs/inode.c
* f2fs: fix NULL pointer dereference in f2fs_verity_work()
fs/f2fs/data.c
f2fs: fix to clear PG_error if fsverity failed
* f2fs: don't call fscrypt_get_encryption_info() explicitly in f2fs_tmpfile()
fs/f2fs/namei.c
* f2fs: don't trigger data flush in foreground operation
fs/f2fs/f2fs.h
fs/f2fs/gc.c
fs/f2fs/node.c
fs/f2fs/segment.c
* f2fs: fix NULL pointer dereference in f2fs_write_begin()
fs/f2fs/super.c
* f2fs: clean up f2fs_may_encrypt()
fs/f2fs/dir.c
fs/f2fs/f2fs.h
fs/f2fs/namei.c
* f2fs: fix to avoid potential deadlock
fs/f2fs/data.c
* f2fs: don't change inode status under page lock
fs/f2fs/dir.c
f2fs: fix potential deadlock on compressed quota file
* f2fs: delete DIO read lock
fs/f2fs/data.c
* f2fs: don't mark compressed inode dirty during f2fs_iget()
fs/f2fs/f2fs.h
f2fs: fix to account compressed blocks in f2fs_compressed_blocks()
* f2fs: xattr.h: Replace zero-length array with flexible-array member
fs/f2fs/xattr.h
* f2fs: fix to update f2fs_super_block fields under sb_lock
fs/f2fs/gc.c
* f2fs: Add a new CP flag to help fsck fix resize SPO issues
fs/f2fs/checkpoint.c
include/linux/f2fs_fs.h
* f2fs: Fix mount failure due to SPO after a successful online resize FS
fs/f2fs/gc.c
* f2fs: use kmem_cache pool during inline xattr lookups
fs/f2fs/f2fs.h
fs/f2fs/super.c
fs/f2fs/xattr.c
fs/f2fs/xattr.h
* f2fs: skip migration only when BG_GC is called
fs/f2fs/gc.c
* f2fs: fix to show tracepoint correctly
fs/f2fs/file.c
* f2fs: avoid __GFP_NOFAIL in f2fs_bio_alloc
fs/f2fs/data.c
fs/f2fs/f2fs.h
* f2fs: introduce F2FS_IOC_GET_COMPRESS_BLOCKS
fs/f2fs/f2fs.h
fs/f2fs/file.c
* f2fs: fix to avoid triggering IO in write path
fs/f2fs/data.c
fs/f2fs/f2fs.h
* f2fs: add prefix for f2fs slab cache name
fs/f2fs/data.c
fs/f2fs/node.c
fs/f2fs/segment.c
* f2fs: introduce DEFAULT_IO_TIMEOUT
fs/f2fs/checkpoint.c
fs/f2fs/data.c
fs/f2fs/f2fs.h
fs/f2fs/gc.c
fs/f2fs/inode.c
fs/f2fs/node.c
fs/f2fs/recovery.c
fs/f2fs/segment.c
fs/f2fs/super.c
* f2fs: skip GC when section is full
fs/f2fs/gc.c
* f2fs: add migration count iff migration happens
fs/f2fs/gc.c
* f2fs: clean up bggc mount option
fs/f2fs/f2fs.h
fs/f2fs/gc.c
fs/f2fs/super.c
* f2fs: clean up lfs/adaptive mount option
fs/f2fs/data.c
fs/f2fs/f2fs.h
fs/f2fs/file.c
fs/f2fs/gc.c
fs/f2fs/segment.c
fs/f2fs/super.c
* f2fs: fix to show norecovery mount option
fs/f2fs/f2fs.h
fs/f2fs/super.c
* f2fs: clean up parameter of macro XATTR_SIZE()
fs/f2fs/xattr.c
fs/f2fs/xattr.h
* f2fs: clean up codes with {f2fs_,}data_blkaddr()
fs/f2fs/data.c
fs/f2fs/f2fs.h
fs/f2fs/file.c
fs/f2fs/gc.c
fs/f2fs/node.c
fs/f2fs/recovery.c
* f2fs: show mounted time
fs/f2fs/debug.c
fs/f2fs/segment.c
fs/f2fs/segment.h
fs/f2fs/sysfs.c
* f2fs: Use scnprintf() for avoiding potential buffer overflow
fs/f2fs/sysfs.c
* f2fs: allow to clear F2FS_COMPR_FL flag
fs/f2fs/file.c
* f2fs: fix to check dirty pages during compressed inode conversion
fs/f2fs/f2fs.h
* f2fs: fix to account compressed inode correctly
fs/f2fs/f2fs.h
* f2fs: fix wrong check on F2FS_IOC_FSSETXATTR
fs/f2fs/file.c
f2fs: fix to avoid use-after-free in f2fs_write_multi_pages()
* f2fs: fix to avoid using uninitialized variable
fs/f2fs/file.c
* f2fs: fix inconsistent comments
fs/f2fs/checkpoint.c
fs/f2fs/data.c
fs/f2fs/f2fs.h
fs/f2fs/file.c
fs/f2fs/gc.c
fs/f2fs/inode.c
fs/f2fs/namei.c
fs/f2fs/node.c
fs/f2fs/shrinker.c
fs/f2fs/super.c
* f2fs: remove i_sem lock coverage in f2fs_setxattr()
fs/f2fs/xattr.c
* f2fs: cover last_disk_size update with spinlock
fs/f2fs/data.c
fs/f2fs/f2fs.h
fs/f2fs/file.c
fs/f2fs/super.c
* f2fs: fix to check i_compr_blocks correctly
fs/f2fs/inode.c
Merge android-4.19 into android-4.19-stable
ANDROID: GKI: Removed cuttlefish configs
f2fs: fix to avoid potential deadlock
* f2fs: add missing function name in kernel message
fs/f2fs/f2fs.h
fs/f2fs/node.c
* f2fs: recycle unused compress_data.chksum feild
fs/f2fs/f2fs.h
f2fs: fix to avoid NULL pointer dereference
f2fs: fix leaking uninitialized memory in compressed clusters
* f2fs: fix the panic in do_checkpoint()
fs/f2fs/checkpoint.c
fs/f2fs/f2fs.h
fs/f2fs/super.c
* f2fs: fix to wait all node page writeback
fs/f2fs/node.c
* mm/swapfile.c: move inode_lock out of claim_swapfile
mm/swapfile.c
* fscrypt: don't evict dirty inodes after removing key
fs/crypto/keysetup.c
Change-Id: I63c53220e364526b198f9dd8f7e38492c9cea385
Signed-off-by: lucaswei <lucaswei@google.com>
688 lines
17 KiB
C
688 lines
17 KiB
C
/*
|
|
* linux/kernel/panic.c
|
|
*
|
|
* Copyright (C) 1991, 1992 Linus Torvalds
|
|
*/
|
|
|
|
/*
|
|
* This function is used through-out the kernel (including mm and fs)
|
|
* to indicate a major problem.
|
|
*/
|
|
#include <linux/debug_locks.h>
|
|
#include <linux/sched/debug.h>
|
|
#include <linux/interrupt.h>
|
|
#include <linux/kmsg_dump.h>
|
|
#include <linux/kallsyms.h>
|
|
#include <linux/notifier.h>
|
|
#include <linux/vt_kern.h>
|
|
#include <linux/module.h>
|
|
#include <linux/random.h>
|
|
#include <linux/ftrace.h>
|
|
#include <linux/reboot.h>
|
|
#include <linux/delay.h>
|
|
#include <linux/kexec.h>
|
|
#include <linux/sched.h>
|
|
#include <linux/sysrq.h>
|
|
#include <linux/init.h>
|
|
#include <linux/nmi.h>
|
|
#include <linux/console.h>
|
|
#include <linux/bug.h>
|
|
#include <linux/ratelimit.h>
|
|
#include <linux/debugfs.h>
|
|
#include <asm/sections.h>
|
|
#include <soc/qcom/minidump.h>
|
|
|
|
#define PANIC_TIMER_STEP 100
|
|
#define PANIC_BLINK_SPD 18
|
|
|
|
int panic_on_oops = CONFIG_PANIC_ON_OOPS_VALUE;
|
|
static unsigned long tainted_mask =
|
|
IS_ENABLED(CONFIG_GCC_PLUGIN_RANDSTRUCT) ? (1 << TAINT_RANDSTRUCT) : 0;
|
|
static int pause_on_oops;
|
|
static int pause_on_oops_flag;
|
|
static DEFINE_SPINLOCK(pause_on_oops_lock);
|
|
bool crash_kexec_post_notifiers;
|
|
|
|
/*
|
|
* With panic_on_warn, it enable too many panic on all warnings, and kernel may
|
|
* not be free from legit warnings. So use CONFIG_PANIC_ON_WARN_DEFAULT_ENABLE
|
|
* to control panic_on_warn in debug purpose.
|
|
*/
|
|
#ifdef CONFIG_PANIC_ON_WARN_DEFAULT_ENABLE
|
|
int panic_on_warn __read_mostly = 1;
|
|
#else
|
|
int panic_on_warn __read_mostly;
|
|
#endif
|
|
|
|
int panic_timeout = CONFIG_PANIC_TIMEOUT;
|
|
EXPORT_SYMBOL_GPL(panic_timeout);
|
|
|
|
ATOMIC_NOTIFIER_HEAD(panic_notifier_list);
|
|
EXPORT_SYMBOL(panic_notifier_list);
|
|
|
|
void (*vendor_panic_cb)(u64 sp);
|
|
EXPORT_SYMBOL_GPL(vendor_panic_cb);
|
|
|
|
static long no_blink(int state)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
/* Returns how long it waited in ms */
|
|
long (*panic_blink)(int state);
|
|
EXPORT_SYMBOL(panic_blink);
|
|
|
|
/*
|
|
* Stop ourself in panic -- architecture code may override this
|
|
*/
|
|
void __weak panic_smp_self_stop(void)
|
|
{
|
|
while (1)
|
|
cpu_relax();
|
|
}
|
|
|
|
/*
|
|
* Stop ourselves in NMI context if another CPU has already panicked. Arch code
|
|
* may override this to prepare for crash dumping, e.g. save regs info.
|
|
*/
|
|
void __weak nmi_panic_self_stop(struct pt_regs *regs)
|
|
{
|
|
panic_smp_self_stop();
|
|
}
|
|
|
|
/*
|
|
* Stop other CPUs in panic. Architecture dependent code may override this
|
|
* with more suitable version. For example, if the architecture supports
|
|
* crash dump, it should save registers of each stopped CPU and disable
|
|
* per-CPU features such as virtualization extensions.
|
|
*/
|
|
void __weak crash_smp_send_stop(void)
|
|
{
|
|
static int cpus_stopped;
|
|
|
|
/*
|
|
* This function can be called twice in panic path, but obviously
|
|
* we execute this only once.
|
|
*/
|
|
if (cpus_stopped)
|
|
return;
|
|
|
|
/*
|
|
* Note smp_send_stop is the usual smp shutdown function, which
|
|
* unfortunately means it may not be hardened to work in a panic
|
|
* situation.
|
|
*/
|
|
smp_send_stop();
|
|
cpus_stopped = 1;
|
|
}
|
|
|
|
atomic_t panic_cpu = ATOMIC_INIT(PANIC_CPU_INVALID);
|
|
|
|
/*
|
|
* A variant of panic() called from NMI context. We return if we've already
|
|
* panicked on this CPU. If another CPU already panicked, loop in
|
|
* nmi_panic_self_stop() which can provide architecture dependent code such
|
|
* as saving register state for crash dump.
|
|
*/
|
|
void nmi_panic(struct pt_regs *regs, const char *msg)
|
|
{
|
|
int old_cpu, cpu;
|
|
|
|
cpu = raw_smp_processor_id();
|
|
old_cpu = atomic_cmpxchg(&panic_cpu, PANIC_CPU_INVALID, cpu);
|
|
|
|
if (old_cpu == PANIC_CPU_INVALID)
|
|
panic("%s", msg);
|
|
else if (old_cpu != cpu)
|
|
nmi_panic_self_stop(regs);
|
|
}
|
|
EXPORT_SYMBOL(nmi_panic);
|
|
|
|
/**
|
|
* panic - halt the system
|
|
* @fmt: The text string to print
|
|
*
|
|
* Display a message, then perform cleanups.
|
|
*
|
|
* This function never returns.
|
|
*/
|
|
void panic(const char *fmt, ...)
|
|
{
|
|
static char buf[1024];
|
|
va_list args;
|
|
long i, i_next = 0;
|
|
int state = 0;
|
|
int old_cpu, this_cpu;
|
|
bool _crash_kexec_post_notifiers = crash_kexec_post_notifiers;
|
|
|
|
/*
|
|
* Disable local interrupts. This will prevent panic_smp_self_stop
|
|
* from deadlocking the first cpu that invokes the panic, since
|
|
* there is nothing to prevent an interrupt handler (that runs
|
|
* after setting panic_cpu) from invoking panic() again.
|
|
*/
|
|
local_irq_disable();
|
|
preempt_disable_notrace();
|
|
|
|
/*
|
|
* It's possible to come here directly from a panic-assertion and
|
|
* not have preempt disabled. Some functions called from here want
|
|
* preempt to be disabled. No point enabling it later though...
|
|
*
|
|
* Only one CPU is allowed to execute the panic code from here. For
|
|
* multiple parallel invocations of panic, all other CPUs either
|
|
* stop themself or will wait until they are stopped by the 1st CPU
|
|
* with smp_send_stop().
|
|
*
|
|
* `old_cpu == PANIC_CPU_INVALID' means this is the 1st CPU which
|
|
* comes here, so go ahead.
|
|
* `old_cpu == this_cpu' means we came from nmi_panic() which sets
|
|
* panic_cpu to this CPU. In this case, this is also the 1st CPU.
|
|
*/
|
|
this_cpu = raw_smp_processor_id();
|
|
old_cpu = atomic_cmpxchg(&panic_cpu, PANIC_CPU_INVALID, this_cpu);
|
|
|
|
if (old_cpu != PANIC_CPU_INVALID && old_cpu != this_cpu)
|
|
panic_smp_self_stop();
|
|
|
|
console_verbose();
|
|
bust_spinlocks(1);
|
|
va_start(args, fmt);
|
|
vsnprintf(buf, sizeof(buf), fmt, args);
|
|
va_end(args);
|
|
if (vendor_panic_cb)
|
|
vendor_panic_cb(0);
|
|
pr_emerg("Kernel panic - not syncing: %s\n", buf);
|
|
#ifdef CONFIG_DEBUG_BUGVERBOSE
|
|
/*
|
|
* Avoid nested stack-dumping if a panic occurs during oops processing
|
|
*/
|
|
if (!test_taint(TAINT_DIE) && oops_in_progress <= 1)
|
|
dump_stack();
|
|
#endif
|
|
|
|
/*
|
|
* If we have crashed and we have a crash kernel loaded let it handle
|
|
* everything else.
|
|
* If we want to run this after calling panic_notifiers, pass
|
|
* the "crash_kexec_post_notifiers" option to the kernel.
|
|
*
|
|
* Bypass the panic_cpu check and call __crash_kexec directly.
|
|
*/
|
|
if (!_crash_kexec_post_notifiers) {
|
|
printk_safe_flush_on_panic();
|
|
__crash_kexec(NULL);
|
|
|
|
/*
|
|
* Note smp_send_stop is the usual smp shutdown function, which
|
|
* unfortunately means it may not be hardened to work in a
|
|
* panic situation.
|
|
*/
|
|
smp_send_stop();
|
|
} else {
|
|
/*
|
|
* If we want to do crash dump after notifier calls and
|
|
* kmsg_dump, we will need architecture dependent extra
|
|
* works in addition to stopping other CPUs.
|
|
*/
|
|
crash_smp_send_stop();
|
|
}
|
|
|
|
/*
|
|
* Run any panic handlers, including those that might need to
|
|
* add information to the kmsg dump output.
|
|
*/
|
|
atomic_notifier_call_chain(&panic_notifier_list, 0, buf);
|
|
|
|
/* Call flush even twice. It tries harder with a single online CPU */
|
|
printk_safe_flush_on_panic();
|
|
kmsg_dump(KMSG_DUMP_PANIC);
|
|
|
|
/*
|
|
* If you doubt kdump always works fine in any situation,
|
|
* "crash_kexec_post_notifiers" offers you a chance to run
|
|
* panic_notifiers and dumping kmsg before kdump.
|
|
* Note: since some panic_notifiers can make crashed kernel
|
|
* more unstable, it can increase risks of the kdump failure too.
|
|
*
|
|
* Bypass the panic_cpu check and call __crash_kexec directly.
|
|
*/
|
|
if (_crash_kexec_post_notifiers)
|
|
__crash_kexec(NULL);
|
|
|
|
#ifdef CONFIG_VT
|
|
unblank_screen();
|
|
#endif
|
|
console_unblank();
|
|
|
|
/*
|
|
* We may have ended up stopping the CPU holding the lock (in
|
|
* smp_send_stop()) while still having some valuable data in the console
|
|
* buffer. Try to acquire the lock then release it regardless of the
|
|
* result. The release will also print the buffers out. Locks debug
|
|
* should be disabled to avoid reporting bad unlock balance when
|
|
* panic() is not being callled from OOPS.
|
|
*/
|
|
debug_locks_off();
|
|
console_flush_on_panic();
|
|
|
|
if (!panic_blink)
|
|
panic_blink = no_blink;
|
|
|
|
if (panic_timeout > 0) {
|
|
/*
|
|
* Delay timeout seconds before rebooting the machine.
|
|
* We can't use the "normal" timers since we just panicked.
|
|
*/
|
|
pr_emerg("Rebooting in %d seconds..\n", panic_timeout);
|
|
|
|
for (i = 0; i < panic_timeout * 1000; i += PANIC_TIMER_STEP) {
|
|
touch_nmi_watchdog();
|
|
if (i >= i_next) {
|
|
i += panic_blink(state ^= 1);
|
|
i_next = i + 3600 / PANIC_BLINK_SPD;
|
|
}
|
|
mdelay(PANIC_TIMER_STEP);
|
|
}
|
|
}
|
|
if (panic_timeout != 0) {
|
|
/*
|
|
* This will not be a clean reboot, with everything
|
|
* shutting down. But if there is a chance of
|
|
* rebooting the system it will be rebooted.
|
|
*/
|
|
if (panic_reboot_mode != REBOOT_UNDEFINED)
|
|
reboot_mode = panic_reboot_mode;
|
|
emergency_restart();
|
|
}
|
|
#ifdef __sparc__
|
|
{
|
|
extern int stop_a_enabled;
|
|
/* Make sure the user can actually press Stop-A (L1-A) */
|
|
stop_a_enabled = 1;
|
|
pr_emerg("Press Stop-A (L1-A) from sun keyboard or send break\n"
|
|
"twice on console to return to the boot prom\n");
|
|
}
|
|
#endif
|
|
#if defined(CONFIG_S390)
|
|
{
|
|
unsigned long caller;
|
|
|
|
caller = (unsigned long)__builtin_return_address(0);
|
|
disabled_wait(caller);
|
|
}
|
|
#endif
|
|
pr_emerg("---[ end Kernel panic - not syncing: %s ]---\n", buf);
|
|
local_irq_enable();
|
|
for (i = 0; ; i += PANIC_TIMER_STEP) {
|
|
touch_softlockup_watchdog();
|
|
if (i >= i_next) {
|
|
i += panic_blink(state ^= 1);
|
|
i_next = i + 3600 / PANIC_BLINK_SPD;
|
|
}
|
|
mdelay(PANIC_TIMER_STEP);
|
|
}
|
|
}
|
|
|
|
EXPORT_SYMBOL(panic);
|
|
|
|
/*
|
|
* TAINT_FORCED_RMMOD could be a per-module flag but the module
|
|
* is being removed anyway.
|
|
*/
|
|
const struct taint_flag taint_flags[TAINT_FLAGS_COUNT] = {
|
|
[ TAINT_PROPRIETARY_MODULE ] = { 'P', 'G', true },
|
|
[ TAINT_FORCED_MODULE ] = { 'F', ' ', true },
|
|
[ TAINT_CPU_OUT_OF_SPEC ] = { 'S', ' ', false },
|
|
[ TAINT_FORCED_RMMOD ] = { 'R', ' ', false },
|
|
[ TAINT_MACHINE_CHECK ] = { 'M', ' ', false },
|
|
[ TAINT_BAD_PAGE ] = { 'B', ' ', false },
|
|
[ TAINT_USER ] = { 'U', ' ', false },
|
|
[ TAINT_DIE ] = { 'D', ' ', false },
|
|
[ TAINT_OVERRIDDEN_ACPI_TABLE ] = { 'A', ' ', false },
|
|
[ TAINT_WARN ] = { 'W', ' ', false },
|
|
[ TAINT_CRAP ] = { 'C', ' ', true },
|
|
[ TAINT_FIRMWARE_WORKAROUND ] = { 'I', ' ', false },
|
|
[ TAINT_OOT_MODULE ] = { 'O', ' ', true },
|
|
[ TAINT_UNSIGNED_MODULE ] = { 'E', ' ', true },
|
|
[ TAINT_SOFTLOCKUP ] = { 'L', ' ', false },
|
|
[ TAINT_LIVEPATCH ] = { 'K', ' ', true },
|
|
[ TAINT_AUX ] = { 'X', ' ', true },
|
|
[ TAINT_RANDSTRUCT ] = { 'T', ' ', true },
|
|
};
|
|
|
|
/**
|
|
* print_tainted - return a string to represent the kernel taint state.
|
|
*
|
|
* For individual taint flag meanings, see Documentation/sysctl/kernel.txt
|
|
*
|
|
* The string is overwritten by the next call to print_tainted(),
|
|
* but is always NULL terminated.
|
|
*/
|
|
const char *print_tainted(void)
|
|
{
|
|
static char buf[TAINT_FLAGS_COUNT + sizeof("Tainted: ")];
|
|
|
|
BUILD_BUG_ON(ARRAY_SIZE(taint_flags) != TAINT_FLAGS_COUNT);
|
|
|
|
if (tainted_mask) {
|
|
char *s;
|
|
int i;
|
|
|
|
s = buf + sprintf(buf, "Tainted: ");
|
|
for (i = 0; i < TAINT_FLAGS_COUNT; i++) {
|
|
const struct taint_flag *t = &taint_flags[i];
|
|
*s++ = test_bit(i, &tainted_mask) ?
|
|
t->c_true : t->c_false;
|
|
}
|
|
*s = 0;
|
|
} else
|
|
snprintf(buf, sizeof(buf), "Not tainted");
|
|
|
|
return buf;
|
|
}
|
|
|
|
int test_taint(unsigned flag)
|
|
{
|
|
return test_bit(flag, &tainted_mask);
|
|
}
|
|
EXPORT_SYMBOL(test_taint);
|
|
|
|
unsigned long get_taint(void)
|
|
{
|
|
return tainted_mask;
|
|
}
|
|
|
|
/**
|
|
* add_taint: add a taint flag if not already set.
|
|
* @flag: one of the TAINT_* constants.
|
|
* @lockdep_ok: whether lock debugging is still OK.
|
|
*
|
|
* If something bad has gone wrong, you'll want @lockdebug_ok = false, but for
|
|
* some notewortht-but-not-corrupting cases, it can be set to true.
|
|
*/
|
|
void add_taint(unsigned flag, enum lockdep_ok lockdep_ok)
|
|
{
|
|
if (lockdep_ok == LOCKDEP_NOW_UNRELIABLE && __debug_locks_off())
|
|
pr_warn("Disabling lock debugging due to kernel taint\n");
|
|
|
|
set_bit(flag, &tainted_mask);
|
|
}
|
|
EXPORT_SYMBOL(add_taint);
|
|
|
|
static void spin_msec(int msecs)
|
|
{
|
|
int i;
|
|
|
|
for (i = 0; i < msecs; i++) {
|
|
touch_nmi_watchdog();
|
|
mdelay(1);
|
|
}
|
|
}
|
|
|
|
/*
|
|
* It just happens that oops_enter() and oops_exit() are identically
|
|
* implemented...
|
|
*/
|
|
static void do_oops_enter_exit(void)
|
|
{
|
|
unsigned long flags;
|
|
static int spin_counter;
|
|
|
|
if (!pause_on_oops)
|
|
return;
|
|
|
|
spin_lock_irqsave(&pause_on_oops_lock, flags);
|
|
if (pause_on_oops_flag == 0) {
|
|
/* This CPU may now print the oops message */
|
|
pause_on_oops_flag = 1;
|
|
} else {
|
|
/* We need to stall this CPU */
|
|
if (!spin_counter) {
|
|
/* This CPU gets to do the counting */
|
|
spin_counter = pause_on_oops;
|
|
do {
|
|
spin_unlock(&pause_on_oops_lock);
|
|
spin_msec(MSEC_PER_SEC);
|
|
spin_lock(&pause_on_oops_lock);
|
|
} while (--spin_counter);
|
|
pause_on_oops_flag = 0;
|
|
} else {
|
|
/* This CPU waits for a different one */
|
|
while (spin_counter) {
|
|
spin_unlock(&pause_on_oops_lock);
|
|
spin_msec(1);
|
|
spin_lock(&pause_on_oops_lock);
|
|
}
|
|
}
|
|
}
|
|
spin_unlock_irqrestore(&pause_on_oops_lock, flags);
|
|
}
|
|
|
|
/*
|
|
* Return true if the calling CPU is allowed to print oops-related info.
|
|
* This is a bit racy..
|
|
*/
|
|
int oops_may_print(void)
|
|
{
|
|
return pause_on_oops_flag == 0;
|
|
}
|
|
|
|
/*
|
|
* Called when the architecture enters its oops handler, before it prints
|
|
* anything. If this is the first CPU to oops, and it's oopsing the first
|
|
* time then let it proceed.
|
|
*
|
|
* This is all enabled by the pause_on_oops kernel boot option. We do all
|
|
* this to ensure that oopses don't scroll off the screen. It has the
|
|
* side-effect of preventing later-oopsing CPUs from mucking up the display,
|
|
* too.
|
|
*
|
|
* It turns out that the CPU which is allowed to print ends up pausing for
|
|
* the right duration, whereas all the other CPUs pause for twice as long:
|
|
* once in oops_enter(), once in oops_exit().
|
|
*/
|
|
void oops_enter(void)
|
|
{
|
|
tracing_off();
|
|
/* can't trust the integrity of the kernel anymore: */
|
|
debug_locks_off();
|
|
do_oops_enter_exit();
|
|
}
|
|
|
|
/*
|
|
* 64-bit random ID for oopses:
|
|
*/
|
|
static u64 oops_id;
|
|
|
|
static int init_oops_id(void)
|
|
{
|
|
if (!oops_id)
|
|
get_random_bytes(&oops_id, sizeof(oops_id));
|
|
else
|
|
oops_id++;
|
|
|
|
return 0;
|
|
}
|
|
late_initcall(init_oops_id);
|
|
|
|
void print_oops_end_marker(void)
|
|
{
|
|
init_oops_id();
|
|
pr_warn("---[ end trace %016llx ]---\n", (unsigned long long)oops_id);
|
|
}
|
|
|
|
/*
|
|
* Called when the architecture exits its oops handler, after printing
|
|
* everything.
|
|
*/
|
|
void oops_exit(void)
|
|
{
|
|
do_oops_enter_exit();
|
|
print_oops_end_marker();
|
|
kmsg_dump(KMSG_DUMP_OOPS);
|
|
}
|
|
|
|
struct warn_args {
|
|
const char *fmt;
|
|
va_list args;
|
|
};
|
|
|
|
void __warn(const char *file, int line, void *caller, unsigned taint,
|
|
struct pt_regs *regs, struct warn_args *args)
|
|
{
|
|
disable_trace_on_warning();
|
|
|
|
if (args)
|
|
pr_warn(CUT_HERE);
|
|
|
|
if (file)
|
|
pr_warn("WARNING: CPU: %d PID: %d at %s:%d %pS\n",
|
|
raw_smp_processor_id(), current->pid, file, line,
|
|
caller);
|
|
else
|
|
pr_warn("WARNING: CPU: %d PID: %d at %pS\n",
|
|
raw_smp_processor_id(), current->pid, caller);
|
|
|
|
if (args)
|
|
vprintk(args->fmt, args->args);
|
|
|
|
if (panic_on_warn) {
|
|
/*
|
|
* This thread may hit another WARN() in the panic path.
|
|
* Resetting this prevents additional WARN() from panicking the
|
|
* system on this thread. Other threads are blocked by the
|
|
* panic_mutex in panic().
|
|
*/
|
|
panic_on_warn = 0;
|
|
panic("panic_on_warn set ...\n");
|
|
}
|
|
|
|
print_modules();
|
|
|
|
if (regs)
|
|
show_regs(regs);
|
|
else
|
|
dump_stack();
|
|
|
|
print_irqtrace_events(current);
|
|
|
|
print_oops_end_marker();
|
|
|
|
/* Just a warning, don't kill lockdep. */
|
|
add_taint(taint, LOCKDEP_STILL_OK);
|
|
}
|
|
|
|
#ifdef WANT_WARN_ON_SLOWPATH
|
|
void warn_slowpath_fmt(const char *file, int line, const char *fmt, ...)
|
|
{
|
|
struct warn_args args;
|
|
|
|
args.fmt = fmt;
|
|
va_start(args.args, fmt);
|
|
__warn(file, line, __builtin_return_address(0), TAINT_WARN, NULL,
|
|
&args);
|
|
va_end(args.args);
|
|
}
|
|
EXPORT_SYMBOL(warn_slowpath_fmt);
|
|
|
|
void warn_slowpath_fmt_taint(const char *file, int line,
|
|
unsigned taint, const char *fmt, ...)
|
|
{
|
|
struct warn_args args;
|
|
|
|
args.fmt = fmt;
|
|
va_start(args.args, fmt);
|
|
__warn(file, line, __builtin_return_address(0), taint, NULL, &args);
|
|
va_end(args.args);
|
|
}
|
|
EXPORT_SYMBOL(warn_slowpath_fmt_taint);
|
|
|
|
void warn_slowpath_null(const char *file, int line)
|
|
{
|
|
pr_warn(CUT_HERE);
|
|
__warn(file, line, __builtin_return_address(0), TAINT_WARN, NULL, NULL);
|
|
}
|
|
EXPORT_SYMBOL(warn_slowpath_null);
|
|
#else
|
|
void __warn_printk(const char *fmt, ...)
|
|
{
|
|
va_list args;
|
|
|
|
pr_warn(CUT_HERE);
|
|
|
|
va_start(args, fmt);
|
|
vprintk(fmt, args);
|
|
va_end(args);
|
|
}
|
|
EXPORT_SYMBOL(__warn_printk);
|
|
#endif
|
|
|
|
#ifdef CONFIG_BUG
|
|
|
|
/* Support resetting WARN*_ONCE state */
|
|
|
|
static int clear_warn_once_set(void *data, u64 val)
|
|
{
|
|
generic_bug_clear_once();
|
|
memset(__start_once, 0, __end_once - __start_once);
|
|
return 0;
|
|
}
|
|
|
|
DEFINE_SIMPLE_ATTRIBUTE(clear_warn_once_fops,
|
|
NULL,
|
|
clear_warn_once_set,
|
|
"%lld\n");
|
|
|
|
static __init int register_warn_debugfs(void)
|
|
{
|
|
/* Don't care about failure */
|
|
debugfs_create_file("clear_warn_once", 0200, NULL,
|
|
NULL, &clear_warn_once_fops);
|
|
return 0;
|
|
}
|
|
|
|
device_initcall(register_warn_debugfs);
|
|
#endif
|
|
|
|
#ifdef CONFIG_STACKPROTECTOR
|
|
|
|
/*
|
|
* Called when gcc's -fstack-protector feature is used, and
|
|
* gcc detects corruption of the on-stack canary value
|
|
*/
|
|
__visible void __stack_chk_fail(void)
|
|
{
|
|
panic("stack-protector: Kernel stack is corrupted in: %pB",
|
|
__builtin_return_address(0));
|
|
}
|
|
EXPORT_SYMBOL(__stack_chk_fail);
|
|
|
|
#endif
|
|
|
|
#ifdef CONFIG_ARCH_HAS_REFCOUNT
|
|
void refcount_error_report(struct pt_regs *regs, const char *err)
|
|
{
|
|
WARN_RATELIMIT(1, "refcount_t %s at %pB in %s[%d], uid/euid: %u/%u\n",
|
|
err, (void *)instruction_pointer(regs),
|
|
current->comm, task_pid_nr(current),
|
|
from_kuid_munged(&init_user_ns, current_uid()),
|
|
from_kuid_munged(&init_user_ns, current_euid()));
|
|
}
|
|
#endif
|
|
|
|
core_param(panic, panic_timeout, int, 0644);
|
|
core_param(pause_on_oops, pause_on_oops, int, 0644);
|
|
core_param(panic_on_warn, panic_on_warn, int, 0644);
|
|
core_param(crash_kexec_post_notifiers, crash_kexec_post_notifiers, bool, 0644);
|
|
|
|
static int __init oops_setup(char *s)
|
|
{
|
|
if (!s)
|
|
return -EINVAL;
|
|
if (!strcmp(s, "panic"))
|
|
panic_on_oops = 1;
|
|
return 0;
|
|
}
|
|
early_param("oops", oops_setup);
|