summaryrefslogtreecommitdiff
path: root/libre/linux-libre-pae
diff options
context:
space:
mode:
authorDavid P <megver83@parabola.nu>2021-01-16 00:13:21 -0500
committerDavid P <megver83@parabola.nu>2021-01-16 00:13:21 -0500
commit082830e5d5cca82108664638ffa2e41881992c25 (patch)
treed920086589305f165b740b9d83534feff74a3e57 /libre/linux-libre-pae
parent516f8c0519b9b86537ab73e70ed2b3d5c44716d3 (diff)
downloadabslibre-082830e5d5cca82108664638ffa2e41881992c25.tar.gz
abslibre-082830e5d5cca82108664638ffa2e41881992c25.tar.bz2
abslibre-082830e5d5cca82108664638ffa2e41881992c25.zip
updpkg: libre/linux-libre-pae 5.10.7-1
Signed-off-by: David P <megver83@parabola.nu>
Diffstat (limited to 'libre/linux-libre-pae')
-rw-r--r--libre/linux-libre-pae/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch26
-rw-r--r--libre/linux-libre-pae/0002-HID-quirks-Add-Apple-Magic-Trackpad-2-to-hid_have_sp.patch36
-rw-r--r--libre/linux-libre-pae/0002-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch645
-rw-r--r--libre/linux-libre-pae/0003-iwlwifi-Fix-regression-from-UDP-segmentation-support.patch34
-rw-r--r--libre/linux-libre-pae/0004-btrfs-fix-deadlock-when-cloning-inline-extent-and-lo.patch325
-rw-r--r--libre/linux-libre-pae/0005-btrfs-shrink-delalloc-pages-instead-of-full-inodes.patch184
-rw-r--r--libre/linux-libre-pae/PKGBUILD27
-rw-r--r--libre/linux-libre-pae/config410
-rw-r--r--libre/linux-libre-pae/sphinx-workaround.patch13
9 files changed, 871 insertions, 829 deletions
diff --git a/libre/linux-libre-pae/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch b/libre/linux-libre-pae/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch
index ca95df44e..52ac4fc19 100644
--- a/libre/linux-libre-pae/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch
+++ b/libre/linux-libre-pae/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch
@@ -1,7 +1,7 @@
-From ee973f29fd8052778034537949843b801e888c58 Mon Sep 17 00:00:00 2001
+From 2c517031bd7c5d34a05980c656ce2b6c6fbf1f78 Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
Date: Mon, 16 Sep 2019 04:53:20 +0200
-Subject: [PATCH 1/2] ZEN: Add sysctl and CONFIG to disallow unprivileged
+Subject: [PATCH 1/5] ZEN: Add sysctl and CONFIG to disallow unprivileged
CLONE_NEWUSER
Our default behavior continues to match the vanilla kernel.
@@ -36,10 +36,10 @@ index 6ef1c7109fc4..2140091b0b8d 100644
{
return &init_user_ns;
diff --git a/init/Kconfig b/init/Kconfig
-index 0498af567f70..078a0b73effd 100644
+index 0872a5a2e759..a40d8afeb1bb 100644
--- a/init/Kconfig
+++ b/init/Kconfig
-@@ -1140,6 +1140,22 @@ config USER_NS
+@@ -1173,6 +1173,22 @@ config USER_NS
If unsure, say N.
@@ -63,12 +63,12 @@ index 0498af567f70..078a0b73effd 100644
bool "PID Namespaces"
default y
diff --git a/kernel/fork.c b/kernel/fork.c
-index efc5493203ae..90859b7531d3 100644
+index c675fdbd3dce..9266039e28e4 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
-@@ -96,6 +96,10 @@
- #include <linux/kasan.h>
+@@ -97,6 +97,10 @@
#include <linux/scs.h>
+ #include <linux/io_uring.h>
+#ifdef CONFIG_USER_NS
+#include <linux/user_namespace.h>
@@ -77,7 +77,7 @@ index efc5493203ae..90859b7531d3 100644
#include <asm/pgalloc.h>
#include <linux/uaccess.h>
#include <asm/mmu_context.h>
-@@ -1861,6 +1865,10 @@ static __latent_entropy struct task_struct *copy_process(
+@@ -1863,6 +1867,10 @@ static __latent_entropy struct task_struct *copy_process(
if ((clone_flags & (CLONE_NEWUSER|CLONE_FS)) == (CLONE_NEWUSER|CLONE_FS))
return ERR_PTR(-EINVAL);
@@ -88,7 +88,7 @@ index efc5493203ae..90859b7531d3 100644
/*
* Thread groups must share signals as well, and detached threads
* can only be started up within the thread group.
-@@ -2961,6 +2969,12 @@ int ksys_unshare(unsigned long unshare_flags)
+@@ -2928,6 +2936,12 @@ int ksys_unshare(unsigned long unshare_flags)
if (unshare_flags & CLONE_NEWNS)
unshare_flags |= CLONE_FS;
@@ -102,7 +102,7 @@ index efc5493203ae..90859b7531d3 100644
if (err)
goto bad_unshare_out;
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
-index db1ce7af2563..9b73467e279d 100644
+index afad085960b8..a94828fb31c2 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -103,6 +103,9 @@
@@ -115,7 +115,7 @@ index db1ce7af2563..9b73467e279d 100644
#if defined(CONFIG_SYSCTL)
-@@ -1882,6 +1885,15 @@ static struct ctl_table kern_table[] = {
+@@ -1902,6 +1905,15 @@ static struct ctl_table kern_table[] = {
.proc_handler = proc_dointvec,
},
#endif
@@ -132,7 +132,7 @@ index db1ce7af2563..9b73467e279d 100644
{
.procname = "tainted",
diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c
-index 87804e0371fe..66b5afb0d0ee 100644
+index e703d5d9cbe8..5758274feaee 100644
--- a/kernel/user_namespace.c
+++ b/kernel/user_namespace.c
@@ -21,6 +21,13 @@
@@ -150,5 +150,5 @@ index 87804e0371fe..66b5afb0d0ee 100644
static DEFINE_MUTEX(userns_state_mutex);
--
-2.28.0
+2.30.0
diff --git a/libre/linux-libre-pae/0002-HID-quirks-Add-Apple-Magic-Trackpad-2-to-hid_have_sp.patch b/libre/linux-libre-pae/0002-HID-quirks-Add-Apple-Magic-Trackpad-2-to-hid_have_sp.patch
new file mode 100644
index 000000000..e4a5dd4bc
--- /dev/null
+++ b/libre/linux-libre-pae/0002-HID-quirks-Add-Apple-Magic-Trackpad-2-to-hid_have_sp.patch
@@ -0,0 +1,36 @@
+From eeab2ccf0d788a6895b3b9a21c505d78ceec43e0 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Felix=20H=C3=A4dicke?= <felixhaedicke@web.de>
+Date: Thu, 19 Nov 2020 09:22:32 +0100
+Subject: [PATCH 2/5] HID: quirks: Add Apple Magic Trackpad 2 to
+ hid_have_special_driver list
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The Apple Magic Trackpad 2 is handled by the magicmouse driver. And
+there were severe stability issues when both drivers (hid-generic and
+hid-magicmouse) were loaded for this device.
+
+Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=210241
+
+Signed-off-by: Felix Hädicke <felixhaedicke@web.de>
+---
+ drivers/hid/hid-quirks.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/drivers/hid/hid-quirks.c b/drivers/hid/hid-quirks.c
+index bf7ecab5d9e5..142e9dae2837 100644
+--- a/drivers/hid/hid-quirks.c
++++ b/drivers/hid/hid-quirks.c
+@@ -478,6 +478,8 @@ static const struct hid_device_id hid_have_special_driver[] = {
+ #if IS_ENABLED(CONFIG_HID_MAGICMOUSE)
+ { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGICMOUSE) },
+ { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGICTRACKPAD) },
++ { HID_BLUETOOTH_DEVICE(BT_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGICTRACKPAD2) },
++ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGICTRACKPAD2) },
+ #endif
+ #if IS_ENABLED(CONFIG_HID_MAYFLASH)
+ { HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_PS3) },
+--
+2.30.0
+
diff --git a/libre/linux-libre-pae/0002-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch b/libre/linux-libre-pae/0002-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch
deleted file mode 100644
index d2b6daffc..000000000
--- a/libre/linux-libre-pae/0002-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch
+++ /dev/null
@@ -1,645 +0,0 @@
-From a7bb76b9ccdee2a1af7825b16cc0839a17ad7a5b Mon Sep 17 00:00:00 2001
-From: "Jan Alexander Steffens (heftig)" <heftig@archlinux.org>
-Date: Wed, 15 Jul 2020 22:42:07 +0200
-Subject: [PATCH 2/2] virt: vbox: Add support for the new
- VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES ioctl
-
-https://lore.kernel.org/patchwork/cover/1270301/
-
-Needed for https://bugs.archlinux.org/task/67253
-
-Squashed commit of the following:
-
-commit 0d7bec556896815f4920a5ed87339732c697175c
-Author: Hans de Goede <hdegoede@redhat.com>
-Date: Thu Jul 9 14:08:58 2020 +0200
-
- virt: vbox: Fix some comments which talk about the "session spinlock"
-
- The session lock is a mutex, not a spinlock, fix the comments to match.
-
- Acked-by: Arnd Bergmann <arnd@arndb.de>
- Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-
-commit fed91350029e0c3bf626bd55a148e766587ec439
-Author: Hans de Goede <hdegoede@redhat.com>
-Date: Thu Jul 9 14:08:57 2020 +0200
-
- virt: vbox: Log unknown ioctl requests as error
-
- Every now and then upstream adds new ioctls without notifying us,
- log unknown ioctl requests as an error to catch these.
-
- Acked-by: Arnd Bergmann <arnd@arndb.de>
- Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-
-commit 245d06f4c1b8f84cde07d14c09296a4fe90a26f0
-Author: Hans de Goede <hdegoede@redhat.com>
-Date: Thu Jul 9 14:08:56 2020 +0200
-
- virt: vbox: Add a few new vmmdev request types to the userspace whitelist
-
- Upstream VirtualBox has defined and is using a few new request types for
- vmmdev requests passed through /dev/vboxguest to the hypervisor.
-
- Add the defines for these to vbox_vmmdev_types.h and add add them to the
- whitelists of vmmdev requests which userspace is allowed to make.
-
- BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1789545
- Acked-by: Arnd Bergmann <arnd@arndb.de>
- Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-
-commit 2f24f5446915322bbbb1ccf4ee2297512feab942
-Author: Hans de Goede <hdegoede@redhat.com>
-Date: Thu Jul 9 14:08:55 2020 +0200
-
- virt: vbox: Add support for the new VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES ioctl
-
- Add support for the new VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES ioctl, this
- is necessary for automatic resizing of the guest resolution to match the
- VM-window size to work with the new VMSVGA virtual GPU which is now the
- new default in VirtualBox.
-
- BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1789545
- Acked-by: Arnd Bergmann <arnd@arndb.de>
- Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-
-commit 2fc9822453e8dd215765cd2b28e5e6e26338829e
-Author: Hans de Goede <hdegoede@redhat.com>
-Date: Thu Jul 9 14:08:54 2020 +0200
-
- virt: vbox: Add vbg_set_host_capabilities() helper function
-
- Add vbg_set_host_capabilities() helper function, this is a preparation
- patch for adding support for the VBGL_IOCTL_GUEST_CAPS_ACQUIRE ioctl.
-
- Acked-by: Arnd Bergmann <arnd@arndb.de>
- Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-
-commit 1594daf929c8691849c00e49e4a1ed977048addc
-Author: Hans de Goede <hdegoede@redhat.com>
-Date: Thu Jul 9 14:08:53 2020 +0200
-
- virt: vbox: Rename guest_caps struct members to set_guest_caps
-
- Rename guest_caps[_tracker] struct members to set_guest_caps[_tracker]
- this is a preparation patch for adding support for the
- VBGL_IOCTL_GUEST_CAPS_ACQUIRE ioctl.
-
- Acked-by: Arnd Bergmann <arnd@arndb.de>
- Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-
-commit d7f3b7cec66d171cf5194ad37f647f4562da6ccc
-Author: Hans de Goede <hdegoede@redhat.com>
-Date: Thu Jul 9 14:08:52 2020 +0200
-
- virt: vbox: Fix guest capabilities mask check
-
- Check the passed in capabilities against VMMDEV_GUEST_CAPABILITIES_MASK
- instead of against VMMDEV_EVENT_VALID_EVENT_MASK.
- This tightens the allowed mask from 0x7ff to 0x7.
-
- Fixes: 0ba002bc4393 ("virt: Add vboxguest driver for Virtual Box Guest integration")
- Cc: stable@vger.kernel.org
- Acked-by: Arnd Bergmann <arnd@arndb.de>
- Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-
-commit f6694fa90e2183874def2d022d097795e2269a15
-Author: Hans de Goede <hdegoede@redhat.com>
-Date: Thu Jul 9 14:08:51 2020 +0200
-
- virt: vbox: Fix VBGL_IOCTL_VMMDEV_REQUEST_BIG and _LOG req numbers to match upstream
-
- Until this commit the mainline kernel version (this version) of the
- vboxguest module contained a bug where it defined
- VBGL_IOCTL_VMMDEV_REQUEST_BIG and VBGL_IOCTL_LOG using
- _IOC(_IOC_READ | _IOC_WRITE, 'V', ...) instead of
- _IO(V, ...) as the out of tree VirtualBox upstream version does.
-
- Since the VirtualBox userspace bits are always built against VirtualBox
- upstream's headers, this means that so far the mainline kernel version
- of the vboxguest module has been failing these 2 ioctls with -ENOTTY.
- I guess that VBGL_IOCTL_VMMDEV_REQUEST_BIG is never used causing us to
- not hit that one and sofar the vboxguest driver has failed to actually
- log any log messages passed it through VBGL_IOCTL_LOG.
-
- This commit changes the VBGL_IOCTL_VMMDEV_REQUEST_BIG and VBGL_IOCTL_LOG
- defines to match the out of tree VirtualBox upstream vboxguest version,
- while keeping compatibility with the old wrong request defines so as
- to not break the kernel ABI in case someone has been using the old
- request defines.
-
- Fixes: f6ddd094f579 ("virt: Add vboxguest driver for Virtual Box Guest integration UAPI")
- Cc: stable@vger.kernel.org
- Acked-by: Arnd Bergmann <arnd@arndb.de>
- Reviewed-by: Arnd Bergmann <arnd@arndb.de>
- Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
- drivers/virt/vboxguest/vboxguest_core.c | 266 +++++++++++++++++++----
- drivers/virt/vboxguest/vboxguest_core.h | 23 +-
- drivers/virt/vboxguest/vboxguest_utils.c | 1 +
- include/linux/vbox_utils.h | 1 +
- include/uapi/linux/vbox_vmmdev_types.h | 3 +
- include/uapi/linux/vboxguest.h | 24 ++
- 6 files changed, 269 insertions(+), 49 deletions(-)
-
-diff --git a/drivers/virt/vboxguest/vboxguest_core.c b/drivers/virt/vboxguest/vboxguest_core.c
-index 18ebd7a6af98..0b43efddea22 100644
---- a/drivers/virt/vboxguest/vboxguest_core.c
-+++ b/drivers/virt/vboxguest/vboxguest_core.c
-@@ -559,7 +559,7 @@ static int vbg_reset_host_event_filter(struct vbg_dev *gdev,
- * Changes the event filter mask for the given session.
- *
- * This is called in response to VBG_IOCTL_CHANGE_FILTER_MASK as well as to
-- * do session cleanup. Takes the session spinlock.
-+ * do session cleanup. Takes the session mutex.
- *
- * Return: 0 or negative errno value.
- * @gdev: The Guest extension device.
-@@ -662,7 +662,156 @@ static int vbg_reset_host_capabilities(struct vbg_dev *gdev)
- }
-
- /**
-- * Sets the guest capabilities for a session. Takes the session spinlock.
-+ * Set guest capabilities on the host.
-+ * Must be called with gdev->session_mutex hold.
-+ * Return: 0 or negative errno value.
-+ * @gdev: The Guest extension device.
-+ * @session: The session.
-+ * @session_termination: Set if we're called by the session cleanup code.
-+ */
-+static int vbg_set_host_capabilities(struct vbg_dev *gdev,
-+ struct vbg_session *session,
-+ bool session_termination)
-+{
-+ struct vmmdev_mask *req;
-+ u32 caps;
-+ int rc;
-+
-+ WARN_ON(!mutex_is_locked(&gdev->session_mutex));
-+
-+ caps = gdev->acquired_guest_caps | gdev->set_guest_caps_tracker.mask;
-+
-+ if (gdev->guest_caps_host == caps)
-+ return 0;
-+
-+ /* On termination the requestor is the kernel, as we're cleaning up. */
-+ req = vbg_req_alloc(sizeof(*req), VMMDEVREQ_SET_GUEST_CAPABILITIES,
-+ session_termination ? VBG_KERNEL_REQUEST :
-+ session->requestor);
-+ if (!req) {
-+ gdev->guest_caps_host = U32_MAX;
-+ return -ENOMEM;
-+ }
-+
-+ req->or_mask = caps;
-+ req->not_mask = ~caps;
-+ rc = vbg_req_perform(gdev, req);
-+ vbg_req_free(req, sizeof(*req));
-+
-+ gdev->guest_caps_host = (rc >= 0) ? caps : U32_MAX;
-+
-+ return vbg_status_code_to_errno(rc);
-+}
-+
-+/**
-+ * Acquire (get exclusive access) guest capabilities for a session.
-+ * Takes the session mutex.
-+ * Return: 0 or negative errno value.
-+ * @gdev: The Guest extension device.
-+ * @session: The session.
-+ * @flags: Flags (VBGL_IOC_AGC_FLAGS_XXX).
-+ * @or_mask: The capabilities to add.
-+ * @not_mask: The capabilities to remove.
-+ * @session_termination: Set if we're called by the session cleanup code.
-+ * This tweaks the error handling so we perform
-+ * proper session cleanup even if the host
-+ * misbehaves.
-+ */
-+static int vbg_acquire_session_capabilities(struct vbg_dev *gdev,
-+ struct vbg_session *session,
-+ u32 or_mask, u32 not_mask,
-+ u32 flags, bool session_termination)
-+{
-+ unsigned long irqflags;
-+ bool wakeup = false;
-+ int ret = 0;
-+
-+ mutex_lock(&gdev->session_mutex);
-+
-+ if (gdev->set_guest_caps_tracker.mask & or_mask) {
-+ vbg_err("%s error: cannot acquire caps which are currently set\n",
-+ __func__);
-+ ret = -EINVAL;
-+ goto out;
-+ }
-+
-+ /*
-+ * Mark any caps in the or_mask as now being in acquire-mode. Note
-+ * once caps are in acquire_mode they always stay in this mode.
-+ * This impacts event handling, so we take the event-lock.
-+ */
-+ spin_lock_irqsave(&gdev->event_spinlock, irqflags);
-+ gdev->acquire_mode_guest_caps |= or_mask;
-+ spin_unlock_irqrestore(&gdev->event_spinlock, irqflags);
-+
-+ /* If we only have to switch the caps to acquire mode, we're done. */
-+ if (flags & VBGL_IOC_AGC_FLAGS_CONFIG_ACQUIRE_MODE)
-+ goto out;
-+
-+ not_mask &= ~or_mask; /* or_mask takes priority over not_mask */
-+ not_mask &= session->acquired_guest_caps;
-+ or_mask &= ~session->acquired_guest_caps;
-+
-+ if (or_mask == 0 && not_mask == 0)
-+ goto out;
-+
-+ if (gdev->acquired_guest_caps & or_mask) {
-+ ret = -EBUSY;
-+ goto out;
-+ }
-+
-+ gdev->acquired_guest_caps |= or_mask;
-+ gdev->acquired_guest_caps &= ~not_mask;
-+ /* session->acquired_guest_caps impacts event handling, take the lock */
-+ spin_lock_irqsave(&gdev->event_spinlock, irqflags);
-+ session->acquired_guest_caps |= or_mask;
-+ session->acquired_guest_caps &= ~not_mask;
-+ spin_unlock_irqrestore(&gdev->event_spinlock, irqflags);
-+
-+ ret = vbg_set_host_capabilities(gdev, session, session_termination);
-+ /* Roll back on failure, unless it's session termination time. */
-+ if (ret < 0 && !session_termination) {
-+ gdev->acquired_guest_caps &= ~or_mask;
-+ gdev->acquired_guest_caps |= not_mask;
-+ spin_lock_irqsave(&gdev->event_spinlock, irqflags);
-+ session->acquired_guest_caps &= ~or_mask;
-+ session->acquired_guest_caps |= not_mask;
-+ spin_unlock_irqrestore(&gdev->event_spinlock, irqflags);
-+ }
-+
-+ /*
-+ * If we added a capability, check if that means some other thread in
-+ * our session should be unblocked because there are events pending
-+ * (the result of vbg_get_allowed_event_mask_for_session() may change).
-+ *
-+ * HACK ALERT! When the seamless support capability is added we generate
-+ * a seamless change event so that the ring-3 client can sync with
-+ * the seamless state.
-+ */
-+ if (ret == 0 && or_mask != 0) {
-+ spin_lock_irqsave(&gdev->event_spinlock, irqflags);
-+
-+ if (or_mask & VMMDEV_GUEST_SUPPORTS_SEAMLESS)
-+ gdev->pending_events |=
-+ VMMDEV_EVENT_SEAMLESS_MODE_CHANGE_REQUEST;
-+
-+ if (gdev->pending_events)
-+ wakeup = true;
-+
-+ spin_unlock_irqrestore(&gdev->event_spinlock, irqflags);
-+
-+ if (wakeup)
-+ wake_up(&gdev->event_wq);
-+ }
-+
-+out:
-+ mutex_unlock(&gdev->session_mutex);
-+
-+ return ret;
-+}
-+
-+/**
-+ * Sets the guest capabilities for a session. Takes the session mutex.
- * Return: 0 or negative errno value.
- * @gdev: The Guest extension device.
- * @session: The session.
-@@ -678,62 +827,40 @@ static int vbg_set_session_capabilities(struct vbg_dev *gdev,
- u32 or_mask, u32 not_mask,
- bool session_termination)
- {
-- struct vmmdev_mask *req;
- u32 changed, previous;
-- int rc, ret = 0;
--
-- /*
-- * Allocate a request buffer before taking the spinlock, when
-- * the session is being terminated the requestor is the kernel,
-- * as we're cleaning up.
-- */
-- req = vbg_req_alloc(sizeof(*req), VMMDEVREQ_SET_GUEST_CAPABILITIES,
-- session_termination ? VBG_KERNEL_REQUEST :
-- session->requestor);
-- if (!req) {
-- if (!session_termination)
-- return -ENOMEM;
-- /* Ignore allocation failure, we must do session cleanup. */
-- }
-+ int ret = 0;
-
- mutex_lock(&gdev->session_mutex);
-
-+ if (gdev->acquire_mode_guest_caps & or_mask) {
-+ vbg_err("%s error: cannot set caps which are in acquire_mode\n",
-+ __func__);
-+ ret = -EBUSY;
-+ goto out;
-+ }
-+
- /* Apply the changes to the session mask. */
-- previous = session->guest_caps;
-- session->guest_caps |= or_mask;
-- session->guest_caps &= ~not_mask;
-+ previous = session->set_guest_caps;
-+ session->set_guest_caps |= or_mask;
-+ session->set_guest_caps &= ~not_mask;
-
- /* If anything actually changed, update the global usage counters. */
-- changed = previous ^ session->guest_caps;
-+ changed = previous ^ session->set_guest_caps;
- if (!changed)
- goto out;
-
-- vbg_track_bit_usage(&gdev->guest_caps_tracker, changed, previous);
-- or_mask = gdev->guest_caps_tracker.mask;
--
-- if (gdev->guest_caps_host == or_mask || !req)
-- goto out;
-+ vbg_track_bit_usage(&gdev->set_guest_caps_tracker, changed, previous);
-
-- gdev->guest_caps_host = or_mask;
-- req->or_mask = or_mask;
-- req->not_mask = ~or_mask;
-- rc = vbg_req_perform(gdev, req);
-- if (rc < 0) {
-- ret = vbg_status_code_to_errno(rc);
--
-- /* Failed, roll back (unless it's session termination time). */
-- gdev->guest_caps_host = U32_MAX;
-- if (session_termination)
-- goto out;
--
-- vbg_track_bit_usage(&gdev->guest_caps_tracker, changed,
-- session->guest_caps);
-- session->guest_caps = previous;
-+ ret = vbg_set_host_capabilities(gdev, session, session_termination);
-+ /* Roll back on failure, unless it's session termination time. */
-+ if (ret < 0 && !session_termination) {
-+ vbg_track_bit_usage(&gdev->set_guest_caps_tracker, changed,
-+ session->set_guest_caps);
-+ session->set_guest_caps = previous;
- }
-
- out:
- mutex_unlock(&gdev->session_mutex);
-- vbg_req_free(req, sizeof(*req));
-
- return ret;
- }
-@@ -949,6 +1076,7 @@ void vbg_core_close_session(struct vbg_session *session)
- struct vbg_dev *gdev = session->gdev;
- int i, rc;
-
-+ vbg_acquire_session_capabilities(gdev, session, 0, U32_MAX, 0, true);
- vbg_set_session_capabilities(gdev, session, 0, U32_MAX, true);
- vbg_set_session_event_filter(gdev, session, 0, U32_MAX, true);
-
-@@ -1006,6 +1134,25 @@ static int vbg_ioctl_driver_version_info(
- return 0;
- }
-
-+/* Must be called with the event_lock held */
-+static u32 vbg_get_allowed_event_mask_for_session(struct vbg_dev *gdev,
-+ struct vbg_session *session)
-+{
-+ u32 acquire_mode_caps = gdev->acquire_mode_guest_caps;
-+ u32 session_acquired_caps = session->acquired_guest_caps;
-+ u32 allowed_events = VMMDEV_EVENT_VALID_EVENT_MASK;
-+
-+ if ((acquire_mode_caps & VMMDEV_GUEST_SUPPORTS_GRAPHICS) &&
-+ !(session_acquired_caps & VMMDEV_GUEST_SUPPORTS_GRAPHICS))
-+ allowed_events &= ~VMMDEV_EVENT_DISPLAY_CHANGE_REQUEST;
-+
-+ if ((acquire_mode_caps & VMMDEV_GUEST_SUPPORTS_SEAMLESS) &&
-+ !(session_acquired_caps & VMMDEV_GUEST_SUPPORTS_SEAMLESS))
-+ allowed_events &= ~VMMDEV_EVENT_SEAMLESS_MODE_CHANGE_REQUEST;
-+
-+ return allowed_events;
-+}
-+
- static bool vbg_wait_event_cond(struct vbg_dev *gdev,
- struct vbg_session *session,
- u32 event_mask)
-@@ -1017,6 +1164,7 @@ static bool vbg_wait_event_cond(struct vbg_dev *gdev,
- spin_lock_irqsave(&gdev->event_spinlock, flags);
-
- events = gdev->pending_events & event_mask;
-+ events &= vbg_get_allowed_event_mask_for_session(gdev, session);
- wakeup = events || session->cancel_waiters;
-
- spin_unlock_irqrestore(&gdev->event_spinlock, flags);
-@@ -1031,6 +1179,7 @@ static u32 vbg_consume_events_locked(struct vbg_dev *gdev,
- {
- u32 events = gdev->pending_events & event_mask;
-
-+ events &= vbg_get_allowed_event_mask_for_session(gdev, session);
- gdev->pending_events &= ~events;
- return events;
- }
-@@ -1150,7 +1299,9 @@ static int vbg_req_allowed(struct vbg_dev *gdev, struct vbg_session *session,
- case VMMDEVREQ_VIDEO_ACCEL_ENABLE:
- case VMMDEVREQ_VIDEO_ACCEL_FLUSH:
- case VMMDEVREQ_VIDEO_SET_VISIBLE_REGION:
-+ case VMMDEVREQ_VIDEO_UPDATE_MONITOR_POSITIONS:
- case VMMDEVREQ_GET_DISPLAY_CHANGE_REQEX:
-+ case VMMDEVREQ_GET_DISPLAY_CHANGE_REQ_MULTI:
- case VMMDEVREQ_GET_SEAMLESS_CHANGE_REQ:
- case VMMDEVREQ_GET_VRDPCHANGE_REQ:
- case VMMDEVREQ_LOG_STRING:
-@@ -1432,6 +1583,29 @@ static int vbg_ioctl_change_filter_mask(struct vbg_dev *gdev,
- false);
- }
-
-+static int vbg_ioctl_acquire_guest_capabilities(struct vbg_dev *gdev,
-+ struct vbg_session *session,
-+ struct vbg_ioctl_acquire_guest_caps *caps)
-+{
-+ u32 flags, or_mask, not_mask;
-+
-+ if (vbg_ioctl_chk(&caps->hdr, sizeof(caps->u.in), 0))
-+ return -EINVAL;
-+
-+ flags = caps->u.in.flags;
-+ or_mask = caps->u.in.or_mask;
-+ not_mask = caps->u.in.not_mask;
-+
-+ if (flags & ~VBGL_IOC_AGC_FLAGS_VALID_MASK)
-+ return -EINVAL;
-+
-+ if ((or_mask | not_mask) & ~VMMDEV_GUEST_CAPABILITIES_MASK)
-+ return -EINVAL;
-+
-+ return vbg_acquire_session_capabilities(gdev, session, or_mask,
-+ not_mask, flags, false);
-+}
-+
- static int vbg_ioctl_change_guest_capabilities(struct vbg_dev *gdev,
- struct vbg_session *session, struct vbg_ioctl_set_guest_caps *caps)
- {
-@@ -1452,7 +1626,7 @@ static int vbg_ioctl_change_guest_capabilities(struct vbg_dev *gdev,
- if (ret)
- return ret;
-
-- caps->u.out.session_caps = session->guest_caps;
-+ caps->u.out.session_caps = session->set_guest_caps;
- caps->u.out.global_caps = gdev->guest_caps_host;
-
- return 0;
-@@ -1541,6 +1715,8 @@ int vbg_core_ioctl(struct vbg_session *session, unsigned int req, void *data)
- return vbg_ioctl_interrupt_all_wait_events(gdev, session, data);
- case VBG_IOCTL_CHANGE_FILTER_MASK:
- return vbg_ioctl_change_filter_mask(gdev, session, data);
-+ case VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES:
-+ return vbg_ioctl_acquire_guest_capabilities(gdev, session, data);
- case VBG_IOCTL_CHANGE_GUEST_CAPABILITIES:
- return vbg_ioctl_change_guest_capabilities(gdev, session, data);
- case VBG_IOCTL_CHECK_BALLOON:
-@@ -1563,7 +1739,7 @@ int vbg_core_ioctl(struct vbg_session *session, unsigned int req, void *data)
- return vbg_ioctl_log(data);
- }
-
-- vbg_debug("VGDrvCommonIoCtl: Unknown req %#08x\n", req);
-+ vbg_err_ratelimited("Userspace made an unknown ioctl req %#08x\n", req);
- return -ENOTTY;
- }
-
-diff --git a/drivers/virt/vboxguest/vboxguest_core.h b/drivers/virt/vboxguest/vboxguest_core.h
-index 77c3a9c8255d..ab4bf64e2cec 100644
---- a/drivers/virt/vboxguest/vboxguest_core.h
-+++ b/drivers/virt/vboxguest/vboxguest_core.h
-@@ -118,11 +118,21 @@ struct vbg_dev {
- u32 event_filter_host;
-
- /**
-- * Usage counters for guest capabilities. Indexed by capability bit
-+ * Guest capabilities which have been switched to acquire_mode.
-+ */
-+ u32 acquire_mode_guest_caps;
-+ /**
-+ * Guest capabilities acquired by vbg_acquire_session_capabilities().
-+ * Only one session can acquire a capability at a time.
-+ */
-+ u32 acquired_guest_caps;
-+ /**
-+ * Usage counters for guest capabilities requested through
-+ * vbg_set_session_capabilities(). Indexed by capability bit
- * number, one count per session using a capability.
- * Protected by session_mutex.
- */
-- struct vbg_bit_usage_tracker guest_caps_tracker;
-+ struct vbg_bit_usage_tracker set_guest_caps_tracker;
- /**
- * The guest capabilities last reported to the host (or UINT32_MAX).
- * Protected by session_mutex.
-@@ -164,11 +174,16 @@ struct vbg_session {
- */
- u32 event_filter;
- /**
-- * Guest capabilities for this session.
-+ * Guest capabilities acquired by vbg_acquire_session_capabilities().
-+ * Only one session can acquire a capability at a time.
-+ */
-+ u32 acquired_guest_caps;
-+ /**
-+ * Guest capabilities set through vbg_set_session_capabilities().
- * A capability claimed by any guest session will be reported to the
- * host. Protected by vbg_gdev.session_mutex.
- */
-- u32 guest_caps;
-+ u32 set_guest_caps;
- /** VMMDEV_REQUESTOR_* flags */
- u32 requestor;
- /** Set on CANCEL_ALL_WAITEVENTS, protected by vbg_devevent_spinlock. */
-diff --git a/drivers/virt/vboxguest/vboxguest_utils.c b/drivers/virt/vboxguest/vboxguest_utils.c
-index 7396187ee32a..ea05af41ec69 100644
---- a/drivers/virt/vboxguest/vboxguest_utils.c
-+++ b/drivers/virt/vboxguest/vboxguest_utils.c
-@@ -59,6 +59,7 @@ EXPORT_SYMBOL(name)
- VBG_LOG(vbg_info, pr_info);
- VBG_LOG(vbg_warn, pr_warn);
- VBG_LOG(vbg_err, pr_err);
-+VBG_LOG(vbg_err_ratelimited, pr_err_ratelimited);
- #if defined(DEBUG) && !defined(CONFIG_DYNAMIC_DEBUG)
- VBG_LOG(vbg_debug, pr_debug);
- #endif
-diff --git a/include/linux/vbox_utils.h b/include/linux/vbox_utils.h
-index ff56c443180c..db8a7d118093 100644
---- a/include/linux/vbox_utils.h
-+++ b/include/linux/vbox_utils.h
-@@ -16,6 +16,7 @@ struct vbg_dev;
- __printf(1, 2) void vbg_info(const char *fmt, ...);
- __printf(1, 2) void vbg_warn(const char *fmt, ...);
- __printf(1, 2) void vbg_err(const char *fmt, ...);
-+__printf(1, 2) void vbg_err_ratelimited(const char *fmt, ...);
-
- /* Only use backdoor logging for non-dynamic debug builds */
- #if defined(DEBUG) && !defined(CONFIG_DYNAMIC_DEBUG)
-diff --git a/include/uapi/linux/vbox_vmmdev_types.h b/include/uapi/linux/vbox_vmmdev_types.h
-index c27289fd619a..f8a8d6b3c521 100644
---- a/include/uapi/linux/vbox_vmmdev_types.h
-+++ b/include/uapi/linux/vbox_vmmdev_types.h
-@@ -63,6 +63,7 @@ enum vmmdev_request_type {
- VMMDEVREQ_SET_GUEST_CAPABILITIES = 56,
- VMMDEVREQ_VIDEMODE_SUPPORTED2 = 57, /* since version 3.2.0 */
- VMMDEVREQ_GET_DISPLAY_CHANGE_REQEX = 80, /* since version 4.2.4 */
-+ VMMDEVREQ_GET_DISPLAY_CHANGE_REQ_MULTI = 81,
- VMMDEVREQ_HGCM_CONNECT = 60,
- VMMDEVREQ_HGCM_DISCONNECT = 61,
- VMMDEVREQ_HGCM_CALL32 = 62,
-@@ -92,6 +93,8 @@ enum vmmdev_request_type {
- VMMDEVREQ_WRITE_COREDUMP = 218,
- VMMDEVREQ_GUEST_HEARTBEAT = 219,
- VMMDEVREQ_HEARTBEAT_CONFIGURE = 220,
-+ VMMDEVREQ_NT_BUG_CHECK = 221,
-+ VMMDEVREQ_VIDEO_UPDATE_MONITOR_POSITIONS = 222,
- /* Ensure the enum is a 32 bit data-type */
- VMMDEVREQ_SIZEHACK = 0x7fffffff
- };
-diff --git a/include/uapi/linux/vboxguest.h b/include/uapi/linux/vboxguest.h
-index f79d7abe27db..15125f6ec60d 100644
---- a/include/uapi/linux/vboxguest.h
-+++ b/include/uapi/linux/vboxguest.h
-@@ -257,6 +257,30 @@ VMMDEV_ASSERT_SIZE(vbg_ioctl_change_filter, 24 + 8);
- _IOWR('V', 12, struct vbg_ioctl_change_filter)
-
-
-+/** VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES data structure. */
-+struct vbg_ioctl_acquire_guest_caps {
-+ /** The header. */
-+ struct vbg_ioctl_hdr hdr;
-+ union {
-+ struct {
-+ /** Flags (VBGL_IOC_AGC_FLAGS_XXX). */
-+ __u32 flags;
-+ /** Capabilities to set (VMMDEV_GUEST_SUPPORTS_XXX). */
-+ __u32 or_mask;
-+ /** Capabilities to drop (VMMDEV_GUEST_SUPPORTS_XXX). */
-+ __u32 not_mask;
-+ } in;
-+ } u;
-+};
-+VMMDEV_ASSERT_SIZE(vbg_ioctl_acquire_guest_caps, 24 + 12);
-+
-+#define VBGL_IOC_AGC_FLAGS_CONFIG_ACQUIRE_MODE 0x00000001
-+#define VBGL_IOC_AGC_FLAGS_VALID_MASK 0x00000001
-+
-+#define VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES \
-+ _IOWR('V', 13, struct vbg_ioctl_acquire_guest_caps)
-+
-+
- /** VBG_IOCTL_CHANGE_GUEST_CAPABILITIES data structure. */
- struct vbg_ioctl_set_guest_caps {
- /** The header. */
---
-2.28.0
-
diff --git a/libre/linux-libre-pae/0003-iwlwifi-Fix-regression-from-UDP-segmentation-support.patch b/libre/linux-libre-pae/0003-iwlwifi-Fix-regression-from-UDP-segmentation-support.patch
new file mode 100644
index 000000000..905f9c148
--- /dev/null
+++ b/libre/linux-libre-pae/0003-iwlwifi-Fix-regression-from-UDP-segmentation-support.patch
@@ -0,0 +1,34 @@
+From 631f3ba6f0debde7efcadc90fb9abef10a271148 Mon Sep 17 00:00:00 2001
+From: Eric Dumazet <edumazet@google.com>
+Date: Mon, 21 Dec 2020 20:14:02 +0100
+Subject: [PATCH 3/5] iwlwifi: Fix regression from UDP segmentation support
+
+Eric's tentative fix from
+https://lore.kernel.org/linux-wireless/CANn89iJWG2n1s3j7EdpwkQQv-9dOY02V+FGYHAWguO4JiqWuJA@mail.gmail.com/
+---
+ drivers/net/wireless/intel/iwlwifi/mvm/tx.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
+index fe1c538cd718..c27743a58f81 100644
+--- a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
++++ b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
+@@ -833,6 +833,7 @@ iwl_mvm_tx_tso_segment(struct sk_buff *skb, unsigned int num_subframes,
+
+ next = skb_gso_segment(skb, netdev_flags);
+ skb_shinfo(skb)->gso_size = mss;
++ skb_shinfo(skb)->gso_type = ipv4 ? SKB_GSO_TCPV4 : SKB_GSO_TCPV6;
+ if (WARN_ON_ONCE(IS_ERR(next)))
+ return -EINVAL;
+ else if (next)
+@@ -855,6 +856,7 @@ iwl_mvm_tx_tso_segment(struct sk_buff *skb, unsigned int num_subframes,
+
+ if (tcp_payload_len > mss) {
+ skb_shinfo(tmp)->gso_size = mss;
++ skb_shinfo(tmp)->gso_type = ipv4 ? SKB_GSO_TCPV4 : SKB_GSO_TCPV6;
+ } else {
+ if (qos) {
+ u8 *qc;
+--
+2.30.0
+
diff --git a/libre/linux-libre-pae/0004-btrfs-fix-deadlock-when-cloning-inline-extent-and-lo.patch b/libre/linux-libre-pae/0004-btrfs-fix-deadlock-when-cloning-inline-extent-and-lo.patch
new file mode 100644
index 000000000..8a95dde40
--- /dev/null
+++ b/libre/linux-libre-pae/0004-btrfs-fix-deadlock-when-cloning-inline-extent-and-lo.patch
@@ -0,0 +1,325 @@
+From e763d7a19f256a8861ee2c1eedaaf42f603488d2 Mon Sep 17 00:00:00 2001
+From: Filipe Manana <fdmanana@suse.com>
+Date: Wed, 2 Dec 2020 11:55:58 +0000
+Subject: [PATCH 4/5] btrfs: fix deadlock when cloning inline extent and low on
+ free metadata space
+
+When cloning an inline extent there are cases where we can not just copy
+the inline extent from the source range to the target range (e.g. when the
+target range starts at an offset greater than zero). In such cases we copy
+the inline extent's data into a page of the destination inode and then
+dirty that page. However, after that we will need to start a transaction
+for each processed extent and, if we are ever low on available metadata
+space, we may need to flush existing delalloc for all dirty inodes in an
+attempt to release metadata space - if that happens we may deadlock:
+
+* the async reclaim task queued a delalloc work to flush delalloc for
+ the destination inode of the clone operation;
+
+* the task executing that delalloc work gets blocked waiting for the
+ range with the dirty page to be unlocked, which is currently locked
+ by the task doing the clone operation;
+
+* the async reclaim task blocks waiting for the delalloc work to complete;
+
+* the cloning task is waiting on the waitqueue of its reservation ticket
+ while holding the range with the dirty page locked in the inode's
+ io_tree;
+
+* if metadata space is not released by some other task (like delalloc for
+ some other inode completing for example), the clone task waits forever
+ and as a consequence the delalloc work and async reclaim tasks will hang
+ forever as well. Releasing more space on the other hand may require
+ starting a transaction, which will hang as well when trying to reserve
+ metadata space, resulting in a deadlock between all these tasks.
+
+When this happens, traces like the following show up in dmesg/syslog:
+
+ [87452.323003] INFO: task kworker/u16:11:1810830 blocked for more than 120 seconds.
+ [87452.323644] Tainted: G B W 5.10.0-rc4-btrfs-next-73 #1
+ [87452.324248] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
+ [87452.324852] task:kworker/u16:11 state:D stack: 0 pid:1810830 ppid: 2 flags:0x00004000
+ [87452.325520] Workqueue: btrfs-flush_delalloc btrfs_work_helper [btrfs]
+ [87452.326136] Call Trace:
+ [87452.326737] __schedule+0x5d1/0xcf0
+ [87452.327390] schedule+0x45/0xe0
+ [87452.328174] lock_extent_bits+0x1e6/0x2d0 [btrfs]
+ [87452.328894] ? finish_wait+0x90/0x90
+ [87452.329474] btrfs_invalidatepage+0x32c/0x390 [btrfs]
+ [87452.330133] ? __mod_memcg_state+0x8e/0x160
+ [87452.330738] __extent_writepage+0x2d4/0x400 [btrfs]
+ [87452.331405] extent_write_cache_pages+0x2b2/0x500 [btrfs]
+ [87452.332007] ? lock_release+0x20e/0x4c0
+ [87452.332557] ? trace_hardirqs_on+0x1b/0xf0
+ [87452.333127] extent_writepages+0x43/0x90 [btrfs]
+ [87452.333653] ? lock_acquire+0x1a3/0x490
+ [87452.334177] do_writepages+0x43/0xe0
+ [87452.334699] ? __filemap_fdatawrite_range+0xa4/0x100
+ [87452.335720] __filemap_fdatawrite_range+0xc5/0x100
+ [87452.336500] btrfs_run_delalloc_work+0x17/0x40 [btrfs]
+ [87452.337216] btrfs_work_helper+0xf1/0x600 [btrfs]
+ [87452.337838] process_one_work+0x24e/0x5e0
+ [87452.338437] worker_thread+0x50/0x3b0
+ [87452.339137] ? process_one_work+0x5e0/0x5e0
+ [87452.339884] kthread+0x153/0x170
+ [87452.340507] ? kthread_mod_delayed_work+0xc0/0xc0
+ [87452.341153] ret_from_fork+0x22/0x30
+ [87452.341806] INFO: task kworker/u16:1:2426217 blocked for more than 120 seconds.
+ [87452.342487] Tainted: G B W 5.10.0-rc4-btrfs-next-73 #1
+ [87452.343274] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
+ [87452.344049] task:kworker/u16:1 state:D stack: 0 pid:2426217 ppid: 2 flags:0x00004000
+ [87452.344974] Workqueue: events_unbound btrfs_async_reclaim_metadata_space [btrfs]
+ [87452.345655] Call Trace:
+ [87452.346305] __schedule+0x5d1/0xcf0
+ [87452.346947] ? kvm_clock_read+0x14/0x30
+ [87452.347676] ? wait_for_completion+0x81/0x110
+ [87452.348389] schedule+0x45/0xe0
+ [87452.349077] schedule_timeout+0x30c/0x580
+ [87452.349718] ? _raw_spin_unlock_irqrestore+0x3c/0x60
+ [87452.350340] ? lock_acquire+0x1a3/0x490
+ [87452.351006] ? try_to_wake_up+0x7a/0xa20
+ [87452.351541] ? lock_release+0x20e/0x4c0
+ [87452.352040] ? lock_acquired+0x199/0x490
+ [87452.352517] ? wait_for_completion+0x81/0x110
+ [87452.353000] wait_for_completion+0xab/0x110
+ [87452.353490] start_delalloc_inodes+0x2af/0x390 [btrfs]
+ [87452.353973] btrfs_start_delalloc_roots+0x12d/0x250 [btrfs]
+ [87452.354455] flush_space+0x24f/0x660 [btrfs]
+ [87452.355063] btrfs_async_reclaim_metadata_space+0x1bb/0x480 [btrfs]
+ [87452.355565] process_one_work+0x24e/0x5e0
+ [87452.356024] worker_thread+0x20f/0x3b0
+ [87452.356487] ? process_one_work+0x5e0/0x5e0
+ [87452.356973] kthread+0x153/0x170
+ [87452.357434] ? kthread_mod_delayed_work+0xc0/0xc0
+ [87452.357880] ret_from_fork+0x22/0x30
+ (...)
+ < stack traces of several tasks waiting for the locks of the inodes of the
+ clone operation >
+ (...)
+ [92867.444138] RSP: 002b:00007ffc3371bbe8 EFLAGS: 00000246 ORIG_RAX: 0000000000000052
+ [92867.444624] RAX: ffffffffffffffda RBX: 00007ffc3371bea0 RCX: 00007f61efe73f97
+ [92867.445116] RDX: 0000000000000000 RSI: 0000560fbd5d7a40 RDI: 0000560fbd5d8960
+ [92867.445595] RBP: 00007ffc3371beb0 R08: 0000000000000001 R09: 0000000000000003
+ [92867.446070] R10: 00007ffc3371b996 R11: 0000000000000246 R12: 0000000000000000
+ [92867.446820] R13: 000000000000001f R14: 00007ffc3371bea0 R15: 00007ffc3371beb0
+ [92867.447361] task:fsstress state:D stack: 0 pid:2508238 ppid:2508153 flags:0x00004000
+ [92867.447920] Call Trace:
+ [92867.448435] __schedule+0x5d1/0xcf0
+ [92867.448934] ? _raw_spin_unlock_irqrestore+0x3c/0x60
+ [92867.449423] schedule+0x45/0xe0
+ [92867.449916] __reserve_bytes+0x4a4/0xb10 [btrfs]
+ [92867.450576] ? finish_wait+0x90/0x90
+ [92867.451202] btrfs_reserve_metadata_bytes+0x29/0x190 [btrfs]
+ [92867.451815] btrfs_block_rsv_add+0x1f/0x50 [btrfs]
+ [92867.452412] start_transaction+0x2d1/0x760 [btrfs]
+ [92867.453216] clone_copy_inline_extent+0x333/0x490 [btrfs]
+ [92867.453848] ? lock_release+0x20e/0x4c0
+ [92867.454539] ? btrfs_search_slot+0x9a7/0xc30 [btrfs]
+ [92867.455218] btrfs_clone+0x569/0x7e0 [btrfs]
+ [92867.455952] btrfs_clone_files+0xf6/0x150 [btrfs]
+ [92867.456588] btrfs_remap_file_range+0x324/0x3d0 [btrfs]
+ [92867.457213] do_clone_file_range+0xd4/0x1f0
+ [92867.457828] vfs_clone_file_range+0x4d/0x230
+ [92867.458355] ? lock_release+0x20e/0x4c0
+ [92867.458890] ioctl_file_clone+0x8f/0xc0
+ [92867.459377] do_vfs_ioctl+0x342/0x750
+ [92867.459913] __x64_sys_ioctl+0x62/0xb0
+ [92867.460377] do_syscall_64+0x33/0x80
+ [92867.460842] entry_SYSCALL_64_after_hwframe+0x44/0xa9
+ (...)
+ < stack traces of more tasks blocked on metadata reservation like the clone
+ task above, because the async reclaim task has deadlocked >
+ (...)
+
+Another thing to notice is that the worker task that is deadlocked when
+trying to flush the destination inode of the clone operation is at
+btrfs_invalidatepage(). This is simply because the clone operation has a
+destination offset greater than the i_size and we only update the i_size
+of the destination file after cloning an extent (just like we do in the
+buffered write path).
+
+Since the async reclaim path uses btrfs_start_delalloc_roots() to trigger
+the flushing of delalloc for all inodes that have delalloc, add a runtime
+flag to an inode to signal it should not be flushed, and for inodes with
+that flag set, start_delalloc_inodes() will simply skip them. When the
+cloning code needs to dirty a page to copy an inline extent, set that flag
+on the inode and then clear it when the clone operation finishes.
+
+This could be sporadically triggered with test case generic/269 from
+fstests, which exercises many fsstress processes running in parallel with
+several dd processes filling up the entire filesystem.
+
+CC: stable@vger.kernel.org # 5.9+
+Fixes: 05a5a7621ce6 ("Btrfs: implement full reflink support for inline extents")
+Reviewed-by: Josef Bacik <josef@toxicpanda.com>
+Signed-off-by: Filipe Manana <fdmanana@suse.com>
+Reviewed-by: David Sterba <dsterba@suse.com>
+Signed-off-by: David Sterba <dsterba@suse.com>
+---
+ fs/btrfs/btrfs_inode.h | 9 +++++++++
+ fs/btrfs/ctree.h | 3 ++-
+ fs/btrfs/dev-replace.c | 2 +-
+ fs/btrfs/inode.c | 15 +++++++++++----
+ fs/btrfs/ioctl.c | 2 +-
+ fs/btrfs/reflink.c | 15 +++++++++++++++
+ fs/btrfs/space-info.c | 2 +-
+ 7 files changed, 40 insertions(+), 8 deletions(-)
+
+diff --git a/fs/btrfs/btrfs_inode.h b/fs/btrfs/btrfs_inode.h
+index 92dd86bceae3..7e86ab4841dd 100644
+--- a/fs/btrfs/btrfs_inode.h
++++ b/fs/btrfs/btrfs_inode.h
+@@ -35,6 +35,15 @@ enum {
+ BTRFS_INODE_IN_DELALLOC_LIST,
+ BTRFS_INODE_HAS_PROPS,
+ BTRFS_INODE_SNAPSHOT_FLUSH,
++ /*
++ * Set when we are in a context where we need to start a transaction and
++ * have dirty pages with the respective file range locked. This is to
++ * ensure that when reserving space for the transaction, if we are low
++ * on available space and need to flush delalloc, we will not flush
++ * delalloc for this inode, because that could result in a deadlock (on
++ * the file range, inode's io_tree).
++ */
++ BTRFS_INODE_NO_DELALLOC_FLUSH,
+ };
+
+ /* in memory btrfs inode */
+diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h
+index 62461239600f..e01545538e07 100644
+--- a/fs/btrfs/ctree.h
++++ b/fs/btrfs/ctree.h
+@@ -3001,7 +3001,8 @@ int btrfs_truncate_inode_items(struct btrfs_trans_handle *trans,
+ u32 min_type);
+
+ int btrfs_start_delalloc_snapshot(struct btrfs_root *root);
+-int btrfs_start_delalloc_roots(struct btrfs_fs_info *fs_info, u64 nr);
++int btrfs_start_delalloc_roots(struct btrfs_fs_info *fs_info, u64 nr,
++ bool in_reclaim_context);
+ int btrfs_set_extent_delalloc(struct btrfs_inode *inode, u64 start, u64 end,
+ unsigned int extra_bits,
+ struct extent_state **cached_state);
+diff --git a/fs/btrfs/dev-replace.c b/fs/btrfs/dev-replace.c
+index 10638537b9ef..d29780463182 100644
+--- a/fs/btrfs/dev-replace.c
++++ b/fs/btrfs/dev-replace.c
+@@ -703,7 +703,7 @@ static int btrfs_dev_replace_finishing(struct btrfs_fs_info *fs_info,
+ * flush all outstanding I/O and inode extent mappings before the
+ * copy operation is declared as being finished
+ */
+- ret = btrfs_start_delalloc_roots(fs_info, U64_MAX);
++ ret = btrfs_start_delalloc_roots(fs_info, U64_MAX, false);
+ if (ret) {
+ mutex_unlock(&dev_replace->lock_finishing_cancel_unmount);
+ return ret;
+diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
+index 7e8d8169779d..07479250221d 100644
+--- a/fs/btrfs/inode.c
++++ b/fs/btrfs/inode.c
+@@ -9389,7 +9389,8 @@ static struct btrfs_delalloc_work *btrfs_alloc_delalloc_work(struct inode *inode
+ * some fairly slow code that needs optimization. This walks the list
+ * of all the inodes with pending delalloc and forces them to disk.
+ */
+-static int start_delalloc_inodes(struct btrfs_root *root, u64 *nr, bool snapshot)
++static int start_delalloc_inodes(struct btrfs_root *root, u64 *nr, bool snapshot,
++ bool in_reclaim_context)
+ {
+ struct btrfs_inode *binode;
+ struct inode *inode;
+@@ -9410,6 +9411,11 @@ static int start_delalloc_inodes(struct btrfs_root *root, u64 *nr, bool snapshot
+
+ list_move_tail(&binode->delalloc_inodes,
+ &root->delalloc_inodes);
++
++ if (in_reclaim_context &&
++ test_bit(BTRFS_INODE_NO_DELALLOC_FLUSH, &binode->runtime_flags))
++ continue;
++
+ inode = igrab(&binode->vfs_inode);
+ if (!inode) {
+ cond_resched_lock(&root->delalloc_lock);
+@@ -9463,10 +9469,11 @@ int btrfs_start_delalloc_snapshot(struct btrfs_root *root)
+ if (test_bit(BTRFS_FS_STATE_ERROR, &fs_info->fs_state))
+ return -EROFS;
+
+- return start_delalloc_inodes(root, &nr, true);
++ return start_delalloc_inodes(root, &nr, true, false);
+ }
+
+-int btrfs_start_delalloc_roots(struct btrfs_fs_info *fs_info, u64 nr)
++int btrfs_start_delalloc_roots(struct btrfs_fs_info *fs_info, u64 nr,
++ bool in_reclaim_context)
+ {
+ struct btrfs_root *root;
+ struct list_head splice;
+@@ -9489,7 +9496,7 @@ int btrfs_start_delalloc_roots(struct btrfs_fs_info *fs_info, u64 nr)
+ &fs_info->delalloc_roots);
+ spin_unlock(&fs_info->delalloc_root_lock);
+
+- ret = start_delalloc_inodes(root, &nr, false);
++ ret = start_delalloc_inodes(root, &nr, false, in_reclaim_context);
+ btrfs_put_root(root);
+ if (ret < 0)
+ goto out;
+diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
+index e8ca229a216b..bd46e107f955 100644
+--- a/fs/btrfs/ioctl.c
++++ b/fs/btrfs/ioctl.c
+@@ -4940,7 +4940,7 @@ long btrfs_ioctl(struct file *file, unsigned int
+ case BTRFS_IOC_SYNC: {
+ int ret;
+
+- ret = btrfs_start_delalloc_roots(fs_info, U64_MAX);
++ ret = btrfs_start_delalloc_roots(fs_info, U64_MAX, false);
+ if (ret)
+ return ret;
+ ret = btrfs_sync_fs(inode->i_sb, 1);
+diff --git a/fs/btrfs/reflink.c b/fs/btrfs/reflink.c
+index 99aa87c08912..a646af95dd10 100644
+--- a/fs/btrfs/reflink.c
++++ b/fs/btrfs/reflink.c
+@@ -89,6 +89,19 @@ static int copy_inline_to_page(struct btrfs_inode *inode,
+ if (ret)
+ goto out_unlock;
+
++ /*
++ * After dirtying the page our caller will need to start a transaction,
++ * and if we are low on metadata free space, that can cause flushing of
++ * delalloc for all inodes in order to get metadata space released.
++ * However we are holding the range locked for the whole duration of
++ * the clone/dedupe operation, so we may deadlock if that happens and no
++ * other task releases enough space. So mark this inode as not being
++ * possible to flush to avoid such deadlock. We will clear that flag
++ * when we finish cloning all extents, since a transaction is started
++ * after finding each extent to clone.
++ */
++ set_bit(BTRFS_INODE_NO_DELALLOC_FLUSH, &inode->runtime_flags);
++
+ if (comp_type == BTRFS_COMPRESS_NONE) {
+ char *map;
+
+@@ -547,6 +560,8 @@ static int btrfs_clone(struct inode *src, struct inode *inode,
+ out:
+ btrfs_free_path(path);
+ kvfree(buf);
++ clear_bit(BTRFS_INODE_NO_DELALLOC_FLUSH, &BTRFS_I(inode)->runtime_flags);
++
+ return ret;
+ }
+
+diff --git a/fs/btrfs/space-info.c b/fs/btrfs/space-info.c
+index 64099565ab8f..67e55c5479b8 100644
+--- a/fs/btrfs/space-info.c
++++ b/fs/btrfs/space-info.c
+@@ -532,7 +532,7 @@ static void shrink_delalloc(struct btrfs_fs_info *fs_info,
+
+ loops = 0;
+ while ((delalloc_bytes || dio_bytes) && loops < 3) {
+- btrfs_start_delalloc_roots(fs_info, items);
++ btrfs_start_delalloc_roots(fs_info, items, true);
+
+ loops++;
+ if (wait_ordered && !trans) {
+--
+2.30.0
+
diff --git a/libre/linux-libre-pae/0005-btrfs-shrink-delalloc-pages-instead-of-full-inodes.patch b/libre/linux-libre-pae/0005-btrfs-shrink-delalloc-pages-instead-of-full-inodes.patch
new file mode 100644
index 000000000..8ab7d5e61
--- /dev/null
+++ b/libre/linux-libre-pae/0005-btrfs-shrink-delalloc-pages-instead-of-full-inodes.patch
@@ -0,0 +1,184 @@
+From 0397aa4e6205543d9b3da11794037e94f8735867 Mon Sep 17 00:00:00 2001
+From: Josef Bacik <josef@toxicpanda.com>
+Date: Mon, 4 Jan 2021 15:24:11 -0500
+Subject: [PATCH 5/5] btrfs: shrink delalloc pages instead of full inodes
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Commit 38d715f494f2 ("btrfs: use btrfs_start_delalloc_roots in
+shrink_delalloc") cleaned up how we do delalloc shrinking by utilizing
+some infrastructure we have in place to flush inodes that we use for
+device replace and snapshot. However this introduced a pretty serious
+performance regression. The root cause is because before we would
+generally use the normal writeback path to reclaim delalloc space, and
+for this we would provide it with the number of pages we wanted to
+flush. The referenced commit changed this to flush that many inodes,
+which drastically increased the amount of space we were flushing in
+certain cases, which severely affected performance.
+
+We cannot revert this patch unfortunately, because Filipe has another
+fix that requires the ability to skip flushing inodes that are being
+cloned in certain scenarios, which means we need to keep using our
+flushing infrastructure or risk re-introducing the deadlock.
+
+Instead to fix this problem we can go back to providing
+btrfs_start_delalloc_roots with a number of pages to flush, and then set
+up a writeback_control and utilize sync_inode() to handle the flushing
+for us. This gives us the same behavior we had prior to the fix, while
+still allowing us to avoid the deadlock that was fixed by Filipe. The
+user reported reproducer was a simple untarring of a large tarball of
+the source code for Firefox. The results are as follows
+
+5.9 0m54.258s
+5.10 1m26.212s
+Patch 0m38.800s
+
+We are significantly faster because of the work I did around improving
+ENOSPC flushing in 5.10 and 5.11, so reverting to the previous write out
+behavior gave us a pretty big boost.
+
+CC: stable@vger.kernel.org # 5.10
+Reported-by: René Rebe <rene@exactcode.de>
+Fixes: 38d715f494f2 ("btrfs: use btrfs_start_delalloc_roots in shrink_delalloc")
+Signed-off-by: Josef Bacik <josef@toxicpanda.com>
+---
+ fs/btrfs/inode.c | 60 +++++++++++++++++++++++++++++++------------
+ fs/btrfs/space-info.c | 4 ++-
+ 2 files changed, 46 insertions(+), 18 deletions(-)
+
+diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
+index 07479250221d..acc47e2ffb46 100644
+--- a/fs/btrfs/inode.c
++++ b/fs/btrfs/inode.c
+@@ -9389,7 +9389,8 @@ static struct btrfs_delalloc_work *btrfs_alloc_delalloc_work(struct inode *inode
+ * some fairly slow code that needs optimization. This walks the list
+ * of all the inodes with pending delalloc and forces them to disk.
+ */
+-static int start_delalloc_inodes(struct btrfs_root *root, u64 *nr, bool snapshot,
++static int start_delalloc_inodes(struct btrfs_root *root,
++ struct writeback_control *wbc, bool snapshot,
+ bool in_reclaim_context)
+ {
+ struct btrfs_inode *binode;
+@@ -9398,6 +9399,7 @@ static int start_delalloc_inodes(struct btrfs_root *root, u64 *nr, bool snapshot
+ struct list_head works;
+ struct list_head splice;
+ int ret = 0;
++ bool full_flush = wbc->nr_to_write == LONG_MAX;
+
+ INIT_LIST_HEAD(&works);
+ INIT_LIST_HEAD(&splice);
+@@ -9426,18 +9428,24 @@ static int start_delalloc_inodes(struct btrfs_root *root, u64 *nr, bool snapshot
+ if (snapshot)
+ set_bit(BTRFS_INODE_SNAPSHOT_FLUSH,
+ &binode->runtime_flags);
+- work = btrfs_alloc_delalloc_work(inode);
+- if (!work) {
+- iput(inode);
+- ret = -ENOMEM;
+- goto out;
+- }
+- list_add_tail(&work->list, &works);
+- btrfs_queue_work(root->fs_info->flush_workers,
+- &work->work);
+- if (*nr != U64_MAX) {
+- (*nr)--;
+- if (*nr == 0)
++ if (full_flush) {
++ work = btrfs_alloc_delalloc_work(inode);
++ if (!work) {
++ iput(inode);
++ ret = -ENOMEM;
++ goto out;
++ }
++ list_add_tail(&work->list, &works);
++ btrfs_queue_work(root->fs_info->flush_workers,
++ &work->work);
++ } else {
++ ret = sync_inode(inode, wbc);
++ if (!ret &&
++ test_bit(BTRFS_INODE_HAS_ASYNC_EXTENT,
++ &BTRFS_I(inode)->runtime_flags))
++ ret = sync_inode(inode, wbc);
++ btrfs_add_delayed_iput(inode);
++ if (ret || wbc->nr_to_write <= 0)
+ goto out;
+ }
+ cond_resched();
+@@ -9463,18 +9471,29 @@ static int start_delalloc_inodes(struct btrfs_root *root, u64 *nr, bool snapshot
+
+ int btrfs_start_delalloc_snapshot(struct btrfs_root *root)
+ {
++ struct writeback_control wbc = {
++ .nr_to_write = LONG_MAX,
++ .sync_mode = WB_SYNC_NONE,
++ .range_start = 0,
++ .range_end = LLONG_MAX,
++ };
+ struct btrfs_fs_info *fs_info = root->fs_info;
+- u64 nr = U64_MAX;
+
+ if (test_bit(BTRFS_FS_STATE_ERROR, &fs_info->fs_state))
+ return -EROFS;
+
+- return start_delalloc_inodes(root, &nr, true, false);
++ return start_delalloc_inodes(root, &wbc, true, false);
+ }
+
+ int btrfs_start_delalloc_roots(struct btrfs_fs_info *fs_info, u64 nr,
+ bool in_reclaim_context)
+ {
++ struct writeback_control wbc = {
++ .nr_to_write = (nr == U64_MAX) ? LONG_MAX : (unsigned long)nr,
++ .sync_mode = WB_SYNC_NONE,
++ .range_start = 0,
++ .range_end = LLONG_MAX,
++ };
+ struct btrfs_root *root;
+ struct list_head splice;
+ int ret;
+@@ -9488,6 +9507,13 @@ int btrfs_start_delalloc_roots(struct btrfs_fs_info *fs_info, u64 nr,
+ spin_lock(&fs_info->delalloc_root_lock);
+ list_splice_init(&fs_info->delalloc_roots, &splice);
+ while (!list_empty(&splice) && nr) {
++ /*
++ * Reset nr_to_write here so we know that we're doing a full
++ * flush.
++ */
++ if (nr == U64_MAX)
++ wbc.nr_to_write = LONG_MAX;
++
+ root = list_first_entry(&splice, struct btrfs_root,
+ delalloc_root);
+ root = btrfs_grab_root(root);
+@@ -9496,9 +9522,9 @@ int btrfs_start_delalloc_roots(struct btrfs_fs_info *fs_info, u64 nr,
+ &fs_info->delalloc_roots);
+ spin_unlock(&fs_info->delalloc_root_lock);
+
+- ret = start_delalloc_inodes(root, &nr, false, in_reclaim_context);
++ ret = start_delalloc_inodes(root, &wbc, false, in_reclaim_context);
+ btrfs_put_root(root);
+- if (ret < 0)
++ if (ret < 0 || wbc.nr_to_write <= 0)
+ goto out;
+ spin_lock(&fs_info->delalloc_root_lock);
+ }
+diff --git a/fs/btrfs/space-info.c b/fs/btrfs/space-info.c
+index 67e55c5479b8..e8347461c8dd 100644
+--- a/fs/btrfs/space-info.c
++++ b/fs/btrfs/space-info.c
+@@ -532,7 +532,9 @@ static void shrink_delalloc(struct btrfs_fs_info *fs_info,
+
+ loops = 0;
+ while ((delalloc_bytes || dio_bytes) && loops < 3) {
+- btrfs_start_delalloc_roots(fs_info, items, true);
++ u64 nr_pages = min(delalloc_bytes, to_reclaim) >> PAGE_SHIFT;
++
++ btrfs_start_delalloc_roots(fs_info, nr_pages, true);
+
+ loops++;
+ if (wait_ordered && !trans) {
+--
+2.30.0
+
diff --git a/libre/linux-libre-pae/PKGBUILD b/libre/linux-libre-pae/PKGBUILD
index 93365b390..58f3299aa 100644
--- a/libre/linux-libre-pae/PKGBUILD
+++ b/libre/linux-libre-pae/PKGBUILD
@@ -9,19 +9,18 @@ _replacesoldkernels=() # '%' gets replaced with kernel suffix
_replacesoldmodules=() # '%' gets replaced with kernel suffix
pkgbase=linux-libre-pae
-pkgver=5.8.13
+pkgver=5.10.7
pkgrel=1
pkgdesc='Linux-libre PAE (physical address extension)'
url='https://linux-libre.fsfla.org/'
arch=(i686)
license=(GPL2)
makedepends=(
- bc kmod libelf pahole
+ bc kmod libelf pahole cpio perl tar xz
xmlto python-sphinx python-sphinx_rtd_theme graphviz imagemagick
- cpio
)
options=('!strip')
-_srcname=linux-5.8
+_srcname=linux-5.10
source=(
"https://linux-libre.fsfla.org/pub/linux-libre/releases/${_srcname##*-}-gnu/linux-libre-${_srcname##*-}-gnu.tar.xz"{,.sign}
"https://linux-libre.fsfla.org/pub/linux-libre/releases/$pkgver-gnu/patch-${_srcname##*-}-gnu-$pkgver-gnu.xz"{,.sign}
@@ -37,16 +36,18 @@ source=(
0002-fix-Atmel-maXTouch-touchscreen-support.patch
# Arch Linux patches
0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch
- 0002-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch
- sphinx-workaround.patch
+ 0002-HID-quirks-Add-Apple-Magic-Trackpad-2-to-hid_have_sp.patch
+ 0003-iwlwifi-Fix-regression-from-UDP-segmentation-support.patch
+ 0004-btrfs-fix-deadlock-when-cloning-inline-extent-and-lo.patch
+ 0005-btrfs-shrink-delalloc-pages-instead-of-full-inodes.patch
)
validpgpkeys=(
'474402C8C582DAFBE389C427BCB7CF877E7D47A7' # Alexandre Oliva
'6DB9C4B4F0D8C0DC432CF6E4227CA7C556B2BA78' # David P.
)
-sha512sums=('ee31b02ebb50fb061f58c9d6011c2fcda93931b2b443adb19916928a4ea1c8e60a953781f627d4fc25d0f095fa54ff78cd75850ed3a2128bbb42c6e4246af0d6'
+sha512sums=('ccc52db049a66ff146d9fc84fb00e783f2d04211156233a382f87589fec7631b8fbb3e76bfd94279607b883d25f9745e6c7d2bd62b13311dc6b425002bd42ec0'
'SKIP'
- '887b0aabea2fb3cc00dfe7bcfc068cc6e8f57dfb2b23f34b3dec3f0e124b438c0115f78d31fedb089ebbb3f546a629ddf4ffddf8f1cc4ba04fc5d5a81be7c87c'
+ 'f3e5ee9ef33eaf2a15de39b99a2a01b88681df0519f1b03dc19fa8db63120096dbddcbce9c00f8b7515b55161d3d440a9439954fc2356a35f7da5f878b5dfedb'
'SKIP'
'13cb5bc42542e7b8bb104d5f68253f6609e463b6799800418af33eb0272cc269aaa36163c3e6f0aacbdaaa1d05e2827a4a7c4a08a029238439ed08b89c564bb3'
'SKIP'
@@ -54,12 +55,14 @@ sha512sums=('ee31b02ebb50fb061f58c9d6011c2fcda93931b2b443adb19916928a4ea1c8e60a9
'SKIP'
'267295aa0cea65684968420c68b32f1a66a22d018b9d2b2c1ef14267bcf4cb68aaf7099d073cbfefe6c25c8608bdcbbd45f7ac8893fdcecbf1e621abdfe9ecc1'
'SKIP'
- 'a281ae3a72e98ccd868e4cf5e1a126a5b1a14db8c99529e82fe74779fc93aef5eb34d25bf5ec61d4841b99a0b95a703af87eb538e5e9f4c92b1e40c6394bffd8'
+ 'beb08a7e9763e490e9693c7a6f9a44f0cd672dfec2641266a67d7fdd58d751fb867d70005c67647ed427b43686ea22817686efcfa00e6175c07ba09e8983f487'
'02af4dd2a007e41db0c63822c8ab3b80b5d25646af1906dc85d0ad9bb8bbf5236f8e381d7f91cf99ed4b0978c50aee37cb9567cdeef65b7ec3d91b882852b1af'
'b8fe56e14006ab866970ddbd501c054ae37186ddc065bb869cf7d18db8c0d455118d5bda3255fb66a0dde38b544655cfe9040ffe46e41d19830b47959b2fb168'
- '0dc489140a17ff872c799f025b35cce6e61dc7c711047fd5faaa40bf3b6e31ba64c84f2fae6830d238412f1976f4c087db80ac59389be99bb7e24c72e4eec7fd'
- '61e3d6fb673397b745609942b8127fe27345f8ce06c4282644a9d231a902e1fb7b3672a94bf879bfebea260845aa72e5588df22be3d2cea2a6b194d4e6a7691d'
- '98e97155f86bbe837d43f27ec1018b5b6fdc6c372d6f7f2a0fe29da117d53979d9f9c262f886850d92002898682781029b80d4ee923633fc068f979e6c8254be')
+ '3ab3b136aa2eba15b21112bc4978f214a4f9ad38bc6242d4917fbe44f68665bf52b81af1ca60c4b27492f15230a79d2d4e4c02ca06cd9ea55837fddca7cf176b'
+ '32a76d0774eb2a0de38452321da6d8402cea70425d83942f7eda53a47a8465e4890ae277275b166e621574e4892f5dac5a0c37263abc0ea300f0c9af639e0f84'
+ '127b2148feb60a64a3d98080625f8a6986033e6099f284f524697935af3c475e287dd69fde3840d7e62eb1d14d175becfe8d138894c8fb72acc1efeacbcc5fa3'
+ 'b118bcf344d0fb6ef3d0b3d39c0d635bff69f5b6a70274db31ec8db89a88dab9aa70af3a511b63821b3d8715310ee81e1c1a88dc73d4852d07d5cc1da33204f1'
+ '5ff6bc9d6a77b939cc4b411cb43311ec2c2048ff7ceb115d588ac902abae1d55de34cb36706f20237306e9973b46f1b1b28b15a74aeb8ce52456ffc3047e4585')
_replacesarchkernel=("${_replacesarchkernel[@]/\%/${pkgbase#linux-libre}}")
_replacesoldkernels=("${_replacesoldkernels[@]/\%/${pkgbase#linux-libre}}")
diff --git a/libre/linux-libre-pae/config b/libre/linux-libre-pae/config
index 9260151a0..8e1b054ad 100644
--- a/libre/linux-libre-pae/config
+++ b/libre/linux-libre-pae/config
@@ -1,12 +1,13 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 5.8.13-gnu Kernel Configuration
+# Linux/x86 5.10.7-gnu Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (GCC) 10.2.0"
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=100200
-CONFIG_LD_VERSION=235000000
+CONFIG_LD_VERSION=235010000
CONFIG_CLANG_VERSION=0
+CONFIG_LLD_VERSION=0
CONFIG_CC_CAN_LINK=y
CONFIG_CC_CAN_LINK_STATIC=y
CONFIG_CC_HAS_ASM_GOTO=y
@@ -20,8 +21,8 @@ CONFIG_THREAD_INFO_IN_TASK=y
#
CONFIG_INIT_ENV_ARG_LIMIT=32
# CONFIG_COMPILE_TEST is not set
-CONFIG_LOCALVERSION="-pae"
-# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
CONFIG_BUILD_SALT=""
CONFIG_HAVE_KERNEL_GZIP=y
CONFIG_HAVE_KERNEL_BZIP2=y
@@ -29,14 +30,16 @@ CONFIG_HAVE_KERNEL_LZMA=y
CONFIG_HAVE_KERNEL_XZ=y
CONFIG_HAVE_KERNEL_LZO=y
CONFIG_HAVE_KERNEL_LZ4=y
+CONFIG_HAVE_KERNEL_ZSTD=y
# CONFIG_KERNEL_GZIP is not set
# CONFIG_KERNEL_BZIP2 is not set
# CONFIG_KERNEL_LZMA is not set
CONFIG_KERNEL_XZ=y
# CONFIG_KERNEL_LZO is not set
# CONFIG_KERNEL_LZ4 is not set
+# CONFIG_KERNEL_ZSTD is not set
CONFIG_DEFAULT_INIT=""
-CONFIG_DEFAULT_HOSTNAME="archlinux"
+CONFIG_DEFAULT_HOSTNAME="parabola"
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
@@ -78,6 +81,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
CONFIG_GENERIC_CMOS_UPDATE=y
+CONFIG_HAVE_POSIX_CPU_TIMERS_TASK_WORK=y
+CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y
#
# Timers subsystem
@@ -102,7 +107,6 @@ CONFIG_PREEMPTION=y
CONFIG_TICK_CPU_ACCOUNTING=y
CONFIG_IRQ_TIME_ACCOUNTING=y
CONFIG_HAVE_SCHED_AVG_IRQ=y
-# CONFIG_SCHED_THERMAL_PRESSURE is not set
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
CONFIG_TASKSTATS=y
@@ -125,6 +129,7 @@ CONFIG_TREE_SRCU=y
CONFIG_TASKS_RCU_GENERIC=y
CONFIG_TASKS_RCU=y
CONFIG_TASKS_RUDE_RCU=y
+CONFIG_TASKS_TRACE_RCU=y
CONFIG_RCU_STALL_COMMON=y
CONFIG_RCU_NEED_SEGCBLIST=y
CONFIG_RCU_FANOUT=32
@@ -194,9 +199,11 @@ CONFIG_RD_LZMA=y
CONFIG_RD_XZ=y
CONFIG_RD_LZO=y
CONFIG_RD_LZ4=y
+CONFIG_RD_ZSTD=y
# CONFIG_BOOT_CONFIG is not set
CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_LD_ORPHAN_WARN=y
CONFIG_SYSCTL=y
CONFIG_HAVE_UID16=y
CONFIG_SYSCTL_EXCEPTION_TRACE=y
@@ -230,6 +237,7 @@ CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
CONFIG_KALLSYMS_BASE_RELATIVE=y
CONFIG_BPF_SYSCALL=y
+# CONFIG_BPF_PRELOAD is not set
# CONFIG_USERFAULTFD is not set
CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y
CONFIG_RSEQ=y
@@ -408,8 +416,8 @@ CONFIG_TOSHIBA=m
CONFIG_I8K=m
CONFIG_X86_REBOOTFIXUPS=y
CONFIG_MICROCODE=y
-CONFIG_MICROCODE_INTEL=y
-CONFIG_MICROCODE_AMD=y
+# CONFIG_MICROCODE_INTEL is not set
+# CONFIG_MICROCODE_AMD is not set
CONFIG_MICROCODE_OLD_INTERFACE=y
CONFIG_X86_MSR=m
CONFIG_X86_CPUID=m
@@ -449,7 +457,6 @@ CONFIG_X86_INTEL_TSX_MODE_OFF=y
# CONFIG_X86_INTEL_TSX_MODE_AUTO is not set
CONFIG_EFI=y
CONFIG_EFI_STUB=y
-CONFIG_SECCOMP=y
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
CONFIG_HZ_300=y
@@ -515,7 +522,6 @@ CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y
# CONFIG_ACPI_DEBUGGER is not set
CONFIG_ACPI_SPCR_TABLE=y
CONFIG_ACPI_SLEEP=y
-# CONFIG_ACPI_PROCFS_POWER is not set
CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y
CONFIG_ACPI_EC_DEBUGFS=y
CONFIG_ACPI_AC=m
@@ -552,16 +558,16 @@ CONFIG_ACPI_APEI_GHES=y
CONFIG_ACPI_APEI_PCIEAER=y
CONFIG_ACPI_APEI_EINJ=m
CONFIG_ACPI_APEI_ERST_DEBUG=m
-CONFIG_DPTF_POWER=m
+# CONFIG_ACPI_DPTF is not set
CONFIG_ACPI_WATCHDOG=y
CONFIG_ACPI_EXTLOG=m
+CONFIG_ACPI_CONFIGFS=m
CONFIG_PMIC_OPREGION=y
# CONFIG_BYTCRC_PMIC_OPREGION is not set
# CONFIG_CHTCRC_PMIC_OPREGION is not set
CONFIG_XPOWER_PMIC_OPREGION=y
CONFIG_CHT_WC_PMIC_OPREGION=y
CONFIG_CHT_DC_TI_PMIC_OPREGION=y
-CONFIG_ACPI_CONFIGFS=m
CONFIG_TPS68470_PMIC_OPREGION=y
CONFIG_X86_PM_TIMER=y
CONFIG_SFI=y
@@ -583,8 +589,6 @@ CONFIG_CPU_FREQ_STAT=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=m
@@ -688,10 +692,13 @@ CONFIG_FW_CFG_SYSFS=m
#
# CONFIG_EFI_VARS is not set
CONFIG_EFI_ESRT=y
+CONFIG_EFI_VARS_PSTORE=y
+# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set
CONFIG_EFI_RUNTIME_MAP=y
# CONFIG_EFI_FAKE_MEMMAP is not set
CONFIG_EFI_RUNTIME_WRAPPERS=y
CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER=y
+# CONFIG_EFI_BOOTLOADER_CONTROL is not set
CONFIG_EFI_CAPSULE_LOADER=y
CONFIG_EFI_CAPSULE_QUIRK_QUARK_CSH=y
# CONFIG_EFI_TEST is not set
@@ -706,6 +713,7 @@ CONFIG_UEFI_CPER=y
CONFIG_UEFI_CPER_X86=y
CONFIG_EFI_DEV_PATH_PARSER=y
CONFIG_EFI_EARLYCON=y
+CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y
#
# Tegra firmware driver
@@ -726,6 +734,7 @@ CONFIG_KVM_VFIO=y
CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y
CONFIG_HAVE_KVM_IRQ_BYPASS=y
CONFIG_HAVE_KVM_NO_POLL=y
+CONFIG_KVM_XFER_TO_GUEST_WORK=y
CONFIG_VIRTUALIZATION=y
CONFIG_KVM=m
# CONFIG_KVM_WERROR is not set
@@ -743,6 +752,7 @@ CONFIG_AS_TPAUSE=y
CONFIG_CRASH_CORE=y
CONFIG_KEXEC_CORE=y
CONFIG_HOTPLUG_SMT=y
+CONFIG_GENERIC_ENTRY=y
CONFIG_OPROFILE=m
# CONFIG_OPROFILE_EVENT_MULTIPLEX is not set
CONFIG_HAVE_OPROFILE=y
@@ -750,6 +760,7 @@ CONFIG_OPROFILE_NMI_TIMER=y
CONFIG_KPROBES=y
CONFIG_JUMP_LABEL=y
# CONFIG_STATIC_KEYS_SELFTEST is not set
+# CONFIG_STATIC_CALL_SELFTEST is not set
CONFIG_OPTPROBES=y
CONFIG_KPROBES_ON_FTRACE=y
CONFIG_UPROBES=y
@@ -793,11 +804,12 @@ CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
CONFIG_HAVE_CMPXCHG_LOCAL=y
CONFIG_HAVE_CMPXCHG_DOUBLE=y
CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
+CONFIG_HAVE_ARCH_SECCOMP=y
CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
+CONFIG_SECCOMP=y
CONFIG_SECCOMP_FILTER=y
CONFIG_HAVE_ARCH_STACKLEAK=y
CONFIG_HAVE_STACKPROTECTOR=y
-CONFIG_CC_HAS_STACKPROTECTOR_NONE=y
CONFIG_STACKPROTECTOR=y
CONFIG_STACKPROTECTOR_STRONG=y
CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y
@@ -812,7 +824,6 @@ CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
CONFIG_HAVE_EXIT_THREAD=y
CONFIG_ARCH_MMAP_RND_BITS=8
-CONFIG_HAVE_COPY_THREAD_TLS=y
CONFIG_ISA_BUS_API=y
CONFIG_CLONE_BACKWARDS=y
CONFIG_OLD_SIGSUSPEND3=y
@@ -826,6 +837,8 @@ CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y
CONFIG_ARCH_USE_MEMREMAP_PROT=y
# CONFIG_LOCK_EVENT_COUNTS is not set
CONFIG_ARCH_HAS_MEM_ENCRYPT=y
+CONFIG_HAVE_STATIC_CALL=y
+CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y
#
# GCOV-based kernel profiling
@@ -953,7 +966,6 @@ CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_SPARSEMEM_MANUAL=y
CONFIG_SPARSEMEM=y
CONFIG_NEED_MULTIPLE_NODES=y
-CONFIG_HAVE_MEMORY_PRESENT=y
CONFIG_SPARSEMEM_STATIC=y
CONFIG_HAVE_FAST_GUP=y
CONFIG_MEMORY_ISOLATION=y
@@ -996,10 +1008,11 @@ CONFIG_ZPOOL=y
CONFIG_ZBUD=y
CONFIG_Z3FOLD=y
CONFIG_ZSMALLOC=y
-# CONFIG_ZSMALLOC_PGTABLE_MAPPING is not set
# CONFIG_ZSMALLOC_STAT is not set
CONFIG_GENERIC_EARLY_IOREMAP=y
# CONFIG_IDLE_PAGE_TRACKING is not set
+CONFIG_HMM_MIRROR=y
+CONFIG_VMAP_PFN=y
CONFIG_FRAME_VECTOR=y
# CONFIG_PERCPU_STATS is not set
# CONFIG_GUP_BENCHMARK is not set
@@ -1132,8 +1145,8 @@ CONFIG_IPV6_SEG6_BPF=y
# CONFIG_IPV6_RPL_LWTUNNEL is not set
CONFIG_NETLABEL=y
CONFIG_MPTCP=y
+CONFIG_INET_MPTCP_DIAG=m
CONFIG_MPTCP_IPV6=y
-# CONFIG_MPTCP_HMAC_TEST is not set
CONFIG_NETWORK_SECMARK=y
CONFIG_NET_PTP_CLASSIFY=y
CONFIG_NETWORK_PHY_TIMESTAMPING=y
@@ -1554,6 +1567,7 @@ CONFIG_NET_DSA_TAG_DSA=m
CONFIG_NET_DSA_TAG_EDSA=m
CONFIG_NET_DSA_TAG_MTK=m
CONFIG_NET_DSA_TAG_KSZ=m
+CONFIG_NET_DSA_TAG_RTL4_A=m
# CONFIG_NET_DSA_TAG_OCELOT is not set
CONFIG_NET_DSA_TAG_QCA=m
CONFIG_NET_DSA_TAG_LAN9303=m
@@ -1631,6 +1645,7 @@ CONFIG_NET_SCH_DEFAULT=y
# CONFIG_DEFAULT_FQ is not set
# CONFIG_DEFAULT_CODEL is not set
CONFIG_DEFAULT_FQ_CODEL=y
+# CONFIG_DEFAULT_FQ_PIE is not set
# CONFIG_DEFAULT_SFQ is not set
# CONFIG_DEFAULT_PFIFO_FAST is not set
CONFIG_DEFAULT_NET_SCH="fq_codel"
@@ -1775,6 +1790,7 @@ CONFIG_CAN_RAW=m
CONFIG_CAN_BCM=m
CONFIG_CAN_GW=m
CONFIG_CAN_J1939=m
+# CONFIG_CAN_ISOTP is not set
#
# CAN Device Drivers
@@ -1820,6 +1836,7 @@ CONFIG_CAN_SOFTING_CS=m
#
CONFIG_CAN_HI311X=m
CONFIG_CAN_MCP251X=m
+# CONFIG_CAN_MCP251XFD is not set
# end of CAN SPI interfaces
#
@@ -2009,6 +2026,7 @@ CONFIG_NET_SOCK_MSG=y
CONFIG_NET_DEVLINK=y
CONFIG_PAGE_POOL=y
CONFIG_FAILOVER=m
+CONFIG_ETHTOOL_NETLINK=y
CONFIG_HAVE_EBPF_JIT=y
#
@@ -2036,6 +2054,7 @@ CONFIG_PCIE_PTM=y
# CONFIG_PCIE_EDR is not set
CONFIG_PCI_MSI=y
CONFIG_PCI_MSI_IRQ_DOMAIN=y
+CONFIG_PCI_MSI_ARCH_FALLBACKS=y
CONFIG_PCI_QUIRKS=y
# CONFIG_PCI_DEBUG is not set
CONFIG_PCI_REALLOC_ENABLE_AUTO=y
@@ -2047,6 +2066,11 @@ CONFIG_PCI_IOV=y
CONFIG_PCI_PRI=y
CONFIG_PCI_PASID=y
CONFIG_PCI_LABEL=y
+# CONFIG_PCIE_BUS_TUNE_OFF is not set
+CONFIG_PCIE_BUS_DEFAULT=y
+# CONFIG_PCIE_BUS_SAFE is not set
+# CONFIG_PCIE_BUS_PERFORMANCE is not set
+# CONFIG_PCIE_BUS_PEER2PEER is not set
CONFIG_HOTPLUG_PCI=y
CONFIG_HOTPLUG_PCI_COMPAQ=m
# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
@@ -2086,6 +2110,8 @@ CONFIG_PCI_MESON=y
#
# CONFIG_PCIE_CADENCE_PLAT_HOST is not set
# CONFIG_PCIE_CADENCE_PLAT_EP is not set
+# CONFIG_PCI_J721E_HOST is not set
+# CONFIG_PCI_J721E_EP is not set
# end of Cadence PCIe controllers support
# end of PCI controller drivers
@@ -2307,6 +2333,9 @@ CONFIG_BCH_CONST_M=14
CONFIG_BCH_CONST_T=4
# end of Self-contained MTD device drivers
+#
+# NAND
+#
CONFIG_MTD_NAND_CORE=m
CONFIG_MTD_ONENAND=m
# CONFIG_MTD_ONENAND_VERIFY_WRITE is not set
@@ -2345,6 +2374,13 @@ CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE=y
CONFIG_MTD_SPI_NAND=m
#
+# ECC engine support
+#
+CONFIG_MTD_NAND_ECC=y
+# end of ECC engine support
+# end of NAND
+
+#
# LPDDR & LPDDR2 PCM memory drivers
#
CONFIG_MTD_LPDDR=m
@@ -2372,7 +2408,6 @@ CONFIG_OF_DYNAMIC=y
CONFIG_OF_ADDRESS=y
CONFIG_OF_IRQ=y
CONFIG_OF_NET=y
-CONFIG_OF_MDIO=m
CONFIG_OF_RESOLVE=y
CONFIG_OF_OVERLAY=y
CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
@@ -2434,6 +2469,7 @@ CONFIG_NVME_RDMA=m
CONFIG_NVME_FC=m
CONFIG_NVME_TCP=m
CONFIG_NVME_TARGET=m
+# CONFIG_NVME_TARGET_PASSTHRU is not set
CONFIG_NVME_TARGET_LOOP=m
CONFIG_NVME_TARGET_RDMA=m
CONFIG_NVME_TARGET_FC=m
@@ -2475,6 +2511,7 @@ CONFIG_PCI_ENDPOINT_TEST=m
CONFIG_XILINX_SDFEC=m
CONFIG_MISC_RTSX=m
CONFIG_PVPANIC=m
+# CONFIG_HISI_HIKEY_USB is not set
CONFIG_C2PORT=m
CONFIG_C2PORT_DURAMAR_2150=m
@@ -2505,17 +2542,9 @@ CONFIG_SENSORS_LIS3_I2C=m
CONFIG_ALTERA_STAPL=m
CONFIG_INTEL_MEI=m
CONFIG_INTEL_MEI_ME=m
-CONFIG_INTEL_MEI_TXE=m
+# CONFIG_INTEL_MEI_TXE is not set
CONFIG_INTEL_MEI_HDCP=m
CONFIG_VMWARE_VMCI=m
-
-#
-# Intel MIC & related support
-#
-CONFIG_VOP_BUS=m
-CONFIG_VOP=m
-# end of Intel MIC & related support
-
CONFIG_ECHO=m
CONFIG_MISC_ALCOR_PCI=m
CONFIG_MISC_RTSX_PCI=m
@@ -2810,7 +2839,7 @@ CONFIG_MD_CLUSTER=m
CONFIG_BCACHE=m
# CONFIG_BCACHE_DEBUG is not set
# CONFIG_BCACHE_CLOSURES_DEBUG is not set
-# CONFIG_BCACHE_ASYNC_REGISTRAION is not set
+# CONFIG_BCACHE_ASYNC_REGISTRATION is not set
CONFIG_BLK_DEV_DM_BUILTIN=y
CONFIG_BLK_DEV_DM=m
CONFIG_DM_DEBUG=y
@@ -2977,6 +3006,7 @@ CONFIG_NET_DSA_MICROCHIP_KSZ8795_SPI=m
CONFIG_NET_DSA_MV88E6XXX=m
CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
CONFIG_NET_DSA_MV88E6XXX_PTP=y
+# CONFIG_NET_DSA_MSCC_SEVILLE is not set
CONFIG_NET_DSA_AR9331=m
CONFIG_NET_DSA_SJA1105=m
# CONFIG_NET_DSA_SJA1105_PTP is not set
@@ -3064,6 +3094,8 @@ CONFIG_CHELSIO_T4_DCB=y
CONFIG_CHELSIO_T4_FCOE=y
CONFIG_CHELSIO_T4VF=m
CONFIG_CHELSIO_LIB=m
+CONFIG_CHELSIO_INLINE_CRYPTO=y
+CONFIG_CHELSIO_IPSEC_INLINE=m
CONFIG_NET_VENDOR_CIRRUS=y
CONFIG_CS89x0=m
# CONFIG_CS89x0_PLATFORM is not set
@@ -3137,6 +3169,7 @@ CONFIG_SKGE=m
CONFIG_SKGE_GENESIS=y
CONFIG_SKY2=m
# CONFIG_SKY2_DEBUG is not set
+# CONFIG_PRESTERA is not set
CONFIG_NET_VENDOR_MELLANOX=y
CONFIG_MLX4_EN=m
CONFIG_MLX4_EN_DCB=y
@@ -3155,6 +3188,7 @@ CONFIG_MLX5_CLS_ACT=y
CONFIG_MLX5_CORE_EN_DCB=y
CONFIG_MLX5_CORE_IPOIB=y
# CONFIG_MLX5_FPGA_IPSEC is not set
+# CONFIG_MLX5_IPSEC is not set
CONFIG_MLX5_SW_STEERING=y
CONFIG_MLXSW_CORE=m
CONFIG_MLXSW_CORE_HWMON=y
@@ -3178,8 +3212,8 @@ CONFIG_ENC28J60=m
CONFIG_ENCX24J600=m
CONFIG_LAN743X=m
CONFIG_NET_VENDOR_MICROSEMI=y
+CONFIG_MSCC_OCELOT_SWITCH_LIB=m
CONFIG_MSCC_OCELOT_SWITCH=m
-CONFIG_MSCC_OCELOT_SWITCH_OCELOT=m
CONFIG_NET_VENDOR_MYRI=y
CONFIG_MYRI10GE=m
CONFIG_FEALNX=m
@@ -3276,6 +3310,7 @@ CONFIG_STMMAC_ETH=m
CONFIG_STMMAC_PLATFORM=m
CONFIG_DWMAC_DWC_QOS_ETH=m
CONFIG_DWMAC_GENERIC=m
+# CONFIG_DWMAC_INTEL_PLAT is not set
# CONFIG_DWMAC_INTEL is not set
CONFIG_STMMAC_PCI=m
CONFIG_NET_VENDOR_SUN=y
@@ -3313,54 +3348,33 @@ CONFIG_DEFXX_MMIO=y
CONFIG_SKFP=m
# CONFIG_HIPPI is not set
CONFIG_NET_SB1000=m
-CONFIG_MDIO_DEVICE=m
-CONFIG_MDIO_BUS=m
-CONFIG_MDIO_BCM_UNIMAC=m
-CONFIG_MDIO_BITBANG=m
-CONFIG_MDIO_BUS_MUX=m
-CONFIG_MDIO_BUS_MUX_GPIO=m
-CONFIG_MDIO_BUS_MUX_MMIOREG=m
-CONFIG_MDIO_BUS_MUX_MULTIPLEXER=m
-CONFIG_MDIO_GPIO=m
-CONFIG_MDIO_HISI_FEMAC=m
-CONFIG_MDIO_I2C=m
-# CONFIG_MDIO_IPQ4019 is not set
-CONFIG_MDIO_IPQ8064=m
-CONFIG_MDIO_MSCC_MIIM=m
-CONFIG_MDIO_MVUSB=m
-CONFIG_MDIO_XPCS=m
CONFIG_PHYLINK=m
CONFIG_PHYLIB=m
CONFIG_SWPHY=y
CONFIG_LED_TRIGGER_PHY=y
+CONFIG_FIXED_PHY=m
+CONFIG_SFP=m
#
# MII PHY device drivers
#
-CONFIG_SFP=m
-CONFIG_ADIN_PHY=m
CONFIG_AMD_PHY=m
+CONFIG_ADIN_PHY=m
CONFIG_AQUANTIA_PHY=m
CONFIG_AX88796B_PHY=m
-CONFIG_BCM7XXX_PHY=m
-CONFIG_BCM87XX_PHY=m
-CONFIG_BCM_NET_PHYLIB=m
CONFIG_BROADCOM_PHY=m
# CONFIG_BCM54140_PHY is not set
+CONFIG_BCM7XXX_PHY=m
# CONFIG_BCM84881_PHY is not set
+CONFIG_BCM87XX_PHY=m
+CONFIG_BCM_NET_PHYLIB=m
CONFIG_CICADA_PHY=m
CONFIG_CORTINA_PHY=m
CONFIG_DAVICOM_PHY=m
-CONFIG_DP83822_PHY=m
-CONFIG_DP83TC811_PHY=m
-CONFIG_DP83848_PHY=m
-CONFIG_DP83867_PHY=m
-# CONFIG_DP83869_PHY is not set
-CONFIG_FIXED_PHY=m
CONFIG_ICPLUS_PHY=m
+CONFIG_LXT_PHY=m
CONFIG_INTEL_XWAY_PHY=m
CONFIG_LSI_ET1011C_PHY=m
-CONFIG_LXT_PHY=m
CONFIG_MARVELL_PHY=m
CONFIG_MARVELL_10G_PHY=m
CONFIG_MICREL_PHY=m
@@ -3377,9 +3391,42 @@ CONFIG_ROCKCHIP_PHY=m
CONFIG_SMSC_PHY=m
CONFIG_STE10XP=m
CONFIG_TERANETICS_PHY=m
+CONFIG_DP83822_PHY=m
+CONFIG_DP83TC811_PHY=m
+CONFIG_DP83848_PHY=m
+CONFIG_DP83867_PHY=m
+# CONFIG_DP83869_PHY is not set
CONFIG_VITESSE_PHY=m
CONFIG_XILINX_GMII2RGMII=m
CONFIG_MICREL_KS8995MA=m
+CONFIG_MDIO_DEVICE=m
+CONFIG_MDIO_BUS=m
+CONFIG_OF_MDIO=m
+CONFIG_MDIO_DEVRES=m
+CONFIG_MDIO_BITBANG=m
+CONFIG_MDIO_BCM_UNIMAC=m
+CONFIG_MDIO_GPIO=m
+CONFIG_MDIO_HISI_FEMAC=m
+CONFIG_MDIO_I2C=m
+CONFIG_MDIO_MVUSB=m
+CONFIG_MDIO_MSCC_MIIM=m
+# CONFIG_MDIO_IPQ4019 is not set
+CONFIG_MDIO_IPQ8064=m
+
+#
+# MDIO Multiplexers
+#
+CONFIG_MDIO_BUS_MUX=m
+CONFIG_MDIO_BUS_MUX_GPIO=m
+CONFIG_MDIO_BUS_MUX_MULTIPLEXER=m
+CONFIG_MDIO_BUS_MUX_MMIOREG=m
+
+#
+# PCS device drivers
+#
+CONFIG_PCS_XPCS=m
+# end of PCS device drivers
+
CONFIG_PLIP=m
CONFIG_PPP=m
CONFIG_PPP_BSDCOMP=m
@@ -3504,6 +3551,7 @@ CONFIG_ATH10K_SPECTRAL=y
CONFIG_ATH10K_TRACING=y
CONFIG_WCN36XX=m
CONFIG_WCN36XX_DEBUGFS=y
+# CONFIG_ATH11K is not set
CONFIG_WLAN_VENDOR_ATMEL=y
CONFIG_ATMEL=m
CONFIG_PCI_ATMEL=m
@@ -3575,21 +3623,7 @@ CONFIG_IWLEGACY_DEBUG=y
CONFIG_IWLEGACY_DEBUGFS=y
# end of iwl3945 / iwl4965 Debugging Options
-CONFIG_IWLWIFI=m
-CONFIG_IWLWIFI_LEDS=y
-CONFIG_IWLDVM=m
-CONFIG_IWLMVM=m
-CONFIG_IWLWIFI_OPMODE_MODULAR=y
-# CONFIG_IWLWIFI_BCAST_FILTERING is not set
-
-#
-# Debugging Options
-#
-CONFIG_IWLWIFI_DEBUG=y
-CONFIG_IWLWIFI_DEBUGFS=y
-CONFIG_IWLWIFI_DEVICE_TRACING=y
-# end of Debugging Options
-
+# CONFIG_IWLWIFI is not set
CONFIG_WLAN_VENDOR_INTERSIL=y
CONFIG_HOSTAP=m
CONFIG_HOSTAP_FIRMWARE=y
@@ -3647,7 +3681,13 @@ CONFIG_MT7603E=m
CONFIG_MT7615_COMMON=m
CONFIG_MT7615E=m
# CONFIG_MT7663U is not set
+# CONFIG_MT7663S is not set
# CONFIG_MT7915E is not set
+CONFIG_WLAN_VENDOR_MICROCHIP=y
+CONFIG_WILC1000=m
+CONFIG_WILC1000_SDIO=m
+CONFIG_WILC1000_SPI=m
+# CONFIG_WILC1000_HW_OOB_INTR is not set
CONFIG_WLAN_VENDOR_RALINK=y
CONFIG_RT2X00=m
CONFIG_RT2400PCI=m
@@ -3708,6 +3748,7 @@ CONFIG_RTW88_8822C=m
# CONFIG_RTW88_8822BE is not set
CONFIG_RTW88_8822CE=m
# CONFIG_RTW88_8723DE is not set
+# CONFIG_RTW88_8821CE is not set
CONFIG_RTW88_DEBUG=y
CONFIG_RTW88_DEBUGFS=y
CONFIG_WLAN_VENDOR_RSI=y
@@ -3893,6 +3934,7 @@ CONFIG_MOUSE_SYNAPTICS_USB=m
CONFIG_INPUT_JOYSTICK=y
CONFIG_JOYSTICK_ANALOG=m
CONFIG_JOYSTICK_A3D=m
+# CONFIG_JOYSTICK_ADC is not set
CONFIG_JOYSTICK_ADI=m
CONFIG_JOYSTICK_COBRA=m
CONFIG_JOYSTICK_GF2K=m
@@ -4041,6 +4083,7 @@ CONFIG_TOUCHSCREEN_ZFORCE=m
CONFIG_TOUCHSCREEN_COLIBRI_VF50=m
CONFIG_TOUCHSCREEN_ROHM_BU21023=m
CONFIG_TOUCHSCREEN_IQS5XX=m
+# CONFIG_TOUCHSCREEN_ZINITIX is not set
CONFIG_INPUT_MISC=y
CONFIG_INPUT_88PM860X_ONKEY=m
CONFIG_INPUT_88PM80X_ONKEY=m
@@ -4116,6 +4159,7 @@ CONFIG_RMI4_F11=y
CONFIG_RMI4_F12=y
CONFIG_RMI4_F30=y
CONFIG_RMI4_F34=y
+# CONFIG_RMI4_F3A is not set
CONFIG_RMI4_F54=y
CONFIG_RMI4_F55=y
@@ -4270,10 +4314,12 @@ CONFIG_HW_RANDOM=m
CONFIG_HW_RANDOM_TIMERIOMEM=m
CONFIG_HW_RANDOM_INTEL=m
CONFIG_HW_RANDOM_AMD=m
+# CONFIG_HW_RANDOM_BA431 is not set
CONFIG_HW_RANDOM_GEODE=m
CONFIG_HW_RANDOM_VIA=m
CONFIG_HW_RANDOM_VIRTIO=m
# CONFIG_HW_RANDOM_CCTRNG is not set
+# CONFIG_HW_RANDOM_XIPHERA is not set
CONFIG_DTLK=m
CONFIG_APPLICOM=m
CONFIG_SONYPI=m
@@ -4434,6 +4480,7 @@ CONFIG_I2C_FSI=m
# CONFIG_I2C_STUB is not set
CONFIG_I2C_SLAVE=y
CONFIG_I2C_SLAVE_EEPROM=m
+# CONFIG_I2C_SLAVE_TESTUNIT is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
@@ -4466,6 +4513,7 @@ CONFIG_SPI_GPIO=m
CONFIG_SPI_LM70_LLP=m
CONFIG_SPI_FSL_LIB=m
CONFIG_SPI_FSL_SPI=m
+# CONFIG_SPI_LANTIQ_SSC is not set
CONFIG_SPI_OC_TINY=m
CONFIG_SPI_PXA2XX=m
CONFIG_SPI_PXA2XX_PCI=m
@@ -4563,12 +4611,19 @@ CONFIG_PINCTRL_BROXTON=y
CONFIG_PINCTRL_CANNONLAKE=y
CONFIG_PINCTRL_CEDARFORK=y
CONFIG_PINCTRL_DENVERTON=y
+# CONFIG_PINCTRL_EMMITSBURG is not set
CONFIG_PINCTRL_GEMINILAKE=y
CONFIG_PINCTRL_ICELAKE=m
# CONFIG_PINCTRL_JASPERLAKE is not set
CONFIG_PINCTRL_LEWISBURG=y
CONFIG_PINCTRL_SUNRISEPOINT=y
# CONFIG_PINCTRL_TIGERLAKE is not set
+
+#
+# Renesas pinctrl drivers
+#
+# end of Renesas pinctrl drivers
+
CONFIG_PINCTRL_MADERA=m
CONFIG_PINCTRL_CS47L35=y
CONFIG_PINCTRL_CS47L85=y
@@ -4581,6 +4636,8 @@ CONFIG_GPIO_ACPI=y
CONFIG_GPIOLIB_IRQCHIP=y
# CONFIG_DEBUG_GPIO is not set
CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_CDEV=y
+CONFIG_GPIO_CDEV_V1=y
CONFIG_GPIO_GENERIC=y
CONFIG_GPIO_MAX730X=m
@@ -4632,6 +4689,7 @@ CONFIG_GPIO_MAX7300=m
CONFIG_GPIO_MAX732X=m
CONFIG_GPIO_PCA953X=m
# CONFIG_GPIO_PCA953X_IRQ is not set
+# CONFIG_GPIO_PCA9570 is not set
CONFIG_GPIO_PCF857X=m
CONFIG_GPIO_TPIC2810=m
# end of I2C GPIO expanders
@@ -4746,8 +4804,6 @@ CONFIG_W1_SLAVE_DS28E04=m
CONFIG_W1_SLAVE_DS28E17=m
# end of 1-wire Slaves
-CONFIG_POWER_AVS=y
-CONFIG_QCOM_CPR=m
CONFIG_POWER_RESET=y
CONFIG_POWER_RESET_AS3722=y
CONFIG_POWER_RESET_GPIO=y
@@ -4779,7 +4835,6 @@ CONFIG_BATTERY_DS2760=m
CONFIG_BATTERY_DS2780=m
CONFIG_BATTERY_DS2781=m
CONFIG_BATTERY_DS2782=m
-CONFIG_BATTERY_LEGO_EV3=m
CONFIG_BATTERY_SBS=m
CONFIG_CHARGER_SBS=m
CONFIG_MANAGER_SBS=m
@@ -4821,7 +4876,9 @@ CONFIG_CHARGER_BQ2415X=m
CONFIG_CHARGER_BQ24190=m
CONFIG_CHARGER_BQ24257=m
CONFIG_CHARGER_BQ24735=m
+# CONFIG_CHARGER_BQ2515X is not set
CONFIG_CHARGER_BQ25890=m
+# CONFIG_CHARGER_BQ25980 is not set
CONFIG_CHARGER_SMB347=m
CONFIG_CHARGER_TPS65090=m
CONFIG_CHARGER_TPS65217=m
@@ -4833,6 +4890,7 @@ CONFIG_CHARGER_UCS1002=m
CONFIG_CHARGER_BD70528=m
# CONFIG_CHARGER_BD99954 is not set
CONFIG_CHARGER_WILCO=m
+# CONFIG_RN5T618_POWER is not set
CONFIG_HWMON=y
CONFIG_HWMON_VID=m
# CONFIG_HWMON_DEBUG_CHIP is not set
@@ -4870,6 +4928,7 @@ CONFIG_SENSORS_APPLESMC=m
CONFIG_SENSORS_ASB100=m
CONFIG_SENSORS_ASPEED=m
CONFIG_SENSORS_ATXP1=m
+CONFIG_SENSORS_CORSAIR_CPRO=m
CONFIG_SENSORS_DRIVETEMP=m
CONFIG_SENSORS_DS620=m
CONFIG_SENSORS_DS1621=m
@@ -4925,6 +4984,7 @@ CONFIG_SENSORS_MCP3021=m
CONFIG_SENSORS_MLXREG_FAN=m
CONFIG_SENSORS_TC654=m
CONFIG_SENSORS_MENF21BMC_HWMON=m
+# CONFIG_SENSORS_MR75203 is not set
CONFIG_SENSORS_ADCXX=m
CONFIG_SENSORS_LM63=m
CONFIG_SENSORS_LM70=m
@@ -4953,6 +5013,7 @@ CONFIG_SENSORS_NPCM7XX=m
CONFIG_SENSORS_PCF8591=m
CONFIG_PMBUS=m
CONFIG_SENSORS_PMBUS=m
+# CONFIG_SENSORS_ADM1266 is not set
CONFIG_SENSORS_ADM1275=m
# CONFIG_SENSORS_BEL_PFE is not set
CONFIG_SENSORS_IBM_CFFPS=m
@@ -4972,6 +5033,7 @@ CONFIG_SENSORS_MAX20751=m
CONFIG_SENSORS_MAX31785=m
CONFIG_SENSORS_MAX34440=m
CONFIG_SENSORS_MAX8688=m
+# CONFIG_SENSORS_MP2975 is not set
CONFIG_SENSORS_PXE1610=m
CONFIG_SENSORS_TPS40422=m
CONFIG_SENSORS_TPS53679=m
@@ -5037,6 +5099,7 @@ CONFIG_SENSORS_XGENE=m
CONFIG_SENSORS_ACPI_POWER=m
CONFIG_SENSORS_ATK0110=m
CONFIG_THERMAL=y
+# CONFIG_THERMAL_NETLINK is not set
# CONFIG_THERMAL_STATISTICS is not set
CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=100
CONFIG_THERMAL_HWMON=y
@@ -5054,7 +5117,6 @@ CONFIG_THERMAL_GOV_POWER_ALLOCATOR=y
CONFIG_CPU_THERMAL=y
CONFIG_CPU_FREQ_THERMAL=y
# CONFIG_CPU_IDLE_THERMAL is not set
-CONFIG_CLOCK_THERMAL=y
CONFIG_DEVFREQ_THERMAL=y
# CONFIG_THERMAL_EMULATION is not set
CONFIG_THERMAL_MMIO=m
@@ -5301,7 +5363,6 @@ CONFIG_MFD_SI476X_CORE=m
CONFIG_MFD_SM501=m
CONFIG_MFD_SM501_GPIO=y
CONFIG_MFD_SKY81452=m
-CONFIG_MFD_SMSC=y
CONFIG_ABX500_CORE=y
CONFIG_AB3100_CORE=y
CONFIG_AB3100_OTP=y
@@ -5368,6 +5429,7 @@ CONFIG_MFD_STPMIC1=m
CONFIG_MFD_STMFX=m
CONFIG_MFD_WCD934X=m
CONFIG_RAVE_SP_CORE=m
+# CONFIG_MFD_INTEL_M10_BMC is not set
# end of Multifunction device drivers
CONFIG_REGULATOR=y
@@ -5394,6 +5456,7 @@ CONFIG_REGULATOR_BD71828=m
CONFIG_REGULATOR_BD718XX=m
CONFIG_REGULATOR_BD9571MWV=m
CONFIG_REGULATOR_CPCAP=m
+CONFIG_REGULATOR_CROS_EC=m
CONFIG_REGULATOR_DA903X=m
CONFIG_REGULATOR_DA9052=m
CONFIG_REGULATOR_DA9055=m
@@ -5402,6 +5465,7 @@ CONFIG_REGULATOR_DA9063=m
CONFIG_REGULATOR_DA9210=m
CONFIG_REGULATOR_DA9211=m
CONFIG_REGULATOR_FAN53555=m
+CONFIG_REGULATOR_FAN53880=m
CONFIG_REGULATOR_GPIO=m
CONFIG_REGULATOR_HI6421=m
CONFIG_REGULATOR_HI6421V530=m
@@ -5446,6 +5510,7 @@ CONFIG_REGULATOR_MT6323=m
# CONFIG_REGULATOR_MT6358 is not set
CONFIG_REGULATOR_MT6397=m
CONFIG_REGULATOR_PALMAS=m
+CONFIG_REGULATOR_PCA9450=m
CONFIG_REGULATOR_PCAP=m
CONFIG_REGULATOR_PCF50633=m
CONFIG_REGULATOR_PFUZE100=m
@@ -5454,11 +5519,15 @@ CONFIG_REGULATOR_PV88080=m
CONFIG_REGULATOR_PV88090=m
CONFIG_REGULATOR_PWM=m
CONFIG_REGULATOR_QCOM_SPMI=m
+CONFIG_REGULATOR_QCOM_USB_VBUS=m
+# CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY is not set
CONFIG_REGULATOR_RC5T583=m
CONFIG_REGULATOR_RK808=m
CONFIG_REGULATOR_RN5T618=m
CONFIG_REGULATOR_ROHM=m
+# CONFIG_REGULATOR_RT4801 is not set
CONFIG_REGULATOR_RT5033=m
+# CONFIG_REGULATOR_RTMV20 is not set
CONFIG_REGULATOR_S2MPA01=m
CONFIG_REGULATOR_S2MPS11=m
CONFIG_REGULATOR_S5M8767=m
@@ -5467,6 +5536,7 @@ CONFIG_REGULATOR_SLG51000=m
CONFIG_REGULATOR_STPMIC1=m
CONFIG_REGULATOR_SY8106A=m
CONFIG_REGULATOR_SY8824X=m
+CONFIG_REGULATOR_SY8827N=m
CONFIG_REGULATOR_TPS51632=m
CONFIG_REGULATOR_TPS6105X=m
CONFIG_REGULATOR_TPS62360=m
@@ -5488,6 +5558,7 @@ CONFIG_REGULATOR_WM831X=m
CONFIG_REGULATOR_WM8350=m
CONFIG_REGULATOR_WM8400=m
CONFIG_REGULATOR_WM8994=m
+CONFIG_REGULATOR_QCOM_LABIBB=m
CONFIG_RC_CORE=m
CONFIG_RC_MAP=m
CONFIG_LIRC=y
@@ -5528,12 +5599,14 @@ CONFIG_IR_SERIAL=m
CONFIG_IR_SERIAL_TRANSMITTER=y
CONFIG_IR_SIR=m
CONFIG_RC_XBOX_DVD=m
+CONFIG_IR_TOY=m
CONFIG_CEC_CORE=m
CONFIG_CEC_NOTIFIER=y
CONFIG_CEC_PIN=y
# CONFIG_MEDIA_CEC_RC is not set
# CONFIG_CEC_PIN_ERROR_INJ is not set
CONFIG_MEDIA_CEC_SUPPORT=y
+CONFIG_CEC_CH7322=m
# CONFIG_CEC_CROS_EC is not set
CONFIG_CEC_GPIO=m
# CONFIG_CEC_SECO is not set
@@ -5895,6 +5968,7 @@ CONFIG_VIDEO_CAFE_CCIC=m
CONFIG_VIDEO_ASPEED=m
CONFIG_VIDEO_MUX=m
CONFIG_VIDEO_XILINX=m
+CONFIG_VIDEO_XILINX_CSI2RXSS=m
CONFIG_VIDEO_XILINX_TPG=m
CONFIG_VIDEO_XILINX_VTC=m
CONFIG_V4L_MEM2MEM_DRIVERS=y
@@ -5913,6 +5987,7 @@ CONFIG_VIDEO_VIVID_CEC=y
CONFIG_VIDEO_VIVID_MAX_DEVS=64
CONFIG_VIDEO_VIM2M=m
CONFIG_VIDEO_VICODEC=m
+# CONFIG_DVB_TEST_DRIVERS is not set
#
# FireWire (IEEE 1394) Adapters
@@ -5985,6 +6060,7 @@ CONFIG_VIDEO_TW9903=m
CONFIG_VIDEO_TW9906=m
CONFIG_VIDEO_TW9910=m
CONFIG_VIDEO_VPX3220=m
+CONFIG_VIDEO_MAX9286=m
#
# Video and audio decoders
@@ -6082,6 +6158,7 @@ CONFIG_VIDEO_MT9V111=m
CONFIG_VIDEO_SR030PC30=m
CONFIG_VIDEO_NOON010PC30=m
CONFIG_VIDEO_M5MOLS=m
+CONFIG_VIDEO_RDACM20=m
CONFIG_VIDEO_RJ54N1=m
CONFIG_VIDEO_S5K6AA=m
CONFIG_VIDEO_S5K6A3=m
@@ -6098,6 +6175,7 @@ CONFIG_VIDEO_S5C73M3=m
CONFIG_VIDEO_AD5820=m
CONFIG_VIDEO_AK7375=m
CONFIG_VIDEO_DW9714=m
+CONFIG_VIDEO_DW9768=m
CONFIG_VIDEO_DW9807_VCM=m
# end of Lens drivers
@@ -6411,8 +6489,9 @@ CONFIG_DRM_AMD_ACP=y
#
CONFIG_DRM_AMD_DC=y
CONFIG_DRM_AMD_DC_DCN=y
+# CONFIG_DRM_AMD_DC_DCN3_0 is not set
# CONFIG_DRM_AMD_DC_HDCP is not set
-# CONFIG_DEBUG_KERNEL_DC is not set
+# CONFIG_DRM_AMD_DC_SI is not set
# end of Display Engine Configuration
CONFIG_DRM_NOUVEAU=m
@@ -6420,6 +6499,7 @@ CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT=y
CONFIG_NOUVEAU_DEBUG=5
CONFIG_NOUVEAU_DEBUG_DEFAULT=3
# CONFIG_NOUVEAU_DEBUG_MMU is not set
+# CONFIG_NOUVEAU_DEBUG_PUSH is not set
CONFIG_DRM_NOUVEAU_BACKLIGHT=y
CONFIG_DRM_I915=m
CONFIG_DRM_I915_FORCE_PROBE="*"
@@ -6496,6 +6576,7 @@ CONFIG_DRM_PANEL_LG_LG4573=m
CONFIG_DRM_PANEL_NEC_NL8048HL11=m
CONFIG_DRM_PANEL_NOVATEK_NT35510=m
CONFIG_DRM_PANEL_NOVATEK_NT39016=m
+# CONFIG_DRM_PANEL_MANTIX_MLAF057WE51 is not set
CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO=m
CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m
CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS=m
@@ -6503,12 +6584,13 @@ CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00=m
CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m
CONFIG_DRM_PANEL_RAYDIUM_RM67191=m
CONFIG_DRM_PANEL_RAYDIUM_RM68200=m
-CONFIG_DRM_PANEL_ROCKTECH_JH057N00900=m
CONFIG_DRM_PANEL_RONBO_RB070D30=m
CONFIG_DRM_PANEL_SAMSUNG_S6D16D0=m
CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2=m
CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03=m
CONFIG_DRM_PANEL_SAMSUNG_S6E63M0=m
+CONFIG_DRM_PANEL_SAMSUNG_S6E63M0_SPI=m
+# CONFIG_DRM_PANEL_SAMSUNG_S6E63M0_DSI is not set
CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01=m
CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0=m
CONFIG_DRM_PANEL_SEIKO_43WVF1G=m
@@ -6516,6 +6598,7 @@ CONFIG_DRM_PANEL_SHARP_LQ101R1SX01=m
CONFIG_DRM_PANEL_SHARP_LS037V7DW01=m
CONFIG_DRM_PANEL_SHARP_LS043T1LE01=m
CONFIG_DRM_PANEL_SITRONIX_ST7701=m
+CONFIG_DRM_PANEL_SITRONIX_ST7703=m
CONFIG_DRM_PANEL_SITRONIX_ST7789V=m
CONFIG_DRM_PANEL_SONY_ACX424AKP=m
CONFIG_DRM_PANEL_SONY_ACX565AKM=m
@@ -6536,6 +6619,7 @@ CONFIG_DRM_PANEL_BRIDGE=y
CONFIG_DRM_CDNS_DSI=m
# CONFIG_DRM_CHRONTEL_CH7033 is not set
CONFIG_DRM_DISPLAY_CONNECTOR=m
+# CONFIG_DRM_LONTIUM_LT9611 is not set
CONFIG_DRM_LVDS_CODEC=m
CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW=m
# CONFIG_DRM_NWL_MIPI_DSI is not set
@@ -6547,9 +6631,11 @@ CONFIG_DRM_SII902X=m
CONFIG_DRM_SII9234=m
CONFIG_DRM_SIMPLE_BRIDGE=m
CONFIG_DRM_THINE_THC63LVD1024=m
+# CONFIG_DRM_TOSHIBA_TC358762 is not set
CONFIG_DRM_TOSHIBA_TC358764=m
CONFIG_DRM_TOSHIBA_TC358767=m
CONFIG_DRM_TOSHIBA_TC358768=m
+# CONFIG_DRM_TOSHIBA_TC358775 is not set
CONFIG_DRM_TI_TFP410=m
CONFIG_DRM_TI_SN65DSI86=m
CONFIG_DRM_TI_TPD12S015=m
@@ -6559,6 +6645,7 @@ CONFIG_DRM_ANALOGIX_DP=m
CONFIG_DRM_I2C_ADV7511=m
CONFIG_DRM_I2C_ADV7511_AUDIO=y
CONFIG_DRM_I2C_ADV7511_CEC=y
+# CONFIG_DRM_CDNS_MHDP8546 is not set
CONFIG_DRM_DW_HDMI=m
CONFIG_DRM_DW_HDMI_AHB_AUDIO=m
CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
@@ -6687,7 +6774,7 @@ CONFIG_LCD_LMS501KF03=m
CONFIG_LCD_HX8357=m
CONFIG_LCD_OTM3225A=m
CONFIG_BACKLIGHT_CLASS_DEVICE=y
-CONFIG_BACKLIGHT_GENERIC=m
+# CONFIG_BACKLIGHT_KTD253 is not set
CONFIG_BACKLIGHT_LM3533=m
# CONFIG_BACKLIGHT_PWM is not set
CONFIG_BACKLIGHT_DA903X=m
@@ -6707,7 +6794,6 @@ CONFIG_BACKLIGHT_LM3630A=m
CONFIG_BACKLIGHT_LM3639=m
CONFIG_BACKLIGHT_LP855X=m
CONFIG_BACKLIGHT_LP8788=m
-# CONFIG_BACKLIGHT_OT200 is not set
CONFIG_BACKLIGHT_PANDORA=m
CONFIG_BACKLIGHT_SKY81452=m
CONFIG_BACKLIGHT_TPS65217=m
@@ -6921,6 +7007,7 @@ CONFIG_SND_YMFPCI=m
# HD-Audio
#
CONFIG_SND_HDA=m
+CONFIG_SND_HDA_GENERIC_LEDS=y
CONFIG_SND_HDA_INTEL=m
CONFIG_SND_HDA_HWDEP=y
CONFIG_SND_HDA_RECONFIG=y
@@ -6941,6 +7028,7 @@ CONFIG_SND_HDA_CODEC_CMEDIA=m
CONFIG_SND_HDA_CODEC_SI3054=m
CONFIG_SND_HDA_GENERIC=m
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=10
+# CONFIG_SND_HDA_INTEL_HDMI_SILENT_STREAM is not set
# end of HD-Audio
CONFIG_SND_HDA_CORE=m
@@ -7026,13 +7114,8 @@ CONFIG_SND_SOC_IMG_SPDIF_IN=m
CONFIG_SND_SOC_IMG_SPDIF_OUT=m
CONFIG_SND_SOC_IMG_PISTACHIO_INTERNAL_DAC=m
CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y
-CONFIG_SND_SST_IPC=m
-CONFIG_SND_SST_IPC_PCI=m
-CONFIG_SND_SST_IPC_ACPI=m
-CONFIG_SND_SOC_INTEL_SST_ACPI=m
CONFIG_SND_SOC_INTEL_SST=m
-CONFIG_SND_SOC_INTEL_SST_FIRMWARE=m
-CONFIG_SND_SOC_INTEL_HASWELL=m
+# CONFIG_SND_SOC_INTEL_CATPT is not set
CONFIG_SND_SST_ATOM_HIFI2_PLATFORM=m
CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI=m
CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_ACPI=m
@@ -7052,10 +7135,6 @@ CONFIG_SND_SOC_INTEL_SKYLAKE_COMMON=m
CONFIG_SND_SOC_ACPI_INTEL_MATCH=m
CONFIG_SND_SOC_INTEL_MACH=y
# CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES is not set
-CONFIG_SND_SOC_INTEL_HASWELL_MACH=m
-CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH=m
-CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH=m
-CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m
CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m
CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m
@@ -7137,6 +7216,7 @@ CONFIG_SND_SOC_CS42L51_I2C=m
CONFIG_SND_SOC_CS42L52=m
CONFIG_SND_SOC_CS42L56=m
CONFIG_SND_SOC_CS42L73=m
+# CONFIG_SND_SOC_CS4234 is not set
CONFIG_SND_SOC_CS4265=m
CONFIG_SND_SOC_CS4270=m
CONFIG_SND_SOC_CS4271=m
@@ -7169,7 +7249,9 @@ CONFIG_SND_SOC_MAX98504=m
CONFIG_SND_SOC_MAX9867=m
CONFIG_SND_SOC_MAX98927=m
CONFIG_SND_SOC_MAX98373=m
-# CONFIG_SND_SOC_MAX98390 is not set
+CONFIG_SND_SOC_MAX98373_I2C=m
+CONFIG_SND_SOC_MAX98373_SDW=m
+CONFIG_SND_SOC_MAX98390=m
CONFIG_SND_SOC_MAX9860=m
CONFIG_SND_SOC_MSM8916_WCD_ANALOG=m
CONFIG_SND_SOC_MSM8916_WCD_DIGITAL=m
@@ -7196,6 +7278,7 @@ CONFIG_SND_SOC_RL6231=m
CONFIG_SND_SOC_RL6347A=m
CONFIG_SND_SOC_RT286=m
CONFIG_SND_SOC_RT298=m
+CONFIG_SND_SOC_RT1015=m
CONFIG_SND_SOC_RT1308_SDW=m
CONFIG_SND_SOC_RT5514=m
CONFIG_SND_SOC_RT5514_SPI=m
@@ -7207,8 +7290,6 @@ CONFIG_SND_SOC_RT5651=m
CONFIG_SND_SOC_RT5660=m
CONFIG_SND_SOC_RT5663=m
CONFIG_SND_SOC_RT5670=m
-CONFIG_SND_SOC_RT5677=m
-CONFIG_SND_SOC_RT5677_SPI=m
CONFIG_SND_SOC_RT5682=m
CONFIG_SND_SOC_RT5682_I2C=m
CONFIG_SND_SOC_RT5682_SDW=m
@@ -7236,6 +7317,7 @@ CONFIG_SND_SOC_STA350=m
CONFIG_SND_SOC_STI_SAS=m
CONFIG_SND_SOC_TAS2552=m
# CONFIG_SND_SOC_TAS2562 is not set
+# CONFIG_SND_SOC_TAS2764 is not set
# CONFIG_SND_SOC_TAS2770 is not set
CONFIG_SND_SOC_TAS5086=m
CONFIG_SND_SOC_TAS571X=m
@@ -7351,6 +7433,7 @@ CONFIG_HID_GLORIOUS=m
CONFIG_HID_HOLTEK=m
CONFIG_HOLTEK_FF=y
CONFIG_HID_GOOGLE_HAMMER=m
+# CONFIG_HID_VIVALDI is not set
CONFIG_HID_GT683R=m
CONFIG_HID_KEYTOUCH=m
CONFIG_HID_KYE=m
@@ -7467,10 +7550,11 @@ CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
# Miscellaneous USB options
#
CONFIG_USB_DEFAULT_PERSIST=y
+# CONFIG_USB_FEW_INIT_RETRIES is not set
CONFIG_USB_DYNAMIC_MINORS=y
# CONFIG_USB_OTG is not set
-# CONFIG_USB_OTG_WHITELIST is not set
-# CONFIG_USB_OTG_BLACKLIST_HUB is not set
+# CONFIG_USB_OTG_PRODUCTLIST is not set
+# CONFIG_USB_OTG_DISABLE_EXTERNAL_HUB is not set
CONFIG_USB_LEDS_TRIGGER_USBPORT=m
CONFIG_USB_AUTOSUSPEND_DELAY=2
CONFIG_USB_MON=m
@@ -7685,7 +7769,6 @@ CONFIG_USB_FTDI_ELAN=m
CONFIG_USB_APPLEDISPLAY=m
CONFIG_APPLE_MFI_FASTCHARGE=m
CONFIG_USB_SISUSBVGA=m
-CONFIG_USB_SISUSBVGA_CON=y
CONFIG_USB_LD=m
CONFIG_USB_TRANCEVIBRATOR=m
CONFIG_USB_IOWARRIOR=m
@@ -7837,12 +7920,14 @@ CONFIG_TYPEC=m
CONFIG_TYPEC_TCPM=m
CONFIG_TYPEC_TCPCI=m
CONFIG_TYPEC_RT1711H=m
+# CONFIG_TYPEC_TCPCI_MAXIM is not set
CONFIG_TYPEC_FUSB302=m
CONFIG_TYPEC_UCSI=m
CONFIG_UCSI_CCG=m
CONFIG_UCSI_ACPI=m
# CONFIG_TYPEC_HD3SS3220 is not set
CONFIG_TYPEC_TPS6598X=m
+# CONFIG_TYPEC_STUSB160X is not set
#
# USB Type-C Multiplexer/DeMultiplexer Switch support
@@ -7926,6 +8011,7 @@ CONFIG_MEMSTICK_REALTEK_USB=m
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=m
CONFIG_LEDS_CLASS_FLASH=m
+CONFIG_LEDS_CLASS_MULTICOLOR=m
CONFIG_LEDS_BRIGHTNESS_HW_CHANGED=y
#
@@ -7954,6 +8040,7 @@ CONFIG_LEDS_PCA9532_GPIO=y
CONFIG_LEDS_GPIO=m
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP3952=m
+# CONFIG_LEDS_LP50XX is not set
CONFIG_LEDS_LP55XX_COMMON=m
CONFIG_LEDS_LP5521=m
CONFIG_LEDS_LP5523=m
@@ -8030,10 +8117,32 @@ CONFIG_LEDS_TRIGGER_PATTERN=m
CONFIG_LEDS_TRIGGER_AUDIO=m
CONFIG_ACCESSIBILITY=y
CONFIG_A11Y_BRAILLE_CONSOLE=y
+
+#
+# Speakup console speech
+#
+CONFIG_SPEAKUP=m
+CONFIG_SPEAKUP_SERIALIO=y
+CONFIG_SPEAKUP_SYNTH_ACNTSA=m
+CONFIG_SPEAKUP_SYNTH_ACNTPC=m
+CONFIG_SPEAKUP_SYNTH_APOLLO=m
+CONFIG_SPEAKUP_SYNTH_AUDPTR=m
+CONFIG_SPEAKUP_SYNTH_BNS=m
+CONFIG_SPEAKUP_SYNTH_DECTLK=m
+CONFIG_SPEAKUP_SYNTH_DECEXT=m
+CONFIG_SPEAKUP_SYNTH_DECPC=m
+CONFIG_SPEAKUP_SYNTH_DTLK=m
+CONFIG_SPEAKUP_SYNTH_KEYPC=m
+CONFIG_SPEAKUP_SYNTH_LTLK=m
+CONFIG_SPEAKUP_SYNTH_SOFT=m
+CONFIG_SPEAKUP_SYNTH_SPKOUT=m
+CONFIG_SPEAKUP_SYNTH_TXPRT=m
+CONFIG_SPEAKUP_SYNTH_DUMMY=m
+# end of Speakup console speech
+
CONFIG_INFINIBAND=m
CONFIG_INFINIBAND_USER_MAD=m
CONFIG_INFINIBAND_USER_ACCESS=m
-# CONFIG_INFINIBAND_EXP_LEGACY_VERBS_NEW_UAPI is not set
CONFIG_INFINIBAND_USER_MEM=y
CONFIG_INFINIBAND_ON_DEMAND_PAGING=y
CONFIG_INFINIBAND_ADDR_TRANS=y
@@ -8047,8 +8156,6 @@ CONFIG_MLX5_INFINIBAND=m
CONFIG_INFINIBAND_OCRDMA=m
CONFIG_INFINIBAND_VMWARE_PVRDMA=m
CONFIG_INFINIBAND_USNIC=m
-CONFIG_RDMA_RXE=m
-CONFIG_RDMA_SIW=m
CONFIG_INFINIBAND_IPOIB=m
CONFIG_INFINIBAND_IPOIB_CM=y
CONFIG_INFINIBAND_IPOIB_DEBUG=y
@@ -8154,6 +8261,7 @@ CONFIG_RTC_DRV_RX8581=m
CONFIG_RTC_DRV_RX8025=m
CONFIG_RTC_DRV_EM3027=m
CONFIG_RTC_DRV_RV3028=m
+# CONFIG_RTC_DRV_RV3032 is not set
CONFIG_RTC_DRV_RV8803=m
CONFIG_RTC_DRV_S5M=m
CONFIG_RTC_DRV_SD3078=m
@@ -8252,6 +8360,7 @@ CONFIG_FSL_EDMA=m
CONFIG_INTEL_IDMA64=m
CONFIG_PCH_DMA=m
CONFIG_PLX_DMA=m
+CONFIG_XILINX_ZYNQMP_DPDMA=m
CONFIG_QCOM_HIDMA_MGMT=m
CONFIG_QCOM_HIDMA=m
CONFIG_DW_DMAC_CORE=y
@@ -8322,6 +8431,7 @@ CONFIG_VFIO_MDEV_DEVICE=m
CONFIG_IRQ_BYPASS_MANAGER=m
CONFIG_VIRT_DRIVERS=y
CONFIG_VBOXGUEST=m
+# CONFIG_NITRO_ENCLAVES is not set
CONFIG_VIRTIO=m
CONFIG_VIRTIO_MENU=y
CONFIG_VIRTIO_PCI=m
@@ -8331,9 +8441,12 @@ CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_INPUT=m
CONFIG_VIRTIO_MMIO=m
CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
+CONFIG_VIRTIO_DMA_SHARED_BUFFER=m
CONFIG_VDPA=m
CONFIG_VDPA_SIM=m
CONFIG_IFCVF=m
+CONFIG_MLX5_VDPA=y
+CONFIG_MLX5_VDPA_NET=m
CONFIG_VHOST_IOTLB=m
CONFIG_VHOST_RING=m
CONFIG_VHOST=m
@@ -8571,38 +8684,12 @@ CONFIG_AD2S1210=m
# end of IIO staging drivers
CONFIG_FB_SM750=m
-
-#
-# Speakup console speech
-#
-CONFIG_SPEAKUP=m
-CONFIG_SPEAKUP_SYNTH_ACNTSA=m
-CONFIG_SPEAKUP_SYNTH_ACNTPC=m
-CONFIG_SPEAKUP_SYNTH_APOLLO=m
-CONFIG_SPEAKUP_SYNTH_AUDPTR=m
-CONFIG_SPEAKUP_SYNTH_BNS=m
-CONFIG_SPEAKUP_SYNTH_DECTLK=m
-CONFIG_SPEAKUP_SYNTH_DECEXT=m
-CONFIG_SPEAKUP_SYNTH_DECPC=m
-CONFIG_SPEAKUP_SYNTH_DTLK=m
-CONFIG_SPEAKUP_SYNTH_KEYPC=m
-CONFIG_SPEAKUP_SYNTH_LTLK=m
-CONFIG_SPEAKUP_SYNTH_SOFT=m
-CONFIG_SPEAKUP_SYNTH_SPKOUT=m
-CONFIG_SPEAKUP_SYNTH_TXPRT=m
-CONFIG_SPEAKUP_SYNTH_DUMMY=m
-# end of Speakup console speech
-
CONFIG_STAGING_MEDIA=y
# CONFIG_INTEL_ATOMISP is not set
+# CONFIG_VIDEO_ZORAN is not set
CONFIG_VIDEO_IPU3_IMGU=m
#
-# soc_camera sensor drivers
-#
-CONFIG_VIDEO_USBVISION=m
-
-#
# Android
#
# end of Android
@@ -8614,20 +8701,13 @@ CONFIG_FWTTY_MAX_TOTAL_PORTS=64
CONFIG_FWTTY_MAX_CARD_PORTS=32
CONFIG_GS_FPGABOOT=m
CONFIG_UNISYSSPAR=y
-CONFIG_COMMON_CLK_XLNX_CLKWZRD=m
# CONFIG_FB_TFT is not set
-CONFIG_WILC1000=m
-CONFIG_WILC1000_SDIO=m
-CONFIG_WILC1000_SPI=m
-# CONFIG_WILC1000_HW_OOB_INTR is not set
CONFIG_MOST_COMPONENTS=m
-CONFIG_MOST_CDEV=m
CONFIG_MOST_NET=m
CONFIG_MOST_SOUND=m
CONFIG_MOST_VIDEO=m
CONFIG_MOST_DIM2=m
CONFIG_MOST_I2C=m
-CONFIG_MOST_USB=m
CONFIG_KS7010=m
CONFIG_PI433=m
@@ -8644,6 +8724,8 @@ CONFIG_HMS_PROFINET=m
# CONFIG_KPC2000 is not set
CONFIG_QLGE=m
# CONFIG_WFX is not set
+# CONFIG_SPMI_HISI3670 is not set
+# CONFIG_MFD_HI6421_SPMI is not set
CONFIG_X86_PLATFORM_DEVICES=y
CONFIG_ACPI_WMI=m
CONFIG_WMI_BMOF=m
@@ -8694,6 +8776,7 @@ CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y
# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
CONFIG_THINKPAD_ACPI_VIDEO=y
CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
+CONFIG_INTEL_ATOMISP2_LED=m
CONFIG_INTEL_ATOMISP2_PM=m
CONFIG_INTEL_CHT_INT33FE=m
CONFIG_INTEL_HID_EVENT=m
@@ -8734,7 +8817,6 @@ CONFIG_INTEL_PUNIT_IPC=m
# CONFIG_INTEL_SCU_PCI is not set
# CONFIG_INTEL_SCU_PLATFORM is not set
CONFIG_PMC_ATOM=y
-CONFIG_MFD_CROS_EC=m
CONFIG_CHROME_PLATFORMS=y
CONFIG_CHROMEOS_LAPTOP=m
CONFIG_CHROMEOS_PSTORE=m
@@ -8767,7 +8849,6 @@ CONFIG_CLKDEV_LOOKUP=y
CONFIG_HAVE_CLK_PREPARE=y
CONFIG_COMMON_CLK=y
CONFIG_COMMON_CLK_WM831X=m
-# CONFIG_CLK_HSDK is not set
CONFIG_COMMON_CLK_MAX77686=m
CONFIG_COMMON_CLK_MAX9485=m
CONFIG_COMMON_CLK_RK808=m
@@ -8848,6 +8929,7 @@ CONFIG_SOUNDWIRE=y
CONFIG_SOUNDWIRE_CADENCE=m
CONFIG_SOUNDWIRE_INTEL=m
CONFIG_SOUNDWIRE_QCOM=m
+CONFIG_SOUNDWIRE_GENERIC_ALLOCATION=m
#
# SOC (System On Chip) specific Drivers
@@ -8934,6 +9016,8 @@ CONFIG_MEMORY=y
CONFIG_IIO=m
CONFIG_IIO_BUFFER=y
CONFIG_IIO_BUFFER_CB=m
+# CONFIG_IIO_BUFFER_DMA is not set
+# CONFIG_IIO_BUFFER_DMAENGINE is not set
CONFIG_IIO_BUFFER_HW_CONSUMER=m
CONFIG_IIO_KFIFO_BUF=m
CONFIG_IIO_TRIGGERED_BUFFER=m
@@ -8955,6 +9039,7 @@ CONFIG_ADXL372_I2C=m
CONFIG_BMA220=m
CONFIG_BMA400=m
CONFIG_BMA400_I2C=m
+CONFIG_BMA400_SPI=m
CONFIG_BMC150_ACCEL=m
CONFIG_BMC150_ACCEL_I2C=m
CONFIG_BMC150_ACCEL_SPI=m
@@ -9093,6 +9178,9 @@ CONFIG_BME680_SPI=m
CONFIG_CCS811=m
CONFIG_IAQCORE=m
CONFIG_PMS7003=m
+CONFIG_SCD30_CORE=m
+CONFIG_SCD30_I2C=m
+CONFIG_SCD30_SERIAL=m
CONFIG_SENSIRION_SGP30=m
CONFIG_SPS30=m
CONFIG_VZ89X=m
@@ -9194,6 +9282,7 @@ CONFIG_ADIS16080=m
CONFIG_ADIS16130=m
CONFIG_ADIS16136=m
CONFIG_ADIS16260=m
+# CONFIG_ADXRS290 is not set
CONFIG_ADXRS450=m
CONFIG_BMG160=m
CONFIG_BMG160_I2C=m
@@ -9230,6 +9319,7 @@ CONFIG_MAX30102=m
CONFIG_AM2315=m
CONFIG_DHT11=m
CONFIG_HDC100X=m
+# CONFIG_HDC2010 is not set
CONFIG_HID_SENSOR_HUMIDITY=m
CONFIG_HTS221=m
CONFIG_HTS221_I2C=m
@@ -9252,6 +9342,9 @@ CONFIG_BMI160_SPI=m
# CONFIG_FXOS8700_I2C is not set
# CONFIG_FXOS8700_SPI is not set
CONFIG_KMX61=m
+CONFIG_INV_ICM42600=m
+CONFIG_INV_ICM42600_I2C=m
+CONFIG_INV_ICM42600_SPI=m
CONFIG_INV_MPU6050_IIO=m
CONFIG_INV_MPU6050_I2C=m
CONFIG_INV_MPU6050_SPI=m
@@ -9274,6 +9367,7 @@ CONFIG_AL3010=m
CONFIG_AL3320A=m
CONFIG_APDS9300=m
CONFIG_APDS9960=m
+# CONFIG_AS73211 is not set
CONFIG_BH1750=m
CONFIG_BH1780=m
CONFIG_CM32181=m
@@ -9532,6 +9626,7 @@ CONFIG_RESET_TI_SYSCON=m
#
CONFIG_GENERIC_PHY=y
CONFIG_GENERIC_PHY_MIPI_DPHY=y
+# CONFIG_USB_LGM_PHY is not set
CONFIG_BCM_KONA_USB2_PHY=m
CONFIG_PHY_CADENCE_TORRENT=m
CONFIG_PHY_CADENCE_DPHY=m
@@ -9548,8 +9643,8 @@ CONFIG_PHY_QCOM_USB_HS=m
CONFIG_PHY_QCOM_USB_HSIC=m
CONFIG_PHY_SAMSUNG_USB2=m
CONFIG_PHY_TUSB1210=m
-# CONFIG_PHY_INTEL_COMBO is not set
-CONFIG_PHY_INTEL_EMMC=m
+# CONFIG_PHY_INTEL_LGM_COMBO is not set
+# CONFIG_PHY_INTEL_LGM_EMMC is not set
# end of PHY Subsystem
CONFIG_POWERCAP=y
@@ -9567,6 +9662,7 @@ CONFIG_MCB_LPC=m
CONFIG_RAS=y
CONFIG_USB4=m
+# CONFIG_USB4_DEBUGFS_WRITE is not set
#
# Android
@@ -9656,7 +9752,10 @@ CONFIG_SLIM_QCOM_CTRL=m
# CONFIG_INTERCONNECT is not set
CONFIG_COUNTER=m
CONFIG_FTM_QUADDEC=m
+CONFIG_MICROCHIP_TCB_CAPTURE=m
CONFIG_MOST=m
+CONFIG_MOST_USB_HDM=m
+CONFIG_MOST_CDEV=m
# end of Device Drivers
#
@@ -9687,6 +9786,7 @@ CONFIG_JFS_SECURITY=y
# CONFIG_JFS_DEBUG is not set
CONFIG_JFS_STATISTICS=y
CONFIG_XFS_FS=m
+CONFIG_XFS_SUPPORT_V4=y
CONFIG_XFS_QUOTA=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_XFS_RT=y
@@ -9916,7 +10016,7 @@ CONFIG_NFS_V4_2=y
CONFIG_PNFS_FILE_LAYOUT=m
CONFIG_PNFS_BLOCK=m
CONFIG_PNFS_FLEXFILE_LAYOUT=m
-CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
+CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="linux-libre.fsfla.org"
CONFIG_NFS_V4_1_MIGRATION=y
CONFIG_NFS_V4_SECURITY_LABEL=y
CONFIG_NFS_FSCACHE=y
@@ -9924,6 +10024,7 @@ CONFIG_NFS_FSCACHE=y
CONFIG_NFS_USE_KERNEL_DNS=y
CONFIG_NFS_DEBUG=y
CONFIG_NFS_DISABLE_UDP_SUPPORT=y
+# CONFIG_NFS_V4_2_READ_PLUS is not set
CONFIG_NFSD=m
CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3=y
@@ -9933,6 +10034,7 @@ CONFIG_NFSD_PNFS=y
CONFIG_NFSD_BLOCKLAYOUT=y
CONFIG_NFSD_SCSILAYOUT=y
# CONFIG_NFSD_FLEXFILELAYOUT is not set
+# CONFIG_NFSD_V4_2_INTER_SSC is not set
CONFIG_NFSD_V4_SECURITY_LABEL=y
CONFIG_GRACE_PERIOD=m
CONFIG_LOCKD=m
@@ -10134,6 +10236,7 @@ CONFIG_CRYPTO_DH=y
CONFIG_CRYPTO_ECC=m
CONFIG_CRYPTO_ECDH=m
CONFIG_CRYPTO_ECRDSA=m
+# CONFIG_CRYPTO_SM2 is not set
# CONFIG_CRYPTO_CURVE25519 is not set
#
@@ -10252,7 +10355,9 @@ CONFIG_CRYPTO_USER_API=m
CONFIG_CRYPTO_USER_API_HASH=m
CONFIG_CRYPTO_USER_API_SKCIPHER=m
CONFIG_CRYPTO_USER_API_RNG=m
+# CONFIG_CRYPTO_USER_API_RNG_CAVP is not set
CONFIG_CRYPTO_USER_API_AEAD=m
+CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE=y
CONFIG_CRYPTO_STATS=y
CONFIG_CRYPTO_HASH_INFO=y
@@ -10294,7 +10399,6 @@ CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m
CONFIG_CRYPTO_DEV_QAT_C3XXXVF=m
CONFIG_CRYPTO_DEV_QAT_C62XVF=m
CONFIG_CRYPTO_DEV_CHELSIO=m
-CONFIG_CHELSIO_IPSEC_INLINE=y
CONFIG_CRYPTO_DEV_VIRTIO=m
CONFIG_CRYPTO_DEV_SAFEXCEL=m
CONFIG_CRYPTO_DEV_CCREE=m
@@ -10384,6 +10488,7 @@ CONFIG_DECOMPRESS_LZMA=y
CONFIG_DECOMPRESS_XZ=y
CONFIG_DECOMPRESS_LZO=y
CONFIG_DECOMPRESS_LZ4=y
+CONFIG_DECOMPRESS_ZSTD=y
CONFIG_GENERIC_ALLOCATOR=y
CONFIG_REED_SOLOMON=y
CONFIG_REED_SOLOMON_ENC8=y
@@ -10403,12 +10508,13 @@ CONFIG_ASSOCIATIVE_ARRAY=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT_MAP=y
CONFIG_HAS_DMA=y
+CONFIG_DMA_OPS=y
CONFIG_NEED_SG_DMA_LENGTH=y
CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_ARCH_DMA_ADDR_T_64BIT=y
-CONFIG_DMA_VIRT_OPS=y
CONFIG_SWIOTLB=y
CONFIG_DMA_CMA=y
+# CONFIG_DMA_PERNUMA_CMA is not set
#
# Default contiguous memory area size:
@@ -10453,6 +10559,7 @@ CONFIG_FONT_8x16=y
# CONFIG_FONT_SUN8x16 is not set
# CONFIG_FONT_SUN12x22 is not set
CONFIG_FONT_TER16x32=y
+# CONFIG_FONT_6x8 is not set
CONFIG_SG_POOL=y
CONFIG_ARCH_STACKWALK=y
CONFIG_SBITMAP=y
@@ -10461,6 +10568,8 @@ CONFIG_OBJAGG=m
# CONFIG_STRING_SELFTEST is not set
# end of Library routines
+CONFIG_PLDMFW=y
+
#
# Kernel hacking
#
@@ -10491,6 +10600,7 @@ CONFIG_STRIP_ASM_SYMS=y
# CONFIG_HEADERS_INSTALL is not set
# CONFIG_DEBUG_SECTION_MISMATCH is not set
CONFIG_SECTION_MISMATCH_WARN_ONLY=y
+# CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_32B is not set
CONFIG_FRAME_POINTER=y
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
# end of Compile-time checks and compiler options
@@ -10503,6 +10613,9 @@ CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x0
CONFIG_MAGIC_SYSRQ_SERIAL=y
CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE="m"
CONFIG_DEBUG_FS=y
+CONFIG_DEBUG_FS_ALLOW_ALL=y
+# CONFIG_DEBUG_FS_DISALLOW_MOUNT is not set
+# CONFIG_DEBUG_FS_ALLOW_NONE is not set
CONFIG_HAVE_ARCH_KGDB=y
# CONFIG_KGDB is not set
CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
@@ -10542,7 +10655,6 @@ CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
# CONFIG_DEBUG_STACKOVERFLOW is not set
CONFIG_CC_HAS_KASAN_GENERIC=y
CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
-CONFIG_KASAN_STACK=1
# end of Memory Debugging
# CONFIG_DEBUG_SHIRQ is not set
@@ -10596,6 +10708,7 @@ CONFIG_LOCK_DEBUGGING_SUPPORT=y
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
# CONFIG_LOCK_TORTURE_TEST is not set
# CONFIG_WW_MUTEX_SELFTEST is not set
+# CONFIG_SCF_TORTURE_TEST is not set
# end of Lock Debugging (spinlocks, mutexes, etc...)
CONFIG_STACKTRACE=y
@@ -10617,11 +10730,14 @@ CONFIG_STACKTRACE=y
#
# RCU Debugging
#
-# CONFIG_RCU_PERF_TEST is not set
+CONFIG_TORTURE_TEST=m
+# CONFIG_RCU_SCALE_TEST is not set
# CONFIG_RCU_TORTURE_TEST is not set
+CONFIG_RCU_REF_SCALE_TEST=m
CONFIG_RCU_CPU_STALL_TIMEOUT=60
# CONFIG_RCU_TRACE is not set
# CONFIG_RCU_EQS_DEBUG is not set
+# CONFIG_RCU_STRICT_GRACE_PERIOD is not set
# end of RCU Debugging
# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
@@ -10700,6 +10816,7 @@ CONFIG_IO_STRICT_DEVMEM=y
# x86 Debugging
#
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y
# CONFIG_X86_VERBOSE_BOOTUP is not set
CONFIG_EARLY_PRINTK=y
# CONFIG_EARLY_PRINTK_DBGP is not set
@@ -10749,7 +10866,6 @@ CONFIG_TEST_STRSCPY=m
# CONFIG_TEST_KSTRTOX is not set
# CONFIG_TEST_PRINTF is not set
# CONFIG_TEST_BITMAP is not set
-CONFIG_TEST_BITFIELD=m
# CONFIG_TEST_UUID is not set
CONFIG_TEST_XARRAY=m
CONFIG_TEST_OVERFLOW=m
@@ -10773,6 +10889,8 @@ CONFIG_TEST_MEMCAT_P=m
CONFIG_TEST_OBJAGG=m
CONFIG_TEST_STACKINIT=m
CONFIG_TEST_MEMINIT=m
+CONFIG_TEST_FREE_PAGES=m
+CONFIG_TEST_FPU=m
# CONFIG_MEMTEST is not set
# CONFIG_HYPERV_TESTING is not set
# end of Kernel Testing and Coverage
diff --git a/libre/linux-libre-pae/sphinx-workaround.patch b/libre/linux-libre-pae/sphinx-workaround.patch
deleted file mode 100644
index 1aa3f1c8f..000000000
--- a/libre/linux-libre-pae/sphinx-workaround.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git i/Documentation/conf.py w/Documentation/conf.py
-index 3c7bdf4cd31f..9a0ced58a3e9 100644
---- i/Documentation/conf.py
-+++ w/Documentation/conf.py
-@@ -36,7 +36,7 @@ needs_sphinx = '1.3'
- # Add any Sphinx extension module names here, as strings. They can be
- # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
- # ones.
--extensions = ['kerneldoc', 'rstFlatTable', 'kernel_include', 'cdomain',
-+extensions = ['kerneldoc', 'rstFlatTable', 'kernel_include',
- 'kfigure', 'sphinx.ext.ifconfig', 'automarkup',
- 'maintainers_include']
-