No description
Find a file
Takashi Iwai eca94a4b07 ALSA: seq: fix function cast warnings
[ Upstream commit d7bf738098 ]

clang-16 points out a control flow integrity (kcfi) issue when event
callbacks get converted to incompatible types:

sound/core/seq/seq_midi.c:135:30: error: cast from 'int (*)(struct snd_rawmidi_substream *, const char *, int)' to 'snd_seq_dump_func_t' (aka 'int (*)(void *, void *, int)') converts to incompatible function type [-Werror,-Wcast-function-type-strict]
  135 |                 snd_seq_dump_var_event(ev, (snd_seq_dump_func_t)dump_midi, substream);
      |                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sound/core/seq/seq_virmidi.c:83:31: error: cast from 'int (*)(struct snd_rawmidi_substream *, const unsigned char *, int)' to 'snd_seq_dump_func_t' (aka 'int (*)(void *, void *, int)') converts to incompatible function type [-Werror,-Wcast-function-type-strict]
   83 |                         snd_seq_dump_var_event(ev, (snd_seq_dump_func_t)snd_rawmidi_receive, vmidi->substream);
      |                                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

For addressing those errors, introduce wrapper functions that are used
for callbacks and bridge to the actual function call with pointer
cast.

The code was originally added with the initial ALSA merge in linux-2.5.4.

[ the patch description shamelessly copied from Arnd's original patch
  -- tiwai ]

Fixes: 1da177e4c3 ("Linux-2.6.12-rc2")
Reported-by: Arnd Bergmann <arnd@arndb.de>
Link: https://lore.kernel.org/r/20240213101020.459183-1-arnd@kernel.org
Link: https://lore.kernel.org/r/20240213135343.16411-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-03-26 18:21:57 -04:00
arch x86, relocs: Ignore relocations in .notes section 2024-03-26 18:21:51 -04:00
block block: add a new set_read_only method 2024-03-26 18:21:48 -04:00
certs
crypto crypto: api - Disallow identical driver names 2024-02-23 08:41:52 +01:00
Documentation net: sysfs: Fix /sys/class/net/<iface> path for statistics 2024-02-23 08:42:23 +01:00
drivers drm/radeon/ni: Fix wrong firmware size logging in ni_init_microcode() 2024-03-26 18:21:56 -04:00
fs quota: Fix rcu annotations of inode dquot pointers 2024-03-26 18:21:56 -04:00
include drm: Don't treat 0 as -1 in drm_fixp2int_ceil 2024-03-26 18:21:54 -04:00
init rootfs: Fix support for rootfstype= when root= is given 2024-01-25 14:37:52 -08:00
io_uring io_uring: drop any code related to SCM_RIGHTS 2024-03-26 18:21:45 -04:00
ipc ipc/sem: Fix dangling sem_array access in semtimedop race 2022-12-08 11:24:00 +01:00
kernel bpf: Fix stackmap overflow check on 32-bit arches 2024-03-26 18:21:52 -04:00
lib net: blackhole_dev: fix build warning for ethh set but not used 2024-03-26 18:21:50 -04:00
LICENSES
mm mm/hugetlb: change hugetlb_reserve_pages() to type bool 2024-03-15 10:48:22 -04:00
net net/x25: fix incorrect parameter validation in the x25_getsockopt() function 2024-03-26 18:21:54 -04:00
samples samples/hw_breakpoint: fix building without module unloading 2023-09-23 11:01:09 +02:00
scripts gen_compile_commands: fix invalid escape sequence warning 2024-03-26 18:21:46 -04:00
security lsm: fix default return value of the socket_getpeersec_*() hooks 2024-03-15 10:48:20 -04:00
sound ALSA: seq: fix function cast warnings 2024-03-26 18:21:57 -04:00
tools perf thread_map: Free strlist on normal path in thread_map__new_by_tid_str() 2024-03-26 18:21:56 -04:00
usr
virt KVM: use __vcalloc for very large allocations 2024-02-23 08:41:55 +01:00
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS Remove DECnet support from kernel 2023-06-21 15:45:38 +02:00
Makefile Linux 5.10.213 2024-03-15 14:40:25 -04:00
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.