Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rust: add regulator consumer abstraction #1040

Draft
wants to merge 463 commits into
base: rust-dev
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
463 commits
Select commit Hold shift + click to select a range
17d8adc
ASoC: dt-bindings: davinci-mcasp: Fix interrupts property
miquelraynal Oct 1, 2024
47d7d3f
ASoC: imx-card: Set card.owner to avoid a warning calltrace if SND=m
jason77-wang Oct 2, 2024
2c0b2b4
ASoC: intel: sof_sdw: Add check devm_kasprintf() returned value
Sep 25, 2024
35ceae4
fsnotify: Avoid data race between fsnotify_recalc_mask() and fsnotify…
jankara Jul 17, 2024
cad3f4a
inotify: Fix possible deadlock in fsnotify_destroy_mark
Sep 27, 2024
0ab4284
block: fix blk_rq_map_integrity_sg kernel-doc
keithbusch Sep 22, 2024
14d57ec
blk_iocost: remove some duplicate irq disable/enables
Oct 2, 2024
6d6e54f
aoe: fix the potential use-after-free problem in more places
Oct 2, 2024
9af4821
xen: Fix config option reference in XEN_PRIVCMD definition
bulwahn Sep 30, 2024
4627632
Revert: "dm-verity: restart or panic on an I/O error"
Oct 2, 2024
f811b83
dm-verity: introduce the options restart_on_error and panic_on_error
Oct 2, 2024
3f1dd33
mm, slab: suppress warnings in test_leak_destroy kunit test
tehcaster Oct 1, 2024
cac39b0
slub/kunit: skip test_kfree_rcu when the slub kunit test is built-in
tehcaster Oct 1, 2024
1ca4169
netfs: Fix missing wakeup after issuing writes
dhowells Oct 2, 2024
3f7f36a
Revert "ALSA: hda: Conditionally use snooping for AMD HDMI"
tiwai Oct 2, 2024
eb1df4b
qrb4210-rb2: add HDMI audio playback support
broonie Oct 2, 2024
86309cb
ACPI: battery: Simplify battery hook locking
Wer-Wolf Oct 1, 2024
76959af
ACPI: battery: Fix possible crash when unregistering a battery hook
Wer-Wolf Oct 1, 2024
27af290
Merge tag 'zonefs-6.12-rc2' of git://git.kernel.org/pub/scm/linux/ker…
torvalds Oct 2, 2024
359cdf5
Merge tag 'for-6.12/dm-fixes' of git://git.kernel.org/pub/scm/linux/k…
torvalds Oct 2, 2024
0d2746a
Merge tag 'input-for-v6.12-rc1' of git://git.kernel.org/pub/scm/linux…
torvalds Oct 2, 2024
0c436df
Merge tag 'asoc-fix-v6.12-rc1' of https://git.kernel.org/pub/scm/linu…
tiwai Oct 2, 2024
f23aa4c
Merge tag 'hid-for-linus-2024090201' of git://git.kernel.org/pub/scm/…
torvalds Oct 2, 2024
3302700
MAINTAINERS: ALSA: use [email protected] list
perexg Oct 2, 2024
a190082
kselftest/devices/probe: Fix SyntaxWarning in regex strings for Python3
Alez87 Aug 6, 2024
c66be90
selftests: breakpoints: use remaining time to check if suspend succeed
Sep 30, 2024
0042908
arc: get rid of private asm/unaligned.h
Dec 6, 2023
5f60d5f
move asm/unaligned.h to linux/unaligned.h
Oct 1, 2024
e9f49fe
smb: client: Correct typos in multiple comments across various files
Sep 25, 2024
7ec4621
Merge tag 'pull-work.unaligned' of git://git.kernel.org/pub/scm/linux…
torvalds Oct 2, 2024
156cc37
Merge tag 'amd-drm-fixes-6.12-2024-10-02' of https://gitlab.freedeskt…
airlied Oct 3, 2024
cb3ad11
Merge tag 'ieee802154-for-net-2024-09-27' of git://git.kernel.org/pub…
kuba-moo Oct 3, 2024
e5e3f36
Merge tag 'for-net-2024-09-27' of git://git.kernel.org/pub/scm/linux/…
kuba-moo Oct 3, 2024
854e9bf
Merge tag 'mlx5-fixes-2024-09-25' of git://git.kernel.org/pub/scm/lin…
kuba-moo Oct 3, 2024
17bd3bd
net: gso: fix tcp fraglist segmentation after pull from frag_list
nbd168 Sep 26, 2024
49d14b5
net: test for not too small csum_start in virtio_net_hdr_to_skb()
Sep 26, 2024
8ed7cf6
selftests: rds: move include.sh to TEST_FILES
liuhangbin Sep 27, 2024
aec7291
ppp: do not assume bh is held in ppp_channel_bridge_input()
Sep 27, 2024
c283782
net: phy: realtek: Check the index value in led_hw_control_get
jason77-wang Sep 27, 2024
3c97fe4
net: ethernet: ti: am65-cpsw: Fix forever loop in cleanup code
Sep 28, 2024
b04c4d9
vrf: revert "vrf: Remove unnecessary RCU-bh critical section"
wdebruij Sep 29, 2024
555f45d
bridge: mcast: Fail MDB get request on empty entry
idosch Sep 29, 2024
a1e40ac
gso: fix udp gso fraglist segmentation after pull from frag_list
wdebruij Oct 1, 2024
fa7dfea
net: phy: qt2025: Fix warning: unused import DeviceId
fujita Sep 26, 2024
475be51
Merge tag 'drm-misc-fixes-2024-10-02' of https://gitlab.freedesktop.o…
airlied Oct 3, 2024
abaa6d4
bcachefs: Fix return type of dirent_points_to_inode_nowarn()
Oct 1, 2024
3b1425a
bcachefs: Fix bch2_inode_is_open() check
Oct 3, 2024
d287866
bcachefs: Fix trans_commit disk accounting revert
Oct 3, 2024
240ebf1
Merge tag 'drm-intel-fixes-2024-10-02' of https://gitlab.freedesktop.…
airlied Oct 3, 2024
cffa8e8
drm/xe: Restore pci state upon resume
rodrigovivi Sep 12, 2024
790533e
drm/xe/guc_submit: add missing locking in wedged_fini
matt-auld Sep 24, 2024
2d2be27
drm/xe: fix UAF around queue destruction
matt-auld Sep 23, 2024
cb58977
drm/xe: use devm_add_action_or_reset() helper
matrix-wsk Sep 11, 2024
d1ef967
drm/xe: Convert to USM lock to rwsem
mbrost05 Sep 18, 2024
0f18ac7
drm/xe: Use helper for ASID -> VM in GPU faults and access counters
mbrost05 Sep 18, 2024
7929ffc
drm/xe/mcr: Use Xe2_LPM steering tables for Xe2_HPM
guludo Sep 20, 2024
3bf9093
drm/xe/xe2: Extend performance tuning to media GT
guludo Sep 20, 2024
6ef5a04
drm/xe/xe2: Add performance tuning for L3 cache flushing
guludo Sep 20, 2024
1b30f87
drm/xe: Resume TDR after GT reset
mbrost05 Jul 24, 2024
9e3c85d
drm/xe: Clean up VM / exec queue file lock usage.
mbrost05 Sep 21, 2024
7423187
drm/xe/vm: move xa_alloc to prevent UAF
matt-auld Sep 25, 2024
67801fa
drm/xe/queue: move xa_alloc to prevent UAF
matt-auld Sep 25, 2024
8135f1c
drm/xe/oa: Don't reset OAC_CONTEXT_ENABLE on OA stream close
zehortigoza Sep 24, 2024
7257d9c
drm/xe: Prevent null pointer access in xe_migrate_copy
zhanjun Sep 27, 2024
a6f3b25
drm/xe: Fix memory leak when aborting binds
mbrost05 Sep 27, 2024
d278a9d
ALSA: core: add isascii() check to card ID generator
perexg Oct 2, 2024
6b0bde5
ALSA: usb-audio: Add native DSD support for Luxman D-08u
Oct 3, 2024
3e88002
ALSA: hda: Add missing parameter description for snd_hdac_stream_time…
tiwai Oct 3, 2024
7264745
ceph: use struct_size() helper in __ceph_pool_perm_get()
toblux Sep 12, 2024
ccda991
ceph: fix cap ref leak via netfs init_request
batrick Oct 3, 2024
a0ffa68
net/ncsi: Disable the ncsi work before freeing the associated structure
Sep 25, 2024
f7a4874
iomap: don't bother unsharing delalloc extents
Oct 2, 2024
a311a08
iomap: constrain the file range passed to iomap_file_unshare
Oct 2, 2024
1127c73
Merge tag 'nf-24-10-02' of git://git.kernel.org/pub/scm/linux/kernel/…
Oct 3, 2024
b63ad06
doc: net: napi: Update documentation for napi_schedule_irqoff
Sep 30, 2024
c692964
dt-bindings: net: xlnx,axi-ethernet: Add missing reg minItems
Sep 30, 2024
8beee4d
sctp: set sk_state back to CLOSED if autobind fails in sctp_listen_start
lxin Sep 30, 2024
20c2474
Merge tag 'vfs-6.12-rc2.fixes.2' of git://git.kernel.org/pub/scm/linu…
torvalds Oct 3, 2024
9c02404
Merge tag 'v6.12-rc1-ksmbd-fixes' of git://git.samba.org/ksmbd
torvalds Oct 3, 2024
8c245fe
Merge tag 'net-6.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel…
torvalds Oct 3, 2024
e2a8910
cifs: Fix buffer overflow when parsing NFS reparse points
pali Sep 29, 2024
556ac52
cifs: Validate content of NFS reparse point buffer
pali Sep 28, 2024
d3a49f6
cifs: Do not convert delimiter when parsing NFS-style symlinks
pali Sep 28, 2024
a1d402a
KVM: arm64: Fix kvm_has_feat*() handling of negative features
Oct 2, 2024
7b99b5a
gpiolib: Fix potential NULL pointer dereference in gpiod_get_label()
prabhakarlad Oct 3, 2024
50a3242
tracing: Fix trace_check_vprintf() when tp_printk is used
rostedt Oct 3, 2024
f771d53
tools/rtla: Fix installation from out-of-tree build
benh-debian Sep 15, 2024
3d7b8ea
rtla: Fix the help text in osnoise and timerlat top tools
efzrh Aug 13, 2024
ad68670
x86/ftrace: Include <asm/ptrace.h>
samitolvanen Sep 16, 2024
0bb0a5c
tracing/timerlat: Fix duplicated kthread creation due to CPU online/o…
stkid Sep 24, 2024
b484a02
tracing/timerlat: Drop interface_lock in stop_kthread()
stkid Sep 24, 2024
829e0c9
tracing/timerlat: Fix a race during cpuhp processing
stkid Sep 24, 2024
2a13ca2
tracing/hwlat: Fix a race during cpuhp processing
stkid Sep 24, 2024
fcd1ec9
KVM: x86/mmu: fix KVM_X86_QUIRK_SLOT_ZAP_ALL for shadow MMU
bonzini Sep 27, 2024
3840cbe
sched: psi: fix bogus pressure spikes from aggregation race
hnaz Oct 3, 2024
263a25d
Merge tag 'pull-fixes.ufs' of git://git.kernel.org/pub/scm/linux/kern…
torvalds Oct 4, 2024
0c55932
Merge tag 'rust-fixes-6.12' of https://github.com/Rust-for-Linux/linux
torvalds Oct 4, 2024
5b272bf
Merge tag 'drm-xe-fixes-2024-10-03' of https://gitlab.freedesktop.org…
airlied Oct 4, 2024
9df39a8
ALSA: gus: Fix some error handling paths related to get_bpos() usage
tititiou36 Oct 3, 2024
703235a
ALSA: line6: add hw monitor volume control to POD HD500X
hmollercl Oct 3, 2024
b3ebb00
ALSA: hda/conexant: Fix conflicting quirk for System76 Pangolin
tiwai Oct 4, 2024
3eddb10
arm64: Subscribe Microsoft Azure Cobalt 100 to erratum 3194386
easwarh Oct 3, 2024
c5e3cdb
tomoyo: revert CONFIG_SECURITY_TOMOYO_LKM support
pcmoore Oct 3, 2024
3689245
Merge tag 'i2c-host-fixes-6.12-rc2' of git://git.kernel.org/pub/scm/l…
Oct 4, 2024
6cca119
Merge tag 'pull-fixes' of git://git.kernel.org/pub/scm/linux/kernel/g…
torvalds Oct 4, 2024
b7a838e
Merge tag 'v6.12-rc1-smb3-client-fixes' of git://git.samba.org/sfrenc…
torvalds Oct 4, 2024
79eb2c0
Merge tag 'for-6.12-rc1-tag' of git://git.kernel.org/pub/scm/linux/ke…
torvalds Oct 4, 2024
3be5c17
Merge branches 'acpi-video' and 'acpi-battery'
rafaeljw Oct 4, 2024
a3a3769
Merge tag 'ceph-for-6.12-rc2' of https://github.com/ceph/ceph-client
torvalds Oct 4, 2024
4770119
Merge tag 'fs_for_v6.12-rc2' of git://git.kernel.org/pub/scm/linux/ke…
torvalds Oct 4, 2024
e02f08e
Merge tag 'fsnotify_for_v6.12-rc2' of git://git.kernel.org/pub/scm/li…
torvalds Oct 4, 2024
43454e8
Merge tag 'io_uring-6.12-20241004' of git://git.kernel.dk/linux
torvalds Oct 4, 2024
360c1f1
Merge tag 'block-6.12-20241004' of git://git.kernel.dk/linux
torvalds Oct 4, 2024
fe6fcec
Merge tag 'drm-fixes-2024-10-04' of https://gitlab.freedesktop.org/dr…
torvalds Oct 4, 2024
2f91ff2
Merge tag 'sound-6.12-rc2' of git://git.kernel.org/pub/scm/linux/kern…
torvalds Oct 4, 2024
cc70ce8
Merge tag 'gpio-fixes-for-v6.12-rc2' of git://git.kernel.org/pub/scm/…
torvalds Oct 4, 2024
5d18081
Merge tag 'pm-6.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/…
torvalds Oct 4, 2024
e1043b6
Merge tag 'acpi-6.12-rc2' of git://git.kernel.org/pub/scm/linux/kerne…
torvalds Oct 4, 2024
f6785e0
Merge tag 'slab-for-6.12-rc1' of git://git.kernel.org/pub/scm/linux/k…
torvalds Oct 4, 2024
622a3ed
Merge tag 'trace-v6.12-rc1' of git://git.kernel.org/pub/scm/linux/ker…
torvalds Oct 4, 2024
7943f06
Merge tag 'riscv-for-linus-6.12-rc2' of git://git.kernel.org/pub/scm/…
torvalds Oct 4, 2024
ac30860
Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/…
torvalds Oct 4, 2024
faab35a
ext4: use handle to mark fc as ineligible in __track_dentry_update()
Sep 23, 2024
04e6ce8
ext4: mark fc as ineligible using an handle in ext4_xattr_set()
Sep 23, 2024
6121258
ext4: fix off by one issue in alloc_flex_gd()
LiBaokun96 Sep 27, 2024
6b63a94
bcachefs: Add missing wakeup to bch2_inode_hash_remove()
Oct 4, 2024
20826fe
bcachefs: Fix reattach_inode()
Sep 28, 2024
fda7b1f
bcachefs: Create lost+found in correct snapshot
Sep 28, 2024
658c82f
bcachefs: bkey errors are only AUTOFIX during read
Oct 4, 2024
492e24d
bcachefs: Make sure we print error that causes fsck to bail out
Oct 1, 2024
1bea714
bcachefs: Mark more errors AUTOFIX
Oct 1, 2024
01bf5e3
bcachefs: minor lru fsck fixes
Oct 1, 2024
260af15
bcachefs: Kill alloc_v4.fragmentation_lru
Oct 1, 2024
1c6051b
bcachefs: Check for directories with no backpointers
Sep 28, 2024
c7da5ee
bcachefs: Check for unlinked inodes with dirents
Sep 30, 2024
c9306a9
bcachefs: Check for unlinked, non-empty dirs in check_inode()
Sep 30, 2024
72350ee
bcachefs: Kill snapshot arg to fsck_write_inode()
Sep 30, 2024
1f73cb4
bcachefs: Add warn param to subvol_get_snapshot, peek_inode
Sep 24, 2024
0f25eb4
bcachefs: Rework logged op error handling
Sep 24, 2024
27cc6fd
Merge tag 'linux_kselftest-fixes-6.12-rc2' of git://git.kernel.org/pu…
torvalds Oct 5, 2024
7d59ac0
platform/x86: ISST: Fix the KASAN report slab-out-of-bounds bug
zachwade-k Sep 23, 2024
fb9b767
Merge tag 'lsm-pr-20241004' of git://git.kernel.org/pub/scm/linux/ker…
torvalds Oct 5, 2024
9ec2236
Merge tag 'hardening-v6.12-rc2' of git://git.kernel.org/pub/scm/linux…
torvalds Oct 5, 2024
60b9f47
Merge tag 'spi-fix-v6.12-rc1' of git://git.kernel.org/pub/scm/linux/k…
torvalds Oct 5, 2024
3a28c9e
Merge tag 'i2c-for-6.12-rc2' of git://git.kernel.org/pub/scm/linux/ke…
torvalds Oct 5, 2024
7c50f22
Merge tag 'cxl-fixes-6.12-rc2' of git://git.kernel.org/pub/scm/linux/…
torvalds Oct 5, 2024
fdd0a94
Merge tag 'ext4_for_linus-5.12-rc2' of git://git.kernel.org/pub/scm/l…
torvalds Oct 5, 2024
fc20a3e
Merge tag 'for-linus-6.12a-rc2-tag' of git://git.kernel.org/pub/scm/l…
torvalds Oct 5, 2024
8f60227
Merge tag 'bcachefs-2024-10-05' of git://evilpiepirate.org/bcachefs
torvalds Oct 5, 2024
ea4290d
KVM: x86: leave kvm.ko out of the build if no vendor module is requested
bonzini Oct 1, 2024
2a5fe5a
x86/reboot: emergency callbacks are now registered by common KVM code
bonzini Oct 1, 2024
c8d430d
Merge tag 'kvmarm-fixes-6.12-1' of git://git.kernel.org/pub/scm/linux…
bonzini Oct 6, 2024
ed0e64d
MAINTAINERS: Update Intel In Field Scan(IFS) entry
jithu83 Oct 1, 2024
b6c57b7
platform/x86: dell-laptop: Do not fail when encountering unsupported …
Wer-Wolf Oct 1, 2024
0bdb4e5
platform/x86:intel/pmc: Disable ACPI PM Timer disabling on Sky and Ka…
jwrdegoede Oct 3, 2024
2f95a03
platform/x86: ISST: Add Diamond Rapids to support list
spandruvada Oct 3, 2024
e16f7ee
platform/x86/intel: power-domains: Add Diamond Rapids support
spandruvada Oct 3, 2024
a561509
platform/x86: dell-sysman: add support for alienware products
CragW Oct 4, 2024
7b954b9
platform/x86: dell-ddv: Fix typo in documentation
anastr0 Oct 5, 2024
5984b40
platform/x86: wmi: Update WMI driver API documentation
Wer-Wolf Oct 5, 2024
2fae312
platform/x86: x86-android-tablets: Fix use after free on platform_dev…
jwrdegoede Oct 5, 2024
c14a304
scripts: import more list macros
samitolvanen Sep 23, 2024
d939881
kbuild: fix a typo dt_binding_schema -> dt_binding_schemas
Sep 25, 2024
82cb443
kbuild: deb-pkg: Remove blank first line from maint scripts
dev-aaront-org Oct 4, 2024
b3ce5c3
Merge tag 'powerpc-6.12-3' of git://git.kernel.org/pub/scm/linux/kern…
torvalds Oct 6, 2024
4563243
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
torvalds Oct 6, 2024
c8d9f2c
Merge tag 'platform-drivers-x86-v6.12-2' of git://git.kernel.org/pub/…
torvalds Oct 6, 2024
2a130b7
Merge tag 'kbuild-fixes-v6.12' of git://git.kernel.org/pub/scm/linux/…
torvalds Oct 6, 2024
8cf0b93
Linux 6.12-rc2
torvalds Oct 6, 2024
38f022b
docs: rust: quick-start: add Ubuntu
ojeda Sep 25, 2024
d407317
rust: types: add examples for the `Either` type
Sep 18, 2024
024f967
rust: workqueue: remove unneeded ``#[allow(clippy::new_ret_no_self)]`
ojeda Sep 4, 2024
a135aa3
rust: sort global Rust flags
ojeda Sep 4, 2024
567cdff
rust: types: avoid repetition in `{As,From}Bytes` impls
ojeda Sep 4, 2024
db4f72c
rust: enable `clippy::undocumented_unsafe_blocks` lint
ojeda Sep 4, 2024
c28bfe7
rust: enable `clippy::unnecessary_safety_comment` lint
ojeda Sep 4, 2024
23f42dc
rust: enable `clippy::unnecessary_safety_doc` lint
ojeda Sep 4, 2024
3fcc233
rust: enable `clippy::ignored_unit_patterns` lint
ojeda Sep 4, 2024
bef8324
rust: enable `rustdoc::unescaped_backticks` lint
ojeda Sep 4, 2024
d5cc7ab
rust: init: remove unneeded `#[allow(clippy::disallowed_names)]`
ojeda Sep 4, 2024
5e7c9b8
rust: sync: remove unneeded `#[allow(clippy::non_send_fields_in_send_…
ojeda Sep 4, 2024
7d56786
rust: introduce `.clippy.toml`
ojeda Sep 4, 2024
8577c9d
rust: replace `clippy::dbg_macro` with `disallowed_macros`
ojeda Sep 4, 2024
8333ff4
rust: rbtree: fix `SAFETY` comments that should be `# Safety` sections
ojeda Sep 4, 2024
2f390cc
rust: provide proper code documentation titles
ojeda Sep 4, 2024
624063b
rust: enable Clippy's `check-private-items`
ojeda Sep 4, 2024
139d396
Documentation: rust: add coding guidelines on lints
ojeda Sep 4, 2024
1f9ed17
rust: start using the `#[expect(...)]` attribute
ojeda Sep 4, 2024
0486649
Documentation: rust: discuss `#[expect(...)]` in the guidelines
ojeda Sep 4, 2024
1c71ddb
rust: std_vendor: simplify `{ .. macro! .. }` with inner attributes
ojeda Sep 4, 2024
c95bbb5
rust: enable arbitrary_self_types and remove `Receiver`
nbdd0121 Sep 15, 2024
5ed1474
rust: error: make conversion functions public
felipeagger Sep 13, 2024
3566362
rust: std_vendor: update dbg macro from Rust upstream
iapain Oct 4, 2024
f4c2c90
rust: lock: add trylock method support for lock backend
felipeagger Sep 26, 2024
e9759c5
rust: error: optimize error type to use nonzero
felipeagger Oct 5, 2024
ce1c54f
rust: kernel: move `FromBytes` and `AsBytes` traits to a new `transmu…
plinkr Sep 18, 2024
b7a084b
rust: alloc: add `Allocator` trait
Oct 4, 2024
a654a6e
rust: alloc: separate `aligned_size` from `krealloc_aligned`
Oct 4, 2024
941e655
rust: alloc: rename `KernelAllocator` to `Kmalloc`
Oct 4, 2024
1a5a9f4
rust: alloc: implement `ReallocFunc`
Oct 4, 2024
6797ab5
rust: alloc: make `allocator` module public
Oct 4, 2024
933d9e9
rust: alloc: implement `Allocator` for `Kmalloc`
Oct 4, 2024
2c2ea82
rust: alloc: add module `allocator_test`
Oct 4, 2024
d8416d9
rust: alloc: implement `Vmalloc` allocator
Oct 4, 2024
2e3b351
rust: alloc: implement `KVmalloc` allocator
Oct 4, 2024
51c3a4d
rust: alloc: add __GFP_NOWARN to `Flags`
Oct 4, 2024
89ec226
rust: alloc: implement kernel `Box`
Oct 4, 2024
5b36d1f
rust: treewide: switch to our kernel `Box` type
Oct 4, 2024
90acde2
rust: alloc: remove extension of std's `Box`
Oct 4, 2024
48134b2
rust: alloc: add `Box` to prelude
Oct 4, 2024
b457a49
rust: alloc: introduce `ArrayLayout`
Oct 4, 2024
77b4b24
rust: alloc: implement kernel `Vec` type
Oct 4, 2024
4678518
rust: alloc: implement `IntoIterator` for `Vec`
Oct 4, 2024
e4fcfb3
rust: alloc: implement `collect` for `IntoIter`
Oct 4, 2024
f1af10d
rust: treewide: switch to the kernel `Vec` type
Oct 4, 2024
0a001a1
rust: alloc: remove `VecExt` extension
Oct 4, 2024
13639ed
rust: alloc: add `Vec` to prelude
Oct 4, 2024
b9fce36
rust: error: use `core::alloc::LayoutError`
Oct 4, 2024
ee94f80
rust: error: check for config `test` in `Error::name`
Oct 4, 2024
061ef9e
rust: alloc: implement `contains` for `Flags`
Oct 4, 2024
ea53ed0
rust: alloc: implement `Cmalloc` in module allocator_test
Oct 4, 2024
6923f83
rust: str: test: replace `alloc::format`
Oct 4, 2024
f9fa508
rust: alloc: update module comment of alloc.rs
Oct 4, 2024
eed0405
kbuild: rust: remove the `alloc` crate and `GlobalAlloc`
Oct 4, 2024
8d8f785
MAINTAINERS: add entry for the Rust `alloc` module
Oct 4, 2024
da4a526
rust: init: introduce `Opaque::try_ffi_init`
wedsonaf Sep 29, 2023
19f84d2
rust: introduce `InPlaceModule`
wedsonaf Sep 29, 2023
d88dd90
rust: pass module name to `Module::init`
Oct 15, 2024
28f06ce
rust: implement generic driver registration
Oct 15, 2024
10ccf32
rust: implement `IdArray`, `IdTable` and `RawDeviceId`
Oct 15, 2024
ec2e215
rust: add rcu abstraction
wedsonaf Sep 4, 2023
9730145
rust: add `Revocable` type
wedsonaf Sep 4, 2023
f444613
rust: add `dev_*` print macros.
wedsonaf Feb 16, 2023
b1c72ac
rust: add `io::Io` base type
Oct 15, 2024
5abe57e
rust: add devres abstraction
Oct 15, 2024
265db15
fixup! rust: add `dev_*` print macros.
Fabo Oct 20, 2024
632bcff
fixup! rust: add devres abstraction
Fabo Oct 20, 2024
eae8e61
rust: str: allow dereferencing BStr in a const ctx
Fabo Mar 6, 2024
2282cba
rust: device_id: add macro for alias generation
Fabo Oct 20, 2024
cf0351f
rust: add basic OF abstraction
Nov 10, 2023
faf3c48
rust: enable associated_type_defaults unstable feature
Fabo Sep 20, 2024
b087b60
rust: add I2C client abstraction
kloenk Dec 17, 2022
1cf952d
rust: add function to create masks
Fabo Dec 16, 2023
84a8d2a
rust: macros: paste: add support for using var as part of group
Fabo Dec 19, 2023
563d61a
rust: macros: add foreach! macro to repeat code
Fabo Dec 20, 2023
f5a2ea2
rust: Add new abstraction for regmap
Fabo Nov 29, 2023
c197ae4
rust: error: Add declaration for ENOTRECOVERABLE error
Fabo Feb 8, 2024
dfc9c6a
rust: regulator: add regulator consumer abstractions
Fabo Nov 13, 2023
31a0a6b
rust: regulator: add Regulator Driver abstraction
Fabo Dec 6, 2023
0b42512
rust: regulator: Add support for regmap
Fabo Mar 1, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
9 changes: 9 additions & 0 deletions .clippy.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# SPDX-License-Identifier: GPL-2.0

check-private-items = true

disallowed-macros = [
# The `clippy::dbg_macro` lint only works with `std::dbg!`, thus we simulate
# it here, see: https://github.com/rust-lang/rust-clippy/issues/11303.
{ path = "kernel::dbg", reason = "the `dbg!` macro is intended as a debugging tool" },
]
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,7 @@ modules.order
# We don't want to ignore the following even if they are dot-files
#
!.clang-format
!.clippy.toml
!.cocciconfig
!.editorconfig
!.get_maintainer.ignore
Expand Down
2 changes: 1 addition & 1 deletion Documentation/arch/arm/mem_alignment.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ ones.

Of course this is a bad idea to rely on the alignment trap to perform
unaligned memory access in general. If those access are predictable, you
are better to use the macros provided by include/asm/unaligned.h. The
are better to use the macros provided by include/linux/unaligned.h. The
alignment trap can fixup misaligned access for the exception cases, but at
a high performance cost. It better be rare.

Expand Down
6 changes: 6 additions & 0 deletions Documentation/arch/arm64/silicon-errata.rst
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,8 @@ stable kernels.
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A715 | #2645198 | ARM64_ERRATUM_2645198 |
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A715 | #3456084 | ARM64_ERRATUM_3194386 |
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A720 | #3456091 | ARM64_ERRATUM_3194386 |
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A725 | #3456106 | ARM64_ERRATUM_3194386 |
Expand Down Expand Up @@ -186,6 +188,8 @@ stable kernels.
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Neoverse-N2 | #3324339 | ARM64_ERRATUM_3194386 |
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Neoverse-N3 | #3456111 | ARM64_ERRATUM_3194386 |
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Neoverse-V1 | #1619801 | N/A |
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Neoverse-V1 | #3324341 | ARM64_ERRATUM_3194386 |
Expand Down Expand Up @@ -289,3 +293,5 @@ stable kernels.
+----------------+-----------------+-----------------+-----------------------------+
| Microsoft | Azure Cobalt 100| #2253138 | ARM64_ERRATUM_2253138 |
+----------------+-----------------+-----------------+-----------------------------+
| Microsoft | Azure Cobalt 100| #3324339 | ARM64_ERRATUM_3194386 |
+----------------+-----------------+-----------------+-----------------------------+
212 changes: 212 additions & 0 deletions Documentation/core-api/folio_queue.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,212 @@
.. SPDX-License-Identifier: GPL-2.0+

===========
Folio Queue
===========

:Author: David Howells <[email protected]>

.. Contents:

* Overview
* Initialisation
* Adding and removing folios
* Querying information about a folio
* Querying information about a folio_queue
* Folio queue iteration
* Folio marks
* Lockless simultaneous production/consumption issues


Overview
========

The folio_queue struct forms a single segment in a segmented list of folios
that can be used to form an I/O buffer. As such, the list can be iterated over
using the ITER_FOLIOQ iov_iter type.

The publicly accessible members of the structure are::

struct folio_queue {
struct folio_queue *next;
struct folio_queue *prev;
...
};

A pair of pointers are provided, ``next`` and ``prev``, that point to the
segments on either side of the segment being accessed. Whilst this is a
doubly-linked list, it is intentionally not a circular list; the outward
sibling pointers in terminal segments should be NULL.

Each segment in the list also stores:

* an ordered sequence of folio pointers,
* the size of each folio and
* three 1-bit marks per folio,

but hese should not be accessed directly as the underlying data structure may
change, but rather the access functions outlined below should be used.

The facility can be made accessible by::

#include <linux/folio_queue.h>

and to use the iterator::

#include <linux/uio.h>


Initialisation
==============

A segment should be initialised by calling::

void folioq_init(struct folio_queue *folioq);

with a pointer to the segment to be initialised. Note that this will not
necessarily initialise all the folio pointers, so care must be taken to check
the number of folios added.


Adding and removing folios
==========================

Folios can be set in the next unused slot in a segment struct by calling one
of::

unsigned int folioq_append(struct folio_queue *folioq,
struct folio *folio);

unsigned int folioq_append_mark(struct folio_queue *folioq,
struct folio *folio);

Both functions update the stored folio count, store the folio and note its
size. The second function also sets the first mark for the folio added. Both
functions return the number of the slot used. [!] Note that no attempt is made
to check that the capacity wasn't overrun and the list will not be extended
automatically.

A folio can be excised by calling::

void folioq_clear(struct folio_queue *folioq, unsigned int slot);

This clears the slot in the array and also clears all the marks for that folio,
but doesn't change the folio count - so future accesses of that slot must check
if the slot is occupied.


Querying information about a folio
==================================

Information about the folio in a particular slot may be queried by the
following function::

struct folio *folioq_folio(const struct folio_queue *folioq,
unsigned int slot);

If a folio has not yet been set in that slot, this may yield an undefined
pointer. The size of the folio in a slot may be queried with either of::

unsigned int folioq_folio_order(const struct folio_queue *folioq,
unsigned int slot);

size_t folioq_folio_size(const struct folio_queue *folioq,
unsigned int slot);

The first function returns the size as an order and the second as a number of
bytes.


Querying information about a folio_queue
========================================

Information may be retrieved about a particular segment with the following
functions::

unsigned int folioq_nr_slots(const struct folio_queue *folioq);

unsigned int folioq_count(struct folio_queue *folioq);

bool folioq_full(struct folio_queue *folioq);

The first function returns the maximum capacity of a segment. It must not be
assumed that this won't vary between segments. The second returns the number
of folios added to a segments and the third is a shorthand to indicate if the
segment has been filled to capacity.

Not that the count and fullness are not affected by clearing folios from the
segment. These are more about indicating how many slots in the array have been
initialised, and it assumed that slots won't get reused, but rather the segment
will get discarded as the queue is consumed.


Folio marks
===========

Folios within a queue can also have marks assigned to them. These marks can be
used to note information such as if a folio needs folio_put() calling upon it.
There are three marks available to be set for each folio.

The marks can be set by::

void folioq_mark(struct folio_queue *folioq, unsigned int slot);
void folioq_mark2(struct folio_queue *folioq, unsigned int slot);
void folioq_mark3(struct folio_queue *folioq, unsigned int slot);

Cleared by::

void folioq_unmark(struct folio_queue *folioq, unsigned int slot);
void folioq_unmark2(struct folio_queue *folioq, unsigned int slot);
void folioq_unmark3(struct folio_queue *folioq, unsigned int slot);

And the marks can be queried by::

bool folioq_is_marked(const struct folio_queue *folioq, unsigned int slot);
bool folioq_is_marked2(const struct folio_queue *folioq, unsigned int slot);
bool folioq_is_marked3(const struct folio_queue *folioq, unsigned int slot);

The marks can be used for any purpose and are not interpreted by this API.


Folio queue iteration
=====================

A list of segments may be iterated over using the I/O iterator facility using
an ``iov_iter`` iterator of ``ITER_FOLIOQ`` type. The iterator may be
initialised with::

void iov_iter_folio_queue(struct iov_iter *i, unsigned int direction,
const struct folio_queue *folioq,
unsigned int first_slot, unsigned int offset,
size_t count);

This may be told to start at a particular segment, slot and offset within a
queue. The iov iterator functions will follow the next pointers when advancing
and prev pointers when reverting when needed.


Lockless simultaneous production/consumption issues
===================================================

If properly managed, the list can be extended by the producer at the head end
and shortened by the consumer at the tail end simultaneously without the need
to take locks. The ITER_FOLIOQ iterator inserts appropriate barriers to aid
with this.

Care must be taken when simultaneously producing and consuming a list. If the
last segment is reached and the folios it refers to are entirely consumed by
the IOV iterators, an iov_iter struct will be left pointing to the last segment
with a slot number equal to the capacity of that segment. The iterator will
try to continue on from this if there's another segment available when it is
used again, but care must be taken lest the segment got removed and freed by
the consumer before the iterator was advanced.

It is recommended that the queue always contain at least one segment, even if
that segment has never been filled or is entirely spent. This prevents the
head and tail pointers from collapsing.


API Function Reference
======================

.. kernel-doc:: include/linux/folio_queue.h
1 change: 1 addition & 0 deletions Documentation/core-api/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ Library functionality that is used throughout the kernel.
kref
cleanup
assoc_array
folio_queue
xarray
maple_tree
idr
Expand Down
2 changes: 1 addition & 1 deletion Documentation/core-api/unaligned-memory-access.rst
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@ Avoiding unaligned accesses
===========================

The easiest way to avoid unaligned access is to use the get_unaligned() and
put_unaligned() macros provided by the <asm/unaligned.h> header file.
put_unaligned() macros provided by the <linux/unaligned.h> header file.

Going back to an earlier example of code that potentially causes unaligned
access::
Expand Down
3 changes: 2 additions & 1 deletion Documentation/devicetree/bindings/net/xlnx,axi-ethernet.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ properties:
and length of the AXI DMA controller IO space, unless
axistream-connected is specified, in which case the reg
attribute of the node referenced by it is used.
minItems: 1
maxItems: 2

interrupts:
Expand Down Expand Up @@ -181,7 +182,7 @@ examples:
clock-names = "s_axi_lite_clk", "axis_clk", "ref_clk", "mgt_clk";
clocks = <&axi_clk>, <&axi_clk>, <&pl_enet_ref_clk>, <&mgt_clk>;
phy-mode = "mii";
reg = <0x00 0x40000000 0x00 0x40000>;
reg = <0x40000000 0x40000>;
xlnx,rxcsum = <0x2>;
xlnx,rxmem = <0x800>;
xlnx,txcsum = <0x2>;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ properties:
default: 2

interrupts:
anyOf:
oneOf:
- minItems: 1
items:
- description: TX interrupt
Expand Down
1 change: 1 addition & 0 deletions Documentation/devicetree/bindings/sound/qcom,sm8250.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ properties:
- qcom,apq8096-sndcard
- qcom,qcm6490-idp-sndcard
- qcom,qcs6490-rb3gen2-sndcard
- qcom,qrb4210-rb2-sndcard
- qcom,qrb5165-rb5-sndcard
- qcom,sc7180-qdsp6-sndcard
- qcom,sc8280xp-sndcard
Expand Down
2 changes: 1 addition & 1 deletion Documentation/devicetree/bindings/sound/renesas,rsnd.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -302,7 +302,7 @@ allOf:
reg-names:
items:
enum:
- scu
- sru
- ssi
- adg
# for Gen2/Gen3
Expand Down
11 changes: 5 additions & 6 deletions Documentation/driver-api/wmi.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,11 @@ WMI Driver API
The WMI driver core supports a more modern bus-based interface for interacting
with WMI devices, and an older GUID-based interface. The latter interface is
considered to be deprecated, so new WMI drivers should generally avoid it since
it has some issues with multiple WMI devices and events sharing the same GUIDs
and/or notification IDs. The modern bus-based interface instead maps each
WMI device to a :c:type:`struct wmi_device <wmi_device>`, so it supports
WMI devices sharing GUIDs and/or notification IDs. Drivers can then register
a :c:type:`struct wmi_driver <wmi_driver>`, which will be bound to compatible
WMI devices by the driver core.
it has some issues with multiple WMI devices sharing the same GUID.
The modern bus-based interface instead maps each WMI device to a
:c:type:`struct wmi_device <wmi_device>`, so it supports WMI devices sharing the
same GUID. Drivers can then register a :c:type:`struct wmi_driver <wmi_driver>`
which will be bound to compatible WMI devices by the driver core.

.. kernel-doc:: include/linux/wmi.h
:internal:
Expand Down
4 changes: 2 additions & 2 deletions Documentation/gpu/drm-kms-helpers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ Bridge Operations
Bridge Connector Helper
-----------------------

.. kernel-doc:: drivers/gpu/drm/drm_bridge_connector.c
.. kernel-doc:: drivers/gpu/drm/display/drm_bridge_connector.c
:doc: overview


Expand All @@ -204,7 +204,7 @@ MIPI-DSI bridge operation
Bridge Connector Helper Reference
---------------------------------

.. kernel-doc:: drivers/gpu/drm/drm_bridge_connector.c
.. kernel-doc:: drivers/gpu/drm/display/drm_bridge_connector.c
:export:

Panel-Bridge Helper Reference
Expand Down
5 changes: 2 additions & 3 deletions Documentation/networking/napi.rst
Original file line number Diff line number Diff line change
Expand Up @@ -144,9 +144,8 @@ IRQ should only be unmasked after a successful call to napi_complete_done():

napi_schedule_irqoff() is a variant of napi_schedule() which takes advantage
of guarantees given by being invoked in IRQ context (no need to
mask interrupts). Note that PREEMPT_RT forces all interrupts
to be threaded so the interrupt may need to be marked ``IRQF_NO_THREAD``
to avoid issues on real-time kernel configurations.
mask interrupts). napi_schedule_irqoff() will fall back to napi_schedule() if
IRQs are threaded (such as if ``PREEMPT_RT`` is enabled).

Instance to queue mapping
-------------------------
Expand Down
Loading