Linux kernel source tree
 
 
 
 
 
 
Go to file
Tuo Li 1f4a08fed4 ALSA: hda: fix a possible null-pointer dereference due to data race in snd_hdac_regmap_sync()
The variable codec->regmap is often protected by the lock
codec->regmap_lock when is accessed. However, it is accessed without
holding the lock when is accessed in snd_hdac_regmap_sync():

  if (codec->regmap)

In my opinion, this may be a harmful race, because if codec->regmap is
set to NULL right after the condition is checked, a null-pointer
dereference can occur in the called function regcache_sync():

  map->lock(map->lock_arg); --> Line 360 in drivers/base/regmap/regcache.c

To fix this possible null-pointer dereference caused by data race, the
mutex_lock coverage is extended to protect the if statement as well as the
function call to regcache_sync().

[ Note: the lack of the regmap_lock itself is harmless for the current
  codec driver implementations, as snd_hdac_regmap_sync() is only for
  PM runtime resume that is prohibited during the codec probe.
  But the change makes the whole code more consistent, so it's merged
  as is -- tiwai ]

Reported-by: BassCheck <bass@buaa.edu.cn>
Signed-off-by: Tuo Li <islituo@gmail.com>
Link: https://lore.kernel.org/r/20230703031016.1184711-1-islituo@gmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2023-07-03 10:08:12 +02:00
Documentation ASoC: Updates for v6.5 2023-06-26 15:38:02 +02:00
LICENSES
arch This pull request contains the following bug fixes for UML: 2023-05-21 14:03:22 -07:00
block block: Deny writable memory mapping if block is read-only 2023-05-19 20:17:10 -06:00
certs
crypto This push fixes the following problems: 2023-05-07 10:57:14 -07:00
drivers Merge branch 'for-next' into for-linus 2023-06-26 15:23:23 +02:00
fs four ksmbd server fixes 2023-05-21 10:55:31 -07:00
include ASoC: Updates for v6.5 2023-06-26 15:38:02 +02:00
init
io_uring for-6.4/io_uring-2023-05-07 2023-05-07 10:00:09 -07:00
ipc
kernel Probes fixes for 6.4-rc1: 2023-05-18 09:04:45 -07:00
lib Eight hotfixes. Four are cc:stable, the other four are for post-6.4 2023-05-18 17:06:04 -07:00
mm mm: fix zswap writeback race condition 2023-05-17 15:24:33 -07:00
net Networking fixes for 6.4-rc3, including fixes from can, xfrm, 2023-05-18 08:52:14 -07:00
rust
samples LoongArch changes for v6.4 2023-05-04 12:40:16 -07:00
scripts Locking changes in v6.4: 2023-05-05 12:56:55 -07:00
security
sound ALSA: hda: fix a possible null-pointer dereference due to data race in snd_hdac_regmap_sync() 2023-07-03 10:08:12 +02:00
tools ASoC: Updates for v6.5 2023-06-26 15:38:02 +02:00
usr
virt KVM: Fix vcpu_array[0] races 2023-05-19 13:56:26 -04:00
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap mailmap: add entries for Nikolay Aleksandrov 2023-05-17 09:35:05 +01:00
.rustfmt.toml
COPYING
CREDITS MAINTAINERS: sctp: move Neil to CREDITS 2023-05-12 08:51:32 +01:00
Kbuild
Kconfig
MAINTAINERS ASoC: Updates for v6.5 2023-06-26 15:38:02 +02:00
Makefile Linux 6.4-rc3 2023-05-21 14:05:48 -07:00
README

README

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.