diff options
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'] - |