summaryrefslogtreecommitdiff
path: root/libre/linux-libre-pae
diff options
context:
space:
mode:
authorDavid P <megver83@parabola.nu>2020-03-05 22:40:15 -0300
committerDavid P <megver83@parabola.nu>2020-03-05 22:40:15 -0300
commit286477559a5d2fb9ca8225745079cd9777927493 (patch)
treefe8f898a44f8ace8e9d6af3519b47c61cf1328fe /libre/linux-libre-pae
parent8b34f5ca49bb3cd1ec06408c7cfbc92d4a928e7e (diff)
downloadabslibre-286477559a5d2fb9ca8225745079cd9777927493.tar.gz
abslibre-286477559a5d2fb9ca8225745079cd9777927493.tar.bz2
abslibre-286477559a5d2fb9ca8225745079cd9777927493.zip
updpkg: libre/linux-libre-pae 5.5.7-1
Signed-off-by: David P <megver83@parabola.nu>
Diffstat (limited to 'libre/linux-libre-pae')
-rw-r--r--libre/linux-libre-pae/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch4
-rw-r--r--libre/linux-libre-pae/0002-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch4
-rw-r--r--libre/linux-libre-pae/0003-iwlwifi-mvm-Do-not-require-PHY_SKU-NVM-section-for-3.patch4
-rw-r--r--libre/linux-libre-pae/0004-drm-Remove-PageReserved-manipulation-from-drm_pci_al.patch (renamed from libre/linux-libre-pae/0005-drm-Remove-PageReserved-manipulation-from-drm_pci_al.patch)4
-rw-r--r--libre/linux-libre-pae/0004-drm-i915-Wean-off-drm_pci_alloc-drm_pci_free.patch260
-rw-r--r--libre/linux-libre-pae/0005-drm-i915-Serialise-i915_active_acquire-with-__active.patch (renamed from libre/linux-libre-pae/0007-drm-i915-Serialise-i915_active_acquire-with-__active.patch)4
-rw-r--r--libre/linux-libre-pae/0006-drm-i915-execlists-Always-force-a-context-reload-whe.patch145
-rw-r--r--libre/linux-libre-pae/0006-drm-i915-gem-Take-runtime-pm-wakeref-prior-to-unbind.patch (renamed from libre/linux-libre-pae/0008-drm-i915-gem-Take-runtime-pm-wakeref-prior-to-unbind.patch)4
-rw-r--r--libre/linux-libre-pae/0007-drm-i915-gem-Avoid-parking-the-vma-as-we-unbind.patch (renamed from libre/linux-libre-pae/0009-drm-i915-gem-Avoid-parking-the-vma-as-we-unbind.patch)4
-rw-r--r--libre/linux-libre-pae/0008-drm-i915-gem-Try-to-flush-pending-unbind-events.patch (renamed from libre/linux-libre-pae/0010-drm-i915-gem-Try-to-flush-pending-unbind-events.patch)4
-rw-r--r--libre/linux-libre-pae/0009-drm-i915-gem-Reinitialise-the-local-list-before-repe.patch (renamed from libre/linux-libre-pae/0011-drm-i915-gem-Reinitialise-the-local-list-before-repe.patch)4
-rw-r--r--libre/linux-libre-pae/0010-drm-i915-Add-a-simple-is-bound-check-before-unbindin.patch (renamed from libre/linux-libre-pae/0012-drm-i915-Add-a-simple-is-bound-check-before-unbindin.patch)4
-rw-r--r--libre/linux-libre-pae/0011-drm-i915-Introduce-a-vma.kref.patch (renamed from libre/linux-libre-pae/0013-drm-i915-Introduce-a-vma.kref.patch)4
-rw-r--r--libre/linux-libre-pae/PKGBUILD51
14 files changed, 46 insertions, 454 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 0593d2420..474946443 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 5bb4af349a4a3f6393d5b491d8528d60088ef3c0 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 01/13] 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.
diff --git a/libre/linux-libre-pae/0002-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch b/libre/linux-libre-pae/0002-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch
index 348c6c3a1..6eead55b5 100644
--- a/libre/linux-libre-pae/0002-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch
+++ b/libre/linux-libre-pae/0002-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch
@@ -1,7 +1,7 @@
-From bc21f2c8df72a57532eb295f77763154263b16b6 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 02/13] 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,
diff --git a/libre/linux-libre-pae/0003-iwlwifi-mvm-Do-not-require-PHY_SKU-NVM-section-for-3.patch b/libre/linux-libre-pae/0003-iwlwifi-mvm-Do-not-require-PHY_SKU-NVM-section-for-3.patch
index 5c309de77..5af211fc2 100644
--- a/libre/linux-libre-pae/0003-iwlwifi-mvm-Do-not-require-PHY_SKU-NVM-section-for-3.patch
+++ b/libre/linux-libre-pae/0003-iwlwifi-mvm-Do-not-require-PHY_SKU-NVM-section-for-3.patch
@@ -1,7 +1,7 @@
-From d4f3675632b7c55981b2a062e05d3efcaa1e4c55 Mon Sep 17 00:00:00 2001
+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/13] iwlwifi: mvm: Do not require PHY_SKU NVM section for
+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
diff --git a/libre/linux-libre-pae/0005-drm-Remove-PageReserved-manipulation-from-drm_pci_al.patch b/libre/linux-libre-pae/0004-drm-Remove-PageReserved-manipulation-from-drm_pci_al.patch
index 173559c8c..99b3142b0 100644
--- a/libre/linux-libre-pae/0005-drm-Remove-PageReserved-manipulation-from-drm_pci_al.patch
+++ b/libre/linux-libre-pae/0004-drm-Remove-PageReserved-manipulation-from-drm_pci_al.patch
@@ -1,7 +1,7 @@
-From 4c2060e15fe37c5fa9d62bc6cc59e29fd157c0c3 Mon Sep 17 00:00:00 2001
+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 05/13] drm: Remove PageReserved manipulation from
+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
diff --git a/libre/linux-libre-pae/0004-drm-i915-Wean-off-drm_pci_alloc-drm_pci_free.patch b/libre/linux-libre-pae/0004-drm-i915-Wean-off-drm_pci_alloc-drm_pci_free.patch
deleted file mode 100644
index b4fe2c99b..000000000
--- a/libre/linux-libre-pae/0004-drm-i915-Wean-off-drm_pci_alloc-drm_pci_free.patch
+++ /dev/null
@@ -1,260 +0,0 @@
-From 9765a866d7439523fdf06ea780498041505e5b32 Mon Sep 17 00:00:00 2001
-From: Chris Wilson <chris@chris-wilson.co.uk>
-Date: Sun, 2 Feb 2020 15:39:34 +0000
-Subject: [PATCH 04/13] drm/i915: Wean off drm_pci_alloc/drm_pci_free
-
-drm_pci_alloc and drm_pci_free are just very thin wrappers around
-dma_alloc_coherent, with a note that we should be removing them.
-Furthermore 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.
-
-drm_pci_alloc has been declared broken since it mixes GFP_COMP and
-SetPageReserved. Avoid this conflict by weaning ourselves off using the
-abstraction and using the dma functions directly.
-
-Reported-by: Taketo Kabe
-Closes: 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: Daniel Vetter <daniel.vetter@ffwll.ch>
-Link: https://patchwork.freedesktop.org/patch/msgid/20200202153934.3899472-1-chris@chris-wilson.co.uk
----
- drivers/gpu/drm/i915/display/intel_display.c | 2 +-
- .../gpu/drm/i915/gem/i915_gem_object_types.h | 3 -
- drivers/gpu/drm/i915/gem/i915_gem_phys.c | 98 ++++++++++---------
- drivers/gpu/drm/i915/i915_gem.c | 8 +-
- 4 files changed, 55 insertions(+), 56 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
-index 301897791627..b670239a293b 100644
---- a/drivers/gpu/drm/i915/display/intel_display.c
-+++ b/drivers/gpu/drm/i915/display/intel_display.c
-@@ -10731,7 +10731,7 @@ static u32 intel_cursor_base(const struct intel_plane_state *plane_state)
- u32 base;
-
- if (INTEL_INFO(dev_priv)->display.cursor_needs_physical)
-- base = obj->phys_handle->busaddr;
-+ base = sg_dma_address(obj->mm.pages->sgl);
- else
- base = intel_plane_ggtt_offset(plane_state);
-
-diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
-index e3f3944fbd90..1078a76d6d84 100644
---- a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
-+++ b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
-@@ -260,9 +260,6 @@ struct drm_i915_gem_object {
-
- void *gvt_info;
- };
--
-- /** for phys allocated objects */
-- struct drm_dma_handle *phys_handle;
- };
-
- static inline struct drm_i915_gem_object *
-diff --git a/drivers/gpu/drm/i915/gem/i915_gem_phys.c b/drivers/gpu/drm/i915/gem/i915_gem_phys.c
-index 8043ff63d73f..5e2e0109c9ba 100644
---- a/drivers/gpu/drm/i915/gem/i915_gem_phys.c
-+++ b/drivers/gpu/drm/i915/gem/i915_gem_phys.c
-@@ -22,88 +22,87 @@
- static int i915_gem_object_get_pages_phys(struct drm_i915_gem_object *obj)
- {
- struct address_space *mapping = obj->base.filp->f_mapping;
-- struct drm_dma_handle *phys;
-- struct sg_table *st;
- struct scatterlist *sg;
-- char *vaddr;
-+ struct sg_table *st;
-+ dma_addr_t dma;
-+ void *vaddr;
-+ void *dst;
- int i;
-- int err;
-
- if (WARN_ON(i915_gem_object_needs_bit17_swizzle(obj)))
- return -EINVAL;
-
-- /* Always aligning to the object size, allows a single allocation
-+ /*
-+ * Always aligning to the object size, allows a single allocation
- * to handle all possible callers, and given typical object sizes,
- * the alignment of the buddy allocation will naturally match.
- */
-- phys = drm_pci_alloc(obj->base.dev,
-- roundup_pow_of_two(obj->base.size),
-- roundup_pow_of_two(obj->base.size));
-- if (!phys)
-+ vaddr = dma_alloc_coherent(&obj->base.dev->pdev->dev,
-+ roundup_pow_of_two(obj->base.size),
-+ &dma, GFP_KERNEL);
-+ if (!vaddr)
- return -ENOMEM;
-
-- vaddr = phys->vaddr;
-+ st = kmalloc(sizeof(*st), GFP_KERNEL);
-+ if (!st)
-+ goto err_pci;
-+
-+ if (sg_alloc_table(st, 1, GFP_KERNEL))
-+ goto err_st;
-+
-+ sg = st->sgl;
-+ sg->offset = 0;
-+ sg->length = obj->base.size;
-+
-+ sg_assign_page(sg, (struct page *)vaddr);
-+ sg_dma_address(sg) = dma;
-+ sg_dma_len(sg) = obj->base.size;
-+
-+ dst = vaddr;
- for (i = 0; i < obj->base.size / PAGE_SIZE; i++) {
- struct page *page;
-- char *src;
-+ void *src;
-
- page = shmem_read_mapping_page(mapping, i);
-- if (IS_ERR(page)) {
-- err = PTR_ERR(page);
-- goto err_phys;
-- }
-+ if (IS_ERR(page))
-+ goto err_st;
-
- src = kmap_atomic(page);
-- memcpy(vaddr, src, PAGE_SIZE);
-- drm_clflush_virt_range(vaddr, PAGE_SIZE);
-+ memcpy(dst, src, PAGE_SIZE);
-+ drm_clflush_virt_range(dst, PAGE_SIZE);
- kunmap_atomic(src);
-
- put_page(page);
-- vaddr += PAGE_SIZE;
-+ dst += PAGE_SIZE;
- }
-
- intel_gt_chipset_flush(&to_i915(obj->base.dev)->gt);
-
-- st = kmalloc(sizeof(*st), GFP_KERNEL);
-- if (!st) {
-- err = -ENOMEM;
-- goto err_phys;
-- }
--
-- if (sg_alloc_table(st, 1, GFP_KERNEL)) {
-- kfree(st);
-- err = -ENOMEM;
-- goto err_phys;
-- }
--
-- sg = st->sgl;
-- sg->offset = 0;
-- sg->length = obj->base.size;
--
-- sg_dma_address(sg) = phys->busaddr;
-- sg_dma_len(sg) = obj->base.size;
--
-- obj->phys_handle = phys;
--
- __i915_gem_object_set_pages(obj, st, sg->length);
-
- return 0;
-
--err_phys:
-- drm_pci_free(obj->base.dev, phys);
--
-- return err;
-+err_st:
-+ kfree(st);
-+err_pci:
-+ dma_free_coherent(&obj->base.dev->pdev->dev,
-+ roundup_pow_of_two(obj->base.size),
-+ vaddr, dma);
-+ return -ENOMEM;
- }
-
- static void
- i915_gem_object_put_pages_phys(struct drm_i915_gem_object *obj,
- struct sg_table *pages)
- {
-+ dma_addr_t dma = sg_dma_address(pages->sgl);
-+ void *vaddr = sg_page(pages->sgl);
-+
- __i915_gem_object_release_shmem(obj, pages, false);
-
- if (obj->mm.dirty) {
- struct address_space *mapping = obj->base.filp->f_mapping;
-- char *vaddr = obj->phys_handle->vaddr;
-+ void *src = vaddr;
- int i;
-
- for (i = 0; i < obj->base.size / PAGE_SIZE; i++) {
-@@ -115,15 +114,16 @@ i915_gem_object_put_pages_phys(struct drm_i915_gem_object *obj,
- continue;
-
- dst = kmap_atomic(page);
-- drm_clflush_virt_range(vaddr, PAGE_SIZE);
-- memcpy(dst, vaddr, PAGE_SIZE);
-+ drm_clflush_virt_range(src, PAGE_SIZE);
-+ memcpy(dst, src, PAGE_SIZE);
- kunmap_atomic(dst);
-
- set_page_dirty(page);
- if (obj->mm.madv == I915_MADV_WILLNEED)
- mark_page_accessed(page);
- put_page(page);
-- vaddr += PAGE_SIZE;
-+
-+ src += PAGE_SIZE;
- }
- obj->mm.dirty = false;
- }
-@@ -131,7 +131,9 @@ i915_gem_object_put_pages_phys(struct drm_i915_gem_object *obj,
- sg_free_table(pages);
- kfree(pages);
-
-- drm_pci_free(obj->base.dev, obj->phys_handle);
-+ dma_free_coherent(&obj->base.dev->pdev->dev,
-+ roundup_pow_of_two(obj->base.size),
-+ vaddr, dma);
- }
-
- static void phys_release(struct drm_i915_gem_object *obj)
-diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
-index 905890e3ac24..3f07948ea4da 100644
---- a/drivers/gpu/drm/i915/i915_gem.c
-+++ b/drivers/gpu/drm/i915/i915_gem.c
-@@ -154,7 +154,7 @@ i915_gem_phys_pwrite(struct drm_i915_gem_object *obj,
- struct drm_i915_gem_pwrite *args,
- struct drm_file *file)
- {
-- void *vaddr = obj->phys_handle->vaddr + args->offset;
-+ void *vaddr = sg_page(obj->mm.pages->sgl) + args->offset;
- char __user *user_data = u64_to_user_ptr(args->data_ptr);
-
- /*
-@@ -800,10 +800,10 @@ i915_gem_pwrite_ioctl(struct drm_device *dev, void *data,
- ret = i915_gem_gtt_pwrite_fast(obj, args);
-
- if (ret == -EFAULT || ret == -ENOSPC) {
-- if (obj->phys_handle)
-- ret = i915_gem_phys_pwrite(obj, args, file);
-- else
-+ if (i915_gem_object_has_struct_page(obj))
- ret = i915_gem_shmem_pwrite(obj, args);
-+ else
-+ ret = i915_gem_phys_pwrite(obj, args, file);
- }
-
- i915_gem_object_unpin_pages(obj);
---
-2.25.1
-
diff --git a/libre/linux-libre-pae/0007-drm-i915-Serialise-i915_active_acquire-with-__active.patch b/libre/linux-libre-pae/0005-drm-i915-Serialise-i915_active_acquire-with-__active.patch
index 0b6743d43..29ab99fe8 100644
--- a/libre/linux-libre-pae/0007-drm-i915-Serialise-i915_active_acquire-with-__active.patch
+++ b/libre/linux-libre-pae/0005-drm-i915-Serialise-i915_active_acquire-with-__active.patch
@@ -1,7 +1,7 @@
-From 4111ed5d5b9bed12b5bf7929045ca3c10cb60521 Mon Sep 17 00:00:00 2001
+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 07/13] drm/i915: Serialise i915_active_acquire() with
+Subject: [PATCH 05/11] drm/i915: Serialise i915_active_acquire() with
__active_retire()
As __active_retire() does it's final atomic_dec() under the
diff --git a/libre/linux-libre-pae/0006-drm-i915-execlists-Always-force-a-context-reload-whe.patch b/libre/linux-libre-pae/0006-drm-i915-execlists-Always-force-a-context-reload-whe.patch
deleted file mode 100644
index fda8482df..000000000
--- a/libre/linux-libre-pae/0006-drm-i915-execlists-Always-force-a-context-reload-whe.patch
+++ /dev/null
@@ -1,145 +0,0 @@
-From db1660f27f62a515dde34ccb192d7c63acf7fde9 Mon Sep 17 00:00:00 2001
-From: Chris Wilson <chris@chris-wilson.co.uk>
-Date: Fri, 7 Feb 2020 21:14:52 +0000
-Subject: [PATCH 06/13] drm/i915/execlists: Always force a context reload when
- rewinding RING_TAIL
-
-If we rewind the RING_TAIL on a context, due to a preemption event, we
-must force the context restore for the RING_TAIL update to be properly
-handled. Rather than note which preemption events may cause us to rewind
-the tail, compare the new request's tail with the previously submitted
-RING_TAIL, as it turns out that timeslicing was causing unexpected
-rewinds.
-
- <idle>-0 0d.s2 1280851190us : __execlists_submission_tasklet: 0000:00:02.0 rcs0: expired last=130:4698, prio=3, hint=3
- <idle>-0 0d.s2 1280851192us : __i915_request_unsubmit: 0000:00:02.0 rcs0: fence 66:119966, current 119964
- <idle>-0 0d.s2 1280851195us : __i915_request_unsubmit: 0000:00:02.0 rcs0: fence 130:4698, current 4695
- <idle>-0 0d.s2 1280851198us : __i915_request_unsubmit: 0000:00:02.0 rcs0: fence 130:4696, current 4695
-^---- Note we unwind 2 requests from the same context
-
- <idle>-0 0d.s2 1280851208us : __i915_request_submit: 0000:00:02.0 rcs0: fence 130:4696, current 4695
- <idle>-0 0d.s2 1280851213us : __i915_request_submit: 0000:00:02.0 rcs0: fence 134:1508, current 1506
-^---- But to apply the new timeslice, we have to replay the first request
- before the new client can start -- the unexpected RING_TAIL rewind
-
- <idle>-0 0d.s2 1280851219us : trace_ports: 0000:00:02.0 rcs0: submit { 130:4696*, 134:1508 }
- synmark2-5425 2..s. 1280851239us : process_csb: 0000:00:02.0 rcs0: cs-irq head=5, tail=0
- synmark2-5425 2..s. 1280851240us : process_csb: 0000:00:02.0 rcs0: csb[0]: status=0x00008002:0x00000000
-^---- Preemption event for the ELSP update; note the lite-restore
-
- synmark2-5425 2..s. 1280851243us : trace_ports: 0000:00:02.0 rcs0: preempted { 130:4698, 66:119966 }
- synmark2-5425 2..s. 1280851246us : trace_ports: 0000:00:02.0 rcs0: promote { 130:4696*, 134:1508 }
- synmark2-5425 2.... 1280851462us : __i915_request_commit: 0000:00:02.0 rcs0: fence 130:4700, current 4695
- synmark2-5425 2.... 1280852111us : __i915_request_commit: 0000:00:02.0 rcs0: fence 130:4702, current 4695
- synmark2-5425 2.Ns1 1280852296us : process_csb: 0000:00:02.0 rcs0: cs-irq head=0, tail=2
- synmark2-5425 2.Ns1 1280852297us : process_csb: 0000:00:02.0 rcs0: csb[1]: status=0x00000814:0x00000000
- synmark2-5425 2.Ns1 1280852299us : trace_ports: 0000:00:02.0 rcs0: completed { 130:4696!, 134:1508 }
- synmark2-5425 2.Ns1 1280852301us : process_csb: 0000:00:02.0 rcs0: csb[2]: status=0x00000818:0x00000040
- synmark2-5425 2.Ns1 1280852302us : trace_ports: 0000:00:02.0 rcs0: completed { 134:1508, 0:0 }
- synmark2-5425 2.Ns1 1280852313us : process_csb: process_csb:2336 GEM_BUG_ON(!i915_request_completed(*execlists->active) && !reset_in_progress(execlists))
-
-Fixes: 8ee36e048c98 ("drm/i915/execlists: Minimalistic timeslicing")
-Referenecs: 82c69bf58650 ("drm/i915/gt: Detect if we miss WaIdleLiteRestore")
-Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
-Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
-Cc: <stable@vger.kernel.org> # v5.4+
-Link: https://patchwork.freedesktop.org/patch/msgid/20200207211452.2860634-1-chris@chris-wilson.co.uk
----
- drivers/gpu/drm/i915/gt/intel_lrc.c | 18 ++++++++----------
- drivers/gpu/drm/i915/gt/intel_ring.c | 1 +
- drivers/gpu/drm/i915/gt/intel_ring.h | 8 ++++++++
- drivers/gpu/drm/i915/gt/intel_ring_types.h | 1 +
- 4 files changed, 18 insertions(+), 10 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c b/drivers/gpu/drm/i915/gt/intel_lrc.c
-index d925a1035c9d..1b4784bfa7e5 100644
---- a/drivers/gpu/drm/i915/gt/intel_lrc.c
-+++ b/drivers/gpu/drm/i915/gt/intel_lrc.c
-@@ -1157,7 +1157,7 @@ static u64 execlists_update_context(struct i915_request *rq)
- {
- struct intel_context *ce = rq->hw_context;
- u64 desc = ce->lrc_desc;
-- u32 tail;
-+ u32 tail, prev;
-
- /*
- * WaIdleLiteRestore:bdw,skl
-@@ -1170,9 +1170,15 @@ static u64 execlists_update_context(struct i915_request *rq)
- * subsequent resubmissions (for lite restore). Should that fail us,
- * and we try and submit the same tail again, force the context
- * reload.
-+ *
-+ * If we need to return to a preempted context, we need to skip the
-+ * lite-restore and force it to reload the RING_TAIL. Otherwise, the
-+ * HW has a tendency to ignore us rewinding the TAIL to the end of
-+ * an earlier request.
- */
- tail = intel_ring_set_tail(rq->ring, rq->tail);
-- if (unlikely(ce->lrc_reg_state[CTX_RING_TAIL] == tail))
-+ prev = ce->lrc_reg_state[CTX_RING_TAIL];
-+ if (unlikely(intel_ring_direction(rq->ring, tail, prev) <= 0))
- desc |= CTX_DESC_FORCE_RESTORE;
- ce->lrc_reg_state[CTX_RING_TAIL] = tail;
- rq->tail = rq->wa_tail;
-@@ -1651,14 +1657,6 @@ static void execlists_dequeue(struct intel_engine_cs *engine)
- */
- __unwind_incomplete_requests(engine);
-
-- /*
-- * If we need to return to the preempted context, we
-- * need to skip the lite-restore and force it to
-- * reload the RING_TAIL. Otherwise, the HW has a
-- * tendency to ignore us rewinding the TAIL to the
-- * end of an earlier request.
-- */
-- last->hw_context->lrc_desc |= CTX_DESC_FORCE_RESTORE;
- last = NULL;
- } else if (need_timeslice(engine, last) &&
- timer_expired(&engine->execlists.timer)) {
-diff --git a/drivers/gpu/drm/i915/gt/intel_ring.c b/drivers/gpu/drm/i915/gt/intel_ring.c
-index 374b28f13ca0..6ff803f397c4 100644
---- a/drivers/gpu/drm/i915/gt/intel_ring.c
-+++ b/drivers/gpu/drm/i915/gt/intel_ring.c
-@@ -145,6 +145,7 @@ intel_engine_create_ring(struct intel_engine_cs *engine, int size)
-
- kref_init(&ring->ref);
- ring->size = size;
-+ ring->wrap = BITS_PER_TYPE(ring->size) - ilog2(size);
-
- /*
- * Workaround an erratum on the i830 which causes a hang if
-diff --git a/drivers/gpu/drm/i915/gt/intel_ring.h b/drivers/gpu/drm/i915/gt/intel_ring.h
-index ea2839d9e044..5bdce24994aa 100644
---- a/drivers/gpu/drm/i915/gt/intel_ring.h
-+++ b/drivers/gpu/drm/i915/gt/intel_ring.h
-@@ -56,6 +56,14 @@ static inline u32 intel_ring_wrap(const struct intel_ring *ring, u32 pos)
- return pos & (ring->size - 1);
- }
-
-+static inline int intel_ring_direction(const struct intel_ring *ring,
-+ u32 next, u32 prev)
-+{
-+ typecheck(typeof(ring->size), next);
-+ typecheck(typeof(ring->size), prev);
-+ return (next - prev) << ring->wrap;
-+}
-+
- static inline bool
- intel_ring_offset_valid(const struct intel_ring *ring,
- unsigned int pos)
-diff --git a/drivers/gpu/drm/i915/gt/intel_ring_types.h b/drivers/gpu/drm/i915/gt/intel_ring_types.h
-index d9f17f38e0cc..3cd7fec7fd8d 100644
---- a/drivers/gpu/drm/i915/gt/intel_ring_types.h
-+++ b/drivers/gpu/drm/i915/gt/intel_ring_types.h
-@@ -45,6 +45,7 @@ struct intel_ring {
-
- u32 space;
- u32 size;
-+ u32 wrap;
- u32 effective_size;
- };
-
---
-2.25.1
-
diff --git a/libre/linux-libre-pae/0008-drm-i915-gem-Take-runtime-pm-wakeref-prior-to-unbind.patch b/libre/linux-libre-pae/0006-drm-i915-gem-Take-runtime-pm-wakeref-prior-to-unbind.patch
index 2cca09b39..c51edfc5d 100644
--- a/libre/linux-libre-pae/0008-drm-i915-gem-Take-runtime-pm-wakeref-prior-to-unbind.patch
+++ b/libre/linux-libre-pae/0006-drm-i915-gem-Take-runtime-pm-wakeref-prior-to-unbind.patch
@@ -1,7 +1,7 @@
-From ff71a1213c20acd951584e14fa2f19e9133722d4 Mon Sep 17 00:00:00 2001
+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 08/13] drm/i915/gem: Take runtime-pm wakeref prior to
+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
diff --git a/libre/linux-libre-pae/0009-drm-i915-gem-Avoid-parking-the-vma-as-we-unbind.patch b/libre/linux-libre-pae/0007-drm-i915-gem-Avoid-parking-the-vma-as-we-unbind.patch
index 18690528d..fe79b6953 100644
--- a/libre/linux-libre-pae/0009-drm-i915-gem-Avoid-parking-the-vma-as-we-unbind.patch
+++ b/libre/linux-libre-pae/0007-drm-i915-gem-Avoid-parking-the-vma-as-we-unbind.patch
@@ -1,7 +1,7 @@
-From 2d5fd5d31dcd5c63c0c82a4a599443ee2a7144b7 Mon Sep 17 00:00:00 2001
+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 09/13] drm/i915/gem: Avoid parking the vma as we unbind
+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
diff --git a/libre/linux-libre-pae/0010-drm-i915-gem-Try-to-flush-pending-unbind-events.patch b/libre/linux-libre-pae/0008-drm-i915-gem-Try-to-flush-pending-unbind-events.patch
index 8cff1cbf9..3768889ae 100644
--- a/libre/linux-libre-pae/0010-drm-i915-gem-Try-to-flush-pending-unbind-events.patch
+++ b/libre/linux-libre-pae/0008-drm-i915-gem-Try-to-flush-pending-unbind-events.patch
@@ -1,7 +1,7 @@
-From ee4f0e7d05f4e20dec1a91b4751da983109dbe44 Mon Sep 17 00:00:00 2001
+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 10/13] drm/i915/gem: Try to flush pending unbind events
+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
diff --git a/libre/linux-libre-pae/0011-drm-i915-gem-Reinitialise-the-local-list-before-repe.patch b/libre/linux-libre-pae/0009-drm-i915-gem-Reinitialise-the-local-list-before-repe.patch
index d947d9502..c3913790d 100644
--- a/libre/linux-libre-pae/0011-drm-i915-gem-Reinitialise-the-local-list-before-repe.patch
+++ b/libre/linux-libre-pae/0009-drm-i915-gem-Reinitialise-the-local-list-before-repe.patch
@@ -1,7 +1,7 @@
-From c13629b1458dc936a12611ec91925ab421ffa800 Mon Sep 17 00:00:00 2001
+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 11/13] drm/i915/gem: Reinitialise the local list before
+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
diff --git a/libre/linux-libre-pae/0012-drm-i915-Add-a-simple-is-bound-check-before-unbindin.patch b/libre/linux-libre-pae/0010-drm-i915-Add-a-simple-is-bound-check-before-unbindin.patch
index 4c4bdaafc..96e3d8810 100644
--- a/libre/linux-libre-pae/0012-drm-i915-Add-a-simple-is-bound-check-before-unbindin.patch
+++ b/libre/linux-libre-pae/0010-drm-i915-Add-a-simple-is-bound-check-before-unbindin.patch
@@ -1,7 +1,7 @@
-From 2b7ac37ef0d71002f3b7a9da6553049bc1ea9172 Mon Sep 17 00:00:00 2001
+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 12/13] drm/i915: Add a simple is-bound check before unbinding
+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.
diff --git a/libre/linux-libre-pae/0013-drm-i915-Introduce-a-vma.kref.patch b/libre/linux-libre-pae/0011-drm-i915-Introduce-a-vma.kref.patch
index 861889d73..ce0f800fb 100644
--- a/libre/linux-libre-pae/0013-drm-i915-Introduce-a-vma.kref.patch
+++ b/libre/linux-libre-pae/0011-drm-i915-Introduce-a-vma.kref.patch
@@ -1,7 +1,7 @@
-From 1e76c5d4a020453c26640572a2452456d68ebeea Mon Sep 17 00:00:00 2001
+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 13/13] drm/i915: Introduce a vma.kref
+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).
diff --git a/libre/linux-libre-pae/PKGBUILD b/libre/linux-libre-pae/PKGBUILD
index 77bce7a92..1fb2bbfb4 100644
--- a/libre/linux-libre-pae/PKGBUILD
+++ b/libre/linux-libre-pae/PKGBUILD
@@ -9,7 +9,7 @@ _replacesoldkernels=() # '%' gets replaced with kernel suffix
_replacesoldmodules=() # '%' gets replaced with kernel suffix
pkgbase=linux-libre-pae
-pkgver=5.5.5
+pkgver=5.5.7
pkgrel=1
pkgdesc='Linux-libre PAE (physical address extension)'
url='https://linux-libre.fsfla.org/'
@@ -39,16 +39,14 @@ source=(
0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch
0002-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch
0003-iwlwifi-mvm-Do-not-require-PHY_SKU-NVM-section-for-3.patch
- 0004-drm-i915-Wean-off-drm_pci_alloc-drm_pci_free.patch
- 0005-drm-Remove-PageReserved-manipulation-from-drm_pci_al.patch
- 0006-drm-i915-execlists-Always-force-a-context-reload-whe.patch
- 0007-drm-i915-Serialise-i915_active_acquire-with-__active.patch
- 0008-drm-i915-gem-Take-runtime-pm-wakeref-prior-to-unbind.patch
- 0009-drm-i915-gem-Avoid-parking-the-vma-as-we-unbind.patch
- 0010-drm-i915-gem-Try-to-flush-pending-unbind-events.patch
- 0011-drm-i915-gem-Reinitialise-the-local-list-before-repe.patch
- 0012-drm-i915-Add-a-simple-is-bound-check-before-unbindin.patch
- 0013-drm-i915-Introduce-a-vma.kref.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
)
validpgpkeys=(
'474402C8C582DAFBE389C427BCB7CF877E7D47A7' # Alexandre Oliva
@@ -56,7 +54,7 @@ validpgpkeys=(
)
sha512sums=('187368a8fb4e04acfd7d18a024d6cdbc2841bcc06dcfbc3a053706e8512c3e3f573755228347c11bd791b296ec60eb2d67d5075ece2aef234a847e72f2b3e746'
'SKIP'
- 'd1ff0cd2089118da0311401c7f1f9f3d083af452899f3ffa7f9875d92aa9e85716fe87cbd8c59292d37cd6a37a0ebe68d8b1c0ea433277aaf636dd984fe0a7de'
+ '9e80c81ba21ce46422f6c9ee94772d5ea0152bb1176444a824c54c740fb58430ffaa1adadce8ecf1647d58fcadaabf6c67938999bf359b9ead4ed9141bc49ba7'
'SKIP'
'13cb5bc42542e7b8bb104d5f68253f6609e463b6799800418af33eb0272cc269aaa36163c3e6f0aacbdaaa1d05e2827a4a7c4a08a029238439ed08b89c564bb3'
'SKIP'
@@ -67,19 +65,17 @@ sha512sums=('187368a8fb4e04acfd7d18a024d6cdbc2841bcc06dcfbc3a053706e8512c3e3f573
'9b8298a195857108453042090bfebf7736b373b177077926bda7091bc490aeda1872fb51cf126e021eae97096973dfab6d6c858bebf5d565a9df4ffe28d2df2f'
'02af4dd2a007e41db0c63822c8ab3b80b5d25646af1906dc85d0ad9bb8bbf5236f8e381d7f91cf99ed4b0978c50aee37cb9567cdeef65b7ec3d91b882852b1af'
'b8fe56e14006ab866970ddbd501c054ae37186ddc065bb869cf7d18db8c0d455118d5bda3255fb66a0dde38b544655cfe9040ffe46e41d19830b47959b2fb168'
- 'c5006db63c01ad4f94786e4ed129470d74b9131cf2218c82dcbbc24af7de4881ce7e4c8144e3b2194d6015df328593c8f017d1372ae1e46fe49fe55acf5aac38'
- 'ba13e423ef1bba3f46c20bb1c0f68b7533564cc4819aa17cabbf5b89552416341b83f7f65e97d4316412ac78365f25c612fde5c35cb29d27d612c351761a8385'
- '28780156c1cdcc65d41a08cae0184bc6b42d7cf5f7c94fafea475f3e1f388faa28532216b2cdefcfa6a4d55f70cbb21329d48409c6ad9be78a72d212d0e80252'
- '6c13d71552e1a651c7f1e753c6f94210b27f61dee58b8a855a11eed28dcd45afd168b361f2a8ac53b3899cc73322a102c1f99a04496e80b2ead229230883d261'
- 'd9d807c2cb6680f494f52c86b54b8ad5b3fafb6bae8a6098a9ebe20383569704cfabded9ad442a9cc8aa05f5a280b76ff41e8b5d504523251e31d753930f3cc3'
- '521a5320af6e56f85662a1fe0749aefa9759e4dc8fd21dd890d409256a67ed2da488dab5d54bb12eb71fbfc14142246f2df98ce4cfab061283a4019a8b748999'
- 'b1605a93c97c01d255f19f5da20b0b41d9457a9aa473bb22d52feffab99bca0594f5f8b1cf5fb20862e65c84315ddc7bb162869c3337ff9ee795938856d583ba'
- 'e24fa8a4bc8589274fc31edbf3e64cd1639737544982bc2c085e5f064daa16b1d56928115813733b46a758ed047dd415d14b87b7fcd958b7a73766066a7a6c32'
- '2f961f57e8462615a2a01793d21f3ce49be956991cb537de68b80edbf8dd7123a790324c1a5aa81061436eda4eae30a9b710144d9b18a33c22b595710e30667e'
- 'd29b49e87e90a773a0d101ff57688c6d55b1145cb6866da8706ed9313660d16e12c4debfd5005a585b33dad741a19de36fd9ccd8b5e18d9979a05e1845df993c'
- '009b4280ba5da1ef78db7582eac04c9e290bfb2f0d7d8ba9574353b1cca9c5dd97c0bf1f85d228dede1f3ac342e35754ba776c2fe755382c65edf1b52f2d9eba'
- '0c2cc5f04a577c42dece649d54e00bf8a1f45880a5f984328a3d4a51887b3d48e30dae3058f9da2fc651a95e204749b5512619752ecfc37227acb21e042e26ff'
- 'f41929dd44a929dc3bf5f090f7f8c800112a07f1cc2c5ac1e282d4cff2821001c9daeb35987e8b47e70bde5cf5c06b010cac13b4f00fbcbb56b283069a5b30cc')
+ 'c817bab02fa530560b9d3d968242e5491e315286a4a1dc9490299dc78806c516831da79422d6ab56df0652b216565a80f10d6dacdcbcbbbe258d31455cc98add'
+ 'a9a7c0510d9b1c724f17d47e33925b7dadb529ed57cbdc80120af8884f43190b6bfc7698416d23651eae64c4fed393481715b3d87b528b71d8c03b4141fcca46'
+ 'a26d886d6e3e394e7d6a247154120d4c2ba06e9e75385959bbf284c9577da07aee05b718ed06a56d56bec5a726c8013709c560cd280e78525d50dc95fb84bdad'
+ '7395fc2202c76ffff815bb6f6f54a1dc57ffb46b0b25ecf89effe6787dd66bd273dee29dd8636b3160c31fd0bfef0a99bd55f4080e6e075e862640b422c15e2e'
+ 'bd68f5d64a6bb502db8b5b96d2823493cda1a5b3c8bd0639b25ae3e47e999fc02dfd3bffa32e8fd710355d9ca0ec5bfe19421158cdc488c2b47b5177caf0f5c8'
+ '3b71120a93c53eb6308bb55b76ec0c1ccd8b3b385d4ce4062cb4f657b84e6bfe28765eb8042f6f8f35860899ee66633a4f59999513bfdc2968b5317215e36347'
+ 'd3fbbd202efd72ebac265b89fb8c9c3772fd49dcd6d43910555d55ec96ea5df8c0b03bfe00e2677787643cfc0f547eb49d638774742471ec650067751cecc5e2'
+ '80928026ceeb29bf29a2b2909768ddced2f13c522f6496fa4717a490f087bdd45ae0131cbce37ec227d16071ce562477ca322305a68e8606fc28e3d35759af26'
+ '855de25a3df963506d3cce588e422a4cf24b2cc04c950647b0002f796a921d17ebc49d95cb94c38713e70b6385a91278943df3c707091607a1fd118f519dae87'
+ 'f31a943f9942427e79d646186611325e6dd9aa6b100eb869b531e04c2fe934503ff6cc7496ffa8644eeb3bb13ec82e1898def5311f29bb4d286f758dfd848b9a'
+ '9dcde0dd16222ecb09c83025ecc13bb529c78289878c5abb38283a4b10ffe181abc9447423641a271c3f8db79d9bb540eea369cd0108e4948067cf4356bd329e')
_replacesarchkernel=("${_replacesarchkernel[@]/\%/${pkgbase#linux-libre}}")
_replacesoldkernels=("${_replacesoldkernels[@]/\%/${pkgbase#linux-libre}}")
@@ -120,12 +116,13 @@ prepare() {
make olddefconfig
make -s kernelrelease > version
- echo "Prepared %s version %s" "$pkgbase" "$(<version)"
+ echo "Prepared $pkgbase version $(<version)"
}
build() {
cd $_srcname
- make bzImage modules htmldocs
+ make all
+ make htmldocs
}
_package() {