[linux] 02/04: Update to 4.2.3
debian-kernel at lists.debian.org
debian-kernel at lists.debian.org
Sun Oct 4 01:51:43 UTC 2015
This is an automated email from the git hooks/post-receive script.
benh pushed a commit to branch sid
in repository linux.
commit 11e8b8bbe3bf11c4f53106b362c1fd0054152eba
Author: Ben Hutchings <ben at decadent.org.uk>
Date: Sun Oct 4 02:27:48 2015 +0100
Update to 4.2.3
---
debian/changelog | 122 ++++++++++-
...fix-race-on-protocol-netns-initialization.patch | 227 ---------------------
...ake-flush_workqueue-available-again-to-no.patch | 35 ----
debian/patches/series | 2 -
4 files changed, 121 insertions(+), 265 deletions(-)
diff --git a/debian/changelog b/debian/changelog
index f337896..de52929 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,124 @@
-linux (4.2.1-3) UNRELEASED; urgency=medium
+linux (4.2.3-1) UNRELEASED; urgency=medium
+
+ * New upstream stable update:
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.2.2
+ - nfc: netlink: Add check on NFC_ATTR_VENDOR_DATA
+ - nfc: nci: hci: Add check on skb nci_hci_send_cmd parameter
+ - blk-mq: fix buffer overflow when reading sysfs file of 'pending'
+ - blk-mq: fix race between timeout and freeing request
+ - mac80211: enable assoc check for mesh interfaces
+ - [powerpc*] cxl: Allow release of contexts which have been OPENED but not
+ STARTED (regression in 4.2)
+ - ext4: don't manipulate recovery flag when freezing no-journal fs
+ (regression in 3.18)
+ - Revert "ext4: remove block_device_ejected" (regression in 4.1)
+ - [arm64] kconfig: Move LIST_POISON to a safe value
+ - [arm64] entry: always restore x0 from the stack on syscall return
+ - [arm64] flush FP/SIMD state correctly after execve()
+ - [arm64] head.S: initialise mdcr_el2 in el2_setup
+ - [arm64] errata: add module build workaround for erratum #843419
+ - [armhf,arm64] KVM: vgic: Check for !irqchip_in_kernel() when mapping
+ resources (regression in 4.0)
+ - [arm64] KVM: add workaround for Cortex-A57 erratum #852523
+ - [powerpc*] pseries: Fix corrupted pdn list (regression in 4.1)
+ - [powerpc*] eeh: Probe after unbalanced kref check (regression in 4.1)
+ - [powerpc*] eeh: Fix fenced PHB caused by eeh_slot_error_detail()
+ (regression in 3.18)
+ - [powerpc*] powernv/pci-ioda: fix 32-bit TCE table init in kdump kernel
+ (regression in 4.2)
+ - [powerpc*] powernv/pci-ioda: fix kdump with non-power-of-2 crashkernel=
+ (regression in 4.2)
+ - [powerpc*] pseries: Release DRC when configure_connector fails
+ (regression in 4.1)
+ - [powerpc*] mm: Recompute hash value after a failed update
+ - CIFS: fix type confusion in copy offload ioctl
+ - mm: check if section present during memory block registering
+ (regression in 3.19)
+ - [i386] mm: Initialize pmd_idx in page_table_range_init_count()
+ - [x86] i915: Set ddi_pll_sel in DP MST path (regression in 4.2)
+ - Btrfs: check if previous transaction aborted to avoid fs corruption
+ - nfsd: Fix an FS_LAYOUT_TYPES/LAYOUT_TYPES encode bug
+ - nfsd: ensure that the ol stateid hash reference is only put once
+ - nfsd: ensure that delegation stateid hash references are only put once
+ - NFSv4.1/pnfs: Fix atomicity of commit list updates (regression in 4.0)
+ - NFSv4: don't set SETATTR for O_RDONLY|O_EXCL
+ - NFSv4.1/pNFS: Fix borken function _same_data_server_addrs_locked()
+ - NFS: Fix a NULL pointer dereference of migration recovery ops for v4.2
+ client
+ - NFS: nfs_set_pgio_error sometimes misses errors
+ - NFS41/flexfiles: update inode after write finishes
+ - NFSv4: Force a post-op attribute update when holding a delegation
+ - NFS41/flexfiles: zero out DS write wcc
+ - NFSv4.1/flexfiles: Fix a protocol error in layoutreturn
+ - NFSv4.1: Fix a protocol issue with CLOSE stateids
+ - nfs: Fix truncated client owner id without proto type (regression in 4.2)
+ - Revert "NFSv4: Remove incorrect check in can_open_delegated()"
+ (regression in 3.19)
+ - svcrdma: Change maximum server payload back to RPCSVC_MAXPAYLOAD
+ (regression in 4.2)
+ - SUNRPC: Ensure that we wait for connections to complete before retrying
+ (regression in 4.0)
+ - SUNRPC: Lock the transport layer on shutdown
+ - [hppa] PCI: Enable 64-bit bus addresses on PA-RISC (regression in 4.2)
+ - [hppa] Use double word condition in 64bit CAS operation
+ - fs: if a coredump already exists, unlink and recreate with O_EXCL
+ - fs: Don't dump core if the corefile would become world-readable.
+ - mmc: sdhci-of-esdhc: add workaround for pre divider initial value
+ (regression in 4.2)
+ - mmc: sdhci: also get preset value and driver type for MMC_DDR52
+ (regression in 3.16)
+ - mmc: sdhci: fix dma memory leak in sdhci_pre_req() (regression in 4.0)
+ - mmc: core: fix race condition in mmc_wait_data_done
+ - [armhf] iommu/fsl: Really fix init section(s) content (regression in 4.0)
+ - [armhf] iommu/io-pgtable-arm: Unmap and free table when overwriting with
+ block
+ - [x86] iommu/vt-d: Really use upper context table when necessary
+ (regression in 4.1)
+ - eCryptfs: Invalidate dcache entries when lower i_nlink is zero
+ - hfs: fix B-tree corruption after insertion at position 0
+ - IB/srp: Handle partial connection success correctly
+ - IB/srp: Stop the scsi_eh_<n> and scsi_tmf_<n> threads if login fails
+ (regression in 4.2)
+ - IB/uverbs: reject invalid or unknown opcodes
+ - IB/uverbs: Fix race between ib_uverbs_open and remove_one
+ - IB/iser: Fix missing return status check in iser_send_data_out
+ (regression in 3.19)
+ - IB/iser: Fix possible bogus DMA unmapping (regression in 3.19)
+ - IB/mlx5: avoid destroying a NULL mr in reg_user_mr error flow
+ (regression in 3.19)
+ - IB/mlx4: Fix incorrect cq flushing in error state (regression in 4.0)
+ - hfs,hfsplus: cache pages correctly between bnode_create and bnode_free
+ - jbd2: avoid infinite loop when destroying aborted journal
+ (regression in 4.2)
+ https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.2.3
+ - phylib: fix device deletion order in mdiobus_unregister()
+ (regression in 4.2)
+ - sock, diag: fix panic in sock_diag_put_filterinfo
+ (regression in 3.19)
+ - net/ipv6: Correct PIM6 mrt_lock handling
+ - ipv6: fix multipath route replace error recovery (regression in 4.1)
+ - netlink, mmap: transform mmap skb into full skb on taps
+ - bridge: fix igmpv3 / mldv2 report parsing (regression in 4.2)
+ - [armhf] net: mvneta: fix DMA buffer unmapping in mvneta_rx()
+ (regression in 4.2)
+ - rtnetlink: catch -EOPNOTSUPP errors from ndo_bridge_getlink
+ (regression in 4.2)
+ - macvtap: fix TUNSETSNDBUF values > 64k (regression in 3.19)
+ - netlink: Fix autobind race condition that leads to zero port ID
+ (regression in 4.1)
+ - netlink: Replace rhash_portid with bound
+ - openvswitch: Zero flows on allocation.
+ - tcp: add proper TS val into RST packets (regression in 3.18)
+ - packet: Fix AF_PACKET ABI breakage in 4.2
+ - net: revert "net_sched: move tp->root allocation into fw_init()"
+ (regression in 4.1)
+ - fib_rules: fix fib rule dumps across multiple skbs
+ - ppp: fix lockdep splat in ppp_dev_uninit() (regression in 4.2)
+ - [armhf] mvneta: use inband status only when explicitly enabled
+ (regression in 4.1)
+ - net/mlx4_core: Capping number of requested MSIXs to MAX_MSIX
+ - zram: fix possible use after free in zcomp_create()
+ - [x86] hp-wmi: limit hotkey enable
[ Ben Hutchings ]
* ovl: conditionally use O_LARGEFILE in ovl_copy_up() (Closes: #800724)
diff --git a/debian/patches/bugfix/all/sctp-fix-race-on-protocol-netns-initialization.patch b/debian/patches/bugfix/all/sctp-fix-race-on-protocol-netns-initialization.patch
deleted file mode 100644
index 8d4385b..0000000
--- a/debian/patches/bugfix/all/sctp-fix-race-on-protocol-netns-initialization.patch
+++ /dev/null
@@ -1,227 +0,0 @@
-From: Marcelo Ricardo Leitner <marcelo.leitner at gmail.com>
-Date: Thu, 10 Sep 2015 17:31:15 -0300
-Subject: sctp: fix race on protocol/netns initialization
-Origin: https://git.kernel.org/linus/8e2d61e0aed2b7c4ecb35844fe07e0b2b762dee4
-
-Consider sctp module is unloaded and is being requested because an user
-is creating a sctp socket.
-
-During initialization, sctp will add the new protocol type and then
-initialize pernet subsys:
-
- status = sctp_v4_protosw_init();
- if (status)
- goto err_protosw_init;
-
- status = sctp_v6_protosw_init();
- if (status)
- goto err_v6_protosw_init;
-
- status = register_pernet_subsys(&sctp_net_ops);
-
-The problem is that after those calls to sctp_v{4,6}_protosw_init(), it
-is possible for userspace to create SCTP sockets like if the module is
-already fully loaded. If that happens, one of the possible effects is
-that we will have readers for net->sctp.local_addr_list list earlier
-than expected and sctp_net_init() does not take precautions while
-dealing with that list, leading to a potential panic but not limited to
-that, as sctp_sock_init() will copy a bunch of blank/partially
-initialized values from net->sctp.
-
-The race happens like this:
-
- CPU 0 | CPU 1
- socket() |
- __sock_create | socket()
- inet_create | __sock_create
- list_for_each_entry_rcu( |
- answer, &inetsw[sock->type], |
- list) { | inet_create
- /* no hits */ |
- if (unlikely(err)) { |
- ... |
- request_module() |
- /* socket creation is blocked |
- * the module is fully loaded |
- */ |
- sctp_init |
- sctp_v4_protosw_init |
- inet_register_protosw |
- list_add_rcu(&p->list, |
- last_perm); |
- | list_for_each_entry_rcu(
- | answer, &inetsw[sock->type],
- sctp_v6_protosw_init | list) {
- | /* hit, so assumes protocol
- | * is already loaded
- | */
- | /* socket creation continues
- | * before netns is initialized
- | */
- register_pernet_subsys |
-
-Simply inverting the initialization order between
-register_pernet_subsys() and sctp_v4_protosw_init() is not possible
-because register_pernet_subsys() will create a control sctp socket, so
-the protocol must be already visible by then. Deferring the socket
-creation to a work-queue is not good specially because we loose the
-ability to handle its errors.
-
-So, as suggested by Vlad, the fix is to split netns initialization in
-two moments: defaults and control socket, so that the defaults are
-already loaded by when we register the protocol, while control socket
-initialization is kept at the same moment it is today.
-
-Fixes: 4db67e808640 ("sctp: Make the address lists per network namespace")
-Signed-off-by: Vlad Yasevich <vyasevich at gmail.com>
-Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner at gmail.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
----
- net/sctp/protocol.c | 64 ++++++++++++++++++++++++++++++++++-------------------
- 1 file changed, 41 insertions(+), 23 deletions(-)
-
---- a/net/sctp/protocol.c
-+++ b/net/sctp/protocol.c
-@@ -1166,7 +1166,7 @@ static void sctp_v4_del_protocol(void)
- unregister_inetaddr_notifier(&sctp_inetaddr_notifier);
- }
-
--static int __net_init sctp_net_init(struct net *net)
-+static int __net_init sctp_defaults_init(struct net *net)
- {
- int status;
-
-@@ -1259,12 +1259,6 @@ static int __net_init sctp_net_init(stru
-
- sctp_dbg_objcnt_init(net);
-
-- /* Initialize the control inode/socket for handling OOTB packets. */
-- if ((status = sctp_ctl_sock_init(net))) {
-- pr_err("Failed to initialize the SCTP control sock\n");
-- goto err_ctl_sock_init;
-- }
--
- /* Initialize the local address list. */
- INIT_LIST_HEAD(&net->sctp.local_addr_list);
- spin_lock_init(&net->sctp.local_addr_lock);
-@@ -1280,9 +1274,6 @@ static int __net_init sctp_net_init(stru
-
- return 0;
-
--err_ctl_sock_init:
-- sctp_dbg_objcnt_exit(net);
-- sctp_proc_exit(net);
- err_init_proc:
- cleanup_sctp_mibs(net);
- err_init_mibs:
-@@ -1291,15 +1282,12 @@ err_sysctl_register:
- return status;
- }
-
--static void __net_exit sctp_net_exit(struct net *net)
-+static void __net_exit sctp_defaults_exit(struct net *net)
- {
- /* Free the local address list */
- sctp_free_addr_wq(net);
- sctp_free_local_addr_list(net);
-
-- /* Free the control endpoint. */
-- inet_ctl_sock_destroy(net->sctp.ctl_sock);
--
- sctp_dbg_objcnt_exit(net);
-
- sctp_proc_exit(net);
-@@ -1307,9 +1295,32 @@ static void __net_exit sctp_net_exit(str
- sctp_sysctl_net_unregister(net);
- }
-
--static struct pernet_operations sctp_net_ops = {
-- .init = sctp_net_init,
-- .exit = sctp_net_exit,
-+static struct pernet_operations sctp_defaults_ops = {
-+ .init = sctp_defaults_init,
-+ .exit = sctp_defaults_exit,
-+};
-+
-+static int __net_init sctp_ctrlsock_init(struct net *net)
-+{
-+ int status;
-+
-+ /* Initialize the control inode/socket for handling OOTB packets. */
-+ status = sctp_ctl_sock_init(net);
-+ if (status)
-+ pr_err("Failed to initialize the SCTP control sock\n");
-+
-+ return status;
-+}
-+
-+static void __net_init sctp_ctrlsock_exit(struct net *net)
-+{
-+ /* Free the control endpoint. */
-+ inet_ctl_sock_destroy(net->sctp.ctl_sock);
-+}
-+
-+static struct pernet_operations sctp_ctrlsock_ops = {
-+ .init = sctp_ctrlsock_init,
-+ .exit = sctp_ctrlsock_exit,
- };
-
- /* Initialize the universe into something sensible. */
-@@ -1442,8 +1453,11 @@ static __init int sctp_init(void)
- sctp_v4_pf_init();
- sctp_v6_pf_init();
-
-- status = sctp_v4_protosw_init();
-+ status = register_pernet_subsys(&sctp_defaults_ops);
-+ if (status)
-+ goto err_register_defaults;
-
-+ status = sctp_v4_protosw_init();
- if (status)
- goto err_protosw_init;
-
-@@ -1451,9 +1465,9 @@ static __init int sctp_init(void)
- if (status)
- goto err_v6_protosw_init;
-
-- status = register_pernet_subsys(&sctp_net_ops);
-+ status = register_pernet_subsys(&sctp_ctrlsock_ops);
- if (status)
-- goto err_register_pernet_subsys;
-+ goto err_register_ctrlsock;
-
- status = sctp_v4_add_protocol();
- if (status)
-@@ -1469,12 +1483,14 @@ out:
- err_v6_add_protocol:
- sctp_v4_del_protocol();
- err_add_protocol:
-- unregister_pernet_subsys(&sctp_net_ops);
--err_register_pernet_subsys:
-+ unregister_pernet_subsys(&sctp_ctrlsock_ops);
-+err_register_ctrlsock:
- sctp_v6_protosw_exit();
- err_v6_protosw_init:
- sctp_v4_protosw_exit();
- err_protosw_init:
-+ unregister_pernet_subsys(&sctp_defaults_ops);
-+err_register_defaults:
- sctp_v4_pf_exit();
- sctp_v6_pf_exit();
- sctp_sysctl_unregister();
-@@ -1507,12 +1523,14 @@ static __exit void sctp_exit(void)
- sctp_v6_del_protocol();
- sctp_v4_del_protocol();
-
-- unregister_pernet_subsys(&sctp_net_ops);
-+ unregister_pernet_subsys(&sctp_ctrlsock_ops);
-
- /* Free protosw registrations */
- sctp_v6_protosw_exit();
- sctp_v4_protosw_exit();
-
-+ unregister_pernet_subsys(&sctp_defaults_ops);
-+
- /* Unregister with socket layer. */
- sctp_v6_pf_exit();
- sctp_v4_pf_exit();
diff --git a/debian/patches/bugfix/all/workqueue-make-flush_workqueue-available-again-to-no.patch b/debian/patches/bugfix/all/workqueue-make-flush_workqueue-available-again-to-no.patch
deleted file mode 100644
index 571cc90..0000000
--- a/debian/patches/bugfix/all/workqueue-make-flush_workqueue-available-again-to-no.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From: Tim Gardner <tim.gardner at canonical.com>
-Date: Tue, 4 Aug 2015 11:26:04 -0600
-Subject: workqueue: Make flush_workqueue() available again to non GPL modules
-Origin: https://git.kernel.org/linus/1dadafa86a779884f14a6e7a3ddde1a57b0a0a65
-Bug-Debian: https://bugs.debian.org/798311
-
-Commit 37b1ef31a568fc02e53587620226e5f3c66454c8 ("workqueue: move
-flush_scheduled_work() to workqueue.h") moved the exported non GPL
-flush_scheduled_work() from a function to an inline wrapper.
-Unfortunately, it directly calls flush_workqueue() which is a GPL function.
-This has the effect of changing the licensing requirement for this function
-and makes it unavailable to non GPL modules.
-
-See commit ad7b1f841f8a54c6d61ff181451f55b68175e15a ("workqueue: Make
-schedule_work() available again to non GPL modules") for precedent.
-
-Signed-off-by: Tim Gardner <tim.gardner at canonical.com>
-Signed-off-by: Tejun Heo <tj at kernel.org>
----
- kernel/workqueue.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/kernel/workqueue.c b/kernel/workqueue.c
-index 4c4f061..a413acb 100644
---- a/kernel/workqueue.c
-+++ b/kernel/workqueue.c
-@@ -2614,7 +2614,7 @@ void flush_workqueue(struct workqueue_struct *wq)
- out_unlock:
- mutex_unlock(&wq->mutex);
- }
--EXPORT_SYMBOL_GPL(flush_workqueue);
-+EXPORT_SYMBOL(flush_workqueue);
-
- /**
- * drain_workqueue - drain a workqueue
diff --git a/debian/patches/series b/debian/patches/series
index 9311c78..74cb37e 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -89,7 +89,6 @@ features/all/grsecurity/grsecurity-kconfig.patch
features/all/grsecurity/grkernsec_perf_harden.patch
bugfix/all/gfs2-make-statistics-unsigned-suitable-for-use-with-.patch
-bugfix/all/workqueue-make-flush_workqueue-available-again-to-no.patch
bugfix/all/dcache-handle-escaped-paths-in-prepend_path.patch
bugfix/all/dcache-reduce-the-scope-of-i_lock-in-d_splice_alias.patch
bugfix/all/vfs-test-for-and-handle-paths-that-are-unreachable-f.patch
@@ -97,7 +96,6 @@ bugfix/all/rds-verify-the-underlying-transport-exists-before-cr.patch
bugfix/all/e1000e-fix-tight-loop-implementation-of-systime-read.patch
bugfix/all/usb-whiteheat-fix-potential-null-deref-at-probe.patch
bugfix/all/media-uvcvideo-disable-hardware-timestamps-by-defaul.patch
-bugfix/all/sctp-fix-race-on-protocol-netns-initialization.patch
bugfix/mips/mips-pgtable-bits.h-correct-_page_global_shift-build.patch
bugfix/all/ovl-conditionally-use-o_largefile-in-ovl_copy_up.patch
bugfix/x86/alsa-hda-disable-power_save_node-for-thinkpads.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