Commit graph

1,399,042 commits

Author SHA1 Message Date
Andreas Hindborg
446cafc295 rust: configfs: introduce rust support for configfs
Add a Rust API for configfs, thus allowing Rust modules to use configfs for
configuration. Make the implementation a shim on top of the C configfs
implementation, allowing safe use of the C infrastructure from Rust.

Link: https://lore.kernel.org/r/20250508-configfs-v8-1-8ebde6180edc@kernel.org
Signed-off-by: Andreas Hindborg <a.hindborg@kernel.org>
2025-05-12 11:05:07 +02:00
Leon Romanovsky
972aa49a7c Provide a new two step DMA mapping API
Currently the only efficient way to map a complex memory description through
the DMA API is by using the scatter list APIs. The SG APIs are unique in that
they efficiently combine the two fundamental operations of sizing and allocating
a large IOVA window from the IOMMU and processing all the per-address
swiotlb/flushing/p2p/map details.

This uniqueness has been a long standing pain point as the scatter list API
is mandatory, but expensive to use. It prevents any kind of optimization or
feature improvement (such as avoiding struct page for P2P) due to the
impossibility of improving the scatter list.

Several approaches have been explored to expand the DMA API with additional
scatterlist-like structures (BIO, rlist), instead split up the DMA API
to allow callers to bring their own data structure.

The API is split up into parts:
 - Allocate IOVA space:
    To do any pre-allocation required. This is done based on the caller
    supplying some details about how much IOMMU address space it would need
    in worst case.
 - Map and unmap relevant structures to pre-allocated IOVA space:
    Perform the actual mapping into the pre-allocated IOVA. This is very
    similar to dma_map_page().

Thanks

Signed-off-by: Leon Romanovsky <leon@kernel.org>
2025-05-12 05:04:15 -04:00
Junxian Huang
4ffb62fa89 RDMA/hns: Fix build error of hns_roce_trace
Add include path to find hns_roce_trace.h to fix the following
build error:

In file included from drivers/infiniband/hw/hns/hns_roce_trace.h:213,
                 from drivers/infiniband/hw/hns/hns_roce_hw_v2.c:53:
./include/trace/define_trace.h:110:42: fatal error: ./hns_roce_trace.h: No such file or directory
  110 | #include TRACE_INCLUDE(TRACE_INCLUDE_FILE)
      |                                          ^
compilation terminated.

Fixes: 02007e3ddc ("RDMA/hns: Add trace for flush CQE")
Reported-by: Paul E. McKenney <paulmck@kernel.org>
Closes: https://lore.kernel.org/linux-next/b7dd4dda-37d8-47e4-8d78-b6585be21cfd@paulmck-laptop/T/#t
Tested-by: Paul E. McKenney <paulmck@kernel.org>
Signed-off-by: Junxian Huang <huangjunxian6@hisilicon.com>
Link: https://patch.msgid.link/20250507033903.2879433-1-huangjunxian6@hisilicon.com
Signed-off-by: Leon Romanovsky <leon@kernel.org>
2025-05-12 05:02:02 -04:00
Marcus Folkesson
9b8f32002c
drm/sitronix: move tiny Sitronix drivers to their own subdir
We start to have support many Sitronix displays in the tiny directory,
and we expect more to come.

Move them to their own subdirectory.

Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Suggested-by: Javier Martinez Canillas <javierm@redhat.com>
Signed-off-by: Marcus Folkesson <marcus.folkesson@gmail.com>
Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://lore.kernel.org/r/20250512-sitronix-v3-1-bbf6cc413698@gmail.com
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
2025-05-12 10:26:40 +02:00
Arnd Bergmann
beccb7d158 OMAP driver updates for v6.16
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEe4dGDhaSf6n1v/EMWTcYmtP7xmUFAmgg0Q0ACgkQWTcYmtP7
 xmX2Wg/9Ert5DjDFUr/etujwU7QBkHJc6F8zxu29+0jEK2IVRLY9rselxFKA6naL
 STMnVTLfbpX+zpmvw8wZE4wgodQJrNeGGKMchpmEtaCgeHizipUK5GJymE1UnSzb
 RikfhvHox85U+wRajEAb2Z4UQzg7trzSPi6uicT92fOmYKPrAKZVnw+D3pPzA8bY
 CrapdWJVlIsQozxNmRsKFqmRrw1KSO6D6SnTmcSN03/oq46mrOe0sDcZx3vqR7f5
 /Qt6DR0Yv5UjdWgWdG2k3Uo7hd8gXH/BN6GrTVdnFSC8fkQTXFrtIfEWKyWTExb5
 Ac1ibgBHLnGwUzI724a96GXYHN7twHMqF1lCMBHGHYw5Z2GbkhCsM/8SOSKHoPq3
 p+MRAQV3NI1jBFsNEX5no55y3KTIrGKDKGT5iPpmyAtikZdj6vOQRX00ol7jBUm+
 XmSGwD39tX8J9hdIGq6Trn91wipsRNinqNp+hXSAsRgtYq9P6qR+TlgvqagFGQAI
 RYn8GEG8YsBXM7s2eDQSWsDnZ4O0a78OqOQh4vONGg7qHqAmhrmBL0EPN29kQR3h
 gaM/VJ2jCtjYzKjuI4H+UdZVt0HibmyGJ80eFoL85K0P+wFWUAlXD26xiXZAjZBB
 gfJL8t7riM1Tz+/RKwfIFa4JcFOFPMhf27YAARwNZDpBEgh8k0c=
 =sexH
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmghsB8ACgkQYKtH/8kJ
 UicK3RAAlOQEAyust+l2w6lbxU0c3suYeryFlIMuwXLLm7JmjeSRNBuW+3hYnK8l
 3KDEXEwIjtqzJ1wgcxy0Zvqit3ryZc0VslTA82KNFFgai3LGtDluO2vPAWewgF7k
 ++5lRcxTi6QmlxSOJ7G7uPqyEXDq/tKJ6+j1trvxrnHKNAoanDOYUnPlJZIm7F4W
 VGDschXrN+XuooqybmsbtI9Q2RBhJLBnKem0zvElfxFXCYfji8h4h18bppUah3St
 GQfrBHxyjTvH6MLWJl+ZrxVV78G52zPiXexVatTsZT6fYFYcIXfk5UIHeCFpXcuy
 XubJrF1Ylq753Km96EXOyrIg5Kk+gnEyZr1OFSUAPcRBxF1ERSu2/T7AzL8eTMAM
 KKdq0oN0t1UaILkgMSgBz2qxnDS05njpeA19x8OU8SFr9CaVQKnsfKCqDCQdZBCA
 ehFdCPyyYjiykyqaL0z62yJN3gCE8fa8A54hffD8zDpFGL4LV/lCV8CgICmn1zDg
 tz6LK8Dvh9PNKkUApW0Esxo34CxYQy8pKPu4RsQN+ZDBPRF7c2D9EgZ2jCO43OSB
 /M8m7g8OaoOVOuN8arzTy4jJrL9TkH95a4Kbi6mEZlMiUxrvBAeP8j9t7vVZptjw
 qfczdfzqJ2VT/WVWlp/QI6I1d3AEqnbrmVkR9qwUP3vYhRIWqn4=
 =IZ77
 -----END PGP SIGNATURE-----

