Go to file
Mark Brown 117ccba028 regmap: Ensure range selector registers are updated after cache sync
commit 0ec7731655 upstream.

When we sync the register cache we do so with the cache bypassed in order
to avoid overhead from writing the synced values back into the cache. If
the regmap has ranges and the selector register for those ranges is in a
register which is cached this has the unfortunate side effect of meaning
that the physical and cached copies of the selector register can be out of
sync after a cache sync. The cache will have whatever the selector was when
the sync started and the hardware will have the selector for the register
that was synced last.

Fix this by rewriting all cached selector registers after every sync,
ensuring that the hardware and cache have the same content. This will
result in extra writes that wouldn't otherwise be needed but is simple
so hopefully robust. We don't read from the hardware since not all
devices have physical read support.

Given that nobody noticed this until now it is likely that we are rarely if
ever hitting this case.

Reported-by: Hector Martin <marcan@marcan.st>
Cc: stable@vger.kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20231026-regmap-fix-selector-sync-v1-1-633ded82770d@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-11-28 17:15:02 +00:00
arch parisc: Add nop instructions after TLB inserts 2023-11-28 17:15:02 +00:00
block blk-mq: make sure active queue usage is held for bio_integrity_prep() 2023-11-28 17:14:55 +00:00
certs KEYS: Add missing function documentation 2023-04-24 16:15:52 +03:00
crypto crypto: pcrypt - Fix hungtask for PADATA_RESET 2023-11-28 17:14:46 +00:00
Documentation net/mlx5e: Add recovery flow for tx devlink health reporter for unhealthy PTP SQ 2023-11-28 17:14:57 +00:00
drivers regmap: Ensure range selector registers are updated after cache sync 2023-11-28 17:15:02 +00:00
fs watchdog: move softlockup_panic back to early_param 2023-11-28 17:15:01 +00:00
include mm/damon: implement a function for max nr_accesses safe calculation 2023-11-28 17:15:01 +00:00
init proc: sysctl: prevent aliased sysctls from getting passed to init 2023-11-28 17:15:00 +00:00
io_uring io_uring/fdinfo: remove need for sqpoll lock for thread/pid retrieval 2023-11-28 17:14:56 +00:00
ipc Merge branch 'work.namespace' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2023-02-24 19:20:07 -08:00
kernel watchdog: move softlockup_panic back to early_param 2023-11-28 17:15:01 +00:00
lib lib/generic-radix-tree.c: Don't overflow in peek() 2023-11-28 17:14:40 +00:00
LICENSES LICENSES: Add the copyleft-next-0.3.1 license 2022-11-08 15:44:01 +01:00
mm mm/damon/sysfs: check error from damon_sysfs_update_target() 2023-11-28 17:15:02 +00:00
net net: sched: do not offload flows with a helper in act_ct 2023-11-28 17:14:57 +00:00
rust rust: types: make Opaque be !Unpin 2023-11-08 14:09:04 +01:00
samples samples/bpf: syscall_tp_user: Fix array out-of-bound access 2023-11-28 17:14:52 +00:00
scripts randstruct: Fix gcc-plugin performance mode to stay in group 2023-11-28 17:14:58 +00:00
security apparmor: fix invalid reference on profile->disconnected 2023-11-20 11:57:12 +01:00
sound ALSA: hda/realtek: Add quirk for ASUS UX7602ZM 2023-11-28 17:14:52 +00:00
tools perf intel-pt: Fix async branch flags 2023-11-28 17:14:58 +00:00
usr initramfs: Encode dependency on KBUILD_BUILD_TIMESTAMP 2023-06-06 17:54:49 +09:00
virt kvm/vfio: ensure kvg instance stays around in kvm_vfio_group_add() 2023-09-13 09:53:29 +02:00
.clang-format iommu: Add for_each_group_device() 2023-05-23 08:15:51 +02:00
.cocciconfig
.get_maintainer.ignore get_maintainer: add Alan to .get_maintainer.ignore 2022-08-20 15:17:44 -07:00
.gitattributes .gitattributes: set diff driver for Rust source code files 2023-05-31 17:48:25 +02:00
.gitignore Revert ".gitignore: ignore *.cover and *.mbx" 2023-07-04 15:05:12 -07:00
.mailmap mailmap: add entries for Simon Horman 2023-08-16 09:53:10 +01:00
.rustfmt.toml rust: add .rustfmt.toml 2022-09-28 09:02:20 +02:00
COPYING COPYING: state that all contributions really are covered by this file 2020-02-10 13:32:20 -08:00
CREDITS - Address -Wmissing-prototype warnings 2023-06-26 16:43:54 -07:00
Kbuild Kbuild updates for v6.1 2022-10-10 12:00:45 -07:00
Kconfig kbuild: ensure full rebuild when the compiler is updated 2020-05-12 13:28:33 +09:00
MAINTAINERS sound fixes for 6.5 2023-08-25 08:48:14 -07:00
Makefile Linux 6.5.12 2023-11-20 11:57:26 +01:00
README Drop all 00-INDEX files from Documentation/ 2018-09-09 15:08:58 -06:00

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.