No description
  • C 96.9%
  • Assembly 0.9%
  • Rust 0.6%
  • Shell 0.6%
  • Python 0.5%
  • Other 0.3%
Find a file
Bartosz Golaszewski efb8235bfd gpiolib: revert the attempt to protect the GPIO device list with an rwsem
This reverts commits 1979a28075 ("gpiolib: replace the GPIO device
mutex with a read-write semaphore") and 65a828bab1 ("gpiolib: use
a mutex to protect the list of GPIO devices").

Unfortunately the legacy GPIO API that's still used in older code has to
translate numbers from the global GPIO numberspace to descriptors. This
results in a GPIO device lookup in every call to legacy functions. Some
of those functions - like gpio_set/get_value() - can be called from
atomic context so taking a sleeping lock that is an RW semaphore results
in an error.

We'll probably have to protect this list with SRCU.

Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Closes: https://lore.kernel.org/linux-wireless/f7b5ff1e-8f34-4d98-a7be-b826cb897dc8@moroto.mountain/
Fixes: 1979a28075 ("gpiolib: replace the GPIO device mutex with a read-write semaphore")
Fixes: 65a828bab1 ("gpiolib: use a mutex to protect the list of GPIO devices")
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
History 2024-01-17 09:52:37 +01:00
arch sound updates for 6.8-rc1 2024-01-12 11:55:28 -08:00
block for-6.8/block-2024-01-08 2024-01-11 13:58:04 -08:00
certs This update includes the following changes: 2023-11-02 16:15:30 -10:00
crypto crypto: scomp - fix req->dst buffer overflow 2023-12-29 11:25:56 +08:00
Documentation dt-bindings: gpio: xilinx: Fix node address in gpio 2024-01-15 11:09:42 +01:00
drivers gpiolib: revert the attempt to protect the GPIO device list with an rwsem 2024-01-17 09:52:37 +01:00
fs f2fs update for 6.8-rc1 2024-01-11 20:39:15 -08:00
include gpiolib: Fix scope-based gpio_device refcounting 2024-01-15 18:41:29 +01:00
init header cleanups for 6.8 2024-01-10 16:43:55 -08:00
io_uring for-6.8/io_uring-2024-01-08 2024-01-11 14:19:23 -08:00
ipc shm: Slim down dependencies 2023-12-20 19:26:31 -05:00
kernel dma-mapping updates for Linux 6.8 2024-01-11 13:46:50 -08:00
lib Networking changes for 6.8. 2024-01-11 10:07:29 -08:00
LICENSES LICENSES: Add the copyleft-next-0.3.1 license 2022-11-08 15:44:01 +01:00
mm Networking changes for 6.8. 2024-01-11 10:07:29 -08:00
net for-6.8/io_uring-2024-01-08 2024-01-11 14:19:23 -08:00
rust Rust changes for v6.8 2024-01-11 13:05:41 -08:00
samples Networking changes for 6.8. 2024-01-11 10:07:29 -08:00
scripts Another moderately busy cycle for documentation, including: 2024-01-11 19:46:52 -08:00
security misc cleanups (the part that hadn't been picked by individual fs trees) 2024-01-11 20:23:50 -08:00
sound sound updates for 6.8-rc1 2024-01-12 11:55:28 -08:00
tools sound updates for 6.8-rc1 2024-01-12 11:55:28 -08:00
usr usr/Kconfig: fix typos of "its" 2023-12-20 15:02:58 -08:00
virt vfs-6.8.misc 2024-01-08 10:26:08 -08:00
.clang-format clang-format: Update with v6.7-rc4's for_each macro list 2023-12-08 23:54:38 +01:00
.cocciconfig scripts: add Linux .cocciconfig for coccinelle 2016-07-22 12:13:39 +02:00
.get_maintainer.ignore get_maintainer: add Alan to .get_maintainer.ignore 2022-08-20 15:17:44 -07:00
.gitattributes .gitattributes: set diff driver for Rust source code files 2023-05-31 17:48:25 +02:00
.gitignore kbuild: rpm-pkg: generate kernel.spec in rpmbuild/SPECS/ 2023-10-03 20:49:09 +09:00
.mailmap Networking changes for 6.8. 2024-01-11 10:07:29 -08:00
.rustfmt.toml rust: add .rustfmt.toml 2022-09-28 09:02:20 +02:00
COPYING COPYING: state that all contributions really are covered by this file 2020-02-10 13:32:20 -08:00
CREDITS Another moderately busy cycle for documentation, including: 2024-01-11 19:46:52 -08:00
Kbuild Kbuild updates for v6.1 2022-10-10 12:00:45 -07:00
Kconfig kbuild: ensure full rebuild when the compiler is updated 2020-05-12 13:28:33 +09:00
MAINTAINERS linux-watchdog 6.8-rc1 tag 2024-01-12 13:32:30 -08:00
Makefile Quite a lot of kexec work this time around. Many singleton patches in 2024-01-09 11:46:20 -08:00
README Drop all 00-INDEX files from Documentation/ 2018-09-09 15:08:58 -06:00

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.