Merge tag 'omap-for-v6.16/drivers-signed' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap into soc/drivers

OMAP driver updates for v6.16

* tag 'omap-for-v6.16/drivers-signed' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap:
  Revert "bus: ti-sysc: Probe for l4_wkup and l4_cfg interconnect devices first"

Link: https://lore.kernel.org/r/7h5xi7rtix.fsf@baylibre.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-05-12 10:23:58 +02:00
Arnd Bergmann
153e2d0791 ARM: dts: omap updates for v6.16
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEe4dGDhaSf6n1v/EMWTcYmtP7xmUFAmgg0Q0ACgkQWTcYmtP7
 xmWO8Q//Rv/pq7J+oWy15HUPKZ1iUmvJMPnjMFnVFLdsloHMUHjTd7SLbnx/yQQE
 Ie2R0CDR7riHwSUwwsMKvRFuXlJpnfACjOAgMlZwuhP6QgDK511c+w8FtUls8hAi
 3mTWHC1lp/TQoOdsFfw3mjmN/JzK5Wu0ciJAJLcuaWx2b7jUdbgnU5bxH7+u29Al
 anskZP2BjZCLDy+WarE3QbhpxeBgZ6tyFeAsM/e4wgAMRG+Ywnf2UXIeg520Zfor
 FVY2Rzt9c/rHM9MnbafPGIWdGqFaOB/Hp/kMkwUB/CVt6MhRZzsauwANWm81wKrW
 vVgGYwWFcVIjo50gqlarOZ/w2lmffysKnOJtq+gL9wXSTyCPcsTDDpKxsb8lE29Y
 pjXEeGZvgBYXfPYZ66SchDem/RBPlR1C2IFDXBSEt6JM4eB4mBpio3SVX1x/wOc8
 j7fKzYl0yAF97PvRGNil0uGba+zmNNyc4bUz3abdF7J3TLSVBJ1Purma44gZpqpW
 AaYZNZhBhG5JhyxiwEdm1QyPBH1YWb7ean3bl+ZiB/LLZu+IIONFM1RT9xTk1r1I
 PZJkgdJAf18RSLWs48xmQ1ydpKhYaVehWhY6KtiBw6X/WVbHnQZUkOdNldKP0Mha
 4u0LHD1/5K9ySq28b7Kb62MqpJHAg+iQrxZjuyJz1ZPiw+CVq0w=
 =B5CB
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmghr0IACgkQYKtH/8kJ
 UieqIRAAv8ANlPb/hXWIZA9cBCitaESxr2euRGbS+mM3XgeLj9wujDHs4y5ckpZM
 l1qrhJKvDAW+A6dDfCAEJJxuLNT9VUrKjoTAXh2Wze/AvqQAQS3ZATlb22oW74KM
 0yVvBV/y+loknOf2v9BL1mXXAii5KHgq8v192+t3XH/aJZyWd3PIq75z9p5yl5cw
 MdatL426Y4K3+Ik0s+Xjc7r7nEVmOy1UzPzhayxnBYaWCzKb3QsUreC8LP7jeRUj
 dN1wpwgt28FuWdWPYRdGXv1a15RK9IAbyGOC7BahD+QJkBggPhkNu82s83yn3tjo
 v5aESbzs5P+xjblMSI/I2keh9+zVaP3hECob+T3dni1zS2HMzRTQ7UkTcvOAsen+
 b+KkxSnYLmRmqocqZQWCwyveT5iBIt5qAAM4Cw4dvs+rkcH+5erEtBemQMIXWjS9
 DORgCQTBPpEggdZJdPx5AJiURszV021w7Z6lUUiPRMIH6s2clB6ATJcspnhs3F0V
 5VOQMUOXZdSnRwdMLHgNrVQaWiNwZSKSD+yldSE9CwpGgxawgFjjpld2AF2refqS
 gFEjDdkjO8DaC/UbFC+82jjMOWFpiwI7briqCGim11fvvVflQ42Y4LlOiONUUNMV
 SxiW9dpMM2/Zw4/yIVYIiYEgf/d8WSJFN5aZTOegTIetwMXKPbA=
 =YpBL
 -----END PGP SIGNATURE-----

Merge tag 'omap-for-v6.16/dt-signed' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap into soc/dt

ARM: dts: omap updates for v6.16

* tag 'omap-for-v6.16/dt-signed' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap:
  ARM: dts: am335x: Set wakeup-source for UART0
  ARM: dts: omap4: panda: cleanup bluetooth
  ARM: dts: omap4: panda: fix resources needed for Wifi
  ARM: dts: nokia n900: remove useless io-channel-cells property

