[linux] 01/02: Update to 4.5.5
debian-kernel at lists.debian.org
debian-kernel at lists.debian.org
Mon May 23 01:47:58 UTC 2016
This is an automated email from the git hooks/post-receive script.
benh pushed a commit to branch sid
in repository linux.
commit 327c921aa72698030b650cc0995782f3e1a0b14c
Author: Ben Hutchings <ben at decadent.org.uk>
Date: Mon May 23 02:34:39 2016 +0100
Update to 4.5.5
Drop changes that were applied upstream.
Fix/ignore ABI changes.
---
debian/changelog | 89 +++++++-
debian/config/defines | 1 +
...able-unimplemented-scatter-gather-feature.patch | 37 ----
...pf-fix-check_map_func_compatibility-logic.patch | 94 --------
...uble-fdput-in-replace_map_fd_with_map_ptr.patch | 41 ----
.../bugfix/all/bpf-fix-refcnt-overflow.patch | 147 -------------
...ash-fix-page-length-clamping-in-hash-walk.patch | 31 ---
...idge_filename-handle-malformed-nm-entries.patch | 60 -----
.../bugfix/all/net-fix-infoleak-in-llc.patch | 29 ---
.../bugfix/all/net-fix-infoleak-in-rtnetlink.patch | 45 ----
...k-avoid-kernel-pointer-value-leak-in-slab.patch | 45 ----
...compat-fix-compile-errors-when-glibc-net-.patch | 245 ---------------------
.../debian/net-sched-fix-abi-change-in-4.5.5.patch | 35 +++
debian/patches/series | 11 +-
14 files changed, 125 insertions(+), 785 deletions(-)
diff --git a/debian/changelog b/debian/changelog
index 23e00f4..2644177 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,91 @@
-linux (4.5.4-2) UNRELEASED; urgency=medium
+linux (4.5.5-1) UNRELEASED; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.5.5
+ - decnet: Do not build routes to devices without decnet private data.
+ - route: do not cache fib route info on local routes with oif
+ - packet: fix heap info leak in PACKET_DIAG_MCLIST sock_diag interface
+ - net: sched: do not requeue a NULL skb
+ - bpf/verifier: reject invalid LD_ABS | BPF_DW instruction
+ - cdc_mbim: apply "NDP to end" quirk to all Huawei devices
+ - soreuseport: fix ordering for mixed v4/v6 sockets
+ - net: use skb_postpush_rcsum instead of own implementations
+ - vlan: pull on __vlan_insert_tag error path and fix csum correction
+ - openvswitch: Orphan skbs before IPv6 defrag
+ - openvswitch: use flow protocol when recalculating ipv6 checksums
+ - net/mlx5_core: Fix soft lockup in steering error flow
+ - net/mlx5e: Device's mtu field is u16 and not int
+ - net/mlx5e: Fix minimum MTU
+ - net/mlx5e: Use vport MTU rather than physical port MTU
+ - ipv4/fib: don't warn when primary address is missing if in_dev is dead
+ - net/mlx4_en: fix spurious timestamping callbacks
+ - net: Implement net_dbg_ratelimited() for CONFIG_DYNAMIC_DEBUG case
+ - gre: do not pull header in ICMP error processing
+ - net_sched: introduce qdisc_replace() helper
+ - net_sched: update hierarchical backlog too
+ - sch_htb: update backlog as well
+ - sch_dsmark: update backlog as well
+ - netem: Segment GSO packets on enqueue
+ - ipv6/ila: fix nlsize calculation for lwtunnel
+ - net/mlx4_en: Fix endianness bug in IPV6 csum calculation
+ - [x86] VSOCK: do not disconnect socket when peer has shutdown SEND only
+ - net: bridge: fix old ioctl unlocked net device walk
+ - bridge: fix igmp / mld query parsing
+ - net: fix a kernel infoleak in x25 module
+ - net: thunderx: avoid exposing kernel stack
+ - tcp: refresh skb timestamp at retransmit time
+ - net/route: enforce hoplimit max value
+ - ocfs2: revert using ocfs2_acl_chmod to avoid inode cluster lock hang
+ - ocfs2: fix posix_acl_create deadlock
+ - zsmalloc: fix zs_can_compact() integer overflow
+ - mm: thp: calculate the mapcount correctly for THP pages during WP faults
+ - [x86] crypto: qat - fix invalid pf2vf_resp_wq logic
+ - crypto: testmgr - Use kmalloc memory for RSA input
+ - ALSA: usb-audio: Quirk for yet another Phoenix Audio devices (v2)
+ - ALSA: usb-audio: Yet another Phoneix Audio device quirk
+ - ALSA: hda - Fix subwoofer pin on ASUS N751 and N551
+ - ALSA: hda - Fix white noise on Asus UX501VW headset
+ - ALSA: hda - Fix broken reconfig
+ - [armhf] spi: spi-ti-qspi: Fix FLEN and WLEN settings if bits_per_word is
+ overridden
+ - [armhf] spi: spi-ti-qspi: Handle truncated frames properly
+ - perf diff: Fix duplicated output column
+ - perf/core: Disable the event on a truncated AUX record
+ - vfs: rename: check backing inode being equal
+ - workqueue: fix rebind bound workers warning
+ - [armhf] regulator: s2mps11: Fix invalid selector mask and voltages
+ for buck9
+ - [armhf] regulator: axp20x: Fix axp22x ldo_io voltage ranges
+ - atomic_open(): fix the handling of create_error
+ - qla1280: Don't allocate 512kb of host tags
+ - tools lib traceevent: Do not reassign parg after collapse_tree()
+ - Revert "[media] videobuf2-v4l2: Verify planes array in buffer dequeueing"
+ - [x86] drm/i915: Update CDCLK_FREQ register on BDW after changing cdclk
+ frequency
+ - drm/radeon: fix PLL sharing on DCE6.1 (v2)
+ - [x86] drm/i915: Bail out of pipe config compute loop on LPT
+ - [x86] Revert "drm/i915: start adding dp mst audio"
+ - [x86] drm/i915/bdw: Add missing delay during L3 SQC credit programming
+ - drm/radeon: fix DP link training issue with second 4K monitor
+ - drm/radeon: fix DP mode validation
+ - [x86] drm/amdgpu: fix DP mode validation
+ - btrfs: reada: Fix in-segment calculation for reada
+ - Btrfs: fix truncate_space_check
+ - btrfs: remove error message from search ioctl for nonexistent tree
+ - btrfs: change max_inline default to 2048
+ - Btrfs: fix unreplayable log after snapshot delete + parent dir fsync
+ - Btrfs: fix file loss on log replay after renaming a file and fsync
+ - Btrfs: fix extent_same allowing destination offset beyond i_size
+ - Btrfs: fix deadlock between direct IO reads and buffered writes
+ - Btrfs: fix race when checking if we can skip fsync'ing an inode
+ - Btrfs: do not collect ordered extents when logging that inode exists
+ - btrfs: csum_tree_block: return proper errno value
+ - btrfs: do not write corrupted metadata blocks to disk
+ - Btrfs: fix invalid reference in replace_path
+ - btrfs: handle non-fatal errors in btrfs_qgroup_inherit()
+ - btrfs: fallback to vmalloc in btrfs_compare_tree
+ - Btrfs: don't use src fd for printk
+ - btrfs: Reset IO error counters before start of device replacing
[ Salvatore Bonaccorso ]
* tipc: check nl sock before parsing nested attributes (CVE-2016-4951)
diff --git a/debian/config/defines b/debian/config/defines
index 464e1db..e0b1287 100644
--- a/debian/config/defines
+++ b/debian/config/defines
@@ -1,6 +1,7 @@
[abi]
abiname: 2
ignore-changes:
+ module:drivers/net/ethernet/*
module:sound/hda/*
zpci_disable_device
zpci_enable_device
diff --git a/debian/patches/bugfix/all/atl2-disable-unimplemented-scatter-gather-feature.patch b/debian/patches/bugfix/all/atl2-disable-unimplemented-scatter-gather-feature.patch
deleted file mode 100644
index df43429..0000000
--- a/debian/patches/bugfix/all/atl2-disable-unimplemented-scatter-gather-feature.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From: Ben Hutchings <ben at decadent.org.uk>
-Date: Wed, 20 Apr 2016 23:23:08 +0100
-Subject: atl2: Disable unimplemented scatter/gather feature
-Origin: https://git.kernel.org/cgit/linux/kernel/git/davem/net.git/commit?id=f43bfaeddc79effbf3d0fcb53ca477cca66f3db8
-
-atl2 includes NETIF_F_SG in hw_features even though it has no support
-for non-linear skbs. This bug was originally harmless since the
-driver does not claim to implement checksum offload and that used to
-be a requirement for SG.
-
-Now that SG and checksum offload are independent features, if you
-explicitly enable SG *and* use one of the rare protocols that can use
-SG without checkusm offload, this potentially leaks sensitive
-information (before you notice that it just isn't working). Therefore
-this obscure bug has been designated CVE-2016-2117.
-
-Reported-by: Justin Yackoski <jyackoski at crypto-nite.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
-Fixes: ec5f06156423 ("net: Kill link between CSUM and SG features.")
-Signed-off-by: David S. Miller <davem at davemloft.net>
----
- drivers/net/ethernet/atheros/atlx/atl2.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/net/ethernet/atheros/atlx/atl2.c b/drivers/net/ethernet/atheros/atlx/atl2.c
-index 8f76f4558a88..2ff465848b65 100644
---- a/drivers/net/ethernet/atheros/atlx/atl2.c
-+++ b/drivers/net/ethernet/atheros/atlx/atl2.c
-@@ -1412,7 +1412,7 @@ static int atl2_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
-
- err = -EIO;
-
-- netdev->hw_features = NETIF_F_SG | NETIF_F_HW_VLAN_CTAG_RX;
-+ netdev->hw_features = NETIF_F_HW_VLAN_CTAG_RX;
- netdev->features |= (NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX);
-
- /* Init PHY as early as possible due to power saving issue */
diff --git a/debian/patches/bugfix/all/bpf-fix-check_map_func_compatibility-logic.patch b/debian/patches/bugfix/all/bpf-fix-check_map_func_compatibility-logic.patch
deleted file mode 100644
index 83a0254..0000000
--- a/debian/patches/bugfix/all/bpf-fix-check_map_func_compatibility-logic.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From: Alexei Starovoitov <ast at fb.com>
-Date: Wed, 27 Apr 2016 18:56:21 -0700
-Subject: [3/3] bpf: fix check_map_func_compatibility logic
-Origin: https://git.kernel.org/linus/6aff67c85c9e5a4bc99e5211c1bac547936626ca
-
-The commit 35578d798400 ("bpf: Implement function bpf_perf_event_read() that get the selected hardware PMU conuter")
-introduced clever way to check bpf_helper<->map_type compatibility.
-Later on commit a43eec304259 ("bpf: introduce bpf_perf_event_output() helper") adjusted
-the logic and inadvertently broke it.
-Get rid of the clever bool compare and go back to two-way check
-from map and from helper perspective.
-
-Fixes: a43eec304259 ("bpf: introduce bpf_perf_event_output() helper")
-Reported-by: Jann Horn <jannh at google.com>
-Signed-off-by: Alexei Starovoitov <ast at kernel.org>
-Signed-off-by: Daniel Borkmann <daniel at iogearbox.net>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-[bwh: Backported to 4.5:
- - Drop the STACK_TRACE case
- - No verbose() logging]
----
---- a/kernel/bpf/verifier.c
-+++ b/kernel/bpf/verifier.c
-@@ -239,15 +239,6 @@ static const char * const reg_type_str[]
- [CONST_IMM] = "imm",
- };
-
--static const struct {
-- int map_type;
-- int func_id;
--} func_limit[] = {
-- {BPF_MAP_TYPE_PROG_ARRAY, BPF_FUNC_tail_call},
-- {BPF_MAP_TYPE_PERF_EVENT_ARRAY, BPF_FUNC_perf_event_read},
-- {BPF_MAP_TYPE_PERF_EVENT_ARRAY, BPF_FUNC_perf_event_output},
--};
--
- static void print_verifier_state(struct verifier_env *env)
- {
- enum bpf_reg_type t;
-@@ -898,24 +889,42 @@ static int check_func_arg(struct verifie
-
- static int check_map_func_compatibility(struct bpf_map *map, int func_id)
- {
-- bool bool_map, bool_func;
-- int i;
--
- if (!map)
- return 0;
-
-- for (i = 0; i < ARRAY_SIZE(func_limit); i++) {
-- bool_map = (map->map_type == func_limit[i].map_type);
-- bool_func = (func_id == func_limit[i].func_id);
-- /* only when map & func pair match it can continue.
-- * don't allow any other map type to be passed into
-- * the special func;
-- */
-- if (bool_func && bool_map != bool_func)
-- return -EINVAL;
-+ /* We need a two way check, first is from map perspective ... */
-+ switch (map->map_type) {
-+ case BPF_MAP_TYPE_PROG_ARRAY:
-+ if (func_id != BPF_FUNC_tail_call)
-+ goto error;
-+ break;
-+ case BPF_MAP_TYPE_PERF_EVENT_ARRAY:
-+ if (func_id != BPF_FUNC_perf_event_read &&
-+ func_id != BPF_FUNC_perf_event_output)
-+ goto error;
-+ break;
-+ default:
-+ break;
-+ }
-+
-+ /* ... and second from the function itself. */
-+ switch (func_id) {
-+ case BPF_FUNC_tail_call:
-+ if (map->map_type != BPF_MAP_TYPE_PROG_ARRAY)
-+ goto error;
-+ break;
-+ case BPF_FUNC_perf_event_read:
-+ case BPF_FUNC_perf_event_output:
-+ if (map->map_type != BPF_MAP_TYPE_PERF_EVENT_ARRAY)
-+ goto error;
-+ break;
-+ default:
-+ break;
- }
-
- return 0;
-+error:
-+ return -EINVAL;
- }
-
- static int check_call(struct verifier_env *env, int func_id)
diff --git a/debian/patches/bugfix/all/bpf-fix-double-fdput-in-replace_map_fd_with_map_ptr.patch b/debian/patches/bugfix/all/bpf-fix-double-fdput-in-replace_map_fd_with_map_ptr.patch
deleted file mode 100644
index 4c43fcd..0000000
--- a/debian/patches/bugfix/all/bpf-fix-double-fdput-in-replace_map_fd_with_map_ptr.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From: Jann Horn <jannh at google.com>
-Date: Tue, 26 Apr 2016 22:26:26 +0200
-Subject: [1/3] bpf: fix double-fdput in replace_map_fd_with_map_ptr()
-Origin: https://git.kernel.org/linus/8358b02bf67d3a5d8a825070e1aa73f25fb2e4c7
-
-When bpf(BPF_PROG_LOAD, ...) was invoked with a BPF program whose bytecode
-references a non-map file descriptor as a map file descriptor, the error
-handling code called fdput() twice instead of once (in __bpf_map_get() and
-in replace_map_fd_with_map_ptr()). If the file descriptor table of the
-current task is shared, this causes f_count to be decremented too much,
-allowing the struct file to be freed while it is still in use
-(use-after-free). This can be exploited to gain root privileges by an
-unprivileged user.
-
-This bug was introduced in
-commit 0246e64d9a5f ("bpf: handle pseudo BPF_LD_IMM64 insn"), but is only
-exploitable since
-commit 1be7f75d1668 ("bpf: enable non-root eBPF programs") because
-previously, CAP_SYS_ADMIN was required to reach the vulnerable code.
-
-(posted publicly according to request by maintainer)
-
-Signed-off-by: Jann Horn <jannh at google.com>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Acked-by: Alexei Starovoitov <ast at kernel.org>
-Acked-by: Daniel Borkmann <daniel at iogearbox.net>
-Signed-off-by: David S. Miller <davem at davemloft.net>
----
- kernel/bpf/verifier.c | 1 -
- 1 file changed, 1 deletion(-)
-
---- a/kernel/bpf/verifier.c
-+++ b/kernel/bpf/verifier.c
-@@ -2003,7 +2003,6 @@ static int replace_map_fd_with_map_ptr(s
- if (IS_ERR(map)) {
- verbose("fd %d is not pointing to valid bpf_map\n",
- insn->imm);
-- fdput(f);
- return PTR_ERR(map);
- }
-
diff --git a/debian/patches/bugfix/all/bpf-fix-refcnt-overflow.patch b/debian/patches/bugfix/all/bpf-fix-refcnt-overflow.patch
deleted file mode 100644
index a5b3d77..0000000
--- a/debian/patches/bugfix/all/bpf-fix-refcnt-overflow.patch
+++ /dev/null
@@ -1,147 +0,0 @@
-From: Alexei Starovoitov <ast at fb.com>
-Date: Wed, 27 Apr 2016 18:56:20 -0700
-Subject: [2/3] bpf: fix refcnt overflow
-Origin: https://git.kernel.org/linus/92117d8443bc5afacc8d5ba82e541946310f106e
-
-On a system with >32Gbyte of phyiscal memory and infinite RLIMIT_MEMLOCK,
-the malicious application may overflow 32-bit bpf program refcnt.
-It's also possible to overflow map refcnt on 1Tb system.
-Impose 32k hard limit which means that the same bpf program or
-map cannot be shared by more than 32k processes.
-
-Fixes: 1be7f75d1668 ("bpf: enable non-root eBPF programs")
-Reported-by: Jann Horn <jannh at google.com>
-Signed-off-by: Alexei Starovoitov <ast at kernel.org>
-Acked-by: Daniel Borkmann <daniel at iogearbox.net>
-Signed-off-by: David S. Miller <davem at davemloft.net>
----
- include/linux/bpf.h | 3 ++-
- kernel/bpf/inode.c | 7 ++++---
- kernel/bpf/syscall.c | 24 ++++++++++++++++++++----
- kernel/bpf/verifier.c | 11 +++++++----
- 4 files changed, 33 insertions(+), 12 deletions(-)
-
---- a/include/linux/bpf.h
-+++ b/include/linux/bpf.h
-@@ -165,12 +165,13 @@ void bpf_register_prog_type(struct bpf_p
- void bpf_register_map_type(struct bpf_map_type_list *tl);
-
- struct bpf_prog *bpf_prog_get(u32 ufd);
-+struct bpf_prog *bpf_prog_inc(struct bpf_prog *prog);
- void bpf_prog_put(struct bpf_prog *prog);
- void bpf_prog_put_rcu(struct bpf_prog *prog);
-
- struct bpf_map *bpf_map_get_with_uref(u32 ufd);
- struct bpf_map *__bpf_map_get(struct fd f);
--void bpf_map_inc(struct bpf_map *map, bool uref);
-+struct bpf_map *bpf_map_inc(struct bpf_map *map, bool uref);
- void bpf_map_put_with_uref(struct bpf_map *map);
- void bpf_map_put(struct bpf_map *map);
-
---- a/kernel/bpf/inode.c
-+++ b/kernel/bpf/inode.c
-@@ -31,10 +31,10 @@ static void *bpf_any_get(void *raw, enum
- {
- switch (type) {
- case BPF_TYPE_PROG:
-- atomic_inc(&((struct bpf_prog *)raw)->aux->refcnt);
-+ raw = bpf_prog_inc(raw);
- break;
- case BPF_TYPE_MAP:
-- bpf_map_inc(raw, true);
-+ raw = bpf_map_inc(raw, true);
- break;
- default:
- WARN_ON_ONCE(1);
-@@ -297,7 +297,8 @@ static void *bpf_obj_do_get(const struct
- goto out;
-
- raw = bpf_any_get(inode->i_private, *type);
-- touch_atime(&path);
-+ if (!IS_ERR(raw))
-+ touch_atime(&path);
-
- path_put(&path);
- return raw;
---- a/kernel/bpf/syscall.c
-+++ b/kernel/bpf/syscall.c
-@@ -201,11 +201,18 @@ struct bpf_map *__bpf_map_get(struct fd
- return f.file->private_data;
- }
-
--void bpf_map_inc(struct bpf_map *map, bool uref)
-+/* prog's and map's refcnt limit */
-+#define BPF_MAX_REFCNT 32768
-+
-+struct bpf_map *bpf_map_inc(struct bpf_map *map, bool uref)
- {
-- atomic_inc(&map->refcnt);
-+ if (atomic_inc_return(&map->refcnt) > BPF_MAX_REFCNT) {
-+ atomic_dec(&map->refcnt);
-+ return ERR_PTR(-EBUSY);
-+ }
- if (uref)
- atomic_inc(&map->usercnt);
-+ return map;
- }
-
- struct bpf_map *bpf_map_get_with_uref(u32 ufd)
-@@ -217,7 +224,7 @@ struct bpf_map *bpf_map_get_with_uref(u3
- if (IS_ERR(map))
- return map;
-
-- bpf_map_inc(map, true);
-+ map = bpf_map_inc(map, true);
- fdput(f);
-
- return map;
-@@ -600,6 +607,15 @@ static struct bpf_prog *__bpf_prog_get(s
- return f.file->private_data;
- }
-
-+struct bpf_prog *bpf_prog_inc(struct bpf_prog *prog)
-+{
-+ if (atomic_inc_return(&prog->aux->refcnt) > BPF_MAX_REFCNT) {
-+ atomic_dec(&prog->aux->refcnt);
-+ return ERR_PTR(-EBUSY);
-+ }
-+ return prog;
-+}
-+
- /* called by sockets/tracing/seccomp before attaching program to an event
- * pairs with bpf_prog_put()
- */
-@@ -612,7 +628,7 @@ struct bpf_prog *bpf_prog_get(u32 ufd)
- if (IS_ERR(prog))
- return prog;
-
-- atomic_inc(&prog->aux->refcnt);
-+ prog = bpf_prog_inc(prog);
- fdput(f);
-
- return prog;
---- a/kernel/bpf/verifier.c
-+++ b/kernel/bpf/verifier.c
-@@ -2022,15 +2022,18 @@ static int replace_map_fd_with_map_ptr(s
- return -E2BIG;
- }
-
-- /* remember this map */
-- env->used_maps[env->used_map_cnt++] = map;
--
- /* hold the map. If the program is rejected by verifier,
- * the map will be released by release_maps() or it
- * will be used by the valid program until it's unloaded
- * and all maps are released in free_bpf_prog_info()
- */
-- bpf_map_inc(map, false);
-+ map = bpf_map_inc(map, false);
-+ if (IS_ERR(map)) {
-+ fdput(f);
-+ return PTR_ERR(map);
-+ }
-+ env->used_maps[env->used_map_cnt++] = map;
-+
- fdput(f);
- next_insn:
- insn++;
diff --git a/debian/patches/bugfix/all/crypto-hash-fix-page-length-clamping-in-hash-walk.patch b/debian/patches/bugfix/all/crypto-hash-fix-page-length-clamping-in-hash-walk.patch
deleted file mode 100644
index aa54020..0000000
--- a/debian/patches/bugfix/all/crypto-hash-fix-page-length-clamping-in-hash-walk.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From: Herbert Xu <herbert at gondor.apana.org.au>
-Date: Wed, 4 May 2016 17:52:56 +0800
-Subject: crypto: hash - Fix page length clamping in hash walk
-Origin: https://git.kernel.org/linus/13f4bb78cf6a312bbdec367ba3da044b09bf0e29
-
-The crypto hash walk code is broken when supplied with an offset
-greater than or equal to PAGE_SIZE. This patch fixes it by adjusting
-walk->pg and walk->offset when this happens.
-
-Cc: <stable at vger.kernel.org>
-Reported-by: Steffen Klassert <steffen.klassert at secunet.com>
-Signed-off-by: Herbert Xu <herbert at gondor.apana.org.au>
----
- crypto/ahash.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/crypto/ahash.c b/crypto/ahash.c
-index 5fc1f172963d..3887a98abcc3 100644
---- a/crypto/ahash.c
-+++ b/crypto/ahash.c
-@@ -69,8 +69,9 @@ static int hash_walk_new_entry(struct crypto_hash_walk *walk)
- struct scatterlist *sg;
-
- sg = walk->sg;
-- walk->pg = sg_page(sg);
- walk->offset = sg->offset;
-+ walk->pg = sg_page(walk->sg) + (walk->offset >> PAGE_SHIFT);
-+ walk->offset = offset_in_page(walk->offset);
- walk->entrylen = sg->length;
-
- if (walk->entrylen > walk->total)
diff --git a/debian/patches/bugfix/all/get_rock_ridge_filename-handle-malformed-nm-entries.patch b/debian/patches/bugfix/all/get_rock_ridge_filename-handle-malformed-nm-entries.patch
deleted file mode 100644
index 9958226..0000000
--- a/debian/patches/bugfix/all/get_rock_ridge_filename-handle-malformed-nm-entries.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From: Al Viro <viro at zeniv.linux.org.uk>
-Date: Thu, 5 May 2016 16:25:35 -0400
-Subject: get_rock_ridge_filename(): handle malformed NM entries
-Origin: https://git.kernel.org/linus/99d825822eade8d827a1817357cbf3f889a552d6
-
-Payloads of NM entries are not supposed to contain NUL. When we run
-into such, only the part prior to the first NUL goes into the
-concatenation (i.e. the directory entry name being encoded by a bunch
-of NM entries). We do stop when the amount collected so far + the
-claimed amount in the current NM entry exceed 254. So far, so good,
-but what we return as the total length is the sum of *claimed*
-sizes, not the actual amount collected. And that can grow pretty
-large - not unlimited, since you'd need to put CE entries in
-between to be able to get more than the maximum that could be
-contained in one isofs directory entry / continuation chunk and
-we are stop once we'd encountered 32 CEs, but you can get about 8Kb
-easily. And that's what will be passed to readdir callback as the
-name length. 8Kb __copy_to_user() from a buffer allocated by
-__get_free_page()
-
-Cc: stable at vger.kernel.org # 0.98pl6+ (yes, really)
-Signed-off-by: Al Viro <viro at zeniv.linux.org.uk>
----
- fs/isofs/rock.c | 13 ++++++++++---
- 1 file changed, 10 insertions(+), 3 deletions(-)
-
-diff --git a/fs/isofs/rock.c b/fs/isofs/rock.c
-index 5384ceb35b1c..98b3eb7d8eaf 100644
---- a/fs/isofs/rock.c
-+++ b/fs/isofs/rock.c
-@@ -203,6 +203,8 @@ int get_rock_ridge_filename(struct iso_directory_record *de,
- int retnamlen = 0;
- int truncate = 0;
- int ret = 0;
-+ char *p;
-+ int len;
-
- if (!ISOFS_SB(inode->i_sb)->s_rock)
- return 0;
-@@ -267,12 +269,17 @@ repeat:
- rr->u.NM.flags);
- break;
- }
-- if ((strlen(retname) + rr->len - 5) >= 254) {
-+ len = rr->len - 5;
-+ if (retnamlen + len >= 254) {
- truncate = 1;
- break;
- }
-- strncat(retname, rr->u.NM.name, rr->len - 5);
-- retnamlen += rr->len - 5;
-+ p = memchr(rr->u.NM.name, '\0', len);
-+ if (unlikely(p))
-+ len = p - rr->u.NM.name;
-+ memcpy(retname + retnamlen, rr->u.NM.name, len);
-+ retnamlen += len;
-+ retname[retnamlen] = '\0';
- break;
- case SIG('R', 'E'):
- kfree(rs.buffer);
diff --git a/debian/patches/bugfix/all/net-fix-infoleak-in-llc.patch b/debian/patches/bugfix/all/net-fix-infoleak-in-llc.patch
deleted file mode 100644
index 17638b4..0000000
--- a/debian/patches/bugfix/all/net-fix-infoleak-in-llc.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From: Kangjie Lu <kangjielu at gmail.com>
-Date: Tue, 3 May 2016 16:35:05 -0400
-Subject: net: fix infoleak in llc
-Origin: https://git.kernel.org/linus/b8670c09f37bdf2847cc44f36511a53afc6161fd
-
-The stack object “info” has a total size of 12 bytes. Its last byte
-is padding which is not initialized and leaked via “put_cmsg”.
-
-Signed-off-by: Kangjie Lu <kjlu at gatech.edu>
-Signed-off-by: David S. Miller <davem at davemloft.net>
----
- net/llc/af_llc.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/net/llc/af_llc.c b/net/llc/af_llc.c
-index b3c52e3..8ae3ed9 100644
---- a/net/llc/af_llc.c
-+++ b/net/llc/af_llc.c
-@@ -626,6 +626,7 @@ static void llc_cmsg_rcv(struct msghdr *msg, struct sk_buff *skb)
- if (llc->cmsg_flags & LLC_CMSG_PKTINFO) {
- struct llc_pktinfo info;
-
-+ memset(&info, 0, sizeof(info));
- info.lpi_ifindex = llc_sk(skb->sk)->dev->ifindex;
- llc_pdu_decode_dsap(skb, &info.lpi_sap);
- llc_pdu_decode_da(skb, info.lpi_mac);
---
-2.8.1
-
diff --git a/debian/patches/bugfix/all/net-fix-infoleak-in-rtnetlink.patch b/debian/patches/bugfix/all/net-fix-infoleak-in-rtnetlink.patch
deleted file mode 100644
index 097daef..0000000
--- a/debian/patches/bugfix/all/net-fix-infoleak-in-rtnetlink.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From: Kangjie Lu <kangjielu at gmail.com>
-Date: Tue, 3 May 2016 16:46:24 -0400
-Subject: net: fix infoleak in rtnetlink
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-Origin: https://git.kernel.org/linus/5f8e44741f9f216e33736ea4ec65ca9ac03036e6
-
-The stack object “map” has a total size of 32 bytes. Its last 4
-bytes are padding generated by compiler. These padding bytes are
-not initialized and sent out via “nla_put”.
-
-Signed-off-by: Kangjie Lu <kjlu at gatech.edu>
-Signed-off-by: David S. Miller <davem at davemloft.net>
----
- net/core/rtnetlink.c | 18 ++++++++++--------
- 1 file changed, 10 insertions(+), 8 deletions(-)
-
---- a/net/core/rtnetlink.c
-+++ b/net/core/rtnetlink.c
-@@ -1176,14 +1176,16 @@ static noinline_for_stack int rtnl_fill_
-
- static int rtnl_fill_link_ifmap(struct sk_buff *skb, struct net_device *dev)
- {
-- struct rtnl_link_ifmap map = {
-- .mem_start = dev->mem_start,
-- .mem_end = dev->mem_end,
-- .base_addr = dev->base_addr,
-- .irq = dev->irq,
-- .dma = dev->dma,
-- .port = dev->if_port,
-- };
-+ struct rtnl_link_ifmap map;
-+
-+ memset(&map, 0, sizeof(map));
-+ map.mem_start = dev->mem_start;
-+ map.mem_end = dev->mem_end;
-+ map.base_addr = dev->base_addr;
-+ map.irq = dev->irq;
-+ map.dma = dev->dma;
-+ map.port = dev->if_port;
-+
- if (nla_put(skb, IFLA_MAP, sizeof(map), &map))
- return -EMSGSIZE;
-
diff --git a/debian/patches/bugfix/all/nf_conntrack-avoid-kernel-pointer-value-leak-in-slab.patch b/debian/patches/bugfix/all/nf_conntrack-avoid-kernel-pointer-value-leak-in-slab.patch
deleted file mode 100644
index 84c2beb..0000000
--- a/debian/patches/bugfix/all/nf_conntrack-avoid-kernel-pointer-value-leak-in-slab.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From: Linus Torvalds <torvalds at linux-foundation.org>
-Date: Sat, 14 May 2016 11:11:44 -0700
-Subject: nf_conntrack: avoid kernel pointer value leak in slab name
-Origin: https://git.kernel.org/linus/31b0b385f69d8d5491a4bca288e25e63f1d945d0
-
-The slab name ends up being visible in the directory structure under
-/sys, and even if you don't have access rights to the file you can see
-the filenames.
-
-Just use a 64-bit counter instead of the pointer to the 'net' structure
-to generate a unique name.
-
-This code will go away in 4.7 when the conntrack code moves to a single
-kmemcache, but this is the backportable simple solution to avoiding
-leaking kernel pointers to user space.
-
-Fixes: 5b3501faa874 ("netfilter: nf_conntrack: per netns nf_conntrack_cachep")
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Acked-by: Eric Dumazet <eric.dumazet at gmail.com>
-Cc: stable at vger.kernel.org
-Signed-off-by: David S. Miller <davem at davemloft.net>
----
- net/netfilter/nf_conntrack_core.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
---- a/net/netfilter/nf_conntrack_core.c
-+++ b/net/netfilter/nf_conntrack_core.c
-@@ -1780,6 +1780,7 @@ void nf_conntrack_init_end(void)
-
- int nf_conntrack_init_net(struct net *net)
- {
-+ static atomic64_t unique_id;
- int ret = -ENOMEM;
- int cpu;
-
-@@ -1802,7 +1803,8 @@ int nf_conntrack_init_net(struct net *ne
- if (!net->ct.stat)
- goto err_pcpu_lists;
-
-- net->ct.slabname = kasprintf(GFP_KERNEL, "nf_conntrack_%p", net);
-+ net->ct.slabname = kasprintf(GFP_KERNEL, "nf_conntrack_%llu",
-+ (u64)atomic64_inc_return(&unique_id));
- if (!net->ct.slabname)
- goto err_slabname;
-
diff --git a/debian/patches/bugfix/all/uapi-glibc-compat-fix-compile-errors-when-glibc-net-.patch b/debian/patches/bugfix/all/uapi-glibc-compat-fix-compile-errors-when-glibc-net-.patch
deleted file mode 100644
index 80c3e7a..0000000
--- a/debian/patches/bugfix/all/uapi-glibc-compat-fix-compile-errors-when-glibc-net-.patch
+++ /dev/null
@@ -1,245 +0,0 @@
-From: Mikko Rapeli <mikko.rapeli at iki.fi>
-Date: Sun, 24 Apr 2016 17:45:00 +0200
-Subject: uapi glibc compat: fix compile errors when glibc net/if.h included
- before linux/if.h
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-Origin: https://git.kernel.org/linus/4a91cb61bb995e5571098188092e296192309c77
-Bug-Debian: https://bugs.debian.org/822393
-
-glibc's net/if.h contains copies of definitions from linux/if.h and these
-conflict and cause build failures if both files are included by application
-source code. Changes in uapi headers, which fixed header file dependencies to
-include linux/if.h when it was needed, e.g. commit 1ffad83d, made the
-net/if.h and linux/if.h incompatibilities visible as build failures for
-userspace applications like iproute2 and xtables-addons.
-
-This patch fixes compile errors when glibc net/if.h is included before
-linux/if.h:
-
-./linux/if.h:99:21: error: redeclaration of enumerator ‘IFF_NOARP’
-./linux/if.h:98:23: error: redeclaration of enumerator ‘IFF_RUNNING’
-./linux/if.h:97:26: error: redeclaration of enumerator ‘IFF_NOTRAILERS’
-./linux/if.h:96:27: error: redeclaration of enumerator ‘IFF_POINTOPOINT’
-./linux/if.h:95:24: error: redeclaration of enumerator ‘IFF_LOOPBACK’
-./linux/if.h:94:21: error: redeclaration of enumerator ‘IFF_DEBUG’
-./linux/if.h:93:25: error: redeclaration of enumerator ‘IFF_BROADCAST’
-./linux/if.h:92:19: error: redeclaration of enumerator ‘IFF_UP’
-./linux/if.h:252:8: error: redefinition of ‘struct ifconf’
-./linux/if.h:203:8: error: redefinition of ‘struct ifreq’
-./linux/if.h:169:8: error: redefinition of ‘struct ifmap’
-./linux/if.h:107:23: error: redeclaration of enumerator ‘IFF_DYNAMIC’
-./linux/if.h:106:25: error: redeclaration of enumerator ‘IFF_AUTOMEDIA’
-./linux/if.h:105:23: error: redeclaration of enumerator ‘IFF_PORTSEL’
-./linux/if.h:104:25: error: redeclaration of enumerator ‘IFF_MULTICAST’
-./linux/if.h:103:21: error: redeclaration of enumerator ‘IFF_SLAVE’
-./linux/if.h:102:22: error: redeclaration of enumerator ‘IFF_MASTER’
-./linux/if.h:101:24: error: redeclaration of enumerator ‘IFF_ALLMULTI’
-./linux/if.h:100:23: error: redeclaration of enumerator ‘IFF_PROMISC’
-
-The cases where linux/if.h is included before net/if.h need a similar fix in
-the glibc side, or the order of include files can be changed userspace
-code as a workaround.
-
-This change was tested in x86 userspace on Debian unstable with
-scripts/headers_compile_test.sh:
-
-$ make headers_install && \
- cd usr/include && ../../scripts/headers_compile_test.sh -l -k
-...
-cc -Wall -c -nostdinc -I /usr/lib/gcc/i586-linux-gnu/5/include -I /usr/lib/gcc/i586-linux-gnu/5/include-fixed -I . -I /home/mcfrisk/src/linux-2.6/usr/headers_compile_test_include.2uX2zH -I /home/mcfrisk/src/linux-2.6/usr/headers_compile_test_include.2uX2zH/i586-linux-gnu -o /dev/null ./linux/if.h_libc_before_kernel.h
-PASSED libc before kernel test: ./linux/if.h
-
-Reported-by: Jan Engelhardt <jengelh at inai.de>
-Reported-by: Josh Boyer <jwboyer at fedoraproject.org>
-Reported-by: Stephen Hemminger <shemming at brocade.com>
-Reported-by: Waldemar Brodkorb <mail at waldemar-brodkorb.de>
-Cc: Gabriel Laskar <gabriel at lse.epita.fr>
-Signed-off-by: Mikko Rapeli <mikko.rapeli at iki.fi>
-Signed-off-by: David S. Miller <davem at davemloft.net>
----
- include/uapi/linux/if.h | 28 +++++++++++++++++++++++++
- include/uapi/linux/libc-compat.h | 44 ++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 72 insertions(+)
-
-diff --git a/include/uapi/linux/if.h b/include/uapi/linux/if.h
-index f80277569f24..e601c8c3bdc7 100644
---- a/include/uapi/linux/if.h
-+++ b/include/uapi/linux/if.h
-@@ -19,14 +19,20 @@
- #ifndef _LINUX_IF_H
- #define _LINUX_IF_H
-
-+#include <linux/libc-compat.h> /* for compatibility with glibc */
- #include <linux/types.h> /* for "__kernel_caddr_t" et al */
- #include <linux/socket.h> /* for "struct sockaddr" et al */
- #include <linux/compiler.h> /* for "__user" et al */
-
-+#if __UAPI_DEF_IF_IFNAMSIZ
- #define IFNAMSIZ 16
-+#endif /* __UAPI_DEF_IF_IFNAMSIZ */
- #define IFALIASZ 256
- #include <linux/hdlc/ioctl.h>
-
-+/* For glibc compatibility. An empty enum does not compile. */
-+#if __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO != 0 && \
-+ __UAPI_DEF_IF_NET_DEVICE_FLAGS != 0
- /**
- * enum net_device_flags - &struct net_device flags
- *
-@@ -68,6 +74,8 @@
- * @IFF_ECHO: echo sent packets. Volatile.
- */
- enum net_device_flags {
-+/* for compatibility with glibc net/if.h */
-+#if __UAPI_DEF_IF_NET_DEVICE_FLAGS
- IFF_UP = 1<<0, /* sysfs */
- IFF_BROADCAST = 1<<1, /* volatile */
- IFF_DEBUG = 1<<2, /* sysfs */
-@@ -84,11 +92,17 @@ enum net_device_flags {
- IFF_PORTSEL = 1<<13, /* sysfs */
- IFF_AUTOMEDIA = 1<<14, /* sysfs */
- IFF_DYNAMIC = 1<<15, /* sysfs */
-+#endif /* __UAPI_DEF_IF_NET_DEVICE_FLAGS */
-+#if __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO
- IFF_LOWER_UP = 1<<16, /* volatile */
- IFF_DORMANT = 1<<17, /* volatile */
- IFF_ECHO = 1<<18, /* volatile */
-+#endif /* __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO */
- };
-+#endif /* __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO != 0 && __UAPI_DEF_IF_NET_DEVICE_FLAGS != 0 */
-
-+/* for compatibility with glibc net/if.h */
-+#if __UAPI_DEF_IF_NET_DEVICE_FLAGS
- #define IFF_UP IFF_UP
- #define IFF_BROADCAST IFF_BROADCAST
- #define IFF_DEBUG IFF_DEBUG
-@@ -105,9 +119,13 @@ enum net_device_flags {
- #define IFF_PORTSEL IFF_PORTSEL
- #define IFF_AUTOMEDIA IFF_AUTOMEDIA
- #define IFF_DYNAMIC IFF_DYNAMIC
-+#endif /* __UAPI_DEF_IF_NET_DEVICE_FLAGS */
-+
-+#if __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO
- #define IFF_LOWER_UP IFF_LOWER_UP
- #define IFF_DORMANT IFF_DORMANT
- #define IFF_ECHO IFF_ECHO
-+#endif /* __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO */
-
- #define IFF_VOLATILE (IFF_LOOPBACK|IFF_POINTOPOINT|IFF_BROADCAST|IFF_ECHO|\
- IFF_MASTER|IFF_SLAVE|IFF_RUNNING|IFF_LOWER_UP|IFF_DORMANT)
-@@ -166,6 +184,8 @@ enum {
- * being very small might be worth keeping for clean configuration.
- */
-
-+/* for compatibility with glibc net/if.h */
-+#if __UAPI_DEF_IF_IFMAP
- struct ifmap {
- unsigned long mem_start;
- unsigned long mem_end;
-@@ -175,6 +195,7 @@ struct ifmap {
- unsigned char port;
- /* 3 bytes spare */
- };
-+#endif /* __UAPI_DEF_IF_IFMAP */
-
- struct if_settings {
- unsigned int type; /* Type of physical device or protocol */
-@@ -200,6 +221,8 @@ struct if_settings {
- * remainder may be interface specific.
- */
-
-+/* for compatibility with glibc net/if.h */
-+#if __UAPI_DEF_IF_IFREQ
- struct ifreq {
- #define IFHWADDRLEN 6
- union
-@@ -223,6 +246,7 @@ struct ifreq {
- struct if_settings ifru_settings;
- } ifr_ifru;
- };
-+#endif /* __UAPI_DEF_IF_IFREQ */
-
- #define ifr_name ifr_ifrn.ifrn_name /* interface name */
- #define ifr_hwaddr ifr_ifru.ifru_hwaddr /* MAC address */
-@@ -249,6 +273,8 @@ struct ifreq {
- * must know all networks accessible).
- */
-
-+/* for compatibility with glibc net/if.h */
-+#if __UAPI_DEF_IF_IFCONF
- struct ifconf {
- int ifc_len; /* size of buffer */
- union {
-@@ -256,6 +282,8 @@ struct ifconf {
- struct ifreq __user *ifcu_req;
- } ifc_ifcu;
- };
-+#endif /* __UAPI_DEF_IF_IFCONF */
-+
- #define ifc_buf ifc_ifcu.ifcu_buf /* buffer address */
- #define ifc_req ifc_ifcu.ifcu_req /* array of structures */
-
-diff --git a/include/uapi/linux/libc-compat.h b/include/uapi/linux/libc-compat.h
-index 7d024ceb075d..d5e38c73377c 100644
---- a/include/uapi/linux/libc-compat.h
-+++ b/include/uapi/linux/libc-compat.h
-@@ -51,6 +51,40 @@
- /* We have included glibc headers... */
- #if defined(__GLIBC__)
-
-+/* Coordinate with glibc net/if.h header. */
-+#if defined(_NET_IF_H)
-+
-+/* GLIBC headers included first so don't define anything
-+ * that would already be defined. */
-+
-+#define __UAPI_DEF_IF_IFCONF 0
-+#define __UAPI_DEF_IF_IFMAP 0
-+#define __UAPI_DEF_IF_IFNAMSIZ 0
-+#define __UAPI_DEF_IF_IFREQ 0
-+/* Everything up to IFF_DYNAMIC, matches net/if.h until glibc 2.23 */
-+#define __UAPI_DEF_IF_NET_DEVICE_FLAGS 0
-+/* For the future if glibc adds IFF_LOWER_UP, IFF_DORMANT and IFF_ECHO */
-+#ifndef __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO
-+#define __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO 1
-+#endif /* __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO */
-+
-+#else /* _NET_IF_H */
-+
-+/* Linux headers included first, and we must define everything
-+ * we need. The expectation is that glibc will check the
-+ * __UAPI_DEF_* defines and adjust appropriately. */
-+
-+#define __UAPI_DEF_IF_IFCONF 1
-+#define __UAPI_DEF_IF_IFMAP 1
-+#define __UAPI_DEF_IF_IFNAMSIZ 1
-+#define __UAPI_DEF_IF_IFREQ 1
-+/* Everything up to IFF_DYNAMIC, matches net/if.h until glibc 2.23 */
-+#define __UAPI_DEF_IF_NET_DEVICE_FLAGS 1
-+/* For the future if glibc adds IFF_LOWER_UP, IFF_DORMANT and IFF_ECHO */
-+#define __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO 1
-+
-+#endif /* _NET_IF_H */
-+
- /* Coordinate with glibc netinet/in.h header. */
- #if defined(_NETINET_IN_H)
-
-@@ -117,6 +151,16 @@
- * that we need. */
- #else /* !defined(__GLIBC__) */
-
-+/* Definitions for if.h */
-+#define __UAPI_DEF_IF_IFCONF 1
-+#define __UAPI_DEF_IF_IFMAP 1
-+#define __UAPI_DEF_IF_IFNAMSIZ 1
-+#define __UAPI_DEF_IF_IFREQ 1
-+/* Everything up to IFF_DYNAMIC, matches net/if.h until glibc 2.23 */
-+#define __UAPI_DEF_IF_NET_DEVICE_FLAGS 1
-+/* For the future if glibc adds IFF_LOWER_UP, IFF_DORMANT and IFF_ECHO */
-+#define __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO 1
-+
- /* Definitions for in.h */
- #define __UAPI_DEF_IN_ADDR 1
- #define __UAPI_DEF_IN_IPPROTO 1
diff --git a/debian/patches/debian/net-sched-fix-abi-change-in-4.5.5.patch b/debian/patches/debian/net-sched-fix-abi-change-in-4.5.5.patch
new file mode 100644
index 0000000..fbf0110
--- /dev/null
+++ b/debian/patches/debian/net-sched-fix-abi-change-in-4.5.5.patch
@@ -0,0 +1,35 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Mon, 23 May 2016 01:25:47 +0100
+Subject: net/sched: Fix ABI change in 4.5.5
+Forwarded: not-needed
+
+Restore the function qdisc_tree_decrease_qlen(), removed in 4.5.5.
+It can now be a trivial wrapper for its replacement,
+qdisc_tree_reduce_backlog().
+
+---
+--- a/include/net/sch_generic.h
++++ b/include/net/sch_generic.h
+@@ -398,6 +398,7 @@ void qdisc_reset(struct Qdisc *qdisc);
+ void qdisc_destroy(struct Qdisc *qdisc);
+ void qdisc_tree_reduce_backlog(struct Qdisc *qdisc, unsigned int n,
+ unsigned int len);
++void qdisc_tree_decrease_qlen(struct Qdisc *qdisc, unsigned int n);
+ struct Qdisc *qdisc_alloc(struct netdev_queue *dev_queue,
+ const struct Qdisc_ops *ops);
+ struct Qdisc *qdisc_create_dflt(struct netdev_queue *dev_queue,
+--- a/net/sched/sch_api.c
++++ b/net/sched/sch_api.c
+@@ -782,6 +782,12 @@ void qdisc_tree_reduce_backlog(struct Qd
+ }
+ EXPORT_SYMBOL(qdisc_tree_reduce_backlog);
+
++void qdisc_tree_decrease_qlen(struct Qdisc *sch, unsigned int n)
++{
++ qdisc_tree_reduce_backlog(sch, n, 0);
++}
++EXPORT_SYMBOL(qdisc_tree_decrease_qlen);
++
+ static void notify_and_destroy(struct net *net, struct sk_buff *skb,
+ struct nlmsghdr *n, u32 clid,
+ struct Qdisc *old, struct Qdisc *new)
diff --git a/debian/patches/series b/debian/patches/series
index 95bd339..b3a2c96 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -82,10 +82,8 @@ bugfix/all/disable-some-marvell-phys.patch
bugfix/all/rtsx_usb_ms-use-msleep_interruptible-in-polling-loop.patch
bugfix/all/mm-zone_device-depends-on-sparsemem_vmemmap.patch
bugfix/all/fs-add-module_softdep-declarations-for-hard-coded-cr.patch
-bugfix/all/atl2-disable-unimplemented-scatter-gather-feature.patch
bugfix/all/module-invalidate-signatures-on-force-loaded-modules.patch
bugfix/all/mm-thp-kvm-fix-memory-corruption-in-KVM-with-THP-ena.patch
-bugfix/all/uapi-glibc-compat-fix-compile-errors-when-glibc-net-.patch
bugfix/all/videobuf2-core-fix-crash-after-fixing-cve-2016-4568.patch
bugfix/all/revert-stmmac-fix-eth0-no-phy-found-regression.patch
@@ -135,16 +133,8 @@ bugfix/all/netfilter-x_tables-check-for-size-overflow.patch
bugfix/all/netfilter-x_tables-validate-e-target_offset-early.patch
bugfix/all/netfilter-x_tables-make-sure-e-next_offset-covers-re.patch
bugfix/x86/x86-mm-32-enable-full-randomization-on-i386-and-x86_.patch
-bugfix/all/bpf-fix-double-fdput-in-replace_map_fd_with_map_ptr.patch
-bugfix/all/bpf-fix-refcnt-overflow.patch
-bugfix/all/bpf-fix-check_map_func_compatibility-logic.patch
bugfix/all/KEYS-Fix-ASN.1-indefinite-length-object-parsing.patch
-bugfix/all/net-fix-infoleak-in-llc.patch
-bugfix/all/net-fix-infoleak-in-rtnetlink.patch
-bugfix/all/nf_conntrack-avoid-kernel-pointer-value-leak-in-slab.patch
bugfix/all/do_splice_to-cap-the-size-before-passing-to-splice_r.patch
-bugfix/all/crypto-hash-fix-page-length-clamping-in-hash-walk.patch
-bugfix/all/get_rock_ridge_filename-handle-malformed-nm-entries.patch
bugfix/all/KVM-MTRR-remove-MSR-0x2f8.patch
bugfix/all/tipc-check-nl-sock-before-parsing-nested-attributes.patch
@@ -174,3 +164,4 @@ bugfix/all/tools-build-remove-bpf-run-time-check-at-build-time.patch
bugfix/all/power-cpupower-fix-manpages-NAME.patch
bugfix/all/tools-lib-traceevent-fix-use-of-uninitialized-variables.patch
bugfix/all/scripts-fix-x.509-pem-support-in-sign-file.patch
+debian/net-sched-fix-abi-change-in-4.5.5.patch
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/kernel/linux.git
More information about the Kernel-svn-changes
mailing list