Current SW limit is not matching the HW limit, update
limit to align with the available HW limit.
Change-Id: I6e221136142785a98e3cd378915b2139904f1551
Signed-off-by: Santosh Mardi <gsantosh@codeaurora.org>
The sample_ms should never be larger than the devfreq polling
interval. If userspace tries to configure this invalid
configuration, return an error.
Devfreq polling interval should be always greater then the
sample_ms add check in the governor interval event to update
the polling interval accordingly.
Change-Id: I2d07c95668a7fc8e3b2f16e49448ad2e3da8785c
Signed-off-by: Santosh Mardi <gsantosh@codeaurora.org>
[avajid@codeaurora.org: Replaced snprintf with scnprintf]
Signed-off-by: Amir Vajid <avajid@codeaurora.org>
The memlat governor suspend/resume callbacks always call devfreq_monitor
suspend/resume functions. The devfreq_monitor suspend/resume functions
run with the assumption that we had started devfreq->work and do a sync
wait to cancel it. However, when should_ignore_df_monitor flag is set,
memlat relies on its own workqueue and devfreq->work is never started.
Cancelling a timer that was never started leads to a crash. Fix this by
only calling devfreq_monitor suspend/resume functions when the
should_ignore_df_monitor flag is not set.
Change-Id: Ie4aff96b6b845f4f5424652943405a572b91b8ca
Signed-off-by: Amir Vajid <avajid@codeaurora.org>
* refs/heads/tmp-813bf83:
ANDROID: update abi for previous revert
Revert "BACKPORT: perf_event: Add support for LSM and SELinux checks"
Linux 5.4.9
mm/hugetlb: defer freeing of huge pages if in non-task context
hsr: fix a race condition in node list insertion and deletion
hsr: fix error handling routine in hsr_dev_finalize()
hsr: avoid debugfs warning message when module is remove
net: annotate lockless accesses to sk->sk_pacing_shift
perf/x86/intel/bts: Fix the use of page_private()
efi: Don't attempt to map RCI2 config table if it doesn't exist
lib/ubsan: don't serialize UBSAN report
xen/blkback: Avoid unmapping unmapped grant pages
mm/sparse.c: mark populate_section_memmap as __meminit
s390/smp: fix physical to logical CPU map for SMT
Btrfs: only associate the locked page with one async_chunk struct
btrfs: get rid of unique workqueue helper functions
ubifs: ubifs_tnc_start_commit: Fix OOB in layout_in_gaps
net: add annotations on hh->hh_len lockless accesses
xfs: periodically yield scrub threads to the scheduler
drm/i915/execlists: Fix annotation for decoupling virtual request
ath9k_htc: Discard undersized packets
ath9k_htc: Modify byte order for an error message
fix compat handling of FICLONERANGE, FIDEDUPERANGE and FS_IOC_FIEMAP
fs: cifs: Fix atime update check vs mtime
cifs: Fix lookup of root ses in DFS referral cache
tty: serial: msm_serial: Fix lockup for sysrq and oops
phy: renesas: rcar-gen3-usb2: Use platform_get_irq_optional() for optional irq
arm64: dts: meson: odroid-c2: Disable usb_otg bus to avoid power failed warning
dt-bindings: clock: renesas: rcar-usb2-clock-sel: Fix typo in example
media: usb: fix memory leak in af9005_identify_state
regulator: ab8500: Remove AB8505 USB regulator
media: flexcop-usb: ensure -EIO is returned on error condition
arm64: dts: meson-gxm-khadas-vim2: fix uart_A bluetooth node
arm64: dts: meson-gxl-s905x-khadas-vim: fix uart_A bluetooth node
Bluetooth: Fix memory leak in hci_connect_le_scan
Bluetooth: delete a stray unlock
Bluetooth: btusb: fix PM leak in error case of setup
powerpc/mm: Mark get_slice_psize() & slice_addr_is_low() as notrace
regulator: axp20x: Fix AXP22x ELDO2 regulator enable bitmask
spi: uniphier: Fix FIFO threshold
regulator: bd70528: Remove .set_ramp_delay for bd70528_ldo_ops
regulator: axp20x: Fix axp20x_set_ramp_delay
watchdog: tqmx86_wdt: Fix build error
net, sysctl: Fix compiler warning when only cBPF is present
netfilter: nf_queue: enqueue skbs with NULL dst
platform/x86: pmc_atom: Add Siemens CONNECT X300 to critclk_systems DMI table
xfs: don't check for AG deadlock for realtime files in bunmapi
firmware: arm_scmi: Avoid double free in error flow
cifs: Fix potential softlockups while refreshing DFS cache
of: overlay: add_changeset_property() memory leak
iommu/vt-d: Remove incorrect PSI capability check
perf callchain: Fix segfault in thread__resolve_callchain_sample()
ACPI: sysfs: Change ACPI_MASKABLE_GPE_MAX to 0x100
kernel/module.c: wakeup processes in module_wq on module unload
net/sched: annotate lockless accesses to qdisc->empty
HID: i2c-hid: Reset ALPS touchpads on resume
powerpc: Chunk calls to flush_dcache_range in arch_*_memory
nfsd4: fix up replay_matches_cache()
arm64: dts: qcom: msm8998-clamshell: Remove retention idle state
sunrpc: fix crash when cache_head become valid before update
PM / devfreq: Check NULL governor in available_governors_show
drm/msm: include linux/sched/task.h
spi: spi-fsl-dspi: Fix 16-bit word order in 32-bit XSPI mode
ftrace: Avoid potential division by zero in function profiler
arm64: Revert support for execute-only user mappings
exit: panic before exit_mm() on global init exit
scsi: lpfc: Fix rpi release when deleting vport
ALSA: firewire-motu: Correct a typo in the clock proc string
ALSA: pcm: Yet another missing check of non-cached buffer type
ALSA: cs4236: fix error return comparison of an unsigned integer
gen_initramfs_list.sh: fix 'bad variable name' error
dmaengine: virt-dma: Fix access after free in vchan_complete()
apparmor: fix aa_xattrs_match() may sleep while holding a RCU lock
mm/gup: fix memory leak in __gup_benchmark_ioctl
io_uring: use current task creds instead of allocating a new one
samples/trace_printk: Wait for IRQ work to finish
tracing: Fix endianness bug in histogram trigger
tracing: Have the histogram compare functions convert to u64 first
tracing: Avoid memory leak in process_system_preds()
tracing: Fix lock inversion in trace_event_enable_tgid_record()
rseq/selftests: Fix: Namespace gettid() for compatibility with glibc 2.30
riscv: ftrace: correct the condition logic in function graph tracer
clocksource: riscv: add notrace to riscv_sched_clock
gpiolib: fix up emulated open drain outputs
gpio: xtensa: fix driver build
libata: Fix retrieving of active qcs
ata: ahci_brcm: BCM7425 AHCI requires AHCI_HFLAG_DELAY_ENGINE
ata: ahci_brcm: Add missing clock management during recovery
ata: ahci_brcm: Fix AHCI resources management
ata: libahci_platform: Export again ahci_platform_<en/dis>able_phys()
bpf: Fix precision tracking for unbounded scalars
compat_ioctl: block: handle BLKGETZONESZ/BLKGETNRZONES
compat_ioctl: block: handle BLKREPORTZONE/BLKRESETZONE
compat_ioctl: block: handle Persistent Reservations
Btrfs: fix infinite loop during nocow writeback due to race
dmaengine: dma-jz4780: Also break descriptor chains on JZ4725B
dmaengine: Fix access to uninitialized dma_slave_caps
selftests/seccomp: Catch garbage on SECCOMP_IOCTL_NOTIF_RECV
samples/seccomp: Zero out members based on seccomp_notif_sizes
seccomp: Check that seccomp_notif is zeroed out by the user
selftests/seccomp: Zero out seccomp_notif
locks: print unsigned ino in /proc/locks
gcc-plugins: make it possible to disable CONFIG_GCC_PLUGINS again
pstore/ram: Fix error-path memory leak in persistent_ram_new() callers
pstore/ram: Write new dumps to start of recycled zones
ocfs2: fix the crash due to call ocfs2_get_dlm_debug once less
mm/oom: fix pgtables units mismatch in Killed process message
mm: move_pages: return valid node id in status if the page is already on the target node
memcg: account security cred as well to kmemcg
mm/zsmalloc.c: fix the migrated zspage statistics.
mm/memory_hotplug: shrink zones when offlining memory
media: cec: check 'transmit_in_progress', not 'transmitting'
media: cec: avoid decrementing transmit_queue_sz if it is 0
media: cec: CEC 2.0-only bcast messages were ignored
media: pulse8-cec: fix lost cec_transmit_attempt_done() call
MIPS: Avoid VDSO ABI breakage due to global register variable
MIPS: BPF: eBPF JIT: check for MIPS ISA compliance in Kconfig
MIPS: BPF: Disable MIPS32 eBPF JIT
drm/amdgpu/smu: add metrics table lock for vega20 (v2)
drm/amdgpu/smu: add metrics table lock for navi (v2)
drm/amdgpu/smu: add metrics table lock for arcturus (v2)
drm/amdgpu/smu: add metrics table lock
drm/sun4i: hdmi: Remove duplicate cleanup calls
ALSA: hda/realtek - Add headset Mic no shutup for ALC283
ALSA: hda - Apply sync-write workaround to old Intel platforms, too
ALSA: usb-audio: set the interface format after resume on Dell WD19
ALSA: usb-audio: fix set_format altsetting sanity check
ALSA: ice1724: Fix sleep-in-atomic in Infrasonic Quartet support code
mm: drop mmap_sem before calling balance_dirty_pages() in write fault
block: add bio_truncate to fix guard_bio_eod
netfilter: nft_tproxy: Fix port selector on Big Endian
ALSA: hda - Downgrade error message for single-cmd fallback
taskstats: fix data-race
shmem: pin the file in shmem_fault() if mmap_sem is dropped
tcp: fix data-race in tcp_recvmsg()
ALSA: hda - fixup for the bass speaker on Lenovo Carbon X1 7th gen
PCI: Fix missing inline for pci_pr3_present()
ALSA: hda: Allow HDA to be runtime suspended when dGPU is not bound to a driver
PCI: Add a helper to check Power Resource Requirements _PR3 existence
ALSA: hda/realtek - Enable the bass speaker of ASUS UX431FLC
ALSA: hda/realtek - Add Bass Speaker and fixed dac for bass speaker
PM / hibernate: memory_bm_find_bit(): Tighten node optimisation
xen/balloon: fix ballooned page accounting without hotplug enabled
xen-blkback: prevent premature module unload
IB/mlx5: Fix steering rule of drop and count
IB/mlx4: Follow mirror sequence of device add during device removal
RDMA/counter: Prevent auto-binding a QP which are not tracked with res
s390/cpum_sf: Avoid SBD overflow condition in irq handler
s390/cpum_sf: Adjust sampling interval to avoid hitting sample limits
md: raid1: check rdev before reference in raid1_sync_request func
raid5: need to set STRIPE_HANDLE for batch head
afs: Fix creation calls in the dynamic root to fail with EOPNOTSUPP
afs: Fix mountpoint parsing
net: make socket read/write_iter() honor IOCB_NOWAIT
usb: gadget: fix wrong endpoint desc
drm/nouveau/kms/nv50-: fix panel scaling
drm/nouveau: Fix drm-core using atomic code-paths on pre-nv50 hardware
drm/nouveau: Move the declaration of struct nouveau_conn_atom up a bit
staging/wlan-ng: add CRC32 dependency in Kconfig
scsi: iscsi: Avoid potential deadlock in iscsi_if_rx func
scsi: libsas: stop discovering if oob mode is disconnected
scsi: iscsi: qla4xxx: fix double free in probe
scsi: qla2xxx: Ignore PORT UPDATE after N2N PLOGI
scsi: qla2xxx: Don't defer relogin unconditonally
scsi: qla2xxx: Send Notify ACK after N2N PLOGI
scsi: qla2xxx: Configure local loop for N2N target
scsi: qla2xxx: Fix PLOGI payload and ELS IOCB dump length
scsi: qla2xxx: Don't call qlt_async_event twice
scsi: qla2xxx: Drop superfluous INIT_WORK of del_work
scsi: qla2xxx: Use explicit LOGO in target mode
scsi: lpfc: Fix memory leak on lpfc_bsg_write_ebuf_set func
rxe: correctly calculate iCRC for unaligned payloads
RDMA/cma: add missed unregister_pernet_subsys in init failure
afs: Fix SELinux setting security label on /afs
afs: Fix afs_find_server lookups for ipv4 peers
PM / devfreq: Don't fail devfreq_dev_release if not in list
PM / devfreq: Set scaling_max_freq to max on OPP notifier error
PM / devfreq: Fix devfreq_notifier_call returning errno
iio: adc: max9611: Fix too short conversion time delay
iio: st_accel: Fix unused variable warning
nvme/pci: Fix read queue count
nvme/pci: Fix write and poll queue types
drm/amd/display: update dispclk and dppclk vco frequency
drm/amd/display: Reset steer fifo before unblanking the stream
drm/amd/display: Change the delay time before enabling FEC
drm/amd/display: Fixed kernel panic when booting with DP-to-HDMI dongle
drm/amd/display: Map DSC resources 1-to-1 if numbers of OPPs and DSCs are equal
drm/amdgpu: add cache flush workaround to gfx8 emit_fence
drm/amdgpu: add header line for power profile on Arcturus
drm/amdgpu: add check before enabling/disabling broadcast mode
nvme-fc: fix double-free scenarios on hw queues
nvme_fc: add module to ops template to allow module references
drm/mcde: dsi: Fix invalid pointer dereference if panel cannot be found
ANDROID: update kernel ABI representation
BACKPORT: perf_event: Add support for LSM and SELinux checks
ANDROID: Update ABI representation
ANDROID: GKI: clk: Don't disable unused clocks with sync state support
ANDROID: GKI: clk: Add support for clock providers with sync state
ANDROID: GKI: driver core: Add dev_has_sync_state()
ANDROID: sdcardfs: fix -ENOENT lookup race issue
CHROMIUM: cgroups: relax permissions on moving tasks between cgroups
UPSTREAM: selinux: sidtab reverse lookup hash table
ANDROID: update abi for 5.4.8 release
Conflicts:
Documentation/devicetree/bindings
Documentation/devicetree/bindings/clock/renesas,rcar-usb2-clock-sel.txt
arch/arm64/mm/mmu.c
include/linux/clk-provider.h
Change-Id: I668e3fd58b4ad5db037f700b66f89cdf845094b5
Signed-off-by: Blagovest Kolenichev <bkolenichev@codeaurora.org>
This change reverts commit 5e33579a6a ("devfreq: Do not allow tunable
updates when device is suspended") and commit db4f4a0933 ("PM/devfreq:
Do not switch governors from sysfs when device is suspended").
Userspace updates to sysfs nodes like governor and polling_interval are
currently not allowed when there is a non-zero suspend count. This
requirement existed in the past due to hardware dependencies in some
devfreq drivers. However, these hardware dependencies should be handled
by the relevant devfreq drivers rather than the devfreq framework so
remove the suspend count checks in these devfreq framework sysfs APIs.
Change-Id: I8010b519d72784a6b90955acc7899c1a520aa7e7
Signed-off-by: Amir Vajid <avajid@codeaurora.org>
Register with CPU Hotplug and Idle notifiers so that memlat
gets notified when CPU is being hotplugged in/out or when CPU
enters Idle state. The perf events should be recreated when the
cpu is brought back online. Also do not update the counts when
the cpu is hotplugged out or when it enters Idle state.
Change-Id: I35a05be0a43a4519282d5787e6c87d92e5bec1de
Signed-off-by: Rama Aparna Mallavarapu <aparnam@codeaurora.org>
This reverts commit 4b5e726869.
There is no longer a need to enable BWMON clocks in the kernel
so remove this feature to cleanup the code.
Change-Id: I92493eb04b7d984060f9495a87572ecde3a6dab2
Signed-off-by: Amir Vajid <avajid@codeaurora.org>
Several devfreq governors print to kernel logs for each
device that registers. Update them to only print when
debugging is enabled.
Change-Id: Id7cf8c9ef70363cdfd4fc1fc72b109f28ab07288
Signed-off-by: Amir Vajid <avajid@codeaurora.org>
* refs/heads/tmp-9cdc723:
Revert "usb: dwc3: gadget: Fix logical condition"
Revert "FROMLIST: scsi: ufs-qcom: Adjust bus bandwidth voting and unvoting"
Linux 5.4.5
r8169: add missing RX enabling for WoL on RTL8125
net: mscc: ocelot: unregister the PTP clock on deinit
ionic: keep users rss hash across lif reset
xdp: obtain the mem_id mutex before trying to remove an entry.
page_pool: do not release pool until inflight == 0.
net/mlx5e: ethtool, Fix analysis of speed setting
net/mlx5e: Fix translation of link mode into speed
net/mlx5e: Fix freeing flow with kfree() and not kvfree()
net/mlx5e: Fix SFF 8472 eeprom length
act_ct: support asymmetric conntrack
net/mlx5e: Fix TXQ indices to be sequential
net: Fixed updating of ethertype in skb_mpls_push()
hsr: fix a NULL pointer dereference in hsr_dev_xmit()
Fixed updating of ethertype in function skb_mpls_pop
gre: refetch erspan header from skb->data after pskb_may_pull()
cls_flower: Fix the behavior using port ranges with hw-offload
net: sched: allow indirect blocks to bind to clsact in TC
net: core: rename indirect block ingress cb function
tcp: Protect accesses to .ts_recent_stamp with {READ,WRITE}_ONCE()
tcp: tighten acceptance of ACKs not matching a child socket
tcp: fix rejected syncookies due to stale timestamps
net: ipv6_stub: use ip6_dst_lookup_flow instead of ip6_dst_lookup
net: ipv6: add net argument to ip6_dst_lookup_flow
net/mlx5e: Query global pause state before setting prio2buffer
tipc: fix ordering of tipc module init and exit routine
tcp: md5: fix potential overestimation of TCP option space
openvswitch: support asymmetric conntrack
net/tls: Fix return values to avoid ENOTSUPP
net: thunderx: start phy before starting autonegotiation
net_sched: validate TCA_KIND attribute in tc_chain_tmplt_add()
net: sched: fix dump qlen for sch_mq/sch_mqprio with NOLOCK subqueues
net: ethernet: ti: cpsw: fix extra rx interrupt
net: dsa: fix flow dissection on Tx path
net: bridge: deny dev_set_mac_address() when unregistering
mqprio: Fix out-of-bounds access in mqprio_dump
inet: protect against too small mtu values.
ANDROID: add initial ABI whitelist for android-5.4
ANDROID: abi update for 5.4.4
ANDROID: mm: Throttle rss_stat tracepoint
FROMLIST: vsprintf: Inline call to ptr_to_hashval
UPSTREAM: rss_stat: Add support to detect RSS updates of external mm
UPSTREAM: mm: emit tracepoint when RSS changes
Linux 5.4.4
EDAC/ghes: Do not warn when incrementing refcount on 0
r8169: fix rtl_hw_jumbo_disable for RTL8168evl
workqueue: Fix missing kfree(rescuer) in destroy_workqueue()
blk-mq: make sure that line break can be printed
ext4: fix leak of quota reservations
ext4: fix a bug in ext4_wait_for_tail_page_commit
splice: only read in as much information as there is pipe buffer space
rtc: disable uie before setting time and enable after
USB: dummy-hcd: increase max number of devices to 32
powerpc: Define arch_is_kernel_initmem_freed() for lockdep
mm/shmem.c: cast the type of unmap_start to u64
s390/kaslr: store KASLR offset for early dumps
s390/smp,vdso: fix ASCE handling
firmware: qcom: scm: Ensure 'a0' status code is treated as signed
ext4: work around deleting a file with i_nlink == 0 safely
mm: memcg/slab: wait for !root kmem_cache refcnt killing on root kmem_cache destruction
mfd: rk808: Fix RK818 ID template
mm, memfd: fix COW issue on MAP_PRIVATE and F_SEAL_FUTURE_WRITE mappings
powerpc: Fix vDSO clock_getres()
powerpc: Avoid clang warnings around setjmp and longjmp
omap: pdata-quirks: remove openpandora quirks for mmc3 and wl1251
omap: pdata-quirks: revert pandora specific gpiod additions
iio: ad7949: fix channels mixups
iio: ad7949: kill pointless "readback"-handling code
Revert "scsi: qla2xxx: Fix memory leak when sending I/O fails"
scsi: qla2xxx: Fix a dma_pool_free() call
scsi: qla2xxx: Fix SRB leak on switch command timeout
reiserfs: fix extended attributes on the root directory
ext4: Fix credit estimate for final inode freeing
quota: fix livelock in dquot_writeback_dquots
seccomp: avoid overflow in implicit constant conversion
ext2: check err when partial != NULL
quota: Check that quota is not dirty before release
video/hdmi: Fix AVI bar unpack
powerpc/xive: Skip ioremap() of ESB pages for LSI interrupts
powerpc: Allow flush_icache_range to work across ranges >4GB
powerpc/xive: Prevent page fault issues in the machine crash handler
powerpc: Allow 64bit VDSO __kernel_sync_dicache to work across ranges >4GB
coresight: Serialize enabling/disabling a link device.
stm class: Lose the protocol driver when dropping its reference
ppdev: fix PPGETTIME/PPSETTIME ioctls
RDMA/core: Fix ib_dma_max_seg_size()
ARM: dts: omap3-tao3530: Fix incorrect MMC card detection GPIO polarity
mmc: host: omap_hsmmc: add code for special init of wl1251 to get rid of pandora_wl1251_init_card
pinctrl: samsung: Fix device node refcount leaks in S3C64xx wakeup controller init
pinctrl: samsung: Fix device node refcount leaks in init code
pinctrl: samsung: Fix device node refcount leaks in S3C24xx wakeup controller init
pinctrl: samsung: Fix device node refcount leaks in Exynos wakeup controller init
pinctrl: samsung: Add of_node_put() before return in error path
pinctrl: armada-37xx: Fix irq mask access in armada_37xx_irq_set_type()
pinctrl: rza2: Fix gpio name typos
ACPI: PM: Avoid attaching ACPI PM domain to certain devices
ACPI: EC: Rework flushing of pending work
ACPI: bus: Fix NULL pointer check in acpi_bus_get_private_data()
ACPI: OSL: only free map once in osl.c
ACPI / hotplug / PCI: Allocate resources directly under the non-hotplug bridge
ACPI: LPSS: Add dmi quirk for skipping _DEP check for some device-links
ACPI: LPSS: Add LNXVIDEO -> BYT I2C1 to lpss_device_links
ACPI: LPSS: Add LNXVIDEO -> BYT I2C7 to lpss_device_links
ACPI / utils: Move acpi_dev_get_first_match_dev() under CONFIG_ACPI
ALSA: hda/realtek - Line-out jack doesn't work on a Dell AIO
ALSA: oxfw: fix return value in error path of isochronous resources reservation
ALSA: fireface: fix return value in error path of isochronous resources reservation
cpufreq: powernv: fix stack bloat and hard limit on number of CPUs
PM / devfreq: Lock devfreq in trans_stat_show
intel_th: pci: Add Tiger Lake CPU support
intel_th: pci: Add Ice Lake CPU support
intel_th: Fix a double put_device() in error path
powerpc/perf: Disable trace_imc pmu
drm/panfrost: Open/close the perfcnt BO
perf tests: Fix out of bounds memory access
erofs: zero out when listxattr is called with no xattr
cpuidle: use first valid target residency as poll time
cpuidle: teo: Fix "early hits" handling for disabled idle states
cpuidle: teo: Consider hits and misses metrics of disabled states
cpuidle: teo: Rename local variable in teo_select()
cpuidle: teo: Ignore disabled idle states that are too deep
cpuidle: Do not unset the driver if it is there already
media: cec.h: CEC_OP_REC_FLAG_ values were swapped
media: radio: wl1273: fix interrupt masking on release
media: bdisp: fix memleak on release
media: vimc: sen: remove unused kthread_sen field
media: hantro: Fix picture order count table enable
media: hantro: Fix motion vectors usage condition
media: hantro: Fix s_fmt for dynamic resolution changes
s390/mm: properly clear _PAGE_NOEXEC bit when it is not supported
ar5523: check NULL before memcpy() in ar5523_cmd()
wil6210: check len before memcpy() calls
cgroup: pids: use atomic64_t for pids->limit
blk-mq: avoid sysfs buffer overflow with too many CPU cores
md: improve handling of bio with REQ_PREFLUSH in md_flush_request()
ASoC: fsl_audmix: Add spin lock to protect tdms
ASoC: Jack: Fix NULL pointer dereference in snd_soc_jack_report
ASoC: rt5645: Fixed typo for buddy jack support.
ASoC: rt5645: Fixed buddy jack support.
workqueue: Fix pwq ref leak in rescuer_thread()
workqueue: Fix spurious sanity check failures in destroy_workqueue()
dm zoned: reduce overhead of backing device checks
dm writecache: handle REQ_FUA
hwrng: omap - Fix RNG wait loop timeout
ovl: relax WARN_ON() on rename to self
ovl: fix corner case of non-unique st_dev;st_ino
ovl: fix lookup failure on multi lower squashfs
lib: raid6: fix awk build warnings
rtlwifi: rtl8192de: Fix missing enable interrupt flag
rtlwifi: rtl8192de: Fix missing callback that tests for hw release of buffer
rtlwifi: rtl8192de: Fix missing code to retrieve RX buffer address
btrfs: record all roots for rename exchange on a subvol
Btrfs: send, skip backreference walking for extents with many references
btrfs: Remove btrfs_bio::flags member
btrfs: Avoid getting stuck during cyclic writebacks
Btrfs: fix negative subv_writers counter and data space leak after buffered write
Btrfs: fix metadata space leak on fixup worker failure to set range as delalloc
btrfs: use refcount_inc_not_zero in kill_all_nodes
btrfs: use btrfs_block_group_cache_done in update_block_group
btrfs: check page->mapping when loading free space cache
iwlwifi: pcie: fix support for transmitting SKBs with fraglist
usb: typec: fix use after free in typec_register_port()
phy: renesas: rcar-gen3-usb2: Fix sysfs interface of "role"
usb: dwc3: ep0: Clear started flag on completion
usb: dwc3: gadget: Clear started flag for non-IOC
usb: dwc3: gadget: Fix logical condition
usb: dwc3: pci: add ID for the Intel Comet Lake -H variant
virtio-balloon: fix managed page counts when migrating pages between zones
virt_wifi: fix use-after-free in virt_wifi_newlink()
mtd: rawnand: Change calculating of position page containing BBM
mtd: spear_smi: Fix Write Burst mode
brcmfmac: disable PCIe interrupts before bus reset
EDAC/altera: Use fast register IO for S10 IRQs
tpm: Switch to platform_get_irq_optional()
tpm: add check after commands attribs tab allocation
usb: mon: Fix a deadlock in usbmon between mmap and read
usb: core: urb: fix URB structure initialization function
USB: adutux: fix interface sanity check
usb: roles: fix a potential use after free
USB: serial: io_edgeport: fix epic endpoint lookup
USB: idmouse: fix interface sanity checks
USB: atm: ueagle-atm: add missing endpoint check
iio: adc: ad7124: Enable internal reference
iio: adc: ad7606: fix reading unnecessary data from device
iio: imu: inv_mpu6050: fix temperature reporting using bad unit
iio: humidity: hdc100x: fix IIO_HUMIDITYRELATIVE channel reporting
iio: adis16480: Fix scales factors
iio: imu: st_lsm6dsx: fix ODR check in st_lsm6dsx_write_raw
iio: adis16480: Add debugfs_reg_access entry
ARM: dts: pandora-common: define wl1251 as child node of mmc3
usb: common: usb-conn-gpio: Don't log an error on probe deferral
interconnect: qcom: qcs404: Walk the list safely on node removal
interconnect: qcom: sdm845: Walk the list safely on node removal
xhci: make sure interrupts are restored to correct state
xhci: handle some XHCI_TRUST_TX_LENGTH quirks cases as default behaviour.
xhci: Increase STS_HALT timeout in xhci_suspend()
xhci: fix USB3 device initiated resume race with roothub autosuspend
xhci: Fix memory leak in xhci_add_in_port()
usb: xhci: only set D3hot for pci device
staging: gigaset: add endpoint-type sanity check
staging: gigaset: fix illegal free on probe errors
staging: gigaset: fix general protection fault on probe
staging: vchiq: call unregister_chrdev_region() when driver registration fails
staging: rtl8712: fix interface sanity check
staging: rtl8188eu: fix interface sanity check
staging: exfat: fix multiple definition error of `rename_file'
binder: fix incorrect calculation for num_valid
usb: host: xhci-tegra: Correct phy enable sequence
usb: Allow USB device to be warm reset in suspended state
USB: documentation: flags on usb-storage versus UAS
USB: uas: heed CAPACITY_HEURISTICS
USB: uas: honor flag to avoid CAPACITY16
media: venus: remove invalid compat_ioctl32 handler
ceph: fix compat_ioctl for ceph_dir_operations
compat_ioctl: add compat_ptr_ioctl()
scsi: qla2xxx: Fix memory leak when sending I/O fails
scsi: qla2xxx: Fix double scsi_done for abort path
scsi: qla2xxx: Fix driver unload hang
scsi: qla2xxx: Do command completion on abort timeout
scsi: zfcp: trace channel log even for FCP command responses
scsi: lpfc: Fix bad ndlp ptr in xri aborted handling
Revert "nvme: Add quirk for Kingston NVME SSD running FW E8FK11.T"
nvme: Namepace identification descriptor list is optional
usb: gadget: pch_udc: fix use after free
usb: gadget: configfs: Fix missing spin_lock_init()
BACKPORT: FROMLIST: scsi: ufs: Export query request interfaces
ANDROID: update abi with unbindable_ports sysctl
BACKPORT: FROMLIST: net: introduce ip_local_unbindable_ports sysctl
ANDROID: update abi for 5.4.3 merge
ANDROID: update abi_gki_aarch64.xml for ion, drm changes
ANDROID: drivers: gpu: drm: export drm_mode_convert_umode symbol
ANDROID: ion: flush cache before exporting non-cached buffers
Linux 5.4.3
kselftest: Fix NULL INSTALL_PATH for TARGETS runlist
perf script: Fix invalid LBR/binary mismatch error
EDAC/ghes: Fix locking and memory barrier issues
watchdog: aspeed: Fix clock behaviour for ast2600
drm/mcde: Fix an error handling path in 'mcde_probe()'
md/raid0: Fix an error message in raid0_make_request()
cpufreq: imx-cpufreq-dt: Correct i.MX8MN's default speed grade value
ALSA: hda - Fix pending unsol events at shutdown
KVM: x86: fix out-of-bounds write in KVM_GET_EMULATED_CPUID (CVE-2019-19332)
binder: Handle start==NULL in binder_update_page_range()
binder: Prevent repeated use of ->mmap() via NULL mapping
binder: Fix race between mmap() and binder_alloc_print_pages()
Revert "serial/8250: Add support for NI-Serial PXI/PXIe+485 devices"
vcs: prevent write access to vcsu devices
thermal: Fix deadlock in thermal thermal_zone_device_check
iomap: Fix pipe page leakage during splicing
bdev: Refresh bdev size for disks without partitioning
bdev: Factor out bdev revalidation into a common helper
rfkill: allocate static minor
RDMA/qib: Validate ->show()/store() callbacks before calling them
can: ucan: fix non-atomic allocation in completion handler
spi: Fix NULL pointer when setting SPI_CS_HIGH for GPIO CS
spi: Fix SPI_CS_HIGH setting when using native and GPIO CS
spi: atmel: Fix CS high support
spi: stm32-qspi: Fix kernel oops when unbinding driver
spi: spi-fsl-qspi: Clear TDH bits in FLSHCR register
crypto: user - fix memory leak in crypto_reportstat
crypto: user - fix memory leak in crypto_report
crypto: ecdh - fix big endian bug in ECC library
crypto: ccp - fix uninitialized list head
crypto: geode-aes - switch to skcipher for cbc(aes) fallback
crypto: af_alg - cast ki_complete ternary op to int
crypto: atmel-aes - Fix IV handling when req->nbytes < ivsize
crypto: crypto4xx - fix double-free in crypto4xx_destroy_sdr
KVM: x86: Grab KVM's srcu lock when setting nested state
KVM: x86: Remove a spurious export of a static function
KVM: x86: fix presentation of TSX feature in ARCH_CAPABILITIES
KVM: x86: do not modify masked bits of shared MSRs
KVM: arm/arm64: vgic: Don't rely on the wrong pending table
KVM: nVMX: Always write vmcs02.GUEST_CR3 during nested VM-Enter
KVM: PPC: Book3S HV: XIVE: Set kvm->arch.xive when VPs are allocated
KVM: PPC: Book3S HV: XIVE: Fix potential page leak on error path
KVM: PPC: Book3S HV: XIVE: Free previous EQ page when setting up a new one
arm64: dts: exynos: Revert "Remove unneeded address space mapping for soc node"
arm64: Validate tagged addresses in access_ok() called from kernel threads
drm/i810: Prevent underflow in ioctl
drm: damage_helper: Fix race checking plane->state->fb
drm/msm: fix memleak on release
jbd2: Fix possible overflow in jbd2_log_space_left()
kernfs: fix ino wrap-around detection
nfsd: restore NFSv3 ACL support
nfsd: Ensure CLONE persists data and metadata changes to the target file
can: slcan: Fix use-after-free Read in slcan_open
tty: vt: keyboard: reject invalid keycodes
CIFS: Fix SMB2 oplock break processing
CIFS: Fix NULL-pointer dereference in smb2_push_mandatory_locks
x86/PCI: Avoid AMD FCH XHCI USB PME# from D0 defect
x86/mm/32: Sync only to VMALLOC_END in vmalloc_sync_all()
media: rc: mark input device as pointing stick
Input: Fix memory leak in psxpad_spi_probe
coresight: etm4x: Fix input validation for sysfs.
Input: goodix - add upside-down quirk for Teclast X89 tablet
Input: synaptics-rmi4 - don't increment rmiaddr for SMBus transfers
Input: synaptics-rmi4 - re-enable IRQs in f34v7_do_reflash
Input: synaptics - switch another X1 Carbon 6 to RMI/SMbus
soc: mediatek: cmdq: fixup wrong input order of write api
ALSA: hda: Modify stream stripe mask only when needed
ALSA: hda - Add mute led support for HP ProBook 645 G4
ALSA: pcm: oss: Avoid potential buffer overflows
ALSA: hda/realtek - Fix inverted bass GPIO pin on Acer 8951G
ALSA: hda/realtek - Dell headphone has noise on unmute for ALC236
ALSA: hda/realtek - Enable the headset-mic on a Xiaomi's laptop
ALSA: hda/realtek - Enable internal speaker of ASUS UX431FLC
SUNRPC: Avoid RPC delays when exiting suspend
io_uring: ensure req->submit is copied when req is deferred
io_uring: fix missing kmap() declaration on powerpc
fuse: verify attributes
fuse: verify write return
fuse: verify nlink
fuse: fix leak of fuse_io_priv
io_uring: transform send/recvmsg() -ERESTARTSYS to -EINTR
io_uring: fix dead-hung for non-iter fixed rw
mwifiex: Re-work support for SDIO HW reset
serial: ifx6x60: add missed pm_runtime_disable
serial: 8250_dw: Avoid double error messaging when IRQ absent
serial: stm32: fix clearing interrupt error flags
serial: serial_core: Perform NULL checks for break_ctl ops
serial: pl011: Fix DMA ->flush_buffer()
tty: serial: msm_serial: Fix flow control
tty: serial: fsl_lpuart: use the sg count from dma_map_sg
serial: 8250-mtk: Use platform_get_irq_optional() for optional irq
usb: gadget: u_serial: add missing port entry locking
staging/octeon: Use stubs for MIPS && !CAVIUM_OCTEON_SOC
mailbox: tegra: Fix superfluous IRQ error message
time: Zero the upper 32-bits in __kernel_timespec on 32-bit
lp: fix sparc64 LPSETTIMEOUT ioctl
sparc64: implement ioremap_uc
perf scripts python: exported-sql-viewer.py: Fix use of TRUE with SQLite
arm64: tegra: Fix 'active-low' warning for Jetson Xavier regulator
arm64: tegra: Fix 'active-low' warning for Jetson TX1 regulator
rsi: release skb if rsi_prepare_beacon fails
FROMLIST: scsi: ufs: Fix ufshcd_hold() caused scheduling while atomic
FROMLIST: scsi: ufs: Add dev ref clock gating wait time support
FROMLIST: scsi: ufs-qcom: Adjust bus bandwidth voting and unvoting
FROMLIST: scsi: ufs: Remove the check before call setup clock notify vops
FROMLIST: scsi: ufs: set load before setting voltage in regulators
FROMLIST: scsi: ufs: Flush exception event before suspend
FROMLIST: scsi: ufs: Do not rely on prefetched data
FROMLIST: scsi: ufs: Fix up clock scaling
FROMGIT: scsi: ufs: Do not free irq in suspend
FROMGIT: scsi: ufs: Do not clear the DL layer timers
FROMGIT: scsi: ufs: Release clock if DMA map fails
FROMGIT: scsi: ufs: Use DBD setting in mode sense
FROMGIT: scsi: core: Adjust DBD setting in MODE SENSE for caching mode page per LLD
FROMGIT: scsi: ufs: Complete pending requests in host reset and restore path
FROMGIT: scsi: ufs: Avoid messing up the compl_time_stamp of lrbs
FROMGIT: scsi: ufs: Update VCCQ2 and VCCQ min/max voltage hard codes
FROMGIT: scsi: ufs: Recheck bkops level if bkops is disabled
ANDROID: update abi_gki_aarch64.xml for LTO, CFI, and SCS
ANDROID: gki_defconfig: enable LTO, CFI, and SCS
ANDROID: update abi_gki_aarch64.xml for CONFIG_GNSS
ANDROID: cuttlefish_defconfig: Enable CONFIG_GNSS
ANDROID: gki_defconfig: enable HID configs
UPSTREAM: arm64: Validate tagged addresses in access_ok() called from kernel threads
ANDROID: kbuild: limit LTO inlining
ANDROID: kbuild: merge module sections with LTO
ANDROID: f2fs: fix possible merge of unencrypted with encrypted I/O
ANDROID: gki_defconfig: Enable UCLAMP by default
ANDROID: make sure proc mount options are applied
ANDROID: sound: usb: Add helper APIs to enable audio stream
ANDROID: Update ABI representation
ANDROID: Don't base allmodconfig on gki_defconfig
ANDROID: Disable UNWINDER_ORC for allmodconfig
ANDROID: ASoC: Fix 'allmodconfig' build break
Linux 5.4.2
platform/x86: hp-wmi: Fix ACPI errors caused by passing 0 as input size
platform/x86: hp-wmi: Fix ACPI errors caused by too small buffer
HID: core: check whether Usage Page item is after Usage ID items
crypto: talitos - Fix build error by selecting LIB_DES
Revert "jffs2: Fix possible null-pointer dereferences in jffs2_add_frag_to_fragtree()"
ext4: add more paranoia checking in ext4_expand_extra_isize handling
r8169: fix resume on cable plug-in
r8169: fix jumbo configuration for RTL8168evl
selftests: pmtu: use -oneline for ip route list cache
tipc: fix link name length check
selftests: bpf: correct perror strings
selftests: bpf: test_sockmap: handle file creation failures gracefully
net/tls: use sg_next() to walk sg entries
net/tls: remove the dead inplace_crypto code
selftests/tls: add a test for fragmented messages
net: skmsg: fix TLS 1.3 crash with full sk_msg
net/tls: free the record on encryption error
net/tls: take into account that bpf_exec_tx_verdict() may free the record
openvswitch: remove another BUG_ON()
openvswitch: drop unneeded BUG_ON() in ovs_flow_cmd_build_info()
sctp: cache netns in sctp_ep_common
slip: Fix use-after-free Read in slip_open
sctp: Fix memory leak in sctp_sf_do_5_2_4_dupcook
openvswitch: fix flow command message size
net: sched: fix `tc -s class show` no bstats on class with nolock subqueues
net: psample: fix skb_over_panic
net: macb: add missed tasklet_kill
net: dsa: sja1105: fix sja1105_parse_rgmii_delays()
mdio_bus: don't use managed reset-controller
macvlan: schedule bc_work even if error
gve: Fix the queue page list allocated pages count
x86/fpu: Don't cache access to fpu_fpregs_owner_ctx
thunderbolt: Power cycle the router if NVM authentication fails
mei: me: add comet point V device id
mei: bus: prefix device names on bus with the bus name
USB: serial: ftdi_sio: add device IDs for U-Blox C099-F9P
staging: rtl8723bs: Add 024c:0525 to the list of SDIO device-ids
staging: rtl8723bs: Drop ACPI device ids
staging: rtl8192e: fix potential use after free
staging: wilc1000: fix illegal memory access in wilc_parse_join_bss_param()
usb: dwc2: use a longer core rest timeout in dwc2_core_reset()
driver core: platform: use the correct callback type for bus_find_device
crypto: inside-secure - Fix stability issue with Macchiatobin
net: disallow ancillary data for __sys_{send,recv}msg_file()
net: separate out the msghdr copy from ___sys_{send,recv}msg()
io_uring: async workers should inherit the user creds
ANDROID: Update ABI representation
UPSTREAM: of: property: Add device link support for interrupt-parent, dmas and -gpio(s)
UPSTREAM: of: property: Fix the semantics of of_is_ancestor_of()
UPSTREAM: i2c: of: Populate fwnode in of_i2c_get_board_info()
UPSTREAM: regulator: core: Don't try to remove device links if add failed
UPSTREAM: driver core: Clarify documentation for fwnode_operations.add_links()
ANDROID: Update ABI representation
ANDROID: gki_defconfig: IIO=y
ANDROID: Update ABI representation
ANDROID: ASoC: core - add hostless DAI support
ANDROID: gki_defconfig: =m's applied for virtio configs in arm64
ANDROID: Update ABI representation after 5.4.1 merge
Linux 5.4.1
KVM: PPC: Book3S HV: Flush link stack on guest exit to host kernel
powerpc/book3s64: Fix link stack flush on context switch
staging: comedi: usbduxfast: usbduxfast_ai_cmdtest rounding error
USB: serial: option: add support for Foxconn T77W968 LTE modules
USB: serial: option: add support for DW5821e with eSIM support
USB: serial: mos7840: fix remote wakeup
USB: serial: mos7720: fix remote wakeup
USB: serial: mos7840: add USB ID to support Moxa UPort 2210
appledisplay: fix error handling in the scheduled work
USB: chaoskey: fix error case of a timeout
usb-serial: cp201x: support Mark-10 digital force gauge
usbip: Fix uninitialized symbol 'nents' in stub_recv_cmd_submit()
usbip: tools: fix fd leakage in the function of read_attr_usbip_status
USBIP: add config dependency for SGL_ALLOC
ALSA: hda - Disable audio component for legacy Nvidia HDMI codecs
media: mceusb: fix out of bounds read in MCE receiver buffer
media: imon: invalid dereference in imon_touch_event
media: cxusb: detect cxusb_ctrl_msg error in query
media: b2c2-flexcop-usb: add sanity checking
media: uvcvideo: Fix error path in control parsing failure
futex: Prevent exit livelock
futex: Provide distinct return value when owner is exiting
futex: Add mutex around futex exit
futex: Provide state handling for exec() as well
futex: Sanitize exit state handling
futex: Mark the begin of futex exit explicitly
futex: Set task::futex_state to DEAD right after handling futex exit
futex: Split futex_mm_release() for exit/exec
exit/exec: Seperate mm_release()
futex: Replace PF_EXITPIDONE with a state
futex: Move futex exit handling into futex code
cpufreq: Add NULL checks to show() and store() methods of cpufreq
media: usbvision: Fix races among open, close, and disconnect
media: usbvision: Fix invalid accesses after device disconnect
media: vivid: Fix wrong locking that causes race conditions on streaming stop
media: vivid: Set vid_cap_streaming and vid_out_streaming to true
ALSA: usb-audio: Fix Scarlett 6i6 Gen 2 port data
ALSA: usb-audio: Fix NULL dereference at parsing BADD
futex: Prevent robust futex exit race
x86/entry/32: Fix FIXUP_ESPFIX_STACK with user CR3
x86/pti/32: Calculate the various PTI cpu_entry_area sizes correctly, make the CPU_ENTRY_AREA_PAGES assert precise
selftests/x86/sigreturn/32: Invalidate DS and ES when abusing the kernel
selftests/x86/mov_ss_trap: Fix the SYSENTER test
x86/entry/32: Fix NMI vs ESPFIX
x86/entry/32: Unwind the ESPFIX stack earlier on exception entry
x86/entry/32: Move FIXUP_FRAME after pushing %fs in SAVE_ALL
x86/entry/32: Use %ss segment where required
x86/entry/32: Fix IRET exception
x86/cpu_entry_area: Add guard page for entry stack on 32bit
x86/pti/32: Size initial_page_table correctly
x86/doublefault/32: Fix stack canaries in the double fault handler
x86/xen/32: Simplify ring check in xen_iret_crit_fixup()
x86/xen/32: Make xen_iret_crit_fixup() independent of frame layout
x86/stackframe/32: Repair 32-bit Xen PV
nbd: prevent memory leak
x86/speculation: Fix redundant MDS mitigation message
x86/speculation: Fix incorrect MDS/TAA mitigation status
x86/insn: Fix awk regexp warnings
md/raid10: prevent access of uninitialized resync_pages offset
Revert "dm crypt: use WQ_HIGHPRI for the IO and crypt workqueues"
Revert "Bluetooth: hci_ll: set operational frequency earlier"
ath10k: restore QCA9880-AR1A (v1) detection
ath10k: Fix HOST capability QMI incompatibility
ath10k: Fix a NULL-ptr-deref bug in ath10k_usb_alloc_urb_from_pipe
ath9k_hw: fix uninitialized variable data
Bluetooth: Fix invalid-free in bcsp_close()
ANDROID: gki_defconfig: enable CONFIG_REGULATOR_FIXED_VOLTAGE
FROMLIST: crypto: arm64/sha: fix function types
ANDROID: arm64: kvm: disable CFI
ANDROID: arm64: add __nocfi to __apply_alternatives
ANDROID: arm64: add __pa_function
ANDROID: arm64: add __nocfi to functions that jump to a physical address
ANDROID: arm64: bpf: implement arch_bpf_jit_check_func
ANDROID: bpf: validate bpf_func when BPF_JIT is enabled with CFI
ANDROID: add support for Clang's Control Flow Integrity (CFI)
ANDROID: arm64: allow LTO_CLANG and THINLTO to be selected
FROMLIST: arm64: fix alternatives with LLVM's integrated assembler
FROMLIST: arm64: lse: fix LSE atomics with LLVM's integrated assembler
ANDROID: arm64: disable HAVE_ARCH_PREL32_RELOCATIONS with LTO_CLANG
ANDROID: arm64: vdso: disable LTO
ANDROID: irqchip/gic-v3: rename gic_of_init to work around a ThinLTO+CFI bug
ANDROID: soc/tegra: disable ARCH_TEGRA_210_SOC with LTO
ANDROID: init: ensure initcall ordering with LTO
ANDROID: drivers/misc/lkdtm: disable LTO for rodata.o
ANDROID: efi/libstub: disable LTO
ANDROID: scripts/mod: disable LTO for empty.c
ANDROID: kbuild: fix dynamic ftrace with clang LTO
ANDROID: kbuild: add support for Clang LTO
ANDROID: kbuild: add CONFIG_LD_IS_LLD
FROMGIT: driver core: platform: use the correct callback type for bus_find_device
FROMLIST: arm64: implement Shadow Call Stack
FROMLIST: arm64: disable SCS for hypervisor code
FROMLIST: arm64: vdso: disable Shadow Call Stack
FROMLIST: arm64: efi: restore x18 if it was corrupted
FROMLIST: arm64: preserve x18 when CPU is suspended
FROMLIST: arm64: reserve x18 from general allocation with SCS
FROMLIST: arm64: disable function graph tracing with SCS
FROMLIST: scs: add support for stack usage debugging
FROMLIST: scs: add accounting
FROMLIST: add support for Clang's Shadow Call Stack (SCS)
FROMLIST: arm64: kernel: avoid x18 in __cpu_soft_restart
FROMLIST: arm64: kvm: stop treating register x18 as caller save
FROMLIST: arm64/lib: copy_page: avoid x18 register in assembler code
FROMLIST: arm64: mm: avoid x18 in idmap_kpti_install_ng_mappings
ANDROID: clang: update to 10.0.1
ANDROID: update ABI representation
Conflicts:
Documentation/devicetree/bindings
Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt
arch/arm64/Kconfig
drivers/firmware/qcom_scm-64.c
drivers/hwtracing/coresight/coresight.c
drivers/scsi/ufs/ufs.h
drivers/scsi/ufs/ufshcd.c
drivers/scsi/ufs/ufshcd.h
drivers/scsi/ufs/unipro.h
drivers/staging/android/ion/heaps/ion_cma_heap.c
drivers/staging/android/ion/heaps/ion_system_heap.c
drivers/usb/dwc3/ep0.c
drivers/usb/dwc3/gadget.c
include/sound/pcm.h
include/sound/soc.h
kernel/exit.c
kernel/sched/core.c
Change-Id: I66ea973ddcafd352ba999a1dc98e04df33397e3b
Signed-off-by: Blagovest Kolenichev <bkolenichev@codeaurora.org>
Commit 2094bed752 ("PM / devfreq: Add cache HW monitor governor") brought
in the cache HW monitor with an incorrect check for
CONFIG_DEVFREQ_GOV_QCOM_CACHE_HWMON that fails when the governor is
built as a module.
Change-Id: Ic0dedbadefc4885486660d32226e6dd89e006a11
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Replace #ifdef with IS_ENABLED to make sure that the memlat prototypes
are available for a module build.
Fixes: a4e0d26 ("PM / devfreq: Introduce a memory-latency governor")
Change-Id: Ic0dedbade40e23bb148bbb9117c4a9b63e419111
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
When using the %*pbl printk format a special macro is needed to decode
the cpu mask and format it correctly.
Fixes: 74b58a6 ("PM / devfreq: memlat: Aggregate memlat mons under a controller")
Change-Id: Ic0dedbada86cf9cec02b1a5292aaf05f50c0c42f
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Fix the following warning from modpost:
WARNING: modpost: missing MODULE_LICENSE() in drivers/devfreq/arm-memlat-mon.o
Fixes: a4e0d26 ("PM / devfreq: Introduce a memory-latency governor")
Change-Id: Ic0dedbad2d3462ee407e5f2d5bcb9ded6e6ac83f
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
commit d68adc8f85cd757bd33c8d7b2660ad6f16f7f3dc upstream.
The governor is initialized after sysfs attributes become visible so in
theory the governor field can be NULL here.
Fixes: bcf23c79c4 ("PM / devfreq: Fix available_governor sysfs")
Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
Reviewed-by: Matthias Kaehlcke <mka@chromium.org>
Reviewed-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[ Upstream commit 42a6b25e67df6ee6675e8d1eaf18065bd73328ba ]
Right now devfreq_dev_release will print a warning and abort the rest of
the cleanup if the devfreq instance is not part of the global
devfreq_list. But this is a valid scenario, for example it can happen if
the governor can't be found or on any other init error that happens
after device_register.
Initialize devfreq->node to an empty list head in devfreq_add_device so
that list_del becomes a safe noop inside devfreq_dev_release and we can
continue the rest of the cleanup.
Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
Reviewed-by: Matthias Kaehlcke <mka@chromium.org>
Reviewed-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
[ Upstream commit e7cc792d00049c874010b398a27c3cc7bc8fef34 ]
The devfreq_notifier_call functions will update scaling_min_freq and
scaling_max_freq when the OPP table is updated.
If fetching the maximum frequency fails then scaling_max_freq remains
set to zero which is confusing. Set to ULONG_MAX instead so we don't
need special handling for this case in other places.
Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
Reviewed-by: Matthias Kaehlcke <mka@chromium.org>
Reviewed-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
[ Upstream commit e876e710ede23f670494331e062d643928e4142a ]
Notifier callbacks shouldn't return negative errno but one of the
NOTIFY_OK/DONE/BAD values.
The OPP core will ignore return values from notifiers but returning a
value that matches NOTIFY_STOP_MASK will stop the notification chain.
Fix by always returning NOTIFY_OK.
Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
Reviewed-by: Matthias Kaehlcke <mka@chromium.org>
Reviewed-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Add support for L3 voting in the devfreq icc driver.
This includes populating the device's OPP table with L3
frequencies from HW and voting in this same unit of Hz
as accepted by the L3 interconnect provider.
Change-Id: I877f41324b55b333f4e5ef9f34232563357712c8
Signed-off-by: Amir Vajid <avajid@codeaurora.org>
A core-dev table is explicity defined in each memlat device
today. However, some devices may want to share the same core-dev
table so add support for parsing a shared core-dev table that
can be used across multiple memlat devices.
Change-Id: I5ee0d439c199a6414d2adaeed8328f3dc99b2a84
Signed-off-by: Amir Vajid <avajid@codeaurora.org>
In register_common(), there's unnecessary code used to find
which device tree node has the core-dev property. Refactor
this to reduce complexity.
Change-Id: Ib3475272b25e898ad23f9f5a4412d90cd889a356
Signed-off-by: Amir Vajid <avajid@codeaurora.org>
commit 2abb0d5268ae7b5ddf82099b1f8d5aa8414637d4 upstream.
There is no locking in this sysfs show function so stats printing can
race with a devfreq_update_status called as part of freq switching or
with initialization.
Also add an assert in devfreq_update_status to make it clear that lock
must be held by caller.
Fixes: 39688ce6fa ("PM / devfreq: account suspend/resume for stats")
Cc: stable@vger.kernel.org
Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
Reviewed-by: Matthias Kaehlcke <mka@chromium.org>
Reviewed-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Tunables update accesses the monitor's registers for some devices.
When the device is suspended, the clocks for those devices are turned
off and updating the tunables of a suspended device causes the device
to crash. Fix this by checking the flag dev_suspended before allowing
the tunable updates.
Change-Id: I3a0938edf761a9ea6d39ffeec19f35c228d5c306
Signed-off-by: Rama Aparna Mallavarapu <aparnam@codeaurora.org>
[avajid@codeaurora.org: updated to utilize suspend_count from upstream and resolved minor merge conflicts]
Signed-off-by: Amir Vajid <avajid@codeaurora.org>
There is a possibility to switch the governors from sysfs even when the
device is in suspended state. This can cause a NOC error at times when
trying to access the device's monitor registers in a suspended state. This
change fixes this issue. Utilize suspend_count to know if the device is in
suspended state or not. Check if the device is suspended before switching
the governor from sysfs.
Change-Id: I15055aa51daa35272be4667e5bafb8ccd7933098
Signed-off-by: Rama Aparna Mallavarapu <aparnam@codeaurora.org>
[avajid@codeaurora.org: updated to utilize suspend_count from upstream, resolved minor merge conflicts and updated commit text]
Signed-off-by: Amir Vajid <avajid@codeaurora.org>
There is a race condition when the event governor_store is being executed
from sysfs and the device issues a suspend. The devfreq data structures
would become stale when the suspend tries to access them in the middle
of the governor_store operation. Fix this issue by taking a lock around
suspend and resume operations so that these operations are not concurrent
with the other events from sysfs.
Change-Id: Ifa0e93915a920cec3e0429966328a1128d61098b
Signed-off-by: Rama Aparna Mallavarapu <aparnam@codeaurora.org>
[avajid@codeaurora.org: updated to merge better with upstream changes and removed renaming since done in previous commit]
Signed-off-by: Amir Vajid <avajid@codeaurora.org>
Currently, concurrent writes to sysfs entries leave the possibility
for race conditions within the devfreq framework. For example,
concurrently executing max_freq_store and governor_store can result
in attempting to perform an update_devfreq() before the new governor's
start handler can be executed.
A more concrete case is a race between polling_interval_store and
governor_store. Because no lock is used after calling into the event
handler of the old governor and there's nothing preventing work from
being queued after the monitor is stopped, it's possible to
accidentally cause delayed work to be queued on the governor being
switched to. This can be seen if you create two threads, one which
changes a device's governor between simple_ondemand and performance,
and one which changes its polling interval between 45 and 50.
All of these races can be addressed with the introduction of a lock
that prevents sysfs operations from interleaving in this fashion.
Change-Id: Ia6887dcb2d69dc2576837a6c09fed55a28943abc
Signed-off-by: Jonathan Avila <avilaj@codeaurora.org>
[avajid@codeaurora.org: renamed to event lock and only used when CONFIG_QCOM_DEVFREQ_ICC is enabled]
Signed-off-by: Amir Vajid <avajid@codeaurora.org>
This reverts commit 4585fbcb53. The change
to be reverted would add probe order-dependent numbers to the end of each
devfreq device, making our post boot script (among others) incredibly
brittle.
Change-Id: I8fdb679ae651d9f425ffd60e2141613ae20bb029
Signed-off-by: Jonathan Avila <avilaj@codeaurora.org>
[avajid@codeaurora.org: resolved trival merge conflicts]
Signed-off-by: Amir Vajid <avajid@codeaurora.org>
Having OPP levels of 0 and 1 causes a minor error in OPP
debugfs since an OPP level of 0 causes the OPP index to be
used instead (1 in this case) which later clashes with an
actual OPP of 1. Update the qoslat OPP levels to avoid this.
Change-Id: I23c0e736c9f1bfe77a99af44ced180d488a52eeb
Signed-off-by: Amir Vajid <avajid@codeaurora.org>
Currently bw_hwmon governor does not allow the device
to be resume if the resume_freq is set to zero. But there
can be devices that vote for zero frequency when there is
no bandwidth on the device. This does not mean that the device
should not be resume from suspend. Remove the check with prevents
resume, instead add a check in the devfreq framework to check if
device is suspended or not before calling the governor resume.
Change-Id: Ib82a6a36308aee52e8bb989fddca92265de6c4a4
Signed-off-by: Rama Aparna Mallavarapu <aparnam@codeaurora.org>
[avajid@codeaurora.org: removed suspended check in devfreq framework]
Signed-off-by: Amir Vajid <avajid@codeaurora.org>
The IO percentage limits the values to 100, increase it
since some devices might need a higher value.
Change-Id: I7f19017b426832d9a1a11bd02195a4d15634c041
Signed-off-by: Rama Aparna Mallavarapu <aparnam@codeaurora.org>
[avajid@codeaurora.org: resolved trivial merge conflict]
Signed-off-by: Amir Vajid <avajid@codeaurora.org>
Add a devfreq device that has the ability to vote for a
QoS level to ensure better memory latency.
Change-Id: I33094b45ec250a58f244ecb1b7b8476df8791425
Signed-off-by: Amir Vajid <avajid@codeaurora.org>
Currently, we calculate freq and stall_pct multiple times for
the same shared PMU counters. Calculate these once per cpu_grp
to prevent repeating the same calculation multiple times later.
Change-Id: I3b594e01ca50a583f45174e69a24f0b0eca32dde
Signed-off-by: Amir Vajid <avajid@codeaurora.org>
[avajid@codeaurora.org: made minor styling changes]
Signed-off-by: Amir Vajid <avajid@codeaurora.org>
Currently, each individual arm-memlat-mon instance separately reads from
a few shared PMUs, which leads to unnecessary IPI overhead. Tweak the
arm-memlat-mon design to allow multiple monitors to share certain event
counts, lowering overhead.
Change-Id: Ic3358afd1853efd84a4c3d5f3d66c3a86df6e5e7
Signed-off-by: Jonathan Avila <avilaj@codeaurora.org>
Signed-off-by: Amir Vajid <avajid@codeaurora.org>
[avajid@codeaurora.org: squashed minor fixes and made minor styling changes]
Signed-off-by: Amir Vajid <avajid@codeaurora.org>
Some targets support different DDR types. Detect the DDR type
and populate the frequency table accordingly. OPP framework
supports opp-supported-hw bit map which allows the selected
frequencies to be added to the opp table based on the hardware
version check. Implement the same in the bandwidth monitor device
so that the right frequencies would be added to the opp table.
This patch also adds checks for the latency based device to detect
the DDR type at runtime and add the corresponding frequency map.
Change-Id: Ice5a0b14da67b3f2f07e98bc7349220da7d4efdb
Signed-off-by: Santosh Mardi <gsantosh@codeaurora.org>
Signed-off-by: Rama Aparna Mallavarapu <aparnam@codeaurora.org>
[avajid@codeaurora.org: resolved minor conflicts and made minor styling changes]
Signed-off-by: Amir Vajid <avajid@codeaurora.org>
In bytes_to_mbps function, the parameter is all unsigned,
so change the decleration of the function to include unsigned long
long to avoid compilation errors in 32 bit environment.
Also changed the return value as unsigned long to avoid
any data loss possible in 64 bit environment.
Change-Id: I90aebfe32e86ebc17c414d6f3c0c3cbd6dddb0bd
Signed-off-by: Santosh Mardi <gsantosh@codeaurora.org>
Some BWMON devices requires clocks to be enabled, hence
add necessary support in the bwmon driver to enable the
required clocks if any.
Change-Id: Ie06731f764ff24d602ae2a86dea4f39ce75df800
Signed-off-by: Rama Aparna Mallavarapu <aparnam@codeaurora.org>
[avajid@codeaurora.org: made minor styling changes]
Signed-off-by: Amir Vajid <avajid@codeaurora.org>
If there is a failure in starting hw monitor required for
memlat governor, return the error code to devfreq framework
so that the framework will make sure the governor is
switched back to previous governor.
Change-Id: I76705725fc8b94d5341b1b8af7c1bd2b79e7642a
Signed-off-by: Santosh Mardi <gsantosh@codeaurora.org>
[avajid@codeaurora.org: minor change to check ret < 0]
Signed-off-by: Amir Vajid <avajid@codeaurora.org>
The BWMON governor start is returning success on GOV_START event
without checking for the return value of start_monitor.
The return value of start_monitor is not being returned to
ret variable. This would cause the governor to start successfully
even when the monitor failed to start causing a NULL pointer
derefence when accessing the device attributes. Fix it by checking
the return value of start_monitor.
Change-Id: I8c1f6933d44ae4533c6b81ccda8a5c4c0da3779c
Signed-off-by: Rama Aparna Mallavarapu <aparnam@codeaurora.org>
[avajid@codeaurora.org: minor change to check ret < 0]
Signed-off-by: Amir Vajid <avajid@codeaurora.org>
Currently only BWMON5 devices increment the count for non-zero
bandwidth while BWMON4 devices increment the count all the time.
This results in a non-zero bandwidth report even when the count
is zero for BWMON4 devices leading to unnecessarily higher
bandwidth votes. Apply checks similar to BWMON5 devices for BWMON4
monitors as well.
Change-Id: I0a2d1c0ed979973966668391a32f63bf2711f981
Signed-off-by: Rama Aparna Mallavarapu <aparnam@codeaurora.org>
Currently, the bw_hwmon governor handles DEVFREQ_GOV_STOP and
DEVFREQ_GOV_SUSPEND events by calling devfreq_monitor_stop
and devfreq_monitor_suspend respectively, prior to disabling
the bw_hwmon irq. Doing so allows for the following race condition:
T0: bw_hwmon irq thread:
/* df->governor == bw_hwmon
* changing to
* powersave governor
*/
governor_store()
/* Calls bw_hwmon governor event
* handler with DEVFREQ_GOV_STOP
* event
*/
df->governor->event_handler()
gov_stop()
stop_monitor()
update_bw_hwmon()
devfreq_monitor_stop()
/* Cancels timer for future calls
* to devfreq_monitor
*/
devfreq_monitor_stop()
/* Calls free_irq(), which waits
* for the bw_hwmon IRQ thread
* to finish.
*/
hw->stop_hwmon()
--finishes update_devfreq()--
/* Incorrectly starts
* devfreq_monitoring
*/
devfreq_monitor_start()
--thread finishes execution--
--finishes DEVFREQ_GOV_STOP
handling--
--switches governor to powersave--
/* devfreq monitor for this
* instance. This will call
* queue_delayed_work()
* which internally queues
* the timer for this devfreq
* structure.
*/
devfreq_monitor()
/* df->governor == powersave
* changing to bw_hwmon
*/
governor_store()
/* powersave: DEVFREQ_GOV_STOP
*/
df->governor->event_handler()
/* bw_hwmon: DEVFREQ_GOV_START
*/
df->governor->event_handler()
gov_start()
/* Will incorrectly adjust
* the fields within the
* timer and corrupt the
* timer data structure
*/
devfreq_monitor_start()
Since this corrupts the timer data structures, when the timer
gets expired, it will be expired twice. Fix this race condition
by introducing new lock to synchronize the access to the
mon_started variable, so that the irq thread does not restart
the devfreq monitor after it has been stopped.
Change-Id: I2dced21d5343afd6ec2e13876e26aeb5c83a4d12
Signed-off-by: Rama Aparna Mallavarapu <aparnam@codeaurora.org>
[avajid@codeaurora.org: made minor styling change]
Signed-off-by: Amir Vajid <avajid@codeaurora.org>
For simple-dev and devbw platform driver does not
support the manual bind / unbind feature through sysfs,
when the governor is registered and started.
Suppress the bind / unbind calls using driver attribute.
Change-Id: Ide843476bdc3870c48f6557097ee549e7a794a22
Signed-off-by: Santosh Mardi <gsantosh@codeaurora.org>
[avajid@codeaurora.org: resolved minor merge conflict]
Signed-off-by: Amir Vajid <avajid@codeaurora.org>
For arm-memlat and bimc-hwmon platform driver does not
support the manual bind / unbind feature through sysfs,
when the governor is registered and started.
Suppress the bind / unbind calls using driver attribute.
Change-Id: I8287012e1e6931d80953382f3d625223315cec85
Signed-off-by: Santosh Mardi <gsantosh@codeaurora.org>
Update freq variable from unsigned long to uint64_t of
compute_freq function to be in compliance with 32 bit
environment.
Change-Id: Ia9183b0e593daf3780135a8e1ae8ddb36db16f86
Signed-off-by: Santosh Mardi <gsantosh@codeaurora.org>
Add suspend/resume support for the mem_latency governor. Uses hwmon driver-
defined suspend/resume calls in addition to monitor start/stop calls within
the devfreq framework.
Change-Id: I900b322a05cd0312f082d70640e21851879cb18c
Signed-off-by: Jonathan Avila <avilaj@codeaurora.org>
[avajid@codeaurora.org: made minor styling changes]
Signed-off-by: Amir Vajid <avajid@codeaurora.org>
OPP framework exposes a set of functions that could be used to fetch
the list of supported bandwidth values from DT and to query the list
for an appropriate value while honoring requests from
governors/clients.
Use OPP table APIs and get rid of frequency table logic to make the
code more concise and upstream friendly.
Change-Id: I120ae7230bdbfaaa9523263c65a8b84470583071
Signed-off-by: Rohit Gupta <rohgup@codeaurora.org>
[avajid@codeaurora.org: renamed devbw to icc and resolved minor merge conflicts]
Signed-off-by: Amir Vajid <avajid@codeaurora.org>