@@ -11,7 +11,7 @@
|
||||
<Summary>Kernel module allowing to switch dedicated graphics card on Optimus laptops</Summary>
|
||||
<Description>kernel module allowing to switch dedicated graphics card on Optimus laptops</Description>
|
||||
<BuildDependencies>
|
||||
<Dependency version="4.8.6">kernel-module-headers</Dependency>
|
||||
<Dependency version="4.8.13">kernel-module-headers</Dependency>
|
||||
</BuildDependencies>
|
||||
<Archive sha1sum="e282ee682d794e3962baa4dead01917c42571e78" type="targz">https://github.com/Bumblebee-Project/bbswitch/archive/v0.8.tar.gz</Archive>
|
||||
<Patches>
|
||||
@@ -20,7 +20,7 @@
|
||||
<Package>
|
||||
<Name>module-bbswitch</Name>
|
||||
<RuntimeDependencies>
|
||||
<Dependency version="4.8.6">kernel</Dependency>
|
||||
<Dependency version="4.8.13">kernel</Dependency>
|
||||
</RuntimeDependencies>
|
||||
<Files>
|
||||
<Path fileType="library" permanent="true">/lib/modules</Path>
|
||||
@@ -34,6 +34,13 @@
|
||||
</Package>
|
||||
|
||||
<History>
|
||||
<Update release="7">
|
||||
<Date>2016-12-10</Date>
|
||||
<Version>0.8</Version>
|
||||
<Comment>Rebuild for new kernel.</Comment>
|
||||
<Name>Ertuğrul Erata</Name>
|
||||
<Email>ertugrulerata@gmail.com</Email>
|
||||
</Update>
|
||||
<Update release="6">
|
||||
<Date>2016-11-02</Date>
|
||||
<Version>0.8</Version>
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<Archive sha1sum="8acbdbb4ab4ab4123d1773b616904798fbef9277" type="targz" target="i686">http://www.broadcom.com/docs/linux_sta/hybrid-v35-nodebug-pcoem-6_30_223_271.tar.gz</Archive>
|
||||
<Archive sha1sum="1f568bb989d175813c5631c6629d9479eae6f3be" type="targz" target="x86_64">http://www.broadcom.com/docs/linux_sta/hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz</Archive>
|
||||
<BuildDependencies>
|
||||
<Dependency version="4.8.6">kernel-module-headers</Dependency>
|
||||
<Dependency version="4.8.13">kernel-module-headers</Dependency>
|
||||
</BuildDependencies>
|
||||
<Patches>
|
||||
<Patch level="1">patch/license.patch</Patch>
|
||||
@@ -27,7 +27,7 @@
|
||||
<Package>
|
||||
<Name>module-broadcom-wl</Name>
|
||||
<RuntimeDependencies>
|
||||
<Dependency version="4.8.6">kernel</Dependency>
|
||||
<Dependency version="4.8.13">kernel</Dependency>
|
||||
<Dependency release="current">module-broadcom-wl-userspace</Dependency>
|
||||
</RuntimeDependencies>
|
||||
<Files>
|
||||
@@ -56,6 +56,13 @@
|
||||
</Package>
|
||||
|
||||
<History>
|
||||
<Update release="6">
|
||||
<Date>2016-12-10</Date>
|
||||
<Version>6.30.223.271</Version>
|
||||
<Comment>Rebuild for new kernel.</Comment>
|
||||
<Name>PisiLinux Community</Name>
|
||||
<Email>admin@pisilinux.org</Email>
|
||||
</Update>
|
||||
<Update release="5">
|
||||
<Date>2016-11-02</Date>
|
||||
<Version>6.30.223.271</Version>
|
||||
|
||||
@@ -14,14 +14,14 @@
|
||||
<Description>This package provides the kernel modules needed for mouse integration and shared folder support between VirtualBox host and guest systems.</Description>
|
||||
<Archive sha1sum="a419ccd79204a225da891139a2b75f56de71980b" type="tarxz">https://sourceforge.net/projects/pisi-source/files/kernel-4.7/module-virtualbox-guest-5.1.6.tar.xz</Archive>
|
||||
<BuildDependencies>
|
||||
<Dependency version="4.8.6">kernel-module-headers</Dependency>
|
||||
<Dependency version="4.8.13">kernel-module-headers</Dependency>
|
||||
</BuildDependencies>
|
||||
</Source>
|
||||
|
||||
<Package>
|
||||
<Name>module-virtualbox-guest</Name>
|
||||
<RuntimeDependencies>
|
||||
<Dependency version="4.8.6">kernel</Dependency>
|
||||
<Dependency version="4.8.13">kernel</Dependency>
|
||||
<Dependency>baselayout</Dependency>
|
||||
<Dependency version="current">module-virtualbox-guest-userspace</Dependency>
|
||||
</RuntimeDependencies>
|
||||
@@ -52,6 +52,13 @@
|
||||
</Package>
|
||||
|
||||
<History>
|
||||
<Update release="11">
|
||||
<Date>2016-12-10</Date>
|
||||
<Version>5.1.6</Version>
|
||||
<Comment>Rebuild for new kernel.</Comment>
|
||||
<Name>Ertuğrul Erata</Name>
|
||||
<Email>ertugrulerata@gmail.com</Email>
|
||||
</Update>
|
||||
<Update release="10">
|
||||
<Date>2016-11-02</Date>
|
||||
<Version>5.1.6</Version>
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
<Description>This package provides the kernel support for VirtualBox.</Description>
|
||||
<Archive sha1sum="0df92af2c8e981b3a12ee0a3e8e5558f72bccedb" type="tarxz">https://sourceforge.net/projects/pisi-source/files/kernel-4.7/module-virtualbox-5.1.6.tar.xz</Archive>
|
||||
<BuildDependencies>
|
||||
<Dependency version="4.8.6">kernel-module-headers</Dependency>
|
||||
<Dependency version="4.8.13">kernel-module-headers</Dependency>
|
||||
</BuildDependencies>
|
||||
<!--Patches>
|
||||
<Patch>vbox_linux-4.3.diff</Patch>
|
||||
@@ -24,7 +24,7 @@
|
||||
<Package>
|
||||
<Name>module-virtualbox</Name>
|
||||
<RuntimeDependencies>
|
||||
<Dependency version="4.8.6">kernel</Dependency>
|
||||
<Dependency version="4.8.13">kernel</Dependency>
|
||||
<Dependency version="current">module-virtualbox-userspace</Dependency>
|
||||
</RuntimeDependencies>
|
||||
<Files>
|
||||
@@ -50,6 +50,13 @@
|
||||
</Package>
|
||||
|
||||
<History>
|
||||
<Update release="11">
|
||||
<Date>2016-12-10</Date>
|
||||
<Version>5.1.6</Version>
|
||||
<Comment>Rebuild for new kernel.</Comment>
|
||||
<Name>Ertuğrul Erata</Name>
|
||||
<Email>ertugrulerata@gmail.com</Email>
|
||||
</Update>
|
||||
<Update release="10">
|
||||
<Date>2016-11-02</Date>
|
||||
<Version>5.1.6</Version>
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<Description>module-ndiswrapper allows you to use Windows XP drivers for WLAN cards without proper Linux drivers.</Description>
|
||||
<Archive sha1sum="20998237cf6d37b86391dc8736c10031110db578" type="targz">http://download.sourceforge.net/ndiswrapper/ndiswrapper-1.60.tar.gz</Archive>
|
||||
<BuildDependencies>
|
||||
<Dependency version="4.8.6">kernel-module-headers</Dependency>
|
||||
<Dependency version="4.8.13">kernel-module-headers</Dependency>
|
||||
</BuildDependencies>
|
||||
<Patches>
|
||||
<Patch>upstream.patch</Patch>
|
||||
@@ -25,7 +25,7 @@
|
||||
<Package>
|
||||
<Name>ndiswrapper</Name>
|
||||
<RuntimeDependencies>
|
||||
<Dependency version="4.8.6">kernel</Dependency>
|
||||
<Dependency version="4.8.13">kernel</Dependency>
|
||||
</RuntimeDependencies>
|
||||
<Files>
|
||||
<Path fileType="library" permanent="true">/lib/modules</Path>
|
||||
@@ -41,6 +41,13 @@
|
||||
</Package>
|
||||
|
||||
<History>
|
||||
<Update release="6">
|
||||
<Date>2016-12-10</Date>
|
||||
<Version>1.60</Version>
|
||||
<Comment>Rebuild for new kernel.</Comment>
|
||||
<Name>PisiLinux Community</Name>
|
||||
<Email>admin@pisilinux.org</Email>
|
||||
</Update>
|
||||
<Update release="5">
|
||||
<Date>2016-11-02</Date>
|
||||
<Version>1.60</Version>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/x86_64 4.8.6 Kernel Configuration
|
||||
# Linux/x86_64 4.8.13 Kernel Configuration
|
||||
#
|
||||
CONFIG_64BIT=y
|
||||
CONFIG_X86_64=y
|
||||
|
||||
Binary file not shown.
Binary file not shown.
-37
@@ -1,37 +0,0 @@
|
||||
From e461958e7a7eb8df2e022e02f782dff5f60a44d0 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Backlund <tmb@mageia.org>
|
||||
Date: Sun, 16 Oct 2016 20:09:27 +0300
|
||||
Subject: [PATCH] Revert "include/uapi/linux/atm_zatm.h: include linux/time.h"
|
||||
|
||||
This reverts commit cf00713a655d3019be7faa184402f16c43a0fed3.
|
||||
|
||||
It causes linux-atm build breakage between glibc headers and kernel headers...
|
||||
|
||||
Fixws are in progress upstream as of:
|
||||
https://patchwork.kernel.org/patch/9294305/
|
||||
|
||||
But it's not accepted yet so it might still change, and since its uapi
|
||||
we dont want to expose changes that might never land upstream.
|
||||
|
||||
Reported by: Pascal Terjam <pterjan@gmail.com>
|
||||
Signed-off-by: Thomas Backlund <tmb@mageia.org>
|
||||
|
||||
---
|
||||
include/uapi/linux/atm_zatm.h | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/include/uapi/linux/atm_zatm.h b/include/uapi/linux/atm_zatm.h
|
||||
index 5cd4d4d..9c9c6ad 100644
|
||||
--- a/include/uapi/linux/atm_zatm.h
|
||||
+++ b/include/uapi/linux/atm_zatm.h
|
||||
@@ -14,7 +14,6 @@
|
||||
|
||||
#include <linux/atmapi.h>
|
||||
#include <linux/atmioc.h>
|
||||
-#include <linux/time.h>
|
||||
|
||||
#define ZATM_GETPOOL _IOW('a',ATMIOC_SARPRV+1,struct atmif_sioc)
|
||||
/* get pool statistics */
|
||||
--
|
||||
2.10.1
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
From 5c33677c87cbe44ae04df69c4a29c1750a9ec4e5 Mon Sep 17 00:00:00 2001
|
||||
From: Andy Whitcroft <apw@canonical.com>
|
||||
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 <apw@canonical.com>
|
||||
Signed-off-by: Heinz Mauelshagen <heinzm@redhat.com>
|
||||
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
|
||||
---
|
||||
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
|
||||
|
||||
-75
@@ -1,75 +0,0 @@
|
||||
From 5a920b85f2c6e3fd7d9dd9bb3f3345e9085e2360 Mon Sep 17 00:00:00 2001
|
||||
From: Paulo Zanoni <paulo.r.zanoni@intel.com>
|
||||
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 <paulo.r.zanoni@intel.com>
|
||||
Reviewed-by: Lyude <cpaul@redhat.com>
|
||||
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
|
||||
|
||||
-49
@@ -1,49 +0,0 @@
|
||||
From 9f692cbe4a01dd9e3c3e954ec6b59662b68f9ce4 Mon Sep 17 00:00:00 2001
|
||||
From: Laura Abbott <labbott@redhat.com>
|
||||
Date: Fri, 9 Sep 2016 10:19:02 -0700
|
||||
Subject: [PATCH] cpupower: Correct return type of cpu_power_is_cpu_online in
|
||||
cpufreq
|
||||
To: Thomas Renninger <trenn@suse.com>
|
||||
Cc: linux-pm@vger.kernel.org
|
||||
Cc: linux-kernel@vger.kernel.org
|
||||
|
||||
When converting to a shared library in ac5a181d065d ("cpupower: Add
|
||||
cpuidle parts into library"), cpu_freq_cpu_exists was converted to
|
||||
cpupower_is_cpu_online. cpu_req_cpu_exists returned 0 on success and
|
||||
-ENOSYS on failure whereas cpupower_is_cpu_online returns 1 on success.
|
||||
Check for the correct return value in cpufreq-set.
|
||||
|
||||
See https://bugzilla.redhat.com/show_bug.cgi?id=1374212
|
||||
|
||||
Fixes: ac5a181d065d ("cpupower: Add cpuidle parts into library")
|
||||
Reported-by: Julian Seward <jseward@acm.org>
|
||||
Signed-off-by: Laura Abbott <labbott@redhat.com>
|
||||
---
|
||||
tools/power/cpupower/utils/cpufreq-set.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/tools/power/cpupower/utils/cpufreq-set.c b/tools/power/cpupower/utils/cpufreq-set.c
|
||||
index b4bf769..8971d71 100644
|
||||
--- a/tools/power/cpupower/utils/cpufreq-set.c
|
||||
+++ b/tools/power/cpupower/utils/cpufreq-set.c
|
||||
@@ -296,7 +296,7 @@ int cmd_freq_set(int argc, char **argv)
|
||||
struct cpufreq_affected_cpus *cpus;
|
||||
|
||||
if (!bitmask_isbitset(cpus_chosen, cpu) ||
|
||||
- cpupower_is_cpu_online(cpu))
|
||||
+ cpupower_is_cpu_online(cpu) != 1)
|
||||
continue;
|
||||
|
||||
cpus = cpufreq_get_related_cpus(cpu);
|
||||
@@ -316,7 +316,7 @@ int cmd_freq_set(int argc, char **argv)
|
||||
cpu <= bitmask_last(cpus_chosen); cpu++) {
|
||||
|
||||
if (!bitmask_isbitset(cpus_chosen, cpu) ||
|
||||
- cpupower_is_cpu_online(cpu))
|
||||
+ cpupower_is_cpu_online(cpu) != 1)
|
||||
continue;
|
||||
|
||||
if (cpupower_is_cpu_online(cpu) != 1)
|
||||
--
|
||||
2.10.0
|
||||
|
||||
@@ -1,242 +0,0 @@
|
||||
From fcd91dd449867c6bfe56a81cabba76b829fd05cd Mon Sep 17 00:00:00 2001
|
||||
From: Sabrina Dubroca <sd@queasysnail.net>
|
||||
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š <vbenes@redhat.com> 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 <sd@queasysnail.net>
|
||||
Reviewed-by: Jiri Benc <jbenc@redhat.com>
|
||||
Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
|
||||
Acked-by: Tom Herbert <tom@herbertland.com>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
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
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
###
|
||||
### Stable Queue
|
||||
###
|
||||
patch-4.8.10-rc1.patch
|
||||
|
||||
###
|
||||
### Arch x86
|
||||
@@ -41,19 +42,11 @@ 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
|
||||
###
|
||||
base-cacheinfo-silence-DT-warnings.patch
|
||||
|
||||
# Patch for having the cpupower setting the governor
|
||||
# (from https://bugzilla.kernel.org/show_bug.cgi?id=135391, same as
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1374212)
|
||||
kernel-governor-cpupower-Correct-return-type-of-cpu_power_is_cpu_onl.patch
|
||||
|
||||
###
|
||||
### i2c
|
||||
###
|
||||
@@ -139,9 +132,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,14 +180,6 @@ 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
|
||||
|
||||
###
|
||||
### Hardware Monitoring
|
||||
###
|
||||
@@ -252,9 +234,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
|
||||
###
|
||||
@@ -392,5 +371,3 @@ tools-testing-selftest-Makefile-remove-powerpc-reference.patch
|
||||
###
|
||||
### UAPI
|
||||
###
|
||||
# breaks linux-arm build
|
||||
Revert-include-uapi-linux-atm_zatm.h-include-linux-t.patch
|
||||
|
||||
@@ -1,61 +0,0 @@
|
||||
From 1e90a13d0c3dc94512af1ccb2b6563e8297838fa Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
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 <michal.necasek@oracle.com>
|
||||
Reported-and-tested-by: Wolfgang Bauer <wbauer@tmo.at>
|
||||
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 <bp@alien8.de>
|
||||
Cc: stable@vger.kernel.org
|
||||
Link: http://lkml.kernel.org/r/alpine.DEB.2.20.1610282114380.5053@nanos
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
---
|
||||
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();
|
||||
+14
-9
@@ -28,8 +28,8 @@
|
||||
</BuildDependencies>
|
||||
<Patches>
|
||||
<!-- Linux patches -->
|
||||
<Patch level="1" compressionType="xz">patches/linux/patch-4.8.6.xz</Patch>
|
||||
<!-- Mageia Linux patches // compatible with http://svnweb.mageia.org/packages/cauldron/kernel/releases/4.8.6/1.mga6/PATCHES/patches/series-->
|
||||
<Patch level="1" compressionType="xz">patches/linux/patch-4.8.13.xz</Patch>
|
||||
<!-- Mageia Linux patches // compatible with http://svnweb.mageia.org/packages/cauldron/kernel/releases/4.8.9/1.mga6/PATCHES/patches/series-->
|
||||
<!--stable patches-->
|
||||
<!--other patches-->
|
||||
<Patch level="1">patches/mageia/Revert-ipmi-Start-the-timer-and-thread-on-internal-m.patch</Patch>
|
||||
@@ -38,10 +38,8 @@
|
||||
<Patch level="1">patches/mageia/x86-default_poweroff_up_machines.patch</Patch>
|
||||
<Patch level="1">patches/mageia/x86-increase-default-minimum-vmalloc-area-by-64MB-to-192MB.patch</Patch>
|
||||
<Patch level="1">patches/mageia/Revert-cpufreq-pcc-Enable-autoload-of-pcc-cpufreq-fo.patch</Patch>
|
||||
<Patch level="1">patches/mageia/x86-smpboot-Init-apic-mapping-before-usage.patch</Patch>
|
||||
<Patch level="1">patches/mageia/Revert-x86-mm-mtrr-Remove-kernel-internal-MTRR-inter.patch</Patch>
|
||||
<Patch level="1">patches/mageia/base-cacheinfo-silence-DT-warnings.patch</Patch>
|
||||
<Patch level="1">patches/mageia/kernel-governor-cpupower-Correct-return-type-of-cpu_power_is_cpu_onl.patch</Patch>
|
||||
<Patch level="1">patches/mageia/pci-add-ALI-M5229-ide-compatibility-mode-quirk.patch</Patch>
|
||||
<Patch level="1">patches/mageia/pci-quirks-drop-devinit-exit.patch</Patch>
|
||||
<Patch level="1">patches/mageia/acpi-CLEVO-M360S-disable_acpi_irq.patch</Patch>
|
||||
@@ -64,7 +62,6 @@
|
||||
<Patch level="1">patches/mageia/nvmepatch1-V4.patch</Patch>
|
||||
<Patch level="1">patches/mageia/nvmepatch2-V4.patch</Patch>
|
||||
<Patch level="1">patches/mageia/nvmepatch3-V4.patch</Patch>
|
||||
<Patch level="1">patches/mageia/dm-raid-fix-compat_features-validation.patch</Patch>
|
||||
<Patch level="1">patches/mageia/fs-aufs-4.8.patch</Patch>
|
||||
<Patch level="1">patches/mageia/fs-aufs-4.8-modular.patch</Patch>
|
||||
<Patch level="1">patches/mageia/firewire-ieee1394-module-aliases.patch</Patch>
|
||||
@@ -86,8 +83,7 @@
|
||||
<Patch level="1">patches/mageia/gpu-drm-mach64-restore-mach64_PCI_IDS.patch</Patch>
|
||||
<Patch level="1">patches/mageia/gpu-drm-mach64-linux-3.14-buildfix.patch</Patch>
|
||||
<Patch level="1">patches/mageia/gpu-drm-mach64-3.17-buildfix.patch</Patch>
|
||||
<Patch level="1">patches/mageia/gpu-drm-mach64-3.18-buildfix.patch</Patch--><!--1-->
|
||||
<Patch level="1">patches/mageia/gpu-drm-i915-gen9-fix-DDB-partitioning-for-multi-screen-cases.patch</Patch>
|
||||
<Patch level="1">patches/mageia/gpu-drm-mach64-3.18-buildfix.patch</Patch--><!--1-->
|
||||
<Patch level="1">patches/mageia/input-i8042-quirks-for-Fujitsu-Lifebook-A544-and-Lif.patch</Patch>
|
||||
<Patch level="1">patches/mageia/net-sis190-fix-list-usage.patch</Patch>
|
||||
<Patch level="1">patches/mageia/net-netfilter-IFWLOG.patch</Patch>
|
||||
@@ -101,7 +97,6 @@
|
||||
<Patch level="1">patches/mageia/net-netfilter-psd-mdv.patch</Patch>
|
||||
<Patch level="1">patches/mageia/net-netfilter-psd-2.6.35-buildfix.patch</Patch>
|
||||
<Patch level="1">patches/mageia/net-wireless-rtlwifi-Fix-regression-caused-by-commit-d86e64768859.patch</Patch>
|
||||
<Patch level="1">patches/mageia/net-add-recursion-limit-to-GRO.patch</Patch>
|
||||
<Patch level="1">patches/mageia/platform-x86-add-shuttle-wmi-driver.patch</Patch>
|
||||
<Patch level="1">patches/mageia/platform-x86-shuttle-wmi-drop-devinit-exit.patch</Patch>
|
||||
<Patch level="1">patches/mageia/platform-x86-shuttle-wmi-4.2-buildfix.patch</Patch>
|
||||
@@ -139,7 +134,6 @@
|
||||
<Patch level="1">patches/mageia/3rd-rtl8723bs-4.7-buildfix.patch</Patch>
|
||||
<Patch level="1">patches/mageia/3rd-rtl8723bs-4.8-buildfix.patch</Patch>
|
||||
<Patch level="1">patches/mageia/tools-testing-selftest-Makefile-remove-powerpc-reference.patch</Patch>
|
||||
<Patch level="1">patches/mageia/Revert-include-uapi-linux-atm_zatm.h-include-linux-t.patch</Patch>
|
||||
</Patches>
|
||||
</Source>
|
||||
|
||||
@@ -195,6 +189,17 @@
|
||||
</Package>
|
||||
|
||||
<History>
|
||||
<Update release="8">
|
||||
<Date>2016-12-10</Date>
|
||||
<Version>4.8.13</Version>
|
||||
<Comment>Version Bump.</Comment>
|
||||
<Type package="kernel">security</Type>
|
||||
<Requires>
|
||||
<Action package="kernel">systemRestart</Action>
|
||||
</Requires>
|
||||
<Name>Ertuğrul Erata</Name>
|
||||
<Email>ertugrulerata@gmail.com</Email>
|
||||
</Update>
|
||||
<Update release="7">
|
||||
<Date>2016-11-01</Date>
|
||||
<Version>4.8.6</Version>
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
-37
@@ -1,37 +0,0 @@
|
||||
From e461958e7a7eb8df2e022e02f782dff5f60a44d0 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Backlund <tmb@mageia.org>
|
||||
Date: Sun, 16 Oct 2016 20:09:27 +0300
|
||||
Subject: [PATCH] Revert "include/uapi/linux/atm_zatm.h: include linux/time.h"
|
||||
|
||||
This reverts commit cf00713a655d3019be7faa184402f16c43a0fed3.
|
||||
|
||||
It causes linux-atm build breakage between glibc headers and kernel headers...
|
||||
|
||||
Fixws are in progress upstream as of:
|
||||
https://patchwork.kernel.org/patch/9294305/
|
||||
|
||||
But it's not accepted yet so it might still change, and since its uapi
|
||||
we dont want to expose changes that might never land upstream.
|
||||
|
||||
Reported by: Pascal Terjam <pterjan@gmail.com>
|
||||
Signed-off-by: Thomas Backlund <tmb@mageia.org>
|
||||
|
||||
---
|
||||
include/uapi/linux/atm_zatm.h | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/include/uapi/linux/atm_zatm.h b/include/uapi/linux/atm_zatm.h
|
||||
index 5cd4d4d..9c9c6ad 100644
|
||||
--- a/include/uapi/linux/atm_zatm.h
|
||||
+++ b/include/uapi/linux/atm_zatm.h
|
||||
@@ -14,7 +14,6 @@
|
||||
|
||||
#include <linux/atmapi.h>
|
||||
#include <linux/atmioc.h>
|
||||
-#include <linux/time.h>
|
||||
|
||||
#define ZATM_GETPOOL _IOW('a',ATMIOC_SARPRV+1,struct atmif_sioc)
|
||||
/* get pool statistics */
|
||||
--
|
||||
2.10.1
|
||||
|
||||
-39
@@ -1,39 +0,0 @@
|
||||
From 5c33677c87cbe44ae04df69c4a29c1750a9ec4e5 Mon Sep 17 00:00:00 2001
|
||||
From: Andy Whitcroft <apw@canonical.com>
|
||||
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 <apw@canonical.com>
|
||||
Signed-off-by: Heinz Mauelshagen <heinzm@redhat.com>
|
||||
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
|
||||
---
|
||||
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
|
||||
|
||||
-75
@@ -1,75 +0,0 @@
|
||||
From 5a920b85f2c6e3fd7d9dd9bb3f3345e9085e2360 Mon Sep 17 00:00:00 2001
|
||||
From: Paulo Zanoni <paulo.r.zanoni@intel.com>
|
||||
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 <paulo.r.zanoni@intel.com>
|
||||
Reviewed-by: Lyude <cpaul@redhat.com>
|
||||
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
|
||||
|
||||
-49
@@ -1,49 +0,0 @@
|
||||
From 9f692cbe4a01dd9e3c3e954ec6b59662b68f9ce4 Mon Sep 17 00:00:00 2001
|
||||
From: Laura Abbott <labbott@redhat.com>
|
||||
Date: Fri, 9 Sep 2016 10:19:02 -0700
|
||||
Subject: [PATCH] cpupower: Correct return type of cpu_power_is_cpu_online in
|
||||
cpufreq
|
||||
To: Thomas Renninger <trenn@suse.com>
|
||||
Cc: linux-pm@vger.kernel.org
|
||||
Cc: linux-kernel@vger.kernel.org
|
||||
|
||||
When converting to a shared library in ac5a181d065d ("cpupower: Add
|
||||
cpuidle parts into library"), cpu_freq_cpu_exists was converted to
|
||||
cpupower_is_cpu_online. cpu_req_cpu_exists returned 0 on success and
|
||||
-ENOSYS on failure whereas cpupower_is_cpu_online returns 1 on success.
|
||||
Check for the correct return value in cpufreq-set.
|
||||
|
||||
See https://bugzilla.redhat.com/show_bug.cgi?id=1374212
|
||||
|
||||
Fixes: ac5a181d065d ("cpupower: Add cpuidle parts into library")
|
||||
Reported-by: Julian Seward <jseward@acm.org>
|
||||
Signed-off-by: Laura Abbott <labbott@redhat.com>
|
||||
---
|
||||
tools/power/cpupower/utils/cpufreq-set.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/tools/power/cpupower/utils/cpufreq-set.c b/tools/power/cpupower/utils/cpufreq-set.c
|
||||
index b4bf769..8971d71 100644
|
||||
--- a/tools/power/cpupower/utils/cpufreq-set.c
|
||||
+++ b/tools/power/cpupower/utils/cpufreq-set.c
|
||||
@@ -296,7 +296,7 @@ int cmd_freq_set(int argc, char **argv)
|
||||
struct cpufreq_affected_cpus *cpus;
|
||||
|
||||
if (!bitmask_isbitset(cpus_chosen, cpu) ||
|
||||
- cpupower_is_cpu_online(cpu))
|
||||
+ cpupower_is_cpu_online(cpu) != 1)
|
||||
continue;
|
||||
|
||||
cpus = cpufreq_get_related_cpus(cpu);
|
||||
@@ -316,7 +316,7 @@ int cmd_freq_set(int argc, char **argv)
|
||||
cpu <= bitmask_last(cpus_chosen); cpu++) {
|
||||
|
||||
if (!bitmask_isbitset(cpus_chosen, cpu) ||
|
||||
- cpupower_is_cpu_online(cpu))
|
||||
+ cpupower_is_cpu_online(cpu) != 1)
|
||||
continue;
|
||||
|
||||
if (cpupower_is_cpu_online(cpu) != 1)
|
||||
--
|
||||
2.10.0
|
||||
|
||||
@@ -1,242 +0,0 @@
|
||||
From fcd91dd449867c6bfe56a81cabba76b829fd05cd Mon Sep 17 00:00:00 2001
|
||||
From: Sabrina Dubroca <sd@queasysnail.net>
|
||||
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š <vbenes@redhat.com> 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 <sd@queasysnail.net>
|
||||
Reviewed-by: Jiri Benc <jbenc@redhat.com>
|
||||
Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
|
||||
Acked-by: Tom Herbert <tom@herbertland.com>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
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
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
###
|
||||
### Stable Queue
|
||||
###
|
||||
patch-4.8.10-rc1.patch
|
||||
|
||||
###
|
||||
### Arch x86
|
||||
@@ -41,19 +42,11 @@ 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
|
||||
###
|
||||
base-cacheinfo-silence-DT-warnings.patch
|
||||
|
||||
# Patch for having the cpupower setting the governor
|
||||
# (from https://bugzilla.kernel.org/show_bug.cgi?id=135391, same as
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1374212)
|
||||
kernel-governor-cpupower-Correct-return-type-of-cpu_power_is_cpu_onl.patch
|
||||
|
||||
###
|
||||
### i2c
|
||||
###
|
||||
@@ -139,9 +132,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,14 +180,6 @@ 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
|
||||
|
||||
###
|
||||
### Hardware Monitoring
|
||||
###
|
||||
@@ -252,9 +234,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
|
||||
###
|
||||
@@ -392,5 +371,3 @@ tools-testing-selftest-Makefile-remove-powerpc-reference.patch
|
||||
###
|
||||
### UAPI
|
||||
###
|
||||
# breaks linux-arm build
|
||||
Revert-include-uapi-linux-atm_zatm.h-include-linux-t.patch
|
||||
|
||||
-61
@@ -1,61 +0,0 @@
|
||||
From 1e90a13d0c3dc94512af1ccb2b6563e8297838fa Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
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 <michal.necasek@oracle.com>
|
||||
Reported-and-tested-by: Wolfgang Bauer <wbauer@tmo.at>
|
||||
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 <bp@alien8.de>
|
||||
Cc: stable@vger.kernel.org
|
||||
Link: http://lkml.kernel.org/r/alpine.DEB.2.20.1610282114380.5053@nanos
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
---
|
||||
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();
|
||||
@@ -16,10 +16,10 @@
|
||||
<BuildDependencies>
|
||||
<Dependency>pciutils-devel</Dependency>
|
||||
</BuildDependencies>
|
||||
<Patches>
|
||||
<!-- Linux patches -->
|
||||
<Patch level="1" compressionType="xz">patches/linux/patch-4.8.6.xz</Patch>
|
||||
<!-- Mageia Linux patches // compatible with http://svnweb.mageia.org/packages/cauldron/kernel/releases/4.8.6/1.mga6/PATCHES/patches/series-->
|
||||
<Patches>
|
||||
<!-- Linux patches -->
|
||||
<Patch level="1" compressionType="xz">patches/linux/patch-4.8.13.xz</Patch>
|
||||
<!-- Mageia Linux patches // compatible with http://svnweb.mageia.org/packages/cauldron/kernel/releases/4.8.9/1.mga6/PATCHES/patches/series-->
|
||||
<!--stable patches-->
|
||||
<!--other patches-->
|
||||
<Patch level="1">patches/mageia/Revert-ipmi-Start-the-timer-and-thread-on-internal-m.patch</Patch>
|
||||
@@ -28,10 +28,8 @@
|
||||
<Patch level="1">patches/mageia/x86-default_poweroff_up_machines.patch</Patch>
|
||||
<Patch level="1">patches/mageia/x86-increase-default-minimum-vmalloc-area-by-64MB-to-192MB.patch</Patch>
|
||||
<Patch level="1">patches/mageia/Revert-cpufreq-pcc-Enable-autoload-of-pcc-cpufreq-fo.patch</Patch>
|
||||
<Patch level="1">patches/mageia/x86-smpboot-Init-apic-mapping-before-usage.patch</Patch>
|
||||
<Patch level="1">patches/mageia/Revert-x86-mm-mtrr-Remove-kernel-internal-MTRR-inter.patch</Patch>
|
||||
<Patch level="1">patches/mageia/base-cacheinfo-silence-DT-warnings.patch</Patch>
|
||||
<Patch level="1">patches/mageia/kernel-governor-cpupower-Correct-return-type-of-cpu_power_is_cpu_onl.patch</Patch>
|
||||
<Patch level="1">patches/mageia/pci-add-ALI-M5229-ide-compatibility-mode-quirk.patch</Patch>
|
||||
<Patch level="1">patches/mageia/pci-quirks-drop-devinit-exit.patch</Patch>
|
||||
<Patch level="1">patches/mageia/acpi-CLEVO-M360S-disable_acpi_irq.patch</Patch>
|
||||
@@ -54,7 +52,6 @@
|
||||
<Patch level="1">patches/mageia/nvmepatch1-V4.patch</Patch>
|
||||
<Patch level="1">patches/mageia/nvmepatch2-V4.patch</Patch>
|
||||
<Patch level="1">patches/mageia/nvmepatch3-V4.patch</Patch>
|
||||
<Patch level="1">patches/mageia/dm-raid-fix-compat_features-validation.patch</Patch>
|
||||
<Patch level="1">patches/mageia/fs-aufs-4.8.patch</Patch>
|
||||
<Patch level="1">patches/mageia/fs-aufs-4.8-modular.patch</Patch>
|
||||
<Patch level="1">patches/mageia/firewire-ieee1394-module-aliases.patch</Patch>
|
||||
@@ -76,8 +73,7 @@
|
||||
<Patch level="1">patches/mageia/gpu-drm-mach64-restore-mach64_PCI_IDS.patch</Patch>
|
||||
<Patch level="1">patches/mageia/gpu-drm-mach64-linux-3.14-buildfix.patch</Patch>
|
||||
<Patch level="1">patches/mageia/gpu-drm-mach64-3.17-buildfix.patch</Patch>
|
||||
<Patch level="1">patches/mageia/gpu-drm-mach64-3.18-buildfix.patch</Patch--><!--1-->
|
||||
<Patch level="1">patches/mageia/gpu-drm-i915-gen9-fix-DDB-partitioning-for-multi-screen-cases.patch</Patch>
|
||||
<Patch level="1">patches/mageia/gpu-drm-mach64-3.18-buildfix.patch</Patch--><!--1-->
|
||||
<Patch level="1">patches/mageia/input-i8042-quirks-for-Fujitsu-Lifebook-A544-and-Lif.patch</Patch>
|
||||
<Patch level="1">patches/mageia/net-sis190-fix-list-usage.patch</Patch>
|
||||
<Patch level="1">patches/mageia/net-netfilter-IFWLOG.patch</Patch>
|
||||
@@ -91,7 +87,6 @@
|
||||
<Patch level="1">patches/mageia/net-netfilter-psd-mdv.patch</Patch>
|
||||
<Patch level="1">patches/mageia/net-netfilter-psd-2.6.35-buildfix.patch</Patch>
|
||||
<Patch level="1">patches/mageia/net-wireless-rtlwifi-Fix-regression-caused-by-commit-d86e64768859.patch</Patch>
|
||||
<Patch level="1">patches/mageia/net-add-recursion-limit-to-GRO.patch</Patch>
|
||||
<Patch level="1">patches/mageia/platform-x86-add-shuttle-wmi-driver.patch</Patch>
|
||||
<Patch level="1">patches/mageia/platform-x86-shuttle-wmi-drop-devinit-exit.patch</Patch>
|
||||
<Patch level="1">patches/mageia/platform-x86-shuttle-wmi-4.2-buildfix.patch</Patch>
|
||||
@@ -129,8 +124,7 @@
|
||||
<Patch level="1">patches/mageia/3rd-rtl8723bs-4.7-buildfix.patch</Patch>
|
||||
<Patch level="1">patches/mageia/3rd-rtl8723bs-4.8-buildfix.patch</Patch>
|
||||
<Patch level="1">patches/mageia/tools-testing-selftest-Makefile-remove-powerpc-reference.patch</Patch>
|
||||
<Patch level="1">patches/mageia/Revert-include-uapi-linux-atm_zatm.h-include-linux-t.patch</Patch>
|
||||
</Patches>
|
||||
</Patches>
|
||||
</Source>
|
||||
|
||||
<Package>
|
||||
@@ -155,6 +149,13 @@
|
||||
</Provides>-->
|
||||
</Package>
|
||||
<History>
|
||||
<Update release="7">
|
||||
<Date>2016-12-10</Date>
|
||||
<Version>4.8.13</Version>
|
||||
<Comment>Release bump</Comment>
|
||||
<Name>PisiLinux Community</Name>
|
||||
<Email>admin@pisilinux.org</Email>
|
||||
</Update>
|
||||
<Update release="6">
|
||||
<Date>2016-08-24</Date>
|
||||
<Version>4.7.2</Version>
|
||||
|
||||
Reference in New Issue
Block a user