Link: https://lore.kernel.org/r/7hecwvrtmx.fsf@baylibre.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-05-12 10:20:18 +02:00
Jani Nikula
c58af5cd9c drm/i915/irq: stop using HAS_GMCH()
Right or wrong, HAS_GMCH() has become a display only thing. The last
three users outside of display are in irq code. Reorder the if ladders
to stop using HAS_GMCH().

Reviewed-by: Michał Grzelak <michal.grzelak@intel.com>
Link: https://lore.kernel.org/r/20250502120725.439800-1-jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2025-05-12 11:17:24 +03:00
Arnd Bergmann
2b3949f526 OMAP SoC updates for v6.16
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEe4dGDhaSf6n1v/EMWTcYmtP7xmUFAmgg0Q0ACgkQWTcYmtP7
 xmVDxw/6AnCWo6OcvM8ON6b6Z1Gm14IPI+/dUFD1c5Z+JppeEwnEG6SjjllORCOz
 AXC/womnWZ4fcLAYOz2YWaVCzKkXJZha5x/ItgqDsxvtMXF3f1TbiO2tM4WDkrRT
 j1kAGmmDWMvLyaHvDgH4NeJm/3fqe2w46vQL2X+sGqHMrk+/J4TVY31NZa9F/NeI
 2wRhyGzk2LVi4JCOqbeYOC8Sz4TQob9oYkvoknyimH07u2pNZHoaogkWiFjvbZZ9
 C63680cjszP3uDfxYxHC3t8p7GPXmc6Hz51UPs8KmxWHSkSLFkzZT3GRsIr4EmH4
 da1MojdITrsBn2bMHsF4ect7CVVVDt/r4nh60al2BZ1VBwmrc2knse7mc0/IhSuM
 jCtbKFY+FkiVdv59djRapSJn5O9wC39jkmAZyg7Vg7H6B0hLLNkUZI8ZF5gkgHH8
 +CHd678TH9qKQbQZeqQG3ei1uzVmQhpwdR65xW/FKFaQ7xTXscjJhS546xupY1Ip
 Hwvp0hfoIeQ4NERnxGoyRjm4UamXfIo02KfgWuXWd2X982o89NWPvtQeXhfHtkfl
 kvuwrefwbdJATvrspnj1xqSshvLIRz+Ft227G+5Syo5M+co4Ud94or8hn3nNI2SV
 CEAqc/jcaBFOuWruJCgzXv3ES6emC1xPiAtxyjdpG9IZDT1/opU=
 =bEwB
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmghrcgACgkQYKtH/8kJ
 UidH/BAA4BcyVjoM8W4kbccydbPZmOO4L73seuAVFo8HWP5rhwl9Wv5RS188WCfx
 vhw4+PB4AvxnHSAMCw42GlDbZPfm4hBjvcbyu1KwxxMj4bssZGfN43R3Slmd8MpI
 4mZk9UCNY7U6oUlVk/bhap7L3cY3IPU+dSxl/CgmPyrDfG5iwsn/JfJI4yml8J1J
 Nscswku+3MBTKxarMUJBh5VznWuWrPDi+PqlVG+1AEZUsGLzFT2TEf4f+dLi7Vb4
 L2p9cmy0e+LCAzRYDgD3zkjKr6B6LiJHpt9jAD1lIvHJpc4TVZxchio1mqOVT/0D
 i/GPhZ0vzrALfMoH8pU6aXxfZwRfTDyDUvJk4zbCOZxXkUSzLLxx0LXeCxdMmIAi
 zZ7V6dtdRUnPPu/Sdk/RTlQm3kegT4nUjhGkI+XJ03zC6R1WdXV52530imouxOYl
 /R8r8SPhNB3gcxdKph8SeyyEtEv1PvUF+B+Gr9L6jxi61UxxrZy4TSPwwC+QFSRD
 SzmWOwaGtz+ufR9JMD948/r0S27RUFQOrG1sq94VHrGt+Em1QTocOI/mea/T9q/Q
 tWDoDzMl/MdqYO4p6uOXRYxW9ExIFqzAU4baT6co8qj92U3dh80GAbEgH68DONpT
 GAW5/NgCIeIpb5G4bbZyDzsfuzwWgA3YtY64fWGwVO5PFd8uwhk=
 =CmH5
 -----END PGP SIGNATURE-----

Merge tag 'omap-for-v6.16/soc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap into soc/arm

OMAP SoC updates for v6.16

* tag 'omap-for-v6.16/soc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap:
  ARM: OMAP2+: Fix l4ls clk domain handling in STANDBY
  bus: ti-sysc: PRUSS OCP configuration
  ARM: omap: pmic-cpcap: do not mess around without CPCAP or OMAP4
  ARM: omap2plus_defconfig: enable I2C devices of GTA04

Link: https://lore.kernel.org/r/7ha57jrtkl.fsf@baylibre.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-05-12 10:14:00 +02:00
Chen Linxuan
18ee43c398 docs: filesystems: add fuse-passthrough.rst
Add a documentation about FUSE passthrough.

It's mainly about why FUSE passthrough needs CAP_SYS_ADMIN.

Link: https://lore.kernel.org/all/4b64a41c-6167-4c02-8bae-3021270ca519@fastmail.fm/T/#mc73e04df56b8830b1d7b06b5d9f22e594fba423e
Link: https://lore.kernel.org/linux-fsdevel/CAOQ4uxhAY1m7ubJ3p-A3rSufw_53WuDRMT1Zqe_OC0bP_Fb3Zw@mail.gmail.com/
Reviewed-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Chen Linxuan <chenlinxuan@uniontech.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
2025-05-12 10:02:08 +02:00
Chen Linxuan
767c4b8271 MAINTAINERS: update filter of FUSE documentation
There are some fuse-*.rst files in Documentation directory,
let's make get_mantainers.pl work on those file instead of only
fuse.rst.

