mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git
synced 2026-10-30 22:03:17 +01:00
Pull char/misc/IIO/etc driver updates from Greg KH:
"Here is the big set of char, misc, iio, counter, fpga, and other small
driver subsystems for 7.3-rc1.
Overall, due to some driver removals we only added a bit more code
than removed, which was a nice change. Highlights in this merge
request are:
- Loads of IIO driver updates and additions
- binder driver updates (more on that below...)
- Removal of the SGI XP and GRU drivers as they are not used anymore
and turn out to be pretty insecure overall
- Removal of the obsolete ibmasm driver as it's not being used
anymore
- Coresight driver updates and additions
- Mei driver udpates
- Counter driver updates
- FPGA driver updates
- ICC driver updates
- lots and lots of other tiny driver updates to resolve reported
issues
All of these have been in linux-next for a while"
* tag 'char-misc-7.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (513 commits)
iio: chemical: atlas-sensor: use iio_trigger_poll_nested() to fix remove UAF
iio: adc: pac1921: fix wrong channel used in trigger handler read
iio: light: gp2ap002: re-enable irq if runtime suspend fails
iio: light: gp2ap002: Fix unbalanced runtime PM on repeated event writes
iio: light: apds9306: fix PM reference leak in apds9306_read_data()
iio: gyro: mpu3050: fix sign of raw angular velocity readings
iio: srf04: fix pm_runtime handling on probe error path
iio: adc: ad4080: configure backend data size
iio: adc: adi-axi-adc: add data size support for AD408X backend
iio: chemical: atlas-sensor: fix PM reference leak in buffer postenable
iio: dac: ad5446: fix OF module device table
iio: light: opt4001: Fix reversed GENMASK() arguments in fault count mask
iio: light: opt4001: Reject integration times with a non-zero seconds part
iio: light: opt4001: Fix incompatible pointer type passed to div_u64_rem()
iio: light: opt4001: Fix power down clearing bits of the wrong register
iio: light: opt4060: Fix incorrect register name in threshold read error message
iio: light: opt4060: Fix pointer type passed to div_u64_rem()
iio: light: opt4060: Reject integration times with a non-zero seconds part
iio: light: ltrf216a: fix runtime PM reference leak in error path
iio: pressure: dps310: fix NULL pointer dereference on ACPI probe
...
109 lines
3.1 KiB
C
109 lines
3.1 KiB
C
// SPDX-License-Identifier: GPL-2.0
|
|
/*
|
|
* Non-trivial C macros cannot be used in Rust. Similarly, inlined C functions
|
|
* cannot be called either. This file explicitly creates functions ("helpers")
|
|
* that wrap those so that they can be called from Rust.
|
|
*
|
|
* Sorted alphabetically.
|
|
*/
|
|
|
|
#include <linux/compiler_types.h>
|
|
|
|
#ifdef __BINDGEN__
|
|
// Omit `inline` for bindgen as it ignores inline functions.
|
|
#define __rust_helper
|
|
#else
|
|
// The helper functions are all inline functions.
|
|
//
|
|
// We use `__always_inline` here to bypass LLVM inlining checks, in case the
|
|
// helpers are inlined directly into Rust CGUs.
|
|
//
|
|
// The LLVM inlining checks are false positives:
|
|
// * LLVM doesn't want to inline functions compiled with
|
|
// `-fno-delete-null-pointer-checks` with code compiled without.
|
|
// The C CGUs all have this enabled and Rust CGUs don't. Inlining is okay
|
|
// since this is one of the hardening features that does not change the ABI,
|
|
// and we shouldn't have null pointer dereferences in these helpers.
|
|
// * LLVM doesn't want to inline functions with different list of builtins. C
|
|
// side has `-fno-builtin-wcslen`; `wcslen` is not a Rust builtin, so they
|
|
// should be compatible, but LLVM does not perform inlining due to attributes
|
|
// mismatch.
|
|
// * clang and Rust doesn't have the exact target string. Clang generates
|
|
// `+cmov,+cx8,+fxsr` but Rust doesn't enable them (in fact, Rust will
|
|
// complain if `-Ctarget-feature=+cmov,+cx8,+fxsr` is used). x86-64 always
|
|
// enable these features, so they are in fact the same target string, but
|
|
// LLVM doesn't understand this and so inlining is inhibited. This can be
|
|
// bypassed with `--ignore-tti-inline-compatible`, but this is a hidden
|
|
// option.
|
|
#define __rust_helper __always_inline
|
|
#endif
|
|
|
|
#include "atomic.c"
|
|
#include "atomic_ext.c"
|
|
#include "auxiliary.c"
|
|
#include "barrier.c"
|
|
#include "binder.c"
|
|
#include "bitmap.c"
|
|
#include "bitops.c"
|
|
#include "blk.c"
|
|
#include "bug.c"
|
|
#include "build_assert.c"
|
|
#include "build_bug.c"
|
|
#include "clk.c"
|
|
#include "completion.c"
|
|
#include "cpu.c"
|
|
#include "cpufreq.c"
|
|
#include "cpumask.c"
|
|
#include "cred.c"
|
|
#include "device.c"
|
|
#include "dma.c"
|
|
#ifdef CONFIG_DMA_SHARED_BUFFER
|
|
#include "dma-resv.c"
|
|
#endif
|
|
#include "drm.c"
|
|
#include "drm_gpuvm.c"
|
|
#include "err.c"
|
|
#include "fs.c"
|
|
#include "fwctl.c"
|
|
#include "gpu.c"
|
|
#include "interrupt.c"
|
|
#include "io.c"
|
|
#include "irq.c"
|
|
#include "jump_label.c"
|
|
#include "kunit.c"
|
|
#include "list.c"
|
|
#include "maple_tree.c"
|
|
#include "mm.c"
|
|
#include "mutex.c"
|
|
#include "net/genetlink.c"
|
|
#include "of.c"
|
|
#include "page.c"
|
|
#include "pci.c"
|
|
#include "pid_namespace.c"
|
|
#include "platform.c"
|
|
#include "poll.c"
|
|
#include "processor.c"
|
|
#include "property.c"
|
|
#include "pwm.c"
|
|
#include "rbtree.c"
|
|
#include "rcu.c"
|
|
#include "refcount.c"
|
|
#include "regulator.c"
|
|
#include "scatterlist.c"
|
|
#include "security.c"
|
|
#include "serdev.c"
|
|
#include "signal.c"
|
|
#include "slab.c"
|
|
#include "spinlock.c"
|
|
#include "string.c"
|
|
#include "srcu.c"
|
|
#include "sync.c"
|
|
#include "task.c"
|
|
#include "time.c"
|
|
#include "uaccess.c"
|
|
#include "usb.c"
|
|
#include "vmalloc.c"
|
|
#include "wait.c"
|
|
#include "workqueue.c"
|
|
#include "xarray.c"
|