mirror of
https://github.com/torvalds/linux.git
synced 2026-06-07 14:04:54 +02:00
- Introduce cmpxchg128() -- aka. the demise of cmpxchg_double().
The cmpxchg128() family of functions is basically & functionally
the same as cmpxchg_double(), but with a saner interface: instead
of a 6-parameter horror that forced u128 - u64/u64-halves layout
details on the interface and exposed users to complexity,
fragility & bugs, use a natural 3-parameter interface with u128 types.
- Restructure the generated atomic headers, and add
kerneldoc comments for all of the generic atomic{,64,_long}_t
operations. Generated definitions are much cleaner now,
and come with documentation.
- Implement lock_set_cmp_fn() on lockdep, for defining an ordering
when taking multiple locks of the same type. This gets rid of
one use of lockdep_set_novalidate_class() in the bcache code.
- Fix raw_cpu_generic_try_cmpxchg() bug due to an unintended
variable shadowing generating garbage code on Clang on certain
ARM builds.
Signed-off-by: Ingo Molnar <mingo@kernel.org>
-----BEGIN PGP SIGNATURE-----
iQJFBAABCgAvFiEEBpT5eoXrXCwVQwEKEnMQ0APhK1gFAmSav3wRHG1pbmdvQGtl
cm5lbC5vcmcACgkQEnMQ0APhK1gDyxAAjCHQjpolrre7fRpyiTDwqzIKT27H04vQ
zrQVlVc42WBnn9pe8LthGy43/RvYvqlZvLoLONA4fMkuYriM6nSMsoZjeUmE+6Rs
QAElQC74P5YvEBOa67VNY3/M7sj22ftDe7ODtVV8OrnPjMk1sQNRvaK025Cs3yig
8MAI//hHGNmyVAp1dPYZMJNqxGCvluReLZ4SaUJFCMrg7YgUXgCBj/5Gi07TlKxn
sT8BFCssoEW/B9FXkh59B1t6FBCZoSy4XSZfsZe0uVAUJ4XDEOO+zBgaWFCedNQT
wP323ryBgMrkzUKA8j2/o5d3QnMA1GcBfHNNlvAl/fOfrxWXzDZnOEY26YcaLMa0
YIuRF/JNbPZlt6DCUVBUEvMPpfNYi18dFN0rat1a6xL2L4w+tm55y3mFtSsg76Ka
r7L2nWlRrAGXnuA+VEPqkqbSWRUSWOv5hT2Mcyb5BqqZRsxBETn6G8GVAzIO6j6v
giyfUdA8Z9wmMZ7NtB6usxe3p1lXtnZ/shCE7ZHXm6xstyZrSXaHgOSgAnB9DcuJ
7KpGIhhSODQSwC/h/J0KEpb9Pr/5jCWmXAQ2DWnZK6ndt1jUfFi8pfK58wm0AuAM
o9t8Mx3o8wZjbMdt6up9OIM1HyFiMx2BSaZK+8f/bWemHQ0xwez5g4k5O5AwVOaC
x9Nt+Tp0Ze4=
=DsYj
-----END PGP SIGNATURE-----
Merge tag 'locking-core-2023-06-27' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull locking updates from Ingo Molnar:
- Introduce cmpxchg128() -- aka. the demise of cmpxchg_double()
The cmpxchg128() family of functions is basically & functionally the
same as cmpxchg_double(), but with a saner interface.
Instead of a 6-parameter horror that forced u128 - u64/u64-halves
layout details on the interface and exposed users to complexity,
fragility & bugs, use a natural 3-parameter interface with u128
types.
- Restructure the generated atomic headers, and add kerneldoc comments
for all of the generic atomic{,64,_long}_t operations.
The generated definitions are much cleaner now, and come with
documentation.
- Implement lock_set_cmp_fn() on lockdep, for defining an ordering when
taking multiple locks of the same type.
This gets rid of one use of lockdep_set_novalidate_class() in the
bcache code.
- Fix raw_cpu_generic_try_cmpxchg() bug due to an unintended variable
shadowing generating garbage code on Clang on certain ARM builds.
* tag 'locking-core-2023-06-27' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (43 commits)
locking/atomic: scripts: fix ${atomic}_dec_if_positive() kerneldoc
percpu: Fix self-assignment of __old in raw_cpu_generic_try_cmpxchg()
locking/atomic: treewide: delete arch_atomic_*() kerneldoc
locking/atomic: docs: Add atomic operations to the driver basic API documentation
locking/atomic: scripts: generate kerneldoc comments
docs: scripts: kernel-doc: accept bitwise negation like ~@var
locking/atomic: scripts: simplify raw_atomic*() definitions
locking/atomic: scripts: simplify raw_atomic_long*() definitions
locking/atomic: scripts: split pfx/name/sfx/order
locking/atomic: scripts: restructure fallback ifdeffery
locking/atomic: scripts: build raw_atomic_long*() directly
locking/atomic: treewide: use raw_atomic*_<op>()
locking/atomic: scripts: add trivial raw_atomic*_<op>()
locking/atomic: scripts: factor out order template generation
locking/atomic: scripts: remove leftover "${mult}"
locking/atomic: scripts: remove bogus order parameter
locking/atomic: xtensa: add preprocessor symbols
locking/atomic: x86: add preprocessor symbols
locking/atomic: sparc: add preprocessor symbols
locking/atomic: sh: add preprocessor symbols
...
|
||
|---|---|---|
| .. | ||
| 80211 | ||
| acpi | ||
| backlight | ||
| cxl | ||
| dmaengine | ||
| driver-model | ||
| early-userspace | ||
| firmware | ||
| fpga | ||
| gpio | ||
| hte | ||
| i3c | ||
| iio | ||
| md | ||
| media | ||
| mei | ||
| memory-devices | ||
| mmc | ||
| mtd | ||
| nfc | ||
| nvdimm | ||
| pci | ||
| phy | ||
| pldmfw | ||
| pm | ||
| rapidio | ||
| serial | ||
| soundwire | ||
| surface_aggregator | ||
| thermal | ||
| tty | ||
| usb | ||
| virtio | ||
| xilinx | ||
| aperture.rst | ||
| auxiliary_bus.rst | ||
| basics.rst | ||
| clk.rst | ||
| component.rst | ||
| connector.rst | ||
| console.rst | ||
| dcdbas.rst | ||
| devfreq.rst | ||
| device_link.rst | ||
| device-io.rst | ||
| dma-buf.rst | ||
| edac.rst | ||
| eisa.rst | ||
| firewire.rst | ||
| frame-buffer.rst | ||
| generic-counter.rst | ||
| hsi.rst | ||
| i2c.rst | ||
| index.rst | ||
| infiniband.rst | ||
| infrastructure.rst | ||
| input.rst | ||
| interconnect.rst | ||
| io_ordering.rst | ||
| io-mapping.rst | ||
| ioctl.rst | ||
| ipmb.rst | ||
| ipmi.rst | ||
| isa.rst | ||
| isapnp.rst | ||
| libata.rst | ||
| mailbox.rst | ||
| men-chameleon-bus.rst | ||
| message-based.rst | ||
| misc_devices.rst | ||
| miscellaneous.rst | ||
| mtdnand.rst | ||
| ntb.rst | ||
| nvmem.rst | ||
| parport-lowlevel.rst | ||
| pin-control.rst | ||
| pps.rst | ||
| ptp.rst | ||
| pwm.rst | ||
| regulator.rst | ||
| reset.rst | ||
| rfkill.rst | ||
| s390-drivers.rst | ||
| scsi.rst | ||
| slimbus.rst | ||
| sm501.rst | ||
| spi.rst | ||
| switchtec.rst | ||
| sync_file.rst | ||
| target.rst | ||
| uio-howto.rst | ||
| vfio-mediated-device.rst | ||
| vfio-pci-device-specific-driver-acceptance.rst | ||
| vfio.rst | ||
| vme.rst | ||
| w1.rst | ||
| xillybus.rst | ||
| zorro.rst | ||