Reviewed-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Chen Linxuan <chenlinxuan@uniontech.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
2025-05-12 10:01:50 +02:00
Thomas Hellström
5dd933e33b drm/xe: Make the gem shrinker drm managed
Make the xe drm shrinker drm managed like many other resources
created at device creation time.

Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Link: https://lore.kernel.org/r/20250508113015.3374-1-thomas.hellstrom@linux.intel.com
2025-05-12 10:01:31 +02:00
Dr. David Alan Gilbert
174d966428 ALSA: msnd: Remove midi code
Nothing calls snd_msndmidi_new()
  thus nothing sets chip->msndmidi_mpu
    The call to snd_msndmidi_input_read is gated on that being set,
    so snd_msndmidi_input_read() won't be called either.

This is probably a missing call to snd_msndmidi_new(), but since
this is ancient code, it's probably best to remove it (especially
since I don't have the hardware to test it).

Signed-off-by: Dr. David Alan Gilbert <linux@treblig.org>
Link: https://patch.msgid.link/20250511172957.1001583-1-linux@treblig.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2025-05-12 09:55:09 +02:00
Guang Yuan Wu
69efbff69f fuse: fix race between concurrent setattrs from multiple nodes
When mounting a user-space filesystem on multiple clients, after
concurrent ->setattr() calls from different node, stale inode
attributes may be cached in some node.

This is caused by fuse_setattr() racing with
fuse_reverse_inval_inode().

When filesystem server receives setattr request, the client node
with valid iattr cached will be required to update the fuse_inode's
attr_version and invalidate the cache by fuse_reverse_inval_inode(),
and at the next call to ->getattr() they will be fetched from user
space.

The race scenario is:
1. client-1 sends setattr (iattr-1) request to server
2. client-1 receives the reply from server
3. before client-1 updates iattr-1 to the cached attributes by
   fuse_change_attributes_common(), server receives another setattr
   (iattr-2) request from client-2
4. server requests client-1 to update the inode attr_version and
   invalidate the cached iattr, and iattr-1 becomes staled
5. client-2 receives the reply from server, and caches iattr-2
6. continue with step 2, client-1 invokes
   fuse_change_attributes_common(), and caches iattr-1

The issue has been observed from concurrent of chmod, chown, or
truncate, which all invoke ->setattr() call.

The solution is to use fuse_inode's attr_version to check whether
the attributes have been modified during the setattr request's
lifetime.  If so, mark the attributes as invalid in the function
fuse_change_attributes_common().

Signed-off-by: Guang Yuan Wu <gwu@ddn.com>
Reviewed-by: Bernd Schubert <bschubert@ddn.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
2025-05-12 09:40:41 +02:00
Miguel Ojeda
42055939a3 rust: devres: fix doctest build under !CONFIG_PCI
The doctest requires `CONFIG_PCI`:

    error[E0432]: unresolved import `kernel::pci`
        --> rust/doctests_kernel_generated.rs:2689:44
         |
    2689 | use kernel::{device::Core, devres::Devres, pci};
         |                                            ^^^ no `pci` in the root
         |
    note: found an item that was configured out
        --> rust/kernel/lib.rs:96:9
    note: the item is gated here
        --> rust/kernel/lib.rs:95:1

Thus conditionally compile it (which still checks the syntax).

Fixes: f301cb978c ("rust: devres: implement Devres::access()")
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
Link: https://lore.kernel.org/r/20250511182533.1016163-1-ojeda@kernel.org
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
2025-05-12 09:35:44 +02:00
Fabio Estevam
9c1798259b drm/tiny: panel-mipi-dbi: Use drm_client_setup_with_fourcc()
Since commit 559358282e ("drm/fb-helper: Don't use the preferred depth
for the BPP default"), RGB565 displays such as the CFAF240320X no longer
render correctly: colors are distorted and the content is shown twice
horizontally.

This regression is due to the fbdev emulation layer defaulting to 32 bits
per pixel, whereas the display expects 16 bpp (RGB565). As a result, the
framebuffer data is incorrectly interpreted by the panel.

Fix the issue by calling drm_client_setup_with_fourcc() with a format
explicitly selected based on the display's bits-per-pixel value. For 16
bpp, use DRM_FORMAT_RGB565; for other values, fall back to the previous
behavior. This ensures that the allocated framebuffer format matches the
hardware expectations, avoiding color and layout corruption.

Tested on a CFAF240320X display with an RGB565 configuration, confirming
correct colors and layout after applying this patch.

Cc: stable@vger.kernel.org
Fixes: 559358282e ("drm/fb-helper: Don't use the preferred depth for the BPP default")
Signed-off-by: Fabio Estevam <festevam@denx.de>
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://lore.kernel.org/r/20250417103458.2496790-1-festevam@gmail.com
2025-05-12 08:57:04 +02:00
Alexey Charkov
e58afb3e1f ARM: dts: vt8500: list all four timer interrupts
VIA/WonderMedia SoC timer can generate up to four interrupts corresponding
to four timer match registers (firing when the 32-bit freerunning clock
source counter matches either of the match registers, respectively).

List all four interrupts in device trees.

This also enables the system event timer to use a match register other
than 0, which can then in turn be used as a system watchdog (watchdog
function is not available on other channels)

Signed-off-by: Alexey Charkov <alchark@gmail.com>
Link: https://lore.kernel.org/r/20250507-vt8500-timer-updates-v2-4-65e5d1b0855e@gmail.com
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
2025-05-12 08:35:24 +02:00
Alexey Charkov
7314374c86 ARM: dts: vt8500: add DT nodes for the system config ID register
Every VIA/WonderMedia SoC has a 32-bit chip ID register at the
MMIO address 0xd8120000. Add respective device tree nodes to let
the system code access it at runtime for the selection of appropriate
hardware quirks where needed.

Signed-off-by: Alexey Charkov <alchark@gmail.com>
Link: https://lore.kernel.org/r/20250503-wmt-soc-driver-v3-3-2daa9056fa10@gmail.com
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
2025-05-12 08:35:23 +02:00
Alexey Charkov
22488d6bd1 ARM: dts: vt8500: Add VIA APC Rock/Paper board
APC Rock is a development board based on WonderMedia WM8590 released
around 2013. Paper is the same board, but with the VGA port left
unpopulated, and shipped with a recycled cardboard case

Its hardware includes:
* Single-core Cortex-A9 CPU at 800 MHz
* 512MB DDR3 RAM
* 4GB NAND flash
* 8MB SPI NOR flash
* ARM Mali-400 GPU
* HDMI output (type A) capable of 1080p
* VGA output (on Rock, but not on Paper)
* 2x USB 2.0 type A
* 1x USB 2.0 OTG (microUSB connector)
* microSD slot
* 10/100M Ethernet
* 3.5mm minijack connector with combined headphones/mic
* Half-height miniPCIe slot (with only USB 2.0 signals)

Signed-off-by: Alexey Charkov <alchark@gmail.com>
Link: https://lore.kernel.org/r/20250425-apc_paper_binding-v5-2-3aef49e97332@gmail.com
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
2025-05-12 08:35:22 +02:00
Alexey Charkov
3e96de394c dt-bindings: arm: vt8500: Add VIA APC Rock/Paper boards
APC Rock is a development board based on WonderMedia WM8950 SoC
released around 2013. Paper is the same as Rock but lacking a
VGA port and shipped with a recycled cardboard case.

While at that, put myself as the maintainer, given that Tony is
unavailable as of lately.

Acked-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Alexey Charkov <alchark@gmail.com>
Link: https://lore.kernel.org/r/20250425-apc_paper_binding-v5-1-3aef49e97332@gmail.com
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
2025-05-12 08:35:21 +02:00
Dan Carpenter
0169a24036 memory: stm32_omm: Fix NULL vs IS_ERR() check in probe()
The platform_get_resource_byname() function returns NULL on error.  It
doesn't return error pointers.  Update the check to match.

Fixes: 8181d061dc ("memory: Add STM32 Octo Memory Manager driver")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Link: https://lore.kernel.org/r/a1645f1eedaa9b2ae62ac07feed0552eea75bc46.1746781081.git.dan.carpenter@linaro.org
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
2025-05-12 08:32:14 +02:00
Dan Carpenter
d44eeb20d9 memory: stm32_omm: Fix error handling in stm32_omm_configure()
There are two error handling bugs in the stm32_omm_configure() function.
1) The error code needs to be set if clk_get_rate() fails.
2) If devm_reset_control_get_exclusive() then call
   pm_runtime_put_sync_suspend() before returning.

