diff --git a/kernel/tools/cpupowertools/files/patches/linux/patch-4.3.2.xz b/kernel/tools/cpupowertools/files/patches/linux/patch-4.3.2.xz deleted file mode 100644 index 32f9f186..00000000 Binary files a/kernel/tools/cpupowertools/files/patches/linux/patch-4.3.2.xz and /dev/null differ diff --git a/kernel/tools/cpupowertools/files/patches/linux/patch-4.4.1.xz b/kernel/tools/cpupowertools/files/patches/linux/patch-4.4.1.xz deleted file mode 100644 index 7a414d5b..00000000 Binary files a/kernel/tools/cpupowertools/files/patches/linux/patch-4.4.1.xz and /dev/null differ diff --git a/kernel/tools/cpupowertools/files/patches/linux/patch-4.4.4.xz b/kernel/tools/cpupowertools/files/patches/linux/patch-4.4.4.xz deleted file mode 100644 index f8dad414..00000000 Binary files a/kernel/tools/cpupowertools/files/patches/linux/patch-4.4.4.xz and /dev/null differ diff --git a/kernel/tools/cpupowertools/files/patches/linux/patch-4.6.3.xz b/kernel/tools/cpupowertools/files/patches/linux/patch-4.6.3.xz deleted file mode 100644 index ea360870..00000000 Binary files a/kernel/tools/cpupowertools/files/patches/linux/patch-4.6.3.xz and /dev/null differ diff --git a/kernel/tools/cpupowertools/files/patches/linux/patch-4.8.8.xz b/kernel/tools/cpupowertools/files/patches/linux/patch-4.8.8.xz new file mode 100644 index 00000000..a4467b37 Binary files /dev/null and b/kernel/tools/cpupowertools/files/patches/linux/patch-4.8.8.xz differ diff --git a/kernel/tools/cpupowertools/files/patches/mageia/PCI-Don-t-attempt-to-claim-shadow-copies-of-ROM.patch b/kernel/tools/cpupowertools/files/patches/mageia/PCI-Don-t-attempt-to-claim-shadow-copies-of-ROM.patch new file mode 100644 index 00000000..29a180f3 --- /dev/null +++ b/kernel/tools/cpupowertools/files/patches/mageia/PCI-Don-t-attempt-to-claim-shadow-copies-of-ROM.patch @@ -0,0 +1,64 @@ +From 16d917b130d782b94fa02afc7bdf0d4aae689da4 Mon Sep 17 00:00:00 2001 +From: Bjorn Helgaas +Date: Tue, 8 Nov 2016 14:25:24 -0600 +Subject: [PATCH] PCI: Don't attempt to claim shadow copies of ROM + +If we're using a shadow copy of a PCI device ROM, the shadow copy is in RAM +and the device never sees accesses to it and doesn't respond to it. We +don't have to route the shadow range to the PCI device, and the device +doesn't have to claim the range. + +Previously we treated the shadow copy as though it were the ROM BAR, and we +failed to claim it because the region wasn't routed to the device: + + pci 0000:01:00.0: Video device with shadowed ROM at [mem 0x000c0000-0x000dffff] + pci_bus 0000:01: Allocating resources + pci 0000:01:00.0: can't claim BAR 6 [mem 0x000c0000-0x000dffff]: no compatible bridge window + +The failure path of pcibios_allocate_dev_rom_resource() cleared out the +resource start address, which also caused the following ioremap() warning: + + WARNING: CPU: 0 PID: 116 at /build/linux-akdJXO/linux-4.8.0/arch/x86/mm/ioremap.c:121 __ioremap_caller+0x1ec/0x370 + ioremap on RAM at 0x0000000000000000 - 0x000000000001ffff + +Handle an option ROM shadow copy as RAM, without trying to insert it into +the iomem resource tree. + +This fixes a regression caused by 0c0e0736acad ("PCI: Set ROM shadow +location in arch code, not in PCI core"), which appeared in v4.6. The +regression causes video device initialization to fail. This was reported +on AMD Turks, but it likely affects others as well. + +Fixes: 0c0e0736acad ("PCI: Set ROM shadow location in arch code, not in PCI core") +Reported-and-tested-by: Vecu Bosseur +Link: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1627496 +Link: https://bugzilla.kernel.org/show_bug.cgi?id=175391 +Link: https://bugzilla.redhat.com/show_bug.cgi?id=1352272 +Signed-off-by: Bjorn Helgaas +CC: stable@vger.kernel.org # v4.6+ +--- + drivers/pci/setup-res.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/drivers/pci/setup-res.c b/drivers/pci/setup-res.c +index 66c4d8f..9526e34 100644 +--- a/drivers/pci/setup-res.c ++++ b/drivers/pci/setup-res.c +@@ -121,6 +121,14 @@ int pci_claim_resource(struct pci_dev *dev, int resource) + return -EINVAL; + } + ++ /* ++ * If we have a shadow copy in RAM, the PCI device doesn't respond ++ * to the shadow range, so we don't need to claim it, and upstream ++ * bridges don't need to route the range to the device. ++ */ ++ if (res->flags & IORESOURCE_ROM_SHADOW) ++ return 0; ++ + root = pci_find_parent_resource(dev, res); + if (!root) { + dev_info(&dev->dev, "can't claim BAR %d %pR: no compatible bridge window\n", +-- +2.10.2 + diff --git a/kernel/tools/cpupowertools/files/patches/mageia/dm-raid-fix-compat_features-validation.patch b/kernel/tools/cpupowertools/files/patches/mageia/dm-raid-fix-compat_features-validation.patch deleted file mode 100644 index f2261039..00000000 --- a/kernel/tools/cpupowertools/files/patches/mageia/dm-raid-fix-compat_features-validation.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 5c33677c87cbe44ae04df69c4a29c1750a9ec4e5 Mon Sep 17 00:00:00 2001 -From: Andy Whitcroft -Date: Tue, 11 Oct 2016 15:16:57 +0100 -Subject: [PATCH] dm raid: fix compat_features validation - -In ecbfb9f118bce4 ("dm raid: add raid level takeover support") a new -compatible feature flag was added. Validation for these compat_features -was added but this only passes for new raid mappings with this feature -flag. This causes previously created raid mappings to be failed at -import. - -Check compat_features for the only valid combination. - -Fixes: ecbfb9f118bce4 ("dm raid: add raid level takeover support") -Cc: stable@vger.kernel.org # v4.8 -Signed-off-by: Andy Whitcroft -Signed-off-by: Heinz Mauelshagen -Signed-off-by: Mike Snitzer ---- - drivers/md/dm-raid.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/drivers/md/dm-raid.c b/drivers/md/dm-raid.c -index 8abde6b..2a39700 100644 ---- a/drivers/md/dm-raid.c -+++ b/drivers/md/dm-raid.c -@@ -2258,7 +2258,8 @@ static int super_validate(struct raid_set *rs, struct md_rdev *rdev) - if (!mddev->events && super_init_validation(rs, rdev)) - return -EINVAL; - -- if (le32_to_cpu(sb->compat_features) != FEATURE_FLAG_SUPPORTS_V190) { -+ if (le32_to_cpu(sb->compat_features) && -+ le32_to_cpu(sb->compat_features) != FEATURE_FLAG_SUPPORTS_V190) { - rs->ti->error = "Unable to assemble array: Unknown flag(s) in compatible feature flags"; - return -EINVAL; - } --- -2.10.1 - diff --git a/kernel/tools/cpupowertools/files/patches/mageia/gpu-drm-amdgpu-fix-crash-in-acp_hw_fini.patch b/kernel/tools/cpupowertools/files/patches/mageia/gpu-drm-amdgpu-fix-crash-in-acp_hw_fini.patch new file mode 100644 index 00000000..409f10c6 --- /dev/null +++ b/kernel/tools/cpupowertools/files/patches/mageia/gpu-drm-amdgpu-fix-crash-in-acp_hw_fini.patch @@ -0,0 +1,37 @@ +From 757124d95c42bb579d67df51e51789849929ee31 Mon Sep 17 00:00:00 2001 +From: Alex Deucher +Date: Thu, 3 Nov 2016 17:47:51 -0400 +Subject: [PATCH] drm/amdgpu: fix crash in acp_hw_fini + +On CZ/ST systems with AZ rather than ACP audio, we need to bail +early in hw_fini since there is nothing to do. + +bug: https://bugs.freedesktop.org/show_bug.cgi?id=98276 + +Signed-off-by: Alex Deucher +Cc: stable@vger.kernel.org +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c +index 892d60f..2057683 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c +@@ -395,9 +395,12 @@ static int acp_hw_fini(void *handle) + { + int i, ret; + struct device *dev; +- + struct amdgpu_device *adev = (struct amdgpu_device *)handle; + ++ /* return early if no ACP */ ++ if (!adev->acp.acp_genpd) ++ return 0; ++ + for (i = 0; i < ACP_DEVS ; i++) { + dev = get_mfd_cell_dev(adev->acp.acp_cell[i].name, i); + ret = pm_genpd_remove_device(&adev->acp.acp_genpd->gpd, dev); +-- +2.10.2 + diff --git a/kernel/tools/cpupowertools/files/patches/mageia/gpu-drm-i915-dp-BDW-cdclk-fix-for-DP-audio.patch b/kernel/tools/cpupowertools/files/patches/mageia/gpu-drm-i915-dp-BDW-cdclk-fix-for-DP-audio.patch new file mode 100644 index 00000000..4309b478 --- /dev/null +++ b/kernel/tools/cpupowertools/files/patches/mageia/gpu-drm-i915-dp-BDW-cdclk-fix-for-DP-audio.patch @@ -0,0 +1,88 @@ +From fbb21c5202ae7f1e71e832b1af59fb047da6383e Mon Sep 17 00:00:00 2001 +From: Dhinakaran Pandiyan +Date: Tue, 1 Nov 2016 11:47:59 -0700 +Subject: [PATCH] drm/i915/dp: BDW cdclk fix for DP audio +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +According to BSpec, cdclk for BDW has to be not less than 432 MHz with DP +audio enabled, port width x4, and link rate HBR2 (5.4 GHz). With cdclk less +than 432 MHz, enabling audio leads to pipe FIFO underruns and displays +cycling on/off. + +From BSpec: +"Display» BDW-SKL» dpr» [Register] DP_TP_CTL [BDW+,EXCLUDE(CHV)] +Workaround : Do not use DisplayPort with CDCLK less than 432 MHz, audio +enabled, port width x4, and link rate HBR2 (5.4 GHz), or else there may +be audio corruption or screen corruption." + +Since, some DP configurations (e.g., MST) use port width x4 and HBR2 +link rate, let's increase the cdclk to >= 432 MHz to enable audio for those +cases. + +v4: Changed commit message +v3: Combine BDW pixel rate adjustments into a function (Jani) +v2: Restrict fix to BDW + Retain the set cdclk across modesets (Ville) +Cc: stable@vger.kernel.org +Signed-off-by: Dhinakaran Pandiyan +Reviewed-by: Ville Syrjälä +Reviewed-by: Jani Nikula +Signed-off-by: Jani Nikula +Link: http://patchwork.freedesktop.org/patch/msgid/1478026080-2925-1-git-send-email-dhinakaran.pandiyan@intel.com + +(cherry picked from commit b30ce9e0552aa017ac6f2243f3c2d8e36fe52e69) +Signed-off-by: Jani Nikula +--- + drivers/gpu/drm/i915/intel_display.c | 27 ++++++++++++++++++++++++--- + 1 file changed, 24 insertions(+), 3 deletions(-) + +diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c +index 0ad1879..4f57f8c 100644 +--- a/drivers/gpu/drm/i915/intel_display.c ++++ b/drivers/gpu/drm/i915/intel_display.c +@@ -10243,6 +10243,27 @@ static void bxt_modeset_commit_cdclk(struct drm_atomic_state *old_state) + bxt_set_cdclk(to_i915(dev), req_cdclk); + } + ++static int bdw_adjust_min_pipe_pixel_rate(struct intel_crtc_state *crtc_state, ++ int pixel_rate) ++{ ++ /* pixel rate mustn't exceed 95% of cdclk with IPS on BDW */ ++ if (crtc_state->ips_enabled) ++ pixel_rate = DIV_ROUND_UP(pixel_rate * 100, 95); ++ ++ /* BSpec says "Do not use DisplayPort with CDCLK less than ++ * 432 MHz, audio enabled, port width x4, and link rate ++ * HBR2 (5.4 GHz), or else there may be audio corruption or ++ * screen corruption." ++ */ ++ if (intel_crtc_has_dp_encoder(crtc_state) && ++ crtc_state->has_audio && ++ crtc_state->port_clock >= 540000 && ++ crtc_state->lane_count == 4) ++ pixel_rate = max(432000, pixel_rate); ++ ++ return pixel_rate; ++} ++ + /* compute the max rate for new configuration */ + static int ilk_max_pixel_rate(struct drm_atomic_state *state) + { +@@ -10268,9 +10289,9 @@ static int ilk_max_pixel_rate(struct drm_atomic_state *state) + + pixel_rate = ilk_pipe_pixel_rate(crtc_state); + +- /* pixel rate mustn't exceed 95% of cdclk with IPS on BDW */ +- if (IS_BROADWELL(dev_priv) && crtc_state->ips_enabled) +- pixel_rate = DIV_ROUND_UP(pixel_rate * 100, 95); ++ if (IS_BROADWELL(dev_priv)) ++ pixel_rate = bdw_adjust_min_pipe_pixel_rate(crtc_state, ++ pixel_rate); + + intel_state->min_pixclk[i] = pixel_rate; + } +-- +2.10.2 + diff --git a/kernel/tools/cpupowertools/files/patches/mageia/gpu-drm-i915-dp-Extend-BDW-DP-audio-workaround-to-GEN9-p.patch b/kernel/tools/cpupowertools/files/patches/mageia/gpu-drm-i915-dp-Extend-BDW-DP-audio-workaround-to-GEN9-p.patch new file mode 100644 index 00000000..a334c098 --- /dev/null +++ b/kernel/tools/cpupowertools/files/patches/mageia/gpu-drm-i915-dp-Extend-BDW-DP-audio-workaround-to-GEN9-p.patch @@ -0,0 +1,56 @@ +From 61e0c5438866d0e737937fc35d752538960e1e9f Mon Sep 17 00:00:00 2001 +From: Dhinakaran Pandiyan +Date: Wed, 2 Nov 2016 13:13:21 -0700 +Subject: [PATCH] drm/i915/dp: Extend BDW DP audio workaround to GEN9 platforms + +According to BSpec, cdclk for BDW has to be not less than 432 MHz with DP +audio enabled, port width x4, and link rate HBR2 (5.4 GHz). With cdclk less +than 432 MHz, enabling audio leads to pipe FIFO underruns and displays +cycling on/off. + +Let's apply this work around to GEN9 platforms too, as it fixes the same +issue. + +v2: Move drm_device to drm_i915_private conversion + +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97907 +Cc: stable@vger.kernel.org +Cc: Libin Yang +Signed-off-by: Dhinakaran Pandiyan +Reviewed-by: Jani Nikula +Signed-off-by: Jani Nikula +Link: http://patchwork.freedesktop.org/patch/msgid/1478117601-19122-1-git-send-email-dhinakaran.pandiyan@intel.com +(cherry picked from commit 9c7540241885838cfc7fa58c4a8bd75be0303ed1) +Signed-off-by: Jani Nikula +--- + drivers/gpu/drm/i915/intel_display.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c +index 4f57f8c..81c1149 100644 +--- a/drivers/gpu/drm/i915/intel_display.c ++++ b/drivers/gpu/drm/i915/intel_display.c +@@ -10246,8 +10246,10 @@ static void bxt_modeset_commit_cdclk(struct drm_atomic_state *old_state) + static int bdw_adjust_min_pipe_pixel_rate(struct intel_crtc_state *crtc_state, + int pixel_rate) + { ++ struct drm_i915_private *dev_priv = to_i915(crtc_state->base.crtc->dev); ++ + /* pixel rate mustn't exceed 95% of cdclk with IPS on BDW */ +- if (crtc_state->ips_enabled) ++ if (IS_BROADWELL(dev_priv) && crtc_state->ips_enabled) + pixel_rate = DIV_ROUND_UP(pixel_rate * 100, 95); + + /* BSpec says "Do not use DisplayPort with CDCLK less than +@@ -10289,7 +10291,7 @@ static int ilk_max_pixel_rate(struct drm_atomic_state *state) + + pixel_rate = ilk_pipe_pixel_rate(crtc_state); + +- if (IS_BROADWELL(dev_priv)) ++ if (IS_BROADWELL(dev_priv) || IS_GEN9(dev_priv)) + pixel_rate = bdw_adjust_min_pipe_pixel_rate(crtc_state, + pixel_rate); + +-- +2.10.2 + diff --git a/kernel/tools/cpupowertools/files/patches/mageia/gpu-drm-i915-gen9-fix-DDB-partitioning-for-multi-screen-cases.patch b/kernel/tools/cpupowertools/files/patches/mageia/gpu-drm-i915-gen9-fix-DDB-partitioning-for-multi-screen-cases.patch deleted file mode 100644 index f7d2ac73..00000000 --- a/kernel/tools/cpupowertools/files/patches/mageia/gpu-drm-i915-gen9-fix-DDB-partitioning-for-multi-screen-cases.patch +++ /dev/null @@ -1,75 +0,0 @@ -From 5a920b85f2c6e3fd7d9dd9bb3f3345e9085e2360 Mon Sep 17 00:00:00 2001 -From: Paulo Zanoni -Date: Tue, 4 Oct 2016 14:37:32 -0300 -Subject: drm/i915/gen9: fix DDB partitioning for multi-screen cases - -With the previous code we were only recomputing the DDB partitioning -for the CRTCs included in the atomic commit, so any other active CRTCs -would end up having their DDB registers zeroed. In this patch we make -sure that the computed state starts as a copy of the current -partitioning, and then we only zero the DDBs that we're actually -going to recompute. - -How to reproduce the bug: - 1 - Enable the primary plane on pipe A - 2 - Enable the primary plane on pipe B - 3 - Enable the cursor or sprite plane on pipe A - -Step 3 will zero the DDB partitioning for pipe B since it's not -included in the commit that enabled the cursor or sprite for pipe A. - -I expect this to fix many FIFO underrun problems on gen9+. - -v2: - - Mention the cursor on the steps to reproduce the problem (Paulo). - - Add Testcase tag provided by Maarten (Maarten). - -Testcase: kms_cursor_legacy.cursorA-vs-flipB-atomic-transitions -Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96226 -Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96828 -Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97450 -Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97596 -Bugzilla: https://www.phoronix.com/scan.php?page=news_item&px=Intel-Skylake-Multi-Screen-Woes -Cc: stable@vger.kernel.org -Signed-off-by: Paulo Zanoni -Reviewed-by: Lyude -Link: http://patchwork.freedesktop.org/patch/msgid/1475602652-17326-1-git-send-email-paulo.r.zanoni@intel.com - -diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c -index 7f1748a..fe6c1c6 100644 ---- a/drivers/gpu/drm/i915/intel_pm.c -+++ b/drivers/gpu/drm/i915/intel_pm.c -@@ -3362,13 +3362,15 @@ skl_allocate_pipe_ddb(struct intel_crtc_state *cstate, - int num_active; - int id, i; - -+ /* Clear the partitioning for disabled planes. */ -+ memset(ddb->plane[pipe], 0, sizeof(ddb->plane[pipe])); -+ memset(ddb->y_plane[pipe], 0, sizeof(ddb->y_plane[pipe])); -+ - if (WARN_ON(!state)) - return 0; - - if (!cstate->base.active) { - ddb->pipe[pipe].start = ddb->pipe[pipe].end = 0; -- memset(ddb->plane[pipe], 0, sizeof(ddb->plane[pipe])); -- memset(ddb->y_plane[pipe], 0, sizeof(ddb->y_plane[pipe])); - return 0; - } - -@@ -4054,6 +4056,12 @@ skl_compute_ddb(struct drm_atomic_state *state) - intel_state->wm_results.dirty_pipes = ~0; - } - -+ /* -+ * We're not recomputing for the pipes not included in the commit, so -+ * make sure we start with the current state. -+ */ -+ memcpy(ddb, &dev_priv->wm.skl_hw.ddb, sizeof(*ddb)); -+ - for_each_intel_crtc_mask(dev, intel_crtc, realloc_pipes) { - struct intel_crtc_state *cstate; - --- -cgit v0.10.2 - diff --git a/kernel/tools/cpupowertools/files/patches/mageia/net-add-recursion-limit-to-GRO.patch b/kernel/tools/cpupowertools/files/patches/mageia/net-add-recursion-limit-to-GRO.patch deleted file mode 100644 index a3e3aa52..00000000 --- a/kernel/tools/cpupowertools/files/patches/mageia/net-add-recursion-limit-to-GRO.patch +++ /dev/null @@ -1,242 +0,0 @@ -From fcd91dd449867c6bfe56a81cabba76b829fd05cd Mon Sep 17 00:00:00 2001 -From: Sabrina Dubroca -Date: Thu, 20 Oct 2016 15:58:02 +0200 -Subject: [PATCH] net: add recursion limit to GRO -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Currently, GRO can do unlimited recursion through the gro_receive -handlers. This was fixed for tunneling protocols by limiting tunnel GRO -to one level with encap_mark, but both VLAN and TEB still have this -problem. Thus, the kernel is vulnerable to a stack overflow, if we -receive a packet composed entirely of VLAN headers. - -This patch adds a recursion counter to the GRO layer to prevent stack -overflow. When a gro_receive function hits the recursion limit, GRO is -aborted for this skb and it is processed normally. This recursion -counter is put in the GRO CB, but could be turned into a percpu counter -if we run out of space in the CB. - -Thanks to Vladimír Beneš for the initial bug report. - -Fixes: CVE-2016-7039 -Fixes: 9b174d88c257 ("net: Add Transparent Ethernet Bridging GRO support.") -Fixes: 66e5133f19e9 ("vlan: Add GRO support for non hardware accelerated vlan") -Signed-off-by: Sabrina Dubroca -Reviewed-by: Jiri Benc -Acked-by: Hannes Frederic Sowa -Acked-by: Tom Herbert -Signed-off-by: David S. Miller ---- - drivers/net/geneve.c | 2 +- - drivers/net/vxlan.c | 2 +- - include/linux/netdevice.h | 39 ++++++++++++++++++++++++++++++++++++++- - net/8021q/vlan.c | 2 +- - net/core/dev.c | 1 + - net/ethernet/eth.c | 2 +- - net/ipv4/af_inet.c | 2 +- - net/ipv4/fou.c | 4 ++-- - net/ipv4/gre_offload.c | 2 +- - net/ipv4/udp_offload.c | 2 +- - net/ipv6/ip6_offload.c | 2 +- - 11 files changed, 49 insertions(+), 11 deletions(-) - -diff --git a/drivers/net/geneve.c b/drivers/net/geneve.c -index 3c20e87..16af1ce 100644 ---- a/drivers/net/geneve.c -+++ b/drivers/net/geneve.c -@@ -453,7 +453,7 @@ static struct sk_buff **geneve_gro_receive(struct sock *sk, - - skb_gro_pull(skb, gh_len); - skb_gro_postpull_rcsum(skb, gh, gh_len); -- pp = ptype->callbacks.gro_receive(head, skb); -+ pp = call_gro_receive(ptype->callbacks.gro_receive, head, skb); - flush = 0; - - out_unlock: -diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c -index e7d1668..c1639a3 100644 ---- a/drivers/net/vxlan.c -+++ b/drivers/net/vxlan.c -@@ -583,7 +583,7 @@ static struct sk_buff **vxlan_gro_receive(struct sock *sk, - } - } - -- pp = eth_gro_receive(head, skb); -+ pp = call_gro_receive(eth_gro_receive, head, skb); - flush = 0; - - out: -diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h -index 465e128..91ee364 100644 ---- a/include/linux/netdevice.h -+++ b/include/linux/netdevice.h -@@ -2169,7 +2169,10 @@ struct napi_gro_cb { - /* Used to determine if flush_id can be ignored */ - u8 is_atomic:1; - -- /* 5 bit hole */ -+ /* Number of gro_receive callbacks this packet already went through */ -+ u8 recursion_counter:4; -+ -+ /* 1 bit hole */ - - /* used to support CHECKSUM_COMPLETE for tunneling protocols */ - __wsum csum; -@@ -2180,6 +2183,40 @@ struct napi_gro_cb { - - #define NAPI_GRO_CB(skb) ((struct napi_gro_cb *)(skb)->cb) - -+#define GRO_RECURSION_LIMIT 15 -+static inline int gro_recursion_inc_test(struct sk_buff *skb) -+{ -+ return ++NAPI_GRO_CB(skb)->recursion_counter == GRO_RECURSION_LIMIT; -+} -+ -+typedef struct sk_buff **(*gro_receive_t)(struct sk_buff **, struct sk_buff *); -+static inline struct sk_buff **call_gro_receive(gro_receive_t cb, -+ struct sk_buff **head, -+ struct sk_buff *skb) -+{ -+ if (unlikely(gro_recursion_inc_test(skb))) { -+ NAPI_GRO_CB(skb)->flush |= 1; -+ return NULL; -+ } -+ -+ return cb(head, skb); -+} -+ -+typedef struct sk_buff **(*gro_receive_sk_t)(struct sock *, struct sk_buff **, -+ struct sk_buff *); -+static inline struct sk_buff **call_gro_receive_sk(gro_receive_sk_t cb, -+ struct sock *sk, -+ struct sk_buff **head, -+ struct sk_buff *skb) -+{ -+ if (unlikely(gro_recursion_inc_test(skb))) { -+ NAPI_GRO_CB(skb)->flush |= 1; -+ return NULL; -+ } -+ -+ return cb(sk, head, skb); -+} -+ - struct packet_type { - __be16 type; /* This is really htons(ether_type). */ - struct net_device *dev; /* NULL is wildcarded here */ -diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c -index 8de138d..f2531ad 100644 ---- a/net/8021q/vlan.c -+++ b/net/8021q/vlan.c -@@ -664,7 +664,7 @@ static struct sk_buff **vlan_gro_receive(struct sk_buff **head, - - skb_gro_pull(skb, sizeof(*vhdr)); - skb_gro_postpull_rcsum(skb, vhdr, sizeof(*vhdr)); -- pp = ptype->callbacks.gro_receive(head, skb); -+ pp = call_gro_receive(ptype->callbacks.gro_receive, head, skb); - - out_unlock: - rcu_read_unlock(); -diff --git a/net/core/dev.c b/net/core/dev.c -index b09ac57..dbc8713 100644 ---- a/net/core/dev.c -+++ b/net/core/dev.c -@@ -4511,6 +4511,7 @@ static enum gro_result dev_gro_receive(struct napi_struct *napi, struct sk_buff - NAPI_GRO_CB(skb)->flush = 0; - NAPI_GRO_CB(skb)->free = 0; - NAPI_GRO_CB(skb)->encap_mark = 0; -+ NAPI_GRO_CB(skb)->recursion_counter = 0; - NAPI_GRO_CB(skb)->is_fou = 0; - NAPI_GRO_CB(skb)->is_atomic = 1; - NAPI_GRO_CB(skb)->gro_remcsum_start = 0; -diff --git a/net/ethernet/eth.c b/net/ethernet/eth.c -index 66dff5e..02acfff 100644 ---- a/net/ethernet/eth.c -+++ b/net/ethernet/eth.c -@@ -439,7 +439,7 @@ struct sk_buff **eth_gro_receive(struct sk_buff **head, - - skb_gro_pull(skb, sizeof(*eh)); - skb_gro_postpull_rcsum(skb, eh, sizeof(*eh)); -- pp = ptype->callbacks.gro_receive(head, skb); -+ pp = call_gro_receive(ptype->callbacks.gro_receive, head, skb); - - out_unlock: - rcu_read_unlock(); -diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c -index 1effc98..9648c97 100644 ---- a/net/ipv4/af_inet.c -+++ b/net/ipv4/af_inet.c -@@ -1391,7 +1391,7 @@ struct sk_buff **inet_gro_receive(struct sk_buff **head, struct sk_buff *skb) - skb_gro_pull(skb, sizeof(*iph)); - skb_set_transport_header(skb, skb_gro_offset(skb)); - -- pp = ops->callbacks.gro_receive(head, skb); -+ pp = call_gro_receive(ops->callbacks.gro_receive, head, skb); - - out_unlock: - rcu_read_unlock(); -diff --git a/net/ipv4/fou.c b/net/ipv4/fou.c -index cf50f7e..030d153 100644 ---- a/net/ipv4/fou.c -+++ b/net/ipv4/fou.c -@@ -249,7 +249,7 @@ static struct sk_buff **fou_gro_receive(struct sock *sk, - if (!ops || !ops->callbacks.gro_receive) - goto out_unlock; - -- pp = ops->callbacks.gro_receive(head, skb); -+ pp = call_gro_receive(ops->callbacks.gro_receive, head, skb); - - out_unlock: - rcu_read_unlock(); -@@ -441,7 +441,7 @@ static struct sk_buff **gue_gro_receive(struct sock *sk, - if (WARN_ON_ONCE(!ops || !ops->callbacks.gro_receive)) - goto out_unlock; - -- pp = ops->callbacks.gro_receive(head, skb); -+ pp = call_gro_receive(ops->callbacks.gro_receive, head, skb); - flush = 0; - - out_unlock: -diff --git a/net/ipv4/gre_offload.c b/net/ipv4/gre_offload.c -index 96e0efe..d5cac99 100644 ---- a/net/ipv4/gre_offload.c -+++ b/net/ipv4/gre_offload.c -@@ -229,7 +229,7 @@ static struct sk_buff **gre_gro_receive(struct sk_buff **head, - /* Adjusted NAPI_GRO_CB(skb)->csum after skb_gro_pull()*/ - skb_gro_postpull_rcsum(skb, greh, grehlen); - -- pp = ptype->callbacks.gro_receive(head, skb); -+ pp = call_gro_receive(ptype->callbacks.gro_receive, head, skb); - flush = 0; - - out_unlock: -diff --git a/net/ipv4/udp_offload.c b/net/ipv4/udp_offload.c -index f9333c9..b2be1d9 100644 ---- a/net/ipv4/udp_offload.c -+++ b/net/ipv4/udp_offload.c -@@ -295,7 +295,7 @@ struct sk_buff **udp_gro_receive(struct sk_buff **head, struct sk_buff *skb, - - skb_gro_pull(skb, sizeof(struct udphdr)); /* pull encapsulating udp header */ - skb_gro_postpull_rcsum(skb, uh, sizeof(struct udphdr)); -- pp = udp_sk(sk)->gro_receive(sk, head, skb); -+ pp = call_gro_receive_sk(udp_sk(sk)->gro_receive, sk, head, skb); - - out_unlock: - rcu_read_unlock(); -diff --git a/net/ipv6/ip6_offload.c b/net/ipv6/ip6_offload.c -index e7bfd55..1fcf61f 100644 ---- a/net/ipv6/ip6_offload.c -+++ b/net/ipv6/ip6_offload.c -@@ -246,7 +246,7 @@ static struct sk_buff **ipv6_gro_receive(struct sk_buff **head, - - skb_gro_postpull_rcsum(skb, iph, nlen); - -- pp = ops->callbacks.gro_receive(head, skb); -+ pp = call_gro_receive(ops->callbacks.gro_receive, head, skb); - - out_unlock: - rcu_read_unlock(); --- -2.10.1 - diff --git a/kernel/tools/cpupowertools/files/patches/mageia/series b/kernel/tools/cpupowertools/files/patches/mageia/series index e7a005b7..2fdc824d 100644 --- a/kernel/tools/cpupowertools/files/patches/mageia/series +++ b/kernel/tools/cpupowertools/files/patches/mageia/series @@ -41,9 +41,6 @@ Revert-cpufreq-pcc-Enable-autoload-of-pcc-cpufreq-fo.patch # breaks nvidia304 Revert-x86-mm-mtrr-Remove-kernel-internal-MTRR-inter.patch -# fix non-booting systems -x86-smpboot-Init-apic-mapping-before-usage.patch - ### ### Core ### @@ -68,6 +65,9 @@ kernel-governor-cpupower-Correct-return-type-of-cpu_power_is_cpu_onl.patch pci-add-ALI-M5229-ide-compatibility-mode-quirk.patch pci-quirks-drop-devinit-exit.patch +# fix video detection failure on Amd Turks +PCI-Don-t-attempt-to-claim-shadow-copies-of-ROM.patch + ### ### PNP core ### @@ -139,9 +139,6 @@ nvmepatch1-V4.patch nvmepatch2-V4.patch nvmepatch3-V4.patch -# fix feature check, reported on dev@ ml -dm-raid-fix-compat_features-validation.patch - ### ### Char ### @@ -190,13 +187,12 @@ gpu-drm-mach64-linux-3.14-buildfix.patch gpu-drm-mach64-3.17-buildfix.patch gpu-drm-mach64-3.18-buildfix.patch -# Attempt to fix FIFO underrun problems: -# (from https://patchwork.freedesktop.org/patch/113642/ and -# also from https://bugs.freedesktop.org/attachment.cgi?id=127264, first reference from -# https://bugs.freedesktop.org/show_bug.cgi?id=97450). Does not completely resolve the -# issues but reduce. -# now in drm-next: https://cgit.freedesktop.org/~airlied/linux/commit?h=drm-next&id=5a920b85f2c6e3fd7d9dd9bb3f3345e9085e2360 -gpu-drm-i915-gen9-fix-DDB-partitioning-for-multi-screen-cases.patch +# amdgpu crash +gpu-drm-amdgpu-fix-crash-in-acp_hw_fini.patch + +# i915 dp fix +gpu-drm-i915-dp-BDW-cdclk-fix-for-DP-audio.patch +gpu-drm-i915-dp-Extend-BDW-DP-audio-workaround-to-GEN9-p.patch ### ### Hardware Monitoring @@ -252,9 +248,6 @@ net-netfilter-psd-2.6.35-buildfix.patch # rtlwifi regression net-wireless-rtlwifi-Fix-regression-caused-by-commit-d86e64768859.patch -# CVE-2016-7039 -net-add-recursion-limit-to-GRO.patch - ### ### Platform drivers ### diff --git a/kernel/tools/cpupowertools/files/patches/mageia/x86-smpboot-Init-apic-mapping-before-usage.patch b/kernel/tools/cpupowertools/files/patches/mageia/x86-smpboot-Init-apic-mapping-before-usage.patch deleted file mode 100644 index 6c2e766a..00000000 --- a/kernel/tools/cpupowertools/files/patches/mageia/x86-smpboot-Init-apic-mapping-before-usage.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 1e90a13d0c3dc94512af1ccb2b6563e8297838fa Mon Sep 17 00:00:00 2001 -From: Thomas Gleixner -Date: Sat, 29 Oct 2016 13:42:42 +0200 -Subject: [PATCH] x86/smpboot: Init apic mapping before usage - -The recent changes, which forced the registration of the boot cpu on UP -systems, which do not have ACPI tables, have been fixed for systems w/o -local APIC, but left a wreckage for systems which have neither ACPI nor -mptables, but the CPU has an APIC, e.g. virtualbox. - -The boot process crashes in prefill_possible_map() as it wants to register -the boot cpu, which needs to access the local apic, but the local APIC is -not yet mapped. - -There is no reason why init_apic_mapping() can't be invoked before -prefill_possible_map(). So instead of playing another silly early mapping -game, as the ACPI/mptables code does, we just move init_apic_mapping() -before the call to prefill_possible_map(). - -In hindsight, I should have noticed that combination earlier. - -Sorry for the churn (also in stable)! - -Fixes: ff8560512b8d ("x86/boot/smp: Don't try to poke disabled/non-existent APIC") -Reported-and-debugged-by: Michal Necasek -Reported-and-tested-by: Wolfgang Bauer -Cc: prarit@redhat.com -Cc: ville.syrjala@linux.intel.com -Cc: michael.thayer@oracle.com -Cc: knut.osmundsen@oracle.com -Cc: frank.mehnert@oracle.com -Cc: Borislav Petkov -Cc: stable@vger.kernel.org -Link: http://lkml.kernel.org/r/alpine.DEB.2.20.1610282114380.5053@nanos -Signed-off-by: Thomas Gleixner ---- - arch/x86/kernel/setup.c | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c -index bbfbca5..9c337b0 100644 ---- a/arch/x86/kernel/setup.c -+++ b/arch/x86/kernel/setup.c -@@ -1222,11 +1222,16 @@ void __init setup_arch(char **cmdline_p) - if (smp_found_config) - get_smp_config(); - -+ /* -+ * Systems w/o ACPI and mptables might not have it mapped the local -+ * APIC yet, but prefill_possible_map() might need to access it. -+ */ -+ init_apic_mappings(); -+ - prefill_possible_map(); - - init_cpu_to_node(); - -- init_apic_mappings(); - io_apic_init_mappings(); - - kvm_guest_init(); diff --git a/kernel/tools/cpupowertools/pspec.xml b/kernel/tools/cpupowertools/pspec.xml index dc701efa..f8a65064 100644 --- a/kernel/tools/cpupowertools/pspec.xml +++ b/kernel/tools/cpupowertools/pspec.xml @@ -16,10 +16,10 @@ pciutils-devel - - - patches/linux/patch-4.8.6.xz - + + + patches/linux/patch-4.8.8.xz + patches/mageia/Revert-ipmi-Start-the-timer-and-thread-on-internal-m.patch @@ -28,12 +28,12 @@ patches/mageia/x86-default_poweroff_up_machines.patch patches/mageia/x86-increase-default-minimum-vmalloc-area-by-64MB-to-192MB.patch patches/mageia/Revert-cpufreq-pcc-Enable-autoload-of-pcc-cpufreq-fo.patch - patches/mageia/x86-smpboot-Init-apic-mapping-before-usage.patch patches/mageia/Revert-x86-mm-mtrr-Remove-kernel-internal-MTRR-inter.patch patches/mageia/base-cacheinfo-silence-DT-warnings.patch patches/mageia/kernel-governor-cpupower-Correct-return-type-of-cpu_power_is_cpu_onl.patch patches/mageia/pci-add-ALI-M5229-ide-compatibility-mode-quirk.patch patches/mageia/pci-quirks-drop-devinit-exit.patch + patches/mageia/PCI-Don-t-attempt-to-claim-shadow-copies-of-ROM.patch patches/mageia/acpi-CLEVO-M360S-disable_acpi_irq.patch patches/mageia/acpi-processor-M720SR-limit-to-C2.patch patches/mageia/ACPI-video-Add-a-quirk-to-force-acpi-video-backlight.patch @@ -54,7 +54,6 @@ patches/mageia/nvmepatch1-V4.patch patches/mageia/nvmepatch2-V4.patch patches/mageia/nvmepatch3-V4.patch - patches/mageia/dm-raid-fix-compat_features-validation.patch patches/mageia/fs-aufs-4.8.patch patches/mageia/fs-aufs-4.8-modular.patch patches/mageia/firewire-ieee1394-module-aliases.patch @@ -77,7 +76,9 @@ patches/mageia/gpu-drm-mach64-linux-3.14-buildfix.patch patches/mageia/gpu-drm-mach64-3.17-buildfix.patch patches/mageia/gpu-drm-mach64-3.18-buildfix.patch - patches/mageia/gpu-drm-i915-gen9-fix-DDB-partitioning-for-multi-screen-cases.patch + patches/mageia/gpu-drm-amdgpu-fix-crash-in-acp_hw_fini.patch + patches/mageia/gpu-drm-i915-dp-BDW-cdclk-fix-for-DP-audio.patch + patches/mageia/gpu-drm-i915-dp-Extend-BDW-DP-audio-workaround-to-GEN9-p.patch patches/mageia/input-i8042-quirks-for-Fujitsu-Lifebook-A544-and-Lif.patch patches/mageia/net-sis190-fix-list-usage.patch patches/mageia/net-netfilter-IFWLOG.patch @@ -91,7 +92,6 @@ patches/mageia/net-netfilter-psd-mdv.patch patches/mageia/net-netfilter-psd-2.6.35-buildfix.patch patches/mageia/net-wireless-rtlwifi-Fix-regression-caused-by-commit-d86e64768859.patch - patches/mageia/net-add-recursion-limit-to-GRO.patch patches/mageia/platform-x86-add-shuttle-wmi-driver.patch patches/mageia/platform-x86-shuttle-wmi-drop-devinit-exit.patch patches/mageia/platform-x86-shuttle-wmi-4.2-buildfix.patch @@ -155,6 +155,13 @@ --> + + 2016-11-18 + 4.8.8 + Release bump + PisiLinux Community + admin@pisilinux.org + 2016-08-24 4.7.2