Skip to content

Commit

Permalink
kernel: Update to v5.5.4
Browse files Browse the repository at this point in the history
  • Loading branch information
aunali1 committed Feb 20, 2020
1 parent ffa909b commit 3dace5f
Show file tree
Hide file tree
Showing 16 changed files with 910 additions and 38 deletions.
46 changes: 31 additions & 15 deletions .SRCINFO
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
pkgbase = linux-mbp
pkgdesc = Linux for MBP
pkgver = 5.5.3
pkgver = 5.5.4
pkgrel = 1
url = https://git.archlinux.org/linux.git/log/?h=vv5.5-3
url = https://git.archlinux.org/linux.git/log/?h=vv5.5-4
arch = x86_64
license = GPL2
makedepends = bc
Expand All @@ -15,15 +15,23 @@ pkgbase = linux-mbp
makedepends = imagemagick
makedepends = git
options = !strip
source = https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.5.3.tar.xz
source = https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.5.3.tar.sign
source = https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.5.4.tar.xz
source = https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.5.4.tar.sign
source = config
source = 0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch
source = 0002-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch
source = 0003-iwlwifi-mvm-Do-not-require-PHY_SKU-NVM-section-for-3.patch
source = 0004-drm-i915-Wean-off-drm_pci_alloc-drm_pci_free.patch
source = 0005-drm-Remove-PageReserved-manipulation-from-drm_pci_al.patch
source = 0006-drm-i915-execlists-Always-force-a-context-reload-whe.patch
source = 0007-drm-i915-Serialise-i915_active_acquire-with-__active.patch
source = 0008-drm-i915-gem-Take-runtime-pm-wakeref-prior-to-unbind.patch
source = 0009-drm-i915-gem-Avoid-parking-the-vma-as-we-unbind.patch
source = 0010-drm-i915-gem-Try-to-flush-pending-unbind-events.patch
source = 0011-drm-i915-gem-Reinitialise-the-local-list-before-repe.patch
source = 0012-drm-i915-Add-a-simple-is-bound-check-before-unbindin.patch
source = 0013-drm-i915-Introduce-a-vma.kref.patch
source = 2001-Revert-serdev-Add-ACPI-devices-by-ResourceSource-fie.patch
source = 3001-applesmc-convert-static-structures-to-drvdata.patch
source = 3002-applesmc-make-io-port-base-addr-dynamic.patch
source = 3003-applesmc-switch-to-acpi_device-from-platform.patch
Expand All @@ -38,23 +46,31 @@ pkgbase = linux-mbp
source = wifi.patch
validpgpkeys = ABAF11C65A2970B130ABE3C479BE3E4300411886
validpgpkeys = 647F28654894E3BD457199BE38DBBDC86092693E
sha256sums = 2bef3edcf44c746383045f4a809b2013e18c52319c827875ed8e89138951cab2
sha256sums = ea40fd0deb0ba043c628ad4039c67ca9e4d8adc88d67d8b8c5a20f264403a6fb
sha256sums = SKIP
sha256sums = a9266acc82fae18ed90c165288e10d03c62b8b964b3916e710d5ab6f7a639bf3
sha256sums = 41ed95f8ca1044ff4d4b0469ded34644def169b5d4074b58eec678a6566a55b1
sha256sums = 877e22204411f70c4b8e2e700608cc4b9b3a9b68811dcfbbe6840f60255f65cb
sha256sums = 606e02ff7fae7a3b9b8fcfb0ce5e27436f46a0c2a3550ff5d96c6da2837659fb
sha256sums = cc03acb4dee2f6cef9f386cfed3413a41ed972c41cd93d085e02995ee13a4935
sha256sums = 64869d0d5629b6529eff86bbc70f9aa498d6fd17931dcbca4a534a5c5c86655b
sha256sums = ea1f0beeb4a6c2181f49abae9d3a7fa6fcc1f65c79e016d03e57290cfbcee686
sha256sums = b807695ba1aca350fdacfca5f1bb5c42d0f3c5555ddf6e1085ad1119fc81dcb2
sha256sums = 269d365586702e75e9ba3d3d2f60ec7467fec9aeb470d9e950195b8d757feb14
sha256sums = f693d9fb6a6cdd1e2d3e49bd0620e9d93124dccf7869f3939e63c27b1a0d4745
sha256sums = c5e3c5952b3f3c4e37de8fde9d6944ed4961464fa64604bd9f8e62dc31b69507
sha256sums = caf6ec87f917e63f1e6216749663828c394e5f5d204aa75eb7afc74a64dcc347
sha256sums = 506a45b8895a756dc7b43fc888558ddd585b7624f27fffa2c95c96ffb3bd25fb
sha256sums = 54bec87394d8b0cf06a8ae85dd990f8854cc91248aca06dac5e0299315ea9bc4
sha256sums = 7386bc06b1278cbefb6a307f4e8dbb2c1147e223fbee88897b8fb0ecc5aad1f2
sha256sums = b84a3b101a02cd60b752efb1a773c88dc582c91c782de61b98aef11bf6d2bfbd
sha256sums = ed9ceee244f062ca46ddc071a01e9705ea0889f89c49f7fae5d1bb22f3c2fdaf
sha256sums = 09ac926426e37686a1d3c6538cc71a3981b2ffd6371878ffeca3b54c531369b7
sha256sums = 24f3384534d7a7356cfb5e2f766ef371c624c0c6a9b5169673c0c192f12aa577
sha256sums = d8ddcb59c9258ada79538d964e60ee0834462fc75b81d49186539dda991e1b4b
sha256sums = 9e44fa7656963c5cd08ad646636b6d5ab63db5f629e002d6714474d0ec00fc97
sha256sums = 25e1aac0d44d72e377f08e4f4b90351cffcacc0be63e02a4033cb99f10cc9fe7
sha256sums = c70118659c5cf6a5c7f060c941d46fdd3b1e6d28f2b62c24a941745f2b3c4732
sha256sums = 3855aa07fab97d202900216951225b6952d7c716258a3c3727df8e6277289ee0
sha256sums = 9e5e0b45fe007ed214049b26b44174ee8f61376076e80fd33bba9fdac001e157
sha256sums = 3c8a361370ed3ee094e2c8af1ff5360fd78f24e387c250904031fb70e8f2bb6e
sha256sums = 8e43d95104301913737e5d73860f0e21bb0e5e25dcfd0f16d48a0715b38c98a1
sha256sums = 594ee36c0bc7eee93df824017bc32c3f5afb13b14f1a396f28b665c97dc1d7c0
sha256sums = 41afb414a69dc9e2b022605e0e63a9e14738c8e8c87984b95969aa8ab3584d77
sha256sums = e1d72fdb0a7a66a6f3fc8afb6fe056f28cfa088c1cc9c799b93405b62a274b96
sha256sums = a6c070d7b7444d711d9cb6b28bccb774228864132ef83dd3a291df3353e85465
sha256sums = 0318952f59efdce4dc72703adc764940db6fdff184960c27a23a80c3413d8a60
sha256sums = e632f2959efca848fd28acb5e278cc476f8fb54d70ca95272b0a76add47e474e
sha256sums = 717f7fc70a3e3fcfa5ffbac505c8259c1d86718ca1ca6593e8925dac3d29a835
Expand All @@ -67,11 +83,11 @@ pkgname = linux-mbp
depends = initramfs
optdepends = crda: to set the correct wireless channels of your country
optdepends = linux-firmware: firmware images needed for some devices
provides = linux=5.5.3
provides = linux=5.5.4

