diff options
author | graysky | 2019-12-19 15:40:59 -0500 |
---|---|---|
committer | graysky | 2019-12-19 15:40:59 -0500 |
commit | ebd0ef85fc047e48bdcbef56e4aa3613163b1449 (patch) | |
tree | d2e6622ddddbdb1645c3e3685c614723e812c8fd | |
parent | 6dbfa7c713236efca4294028a4f091ed7fee219b (diff) | |
download | aur-ebd0ef85fc047e48bdcbef56e4aa3613163b1449.tar.gz |
Update to 5.4.6rc1-1
-rw-r--r-- | .SRCINFO | 20 | ||||
-rw-r--r-- | 0006-ACPI-EC-Rework-flushing-of-pending-work.patch | 135 | ||||
-rw-r--r-- | 0006-ACPI-PM-s2idle-Rework-ACPI-events-synchronization.patch (renamed from 0007-ACPI-PM-s2idle-Rework-ACPI-events-synchronization.patch) | 0 | ||||
-rw-r--r-- | 0007-drm-i915-fbc-Disable-fbc-by-default-on-all-glk.patch | 44 | ||||
-rw-r--r-- | PKGBUILD | 14 |
5 files changed, 61 insertions, 152 deletions
@@ -1,5 +1,5 @@ pkgbase = linux-rc - pkgver = 5.4.4rc1 + pkgver = 5.4.6rc1 pkgrel = 1 url = https://www.kernel.org/ arch = x86_64 @@ -9,23 +9,23 @@ pkgbase = linux-rc makedepends = bc makedepends = libelf options = !strip - source = https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.4.4-rc1.xz - source = https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.4.4-rc1.sign - source = https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.4.3.tar.xz - source = https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.4.3.tar.sign + source = https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.4.6-rc1.xz + source = https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.4.6-rc1.sign + source = https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.4.5.tar.xz + source = https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.4.5.tar.sign source = config source = 0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch source = 0002-lib-devres-add-a-helper-function-for-ioremap_uc.patch source = 0003-mfd-intel-lpss-Use-devm_ioremap_uc-for-MMIO.patch source = 0004-PCI-pciehp-Do-not-disable-interrupt-twice-on-suspend.patch source = 0005-PCI-pciehp-Prevent-deadlock-on-disconnect.patch - source = 0006-ACPI-EC-Rework-flushing-of-pending-work.patch - source = 0007-ACPI-PM-s2idle-Rework-ACPI-events-synchronization.patch + source = 0006-ACPI-PM-s2idle-Rework-ACPI-events-synchronization.patch + source = 0007-drm-i915-fbc-Disable-fbc-by-default-on-all-glk.patch validpgpkeys = ABAF11C65A2970B130ABE3C479BE3E4300411886 validpgpkeys = 647F28654894E3BD457199BE38DBBDC86092693E - sha256sums = 01dba333cb4b631e521ca3a829c78152578070ef9b2a5d26941781d8f4f88487 + sha256sums = 3da1737f4e119fde5ce88bee11e98a11f004ee7a0e998c76be4a6785d7567a3a sha256sums = SKIP - sha256sums = 6731682f32e1b1ee53b0e7f66b8dc263d25a0e809e78e2139cb0ed77c378ee51 + sha256sums = 568e9f27fbba86131c2e2849f296d54216e2ed3e8c4d8aa78a93b417cab23ec0 sha256sums = SKIP sha256sums = b7f23bbc09b6c571b76f851f0389386a6f3a64f3d7b1b8509c8550228b0f4537 sha256sums = 8919d8cbab83ccc810d8c7eaf6ebb18be8ae011da90a11d98732c2537af11d11 @@ -33,8 +33,8 @@ pkgbase = linux-rc sha256sums = 88c7e90ac7a1b73b3707feacd23b66feaa4c2cc5bc39ef2807b2301274db3ad2 sha256sums = 786da96d5cc273331bf8a155b0552edcc26d79f194a016c7e4f1c1266aabafc2 sha256sums = 2d51be4ede2c19a3163899fd783a213cf9f837867915b004e0c70c548e0d96c9 - sha256sums = a2f99ed7314efcdd627bef8356a57554caa68d02d404eee28ca2c04fce2d906a sha256sums = 29e71325f9f3a9e2a6fc47f5309e3e0b03328239093f651eee47c52467e9e5bc + sha256sums = bc0d303b6f2e8a518414ff706322a39b460ae3acdbb5b0c3488e35794227d69a pkgname = linux-rc pkgdesc = The release candidate kernel and modules diff --git a/0006-ACPI-EC-Rework-flushing-of-pending-work.patch b/0006-ACPI-EC-Rework-flushing-of-pending-work.patch deleted file mode 100644 index 017a4fcc4829..000000000000 --- a/0006-ACPI-EC-Rework-flushing-of-pending-work.patch +++ /dev/null @@ -1,135 +0,0 @@ -From 07b5e7a435b04b599e000eb38f82bc56c634ea4c Mon Sep 17 00:00:00 2001 -From: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com> -Date: Thu, 28 Nov 2019 23:47:51 +0100 -Subject: [PATCH 6/8] ACPI: EC: Rework flushing of pending work - -There is a race condition in the ACPI EC driver, between -__acpi_ec_flush_event() and acpi_ec_event_handler(), that may -cause systems to stay in suspended-to-idle forever after a wakeup -event coming from the EC. - -Namely, acpi_s2idle_wake() calls acpi_ec_flush_work() to wait until -the delayed work resulting from the handling of the EC GPE in -acpi_ec_dispatch_gpe() is processed, and that function invokes -__acpi_ec_flush_event() which uses wait_event() to wait for -ec->nr_pending_queries to become zero on ec->wait, and that wait -queue may be woken up too early. - -Suppose that acpi_ec_dispatch_gpe() has caused acpi_ec_gpe_handler() -to run, so advance_transaction() has been called and it has invoked -acpi_ec_submit_query() to queue up an event work item, so -ec->nr_pending_queries has been incremented (under ec->lock). The -work function of that work item, acpi_ec_event_handler() runs later -and calls acpi_ec_query() to process the event. That function calls -acpi_ec_transaction() which invokes acpi_ec_transaction_unlocked() -and the latter wakes up ec->wait under ec->lock, but it drops that -lock before returning. - -When acpi_ec_query() returns, acpi_ec_event_handler() acquires -ec->lock and decrements ec->nr_pending_queries, but at that point -__acpi_ec_flush_event() (woken up previously) may already have -acquired ec->lock, checked the value of ec->nr_pending_queries (and -it would not have been zero then) and decided to go back to sleep. -Next, if ec->nr_pending_queries is equal to zero now, the loop -in acpi_ec_event_handler() terminates, ec->lock is released and -acpi_ec_check_event() is called, but it does nothing unless -ec_event_clearing is equal to ACPI_EC_EVT_TIMING_EVENT (which is -not the case by default). In the end, if no more event work items -have been queued up while executing acpi_ec_transaction_unlocked(), -there is nothing to wake up __acpi_ec_flush_event() again and it -sleeps forever, so the suspend-to-idle loop cannot make progress and -the system is permanently suspended. - -To avoid this issue, notice that it actually is not necessary to -wait for ec->nr_pending_queries to become zero in every case in -which __acpi_ec_flush_event() is used. - -First, during platform-based system suspend (not suspend-to-idle), -__acpi_ec_flush_event() is called by acpi_ec_disable_event() after -clearing the EC_FLAGS_QUERY_ENABLED flag, which prevents -acpi_ec_submit_query() from submitting any new event work items, -so calling flush_scheduled_work() and flushing ec_query_wq -subsequently (in order to wait until all of the queries in that -queue have been processed) would be sufficient to flush all of -the pending EC work in that case. - -Second, the purpose of the flushing of pending EC work while -suspended-to-idle described above really is to wait until the -first event work item coming from acpi_ec_dispatch_gpe() is -complete, because it should produce system wakeup events if -that is a valid EC-based system wakeup, so calling -flush_scheduled_work() followed by flushing ec_query_wq is also -sufficient for that purpose. - -Rework the code to follow the above observations. - -Fixes: 56b9918490 ("PM: sleep: Simplify suspend-to-idle control flow") -Reported-by: Kenneth R. Crudup <kenny@panix.com> -Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> ---- - drivers/acpi/ec.c | 36 +++++++++++++----------------------- - 1 file changed, 13 insertions(+), 23 deletions(-) - -diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c -index da1e5c5ce150..bd75caff8322 100644 ---- a/drivers/acpi/ec.c -+++ b/drivers/acpi/ec.c -@@ -525,26 +525,10 @@ static void acpi_ec_enable_event(struct acpi_ec *ec) - } - - #ifdef CONFIG_PM_SLEEP --static bool acpi_ec_query_flushed(struct acpi_ec *ec) -+static void __acpi_ec_flush_work(void) - { -- bool flushed; -- unsigned long flags; -- -- spin_lock_irqsave(&ec->lock, flags); -- flushed = !ec->nr_pending_queries; -- spin_unlock_irqrestore(&ec->lock, flags); -- return flushed; --} -- --static void __acpi_ec_flush_event(struct acpi_ec *ec) --{ -- /* -- * When ec_freeze_events is true, we need to flush events in -- * the proper position before entering the noirq stage. -- */ -- wait_event(ec->wait, acpi_ec_query_flushed(ec)); -- if (ec_query_wq) -- flush_workqueue(ec_query_wq); -+ flush_scheduled_work(); /* flush ec->work */ -+ flush_workqueue(ec_query_wq); /* flush queries */ - } - - static void acpi_ec_disable_event(struct acpi_ec *ec) -@@ -554,15 +538,21 @@ static void acpi_ec_disable_event(struct acpi_ec *ec) - spin_lock_irqsave(&ec->lock, flags); - __acpi_ec_disable_event(ec); - spin_unlock_irqrestore(&ec->lock, flags); -- __acpi_ec_flush_event(ec); -+ -+ /* -+ * When ec_freeze_events is true, we need to flush events in -+ * the proper position before entering the noirq stage. -+ */ -+ __acpi_ec_flush_work(); - } - - void acpi_ec_flush_work(void) - { -- if (first_ec) -- __acpi_ec_flush_event(first_ec); -+ /* Without ec_query_wq there is nothing to flush. */ -+ if (!ec_query_wq) -+ return; - -- flush_scheduled_work(); -+ __acpi_ec_flush_work(); - } - #endif /* CONFIG_PM_SLEEP */ - --- -2.24.1 - diff --git a/0007-ACPI-PM-s2idle-Rework-ACPI-events-synchronization.patch b/0006-ACPI-PM-s2idle-Rework-ACPI-events-synchronization.patch index 9e2f2eea4496..9e2f2eea4496 100644 --- a/0007-ACPI-PM-s2idle-Rework-ACPI-events-synchronization.patch +++ b/0006-ACPI-PM-s2idle-Rework-ACPI-events-synchronization.patch diff --git a/0007-drm-i915-fbc-Disable-fbc-by-default-on-all-glk.patch b/0007-drm-i915-fbc-Disable-fbc-by-default-on-all-glk.patch new file mode 100644 index 000000000000..1c074e3f1475 --- /dev/null +++ b/0007-drm-i915-fbc-Disable-fbc-by-default-on-all-glk.patch @@ -0,0 +1,44 @@ +From 1960609cc201fd1c99c17cade6956de06b3d3856 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= <ville.syrjala@linux.intel.com> +Date: Wed, 27 Nov 2019 22:12:09 +0200 +Subject: [PATCH 8/9] drm/i915/fbc: Disable fbc by default on all glk+ +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +We're missing a workaround in the fbc code for all glk+ platforms +which can cause corruption around the top of the screen. So +enabling fbc by default is a bad idea. I'm not keen to backport +the w/a so let's start by disabling fbc by default on all glk+. +We'll lift the restriction once the w/a is in place. + +Cc: stable@vger.kernel.org +Cc: Daniel Drake <drake@endlessm.com> +Cc: Paulo Zanoni <paulo.r.zanoni@intel.com> +Cc: Jian-Hong Pan <jian-hong@endlessm.com> +Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> +Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> +Link: https://patchwork.freedesktop.org/patch/msgid/20191127201222.16669-2-ville.syrjala@linux.intel.com +Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> +(cherry picked from commit cd8c021b36a66833cefe2c90a79a9e312a2a5690) +Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> +--- + drivers/gpu/drm/i915/display/intel_fbc.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c +index 16ed44bfd734..07a038f21619 100644 +--- a/drivers/gpu/drm/i915/display/intel_fbc.c ++++ b/drivers/gpu/drm/i915/display/intel_fbc.c +@@ -1284,7 +1284,7 @@ static int intel_sanitize_fbc_option(struct drm_i915_private *dev_priv) + return 0; + + /* https://bugs.freedesktop.org/show_bug.cgi?id=108085 */ +- if (IS_GEMINILAKE(dev_priv)) ++ if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv)) + return 0; + + if (IS_BROADWELL(dev_priv) || INTEL_GEN(dev_priv) >= 9) +-- +2.24.1 + @@ -7,7 +7,7 @@ _srcname=linux-5.4 _major=5.4 ### on initial release this is null otherwise it is the current stable subversion ### ie 1,2,3 corresponding $_major.1, $_major.3 etc. -_minor=3 +_minor=5 ### on initial release comment this out and set to =1 _minorc=$((_minor+1)) #_minorc=1 @@ -35,16 +35,16 @@ source=( 0003-mfd-intel-lpss-Use-devm_ioremap_uc-for-MMIO.patch 0004-PCI-pciehp-Do-not-disable-interrupt-twice-on-suspend.patch 0005-PCI-pciehp-Prevent-deadlock-on-disconnect.patch - 0006-ACPI-EC-Rework-flushing-of-pending-work.patch - 0007-ACPI-PM-s2idle-Rework-ACPI-events-synchronization.patch + 0006-ACPI-PM-s2idle-Rework-ACPI-events-synchronization.patch + 0007-drm-i915-fbc-Disable-fbc-by-default-on-all-glk.patch ) validpgpkeys=( 'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds '647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman ) -sha256sums=('01dba333cb4b631e521ca3a829c78152578070ef9b2a5d26941781d8f4f88487' +sha256sums=('3da1737f4e119fde5ce88bee11e98a11f004ee7a0e998c76be4a6785d7567a3a' 'SKIP' - '6731682f32e1b1ee53b0e7f66b8dc263d25a0e809e78e2139cb0ed77c378ee51' + '568e9f27fbba86131c2e2849f296d54216e2ed3e8c4d8aa78a93b417cab23ec0' 'SKIP' 'b7f23bbc09b6c571b76f851f0389386a6f3a64f3d7b1b8509c8550228b0f4537' '8919d8cbab83ccc810d8c7eaf6ebb18be8ae011da90a11d98732c2537af11d11' @@ -52,8 +52,8 @@ sha256sums=('01dba333cb4b631e521ca3a829c78152578070ef9b2a5d26941781d8f4f88487' '88c7e90ac7a1b73b3707feacd23b66feaa4c2cc5bc39ef2807b2301274db3ad2' '786da96d5cc273331bf8a155b0552edcc26d79f194a016c7e4f1c1266aabafc2' '2d51be4ede2c19a3163899fd783a213cf9f837867915b004e0c70c548e0d96c9' - 'a2f99ed7314efcdd627bef8356a57554caa68d02d404eee28ca2c04fce2d906a' - '29e71325f9f3a9e2a6fc47f5309e3e0b03328239093f651eee47c52467e9e5bc') + '29e71325f9f3a9e2a6fc47f5309e3e0b03328239093f651eee47c52467e9e5bc' + 'bc0d303b6f2e8a518414ff706322a39b460ae3acdbb5b0c3488e35794227d69a') _kernelname=${pkgbase#linux} |