Fixes: 8181d061dc ("memory: Add STM32 Octo Memory Manager driver")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Link: https://lore.kernel.org/r/a69ce0445324e994ea2ed7493bda1f6046c7ff69.1746781081.git.dan.carpenter@linaro.org
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
2025-05-12 08:32:13 +02:00
Colin Ian King
9c03507fcd memory: stm32: Fix spelling mistake "resset" -> "reset"
There is a spelling mistake in a dev_err message. Fix it.

Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
Link: https://lore.kernel.org/r/20250509104459.28167-1-colin.i.king@gmail.com
Fixes: 8181d061dc ("memory: Add STM32 Octo Memory Manager driver")
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
2025-05-12 08:32:08 +02:00
Pritam Manohar Sutar
81214185e7 clk: samsung: correct clock summary for hsi1 block
clk_summary shows wrong value for "mout_hsi1_usbdrd_user".
It shows 400Mhz instead of 40Mhz as below.

dout_shared2_div4           1 1 0 400000000 0 0 50000 Y ...
  mout_hsi1_usbdrd_user     0 0 0 400000000 0 0 50000 Y ...
    dout_clkcmu_hsi1_usbdrd 0 0 0 40000000  0 0 50000 Y ...

Correct the clk_tree by adding correct clock parent for
"mout_hsi1_usbdrd_user".

Post this change, clk_summary shows correct value.

dout_shared2_div4           1 1 0 400000000 0 0 50000 Y ...
  mout_clkcmu_hsi1_usbdrd   0 0 0 400000000 0 0 50000 Y ...
    dout_clkcmu_hsi1_usbdrd 0 0 0 40000000  0 0 50000 Y ...
      mout_hsi1_usbdrd_user 0 0 0 40000000  0 0 50000 Y ...

Fixes: 485e13fe2f ("clk: samsung: add top clock support for ExynosAuto v920 SoC")
Cc: <stable@kernel.org>
Signed-off-by: Pritam Manohar Sutar <pritam.sutar@samsung.com>
Reviewed-by: Alim Akhtar <alim.akhtar@samsung.com>
Link: https://lore.kernel.org/r/20250506080154.3995512-1-pritam.sutar@samsung.com
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
2025-05-12 08:30:06 +02:00
Masahiro Yamada
e0cd396d89 kbuild: fix typos "module.builtin" to "modules.builtin"
The filenames in the comments do not match the actual generated files.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
2025-05-12 15:04:52 +09:00
Thomas Weißschuh
8cf5b3f836 Revert "kbuild, rust: use -fremap-path-prefix to make paths relative"
This reverts commit dbdffaf50f.

--remap-path-prefix breaks the ability of debuggers to find the source
file corresponding to object files. As there is no simple or uniform
way to specify the source directory explicitly, this breaks developers
workflows.

Revert the unconditional usage of --remap-path-prefix, equivalent to the
same change for -ffile-prefix-map in KBUILD_CPPFLAGS.

Fixes: dbdffaf50f ("kbuild, rust: use -fremap-path-prefix to make paths relative")
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Acked-by: Miguel Ojeda <ojeda@kernel.org>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
2025-05-12 15:04:13 +09:00
Thomas Weißschuh
020d7f1448 Revert "kbuild: make all file references relative to source root"
This reverts commit cacd22ce69.