pkgname = linux-mbp-headers
pkgdesc = Headers and scripts for building modules for the Linux for MBP kernel
provides = linux-headers=5.5.3
provides = linux-headers=5.5.4

pkgname = linux-mbp-docs
pkgdesc = Documentation for the Linux for MBP kernel
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 0bbf7dded241dc90f2f63ed89ea8884f3c2dd37f Mon Sep 17 00:00:00 2001
From 440f5aa9cc713a5ad3eb5eb2c121b0e03b9f5032 Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <[email protected]>
Date: Mon, 16 Sep 2019 04:53:20 +0200
Subject: [PATCH 1/6] ZEN: Add sysctl and CONFIG to disallow unprivileged
Subject: [PATCH 01/13] ZEN: Add sysctl and CONFIG to disallow unprivileged
CLONE_NEWUSER

Our default behavior continues to match the vanilla kernel.
Expand Down
4 changes: 2 additions & 2 deletions 0002-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 62285c8ffeb4318bad4686ab794f43a82164514b Mon Sep 17 00:00:00 2001
From ccd811432798cc548d3796fde7caade188d23bd8 Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <[email protected]>
Date: Tue, 24 Dec 2019 06:16:39 +0100
Subject: [PATCH 2/6] iwlwifi: pcie: restore support for Killer Qu C0 NICs
Subject: [PATCH 02/13] 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,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
From 0e6fb279c7fc6fc818942f668f731946286c959c Mon Sep 17 00:00:00 2001
From b0dbc3d2f076fa5acee310b34534b44f15ae4836 Mon Sep 17 00:00:00 2001
From: Dan Moulding <[email protected]>
Date: Tue, 28 Jan 2020 02:31:07 -0700
Subject: [PATCH 3/6] iwlwifi: mvm: Do not require PHY_SKU NVM section for 3168
devices
Subject: [PATCH 03/13] 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
Expand Down
4 changes: 2 additions & 2 deletions 0004-drm-i915-Wean-off-drm_pci_alloc-drm_pci_free.patch
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 7af5e53f87d728579cba99568717a6af3625184b Mon Sep 17 00:00:00 2001
From 1533cd73061e99ed6dd58cba03da2b762a616a95 Mon Sep 17 00:00:00 2001
From: Chris Wilson <[email protected]>
Date: Sun, 2 Feb 2020 15:39:34 +0000
Subject: [PATCH 4/6] drm/i915: Wean off drm_pci_alloc/drm_pci_free
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.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
From c40f78c76b2f3ae55c348e8b206b0b283f01549c Mon Sep 17 00:00:00 2001
From 4dfbfe187c731b4f33e1a66e70ca10854e469527 Mon Sep 17 00:00:00 2001
From: Chris Wilson <[email protected]>
Date: Sun, 2 Feb 2020 17:16:31 +0000
Subject: [PATCH 5/6] drm: Remove PageReserved manipulation from drm_pci_alloc
Subject: [PATCH 05/13] 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
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 6ffd5925e2659e589d48b8dcaf06e0b3cc0f4d52 Mon Sep 17 00:00:00 2001
From 4e64b7d1a9e63f7b9c1cecc8995e6fc1fed42e77 Mon Sep 17 00:00:00 2001
From: Chris Wilson <[email protected]>
Date: Fri, 7 Feb 2020 21:14:52 +0000
Subject: [PATCH 6/6] drm/i915/execlists: Always force a context reload when
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
Expand Down
79 changes: 79 additions & 0 deletions 0007-drm-i915-Serialise-i915_active_acquire-with-__active.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
From 167299b5c1cc6f0c1274271aec0ab2b9fec01594 Mon Sep 17 00:00:00 2001
From: Chris Wilson <[email protected]>
Date: Thu, 5 Dec 2019 18:33:32 +0000
Subject: [PATCH 07/13] 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 <[email protected]>
Fixes: c9ad602feabe ("drm/i915: Split i915_active.mutex into an irq-safe spinlock for the rbtree")
Signed-off-by: Chris Wilson <[email protected]>
Cc: Tvrtko Ursulin <[email protected]>
Cc: Kenneth Graunke <[email protected]>
Cc: Matthew Auld <[email protected]>
Tested-by: Kenneth Graunke <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
---
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.0

130 changes: 130 additions & 0 deletions 0008-drm-i915-gem-Take-runtime-pm-wakeref-prior-to-unbind.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
From e3d3fd13d0ac1e12848b4f2a57e9e4bf2b557bf0 Mon Sep 17 00:00:00 2001
From: Chris Wilson <[email protected]>
Date: Tue, 3 Dec 2019 10:13:46 +0000
Subject: [PATCH 08/13] 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 <[email protected]>
Reviewed-by: Matthew Auld <[email protected]>
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
---
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.0

Loading

0 comments on commit 3dace5f

Please sign in to comment.