summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Weiman2018-08-13 13:21:15 -0400
committerMark Weiman2018-08-13 13:21:15 -0400
commitea08fe1b77d0793587ce7faa05dc9886e13d8253 (patch)
treedd938537d0cc4e12bf5336f9c8192512045801b3
parentb9b5d6034cec02b119dde1e164e8fab1459d5141 (diff)
downloadaur-ea08fe1b77d0793587ce7faa05dc9886e13d8253.tar.gz
Update to 4.17.14-arch1-1
-rw-r--r--.SRCINFO26
-rw-r--r--0001-add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by.patch103
-rw-r--r--0002-Revert-drm-i915-edp-Allow-alternate-fixed-mode-for-e.patch242
-rw-r--r--0003-ACPI-watchdog-Prefer-iTCO_wdt-always-when-WDAT-table.patch132
-rw-r--r--0004-mac80211-disable-BHs-preemption-in-ieee80211_tx_cont.patch46
-rw-r--r--PKGBUILD332
-rw-r--r--add-acs-overrides.patch65
7 files changed, 211 insertions, 735 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 3425faa1863..3637b634f80 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = linux-vfio
- pkgver = 4.17.10
+ pkgver = 4.17.14.arch1
pkgrel = 1
- url = https://www.kernel.org/
+ url = https://git.archlinux.org/linux.git/log/?h=v4.17.14-arch1
arch = x86_64
license = GPL2
makedepends = xmlto
@@ -9,36 +9,24 @@ pkgbase = linux-vfio
makedepends = inetutils
makedepends = bc
makedepends = libelf
+ makedepends = git
options = !strip
- source = https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.17.tar.xz
- source = https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.17.tar.sign
- source = https://www.kernel.org/pub/linux/kernel/v4.x/patch-4.17.10.xz
- source = https://www.kernel.org/pub/linux/kernel/v4.x/patch-4.17.10.sign
+ source = archlinux-linux::git+https://git.archlinux.org/linux.git?signed#tag=v4.17.14-arch1
source = config
source = 60-linux.hook
source = 90-linux.hook
source = linux.preset
- source = 0001-add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by.patch
- source = 0002-Revert-drm-i915-edp-Allow-alternate-fixed-mode-for-e.patch
- source = 0003-ACPI-watchdog-Prefer-iTCO_wdt-always-when-WDAT-table.patch
- source = 0004-mac80211-disable-BHs-preemption-in-ieee80211_tx_cont.patch
source = add-acs-overrides.patch
source = i915-vga-arbiter.patch
validpgpkeys = ABAF11C65A2970B130ABE3C479BE3E4300411886
validpgpkeys = 647F28654894E3BD457199BE38DBBDC86092693E
- sha256sums = 9faa1dd896eaea961dc6e886697c0b3301277102e5bc976b2758f9a62d3ccd13
- sha256sums = SKIP
- sha256sums = 41ad005296c7a1b5245a87881f666b3f4d7aa05a6b9409454b2e473d473c4cee
+ validpgpkeys = 8218F88849AAC522E94CF470A5E9288C4FA415FA
sha256sums = SKIP
sha256sums = 0269d9a56f0d0306c9bd5c179a7e32214b0a1c082d3bca581661203b27305f17
sha256sums = ae2e95db94ef7176207c690224169594d49445e04249d2499e9d2fbc117a0b21
sha256sums = 75f99f5239e03238f88d1a834c50043ec32b1dc568f2cc291b07d04718483919
sha256sums = ad6344badc91ad0630caacde83f7f9b97276f80d26a20619a87952be65492c65
- sha256sums = 92f848d0e21fbb2400e50d1c1021514893423641e5450896d7b1d88aa880b2b9
- sha256sums = fc3c50ae6bd905608e0533a883ab569fcf54038fb9d6569b391107d9fd00abbc
- sha256sums = bc50c605bd0e1fa7437c21ddef728b83b6de3322b988e14713032993dfa1fc69
- sha256sums = 66284102261c4ed53db050e9045c8672ba0e5171884b46e58f6cd417774d8578
- sha256sums = 5517df72ddb44f873670c75d89544461473274b2636e2299de93eb829510ea50
+ sha256sums = 5687fbf6508be9c133c721f368be9e572751f27798995af468a363c5f2aedd33
sha256sums = fc1734c1d24aca66015d93f8636afd52afa0f939516d83efb3457da6b5044944
pkgname = linux-vfio
@@ -47,7 +35,7 @@ pkgname = linux-vfio
depends = coreutils
depends = linux-firmware
depends = kmod
- depends = mkinitcpio>=0.7
+ depends = mkinitcpio
optdepends = crda: to set the correct wireless channels of your country
backup = etc/mkinitcpio.d/linux-vfio.preset
diff --git a/0001-add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by.patch b/0001-add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by.patch
deleted file mode 100644
index 72c4f979ef8..00000000000
--- a/0001-add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-From a2d2476ffec7d988b1a5396586869570e0d6f9d8 Mon Sep 17 00:00:00 2001
-Message-Id: <a2d2476ffec7d988b1a5396586869570e0d6f9d8.1531335939.git.jan.steffens@gmail.com>
-From: Serge Hallyn <serge.hallyn@canonical.com>
-Date: Fri, 31 May 2013 19:12:12 +0100
-Subject: [PATCH 1/4] add sysctl to disallow unprivileged CLONE_NEWUSER by
- default
-
-Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
-[bwh: Remove unneeded binary sysctl bits]
-Signed-off-by: Daniel Micay <danielmicay@gmail.com>
----
- kernel/fork.c | 15 +++++++++++++++
- kernel/sysctl.c | 12 ++++++++++++
- kernel/user_namespace.c | 3 +++
- 3 files changed, 30 insertions(+)
-
-diff --git a/kernel/fork.c b/kernel/fork.c
-index a5d21c42acfc..675eb3f3a1d1 100644
---- a/kernel/fork.c
-+++ b/kernel/fork.c
-@@ -103,6 +103,11 @@
-
- #define CREATE_TRACE_POINTS
- #include <trace/events/task.h>
-+#ifdef CONFIG_USER_NS
-+extern int unprivileged_userns_clone;
-+#else
-+#define unprivileged_userns_clone 0
-+#endif
-
- /*
- * Minimum number of threads to boot the kernel
-@@ -1592,6 +1597,10 @@ static __latent_entropy struct task_struct *copy_process(
- if ((clone_flags & (CLONE_NEWUSER|CLONE_FS)) == (CLONE_NEWUSER|CLONE_FS))
- return ERR_PTR(-EINVAL);
-
-+ if ((clone_flags & CLONE_NEWUSER) && !unprivileged_userns_clone)
-+ if (!capable(CAP_SYS_ADMIN))
-+ return ERR_PTR(-EPERM);
-+
- /*
- * Thread groups must share signals as well, and detached threads
- * can only be started up within the thread group.
-@@ -2386,6 +2395,12 @@ int ksys_unshare(unsigned long unshare_flags)
- if (unshare_flags & CLONE_NEWNS)
- unshare_flags |= CLONE_FS;
-
-+ if ((unshare_flags & CLONE_NEWUSER) && !unprivileged_userns_clone) {
-+ err = -EPERM;
-+ if (!capable(CAP_SYS_ADMIN))
-+ goto bad_unshare_out;
-+ }
-+
- err = check_unshare_flags(unshare_flags);
- if (err)
- goto bad_unshare_out;
-diff --git a/kernel/sysctl.c b/kernel/sysctl.c
-index 6a78cf70761d..35a1d24282f4 100644
---- a/kernel/sysctl.c
-+++ b/kernel/sysctl.c
-@@ -105,6 +105,9 @@ extern int core_uses_pid;
- extern char core_pattern[];
- extern unsigned int core_pipe_limit;
- #endif
-+#ifdef CONFIG_USER_NS
-+extern int unprivileged_userns_clone;
-+#endif
- extern int pid_max;
- extern int pid_max_min, pid_max_max;
- extern int percpu_pagelist_fraction;
-@@ -519,6 +522,15 @@ static struct ctl_table kern_table[] = {
- .proc_handler = proc_dointvec,
- },
- #endif
-+#ifdef CONFIG_USER_NS
-+ {
-+ .procname = "unprivileged_userns_clone",
-+ .data = &unprivileged_userns_clone,
-+ .maxlen = sizeof(int),
-+ .mode = 0644,
-+ .proc_handler = proc_dointvec,
-+ },
-+#endif
- #ifdef CONFIG_PROC_SYSCTL
- {
- .procname = "tainted",
-diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c
-index 246d4d4ce5c7..f64432b45cec 100644
---- a/kernel/user_namespace.c
-+++ b/kernel/user_namespace.c
-@@ -26,6 +26,9 @@
- #include <linux/bsearch.h>
- #include <linux/sort.h>
-
-+/* sysctl */
-+int unprivileged_userns_clone;
-+
- static struct kmem_cache *user_ns_cachep __read_mostly;
- static DEFINE_MUTEX(userns_state_mutex);
-
---
-2.18.0
-
diff --git a/0002-Revert-drm-i915-edp-Allow-alternate-fixed-mode-for-e.patch b/0002-Revert-drm-i915-edp-Allow-alternate-fixed-mode-for-e.patch
deleted file mode 100644
index 8c4ceba16c9..00000000000
--- a/0002-Revert-drm-i915-edp-Allow-alternate-fixed-mode-for-e.patch
+++ /dev/null
@@ -1,242 +0,0 @@
-From bc49947e26285cf644492f9d58981e3c985d8c76 Mon Sep 17 00:00:00 2001
-Message-Id: <bc49947e26285cf644492f9d58981e3c985d8c76.1531335939.git.jan.steffens@gmail.com>
-In-Reply-To: <a2d2476ffec7d988b1a5396586869570e0d6f9d8.1531335939.git.jan.steffens@gmail.com>
-References: <a2d2476ffec7d988b1a5396586869570e0d6f9d8.1531335939.git.jan.steffens@gmail.com>
-From: Jani Nikula <jani.nikula@intel.com>
-Date: Wed, 16 May 2018 11:01:10 +0300
-Subject: [PATCH 2/4] Revert "drm/i915/edp: Allow alternate fixed mode for eDP
- if available."
-
-This reverts commit dc911f5bd8aacfcf8aabd5c26c88e04c837a938e.
-
-Per the report, no matter what display mode you select with xrandr, the
-i915 driver will always select the alternate fixed mode. For the
-reporter this means that the display will always run at 40Hz which is
-quite annoying. This may be due to the mode comparison.
-
-But there are some other potential issues. The choice of alt_fixed_mode
-seems dubious. It's the first non-preferred mode, but there are no
-guarantees that the only difference would be refresh rate. Similarly,
-there may be more than one preferred mode in the probed modes list, and
-the commit changes the preferred mode selection to choose the last one
-on the list instead of the first.
-
-(Note that the probed modes list is the raw, unfiltered, unsorted list
-of modes from drm_add_edid_modes(), not the pretty result after a
-drm_helper_probe_single_connector_modes() call.)
-
-Finally, we already have eerily similar code in place to find the
-downclock mode for DRRS that seems like could be reused here.
-
-Back to the drawing board.
-
-Note: This is a hand-crafted revert due to conflicts. If it fails to
-backport, please just try reverting the original commit directly.
-
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105469
-Reported-by: Rune Petersen <rune@megahurts.dk>
-Reported-by: Mark Spencer <n7u4722r35@ynzlx.anonbox.net>
-Fixes: dc911f5bd8aa ("drm/i915/edp: Allow alternate fixed mode for eDP if available.")
-Cc: Clint Taylor <clinton.a.taylor@intel.com>
-Cc: David Weinehall <david.weinehall@linux.intel.com>
-Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
-Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
-Cc: Jani Nikula <jani.nikula@intel.com>
-Cc: Chris Wilson <chris@chris-wilson.co.uk>
-Cc: Jim Bride <jim.bride@linux.intel.com>
-Cc: Jani Nikula <jani.nikula@linux.intel.com>
-Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
-Cc: intel-gfx@lists.freedesktop.org
-Cc: <stable@vger.kernel.org> # v4.14+
-Signed-off-by: Jani Nikula <jani.nikula@intel.com>
-Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
-Link: https://patchwork.freedesktop.org/patch/msgid/20180516080110.22770-1-jani.nikula@intel.com
----
- drivers/gpu/drm/i915/intel_dp.c | 38 ++++--------------------------
- drivers/gpu/drm/i915/intel_drv.h | 2 --
- drivers/gpu/drm/i915/intel_dsi.c | 2 +-
- drivers/gpu/drm/i915/intel_dvo.c | 2 +-
- drivers/gpu/drm/i915/intel_lvds.c | 3 +--
- drivers/gpu/drm/i915/intel_panel.c | 6 -----
- 6 files changed, 8 insertions(+), 45 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
-index cd6e87756509..492b0cb9bb2b 100644
---- a/drivers/gpu/drm/i915/intel_dp.c
-+++ b/drivers/gpu/drm/i915/intel_dp.c
-@@ -1674,23 +1674,6 @@ static int intel_dp_compute_bpp(struct intel_dp *intel_dp,
- return bpp;
- }
-
--static bool intel_edp_compare_alt_mode(struct drm_display_mode *m1,
-- struct drm_display_mode *m2)
--{
-- bool bres = false;
--
-- if (m1 && m2)
-- bres = (m1->hdisplay == m2->hdisplay &&
-- m1->hsync_start == m2->hsync_start &&
-- m1->hsync_end == m2->hsync_end &&
-- m1->htotal == m2->htotal &&
-- m1->vdisplay == m2->vdisplay &&
-- m1->vsync_start == m2->vsync_start &&
-- m1->vsync_end == m2->vsync_end &&
-- m1->vtotal == m2->vtotal);
-- return bres;
--}
--
- bool
- intel_dp_compute_config(struct intel_encoder *encoder,
- struct intel_crtc_state *pipe_config,
-@@ -1737,16 +1720,8 @@ intel_dp_compute_config(struct intel_encoder *encoder,
- pipe_config->has_audio = intel_conn_state->force_audio == HDMI_AUDIO_ON;
-
- if (intel_dp_is_edp(intel_dp) && intel_connector->panel.fixed_mode) {
-- struct drm_display_mode *panel_mode =
-- intel_connector->panel.alt_fixed_mode;
-- struct drm_display_mode *req_mode = &pipe_config->base.mode;
--
-- if (!intel_edp_compare_alt_mode(req_mode, panel_mode))
-- panel_mode = intel_connector->panel.fixed_mode;
--
-- drm_mode_debug_printmodeline(panel_mode);
--
-- intel_fixed_panel_mode(panel_mode, adjusted_mode);
-+ intel_fixed_panel_mode(intel_connector->panel.fixed_mode,
-+ adjusted_mode);
-
- if (INTEL_GEN(dev_priv) >= 9) {
- int ret;
-@@ -6123,7 +6098,6 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp,
- struct drm_i915_private *dev_priv = to_i915(dev);
- struct drm_connector *connector = &intel_connector->base;
- struct drm_display_mode *fixed_mode = NULL;
-- struct drm_display_mode *alt_fixed_mode = NULL;
- struct drm_display_mode *downclock_mode = NULL;
- bool has_dpcd;
- struct drm_display_mode *scan;
-@@ -6178,14 +6152,13 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp,
- }
- intel_connector->edid = edid;
-
-- /* prefer fixed mode from EDID if available, save an alt mode also */
-+ /* prefer fixed mode from EDID if available */
- list_for_each_entry(scan, &connector->probed_modes, head) {
- if ((scan->type & DRM_MODE_TYPE_PREFERRED)) {
- fixed_mode = drm_mode_duplicate(dev, scan);
- downclock_mode = intel_dp_drrs_init(
- intel_connector, fixed_mode);
-- } else if (!alt_fixed_mode) {
-- alt_fixed_mode = drm_mode_duplicate(dev, scan);
-+ break;
- }
- }
-
-@@ -6222,8 +6195,7 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp,
- pipe_name(pipe));
- }
-
-- intel_panel_init(&intel_connector->panel, fixed_mode, alt_fixed_mode,
-- downclock_mode);
-+ intel_panel_init(&intel_connector->panel, fixed_mode, downclock_mode);
- intel_connector->panel.backlight.power = intel_edp_backlight_power;
- intel_panel_setup_backlight(connector, pipe);
-
-diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
-index a80fbad9be0f..7f3e83f17adb 100644
---- a/drivers/gpu/drm/i915/intel_drv.h
-+++ b/drivers/gpu/drm/i915/intel_drv.h
-@@ -269,7 +269,6 @@ struct intel_encoder {
-
- struct intel_panel {
- struct drm_display_mode *fixed_mode;
-- struct drm_display_mode *alt_fixed_mode;
- struct drm_display_mode *downclock_mode;
-
- /* backlight */
-@@ -1820,7 +1819,6 @@ void intel_overlay_reset(struct drm_i915_private *dev_priv);
- /* intel_panel.c */
- int intel_panel_init(struct intel_panel *panel,
- struct drm_display_mode *fixed_mode,
-- struct drm_display_mode *alt_fixed_mode,
- struct drm_display_mode *downclock_mode);
- void intel_panel_fini(struct intel_panel *panel);
- void intel_fixed_panel_mode(const struct drm_display_mode *fixed_mode,
-diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c
-index 384b37e2da70..f349b3920199 100644
---- a/drivers/gpu/drm/i915/intel_dsi.c
-+++ b/drivers/gpu/drm/i915/intel_dsi.c
-@@ -1852,7 +1852,7 @@ void intel_dsi_init(struct drm_i915_private *dev_priv)
- connector->display_info.width_mm = fixed_mode->width_mm;
- connector->display_info.height_mm = fixed_mode->height_mm;
-
-- intel_panel_init(&intel_connector->panel, fixed_mode, NULL, NULL);
-+ intel_panel_init(&intel_connector->panel, fixed_mode, NULL);
- intel_panel_setup_backlight(connector, INVALID_PIPE);
-
- intel_dsi_add_properties(intel_connector);
-diff --git a/drivers/gpu/drm/i915/intel_dvo.c b/drivers/gpu/drm/i915/intel_dvo.c
-index 6604806f89d5..61d908e0df0e 100644
---- a/drivers/gpu/drm/i915/intel_dvo.c
-+++ b/drivers/gpu/drm/i915/intel_dvo.c
-@@ -542,7 +542,7 @@ void intel_dvo_init(struct drm_i915_private *dev_priv)
- */
- intel_panel_init(&intel_connector->panel,
- intel_dvo_get_current_mode(intel_encoder),
-- NULL, NULL);
-+ NULL);
- intel_dvo->panel_wants_dither = true;
- }
-
-diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
-index 34dd1e5233ac..48f618dc9abb 100644
---- a/drivers/gpu/drm/i915/intel_lvds.c
-+++ b/drivers/gpu/drm/i915/intel_lvds.c
-@@ -1180,8 +1180,7 @@ void intel_lvds_init(struct drm_i915_private *dev_priv)
- out:
- mutex_unlock(&dev->mode_config.mutex);
-
-- intel_panel_init(&intel_connector->panel, fixed_mode, NULL,
-- downclock_mode);
-+ intel_panel_init(&intel_connector->panel, fixed_mode, downclock_mode);
- intel_panel_setup_backlight(connector, INVALID_PIPE);
-
- lvds_encoder->is_dual_link = compute_is_dual_link_lvds(lvds_encoder);
-diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
-index 41d00b1603e3..b443278e569c 100644
---- a/drivers/gpu/drm/i915/intel_panel.c
-+++ b/drivers/gpu/drm/i915/intel_panel.c
-@@ -1928,30 +1928,24 @@ intel_panel_init_backlight_funcs(struct intel_panel *panel)
-
- int intel_panel_init(struct intel_panel *panel,
- struct drm_display_mode *fixed_mode,
-- struct drm_display_mode *alt_fixed_mode,
- struct drm_display_mode *downclock_mode)
- {
- intel_panel_init_backlight_funcs(panel);
-
- panel->fixed_mode = fixed_mode;
-- panel->alt_fixed_mode = alt_fixed_mode;
- panel->downclock_mode = downclock_mode;
-
- return 0;
- }
-
- void intel_panel_fini(struct intel_panel *panel)
- {
- struct intel_connector *intel_connector =
- container_of(panel, struct intel_connector, panel);
-
- if (panel->fixed_mode)
- drm_mode_destroy(intel_connector->base.dev, panel->fixed_mode);
-
-- if (panel->alt_fixed_mode)
-- drm_mode_destroy(intel_connector->base.dev,
-- panel->alt_fixed_mode);
--
- if (panel->downclock_mode)
- drm_mode_destroy(intel_connector->base.dev,
- panel->downclock_mode);
---
-2.18.0
-
diff --git a/0003-ACPI-watchdog-Prefer-iTCO_wdt-always-when-WDAT-table.patch b/0003-ACPI-watchdog-Prefer-iTCO_wdt-always-when-WDAT-table.patch
deleted file mode 100644
index 00ae30e9e4a..00000000000
--- a/0003-ACPI-watchdog-Prefer-iTCO_wdt-always-when-WDAT-table.patch
+++ /dev/null
@@ -1,132 +0,0 @@
-From 598ca9d1cc714cb530141c20a90dc25d34f861fd Mon Sep 17 00:00:00 2001
-Message-Id: <598ca9d1cc714cb530141c20a90dc25d34f861fd.1531335939.git.jan.steffens@gmail.com>
-In-Reply-To: <a2d2476ffec7d988b1a5396586869570e0d6f9d8.1531335939.git.jan.steffens@gmail.com>
-References: <a2d2476ffec7d988b1a5396586869570e0d6f9d8.1531335939.git.jan.steffens@gmail.com>
-From: Mika Westerberg <mika.westerberg@linux.intel.com>
-Date: Tue, 22 May 2018 14:16:50 +0300
-Subject: [PATCH 3/4] ACPI / watchdog: Prefer iTCO_wdt always when WDAT table
- uses RTC SRAM
-
-After we added quirk for Lenovo Z50-70 it turns out there are at least
-two more systems where WDAT table includes instructions accessing RTC
-SRAM. Instead of quirking each system separately, look for such
-instructions in the table and automatically prefer iTCO_wdt if found.
-
-Link: https://bugzilla.kernel.org/show_bug.cgi?id=199033
-Reported-by: Arnold Guy <aurnoldg@gmail.com>
-Reported-by: Alois Nespor <nespor@fssp.cz>
-Reported-by: Yury Pakin <zxwarior@gmail.com>
-Reported-by: Ihor Chyhin <ihorchyhin@ukr.net>
-Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
-Acked-by: Guenter Roeck <linux@roeck-us.net>
----
- drivers/acpi/acpi_watchdog.c | 72 ++++++++++++++++++++++--------------
- 1 file changed, 45 insertions(+), 27 deletions(-)
-
-diff --git a/drivers/acpi/acpi_watchdog.c b/drivers/acpi/acpi_watchdog.c
-index 4bde16fb97d8..95600309ce42 100644
---- a/drivers/acpi/acpi_watchdog.c
-+++ b/drivers/acpi/acpi_watchdog.c
-@@ -12,54 +12,72 @@
- #define pr_fmt(fmt) "ACPI: watchdog: " fmt
-
- #include <linux/acpi.h>
--#include <linux/dmi.h>
- #include <linux/ioport.h>
- #include <linux/platform_device.h>
-
- #include "internal.h"
-
--static const struct dmi_system_id acpi_watchdog_skip[] = {
-- {
-- /*
-- * On Lenovo Z50-70 there are two issues with the WDAT
-- * table. First some of the instructions use RTC SRAM
-- * to store persistent information. This does not work well
-- * with Linux RTC driver. Second, more important thing is
-- * that the instructions do not actually reset the system.
-- *
-- * On this particular system iTCO_wdt seems to work just
-- * fine so we prefer that over WDAT for now.
-- *
-- * See also https://bugzilla.kernel.org/show_bug.cgi?id=199033.
-- */
-- .ident = "Lenovo Z50-70",
-- .matches = {
-- DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
-- DMI_MATCH(DMI_PRODUCT_NAME, "20354"),
-- DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo Z50-70"),
-- },
-- },
-- {}
--};
-+#ifdef CONFIG_RTC_MC146818_LIB
-+#include <linux/mc146818rtc.h>
-+
-+/*
-+ * There are several systems where the WDAT table is accessing RTC SRAM to
-+ * store persistent information. This does not work well with the Linux RTC
-+ * driver so on those systems we skip WDAT driver and prefer iTCO_wdt
-+ * instead.
-+ *
-+ * See also https://bugzilla.kernel.org/show_bug.cgi?id=199033.
-+ */
-+static bool acpi_watchdog_uses_rtc(const struct acpi_table_wdat *wdat)
-+{
-+ const struct acpi_wdat_entry *entries;
-+ int i;
-+
-+ entries = (struct acpi_wdat_entry *)(wdat + 1);
-+ for (i = 0; i < wdat->entries; i++) {
-+ const struct acpi_generic_address *gas;
-+
-+ gas = &entries[i].register_region;
-+ if (gas->space_id == ACPI_ADR_SPACE_SYSTEM_IO) {
-+ switch (gas->address) {
-+ case RTC_PORT(0):
-+ case RTC_PORT(1):
-+ case RTC_PORT(2):
-+ case RTC_PORT(3):
-+ return true;
-+ }
-+ }
-+ }
-+
-+ return false;
-+}
-+#else
-+static bool acpi_watchdog_uses_rtc(const struct acpi_table_wdat *wdat)
-+{
-+ return false;
-+}
-+#endif
-
- static const struct acpi_table_wdat *acpi_watchdog_get_wdat(void)
- {
- const struct acpi_table_wdat *wdat = NULL;
- acpi_status status;
-
- if (acpi_disabled)
- return NULL;
-
-- if (dmi_check_system(acpi_watchdog_skip))
-- return NULL;
--
- status = acpi_get_table(ACPI_SIG_WDAT, 0,
- (struct acpi_table_header **)&wdat);
- if (ACPI_FAILURE(status)) {
- /* It is fine if there is no WDAT */
- return NULL;
- }
-
-+ if (acpi_watchdog_uses_rtc(wdat)) {
-+ pr_info("Skipping WDAT on this system because it uses RTC SRAM\n");
-+ return NULL;
-+ }
-+
- return wdat;
- }
-
---
-2.18.0
-
diff --git a/0004-mac80211-disable-BHs-preemption-in-ieee80211_tx_cont.patch b/0004-mac80211-disable-BHs-preemption-in-ieee80211_tx_cont.patch
deleted file mode 100644
index de3385e8d51..00000000000
--- a/0004-mac80211-disable-BHs-preemption-in-ieee80211_tx_cont.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 32a72bee7a275f47c235fdb36249703c892ce8d8 Mon Sep 17 00:00:00 2001
-Message-Id: <32a72bee7a275f47c235fdb36249703c892ce8d8.1531335939.git.jan.steffens@gmail.com>
-In-Reply-To: <a2d2476ffec7d988b1a5396586869570e0d6f9d8.1531335939.git.jan.steffens@gmail.com>
-References: <a2d2476ffec7d988b1a5396586869570e0d6f9d8.1531335939.git.jan.steffens@gmail.com>
-From: Denis Kenzior <denkenz@gmail.com>
-Date: Tue, 19 Jun 2018 10:39:50 -0500
-Subject: [PATCH 4/4] mac80211: disable BHs/preemption in
- ieee80211_tx_control_port()
-
-On pre-emption enabled kernels the following print was being seen due to
-missing local_bh_disable/local_bh_enable calls. mac80211 assumes that
-pre-emption is disabled in the data path.
-
- BUG: using smp_processor_id() in preemptible [00000000] code: iwd/517
- caller is __ieee80211_subif_start_xmit+0x144/0x210 [mac80211]
- [...]
- Call Trace:
- dump_stack+0x5c/0x80
- check_preemption_disabled.cold.0+0x46/0x51
- __ieee80211_subif_start_xmit+0x144/0x210 [mac80211]
-
-Fixes: 911806491425 ("mac80211: Add support for tx_control_port")
-Signed-off-by: Denis Kenzior <denkenz@gmail.com>
-[commit message rewrite, fixes tag]
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
----
- net/mac80211/tx.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
-index 05a265cd573d..7404a5114597 100644
---- a/net/mac80211/tx.c
-+++ b/net/mac80211/tx.c
-@@ -4800,7 +4800,9 @@ int ieee80211_tx_control_port(struct wiphy *wiphy, struct net_device *dev,
- skb_reset_network_header(skb);
- skb_reset_mac_header(skb);
-
-+ local_bh_disable();
- __ieee80211_subif_start_xmit(skb, skb->dev, flags);
-+ local_bh_enable();
-
- return 0;
- }
---
-2.18.0
-
diff --git a/PKGBUILD b/PKGBUILD
index dfb934befdb..ac4686cead1 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,256 +1,228 @@
-# Maintainer: Dan Ziemba <zman0900@gmail.com>
-# Maintainer: Mark Weiman <markzz@archlinux.net>
+# $Id$
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Maintainer: Thomas Baechler <thomas@archlinux.org>
pkgbase=linux-vfio
-_srcname=linux-4.17
-pkgver=4.17.10
+_srcver=4.17.14-arch1
+pkgver=${_srcver//-/.}
pkgrel=1
-arch=('x86_64')
-url="https://www.kernel.org/"
-license=('GPL2')
-makedepends=('xmlto' 'kmod' 'inetutils' 'bc' 'libelf')
+arch=(x86_64)
+url="https://git.archlinux.org/linux.git/log/?h=v$_srcver"
+license=(GPL2)
+makedepends=(xmlto kmod inetutils bc libelf git)
options=('!strip')
+_srcname=archlinux-linux
source=(
- https://www.kernel.org/pub/linux/kernel/v4.x/${_srcname}.tar.{xz,sign}
- https://www.kernel.org/pub/linux/kernel/v4.x/patch-${pkgver}.{xz,sign}
- config # the main kernel config file
- 60-linux.hook # pacman hook for depmod
- 90-linux.hook # pacman hook for initramfs regeneration
- linux.preset # standard config files for mkinitcpio ramdisk
- 0001-add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by.patch
- 0002-Revert-drm-i915-edp-Allow-alternate-fixed-mode-for-e.patch
- 0003-ACPI-watchdog-Prefer-iTCO_wdt-always-when-WDAT-table.patch
- 0004-mac80211-disable-BHs-preemption-in-ieee80211_tx_cont.patch
- # patches for pci passthrough
- add-acs-overrides.patch
- i915-vga-arbiter.patch
+ "$_srcname::git+https://git.archlinux.org/linux.git?signed#tag=v$_srcver"
+ config # the main kernel config file
+ 60-linux.hook # pacman hook for depmod
+ 90-linux.hook # pacman hook for initramfs regeneration
+ linux.preset # standard config files for mkinitcpio ramdisk
+ add-acs-overrides.patch # patch for acs overrides
+ i915-vga-arbiter.patch # patch for i915 VGA arbiter
)
validpgpkeys=(
'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds
'647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman
+ '8218F88849AAC522E94CF470A5E9288C4FA415FA' # Jan Alexander Steffens (heftig)
)
-sha256sums=('9faa1dd896eaea961dc6e886697c0b3301277102e5bc976b2758f9a62d3ccd13'
- 'SKIP'
- '41ad005296c7a1b5245a87881f666b3f4d7aa05a6b9409454b2e473d473c4cee'
- 'SKIP'
+sha256sums=('SKIP'
'0269d9a56f0d0306c9bd5c179a7e32214b0a1c082d3bca581661203b27305f17'
'ae2e95db94ef7176207c690224169594d49445e04249d2499e9d2fbc117a0b21'
'75f99f5239e03238f88d1a834c50043ec32b1dc568f2cc291b07d04718483919'
'ad6344badc91ad0630caacde83f7f9b97276f80d26a20619a87952be65492c65'
- '92f848d0e21fbb2400e50d1c1021514893423641e5450896d7b1d88aa880b2b9'
- 'fc3c50ae6bd905608e0533a883ab569fcf54038fb9d6569b391107d9fd00abbc'
- 'bc50c605bd0e1fa7437c21ddef728b83b6de3322b988e14713032993dfa1fc69'
- '66284102261c4ed53db050e9045c8672ba0e5171884b46e58f6cd417774d8578'
- '5517df72ddb44f873670c75d89544461473274b2636e2299de93eb829510ea50'
+ '5687fbf6508be9c133c721f368be9e572751f27798995af468a363c5f2aedd33'
'fc1734c1d24aca66015d93f8636afd52afa0f939516d83efb3457da6b5044944')
_kernelname=${pkgbase#linux}
: ${_kernelname:=-ARCH}
prepare() {
- cd ${_srcname}
-
- # add upstream patch
- patch -p1 -i ../patch-${pkgver}
-
- # add latest fixes from stable queue, if needed
- # http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git
-
- # disable USER_NS for non-root users by default
- patch -Np1 -i ../0001-add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by.patch
-
- # https://bugs.archlinux.org/task/56711
- patch -Np1 -i ../0002-Revert-drm-i915-edp-Allow-alternate-fixed-mode-for-e.patch
-
- # https://bugs.archlinux.org/task/56780
- patch -Np1 -i ../0003-ACPI-watchdog-Prefer-iTCO_wdt-always-when-WDAT-table.patch
-
- # Fix iwd provoking a BUG
- patch -Np1 -i ../0004-mac80211-disable-BHs-preemption-in-ieee80211_tx_cont.patch
-
- # patches for vga arbiter fix in intel systems
- patch -p1 -i "${srcdir}/i915-vga-arbiter.patch"
-
- # Overrides for missing acs capabilities
- patch -p1 -i "${srcdir}/add-acs-overrides.patch"
-
- cat ../config - >.config <<END
-CONFIG_LOCALVERSION="${_kernelname}"
-CONFIG_LOCALVERSION_AUTO=n
-END
-
- # set extraversion to pkgrel and empty localversion
- sed -e "/^EXTRAVERSION =/s/=.*/= -${pkgrel}/" \
- -e "/^EXTRAVERSION =/aLOCALVERSION =" \
- -i Makefile
-
- # don't run depmod on 'make install'. We'll do this ourselves in packaging
- sed -i '2iexit 0' scripts/depmod.sh
-
- # get kernel version
- make prepare
+ cd $_srcname
+
+ msg2 "Setting version..."
+ scripts/setlocalversion --save-scmversion
+ echo "-$pkgrel" > localversion.10-pkgrel
+ echo "$_kernelname" > localversion.20-pkgname
+
+ local src
+ for src in "${source[@]}"; do
+ src="${src%%::*}"
+ src="${src##*/}"
+ [[ $src = *.patch ]] || continue
+ msg2 "Applying patch $src..."
+ patch -Np1 < "../$src"
+ done
- # load configuration
- # Configure the kernel. Replace the line below with one of your choice.
- #make menuconfig # CLI menu for configuration
- #make nconfig # new CLI menu for configuration
- #make xconfig # X-based configuration
- #make oldconfig # using old config from previous kernel version
- # ... or manually edit .config
+ msg2 "Setting config..."
+ cp ../config .config
+ make olddefconfig
- # rewrite configuration
- yes "" | make config >/dev/null
+ make -s kernelrelease > ../version
+ msg2 "Prepared %s version %s" "$pkgbase" "$(<../version)"
}
build() {
- cd ${_srcname}
-
+ cd $_srcname
make bzImage modules
}
_package() {
pkgdesc="The ${pkgbase/linux/Linux} kernel and modules"
- [ "${pkgbase}" = "linux" ] && groups=('base')
- depends=('coreutils' 'linux-firmware' 'kmod' 'mkinitcpio>=0.7')
+ [[ $pkgbase = linux ]] && groups=(base)
+ depends=(coreutils linux-firmware kmod mkinitcpio)
optdepends=('crda: to set the correct wireless channels of your country')
- backup=("etc/mkinitcpio.d/${pkgbase}.preset")
+ backup=("etc/mkinitcpio.d/$pkgbase.preset")
install=linux.install
- cd ${_srcname}
+ local kernver="$(<version)"
- # get kernel version
- _kernver="$(make kernelrelease)"
- _basekernel=${_kernver%%-*}
- _basekernel=${_basekernel%.*}
+ cd $_srcname
- mkdir -p "${pkgdir}"/{boot,usr/lib/modules}
- make INSTALL_MOD_PATH="${pkgdir}/usr" modules_install
- cp arch/x86/boot/bzImage "${pkgdir}/boot/vmlinuz-${pkgbase}"
+ msg2 "Installing boot image..."
+ install -Dm644 "$(make -s image_name)" "$pkgdir/boot/vmlinuz-$pkgbase"
- # make room for external modules
- local _extramodules="extramodules-${_basekernel}${_kernelname}"
- ln -s "../${_extramodules}" "${pkgdir}/usr/lib/modules/${_kernver}/extramodules"
+ msg2 "Installing modules..."
+ local modulesdir="$pkgdir/usr/lib/modules/$kernver"
+ mkdir -p "$modulesdir"
+ make INSTALL_MOD_PATH="$pkgdir/usr" DEPMOD=/doesnt/exist modules_install
- # add real version for building modules and running depmod from hook
- echo "${_kernver}" |
- install -Dm644 /dev/stdin "${pkgdir}/usr/lib/modules/${_extramodules}/version"
+ # a place for external modules,
+ # with version file for building modules and running depmod from hook
+ local extramodules="extramodules$_kernelname"
+ local extradir="$pkgdir/usr/lib/modules/$extramodules"
+ install -Dt "$extradir" -m644 ../version
+ ln -sr "$extradir" "$modulesdir/extramodules"
# remove build and source links
- rm "${pkgdir}"/usr/lib/modules/${_kernver}/{source,build}
+ rm "$modulesdir"/{source,build}
- # now we call depmod...
- depmod -b "${pkgdir}/usr" -F System.map "${_kernver}"
+ msg2 "Running depmod..."
+ depmod -b "$pkgdir/usr" -E Module.symvers -e "$kernver"
- # add vmlinux
- install -Dt "${pkgdir}/usr/lib/modules/${_kernver}/build" -m644 vmlinux
+ msg2 "Installing hooks..."
# sed expression for following substitutions
- local _subst="
- s|%PKGBASE%|${pkgbase}|g
- s|%KERNVER%|${_kernver}|g
- s|%EXTRAMODULES%|${_extramodules}|g
+ local subst="
+ s|%PKGBASE%|$pkgbase|g
+ s|%KERNVER%|$kernver|g
+ s|%EXTRAMODULES%|$extramodules|g
"
# hack to allow specifying an initially nonexisting install file
- sed "${_subst}" "${startdir}/${install}" > "${startdir}/${install}.pkg"
- true && install=${install}.pkg
-
- # install mkinitcpio preset file
- sed "${_subst}" ../linux.preset |
- install -Dm644 /dev/stdin "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset"
-
- # install pacman hooks
- sed "${_subst}" ../60-linux.hook |
- install -Dm644 /dev/stdin "${pkgdir}/usr/share/libalpm/hooks/60-${pkgbase}.hook"
- sed "${_subst}" ../90-linux.hook |
- install -Dm644 /dev/stdin "${pkgdir}/usr/share/libalpm/hooks/90-${pkgbase}.hook"
+ sed "$subst" "$startdir/$install" > "$startdir/$install.pkg"
+ true && install=$install.pkg
+
+ # fill in mkinitcpio preset and pacman hooks
+ sed "$subst" ../linux.preset | install -Dm644 /dev/stdin \
+ "$pkgdir/etc/mkinitcpio.d/$pkgbase.preset"
+ sed "$subst" ../60-linux.hook | install -Dm644 /dev/stdin \
+ "$pkgdir/usr/share/libalpm/hooks/60-$pkgbase.hook"
+ sed "$subst" ../90-linux.hook | install -Dm644 /dev/stdin \
+ "$pkgdir/usr/share/libalpm/hooks/90-$pkgbase.hook"
+
+ msg2 "Fixing permissions..."
+ chmod -Rc u=rwX,go=rX "$pkgdir"
}
_package-headers() {
pkgdesc="Header files and scripts for building modules for ${pkgbase/linux/Linux} kernel"
- cd ${_srcname}
- local _builddir="${pkgdir}/usr/lib/modules/${_kernver}/build"
+ local builddir="$pkgdir/usr/lib/modules/$(<version)/build"
- install -Dt "${_builddir}" -m644 Makefile .config Module.symvers
- install -Dt "${_builddir}/kernel" -m644 kernel/Makefile
+ cd $_srcname
- mkdir "${_builddir}/.tmp_versions"
+ msg2 "Installing build files..."
+ install -Dt "$builddir" -m644 Makefile .config Module.symvers System.map vmlinux
+ install -Dt "$builddir/kernel" -m644 kernel/Makefile
+ install -Dt "$builddir/arch/x86" -m644 arch/x86/Makefile
+ cp -t "$builddir" -a scripts
- cp -t "${_builddir}" -a include scripts
+ # add objtool for external module building and enabled VALIDATION_STACK option
+ install -Dt "$builddir/tools/objtool" tools/objtool/objtool
+
+ # add xfs and shmem for aufs building
+ mkdir -p "$builddir"/{fs/xfs,mm}
- install -Dt "${_builddir}/arch/x86" -m644 arch/x86/Makefile
- install -Dt "${_builddir}/arch/x86/kernel" -m644 arch/x86/kernel/asm-offsets.s
+ # ???
+ mkdir "$builddir/.tmp_versions"
- cp -t "${_builddir}/arch/x86" -a arch/x86/include
+ msg2 "Installing headers..."
+ cp -t "$builddir" -a include
+ cp -t "$builddir/arch/x86" -a arch/x86/include
+ install -Dt "$builddir/arch/x86/kernel" -m644 arch/x86/kernel/asm-offsets.s
- install -Dt "${_builddir}/drivers/md" -m644 drivers/md/*.h
- install -Dt "${_builddir}/net/mac80211" -m644 net/mac80211/*.h
+ install -Dt "$builddir/drivers/md" -m644 drivers/md/*.h
+ install -Dt "$builddir/net/mac80211" -m644 net/mac80211/*.h
# http://bugs.archlinux.org/task/13146
- install -Dt "${_builddir}/drivers/media/i2c" -m644 drivers/media/i2c/msp3400-driver.h
+ install -Dt "$builddir/drivers/media/i2c" -m644 drivers/media/i2c/msp3400-driver.h
# http://bugs.archlinux.org/task/20402
- install -Dt "${_builddir}/drivers/media/usb/dvb-usb" -m644 drivers/media/usb/dvb-usb/*.h
- install -Dt "${_builddir}/drivers/media/dvb-frontends" -m644 drivers/media/dvb-frontends/*.h
- install -Dt "${_builddir}/drivers/media/tuners" -m644 drivers/media/tuners/*.h
-
- # add xfs and shmem for aufs building
- mkdir -p "${_builddir}"/{fs/xfs,mm}
-
- # copy in Kconfig files
- find . -name Kconfig\* -exec install -Dm644 {} "${_builddir}/{}" \;
-
- # add objtool for external module building and enabled VALIDATION_STACK option
- install -Dt "${_builddir}/tools/objtool" tools/objtool/objtool
-
- # remove unneeded architectures
- local _arch
- for _arch in "${_builddir}"/arch/*/; do
- [[ ${_arch} == */x86/ ]] && continue
- rm -r "${_arch}"
+ install -Dt "$builddir/drivers/media/usb/dvb-usb" -m644 drivers/media/usb/dvb-usb/*.h
+ install -Dt "$builddir/drivers/media/dvb-frontends" -m644 drivers/media/dvb-frontends/*.h
+ install -Dt "$builddir/drivers/media/tuners" -m644 drivers/media/tuners/*.h
+
+ msg2 "Installing KConfig files..."
+ find . -name 'Kconfig*' -exec install -Dm644 {} "$builddir/{}" \;
+
+ msg2 "Removing unneeded architectures..."
+ local arch
+ for arch in "$builddir"/arch/*/; do
+ [[ $arch = */x86/ ]] && continue
+ echo "Removing $(basename "$arch")"
+ rm -r "$arch"
done
- # remove files already in linux-docs package
- rm -r "${_builddir}/Documentation"
-
- # remove now broken symlinks
- find -L "${_builddir}" -type l -printf 'Removing %P\n' -delete
-
- # Fix permissions
- chmod -R u=rwX,go=rX "${_builddir}"
-
- # strip scripts directory
- local _binary _strip
- while read -rd '' _binary; do
- case "$(file -bi "${_binary}")" in
- *application/x-sharedlib*) _strip="${STRIP_SHARED}" ;; # Libraries (.so)
- *application/x-archive*) _strip="${STRIP_STATIC}" ;; # Libraries (.a)
- *application/x-executable*) _strip="${STRIP_BINARIES}" ;; # Binaries
- *) continue ;;
+ msg2 "Removing documentation..."
+ rm -r "$builddir/Documentation"
+
+ msg2 "Removing broken symlinks..."
+ find -L "$builddir" -type l -printf 'Removing %P\n' -delete
+
+ msg2 "Removing loose objects..."
+ find "$builddir" -type f -name '*.o' -printf 'Removing %P\n' -delete
+
+ msg2 "Stripping build tools..."
+ local file
+ while read -rd '' file; do
+ case "$(file -bi "$file")" in
+ application/x-sharedlib\;*) # Libraries (.so)
+ strip -v $STRIP_SHARED "$file" ;;
+ application/x-archive\;*) # Libraries (.a)
+ strip -v $STRIP_STATIC "$file" ;;
+ application/x-executable\;*) # Binaries
+ strip -v $STRIP_BINARIES "$file" ;;
+ application/x-pie-executable\;*) # Relocatable binaries
+ strip -v $STRIP_SHARED "$file" ;;
esac
- /usr/bin/strip ${_strip} "${_binary}"
- done < <(find "${_builddir}/scripts" -type f -perm -u+w -print0 2>/dev/null)
+ done < <(find "$builddir" -type f -perm -u+x ! -name vmlinux -print0)
+
+ msg2 "Fixing permissions..."
+ chmod -Rc u=rwX,go=rX "$pkgdir"
}
_package-docs() {
pkgdesc="Kernel hackers manual - HTML documentation that comes with the ${pkgbase/linux/Linux} kernel"
- cd ${_srcname}
- local _builddir="${pkgdir}/usr/lib/modules/${_kernver}/build"
+ local builddir="$pkgdir/usr/lib/modules/$(<version)/build"
+
+ cd $_srcname
- mkdir -p "${_builddir}"
- cp -t "${_builddir}" -a Documentation
+ msg2 "Installing documentation..."
+ mkdir -p "$builddir"
+ cp -t "$builddir" -a Documentation
- # Fix permissions
- chmod -R u=rwX,go=rX "${_builddir}"
+ msg2 "Fixing permissions..."
+ chmod -Rc u=rwX,go=rX "$pkgdir"
}
-pkgname=("${pkgbase}" "${pkgbase}-headers" "${pkgbase}-docs")
-for _p in ${pkgname[@]}; do
- eval "package_${_p}() {
- $(declare -f "_package${_p#${pkgbase}}")
- _package${_p#${pkgbase}}
+pkgname=("$pkgbase" "$pkgbase-headers" "$pkgbase-docs")
+for _p in "${pkgname[@]}"; do
+ eval "package_$_p() {
+ $(declare -f "_package${_p#$pkgbase}")
+ _package${_p#$pkgbase}
}"
done
diff --git a/add-acs-overrides.patch b/add-acs-overrides.patch
index b92a5f326d6..b4c39f178ed 100644
--- a/add-acs-overrides.patch
+++ b/add-acs-overrides.patch
@@ -1,22 +1,61 @@
-From 087743912610c92eeff1ffbfbd2964faac969d0f Mon Sep 17 00:00:00 2001
+From 3cf550fd8ca366897abe643442d198d1647cadc7 Mon Sep 17 00:00:00 2001
From: Mark Weiman <mark.weiman@markzz.com>
-Date: Sun, 24 Jun 2018 12:31:25 -0400
-Subject: [PATCH] pci: Enable overrides for missing ACS capabilities (4.17)
+Date: Sun, 12 Aug 2018 11:36:21 -0400
+Subject: [PATCH] pci: Enable overrides for missing ACS capabilities (4.17.14)
This an updated version of Alex Williamson's patch from:
https://lkml.org/lkml/2013/5/30/513
Original commit message follows:
---
+PCIe ACS (Access Control Services) is the PCIe 2.0+ feature that
+allows us to control whether transactions are allowed to be redirected
+in various subnodes of a PCIe topology. For instance, if two
+endpoints are below a root port or downsteam switch port, the
+downstream port may optionally redirect transactions between the
+devices, bypassing upstream devices. The same can happen internally
+on multifunction devices. The transaction may never be visible to the
+upstream devices.
+
+One upstream device that we particularly care about is the IOMMU. If
+a redirection occurs in the topology below the IOMMU, then the IOMMU
+cannot provide isolation between devices. This is why the PCIe spec
+encourages topologies to include ACS support. Without it, we have to
+assume peer-to-peer DMA within a hierarchy can bypass IOMMU isolation.
+
+Unfortunately, far too many topologies do not support ACS to make this
+a steadfast requirement. Even the latest chipsets from Intel are only
+sporadically supporting ACS. We have trouble getting interconnect
+vendors to include the PCIe spec required PCIe capability, let alone
+suggested features.
+
+Therefore, we need to add some flexibility. The pcie_acs_override=
+boot option lets users opt-in specific devices or sets of devices to
+assume ACS support. The "downstream" option assumes full ACS support
+on root ports and downstream switch ports. The "multifunction"
+option assumes the subset of ACS features available on multifunction
+endpoints and upstream switch ports are supported. The "id:nnnn:nnnn"
+option enables ACS support on devices matching the provided vendor
+and device IDs, allowing more strategic ACS overrides. These options
+may be combined in any order. A maximum of 16 id specific overrides
+are available. It's suggested to use the most limited set of options
+necessary to avoid completely disabling ACS across the topology.
+Note to hardware vendors, we have facilities to permanently quirk
+specific devices which enforce isolation but not provide an ACS
+capability. Please contact me to have your devices added and save
+your customers the hassle of this boot option.
+
+Signed-off-by: Mark Weiman <mark.weiman@markzz.com>
+---
.../admin-guide/kernel-parameters.txt | 8 ++
drivers/pci/quirks.c | 102 ++++++++++++++++++
2 files changed, 110 insertions(+)
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
-index 533ff5c68970..353481231683 100644
+index ff4ba249a26f..e23d259d461f 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
-@@ -3028,6 +3028,14 @@
+@@ -3019,6 +3019,14 @@
nomsi [MSI] If the PCI_MSI kernel config parameter is
enabled, this kernel boot option can be used to
disable the use of MSI interrupts system-wide.
@@ -32,11 +71,11 @@ index 533ff5c68970..353481231683 100644
Safety option to keep boot IRQs enabled. This
should never be necessary.
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
-index f439de848658..5c3ec5e04349 100644
+index 785a29ba4f51..63fb2096f90d 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
-@@ -186,6 +186,106 @@ static int __init pci_apply_final_quirks(void)
- }
+@@ -3533,6 +3533,106 @@ static int __init pci_apply_final_quirks(void)
+
fs_initcall_sync(pci_apply_final_quirks);
+static bool acs_on_downstream;
@@ -140,14 +179,14 @@ index f439de848658..5c3ec5e04349 100644
+}
+
/*
- * Decoding should be disabled for a PCI device during BAR sizing to avoid
- * conflict. But doing so may cause problems on host bridge and perhaps other
-@@ -4395,6 +4495,8 @@ static const struct pci_dev_acs_enabled {
+ * Following are device-specific reset methods which can be used to
+ * reset a single function if other methods (e.g. FLR, PM D0->D3) are
+@@ -4401,6 +4501,8 @@ static const struct pci_dev_acs_enabled {
{ PCI_VENDOR_ID_AMPERE, 0xE00A, pci_quirk_xgene_acs },
{ PCI_VENDOR_ID_AMPERE, 0xE00B, pci_quirk_xgene_acs },
{ PCI_VENDOR_ID_AMPERE, 0xE00C, pci_quirk_xgene_acs },
-+ /* allow acs for any */
-+ { PCI_ANY_ID, PCI_ANY_ID, pcie_acs_overrides },
++ /* allow acs for any */
++ { PCI_ANY_ID, PCI_ANY_ID, pcie_acs_overrides },
{ 0 }
};