diff options
Diffstat (limited to 'libre')
16 files changed, 1053 insertions, 293 deletions
diff --git a/libre/linux-libre/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch b/libre/linux-libre/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch index d1b285574..474946443 100644 --- a/libre/linux-libre/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch +++ b/libre/linux-libre/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch @@ -1,7 +1,7 @@ -From 39c1f39f0cd3a533c537a2a6fb0b9dfaa82323bd Mon Sep 17 00:00:00 2001 +From c09059dc286ec8396ff6d235d6fcb509a3c9ad58 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/3] ZEN: Add sysctl and CONFIG to disallow unprivileged +Subject: [PATCH 01/11] ZEN: Add sysctl and CONFIG to disallow unprivileged CLONE_NEWUSER Our default behavior continues to match the vanilla kernel. @@ -128,5 +128,5 @@ index 8eadadc478f9..c36ecd19562c 100644 static DEFINE_MUTEX(userns_state_mutex); -- -2.25.0 +2.25.1 diff --git a/libre/linux-libre/0002-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch b/libre/linux-libre/0002-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch index 1555e9c33..6eead55b5 100644 --- a/libre/linux-libre/0002-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch +++ b/libre/linux-libre/0002-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch @@ -1,7 +1,7 @@ -From f47ae71fb991741b0a1335c91e835975f9c598c4 Mon Sep 17 00:00:00 2001 +From 5ab82a437113456735093bcfe709a71a9a5c7ea6 Mon Sep 17 00:00:00 2001 From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com> Date: Tue, 24 Dec 2019 06:16:39 +0100 -Subject: [PATCH 2/3] iwlwifi: pcie: restore support for Killer Qu C0 NICs +Subject: [PATCH 02/11] iwlwifi: pcie: restore support for Killer Qu C0 NICs Commit 809805a820c6 ("iwlwifi: pcie: move some cfg mangling from trans_pcie_alloc to probe") refactored the cfg mangling. Unfortunately, @@ -38,5 +38,5 @@ index b0b7eca1754e..de62a6dc4e73 100644 /* same thing for QuZ... */ -- -2.25.0 +2.25.1 diff --git a/libre/linux-libre/0003-Btrfs-send-fix-emission-of-invalid-clone-operations-.patch b/libre/linux-libre/0003-Btrfs-send-fix-emission-of-invalid-clone-operations-.patch deleted file mode 100644 index fcf18b356..000000000 --- a/libre/linux-libre/0003-Btrfs-send-fix-emission-of-invalid-clone-operations-.patch +++ /dev/null @@ -1,114 +0,0 @@ -From 693469a2b9d6d27282c06ed55cb70ff648740efd Mon Sep 17 00:00:00 2001 -From: Filipe Manana <fdmanana@suse.com> -Date: Fri, 24 Jan 2020 11:52:04 +0000 -Subject: [PATCH 3/3] Btrfs: send, fix emission of invalid clone operations - within the same file - -When doing an incremental send and a file has extents shared with itself -at different file offsets, it's possible for send to emit clone operations -that will fail at the destination because the source range goes beyond the -file's current size. This happens when the file size has increased in the -send snapshot, there is a hole between the shared extents and both shared -extents are at file offsets which are greater the file's size in the -parent snapshot. - -Example: - - $ mkfs.btrfs -f /dev/sdb - $ mount /dev/sdb /mnt/sdb - - $ xfs_io -f -c "pwrite -S 0xf1 0 64K" /mnt/sdb/foobar - $ btrfs subvolume snapshot -r /mnt/sdb /mnt/sdb/base - $ btrfs send -f /tmp/1.snap /mnt/sdb/base - - # Create a 320K extent at file offset 512K. - $ xfs_io -c "pwrite -S 0xab 512K 64K" /mnt/sdb/foobar - $ xfs_io -c "pwrite -S 0xcd 576K 64K" /mnt/sdb/foobar - $ xfs_io -c "pwrite -S 0xef 640K 64K" /mnt/sdb/foobar - $ xfs_io -c "pwrite -S 0x64 704K 64K" /mnt/sdb/foobar - $ xfs_io -c "pwrite -S 0x73 768K 64K" /mnt/sdb/foobar - - # Clone part of that 320K extent into a lower file offset (192K). - # This file offset is greater than the file's size in the parent - # snapshot (64K). Also the clone range is a bit behind the offset of - # the 320K extent so that we leave a hole between the shared extents. - $ xfs_io -c "reflink /mnt/sdb/foobar 448K 192K 192K" /mnt/sdb/foobar - - $ btrfs subvolume snapshot -r /mnt/sdb /mnt/sdb/incr - $ btrfs send -p /mnt/sdb/base -f /tmp/2.snap /mnt/sdb/incr - - $ mkfs.btrfs -f /dev/sdc - $ mount /dev/sdc /mnt/sdc - - $ btrfs receive -f /tmp/1.snap /mnt/sdc - $ btrfs receive -f /tmp/2.snap /mnt/sdc - ERROR: failed to clone extents to foobar: Invalid argument - -The problem is that after processing the extent at file offset 192K, send -does not issue a write operation full of zeroes for the hole between that -extent and the extent starting at file offset 520K (hole range from 384K -to 512K), this is because the hole is at an offset larger the size of the -file in the parent snapshot (384K > 64K). As a consequence the field -'cur_inode_next_write_offset' of the send context remains with a value of -384K when we start to process the extent at file offset 512K, which is the -value set after processing the extent at offset 192K. - -This screws up the lookup of possible extents to clone because due to an -incorrect value of 'cur_inode_next_write_offset' we can now consider -extents for cloning, in the same inode, that lie beyond the current size -of the file in the receiver of the send stream. Also, when checking if -an extent in the same file can be used for cloning, we must also check -that not only its start offset doesn't start at or beyond the current eof -of the file in the receiver but that the source range doesn't go beyond -current eof, that is we must check offset + length does not cross the -current eof, as that makes clone operations fail with -EINVAL. - -So fix this by updating 'cur_inode_next_write_offset' whenever we start -processing an extent and checking an extent's offset and length when -considering it for cloning operations. - -A test case for fstests follows soon. - -Fixes: 11f2069c113e02 ("Btrfs: send, allow clone operations within the same file") -Signed-off-by: Filipe Manana <fdmanana@suse.com> -Reviewed-by: Josef Bacik <josef@toxicpanda.com> ---- - fs/btrfs/send.c | 15 ++++++++++++++- - 1 file changed, 14 insertions(+), 1 deletion(-) - -diff --git a/fs/btrfs/send.c b/fs/btrfs/send.c -index 091e5bc8c7ea..0b42dac8a35f 100644 ---- a/fs/btrfs/send.c -+++ b/fs/btrfs/send.c -@@ -1269,7 +1269,8 @@ static int __iterate_backrefs(u64 ino, u64 offset, u64 root, void *ctx_) - * destination of the stream. - */ - if (ino == bctx->cur_objectid && -- offset >= bctx->sctx->cur_inode_next_write_offset) -+ offset + bctx->extent_len > -+ bctx->sctx->cur_inode_next_write_offset) - return 0; - } - -@@ -5804,6 +5805,18 @@ static int process_extent(struct send_ctx *sctx, - } - } - -+ /* -+ * There might be a hole between the end of the last processed extent -+ * and this extent, and we may have not sent a write operation for that -+ * hole because it was not needed (range is beyond eof in the parent -+ * snapshot). So adjust the next write offset to the offset of this -+ * extent, as we want to make sure we don't do mistakes when checking if -+ * we can clone this extent from some other offset in this inode or when -+ * detecting if we need to issue a truncate operation when finishing the -+ * processing this inode. -+ */ -+ sctx->cur_inode_next_write_offset = key->offset; -+ - ret = find_extent_clone(sctx, path, key->objectid, key->offset, - sctx->cur_inode_size, &found_clone); - if (ret != -ENOENT && ret < 0) --- -2.25.0 - diff --git a/libre/linux-libre/0003-iwlwifi-mvm-Do-not-require-PHY_SKU-NVM-section-for-3.patch b/libre/linux-libre/0003-iwlwifi-mvm-Do-not-require-PHY_SKU-NVM-section-for-3.patch new file mode 100644 index 000000000..5af211fc2 --- /dev/null +++ b/libre/linux-libre/0003-iwlwifi-mvm-Do-not-require-PHY_SKU-NVM-section-for-3.patch @@ -0,0 +1,40 @@ +From 6ba9e64f96ff87b42e77e6deacaa793f5f0e0ce3 Mon Sep 17 00:00:00 2001 +From: Dan Moulding <dmoulding@me.com> +Date: Tue, 28 Jan 2020 02:31:07 -0700 +Subject: [PATCH 03/11] iwlwifi: mvm: Do not require PHY_SKU NVM section for + 3168 devices + +The logic for checking required NVM sections was recently fixed in +commit b3f20e098293 ("iwlwifi: mvm: fix NVM check for 3168 +devices"). However, with that fixed the else is now taken for 3168 +devices and within the else clause there is a mandatory check for the +PHY_SKU section. This causes the parsing to fail for 3168 devices. + +The PHY_SKU section is really only mandatory for the IWL_NVM_EXT +layout (the phy_sku parameter of iwl_parse_nvm_data is only used when +the NVM type is IWL_NVM_EXT). So this changes the PHY_SKU section +check so that it's only mandatory for IWL_NVM_EXT. + +Fixes: b3f20e098293 ("iwlwifi: mvm: fix NVM check for 3168 devices") +Signed-off-by: Dan Moulding <dmoulding@me.com> +--- + drivers/net/wireless/intel/iwlwifi/mvm/nvm.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/nvm.c b/drivers/net/wireless/intel/iwlwifi/mvm/nvm.c +index 46128a2a9c6e..e98ce380c7b9 100644 +--- a/drivers/net/wireless/intel/iwlwifi/mvm/nvm.c ++++ b/drivers/net/wireless/intel/iwlwifi/mvm/nvm.c +@@ -308,7 +308,8 @@ iwl_parse_nvm_sections(struct iwl_mvm *mvm) + } + + /* PHY_SKU section is mandatory in B0 */ +- if (!mvm->nvm_sections[NVM_SECTION_TYPE_PHY_SKU].data) { ++ if (mvm->trans->cfg->nvm_type == IWL_NVM_EXT && ++ !mvm->nvm_sections[NVM_SECTION_TYPE_PHY_SKU].data) { + IWL_ERR(mvm, + "Can't parse phy_sku in B0, empty sections\n"); + return NULL; +-- +2.25.1 + diff --git a/libre/linux-libre/0004-drm-Remove-PageReserved-manipulation-from-drm_pci_al.patch b/libre/linux-libre/0004-drm-Remove-PageReserved-manipulation-from-drm_pci_al.patch new file mode 100644 index 000000000..99b3142b0 --- /dev/null +++ b/libre/linux-libre/0004-drm-Remove-PageReserved-manipulation-from-drm_pci_al.patch @@ -0,0 +1,92 @@ +From 33083113cc94448919443871567cb9bfd61e76df Mon Sep 17 00:00:00 2001 +From: Chris Wilson <chris@chris-wilson.co.uk> +Date: Sun, 2 Feb 2020 17:16:31 +0000 +Subject: [PATCH 04/11] drm: Remove PageReserved manipulation from + drm_pci_alloc + +drm_pci_alloc/drm_pci_free are very thin wrappers around the core dma +facilities, and we have no special reason within the drm layer to behave +differently. In particular, since + +commit de09d31dd38a50fdce106c15abd68432eebbd014 +Author: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> +Date: Fri Jan 15 16:51:42 2016 -0800 + + page-flags: define PG_reserved behavior on compound pages + + As far as I can see there's no users of PG_reserved on compound pages. + Let's use PF_NO_COMPOUND here. + +it has been illegal to combine GFP_COMP with SetPageReserved, so lets +stop doing both and leave the dma layer to its own devices. + +Reported-by: Taketo Kabe +Bug: https://gitlab.freedesktop.org/drm/intel/issues/1027 +Fixes: de09d31dd38a ("page-flags: define PG_reserved behavior on compound pages") +Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> +Cc: <stable@vger.kernel.org> # v4.5+ +Reviewed-by: Alex Deucher <alexander.deucher@amd.com> +Link: https://patchwork.freedesktop.org/patch/msgid/20200202171635.4039044-1-chris@chris-wilson.co.uk +--- + drivers/gpu/drm/drm_pci.c | 23 ++--------------------- + 1 file changed, 2 insertions(+), 21 deletions(-) + +diff --git a/drivers/gpu/drm/drm_pci.c b/drivers/gpu/drm/drm_pci.c +index a86a3ab2771c..235729f4aadb 100644 +--- a/drivers/gpu/drm/drm_pci.c ++++ b/drivers/gpu/drm/drm_pci.c +@@ -51,8 +51,6 @@ + drm_dma_handle_t *drm_pci_alloc(struct drm_device * dev, size_t size, size_t align) + { + drm_dma_handle_t *dmah; +- unsigned long addr; +- size_t sz; + + /* pci_alloc_consistent only guarantees alignment to the smallest + * PAGE_SIZE order which is greater than or equal to the requested size. +@@ -68,20 +66,13 @@ drm_dma_handle_t *drm_pci_alloc(struct drm_device * dev, size_t size, size_t ali + dmah->size = size; + dmah->vaddr = dma_alloc_coherent(&dev->pdev->dev, size, + &dmah->busaddr, +- GFP_KERNEL | __GFP_COMP); ++ GFP_KERNEL); + + if (dmah->vaddr == NULL) { + kfree(dmah); + return NULL; + } + +- /* XXX - Is virt_to_page() legal for consistent mem? */ +- /* Reserve */ +- for (addr = (unsigned long)dmah->vaddr, sz = size; +- sz > 0; addr += PAGE_SIZE, sz -= PAGE_SIZE) { +- SetPageReserved(virt_to_page((void *)addr)); +- } +- + return dmah; + } + +@@ -94,19 +85,9 @@ EXPORT_SYMBOL(drm_pci_alloc); + */ + void __drm_legacy_pci_free(struct drm_device * dev, drm_dma_handle_t * dmah) + { +- unsigned long addr; +- size_t sz; +- +- if (dmah->vaddr) { +- /* XXX - Is virt_to_page() legal for consistent mem? */ +- /* Unreserve */ +- for (addr = (unsigned long)dmah->vaddr, sz = dmah->size; +- sz > 0; addr += PAGE_SIZE, sz -= PAGE_SIZE) { +- ClearPageReserved(virt_to_page((void *)addr)); +- } ++ if (dmah->vaddr) + dma_free_coherent(&dev->pdev->dev, dmah->size, dmah->vaddr, + dmah->busaddr); +- } + } + + /** +-- +2.25.1 + diff --git a/libre/linux-libre/0005-drm-i915-Serialise-i915_active_acquire-with-__active.patch b/libre/linux-libre/0005-drm-i915-Serialise-i915_active_acquire-with-__active.patch new file mode 100644 index 000000000..29ab99fe8 --- /dev/null +++ b/libre/linux-libre/0005-drm-i915-Serialise-i915_active_acquire-with-__active.patch @@ -0,0 +1,79 @@ +From dff3c906fd230a07369d85d501bb11f8b840f4e6 Mon Sep 17 00:00:00 2001 +From: Chris Wilson <chris@chris-wilson.co.uk> +Date: Thu, 5 Dec 2019 18:33:32 +0000 +Subject: [PATCH 05/11] drm/i915: Serialise i915_active_acquire() with + __active_retire() + +As __active_retire() does it's final atomic_dec() under the +ref->tree_lock spinlock, in order to prevent ourselves from reusing the +ref->cache and ref->tree as they are being destroyed, we need to +serialise with the retirement during i915_active_acquire(). + +[ +0.000005] kernel BUG at drivers/gpu/drm/i915/i915_active.c:157! +[ +0.000011] invalid opcode: 0000 [#1] SMP +[ +0.000004] CPU: 7 PID: 188 Comm: kworker/u16:4 Not tainted 5.4.0-rc8-03070-gac5e57322614 #89 +[ +0.000002] Hardware name: Razer Razer Blade Stealth 13 Late 2019/LY320, BIOS 1.02 09/10/2019 +[ +0.000082] Workqueue: events_unbound active_work [i915] +[ +0.000059] RIP: 0010:__active_retire+0x115/0x120 [i915] +[ +0.000003] Code: 75 28 48 8b 3d 8c 6e 1a 00 48 89 ee e8 e4 5f a5 c0 48 8b 44 24 10 65 48 33 04 25 28 00 00 00 75 0f 48 83 c4 18 5b 5d 41 5c c3 <0f> 0b 0f 0b 0f 0b e8 a0 90 87 c0 0f 1f 44 00 00 48 8b 3d 54 6e 1a +[ +0.000002] RSP: 0018:ffffb833003f7e48 EFLAGS: 00010286 +[ +0.000003] RAX: ffff8d6e8d726d00 RBX: ffff8d6f9db4e840 RCX: 0000000000000000 +[ +0.000001] RDX: ffffffff82605930 RSI: ffff8d6f9adc4908 RDI: ffff8d6e96cefe28 +[ +0.000002] RBP: ffff8d6e96cefe00 R08: 0000000000000000 R09: ffff8d6f9ffe9a50 +[ +0.000002] R10: 0000000000000048 R11: 0000000000000018 R12: ffff8d6f9adc4930 +[ +0.000001] R13: ffff8d6f9e04fb00 R14: 0000000000000000 R15: ffff8d6f9adc4988 +[ +0.000002] FS: 0000000000000000(0000) GS:ffff8d6f9ffc0000(0000) knlGS:0000000000000000 +[ +0.000002] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 +[ +0.000002] CR2: 000055eb5a34cf10 CR3: 000000018d609002 CR4: 0000000000760ee0 +[ +0.000002] PKRU: 55555554 +[ +0.000001] Call Trace: +[ +0.000010] process_one_work+0x1aa/0x350 +[ +0.000004] worker_thread+0x4d/0x3a0 +[ +0.000004] kthread+0xfb/0x130 +[ +0.000004] ? process_one_work+0x350/0x350 +[ +0.000003] ? kthread_park+0x90/0x90 +[ +0.000005] ret_from_fork+0x1f/0x40 + +Reported-by: Kenneth Graunke <kenneth@whitecape.org> +Fixes: c9ad602feabe ("drm/i915: Split i915_active.mutex into an irq-safe spinlock for the rbtree") +Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> +Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> +Cc: Kenneth Graunke <kenneth@whitecape.org> +Cc: Matthew Auld <matthew.auld@intel.com> +Tested-by: Kenneth Graunke <kenneth@whitecape.org> +Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> +Link: https://patchwork.freedesktop.org/patch/msgid/20191205183332.801237-1-chris@chris-wilson.co.uk +--- + drivers/gpu/drm/i915/i915_active.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/drivers/gpu/drm/i915/i915_active.c b/drivers/gpu/drm/i915/i915_active.c +index a19e7d89bc8a..378b52d1ab74 100644 +--- a/drivers/gpu/drm/i915/i915_active.c ++++ b/drivers/gpu/drm/i915/i915_active.c +@@ -91,10 +91,9 @@ static void debug_active_init(struct i915_active *ref) + + static void debug_active_activate(struct i915_active *ref) + { +- spin_lock_irq(&ref->tree_lock); ++ lockdep_assert_held(&ref->tree_lock); + if (!atomic_read(&ref->count)) /* before the first inc */ + debug_object_activate(ref, &active_debug_desc); +- spin_unlock_irq(&ref->tree_lock); + } + + static void debug_active_deactivate(struct i915_active *ref) +@@ -407,8 +406,10 @@ int i915_active_acquire(struct i915_active *ref) + if (!atomic_read(&ref->count) && ref->active) + err = ref->active(ref); + if (!err) { ++ spin_lock_irq(&ref->tree_lock); /* vs __active_retire() */ + debug_active_activate(ref); + atomic_inc(&ref->count); ++ spin_unlock_irq(&ref->tree_lock); + } + + mutex_unlock(&ref->mutex); +-- +2.25.1 + diff --git a/libre/linux-libre/0006-drm-i915-gem-Take-runtime-pm-wakeref-prior-to-unbind.patch b/libre/linux-libre/0006-drm-i915-gem-Take-runtime-pm-wakeref-prior-to-unbind.patch new file mode 100644 index 000000000..c51edfc5d --- /dev/null +++ b/libre/linux-libre/0006-drm-i915-gem-Take-runtime-pm-wakeref-prior-to-unbind.patch @@ -0,0 +1,130 @@ +From 92294ec84e60045e4ab3613a2b6a597b35eb48e7 Mon Sep 17 00:00:00 2001 +From: Chris Wilson <chris@chris-wilson.co.uk> +Date: Tue, 3 Dec 2019 10:13:46 +0000 +Subject: [PATCH 06/11] drm/i915/gem: Take runtime-pm wakeref prior to + unbinding + +Some machines require ACPI for runtime resume, and ACPI is quite kmalloc +happy. We cannot handle kmalloc from inside the vm->mutex, as they are +used by the shrinker, and so we must ensure the global runtime-pm is +awake prior to unbinding to avoid the potential inversion. + +<4> [57.121748] ====================================================== +<4> [57.121750] WARNING: possible circular locking dependency detected +<4> [57.121753] 5.4.0-rc8-CI-CI_DRM_7466+ #1 Tainted: G U +<4> [57.121754] ------------------------------------------------------ +<4> [57.121756] i915_pm_rpm/1105 is trying to acquire lock: +<4> [57.121758] ffffffff82263a40 (fs_reclaim){+.+.}, at: fs_reclaim_acquire.part.117+0x0/0x30 +<4> [57.121766] +but task is already holding lock: +<4> [57.121768] ffff888475a593c0 (&vm->mutex){+.+.}, at: i915_vma_unbind+0x21/0x50 [i915] +<4> [57.121868] +which lock already depends on the new lock. + +<4> [57.121869] +the existing dependency chain (in reverse order) is: +<4> [57.121871] +-> #1 (&vm->mutex){+.+.}: +<4> [57.121951] i915_gem_shrinker_taints_mutex+0xa2/0xd0 [i915] +<4> [57.122028] i915_address_space_init+0xa9/0x170 [i915] +<4> [57.122104] i915_ggtt_init_hw+0x47/0x130 [i915] +<4> [57.122150] i915_driver_probe+0xbb4/0x15f0 [i915] +<4> [57.122197] i915_pci_probe+0x43/0x1c0 [i915] +<4> [57.122202] pci_device_probe+0x9e/0x120 +<4> [57.122206] really_probe+0xea/0x420 +<4> [57.122209] driver_probe_device+0x10b/0x120 +<4> [57.122212] device_driver_attach+0x4a/0x50 +<4> [57.122214] __driver_attach+0x97/0x130 +<4> [57.122217] bus_for_each_dev+0x74/0xc0 +<4> [57.122220] bus_add_driver+0x142/0x220 +<4> [57.122222] driver_register+0x56/0xf0 +<4> [57.122226] do_one_initcall+0x58/0x2ff +<4> [57.122230] do_init_module+0x56/0x1f8 +<4> [57.122233] load_module+0x243e/0x29f0 +<4> [57.122236] __do_sys_finit_module+0xe9/0x110 +<4> [57.122239] do_syscall_64+0x4f/0x210 +<4> [57.122242] entry_SYSCALL_64_after_hwframe+0x49/0xbe +<4> [57.122244] +-> #0 (fs_reclaim){+.+.}: +<4> [57.122249] __lock_acquire+0x1328/0x15d0 +<4> [57.122251] lock_acquire+0xa7/0x1c0 +<4> [57.122254] fs_reclaim_acquire.part.117+0x24/0x30 +<4> [57.122257] __kmalloc+0x48/0x320 +<4> [57.122261] acpi_ns_internalize_name+0x44/0x9b +<4> [57.122264] acpi_ns_get_node_unlocked+0x6b/0xd3 +<4> [57.122267] acpi_ns_get_node+0x3b/0x50 +<4> [57.122271] acpi_get_handle+0x8a/0xb4 +<4> [57.122274] acpi_has_method+0x1c/0x40 +<4> [57.122278] acpi_pci_set_power_state+0x40/0xe0 +<4> [57.122281] pci_platform_power_transition+0x3e/0x90 +<4> [57.122284] pci_set_power_state+0x83/0xf0 +<4> [57.122287] pci_restore_standard_config+0x22/0x40 +<4> [57.122289] pci_pm_runtime_resume+0x23/0xc0 +<4> [57.122293] __rpm_callback+0xb1/0x110 +<4> [57.122296] rpm_callback+0x1a/0x70 +<4> [57.122299] rpm_resume+0x50e/0x790 +<4> [57.122302] __pm_runtime_resume+0x42/0x80 +<4> [57.122357] __intel_runtime_pm_get+0x15/0x60 [i915] +<4> [57.122435] ggtt_unbind_vma+0x24/0x60 [i915] +<4> [57.122514] __i915_vma_unbind.part.39+0xb5/0x500 [i915] +<4> [57.122593] i915_vma_unbind+0x2d/0x50 [i915] +<4> [57.122668] i915_gem_object_unbind+0x11c/0x260 [i915] +<4> [57.122740] i915_gem_object_set_cache_level+0x32/0x90 [i915] +<4> [57.122810] i915_gem_set_caching_ioctl+0x1f7/0x2f0 [i915] +<4> [57.122815] drm_ioctl_kernel+0xa7/0xf0 +<4> [57.122818] drm_ioctl+0x2e1/0x390 +<4> [57.122822] do_vfs_ioctl+0xa0/0x6f0 +<4> [57.122825] ksys_ioctl+0x35/0x60 +<4> [57.122828] __x64_sys_ioctl+0x11/0x20 +<4> [57.122830] do_syscall_64+0x4f/0x210 +<4> [57.122833] entry_SYSCALL_64_after_hwframe+0x49/0xbe + +Closes: https://gitlab.freedesktop.org/drm/intel/issues/711 +Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> +Reviewed-by: Matthew Auld <matthew.auld@intel.com> +Link: https://patchwork.freedesktop.org/patch/msgid/20191203101347.2836057-1-chris@chris-wilson.co.uk +--- + drivers/gpu/drm/i915/i915_gem.c | 17 ++++++++++++++++- + 1 file changed, 16 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c +index 3f07948ea4da..ed2436db5dd2 100644 +--- a/drivers/gpu/drm/i915/i915_gem.c ++++ b/drivers/gpu/drm/i915/i915_gem.c +@@ -119,10 +119,23 @@ i915_gem_get_aperture_ioctl(struct drm_device *dev, void *data, + int i915_gem_object_unbind(struct drm_i915_gem_object *obj, + unsigned long flags) + { +- struct i915_vma *vma; ++ struct intel_runtime_pm *rpm = &to_i915(obj->base.dev)->runtime_pm; + LIST_HEAD(still_in_list); ++ intel_wakeref_t wakeref; ++ struct i915_vma *vma; + int ret = 0; + ++ if (!atomic_read(&obj->bind_count)) ++ return 0; ++ ++ /* ++ * As some machines use ACPI to handle runtime-resume callbacks, and ++ * ACPI is quite kmalloc happy, we cannot resume beneath the vm->mutex ++ * as they are required by the shrinker. Ergo, we wake the device up ++ * first just in case. ++ */ ++ wakeref = intel_runtime_pm_get(rpm); ++ + spin_lock(&obj->vma.lock); + while (!ret && (vma = list_first_entry_or_null(&obj->vma.list, + struct i915_vma, +@@ -146,6 +159,8 @@ int i915_gem_object_unbind(struct drm_i915_gem_object *obj, + list_splice(&still_in_list, &obj->vma.list); + spin_unlock(&obj->vma.lock); + ++ intel_runtime_pm_put(rpm, wakeref); ++ + return ret; + } + +-- +2.25.1 + diff --git a/libre/linux-libre/0007-drm-i915-gem-Avoid-parking-the-vma-as-we-unbind.patch b/libre/linux-libre/0007-drm-i915-gem-Avoid-parking-the-vma-as-we-unbind.patch new file mode 100644 index 000000000..fe79b6953 --- /dev/null +++ b/libre/linux-libre/0007-drm-i915-gem-Avoid-parking-the-vma-as-we-unbind.patch @@ -0,0 +1,63 @@ +From d9f4e03a3469b8c1fce1fd5ef59708a504e5ba02 Mon Sep 17 00:00:00 2001 +From: Chris Wilson <chris@chris-wilson.co.uk> +Date: Tue, 3 Dec 2019 15:50:32 +0000 +Subject: [PATCH 07/11] drm/i915/gem: Avoid parking the vma as we unbind + +In order to avoid keeping a reference on the i915_vma (which is long +overdue!) we have to coordinate all the possible lifetimes and only use +the vma while we know it is alive. In this episode, we are reminded that +while idle, the closed vma are destroyed. So if the GT idles while we are +working with the vma, the vma itself becomes invalid. + +First class i915_vma here we come, but in the meantime keep piling on +the straw. + +Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> +Reviewed-by: Matthew Auld <matthew.auld@intel.com> +Link: https://patchwork.freedesktop.org/patch/msgid/20191203155032.3137263-1-chris@chris-wilson.co.uk +--- + drivers/gpu/drm/i915/i915_gem.c | 17 ++++++++++++++++- + 1 file changed, 16 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c +index ed2436db5dd2..739543812422 100644 +--- a/drivers/gpu/drm/i915/i915_gem.c ++++ b/drivers/gpu/drm/i915/i915_gem.c +@@ -141,18 +141,33 @@ int i915_gem_object_unbind(struct drm_i915_gem_object *obj, + struct i915_vma, + obj_link))) { + struct i915_address_space *vm = vma->vm; ++ bool awake = false; + +- ret = -EBUSY; ++ ret = -EAGAIN; + if (!i915_vm_tryopen(vm)) + break; + ++ /* Prevent vma being freed by i915_vma_parked as we unbind */ ++ if (intel_gt_pm_get_if_awake(vm->gt)) { ++ awake = true; ++ } else { ++ if (i915_vma_is_closed(vma)) { ++ spin_unlock(&obj->vma.lock); ++ goto err_vm; ++ } ++ } ++ + list_move_tail(&vma->obj_link, &still_in_list); + spin_unlock(&obj->vma.lock); + ++ ret = -EBUSY; + if (flags & I915_GEM_OBJECT_UNBIND_ACTIVE || + !i915_vma_is_active(vma)) + ret = i915_vma_unbind(vma); + ++ if (awake) ++ intel_gt_pm_put(vm->gt); ++err_vm: + i915_vm_close(vm); + spin_lock(&obj->vma.lock); + } +-- +2.25.1 + diff --git a/libre/linux-libre/0008-drm-i915-gem-Try-to-flush-pending-unbind-events.patch b/libre/linux-libre/0008-drm-i915-gem-Try-to-flush-pending-unbind-events.patch new file mode 100644 index 000000000..3768889ae --- /dev/null +++ b/libre/linux-libre/0008-drm-i915-gem-Try-to-flush-pending-unbind-events.patch @@ -0,0 +1,64 @@ +From 73845f795c73b341d331ba4ea581745828b03232 Mon Sep 17 00:00:00 2001 +From: Chris Wilson <chris@chris-wilson.co.uk> +Date: Wed, 4 Dec 2019 12:35:56 +0000 +Subject: [PATCH 08/11] drm/i915/gem: Try to flush pending unbind events + +If we cannot handle a vma within the unbind loop, try to flush the +pending events (i915_vma_parked, i915_vm_release) and try again. This +avoids a round trip to userspace that is not guaranteed to make forward +progress, as the events we wait upon require being idle. + +References: cb6c3d45f948 ("drm/i915/gem: Avoid parking the vma as we unbind") +Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> +Cc: Matthew Auld <matthew.auld@intel.com> +Reviewed-by: Matthew Auld <matthew.auld@intel.com> +Link: https://patchwork.freedesktop.org/patch/msgid/20191204123556.3740002-1-chris@chris-wilson.co.uk +--- + drivers/gpu/drm/i915/i915_gem.c | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c +index 739543812422..85b12228c2cf 100644 +--- a/drivers/gpu/drm/i915/i915_gem.c ++++ b/drivers/gpu/drm/i915/i915_gem.c +@@ -123,7 +123,7 @@ int i915_gem_object_unbind(struct drm_i915_gem_object *obj, + LIST_HEAD(still_in_list); + intel_wakeref_t wakeref; + struct i915_vma *vma; +- int ret = 0; ++ int ret; + + if (!atomic_read(&obj->bind_count)) + return 0; +@@ -136,6 +136,8 @@ int i915_gem_object_unbind(struct drm_i915_gem_object *obj, + */ + wakeref = intel_runtime_pm_get(rpm); + ++try_again: ++ ret = 0; + spin_lock(&obj->vma.lock); + while (!ret && (vma = list_first_entry_or_null(&obj->vma.list, + struct i915_vma, +@@ -153,6 +155,7 @@ int i915_gem_object_unbind(struct drm_i915_gem_object *obj, + } else { + if (i915_vma_is_closed(vma)) { + spin_unlock(&obj->vma.lock); ++ i915_vma_parked(vm->gt); + goto err_vm; + } + } +@@ -174,6 +177,11 @@ int i915_gem_object_unbind(struct drm_i915_gem_object *obj, + list_splice(&still_in_list, &obj->vma.list); + spin_unlock(&obj->vma.lock); + ++ if (ret == -EAGAIN && flags & I915_GEM_OBJECT_UNBIND_ACTIVE) { ++ rcu_barrier(); /* flush the i915_vm_release() */ ++ goto try_again; ++ } ++ + intel_runtime_pm_put(rpm, wakeref); + + return ret; +-- +2.25.1 + diff --git a/libre/linux-libre/0009-drm-i915-gem-Reinitialise-the-local-list-before-repe.patch b/libre/linux-libre/0009-drm-i915-gem-Reinitialise-the-local-list-before-repe.patch new file mode 100644 index 000000000..c3913790d --- /dev/null +++ b/libre/linux-libre/0009-drm-i915-gem-Reinitialise-the-local-list-before-repe.patch @@ -0,0 +1,34 @@ +From 6d98cb966611949e5c98b5a7cee4da0cab594d5f Mon Sep 17 00:00:00 2001 +From: Chris Wilson <chris@chris-wilson.co.uk> +Date: Thu, 5 Dec 2019 13:29:12 +0000 +Subject: [PATCH 09/11] drm/i915/gem: Reinitialise the local list before + repeating + +As we may start the loop again, we require our local list of i915_vma +we've processed to be reinitialised. + +Fixes: aa5e4453dc05 ("drm/i915/gem: Try to flush pending unbind events") +Closes: https://gitlab.freedesktop.org/drm/intel/issues/731 +Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> +Reviewed-by: Andi Shyti <andi.shyti@intel.com> +Link: https://patchwork.freedesktop.org/patch/msgid/20191205132912.606868-1-chris@chris-wilson.co.uk +--- + drivers/gpu/drm/i915/i915_gem.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c +index 85b12228c2cf..c2c025c4f4ad 100644 +--- a/drivers/gpu/drm/i915/i915_gem.c ++++ b/drivers/gpu/drm/i915/i915_gem.c +@@ -174,7 +174,7 @@ int i915_gem_object_unbind(struct drm_i915_gem_object *obj, + i915_vm_close(vm); + spin_lock(&obj->vma.lock); + } +- list_splice(&still_in_list, &obj->vma.list); ++ list_splice_init(&still_in_list, &obj->vma.list); + spin_unlock(&obj->vma.lock); + + if (ret == -EAGAIN && flags & I915_GEM_OBJECT_UNBIND_ACTIVE) { +-- +2.25.1 + diff --git a/libre/linux-libre/0010-drm-i915-Add-a-simple-is-bound-check-before-unbindin.patch b/libre/linux-libre/0010-drm-i915-Add-a-simple-is-bound-check-before-unbindin.patch new file mode 100644 index 000000000..96e3d8810 --- /dev/null +++ b/libre/linux-libre/0010-drm-i915-Add-a-simple-is-bound-check-before-unbindin.patch @@ -0,0 +1,41 @@ +From 291a8a531808a32b25a7649495e835f7b0257fd3 Mon Sep 17 00:00:00 2001 +From: Chris Wilson <chris@chris-wilson.co.uk> +Date: Sun, 22 Dec 2019 21:02:54 +0000 +Subject: [PATCH 10/11] drm/i915: Add a simple is-bound check before unbinding + +Only acquire the various atomic references required to unbind the vma if +we do need to unbind the vma. + +Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> +Acked-by: Imre Deak <imre.deak@intel.com> +Link: https://patchwork.freedesktop.org/patch/msgid/20191222210256.2066451-1-chris@chris-wilson.co.uk +--- + drivers/gpu/drm/i915/i915_gem.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c +index c2c025c4f4ad..83eed642cbcd 100644 +--- a/drivers/gpu/drm/i915/i915_gem.c ++++ b/drivers/gpu/drm/i915/i915_gem.c +@@ -145,6 +145,10 @@ int i915_gem_object_unbind(struct drm_i915_gem_object *obj, + struct i915_address_space *vm = vma->vm; + bool awake = false; + ++ list_move_tail(&vma->obj_link, &still_in_list); ++ if (!i915_vma_is_bound(vma, I915_VMA_BIND_MASK)) ++ continue; ++ + ret = -EAGAIN; + if (!i915_vm_tryopen(vm)) + break; +@@ -160,7 +164,6 @@ int i915_gem_object_unbind(struct drm_i915_gem_object *obj, + } + } + +- list_move_tail(&vma->obj_link, &still_in_list); + spin_unlock(&obj->vma.lock); + + ret = -EBUSY; +-- +2.25.1 + diff --git a/libre/linux-libre/0011-drm-i915-Introduce-a-vma.kref.patch b/libre/linux-libre/0011-drm-i915-Introduce-a-vma.kref.patch new file mode 100644 index 000000000..ce0f800fb --- /dev/null +++ b/libre/linux-libre/0011-drm-i915-Introduce-a-vma.kref.patch @@ -0,0 +1,252 @@ +From a3cef69920ccaab9833aeae47f03d2eaad841d96 Mon Sep 17 00:00:00 2001 +From: Chris Wilson <chris@chris-wilson.co.uk> +Date: Sun, 22 Dec 2019 21:02:55 +0000 +Subject: [PATCH 11/11] drm/i915: Introduce a vma.kref + +Start introducing a kref on i915_vma in order to protect the vma unbind +(i915_gem_object_unbind) from a parallel destruction (i915_vma_parked). +Later, we will use the refcount to manage all access and turn i915_vma +into a first class container. + +Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> +Cc: Imre Deak <imre.deak@intel.com> +Acked-by: Imre Deak <imre.deak@intel.com> +Link: https://patchwork.freedesktop.org/patch/msgid/20191222210256.2066451-2-chris@chris-wilson.co.uk +--- + drivers/gpu/drm/i915/gem/i915_gem_object.c | 2 +- + .../gpu/drm/i915/gem/selftests/huge_pages.c | 3 +-- + .../drm/i915/gem/selftests/i915_gem_mman.c | 4 +-- + drivers/gpu/drm/i915/i915_gem.c | 27 +++++++------------ + drivers/gpu/drm/i915/i915_gem_gtt.c | 5 ++-- + drivers/gpu/drm/i915/i915_vma.c | 9 ++++--- + drivers/gpu/drm/i915/i915_vma.h | 25 ++++++++++++++--- + 7 files changed, 44 insertions(+), 31 deletions(-) + +diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.c b/drivers/gpu/drm/i915/gem/i915_gem_object.c +index a596548c07bf..b6937469ffd3 100644 +--- a/drivers/gpu/drm/i915/gem/i915_gem_object.c ++++ b/drivers/gpu/drm/i915/gem/i915_gem_object.c +@@ -174,7 +174,7 @@ static void __i915_gem_free_objects(struct drm_i915_private *i915, + GEM_BUG_ON(vma->obj != obj); + spin_unlock(&obj->vma.lock); + +- i915_vma_destroy(vma); ++ __i915_vma_put(vma); + + spin_lock(&obj->vma.lock); + } +diff --git a/drivers/gpu/drm/i915/gem/selftests/huge_pages.c b/drivers/gpu/drm/i915/gem/selftests/huge_pages.c +index 688c49a24f32..bd1e2c12de63 100644 +--- a/drivers/gpu/drm/i915/gem/selftests/huge_pages.c ++++ b/drivers/gpu/drm/i915/gem/selftests/huge_pages.c +@@ -1110,8 +1110,7 @@ static int __igt_write_huge(struct intel_context *ce, + out_vma_unpin: + i915_vma_unpin(vma); + out_vma_close: +- i915_vma_destroy(vma); +- ++ __i915_vma_put(vma); + return err; + } + +diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c +index 29b2077b73d2..d226e55df8b2 100644 +--- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c ++++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c +@@ -161,7 +161,7 @@ static int check_partial_mapping(struct drm_i915_gem_object *obj, + kunmap(p); + + out: +- i915_vma_destroy(vma); ++ __i915_vma_put(vma); + return err; + } + +@@ -255,7 +255,7 @@ static int check_partial_mappings(struct drm_i915_gem_object *obj, + if (err) + return err; + +- i915_vma_destroy(vma); ++ __i915_vma_put(vma); + + if (igt_timeout(end_time, + "%s: timed out after tiling=%d stride=%d\n", +diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c +index 83eed642cbcd..0475a0343487 100644 +--- a/drivers/gpu/drm/i915/i915_gem.c ++++ b/drivers/gpu/drm/i915/i915_gem.c +@@ -143,7 +143,6 @@ int i915_gem_object_unbind(struct drm_i915_gem_object *obj, + struct i915_vma, + obj_link))) { + struct i915_address_space *vm = vma->vm; +- bool awake = false; + + list_move_tail(&vma->obj_link, &still_in_list); + if (!i915_vma_is_bound(vma, I915_VMA_BIND_MASK)) +@@ -154,26 +153,18 @@ int i915_gem_object_unbind(struct drm_i915_gem_object *obj, + break; + + /* Prevent vma being freed by i915_vma_parked as we unbind */ +- if (intel_gt_pm_get_if_awake(vm->gt)) { +- awake = true; +- } else { +- if (i915_vma_is_closed(vma)) { +- spin_unlock(&obj->vma.lock); +- i915_vma_parked(vm->gt); +- goto err_vm; +- } +- } +- ++ vma = __i915_vma_get(vma); + spin_unlock(&obj->vma.lock); + +- ret = -EBUSY; +- if (flags & I915_GEM_OBJECT_UNBIND_ACTIVE || +- !i915_vma_is_active(vma)) +- ret = i915_vma_unbind(vma); ++ if (vma) { ++ ret = -EBUSY; ++ if (flags & I915_GEM_OBJECT_UNBIND_ACTIVE || ++ !i915_vma_is_active(vma)) ++ ret = i915_vma_unbind(vma); ++ ++ __i915_vma_put(vma); ++ } + +- if (awake) +- intel_gt_pm_put(vm->gt); +-err_vm: + i915_vm_close(vm); + spin_lock(&obj->vma.lock); + } +diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c +index 44727806dfd7..dd2c20f7d4d2 100644 +--- a/drivers/gpu/drm/i915/i915_gem_gtt.c ++++ b/drivers/gpu/drm/i915/i915_gem_gtt.c +@@ -522,7 +522,7 @@ void __i915_vm_close(struct i915_address_space *vm) + + atomic_and(~I915_VMA_PIN_MASK, &vma->flags); + WARN_ON(__i915_vma_unbind(vma)); +- i915_vma_destroy(vma); ++ __i915_vma_put(vma); + + i915_gem_object_put(obj); + } +@@ -1790,7 +1790,7 @@ static void gen6_ppgtt_cleanup(struct i915_address_space *vm) + { + struct gen6_ppgtt *ppgtt = to_gen6_ppgtt(i915_vm_to_ppgtt(vm)); + +- i915_vma_destroy(ppgtt->vma); ++ __i915_vma_put(ppgtt->vma); + + gen6_ppgtt_free_pd(ppgtt); + free_scratch(vm); +@@ -1878,6 +1878,7 @@ static struct i915_vma *pd_vma_create(struct gen6_ppgtt *ppgtt, int size) + + i915_active_init(&vma->active, NULL, NULL); + ++ kref_init(&vma->ref); + mutex_init(&vma->pages_mutex); + vma->vm = i915_vm_get(&ggtt->vm); + vma->ops = &pd_vma_ops; +diff --git a/drivers/gpu/drm/i915/i915_vma.c b/drivers/gpu/drm/i915/i915_vma.c +index 01c822256b39..00973017abba 100644 +--- a/drivers/gpu/drm/i915/i915_vma.c ++++ b/drivers/gpu/drm/i915/i915_vma.c +@@ -112,6 +112,7 @@ vma_create(struct drm_i915_gem_object *obj, + if (vma == NULL) + return ERR_PTR(-ENOMEM); + ++ kref_init(&vma->ref); + mutex_init(&vma->pages_mutex); + vma->vm = i915_vm_get(vm); + vma->ops = &vm->vma_ops; +@@ -978,8 +979,10 @@ void i915_vma_reopen(struct i915_vma *vma) + __i915_vma_remove_closed(vma); + } + +-void i915_vma_destroy(struct i915_vma *vma) ++void i915_vma_release(struct kref *ref) + { ++ struct i915_vma *vma = container_of(ref, typeof(*vma), ref); ++ + if (drm_mm_node_allocated(&vma->node)) { + mutex_lock(&vma->vm->mutex); + atomic_and(~I915_VMA_PIN_MASK, &vma->flags); +@@ -1027,7 +1030,7 @@ void i915_vma_parked(struct intel_gt *gt) + spin_unlock_irq(>->closed_lock); + + if (obj) { +- i915_vma_destroy(vma); ++ __i915_vma_put(vma); + i915_gem_object_put(obj); + } + +@@ -1192,7 +1195,7 @@ int __i915_vma_unbind(struct i915_vma *vma) + i915_vma_detach(vma); + vma_unbind_pages(vma); + +- drm_mm_remove_node(&vma->node); /* pairs with i915_vma_destroy() */ ++ drm_mm_remove_node(&vma->node); /* pairs with i915_vma_release() */ + return 0; + } + +diff --git a/drivers/gpu/drm/i915/i915_vma.h b/drivers/gpu/drm/i915/i915_vma.h +index 465932813bc5..ce1db908ad69 100644 +--- a/drivers/gpu/drm/i915/i915_vma.h ++++ b/drivers/gpu/drm/i915/i915_vma.h +@@ -51,14 +51,19 @@ enum i915_cache_level; + */ + struct i915_vma { + struct drm_mm_node node; +- struct drm_i915_gem_object *obj; ++ + struct i915_address_space *vm; + const struct i915_vma_ops *ops; +- struct i915_fence_reg *fence; ++ ++ struct drm_i915_gem_object *obj; + struct dma_resv *resv; /** Alias of obj->resv */ ++ + struct sg_table *pages; + void __iomem *iomap; + void *private; /* owned by creator */ ++ ++ struct i915_fence_reg *fence; ++ + u64 size; + u64 display_alignment; + struct i915_page_sizes page_sizes; +@@ -71,6 +76,7 @@ struct i915_vma { + * handles (but same file) for execbuf, i.e. the number of aliases + * that exist in the ctx->handle_vmas LUT for this vma. + */ ++ struct kref ref; + atomic_t open_count; + atomic_t flags; + /** +@@ -333,7 +339,20 @@ int __must_check i915_vma_unbind(struct i915_vma *vma); + void i915_vma_unlink_ctx(struct i915_vma *vma); + void i915_vma_close(struct i915_vma *vma); + void i915_vma_reopen(struct i915_vma *vma); +-void i915_vma_destroy(struct i915_vma *vma); ++ ++static inline struct i915_vma *__i915_vma_get(struct i915_vma *vma) ++{ ++ if (kref_get_unless_zero(&vma->ref)) ++ return vma; ++ ++ return NULL; ++} ++ ++void i915_vma_release(struct kref *ref); ++static inline void __i915_vma_put(struct i915_vma *vma) ++{ ++ kref_put(&vma->ref, i915_vma_release); ++} + + #define assert_vma_held(vma) dma_resv_assert_held((vma)->resv) + +-- +2.25.1 + diff --git a/libre/linux-libre/PKGBUILD b/libre/linux-libre/PKGBUILD index 354a1c9e0..3f335ed35 100644 --- a/libre/linux-libre/PKGBUILD +++ b/libre/linux-libre/PKGBUILD @@ -14,11 +14,11 @@ _replacesoldkernels=() # '%' gets replaced with kernel suffix _replacesoldmodules=() # '%' gets replaced with kernel suffix pkgbase=linux-libre -pkgver=5.5.1 +pkgver=5.5.7 pkgrel=1 pkgdesc='Linux-libre' -rcnver=5.5.1 -rcnrel=armv7-x6 +rcnver=5.5.7 +rcnrel=armv7-x11 url='https://linux-libre.fsfla.org/' arch=(i686 x86_64 armv7h) license=(GPL2) @@ -47,7 +47,15 @@ source=( # extracted patches from Arch Linux kernel sources 0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch 0002-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch - 0003-Btrfs-send-fix-emission-of-invalid-clone-operations-.patch + 0003-iwlwifi-mvm-Do-not-require-PHY_SKU-NVM-section-for-3.patch + 0004-drm-Remove-PageReserved-manipulation-from-drm_pci_al.patch + 0005-drm-i915-Serialise-i915_active_acquire-with-__active.patch + 0006-drm-i915-gem-Take-runtime-pm-wakeref-prior-to-unbind.patch + 0007-drm-i915-gem-Avoid-parking-the-vma-as-we-unbind.patch + 0008-drm-i915-gem-Try-to-flush-pending-unbind-events.patch + 0009-drm-i915-gem-Reinitialise-the-local-list-before-repe.patch + 0010-drm-i915-Add-a-simple-is-bound-check-before-unbindin.patch + 0011-drm-i915-Introduce-a-vma.kref.patch ) source_armv7h=( # RCN patch (CM3 firmware deblobbed and bloatware removed) @@ -72,7 +80,7 @@ validpgpkeys=( ) sha512sums=('187368a8fb4e04acfd7d18a024d6cdbc2841bcc06dcfbc3a053706e8512c3e3f573755228347c11bd791b296ec60eb2d67d5075ece2aef234a847e72f2b3e746' 'SKIP' - '21b0beeff566b1201b3411344af0d10ab543a575652ec4841ee195244b52c68c145f536a5577d782a00fbd43bbfa7f113385eda1200a52681005bf0c8ecff92c' + '9e80c81ba21ce46422f6c9ee94772d5ea0152bb1176444a824c54c740fb58430ffaa1adadce8ecf1647d58fcadaabf6c67938999bf359b9ead4ed9141bc49ba7' 'SKIP' '13cb5bc42542e7b8bb104d5f68253f6609e463b6799800418af33eb0272cc269aaa36163c3e6f0aacbdaaa1d05e2827a4a7c4a08a029238439ed08b89c564bb3' 'SKIP' @@ -80,19 +88,27 @@ sha512sums=('187368a8fb4e04acfd7d18a024d6cdbc2841bcc06dcfbc3a053706e8512c3e3f573 'SKIP' '267295aa0cea65684968420c68b32f1a66a22d018b9d2b2c1ef14267bcf4cb68aaf7099d073cbfefe6c25c8608bdcbbd45f7ac8893fdcecbf1e621abdfe9ecc1' 'SKIP' - '4f0c8068f2532a60f3368ecc2147f6c33b19f934540655390751629b0981b1bf208f2ec563f5fcfbcf3537140bafd9ed0993cdc8f5b0b71914939d601afc4c29' - 'd2049a78d4802f099e43e111bc76d8bb3948b7bce8daa1fec33964ca9faabc0aa5327847bd666ec89221d9dcb37fae944f72c203a8d41b175023d085d7a849c8' + '6c975d534dc8c1d1fc041c6a06dd1874e69b77b94db93db3659c2739660043709acc280081ecb043aa7a7d55e413eb0891cc8928b3259434c79901f788dbbc2a' + 'f27e51d75548d9e7c5cad36eb588b669c7caa7ab276af5d156a33ce03f7d7e9120dc99382bb894cd6ef528aeeaf6e1a7dfd3dd8dee545e121298212f5b2785f0' '8f26d9d2161bad45fbd5b5c7db31af7bbbbc0295b87da645179bf5f777362c49cf296fa8e55d976a41f7f68868b55469787967413c7a68278dec6f7181e5e1da' - 'f01e7925b262d2874a8a991b1f27d057356a2a384d2012b61be5a631d4e4d7cf87461c8fb9e7f183831f5a829ad204897f1f0545a52df6288a0e04a5c2e31b96' + 'aca591b5a2e838754e3c5fd2c0e50098ad54c2d0f990de5bf9cff8608e881daf0e37132294ed1a0e0a7b9e1c194c0b89f95da001d94febdb25a01c409060e3ac' '167bc73c6c1c63931806238905dc44c7d87c5a5c0f6293159f2133dfe717fb44081018d810675716d1605ec7dff5e8333b87b19e09e2de21d0448e447437873b' 'bb6718984a7357c9b00c37e4788480e5b8b75018c172ecc1441bc3fc5d2d42444eb5d8c7f9d2e3a7d6fed6d03acb565e3c0559486e494c40a7fe6bd0570c9ede' '143dea30c6da00e504c99984a98a0eb2411f558fcdd9dfa7f607d6c14e9e7dffff9cb00121d9317044b07e3e210808286598c785ee854084b993ec9cb14d8232' '02af4dd2a007e41db0c63822c8ab3b80b5d25646af1906dc85d0ad9bb8bbf5236f8e381d7f91cf99ed4b0978c50aee37cb9567cdeef65b7ec3d91b882852b1af' 'b8fe56e14006ab866970ddbd501c054ae37186ddc065bb869cf7d18db8c0d455118d5bda3255fb66a0dde38b544655cfe9040ffe46e41d19830b47959b2fb168' - '3879f0d92e5a3e26386e687aaa376213e5064e2a23100baa2c6510cff357cb7c32eae700c5313a93b0881f0f40bfc224f4fa08c503a256d2bd64ef0ff6dcb2f3' - '902a591813240e08f24ce45a0de7d5911e1364b092f5bbc5a3ce7616c4fced4cad8adfa448f864540d3e11d21f651f51ee67810dec0e75ed3b41c3666da73423' - '701fb8ffb75c7469e9b0cbdd046ba122e4c5129ba6d78590e161084c09cbbe66b3c2b13191967db8c61942de6bad666d156ab1842672690b2e801aa398c05805') -sha512sums_armv7h=('999d5e44c19bd1cfdc8adfe63165edb358266be290fe1b4cd32385a320cd2f012447aefd71f016ccf3152f47a91787b413a360d20262ebb7aae8a88dc1436184' + 'c817bab02fa530560b9d3d968242e5491e315286a4a1dc9490299dc78806c516831da79422d6ab56df0652b216565a80f10d6dacdcbcbbbe258d31455cc98add' + 'a9a7c0510d9b1c724f17d47e33925b7dadb529ed57cbdc80120af8884f43190b6bfc7698416d23651eae64c4fed393481715b3d87b528b71d8c03b4141fcca46' + 'a26d886d6e3e394e7d6a247154120d4c2ba06e9e75385959bbf284c9577da07aee05b718ed06a56d56bec5a726c8013709c560cd280e78525d50dc95fb84bdad' + '7395fc2202c76ffff815bb6f6f54a1dc57ffb46b0b25ecf89effe6787dd66bd273dee29dd8636b3160c31fd0bfef0a99bd55f4080e6e075e862640b422c15e2e' + 'bd68f5d64a6bb502db8b5b96d2823493cda1a5b3c8bd0639b25ae3e47e999fc02dfd3bffa32e8fd710355d9ca0ec5bfe19421158cdc488c2b47b5177caf0f5c8' + '3b71120a93c53eb6308bb55b76ec0c1ccd8b3b385d4ce4062cb4f657b84e6bfe28765eb8042f6f8f35860899ee66633a4f59999513bfdc2968b5317215e36347' + 'd3fbbd202efd72ebac265b89fb8c9c3772fd49dcd6d43910555d55ec96ea5df8c0b03bfe00e2677787643cfc0f547eb49d638774742471ec650067751cecc5e2' + '80928026ceeb29bf29a2b2909768ddced2f13c522f6496fa4717a490f087bdd45ae0131cbce37ec227d16071ce562477ca322305a68e8606fc28e3d35759af26' + '855de25a3df963506d3cce588e422a4cf24b2cc04c950647b0002f796a921d17ebc49d95cb94c38713e70b6385a91278943df3c707091607a1fd118f519dae87' + 'f31a943f9942427e79d646186611325e6dd9aa6b100eb869b531e04c2fe934503ff6cc7496ffa8644eeb3bb13ec82e1898def5311f29bb4d286f758dfd848b9a' + '9dcde0dd16222ecb09c83025ecc13bb529c78289878c5abb38283a4b10ffe181abc9447423641a271c3f8db79d9bb540eea369cd0108e4948067cf4356bd329e') +sha512sums_armv7h=('ee01188c9318aa92bd1a683faec89310decd4d6419b5a99fb929a1422fddd16d916024ee008321e8a80ccf905001374d48eb16ab730b5ec16172424ca8d38074' 'SKIP' '4ad93d447d8671402dd7a2886b5c1329ffd5dd7b7f87e895f792ae937258c5016c7c0512ad03c4065da7520e656d0764d565171be463a378320fb210b54e3dee' '780e4ce45b35b271dd3459b543681603c1f112f68d5f3500b7c01fdcac205a9d06e9ec13700e8841d4beb831e3e2dda1664a0ac38ef23bb5a47e2df0534767d7' @@ -161,16 +177,13 @@ prepare() { make olddefconfig make -s kernelrelease > version - echo "Prepared %s version %s" "$pkgbase" "$(<version)" + echo "Prepared $pkgbase version $(<version)" } build() { cd $_srcname - if [ "$CARCH" = "armv7h" ]; then - make zImage modules htmldocs dtbs - else - make bzImage modules htmldocs - fi + make all + make htmldocs } _package() { @@ -187,9 +200,6 @@ _package() { local modulesdir="$pkgdir/usr/lib/modules/$kernver" echo "Installing boot image..." - if [ "$CARCH" = "armv7h" ]; then - make INSTALL_DTBS_PATH="$pkgdir/boot/dtbs/$pkgbase" dtbs_install - fi # systemd expects to find the kernel here to allow hibernation # https://github.com/systemd/systemd/commit/edda44605f06a41fb86b7ab8128dcf99161d2344 install -Dm644 "$(make -s image_name)" "$modulesdir/vmlinuz" @@ -203,10 +213,12 @@ _package() { # remove build and source links rm "$modulesdir"/{source,build} - # armv7h presets only work with ALL_kver=$kernver if [ "$CARCH" = "armv7h" ]; then - backup=("etc/mkinitcpio.d/$pkgbase.preset") + echo "Installing device tree binaries..." + make INSTALL_DTBS_PATH="$pkgdir/boot/dtbs/$pkgbase" dtbs_install + # armv7h presets only work with ALL_kver=$kernver + backup=("etc/mkinitcpio.d/$pkgbase.preset") echo "Installing mkinitcpio preset..." sed "s|%PKGBASE%|$pkgbase|g;s|%KERNVER%|$kernver|g" ../linux-armv7h.preset \ | install -Dm644 /dev/stdin "$pkgdir/etc/mkinitcpio.d/$pkgbase.preset" @@ -344,7 +356,7 @@ _package-docs() { } _package-chromebook() { - pkgdesc="Kernel image sign for $pkgdesc - Chromebooks" + pkgdesc="$pkgdesc kernel sign for Veyron Chromebooks" depends=(linux-libre=$pkgver) provides=("${_replacesarchkernel[@]/%/-armv7-chromebook=$pkgver}") conflicts=("${_replacesarchkernel[@]/%/-armv7-chromebook}" "${_replacesoldkernels[@]/%/-armv7-chromebook}") diff --git a/libre/linux-libre/config.i686 b/libre/linux-libre/config.i686 index 69bfc2245..1a192daed 100644 --- a/libre/linux-libre/config.i686 +++ b/libre/linux-libre/config.i686 @@ -1,13 +1,13 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 5.4.8-gnu Kernel Configuration +# Linux/x86 5.5.7-gnu Kernel Configuration # # -# Compiler: gcc (GCC) 9.2.0 +# Compiler: gcc (Arch Linux 9.2.1+20200130-2) 9.2.1 20200130 # CONFIG_CC_IS_GCC=y -CONFIG_GCC_VERSION=90200 +CONFIG_GCC_VERSION=90201 CONFIG_CLANG_VERSION=0 CONFIG_CC_CAN_LINK=y CONFIG_CC_HAS_ASM_GOTO=y @@ -22,7 +22,6 @@ CONFIG_THREAD_INFO_IN_TASK=y # CONFIG_INIT_ENV_ARG_LIMIT=32 # CONFIG_COMPILE_TEST is not set -# CONFIG_HEADER_TEST is not set CONFIG_LOCALVERSION="" CONFIG_LOCALVERSION_AUTO=y CONFIG_BUILD_SALT="" @@ -151,6 +150,7 @@ CONFIG_UCLAMP_BUCKETS_COUNT=5 # end of Scheduler features CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y +CONFIG_CC_HAS_INT128=y CONFIG_CGROUPS=y CONFIG_PAGE_COUNTER=y CONFIG_MEMCG=y @@ -207,7 +207,6 @@ CONFIG_EXPERT=y CONFIG_MULTIUSER=y CONFIG_SGETMASK_SYSCALL=y # CONFIG_SYSFS_SYSCALL is not set -# CONFIG_SYSCTL_SYSCALL is not set CONFIG_FHANDLE=y CONFIG_POSIX_TIMERS=y CONFIG_PRINTK=y @@ -328,6 +327,7 @@ CONFIG_PVH=y # CONFIG_KVM_DEBUG_FS is not set CONFIG_PARAVIRT_TIME_ACCOUNTING=y CONFIG_PARAVIRT_CLOCK=y +# CONFIG_M486SX is not set # CONFIG_M486 is not set # CONFIG_M586 is not set # CONFIG_M586TSC is not set @@ -405,6 +405,7 @@ CONFIG_PERF_EVENTS_AMD_POWER=m # CONFIG_X86_LEGACY_VM86 is not set CONFIG_X86_16BIT=y CONFIG_X86_ESPFIX32=y +CONFIG_X86_IOPL_IOPERM=y CONFIG_TOSHIBA=m CONFIG_I8K=m CONFIG_X86_REBOOTFIXUPS=y @@ -433,7 +434,6 @@ CONFIG_ILLEGAL_POINTER_VALUE=0 CONFIG_X86_CHECK_BIOS_CORRUPTION=y CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y CONFIG_X86_RESERVE_LOW=64 -# CONFIG_MATH_EMULATION is not set CONFIG_MTRR=y CONFIG_MTRR_SANITIZER=y CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1 @@ -442,7 +442,7 @@ CONFIG_X86_PAT=y CONFIG_ARCH_USES_PG_UNCACHED=y CONFIG_ARCH_RANDOM=y CONFIG_X86_SMAP=y -CONFIG_X86_INTEL_UMIP=y +CONFIG_X86_UMIP=y # CONFIG_X86_INTEL_TSX_MODE_OFF is not set # CONFIG_X86_INTEL_TSX_MODE_ON is not set CONFIG_X86_INTEL_TSX_MODE_AUTO=y @@ -552,7 +552,8 @@ CONFIG_DPTF_POWER=m CONFIG_ACPI_WATCHDOG=y CONFIG_ACPI_EXTLOG=m CONFIG_PMIC_OPREGION=y -CONFIG_CRC_PMIC_OPREGION=y +CONFIG_BYTCRC_PMIC_OPREGION=y +CONFIG_CHTCRC_PMIC_OPREGION=y CONFIG_XPOWER_PMIC_OPREGION=y CONFIG_BXT_WC_PMIC_OPREGION=y CONFIG_CHT_WC_PMIC_OPREGION=y @@ -820,14 +821,11 @@ CONFIG_ISA_BUS_API=y CONFIG_CLONE_BACKWARDS=y CONFIG_OLD_SIGSUSPEND3=y CONFIG_OLD_SIGACTION=y -CONFIG_64BIT_TIME=y CONFIG_COMPAT_32BIT_TIME=y CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y CONFIG_STRICT_KERNEL_RWX=y CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y CONFIG_STRICT_MODULE_RWX=y -CONFIG_ARCH_HAS_REFCOUNT=y -# CONFIG_REFCOUNT_FULL is not set CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y CONFIG_ARCH_USE_MEMREMAP_PROT=y CONFIG_LOCK_EVENT_COUNTS=y @@ -843,14 +841,9 @@ CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y CONFIG_PLUGIN_HOSTCC="g++" CONFIG_HAVE_GCC_PLUGINS=y CONFIG_GCC_PLUGINS=y - -# -# GCC plugins -# # CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set # CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set # CONFIG_GCC_PLUGIN_RANDSTRUCT is not set -# end of GCC plugins # end of General architecture-dependent options CONFIG_RT_MUTEXES=y @@ -880,6 +873,7 @@ CONFIG_MODULES_TREE_LOOKUP=y CONFIG_BLOCK=y CONFIG_BLK_RQ_ALLOC_TIME=y CONFIG_BLK_SCSI_REQUEST=y +CONFIG_BLK_CGROUP_RWSTAT=y CONFIG_BLK_DEV_BSG=y CONFIG_BLK_DEV_BSGLIB=y CONFIG_BLK_DEV_INTEGRITY=y @@ -1009,6 +1003,7 @@ CONFIG_FRAME_VECTOR=y # CONFIG_GUP_BENCHMARK is not set CONFIG_READ_ONLY_THP_FOR_FS=y CONFIG_ARCH_HAS_PTE_SPECIAL=y +CONFIG_MAPPING_DIRTY_HELPERS=y # end of Memory Management options CONFIG_NET=y @@ -1026,6 +1021,7 @@ CONFIG_UNIX_SCM=y CONFIG_UNIX_DIAG=y CONFIG_TLS=m # CONFIG_TLS_DEVICE is not set +# CONFIG_TLS_TOE is not set CONFIG_XFRM=y CONFIG_XFRM_OFFLOAD=y CONFIG_XFRM_ALGO=m @@ -1515,6 +1511,7 @@ CONFIG_RDS_TCP=m CONFIG_TIPC=m CONFIG_TIPC_MEDIA_IB=y CONFIG_TIPC_MEDIA_UDP=y +CONFIG_TIPC_CRYPTO=y CONFIG_TIPC_DIAG=m CONFIG_ATM=m CONFIG_ATM_CLIP=m @@ -1545,6 +1542,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_OCELOT=m CONFIG_NET_DSA_TAG_QCA=m CONFIG_NET_DSA_TAG_LAN9303=m CONFIG_NET_DSA_TAG_SJA1105=m @@ -1961,6 +1959,7 @@ CONFIG_NFC_PN544_MEI=m CONFIG_NFC_PN533=m CONFIG_NFC_PN533_USB=m CONFIG_NFC_PN533_I2C=m +CONFIG_NFC_PN532_UART=m CONFIG_NFC_MICROREAD=m CONFIG_NFC_MICROREAD_I2C=m CONFIG_NFC_MICROREAD_MEI=m @@ -2007,7 +2006,6 @@ CONFIG_PCIEAER=y # CONFIG_PCIEAER_INJECT is not set CONFIG_PCIE_ECRC=y CONFIG_PCIEASPM=y -# CONFIG_PCIEASPM_DEBUG is not set CONFIG_PCIEASPM_DEFAULT=y # CONFIG_PCIEASPM_POWERSAVE is not set # CONFIG_PCIEASPM_POWER_SUPERSAVE is not set @@ -2043,15 +2041,6 @@ CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m # # PCI controller drivers # - -# -# Cadence PCIe controllers support -# -CONFIG_PCIE_CADENCE=y -CONFIG_PCIE_CADENCE_HOST=y -CONFIG_PCIE_CADENCE_EP=y -# end of Cadence PCIe controllers support - # CONFIG_PCI_FTPCI100 is not set # CONFIG_PCI_HOST_GENERIC is not set CONFIG_PCIE_XILINX=y @@ -2065,6 +2054,17 @@ CONFIG_PCIE_DW_HOST=y # CONFIG_PCIE_DW_PLAT_EP is not set CONFIG_PCI_MESON=y # end of DesignWare PCI Core Support + +# +# Cadence PCIe controllers support +# +CONFIG_PCIE_CADENCE=y +CONFIG_PCIE_CADENCE_HOST=y +CONFIG_PCIE_CADENCE_EP=y +CONFIG_PCIE_CADENCE_PLAT=y +CONFIG_PCIE_CADENCE_PLAT_HOST=y +CONFIG_PCIE_CADENCE_PLAT_EP=y +# end of Cadence PCIe controllers support # end of PCI controller drivers # @@ -2138,6 +2138,7 @@ CONFIG_FW_LOADER_PAGED_BUF=y CONFIG_EXTRA_FIRMWARE="" # CONFIG_FW_LOADER_USER_HELPER is not set CONFIG_FW_LOADER_COMPRESS=y +CONFIG_FW_CACHE=y # end of Firmware loader CONFIG_WANT_DEV_COREDUMP=y @@ -2303,6 +2304,7 @@ CONFIG_MTD_NAND_CAFE=m CONFIG_MTD_NAND_MXIC=m CONFIG_MTD_NAND_GPIO=m CONFIG_MTD_NAND_PLATFORM=m +CONFIG_MTD_NAND_CADENCE=m # # Misc @@ -2403,6 +2405,7 @@ CONFIG_BLK_DEV_RSXX=m CONFIG_NVME_CORE=y CONFIG_BLK_DEV_NVME=y CONFIG_NVME_MULTIPATH=y +CONFIG_NVME_HWMON=y CONFIG_NVME_FABRICS=m CONFIG_NVME_RDMA=m CONFIG_NVME_FC=m @@ -2486,39 +2489,7 @@ CONFIG_VMWARE_VMCI=m # # Intel MIC & related support # - -# -# Intel MIC Bus Driver -# - -# -# SCIF Bus Driver -# - -# -# VOP Bus Driver -# # CONFIG_VOP_BUS is not set - -# -# Intel MIC Host Driver -# - -# -# Intel MIC Card Driver -# - -# -# SCIF Driver -# - -# -# Intel MIC Coprocessor State Management (COSM) Drivers -# - -# -# VOP Driver -# CONFIG_VHOST_RING=m # end of Intel MIC & related support @@ -2949,10 +2920,7 @@ CONFIG_ATM_FORE200E_DEBUG=0 CONFIG_ATM_HE=m CONFIG_ATM_HE_USE_SUNI=y CONFIG_ATM_SOLOS=m - -# -# CAIF transport drivers -# +CONFIG_CAIF_DRIVERS=y CONFIG_CAIF_TTY=m CONFIG_CAIF_SPI_SLAVE=m CONFIG_CAIF_SPI_SYNC=y @@ -2982,6 +2950,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_FELIX=m CONFIG_NET_DSA_SJA1105=m CONFIG_NET_DSA_SJA1105_PTP=y CONFIG_NET_DSA_SJA1105_TAS=y @@ -3108,8 +3077,6 @@ CONFIG_NET_VENDOR_FUJITSU=y CONFIG_PCMCIA_FMVJ18X=m CONFIG_NET_VENDOR_GOOGLE=y CONFIG_GVE=m -CONFIG_NET_VENDOR_HP=y -CONFIG_HP100=m CONFIG_NET_VENDOR_HUAWEI=y CONFIG_HINIC=m CONFIG_NET_VENDOR_I825XX=y @@ -3184,7 +3151,8 @@ CONFIG_ENC28J60=m CONFIG_ENCX24J600=m CONFIG_LAN743X=m CONFIG_NET_VENDOR_MICROSEMI=y -# CONFIG_MSCC_OCELOT_SWITCH is not set +CONFIG_MSCC_OCELOT_SWITCH=m +# CONFIG_MSCC_OCELOT_SWITCH_OCELOT is not set CONFIG_NET_VENDOR_MYRI=y # CONFIG_MYRI10GE is not set CONFIG_FEALNX=m @@ -3338,7 +3306,6 @@ CONFIG_ADIN_PHY=m CONFIG_AMD_PHY=m CONFIG_AQUANTIA_PHY=m CONFIG_AX88796B_PHY=m -CONFIG_AT803X_PHY=m CONFIG_BCM7XXX_PHY=m CONFIG_BCM87XX_PHY=m CONFIG_BCM_NET_PHYLIB=m @@ -3350,6 +3317,7 @@ CONFIG_DP83822_PHY=m # CONFIG_DP83TC811_PHY is not set CONFIG_DP83848_PHY=m CONFIG_DP83867_PHY=m +CONFIG_DP83869_PHY=m CONFIG_FIXED_PHY=m CONFIG_ICPLUS_PHY=m CONFIG_INTEL_XWAY_PHY=m @@ -3363,6 +3331,7 @@ CONFIG_MICROCHIP_PHY=m CONFIG_MICROSEMI_PHY=m CONFIG_NATIONAL_PHY=m CONFIG_NXP_TJA11XX_PHY=m +CONFIG_AT803X_PHY=m CONFIG_QSEMI_PHY=m CONFIG_REALTEK_PHY=m CONFIG_RENESAS_PHY=m @@ -3984,7 +3953,6 @@ CONFIG_INPUT_ATLAS_BTNS=m CONFIG_INPUT_ATI_REMOTE2=m CONFIG_INPUT_KEYSPAN_REMOTE=m CONFIG_INPUT_KXTJ9=m -# CONFIG_INPUT_KXTJ9_POLLED_MODE is not set CONFIG_INPUT_POWERMATE=m CONFIG_INPUT_YEALINK=m CONFIG_INPUT_CM109=m @@ -4217,6 +4185,7 @@ CONFIG_HW_RANDOM_TPM=y CONFIG_TCG_TIS_CORE=m CONFIG_TCG_TIS=m CONFIG_TCG_TIS_SPI=m +CONFIG_TCG_TIS_SPI_CR50=y CONFIG_TCG_TIS_I2C_ATMEL=m CONFIG_TCG_TIS_I2C_INFINEON=m CONFIG_TCG_TIS_I2C_NUVOTON=m @@ -4432,6 +4401,7 @@ CONFIG_PTP_1588_CLOCK=y CONFIG_DP83640_PHY=m CONFIG_PTP_1588_CLOCK_PCH=m CONFIG_PTP_1588_CLOCK_KVM=m +CONFIG_PTP_1588_CLOCK_IDTCM=m # end of PTP clock support CONFIG_PINCTRL=y @@ -4463,6 +4433,7 @@ CONFIG_PINCTRL_GEMINILAKE=y CONFIG_PINCTRL_ICELAKE=y CONFIG_PINCTRL_LEWISBURG=y CONFIG_PINCTRL_SUNRISEPOINT=y +CONFIG_PINCTRL_TIGERLAKE=y CONFIG_PINCTRL_LOCHNAGAR=m CONFIG_PINCTRL_MADERA=m CONFIG_PINCTRL_CS47L15=y @@ -4470,6 +4441,7 @@ CONFIG_PINCTRL_CS47L35=y CONFIG_PINCTRL_CS47L85=y CONFIG_PINCTRL_CS47L90=y CONFIG_PINCTRL_CS47L92=y +CONFIG_PINCTRL_EQUILIBRIUM=m CONFIG_GPIOLIB=y CONFIG_GPIOLIB_FASTPATH_LIMIT=512 CONFIG_OF_GPIO=y @@ -4627,6 +4599,7 @@ CONFIG_W1_SLAVE_DS2413=m CONFIG_W1_SLAVE_DS2406=m CONFIG_W1_SLAVE_DS2423=m CONFIG_W1_SLAVE_DS2805=m +CONFIG_W1_SLAVE_DS2430=m CONFIG_W1_SLAVE_DS2431=m CONFIG_W1_SLAVE_DS2433=m # CONFIG_W1_SLAVE_DS2433_CRC is not set @@ -4644,6 +4617,7 @@ CONFIG_POWER_RESET_AS3722=y CONFIG_POWER_RESET_GPIO=y CONFIG_POWER_RESET_GPIO_RESTART=y CONFIG_POWER_RESET_LTC2952=y +CONFIG_POWER_RESET_MT6323=y CONFIG_POWER_RESET_RESTART=y CONFIG_POWER_RESET_SYSCON=y CONFIG_POWER_RESET_SYSCON_POWEROFF=y @@ -4785,6 +4759,9 @@ CONFIG_SENSORS_POWR1220=m CONFIG_SENSORS_LINEAGE=m CONFIG_SENSORS_LOCHNAGAR=m CONFIG_SENSORS_LTC2945=m +CONFIG_SENSORS_LTC2947=m +CONFIG_SENSORS_LTC2947_I2C=m +CONFIG_SENSORS_LTC2947_SPI=m CONFIG_SENSORS_LTC2990=m CONFIG_SENSORS_LTC4151=m CONFIG_SENSORS_LTC4215=m @@ -4837,6 +4814,7 @@ CONFIG_SENSORS_PCF8591=m CONFIG_PMBUS=m CONFIG_SENSORS_PMBUS=m CONFIG_SENSORS_ADM1275=m +CONFIG_SENSORS_BEL_PFE=m CONFIG_SENSORS_IBM_CFFPS=m CONFIG_SENSORS_INSPUR_IPSPS=m CONFIG_SENSORS_IR35221=m @@ -4890,6 +4868,7 @@ CONFIG_SENSORS_TMP103=m CONFIG_SENSORS_TMP108=m CONFIG_SENSORS_TMP401=m CONFIG_SENSORS_TMP421=m +CONFIG_SENSORS_TMP513=m CONFIG_SENSORS_VIA_CPUTEMP=m CONFIG_SENSORS_VIA686A=m CONFIG_SENSORS_VT1211=m @@ -5852,9 +5831,11 @@ CONFIG_VIDEO_THS8200=m # CONFIG_VIDEO_APTINA_PLL=m CONFIG_VIDEO_SMIAPP_PLL=m +CONFIG_VIDEO_HI556=m CONFIG_VIDEO_IMX214=m CONFIG_VIDEO_IMX258=m CONFIG_VIDEO_IMX274=m +CONFIG_VIDEO_IMX290=m CONFIG_VIDEO_IMX319=m CONFIG_VIDEO_IMX355=m CONFIG_VIDEO_OV2640=m @@ -6190,13 +6171,16 @@ CONFIG_DRM_DP_AUX_CHARDEV=y # CONFIG_DRM_DEBUG_SELFTEST is not set CONFIG_DRM_KMS_HELPER=m CONFIG_DRM_KMS_FB_HELPER=y +# CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS is not set CONFIG_DRM_FBDEV_EMULATION=y CONFIG_DRM_FBDEV_OVERALLOC=100 # CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set CONFIG_DRM_LOAD_EDID_FIRMWARE=y CONFIG_DRM_DP_CEC=y CONFIG_DRM_TTM=m +CONFIG_DRM_TTM_DMA_PAGE_POOL=y CONFIG_DRM_VRAM_HELPER=m +CONFIG_DRM_TTM_HELPER=m CONFIG_DRM_GEM_CMA_HELPER=y CONFIG_DRM_KMS_CMA_HELPER=y CONFIG_DRM_GEM_SHMEM_HELPER=y @@ -6216,6 +6200,7 @@ CONFIG_DRM_I2C_NXP_TDA998X=m # ARM devices # CONFIG_DRM_KOMEDA=m +CONFIG_DRM_KOMEDA_ERROR_PRINT=y # end of ARM devices CONFIG_DRM_RADEON=m @@ -6240,6 +6225,7 @@ CONFIG_DRM_AMD_DC_DCN1_0=y CONFIG_DRM_AMD_DC_DCN2_0=y CONFIG_DRM_AMD_DC_DCN2_1=y CONFIG_DRM_AMD_DC_DSC_SUPPORT=y +CONFIG_DRM_AMD_DC_HDCP=y # CONFIG_DEBUG_KERNEL_DC is not set # end of Display Engine Configuration @@ -6275,7 +6261,11 @@ CONFIG_DRM_I915_USERPTR=y # drm/i915 Profile Guided Optimisation # CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250 +CONFIG_DRM_I915_HEARTBEAT_INTERVAL=2500 +CONFIG_DRM_I915_PREEMPT_TIMEOUT=640 CONFIG_DRM_I915_SPIN_REQUEST=5 +CONFIG_DRM_I915_STOP_TIMEOUT=100 +CONFIG_DRM_I915_TIMESLICE_DURATION=1 # end of drm/i915 Profile Guided Optimisation CONFIG_DRM_VGEM=m @@ -6498,7 +6488,7 @@ CONFIG_BACKLIGHT_DA903X=m CONFIG_BACKLIGHT_DA9052=m CONFIG_BACKLIGHT_MAX8925=m CONFIG_BACKLIGHT_APPLE=m -CONFIG_BACKLIGHT_PM8941_WLED=m +CONFIG_BACKLIGHT_QCOM_WLED=m CONFIG_BACKLIGHT_SAHARA=m CONFIG_BACKLIGHT_WM831X=m CONFIG_BACKLIGHT_ADP5520=m @@ -6727,7 +6717,6 @@ CONFIG_SND_YMFPCI=m # CONFIG_SND_HDA=m CONFIG_SND_HDA_INTEL=m -# CONFIG_SND_HDA_INTEL_DETECT_DMIC is not set CONFIG_SND_HDA_HWDEP=y CONFIG_SND_HDA_RECONFIG=y CONFIG_SND_HDA_INPUT_BEEP=y @@ -6755,7 +6744,8 @@ CONFIG_SND_HDA_COMPONENT=y CONFIG_SND_HDA_I915=y CONFIG_SND_HDA_EXT_CORE=m CONFIG_SND_HDA_PREALLOC_SIZE=4096 -CONFIG_SND_INTEL_NHLT=m +CONFIG_SND_INTEL_NHLT=y +CONFIG_SND_INTEL_DSP_CONFIG=m CONFIG_SND_SPI=y CONFIG_SND_USB=y CONFIG_SND_USB_AUDIO=m @@ -6843,10 +6833,10 @@ CONFIG_SND_SOC_INTEL_SKL=m CONFIG_SND_SOC_INTEL_APL=m CONFIG_SND_SOC_INTEL_KBL=m CONFIG_SND_SOC_INTEL_GLK=m -# CONFIG_SND_SOC_INTEL_CNL is not set -# CONFIG_SND_SOC_INTEL_CFL is not set -# CONFIG_SND_SOC_INTEL_CML_H is not set -# CONFIG_SND_SOC_INTEL_CML_LP is not set +CONFIG_SND_SOC_INTEL_CNL=m +CONFIG_SND_SOC_INTEL_CFL=m +CONFIG_SND_SOC_INTEL_CML_H=m +CONFIG_SND_SOC_INTEL_CML_LP=m CONFIG_SND_SOC_INTEL_SKYLAKE_FAMILY=m CONFIG_SND_SOC_INTEL_SKYLAKE_SSP_CLK=m # CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC is not set @@ -6870,6 +6860,7 @@ CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH=m CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH=m CONFIG_SND_SOC_INTEL_DA7219_MAX98357A_GENERIC=m +CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_COMMON=m CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH=m CONFIG_SND_SOC_INTEL_BXT_RT298_MACH=m CONFIG_SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH=m @@ -6877,19 +6868,18 @@ CONFIG_SND_SOC_INTEL_KBL_RT5663_RT5514_MAX98927_MACH=m CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98357A_MACH=m CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98927_MACH=m CONFIG_SND_SOC_INTEL_KBL_RT5660_MACH=m +CONFIG_SND_SOC_INTEL_GLK_DA7219_MAX98357A_MACH=m CONFIG_SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH=m CONFIG_SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH=m CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH=m CONFIG_SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH=m +CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH=m CONFIG_SND_SOC_MTK_BTCVSD=m CONFIG_SND_SOC_SOF_TOPLEVEL=y CONFIG_SND_SOC_SOF_PCI=m CONFIG_SND_SOC_SOF_ACPI=m CONFIG_SND_SOC_SOF_OF=m -CONFIG_SND_SOC_SOF_OPTIONS=m -# CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT is not set -# CONFIG_SND_SOC_SOF_STRICT_ABI_CHECKS is not set -# CONFIG_SND_SOC_SOF_DEBUG is not set +# CONFIG_SND_SOC_SOF_DEVELOPER_SUPPORT is not set CONFIG_SND_SOC_SOF=m CONFIG_SND_SOC_SOF_PROBE_WORK_QUEUE=y CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y @@ -6898,8 +6888,6 @@ CONFIG_SND_SOC_SOF_INTEL_PCI=m CONFIG_SND_SOC_SOF_INTEL_HIFI_EP_IPC=m CONFIG_SND_SOC_SOF_INTEL_ATOM_HIFI_EP=m CONFIG_SND_SOC_SOF_INTEL_COMMON=m -# CONFIG_SND_SOC_SOF_BAYTRAIL_SUPPORT is not set -# CONFIG_SND_SOC_SOF_BROADWELL_SUPPORT is not set CONFIG_SND_SOC_SOF_MERRIFIELD_SUPPORT=y CONFIG_SND_SOC_SOF_MERRIFIELD=m CONFIG_SND_SOC_SOF_APOLLOLAKE_SUPPORT=y @@ -6920,10 +6908,13 @@ CONFIG_SND_SOC_SOF_TIGERLAKE_SUPPORT=y CONFIG_SND_SOC_SOF_TIGERLAKE=m CONFIG_SND_SOC_SOF_ELKHARTLAKE_SUPPORT=y CONFIG_SND_SOC_SOF_ELKHARTLAKE=m +CONFIG_SND_SOC_SOF_JASPERLAKE_SUPPORT=y +CONFIG_SND_SOC_SOF_JASPERLAKE=m CONFIG_SND_SOC_SOF_HDA_COMMON=m CONFIG_SND_SOC_SOF_HDA_LINK=y CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC=y # CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1 is not set +CONFIG_SND_SOC_SOF_HDA_COMMON_HDMI_CODEC=y CONFIG_SND_SOC_SOF_HDA_LINK_BASELINE=m CONFIG_SND_SOC_SOF_HDA=m CONFIG_SND_SOC_SOF_XTENSA=m @@ -6951,6 +6942,9 @@ CONFIG_SND_SOC_ADAU1761=m CONFIG_SND_SOC_ADAU1761_I2C=m CONFIG_SND_SOC_ADAU1761_SPI=m CONFIG_SND_SOC_ADAU7002=m +CONFIG_SND_SOC_ADAU7118=m +CONFIG_SND_SOC_ADAU7118_HW=m +CONFIG_SND_SOC_ADAU7118_I2C=m CONFIG_SND_SOC_AK4104=m CONFIG_SND_SOC_AK4118=m CONFIG_SND_SOC_AK4458=m @@ -7035,6 +7029,7 @@ CONFIG_SND_SOC_RL6231=m CONFIG_SND_SOC_RL6347A=m CONFIG_SND_SOC_RT286=m CONFIG_SND_SOC_RT298=m +CONFIG_SND_SOC_RT1011=m CONFIG_SND_SOC_RT5514=m CONFIG_SND_SOC_RT5514_SPI=m CONFIG_SND_SOC_RT5616=m @@ -7065,6 +7060,8 @@ CONFIG_SND_SOC_STA32X=m CONFIG_SND_SOC_STA350=m CONFIG_SND_SOC_STI_SAS=m CONFIG_SND_SOC_TAS2552=m +CONFIG_SND_SOC_TAS2562=m +CONFIG_SND_SOC_TAS2770=m CONFIG_SND_SOC_TAS5086=m CONFIG_SND_SOC_TAS571X=m CONFIG_SND_SOC_TAS5720=m @@ -7652,6 +7649,7 @@ CONFIG_TYPEC_WCOVE=m CONFIG_TYPEC_UCSI=m # CONFIG_UCSI_CCG is not set CONFIG_UCSI_ACPI=m +CONFIG_TYPEC_HD3SS3220=m CONFIG_TYPEC_TPS6598X=m # @@ -7694,6 +7692,7 @@ CONFIG_MMC_SDHCI_OF_AT91=m CONFIG_MMC_SDHCI_OF_DWCMSHC=m CONFIG_MMC_SDHCI_CADENCE=m CONFIG_MMC_SDHCI_F_SDH30=m +CONFIG_MMC_SDHCI_MILBEAUT=m CONFIG_MMC_WBSD=m CONFIG_MMC_ALCOR=m CONFIG_MMC_TIFM_SD=m @@ -7747,6 +7746,7 @@ CONFIG_LEDS_BCM6328=m CONFIG_LEDS_BCM6358=m CONFIG_LEDS_CPCAP=m # CONFIG_LEDS_CR0014114 is not set +CONFIG_LEDS_EL15203000=m CONFIG_LEDS_LM3530=m CONFIG_LEDS_LM3532=m CONFIG_LEDS_LM3533=m @@ -7843,7 +7843,6 @@ CONFIG_INFINIBAND_ADDR_TRANS=y CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS=y CONFIG_INFINIBAND_MTHCA=m CONFIG_INFINIBAND_MTHCA_DEBUG=y -CONFIG_INFINIBAND_CXGB3=m CONFIG_INFINIBAND_CXGB4=m CONFIG_INFINIBAND_I40IW=m CONFIG_MLX4_INFINIBAND=m @@ -8061,6 +8060,7 @@ CONFIG_DW_DMAC_PCI=y CONFIG_DW_EDMA=m CONFIG_DW_EDMA_PCIE=m CONFIG_HSU_DMA=y +CONFIG_SF_PDMA=m # # DMA Clients @@ -8281,8 +8281,6 @@ CONFIG_COMEDI_NI_LABPC_ISADMA=m CONFIG_COMEDI_NI_TIO=m CONFIG_COMEDI_NI_ROUTING=m CONFIG_FB_OLPC_DCON=m -CONFIG_FB_OLPC_DCON_1=y -CONFIG_FB_OLPC_DCON_1_5=y CONFIG_RTL8192U=m CONFIG_RTLLIB=m CONFIG_RTLLIB_CRYPTO_CCMP=m @@ -8466,7 +8464,6 @@ CONFIG_UWB_HWA=m CONFIG_UWB_WHCI=m CONFIG_UWB_I1480U=m CONFIG_EXFAT_FS=m -CONFIG_EXFAT_DONT_MOUNT_VFAT=y CONFIG_EXFAT_DISCARD=y # CONFIG_EXFAT_DELAYED_SYNC is not set # CONFIG_EXFAT_KERNEL_DEBUG is not set @@ -8474,6 +8471,9 @@ CONFIG_EXFAT_DISCARD=y CONFIG_EXFAT_DEFAULT_CODEPAGE=437 CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8" CONFIG_QLGE=m +CONFIG_NET_VENDOR_HP=y +CONFIG_HP100=m +CONFIG_WFX=m CONFIG_X86_PLATFORM_DEVICES=y CONFIG_ACER_WMI=m CONFIG_ACER_WIRELESS=m @@ -8561,6 +8561,7 @@ CONFIG_I2C_MULTI_INSTANTIATE=m CONFIG_INTEL_ATOMISP2_PM=m CONFIG_HUAWEI_WMI=m CONFIG_PCENGINES_APU2=m +CONFIG_SYSTEM76_ACPI=m CONFIG_PMC_ATOM=y CONFIG_MFD_CROS_EC=m CONFIG_CHROME_PLATFORMS=y @@ -8578,6 +8579,7 @@ CONFIG_CROS_EC_CHARDEV=m CONFIG_CROS_EC_LIGHTBAR=m CONFIG_CROS_EC_VBC=m CONFIG_CROS_EC_DEBUGFS=m +CONFIG_CROS_EC_SENSORHUB=m CONFIG_CROS_EC_SYSFS=m CONFIG_CROS_USBPD_LOGGER=m CONFIG_WILCO_EC=m @@ -8822,6 +8824,7 @@ CONFIG_AD_SIGMA_DELTA=m CONFIG_AD7124=m CONFIG_AD7266=m CONFIG_AD7291=m +CONFIG_AD7292=m CONFIG_AD7298=m CONFIG_AD7476=m CONFIG_AD7606=m @@ -9063,6 +9066,9 @@ CONFIG_ADIS16480=m CONFIG_BMI160=m CONFIG_BMI160_I2C=m CONFIG_BMI160_SPI=m +CONFIG_FXOS8700=m +CONFIG_FXOS8700_I2C=m +CONFIG_FXOS8700_SPI=m CONFIG_KMX61=m CONFIG_INV_MPU6050_IIO=m CONFIG_INV_MPU6050_I2C=m @@ -9081,6 +9087,7 @@ CONFIG_IIO_ADIS_LIB_BUFFER=y # CONFIG_ACPI_ALS=m CONFIG_ADJD_S311=m +CONFIG_ADUX1020=m CONFIG_AL3320A=m CONFIG_APDS9300=m CONFIG_APDS9960=m @@ -9123,6 +9130,7 @@ CONFIG_TSL4531=m CONFIG_US5182D=m CONFIG_VCNL4000=m CONFIG_VCNL4035=m +CONFIG_VEML6030=m CONFIG_VEML6070=m CONFIG_VL6180=m CONFIG_ZOPT2201=m @@ -9252,6 +9260,7 @@ CONFIG_AD2S1200=m # # Temperature sensors # +CONFIG_LTC2983=m CONFIG_MAXIM_THERMOCOUPLE=m CONFIG_HID_SENSOR_TEMP=m CONFIG_MLX90614=m @@ -9414,6 +9423,7 @@ CONFIG_FSI=m CONFIG_FSI_NEW_DEV_NODE=y CONFIG_FSI_MASTER_GPIO=m CONFIG_FSI_MASTER_HUB=m +CONFIG_FSI_MASTER_ASPEED=m CONFIG_FSI_SCOM=m CONFIG_FSI_SBEFIFO=m CONFIG_FSI_OCC=m @@ -9804,6 +9814,7 @@ CONFIG_DLM=m # CONFIG_DLM_DEBUG is not set CONFIG_UNICODE=y # CONFIG_UNICODE_NORMALIZATION_SELFTEST is not set +CONFIG_IO_WQ=y # end of File systems # @@ -9903,8 +9914,8 @@ CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_ALGAPI2=y CONFIG_CRYPTO_AEAD=y CONFIG_CRYPTO_AEAD2=y -CONFIG_CRYPTO_BLKCIPHER=y -CONFIG_CRYPTO_BLKCIPHER2=y +CONFIG_CRYPTO_SKCIPHER=y +CONFIG_CRYPTO_SKCIPHER2=y CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_HASH2=y CONFIG_CRYPTO_RNG=y @@ -9938,6 +9949,7 @@ CONFIG_CRYPTO_DH=y CONFIG_CRYPTO_ECC=m CONFIG_CRYPTO_ECDH=m CONFIG_CRYPTO_ECRDSA=m +CONFIG_CRYPTO_CURVE25519=m # # Authenticated Encryption with Associated Data @@ -9982,6 +9994,8 @@ CONFIG_CRYPTO_CRC32C_INTEL=m CONFIG_CRYPTO_CRC32=m CONFIG_CRYPTO_CRC32_PCLMUL=m CONFIG_CRYPTO_XXHASH=m +CONFIG_CRYPTO_BLAKE2B=m +CONFIG_CRYPTO_BLAKE2S=m CONFIG_CRYPTO_CRCT10DIF=y CONFIG_CRYPTO_GHASH=y CONFIG_CRYPTO_POLY1305=m @@ -9993,7 +10007,6 @@ CONFIG_CRYPTO_RMD160=m CONFIG_CRYPTO_RMD256=m CONFIG_CRYPTO_RMD320=m CONFIG_CRYPTO_SHA1=y -CONFIG_CRYPTO_LIB_SHA256=y CONFIG_CRYPTO_SHA256=y CONFIG_CRYPTO_SHA512=y CONFIG_CRYPTO_SHA3=m @@ -10005,12 +10018,10 @@ CONFIG_CRYPTO_WP512=m # # Ciphers # -CONFIG_CRYPTO_LIB_AES=y CONFIG_CRYPTO_AES=y CONFIG_CRYPTO_AES_TI=m CONFIG_CRYPTO_AES_NI_INTEL=m CONFIG_CRYPTO_ANUBIS=m -CONFIG_CRYPTO_LIB_ARC4=m CONFIG_CRYPTO_ARC4=m CONFIG_CRYPTO_BLOWFISH=m CONFIG_CRYPTO_BLOWFISH_COMMON=m @@ -10018,7 +10029,6 @@ CONFIG_CRYPTO_CAMELLIA=m CONFIG_CRYPTO_CAST_COMMON=m CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST6=m -CONFIG_CRYPTO_LIB_DES=m CONFIG_CRYPTO_DES=m CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_KHAZAD=m @@ -10060,6 +10070,24 @@ CONFIG_CRYPTO_USER_API_RNG=m CONFIG_CRYPTO_USER_API_AEAD=m # CONFIG_CRYPTO_STATS is not set CONFIG_CRYPTO_HASH_INFO=y + +# +# Crypto library routines +# +CONFIG_CRYPTO_LIB_AES=y +CONFIG_CRYPTO_LIB_ARC4=m +CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=m +CONFIG_CRYPTO_LIB_BLAKE2S=m +CONFIG_CRYPTO_LIB_CHACHA_GENERIC=m +CONFIG_CRYPTO_LIB_CHACHA=m +CONFIG_CRYPTO_LIB_CURVE25519_GENERIC=m +CONFIG_CRYPTO_LIB_CURVE25519=m +CONFIG_CRYPTO_LIB_DES=m +CONFIG_CRYPTO_LIB_POLY1305_RSIZE=1 +CONFIG_CRYPTO_LIB_POLY1305_GENERIC=m +CONFIG_CRYPTO_LIB_POLY1305=m +CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m +CONFIG_CRYPTO_LIB_SHA256=y CONFIG_CRYPTO_HW=y CONFIG_CRYPTO_DEV_PADLOCK=m CONFIG_CRYPTO_DEV_PADLOCK_AES=m @@ -10084,10 +10112,11 @@ 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_CHELSIO_TLS=m CONFIG_CRYPTO_DEV_VIRTIO=m CONFIG_CRYPTO_DEV_SAFEXCEL=m CONFIG_CRYPTO_DEV_CCREE=m +CONFIG_CRYPTO_DEV_AMLOGIC_GXL=m +CONFIG_CRYPTO_DEV_AMLOGIC_GXL_DEBUG=y CONFIG_ASYMMETRIC_KEY_TYPE=y CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y CONFIG_ASYMMETRIC_TPM_KEY_SUBTYPE=m @@ -10225,8 +10254,7 @@ CONFIG_FONT_8x16=y # CONFIG_FONT_10x18 is not set # CONFIG_FONT_SUN8x16 is not set # CONFIG_FONT_SUN12x22 is not set -# CONFIG_FONT_TER16x32 is not set -CONFIG_FONT_AUTOSELECT=y +CONFIG_FONT_TER16x32=y CONFIG_SG_POOL=y CONFIG_ARCH_STACKWALK=y CONFIG_SBITMAP=y @@ -10249,6 +10277,8 @@ CONFIG_CONSOLE_LOGLEVEL_QUIET=1 CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_BOOT_PRINTK_DELAY is not set CONFIG_DYNAMIC_DEBUG=y +CONFIG_SYMBOLIC_ERRNAME=y +CONFIG_DEBUG_BUGVERBOSE=y # end of printk and dmesg options # @@ -10259,7 +10289,6 @@ CONFIG_DYNAMIC_DEBUG=y CONFIG_FRAME_WARN=1024 CONFIG_STRIP_ASM_SYMS=y # CONFIG_READABLE_ASM is not set -CONFIG_DEBUG_FS=y # CONFIG_HEADERS_INSTALL is not set CONFIG_OPTIMIZE_INLINING=y # CONFIG_DEBUG_SECTION_MISMATCH is not set @@ -10268,9 +10297,20 @@ CONFIG_FRAME_POINTER=y # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set # end of Compile-time checks and compiler options +# +# Generic Kernel Debugging Instruments +# CONFIG_MAGIC_SYSRQ=y CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x0 CONFIG_MAGIC_SYSRQ_SERIAL=y +CONFIG_DEBUG_FS=y +CONFIG_HAVE_ARCH_KGDB=y +# CONFIG_KGDB is not set +CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y +# CONFIG_UBSAN is not set +CONFIG_UBSAN_ALIGNMENT=y +# end of Generic Kernel Debugging Instruments + CONFIG_DEBUG_KERNEL=y CONFIG_DEBUG_MISC=y @@ -10280,7 +10320,9 @@ CONFIG_DEBUG_MISC=y # CONFIG_PAGE_EXTENSION is not set # CONFIG_DEBUG_PAGEALLOC is not set # CONFIG_PAGE_OWNER is not set -# CONFIG_PAGE_POISONING is not set +CONFIG_PAGE_POISONING=y +CONFIG_PAGE_POISONING_NO_SANITY=y +CONFIG_PAGE_POISONING_ZERO=y # CONFIG_DEBUG_PAGE_REF is not set # CONFIG_DEBUG_RODATA_TEST is not set # CONFIG_DEBUG_OBJECTS is not set @@ -10289,6 +10331,7 @@ CONFIG_DEBUG_MISC=y CONFIG_HAVE_DEBUG_KMEMLEAK=y # CONFIG_DEBUG_KMEMLEAK is not set # CONFIG_DEBUG_STACK_USAGE is not set +CONFIG_SCHED_STACK_END_CHECK=y # CONFIG_DEBUG_VM is not set CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y # CONFIG_DEBUG_VIRTUAL is not set @@ -10301,12 +10344,14 @@ CONFIG_CC_HAS_KASAN_GENERIC=y CONFIG_KASAN_STACK=1 # end of Memory Debugging -CONFIG_CC_HAS_SANCOV_TRACE_PC=y # CONFIG_DEBUG_SHIRQ is not set # -# Debug Lockups and Hangs +# Debug Oops, Lockups and Hangs # +# CONFIG_PANIC_ON_OOPS is not set +CONFIG_PANIC_ON_OOPS_VALUE=0 +CONFIG_PANIC_TIMEOUT=0 CONFIG_LOCKUP_DETECTOR=y CONFIG_SOFTLOCKUP_DETECTOR=y # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set @@ -10320,15 +10365,16 @@ CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 # CONFIG_WQ_WATCHDOG is not set -# end of Debug Lockups and Hangs +# end of Debug Oops, Lockups and Hangs -# CONFIG_PANIC_ON_OOPS is not set -CONFIG_PANIC_ON_OOPS_VALUE=0 -CONFIG_PANIC_TIMEOUT=0 +# +# Scheduler Debugging +# CONFIG_SCHED_DEBUG=y CONFIG_SCHED_INFO=y CONFIG_SCHEDSTATS=y -CONFIG_SCHED_STACK_END_CHECK=y +# end of Scheduler Debugging + # CONFIG_DEBUG_TIMEKEEPING is not set CONFIG_DEBUG_PREEMPT=y @@ -10353,11 +10399,17 @@ CONFIG_LOCK_DEBUGGING_SUPPORT=y CONFIG_STACKTRACE=y # CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set # CONFIG_DEBUG_KOBJECT is not set -CONFIG_DEBUG_BUGVERBOSE=y + +# +# Debug kernel data structures +# # CONFIG_DEBUG_LIST is not set # CONFIG_DEBUG_PLIST is not set # CONFIG_DEBUG_SG is not set # CONFIG_DEBUG_NOTIFIERS is not set +# CONFIG_BUG_ON_DATA_CORRUPTION is not set +# end of Debug kernel data structures + # CONFIG_DEBUG_CREDENTIALS is not set # @@ -10373,9 +10425,6 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=60 # CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set # CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set -# CONFIG_NOTIFIER_ERROR_INJECTION is not set -CONFIG_FUNCTION_ERROR_INJECTION=y -# CONFIG_FAULT_INJECTION is not set CONFIG_LATENCYTOP=y CONFIG_USER_STACKTRACE_SUPPORT=y CONFIG_NOP_TRACER=y @@ -10383,6 +10432,7 @@ CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y +CONFIG_HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_HAVE_SYSCALL_TRACEPOINTS=y CONFIG_HAVE_FENTRY=y @@ -10419,13 +10469,15 @@ CONFIG_DYNAMIC_EVENTS=y CONFIG_PROBE_EVENTS=y CONFIG_DYNAMIC_FTRACE=y CONFIG_DYNAMIC_FTRACE_WITH_REGS=y +CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y CONFIG_FUNCTION_PROFILER=y -# CONFIG_BPF_KPROBE_OVERRIDE is not set +CONFIG_BPF_KPROBE_OVERRIDE=y CONFIG_FTRACE_MCOUNT_RECORD=y # CONFIG_FTRACE_STARTUP_TEST is not set CONFIG_MMIOTRACE=y CONFIG_TRACING_MAP=y CONFIG_HIST_TRIGGERS=y +# CONFIG_TRACE_EVENT_INJECT is not set # CONFIG_MMIOTRACE_TEST is not set # CONFIG_TRACEPOINT_BENCHMARK is not set # CONFIG_RING_BUFFER_BENCHMARK is not set @@ -10433,6 +10485,49 @@ CONFIG_HIST_TRIGGERS=y # CONFIG_PREEMPTIRQ_DELAY_TEST is not set # CONFIG_TRACE_EVAL_MAP_FILE is not set # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set +# CONFIG_SAMPLES is not set +CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y +CONFIG_STRICT_DEVMEM=y +CONFIG_IO_STRICT_DEVMEM=y + +# +# x86 Debugging +# +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +# CONFIG_X86_VERBOSE_BOOTUP is not set +CONFIG_EARLY_PRINTK=y +# CONFIG_EARLY_PRINTK_DBGP is not set +# CONFIG_EARLY_PRINTK_USB_XDBC is not set +CONFIG_X86_PTDUMP_CORE=y +# CONFIG_X86_PTDUMP is not set +# CONFIG_EFI_PGT_DUMP is not set +CONFIG_DEBUG_WX=y +CONFIG_DOUBLEFAULT=y +# CONFIG_DEBUG_TLBFLUSH is not set +CONFIG_HAVE_MMIOTRACE_SUPPORT=y +# CONFIG_X86_DECODER_SELFTEST is not set +CONFIG_IO_DELAY_0X80=y +# CONFIG_IO_DELAY_0XED is not set +# CONFIG_IO_DELAY_UDELAY is not set +# CONFIG_IO_DELAY_NONE is not set +CONFIG_DEBUG_BOOT_PARAMS=y +# CONFIG_CPA_DEBUG is not set +# CONFIG_DEBUG_ENTRY is not set +# CONFIG_DEBUG_NMI_SELFTEST is not set +# CONFIG_X86_DEBUG_FPU is not set +# CONFIG_PUNIT_ATOM_DEBUG is not set +CONFIG_UNWINDER_FRAME_POINTER=y +# CONFIG_UNWINDER_GUESS is not set +# end of x86 Debugging + +# +# Kernel Testing and Coverage +# +# CONFIG_KUNIT is not set +# CONFIG_NOTIFIER_ERROR_INJECTION is not set +CONFIG_FUNCTION_ERROR_INJECTION=y +# CONFIG_FAULT_INJECTION is not set +CONFIG_CC_HAS_SANCOV_TRACE_PC=y CONFIG_RUNTIME_TESTING_MENU=y CONFIG_LKDTM=m # CONFIG_TEST_LIST_SORT is not set @@ -10475,39 +10570,6 @@ CONFIG_LKDTM=m # CONFIG_TEST_STACKINIT is not set # CONFIG_TEST_MEMINIT is not set # CONFIG_MEMTEST is not set -# CONFIG_BUG_ON_DATA_CORRUPTION is not set -# CONFIG_SAMPLES is not set -CONFIG_HAVE_ARCH_KGDB=y -# CONFIG_KGDB is not set -CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y -# CONFIG_UBSAN is not set -CONFIG_UBSAN_ALIGNMENT=y -CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y -CONFIG_STRICT_DEVMEM=y -CONFIG_IO_STRICT_DEVMEM=y -CONFIG_TRACE_IRQFLAGS_SUPPORT=y -# CONFIG_X86_VERBOSE_BOOTUP is not set -CONFIG_EARLY_PRINTK=y -# CONFIG_EARLY_PRINTK_DBGP is not set -# CONFIG_EARLY_PRINTK_USB_XDBC is not set -CONFIG_X86_PTDUMP_CORE=y -# CONFIG_X86_PTDUMP is not set -# CONFIG_EFI_PGT_DUMP is not set -CONFIG_DEBUG_WX=y -CONFIG_DOUBLEFAULT=y -# CONFIG_DEBUG_TLBFLUSH is not set -CONFIG_HAVE_MMIOTRACE_SUPPORT=y -# CONFIG_X86_DECODER_SELFTEST is not set -CONFIG_IO_DELAY_0X80=y -# CONFIG_IO_DELAY_0XED is not set -# CONFIG_IO_DELAY_UDELAY is not set -# CONFIG_IO_DELAY_NONE is not set -CONFIG_DEBUG_BOOT_PARAMS=y -# CONFIG_CPA_DEBUG is not set -# CONFIG_DEBUG_ENTRY is not set -# CONFIG_DEBUG_NMI_SELFTEST is not set -# CONFIG_X86_DEBUG_FPU is not set -# CONFIG_PUNIT_ATOM_DEBUG is not set -CONFIG_UNWINDER_FRAME_POINTER=y -# CONFIG_UNWINDER_GUESS is not set +# CONFIG_HYPERV_TESTING is not set +# end of Kernel Testing and Coverage # end of Kernel hacking diff --git a/libre/linux-libre/config.x86_64 b/libre/linux-libre/config.x86_64 index 6640293b5..b959ed3c1 100644 --- a/libre/linux-libre/config.x86_64 +++ b/libre/linux-libre/config.x86_64 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 5.5.1-gnu Kernel Configuration +# Linux/x86 5.5.7-gnu Kernel Configuration # # @@ -6777,7 +6777,7 @@ CONFIG_SND_SOC_INTEL_HASWELL=m CONFIG_SND_SST_ATOM_HIFI2_PLATFORM=m CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI=m CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_ACPI=m -# CONFIG_SND_SOC_INTEL_SKYLAKE is not set +CONFIG_SND_SOC_INTEL_SKYLAKE=m CONFIG_SND_SOC_INTEL_SKL=m CONFIG_SND_SOC_INTEL_APL=m CONFIG_SND_SOC_INTEL_KBL=m @@ -8611,7 +8611,7 @@ CONFIG_AMD_IOMMU_V2=y CONFIG_DMAR_TABLE=y CONFIG_INTEL_IOMMU=y CONFIG_INTEL_IOMMU_SVM=y -CONFIG_INTEL_IOMMU_DEFAULT_ON=y +# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set CONFIG_INTEL_IOMMU_FLOPPY_WA=y CONFIG_IRQ_REMAP=y CONFIG_HYPERV_IOMMU=y @@ -10268,8 +10268,7 @@ CONFIG_FONT_8x16=y # CONFIG_FONT_10x18 is not set # CONFIG_FONT_SUN8x16 is not set # CONFIG_FONT_SUN12x22 is not set -# CONFIG_FONT_TER16x32 is not set -CONFIG_FONT_AUTOSELECT=y +CONFIG_FONT_TER16x32=y CONFIG_SG_POOL=y CONFIG_ARCH_HAS_PMEM_API=y CONFIG_MEMREGION=y @@ -10339,7 +10338,9 @@ CONFIG_DEBUG_MISC=y # CONFIG_PAGE_EXTENSION is not set # CONFIG_DEBUG_PAGEALLOC is not set # CONFIG_PAGE_OWNER is not set -# CONFIG_PAGE_POISONING is not set +CONFIG_PAGE_POISONING=y +CONFIG_PAGE_POISONING_NO_SANITY=y +CONFIG_PAGE_POISONING_ZERO=y # CONFIG_DEBUG_PAGE_REF is not set # CONFIG_DEBUG_RODATA_TEST is not set # CONFIG_DEBUG_OBJECTS is not set diff --git a/libre/linux-libre/linux-armv7h.preset b/libre/linux-libre/linux-armv7h.preset index ca3832faa..3cec18ca9 100644 --- a/libre/linux-libre/linux-armv7h.preset +++ b/libre/linux-libre/linux-armv7h.preset @@ -3,8 +3,12 @@ ALL_config="/etc/mkinitcpio.conf" ALL_kver="%KERNVER%" -PRESETS=('default') +PRESETS=('default' 'fallback') #default_config="/etc/mkinitcpio.conf" default_image="/boot/initramfs-%PKGBASE%.img" #default_options="" + +#fallback_config="/etc/mkinitcpio.conf" +fallback_image="/boot/initramfs-%PKGBASE%-fallback.img" +fallback_options="-S autodetect" |