-ffile-prefix-map breaks the ability of debuggers to find the source
file corresponding to object files. As there is no simple or uniform
way to specify the source directory explicitly, this breaks developers
workflows.

Revert the unconditional usage of -ffile-prefix-map.

Reported-by: Matthieu Baerts <matttbe@kernel.org>
Closes: https://lore.kernel.org/lkml/edc50aa7-0740-4942-8c15-96f12f2acc7e@kernel.org/
Reported-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Closes: https://lore.kernel.org/lkml/aBEttQH4kimHFScx@intel.com/
Fixes: cacd22ce69 ("kbuild: make all file references relative to source root")
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
2025-05-12 15:04:13 +09:00
Masahiro Yamada
f0e4b333cf kbuild: fix dependency on sorttable
Commit ac4f06789b ("kbuild: Create intermediate vmlinux build with
relocations preserved") missed replacing one occurrence of "vmlinux"
that was added during the same development cycle.

Fixes: ac4f06789b ("kbuild: Create intermediate vmlinux build with relocations preserved")
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
2025-05-12 15:04:09 +09:00
Masahiro Yamada
d1b99cdf22 init: remove unused CONFIG_CC_CAN_LINK_STATIC
This is a leftover from commit 98e20e5e13 ("bpfilter: remove bpfilter").

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
2025-05-12 15:03:46 +09:00
Masahiro Yamada
ab09da7570 um: let 'make clean' properly clean underlying SUBARCH as well
Building the kernel with O= is affected by stale in-tree build artifacts.

So, if the source tree is not clean, Kbuild displays the following:

  $ make ARCH=um O=build defconfig
  make[1]: Entering directory '/.../linux/build'
  ***
  *** The source tree is not clean, please run 'make ARCH=um mrproper'
  *** in /.../linux
  ***
  make[2]: *** [/.../linux/Makefile:673: outputmakefile] Error 1
  make[1]: *** [/.../linux/Makefile:248: __sub-make] Error 2
  make[1]: Leaving directory '/.../linux/build'
  make: *** [Makefile:248: __sub-make] Error 2

Usually, running 'make mrproper' is sufficient for cleaning the source
tree for out-of-tree builds.

However, building UML generates build artifacts not only in arch/um/,
but also in the SUBARCH directory (i.e., arch/x86/). If in-tree stale
files remain under arch/x86/, Kbuild will reuse them instead of creating
new ones under the specified build directory.

This commit makes 'make ARCH=um clean' recurse into the SUBARCH directory.

Reported-by: Shuah Khan <skhan@linuxfoundation.org>
Closes: https://lore.kernel.org/lkml/20250502172459.14175-1-skhan@linuxfoundation.org/
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Reviewed-by: David Gow <davidgow@google.com>
Reviewed-by: Shuah Khan <skhan@linuxfoundation.org>
2025-05-12 15:03:42 +09:00
Nathan Chancellor
d0afcfeb9e kbuild: Disable -Wdefault-const-init-unsafe
A new on by default warning in clang [1] aims to flags instances where
const variables without static or thread local storage or const members
in aggregate types are not initialized because it can lead to an
indeterminate value. This is quite noisy for the kernel due to
instances originating from header files such as:

  drivers/gpu/drm/i915/gt/intel_ring.h:62:2: error: default initialization of an object of type 'typeof (ring->size)' (aka 'const unsigned int') leaves the object uninitialized [-Werror,-Wdefault-const-init-var-unsafe]
     62 |         typecheck(typeof(ring->size), next);
        |         ^
  include/linux/typecheck.h:10:9: note: expanded from macro 'typecheck'
     10 | ({      type __dummy; \
        |              ^

  include/net/ip.h:478:14: error: default initialization of an object of type 'typeof (rt->dst.expires)' (aka 'const unsigned long') leaves the object uninitialized [-Werror,-Wdefault-const-init-var-unsafe]
    478 |                 if (mtu && time_before(jiffies, rt->dst.expires))
        |                            ^
  include/linux/jiffies.h:138:26: note: expanded from macro 'time_before'
    138 | #define time_before(a,b)        time_after(b,a)
        |                                 ^
  include/linux/jiffies.h:128:3: note: expanded from macro 'time_after'
    128 |         (typecheck(unsigned long, a) && \
        |          ^
  include/linux/typecheck.h:11:12: note: expanded from macro 'typecheck'
     11 |         typeof(x) __dummy2; \
        |                   ^

  include/linux/list.h:409:27: warning: default initialization of an object of type 'union (unnamed union at include/linux/list.h:409:27)' with const member leaves the object uninitialized [-Wdefault-const-init-field-unsafe]
    409 |         struct list_head *next = smp_load_acquire(&head->next);
        |                                  ^
  include/asm-generic/barrier.h:176:29: note: expanded from macro 'smp_load_acquire'
    176 | #define smp_load_acquire(p) __smp_load_acquire(p)
        |                             ^
  arch/arm64/include/asm/barrier.h:164:59: note: expanded from macro '__smp_load_acquire'
    164 |         union { __unqual_scalar_typeof(*p) __val; char __c[1]; } __u;   \
        |                                                                  ^
  include/linux/list.h:409:27: note: member '__val' declared 'const' here

  crypto/scatterwalk.c:66:22: error: default initialization of an object of type 'struct scatter_walk' with const member leaves the object uninitialized [-Werror,-Wdefault-const-init-field-unsafe]
     66 |         struct scatter_walk walk;
        |                             ^
  include/crypto/algapi.h:112:15: note: member 'addr' declared 'const' here
    112 |                 void *const addr;
        |                             ^

  fs/hugetlbfs/inode.c:733:24: error: default initialization of an object of type 'struct vm_area_struct' with const member leaves the object uninitialized [-Werror,-Wdefault-const-init-field-unsafe]
    733 |         struct vm_area_struct pseudo_vma;
        |                               ^
  include/linux/mm_types.h:803:20: note: member 'vm_flags' declared 'const' here
    803 |                 const vm_flags_t vm_flags;
        |                                  ^

Silencing the instances from typecheck.h is difficult because '= {}' is
not available in older but supported compilers and '= {0}' would cause
warnings about a literal 0 being treated as NULL. While it might be
possible to come up with a local hack to silence the warning for
clang-21+, it may not be worth it since -Wuninitialized will still
trigger if an uninitialized const variable is actually used.

In all audited cases of the "field" variant of the warning, the members
are either not used in the particular call path, modified through other
means such as memset() / memcpy() because the containing object is not
const, or are within a union with other non-const members.

Since this warning does not appear to have a high signal to noise ratio,
just disable it.

Cc: stable@vger.kernel.org
Link: 576161cb60 [1]
Reported-by: Linux Kernel Functional Testing <lkft@linaro.org>
Closes: https://lore.kernel.org/CA+G9fYuNjKcxFKS_MKPRuga32XbndkLGcY-PVuoSwzv6VWbY=w@mail.gmail.com/
Reported-by: Marcus Seyfarth <m.seyfarth@gmail.com>
Closes: https://github.com/ClangBuiltLinux/linux/issues/2088
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
2025-05-12 15:03:17 +09:00
WangYuli
5bd6bdd0f7 kbuild: rpm-pkg: Add (elfutils-devel or libdw-devel) to BuildRequires
The dwarf.h header, which is included by
scripts/gendwarfksyms/gendwarfksyms.h, resides within elfutils-devel
or libdw-devel package.

This portion of the code is compiled under the condition that
CONFIG_GENDWARFKSYMS is enabled.

Consequently, add (elfutils-devel or libdw-devel) to BuildRequires to
prevent unforeseen compilation failures.

Fix follow possible error:
  In file included from scripts/gendwarfksyms/cache.c:6:
  scripts/gendwarfksyms/gendwarfksyms.h:6:10: fatal error: 'dwarf.h' file not found
      6 | #include <dwarf.h>
        |          ^~~~~~~~~

Link: https://lore.kernel.org/all/3e52d80d-0c60-4df5-8cb5-21d4b1fce7b7@suse.com/
Fixes: f28568841a ("tools: Add gendwarfksyms")
Suggested-by: Petr Pavlu <petr.pavlu@suse.com>
Signed-off-by: WangYuli <wangyuli@uniontech.com>
Reviewed-by: Nicolas Schier <n.schier@avm.de>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
2025-05-12 15:03:17 +09:00
WangYuli
657f96cb7c kbuild: deb-pkg: Add libdw-dev:native to Build-Depends-Arch
The dwarf.h header, which is included by
scripts/gendwarfksyms/gendwarfksyms.h, resides within the libdw-dev
package.

This portion of the code is compiled under the condition that
CONFIG_GENDWARFKSYMS is enabled.

Consequently, add libdw-dev to Build-Depends-Arch to prevent
unforeseen compilation failures.

Fix follow possible error:
  In file included from scripts/gendwarfksyms/symbols.c:6:
  scripts/gendwarfksyms/gendwarfksyms.h:6:10: fatal error: 'dwarf.h' file not found
      6 | #include <dwarf.h>
        |          ^~~~~~~~~

Fixes: f28568841a ("tools: Add gendwarfksyms")
Reviewed-by: Sami Tolvanen <samitolvanen@google.com>
Signed-off-by: WangYuli <wangyuli@uniontech.com>
Reviewed-by: Nicolas Schier <n.schier@avm.de>
Tested-by: Nicolas Schier <n.schier@avm.de>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
2025-05-12 15:03:17 +09:00
Randy Dunlap
56045757ac usr/include: openrisc: don't HDRTEST bpf_perf_event.h
Since openrisc does not support PERF_EVENTS, omit the HDRTEST of
bpf_perf_event.h for arch/openrisc/.

Fixes a build error:
usr/include/linux/bpf_perf_event.h:14:28: error: field 'regs' has incomplete type

Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Acked-by: Stafford Horne <shorne@gmail.com>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
2025-05-12 15:03:17 +09:00
Sami Tolvanen
9520a2b3f0 kbuild: Require pahole <v1.28 or >v1.29 with GENDWARFKSYMS on X86
With CONFIG_GENDWARFKSYMS, __gendwarfksyms_ptr variables are
added to the kernel in EXPORT_SYMBOL() to ensure DWARF type
information is available for exported symbols in the TUs where
they're actually exported. These symbols are dropped when linking
vmlinux, but dangling references to them remain in DWARF.

With CONFIG_DEBUG_INFO_BTF enabled on X86, pahole versions after
commit 47dcb534e253 ("btf_encoder: Stop indexing symbols for
VARs") and before commit 9810758003ce ("btf_encoder: Verify 0
address DWARF variables are in ELF section") place these symbols
in the .data..percpu section, which results in an "Invalid
offset" error in btf_datasec_check_meta() during boot, as all
the variables are at zero offset and have non-zero size. If
CONFIG_DEBUG_INFO_BTF_MODULES is enabled, this also results in a
failure to load modules with:

  failed to validate module [$module] BTF: -22

As the issue occurs in pahole v1.28 and the fix was merged
after v1.29 was released, require pahole <v1.28 or >v1.29 when
GENDWARFKSYMS is enabled with DEBUG_INFO_BTF on X86.

Reported-by: Paolo Pisati <paolo.pisati@canonical.com>
Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
2025-05-12 15:03:16 +09:00
Eric Biggers
57999ed153 crypto: testmgr - enable CRYPTO_MANAGER when CRYPTO_SELFTESTS
crypto/testmgr.c is compiled only when CRYPTO_MANAGER is enabled.  To
make CRYPTO_SELFTESTS work as expected when CRYPTO_MANAGER doesn't get
enabled for another reason, automatically set CRYPTO_MANAGER to the
value of CRYPTO_ALGAPI when CRYPTO_SELFTESTS is enabled.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2025-05-12 13:34:04 +08:00
Eric Biggers
6f9d0f53f5 crypto: Kconfig - make CRYPTO_MANAGER a hidden symbol
There is no reason for people configuring the kernel to be asked about
CRYPTO_MANAGER, so make it a hidden symbol.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2025-05-12 13:34:03 +08:00
Eric Biggers
42e45119ef crypto: testmgr - rename noextratests to noslowtests
Rename the noextratests module parameter to noslowtests, and replace
other remaining mentions of "extra" in the code with "slow".  This
addresses confusion regarding the word "extra" like that seen at
https://lore.kernel.org/r/6cecf2de-9aa0-f6ea-0c2d-8e974a1a820b@huawei.com/.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2025-05-12 13:34:03 +08:00
Eric Biggers
698de82278 crypto: testmgr - make it easier to enable the full set of tests
Currently the full set of crypto self-tests requires
CONFIG_CRYPTO_MANAGER_EXTRA_TESTS=y.  This is problematic in two ways.
First, developers regularly overlook this option.  Second, the
description of the tests as "extra" sometimes gives the impression that
it is not required that all algorithms pass these tests.

Given that the main use case for the crypto self-tests is for
developers, make enabling CONFIG_CRYPTO_SELFTESTS=y just enable the full
set of crypto self-tests by default.

The slow tests can still be disabled by adding the command-line
parameter cryptomgr.noextratests=1, soon to be renamed to
cryptomgr.noslowtests=1.  The only known use case for doing this is for
people trying to use the crypto self-tests to satisfy the FIPS 140-3
pre-operational self-testing requirements when the kernel is being
validated as a FIPS 140-3 cryptographic module.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2025-05-12 13:34:03 +08:00
Eric Biggers
40b9969796 crypto: testmgr - replace CRYPTO_MANAGER_DISABLE_TESTS with CRYPTO_SELFTESTS
The negative-sense of CRYPTO_MANAGER_DISABLE_TESTS is a longstanding
mistake that regularly causes confusion.  Especially bad is that you can
have CRYPTO=n && CRYPTO_MANAGER_DISABLE_TESTS=n, which is ambiguous.

Replace CRYPTO_MANAGER_DISABLE_TESTS with CRYPTO_SELFTESTS which has the
expected behavior.

The tests continue to be disabled by default.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2025-05-12 13:33:14 +08:00
Eric Biggers
d469eaed22 crypto: testmgr - remove panic_on_fail
The cryptomgr.panic_on_fail=1 kernel command-line parameter is not very
useful now that the tests have been fixed to WARN on failure, since
developers can just use panic_on_warn=1 instead.  There's no need for a
special option just for the crypto self-tests.  Remove it.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2025-05-12 13:32:53 +08:00
Eric Biggers
3357b6c945 crypto: tcrypt - rename CRYPTO_TEST to CRYPTO_BENCHMARK
tcrypt is actually a benchmarking module and not the actual tests.  This
regularly causes confusion.  Update the kconfig option name and help
text accordingly.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org> # m68k
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2025-05-12 13:32:53 +08:00
Eric Biggers
aeaad5bfb1 crypto: null - use memcpy_sglist()
Make null_skcipher_crypt() use memcpy_sglist() instead of the
skcipher_walk API, as this is simpler.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2025-05-12 13:32:53 +08:00
Eric Biggers
bde393057b crypto: null - merge CRYPTO_NULL2 into CRYPTO_NULL
There is no reason to have separate CRYPTO_NULL2 and CRYPTO_NULL
options.  Just merge them into CRYPTO_NULL.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2025-05-12 13:32:53 +08:00
Eric Biggers
c10f66b0ac crypto: null - remove the default null skcipher
crypto_get_default_null_skcipher() and
crypto_put_default_null_skcipher() are no longer used, so remove them.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2025-05-12 13:32:53 +08:00
Eric Biggers
0c08c72980 crypto: krb5enc - do not select CRYPTO_NULL
The krb5enc code does not use any of the so-called "null algorithms", so
it does not need to select CRYPTO_NULL.  Presumably this unused
dependency got copied from one of the other kconfig options.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2025-05-12 13:32:53 +08:00
Eric Biggers
d8aeec147a crypto: geniv - use memcpy_sglist() instead of null skcipher
For copying data between two scatterlists, just use memcpy_sglist()
instead of the so-called "null skcipher".  This is much simpler.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2025-05-12 13:32:53 +08:00
Eric Biggers
4e39d0712e crypto: gcm - use memcpy_sglist() instead of null skcipher
For copying data between two scatterlists, just use memcpy_sglist()
instead of the so-called "null skcipher".  This is much simpler.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2025-05-12 13:32:53 +08:00
Eric Biggers
dbc4b1458e crypto: authenc - use memcpy_sglist() instead of null skcipher
For copying data between two scatterlists, just use memcpy_sglist()
instead of the so-called "null skcipher".  This is much simpler.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2025-05-12 13:32:53 +08:00
Eric Biggers
f2804d0eee crypto: algif_aead - use memcpy_sglist() instead of null skcipher
For copying data between two scatterlists, just use memcpy_sglist()
instead of the so-called "null skcipher".  This is much simpler.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2025-05-12 13:32:53 +08:00
Eric Biggers
bdc2a55687 crypto: lib/chacha - add array bounds to function prototypes
Add explicit array bounds to the function prototypes for the parameters
that didn't already get handled by the conversion to use chacha_state:

- chacha_block_*():
  Change 'u8 *out' or 'u8 *stream' to u8 out[CHACHA_BLOCK_SIZE].

- hchacha_block_*():
  Change 'u32 *out' or 'u32 *stream' to u32 out[HCHACHA_OUT_WORDS].

- chacha_init():
  Change 'const u32 *key' to 'const u32 key[CHACHA_KEY_WORDS]'.
  Change 'const u8 *iv' to 'const u8 iv[CHACHA_IV_SIZE]'.

No functional changes.  This just makes it clear when fixed-size arrays
are expected.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2025-05-12 13:32:53 +08:00