summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeka2023-06-15 23:52:20 +0300
committerJeka2023-06-15 23:52:20 +0300
commita6690a161896666ca367d9c3a16e4f3fa416aec7 (patch)
treebaaaa873fcff00286c6cd809c20e0fcf7c2b459e
parenta540890ccd27628f32864d9fb42a08f4bbc8d71e (diff)
downloadaur-a6690a161896666ca367d9c3a16e4f3fa416aec7.tar.gz
kernel release 6.3.8
-rw-r--r--.SRCINFO10
-rw-r--r--0001-nouveau-fix-client-work-fence-deletion-race.patch55
-rw-r--r--PKGBUILD9
-rw-r--r--config2
4 files changed, 67 insertions, 9 deletions
diff --git a/.SRCINFO b/.SRCINFO
index b777e634570a..ec48da0181ee 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = linux-jcore
pkgdesc = Kernel for Manjaro/EndeavourOS/Arch (ACS override patch include)
- pkgver = 6.3.7
+ pkgver = 6.3.8
pkgrel = 1
url = https://www.kernel.org/
arch = x86_64
@@ -21,10 +21,11 @@ pkgbase = linux-jcore
replaces = linux-acs-manjaro
replaces = linux-acs-manjaro-headers
options = !strip
- source = https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.3.7.tar.xz
+ source = https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.3.8.tar.xz
source = config
source = 0101-ZEN_Add_sysctl_and_CONFIG_to_disallow_unprivileged_CLONE_NEWUSER.patch
source = 0103-Bluetooth_fix_deadlock_for_RFCOMM_sk_state_change.patch
+ source = 0001-nouveau-fix-client-work-fence-deletion-race.patch
source = 0301-revert-fbcon-remove-now-unusued-softback_lines-cursor-argument.patch
source = 0302-revert-fbcon-remove-no-op-fbcon_set_origin.patch
source = 0303-revert-fbcon-remove-soft-scrollback-code.patch
@@ -42,10 +43,11 @@ pkgbase = linux-jcore
source = 0412-bootsplash.patch
source = 0413-bootsplash.gitpatch
source = 0999-acs.gitpatch
- sha256sums = fe369743996c522a7b473e99dcf8f88847bd5cc88546fd3b7a41d9fe5a5b97a9
- sha256sums = b538481a355e88fa3888649d1c8836da4669b0fa93734ca72af8bef277ed1864
+ sha256sums = 4323d421250e2e444c35d36f4aa8ddb56591dedc25c68d359d19c4ef9dd20955
+ sha256sums = 4f23cc90af217bbd7e22570aab739e345916ab3c95b1e3efedaffe199000e74d
sha256sums = 05f04019d4a2ee072238c32860fa80d673687d84d78ef436ae9332b6fb788467
sha256sums = a8a2d8b402b2877df1a949a106c634b6c366dd33b954c4b735ce1d3778214169
+ sha256sums = 0042242bb3348e83d9361c87d90f60d9ac354e9593b59dbd26b074df8f8b75fc
sha256sums = 2b11905b63b05b25807dd64757c779da74dd4c37e36d3f7a46485b1ee5a9d326
sha256sums = 94a8538251ad148f1025cc3de446ce64f73dc32b01815426fb159c722e8fa5bc
sha256sums = 50f4ccc4aeb0ffb8ec648b90a84ff188dbfed5364075cf0c6045c5696caf6ca9
diff --git a/0001-nouveau-fix-client-work-fence-deletion-race.patch b/0001-nouveau-fix-client-work-fence-deletion-race.patch
new file mode 100644
index 000000000000..c5073038f440
--- /dev/null
+++ b/0001-nouveau-fix-client-work-fence-deletion-race.patch
@@ -0,0 +1,55 @@
+From 0138bee3c72c96d6aaedce02f5691730ec81571d Mon Sep 17 00:00:00 2001
+From: Dave Airlie <airlied@redhat.com>
+Date: Thu, 15 Jun 2023 12:22:11 +1000
+Subject: [PATCH] nouveau: fix client work fence deletion race
+
+This seems to have existed for ever but is now more apparant after
+9bff18d13473a9fdf81d5158248472a9d8ecf2bd (drm/ttm: use per BO cleanup workers)
+
+My analysis:
+two threads are running,
+one in the irq signalling the fence, in dma_fence_signal_timestamp_locked,
+it has done the DMA_FENCE_FLAG_SIGNALLED_BIT setting, but hasn't yet reached the callbacks.
+
+second thread in nouveau_cli_work_ready, where it sees the fence is signalled, so then puts the
+fence, cleanups the object and frees the work item, which contains the callback.
+
+thread one goes again and tries to call the callback and causes the use-after-free.
+
+Proposed fix:
+lock the fence signalled check in nouveau_cli_work_ready, so either the callbacks are done
+or the memory is freed.
+
+Signed-off-by: Dave Airlie <airlied@redhat.com>
+---
+ drivers/gpu/drm/nouveau/nouveau_drm.c | 14 ++++++++++----
+ 1 file changed, 10 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c
+index cc7c5b4a05fd..1a45be769848 100644
+--- a/drivers/gpu/drm/nouveau/nouveau_drm.c
++++ b/drivers/gpu/drm/nouveau/nouveau_drm.c
+@@ -137,10 +137,16 @@ nouveau_name(struct drm_device *dev)
+ static inline bool
+ nouveau_cli_work_ready(struct dma_fence *fence)
+ {
+- if (!dma_fence_is_signaled(fence))
+- return false;
+- dma_fence_put(fence);
+- return true;
++ unsigned long flags;
++ bool ret = true;
++ spin_lock_irqsave(fence->lock, flags);
++ if (!dma_fence_is_signaled_locked(fence))
++ ret = false;
++ spin_unlock_irqrestore(fence->lock, flags);
++
++ if (ret == true)
++ dma_fence_put(fence);
++ return ret;
+ }
+
+ static void
+--
+2.40.1
+
diff --git a/PKGBUILD b/PKGBUILD
index 5459d192d3cb..718d54d67449 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -12,7 +12,7 @@ pkgbase=linux-jcore
pkgname=('linux-jcore' 'linux-jcore-headers')
_kernelname=-jcore
_hostname=jcore
-pkgver=6.3.7
+pkgver=6.3.8
pkgrel=1
pkgdesc="Kernel for Manjaro/EndeavourOS/Arch (ACS override patch include)"
arch=('x86_64')
@@ -28,7 +28,7 @@ source=("https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-$pkgver.tar.xz"
'0101-ZEN_Add_sysctl_and_CONFIG_to_disallow_unprivileged_CLONE_NEWUSER.patch'
'0103-Bluetooth_fix_deadlock_for_RFCOMM_sk_state_change.patch'
# MANJARO Patches
-
+ '0001-nouveau-fix-client-work-fence-deletion-race.patch'
# Bootsplash
'0301-revert-fbcon-remove-now-unusued-softback_lines-cursor-argument.patch'
'0302-revert-fbcon-remove-no-op-fbcon_set_origin.patch'
@@ -48,10 +48,11 @@ source=("https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-$pkgver.tar.xz"
'0413-bootsplash.gitpatch'
# ACS override patch
'0999-acs.gitpatch')
-sha256sums=('fe369743996c522a7b473e99dcf8f88847bd5cc88546fd3b7a41d9fe5a5b97a9'
- 'b538481a355e88fa3888649d1c8836da4669b0fa93734ca72af8bef277ed1864'
+sha256sums=('4323d421250e2e444c35d36f4aa8ddb56591dedc25c68d359d19c4ef9dd20955'
+ '4f23cc90af217bbd7e22570aab739e345916ab3c95b1e3efedaffe199000e74d'
'05f04019d4a2ee072238c32860fa80d673687d84d78ef436ae9332b6fb788467'
'a8a2d8b402b2877df1a949a106c634b6c366dd33b954c4b735ce1d3778214169'
+ '0042242bb3348e83d9361c87d90f60d9ac354e9593b59dbd26b074df8f8b75fc'
'2b11905b63b05b25807dd64757c779da74dd4c37e36d3f7a46485b1ee5a9d326'
'94a8538251ad148f1025cc3de446ce64f73dc32b01815426fb159c722e8fa5bc'
'50f4ccc4aeb0ffb8ec648b90a84ff188dbfed5364075cf0c6045c5696caf6ca9'
diff --git a/config b/config
index ed8ccf04088e..b417202c8492 100644
--- a/config
+++ b/config
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 6.3.7-1 Kernel Configuration
+# Linux/x86 6.3.8-1 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (GCC) 13.1.1 20230429"
CONFIG_CC_IS_GCC=y