Fix/ignore module ABI changes in 4.4.4 as appropriate
This commit is contained in:
parent
9f9bdca061
commit
ab1abc27cc
|
@ -442,6 +442,7 @@ linux (4.4.4-1) UNRELEASED; urgency=medium
|
|||
- mmc-modules: Depends on usb-modules
|
||||
- usb-modules: Include USB PHY drivers by default
|
||||
* uas: Fix high-order alloc
|
||||
* Fix/ignore module ABI changes in 4.4.4 as appropriate
|
||||
|
||||
[ Ian Campbell ]
|
||||
* [armhf] dts: Add DTB for Novena, patches from Vagrant Cascadian
|
||||
|
|
|
@ -6,6 +6,15 @@ ignore-changes:
|
|||
__scm_send
|
||||
scm_detach_fds
|
||||
scm_fp_dup
|
||||
efivar_validate
|
||||
get_thermal_instance
|
||||
inet_csk_reqsk_queue_add
|
||||
tcp_req_err
|
||||
module:drivers/gpu/drm/drm_kms_helper
|
||||
module:drivers/hv/hv_vmbus
|
||||
module:drivers/md/dm-snapshot
|
||||
module:drivers/mmc/host/sdhci
|
||||
module:net/ceph/libceph
|
||||
|
||||
[base]
|
||||
arches:
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
From: Ben Hutchings <ben@decadent.org.uk>
|
||||
Date: Sun, 06 Mar 2016 01:14:29 +0000
|
||||
Subject: ipv4: Fix ABI change in 4.4.4
|
||||
Forwarded: not-needed
|
||||
|
||||
struct fib_nh_exception is always allocated and used in the ipv4 core,
|
||||
which is built-in. As the new field is at the end of the structure,
|
||||
all we need to do is hide it from genksyms.
|
||||
|
||||
---
|
||||
--- a/include/net/ip_fib.h
|
||||
+++ b/include/net/ip_fib.h
|
||||
@@ -61,7 +61,9 @@ struct fib_nh_exception {
|
||||
struct rtable __rcu *fnhe_rth_input;
|
||||
struct rtable __rcu *fnhe_rth_output;
|
||||
unsigned long fnhe_stamp;
|
||||
+#ifndef __GENKSYMS__
|
||||
struct rcu_head rcu;
|
||||
+#endif
|
||||
};
|
||||
|
||||
struct fnhe_hash_bucket {
|
|
@ -0,0 +1,43 @@
|
|||
From: Ben Hutchings <ben@decadent.org.uk>
|
||||
Date: Sun, 06 Mar 2016 01:31:13 +0000
|
||||
Subject: ipv6: Fix ABI change in 4.4.4
|
||||
Forwarded: not-needed
|
||||
|
||||
Change ip6_route_output() back from a static inline wrapper to a proper
|
||||
extern and exported function.
|
||||
|
||||
---
|
||||
--- a/include/net/ip6_route.h
|
||||
+++ b/include/net/ip6_route.h
|
||||
@@ -66,13 +66,8 @@ void ip6_route_input(struct sk_buff *skb
|
||||
|
||||
struct dst_entry *ip6_route_output_flags(struct net *net, const struct sock *sk,
|
||||
struct flowi6 *fl6, int flags);
|
||||
-
|
||||
-static inline struct dst_entry *ip6_route_output(struct net *net,
|
||||
- const struct sock *sk,
|
||||
- struct flowi6 *fl6)
|
||||
-{
|
||||
- return ip6_route_output_flags(net, sk, fl6, 0);
|
||||
-}
|
||||
+struct dst_entry *ip6_route_output(struct net *net, const struct sock *sk,
|
||||
+ struct flowi6 *fl6);
|
||||
|
||||
struct dst_entry *ip6_route_lookup(struct net *net, struct flowi6 *fl6,
|
||||
int flags);
|
||||
--- a/net/ipv6/route.c
|
||||
+++ b/net/ipv6/route.c
|
||||
@@ -1200,6 +1200,13 @@ struct dst_entry *ip6_route_output_flags
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(ip6_route_output_flags);
|
||||
|
||||
+struct dst_entry *ip6_route_output(struct net *net, const struct sock *sk,
|
||||
+ struct flowi6 *fl6)
|
||||
+{
|
||||
+ return ip6_route_output_flags(net, sk, fl6, 0);
|
||||
+}
|
||||
+EXPORT_SYMBOL(ip6_route_output);
|
||||
+
|
||||
struct dst_entry *ip6_blackhole_route(struct net *net, struct dst_entry *dst_orig)
|
||||
{
|
||||
struct rt6_info *rt, *ort = (struct rt6_info *) dst_orig;
|
79
debian/patches/debian/revert-cgroup-make-sure-a-parent-css-isn-t-offlined.patch
vendored
Normal file
79
debian/patches/debian/revert-cgroup-make-sure-a-parent-css-isn-t-offlined.patch
vendored
Normal file
|
@ -0,0 +1,79 @@
|
|||
From: Ben Hutchings <ben@decadent.org.uk>
|
||||
Date: Sat, 05 Mar 2016 23:22:10 +0000
|
||||
Subject: Revert "cgroup: make sure a parent css isn't offlined before its children"
|
||||
Forwarded: not-needed
|
||||
|
||||
This reverts commit 4cbd196324c05809338c7f118b6f374d3c2db7a0, which
|
||||
was commit aa226ff4a1ce79f229c6b7a4c0a14e17fececd01 upstream. It
|
||||
seems to be a good fix but causes an unfixable ABI change as it
|
||||
extends a structure that's embedded in other structures.
|
||||
|
||||
---
|
||||
--- a/include/linux/cgroup-defs.h
|
||||
+++ b/include/linux/cgroup-defs.h
|
||||
@@ -133,12 +133,6 @@ struct cgroup_subsys_state {
|
||||
*/
|
||||
u64 serial_nr;
|
||||
|
||||
- /*
|
||||
- * Incremented by online self and children. Used to guarantee that
|
||||
- * parents are not offlined before their children.
|
||||
- */
|
||||
- atomic_t online_cnt;
|
||||
-
|
||||
/* percpu_ref killing and RCU release */
|
||||
struct rcu_head rcu_head;
|
||||
struct work_struct destroy_work;
|
||||
--- a/kernel/cgroup.c
|
||||
+++ b/kernel/cgroup.c
|
||||
@@ -4784,7 +4784,6 @@ static void init_and_link_css(struct cgr
|
||||
INIT_LIST_HEAD(&css->sibling);
|
||||
INIT_LIST_HEAD(&css->children);
|
||||
css->serial_nr = css_serial_nr_next++;
|
||||
- atomic_set(&css->online_cnt, 0);
|
||||
|
||||
if (cgroup_parent(cgrp)) {
|
||||
css->parent = cgroup_css(cgroup_parent(cgrp), ss);
|
||||
@@ -4807,10 +4806,6 @@ static int online_css(struct cgroup_subs
|
||||
if (!ret) {
|
||||
css->flags |= CSS_ONLINE;
|
||||
rcu_assign_pointer(css->cgroup->subsys[ss->id], css);
|
||||
-
|
||||
- atomic_inc(&css->online_cnt);
|
||||
- if (css->parent)
|
||||
- atomic_inc(&css->parent->online_cnt);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
@@ -5042,15 +5037,10 @@ static void css_killed_work_fn(struct wo
|
||||
container_of(work, struct cgroup_subsys_state, destroy_work);
|
||||
|
||||
mutex_lock(&cgroup_mutex);
|
||||
-
|
||||
- do {
|
||||
- offline_css(css);
|
||||
- css_put(css);
|
||||
- /* @css can't go away while we're holding cgroup_mutex */
|
||||
- css = css->parent;
|
||||
- } while (css && atomic_dec_and_test(&css->online_cnt));
|
||||
-
|
||||
+ offline_css(css);
|
||||
mutex_unlock(&cgroup_mutex);
|
||||
+
|
||||
+ css_put(css);
|
||||
}
|
||||
|
||||
/* css kill confirmation processing requires process context, bounce */
|
||||
@@ -5059,10 +5049,8 @@ static void css_killed_ref_fn(struct per
|
||||
struct cgroup_subsys_state *css =
|
||||
container_of(ref, struct cgroup_subsys_state, refcnt);
|
||||
|
||||
- if (atomic_dec_and_test(&css->online_cnt)) {
|
||||
- INIT_WORK(&css->destroy_work, css_killed_work_fn);
|
||||
- queue_work(cgroup_destroy_wq, &css->destroy_work);
|
||||
- }
|
||||
+ INIT_WORK(&css->destroy_work, css_killed_work_fn);
|
||||
+ queue_work(cgroup_destroy_wq, &css->destroy_work);
|
||||
}
|
||||
|
||||
/**
|
|
@ -0,0 +1,45 @@
|
|||
From: Ben Hutchings <ben@decadent.org.uk>
|
||||
Date: Sun, 06 Mar 2016 00:40:31 +0000
|
||||
Subject: thermal: Fix ABI change in 4.4.4
|
||||
Forwarded: not-needed
|
||||
|
||||
struct thermal_zone_device is always allocated in thermal_core and the
|
||||
new field is only used there. So we can safely move it to the end of the
|
||||
structure and hide it from genksyms.
|
||||
|
||||
Also hide the new #include, as if it could make an actual difference,
|
||||
stupid genksyms...
|
||||
|
||||
---
|
||||
--- a/include/linux/thermal.h
|
||||
+++ b/include/linux/thermal.h
|
||||
@@ -198,7 +198,6 @@ struct thermal_zone_device {
|
||||
int emul_temperature;
|
||||
int passive;
|
||||
unsigned int forced_passive;
|
||||
- atomic_t need_update;
|
||||
struct thermal_zone_device_ops *ops;
|
||||
struct thermal_zone_params *tzp;
|
||||
struct thermal_governor *governor;
|
||||
@@ -208,6 +207,9 @@ struct thermal_zone_device {
|
||||
struct mutex lock;
|
||||
struct list_head node;
|
||||
struct delayed_work poll_queue;
|
||||
+#ifndef __GENKSYMS__
|
||||
+ atomic_t need_update;
|
||||
+#endif
|
||||
};
|
||||
|
||||
/**
|
||||
--- a/drivers/thermal/thermal_core.c
|
||||
+++ b/drivers/thermal/thermal_core.c
|
||||
@@ -37,7 +37,9 @@
|
||||
#include <linux/of.h>
|
||||
#include <net/netlink.h>
|
||||
#include <net/genetlink.h>
|
||||
+#ifndef __GENKSYMS__
|
||||
#include <linux/suspend.h>
|
||||
+#endif
|
||||
|
||||
#define CREATE_TRACE_POINTS
|
||||
#include <trace/events/thermal.h>
|
|
@ -128,3 +128,7 @@ bugfix/arm/net-mv643xx_eth-fix-packet-corruption-with-tso-and-t.patch
|
|||
bugfix/x86/x86-efi-bgrt-fix-kernel-panic-when-mapping-bgrt-data.patch
|
||||
bugfix/x86/x86-efi-bgrt-replace-early_memremap-with-memremap.patch
|
||||
bugfix/all/uas-fix-high-order-alloc.patch
|
||||
debian/revert-cgroup-make-sure-a-parent-css-isn-t-offlined.patch
|
||||
debian/thermal-fix-abi-change-in-4.4.4.patch
|
||||
debian/ipv4-fix-abi-change-in-4.4.4.patch
|
||||
debian/ipv6-fix-abi-change-in-4.4.4.patch
|
||||
|
|
Loading…
Reference in New Issue