summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZefan Li <lizefan@huawei.com>2016-02-21 22:42:25 +0800
committerZefan Li <lizefan@huawei.com>2016-03-03 15:33:39 +0800
commite375c557361f6e65d73f7b9a48301be19e8b51ef (patch)
treea0d3b44ad4864a2c1f955822e7047f05b67ec9ad
parentb2431516df3d221fafaa867630e8d016181a55a3 (diff)
downloadlinux-3.4.y-queue-e375c557361f6e65d73f7b9a48301be19e8b51ef.tar.gz
Really delete old patches
-rw-r--r--patches/9p-forgetting-to-cancel-request-on-interrupted-zero-copy-rpc.patch31
-rw-r--r--patches/__bitmap_parselist-fix-bug-in-empty-string-handling.patch79
-rw-r--r--patches/acpica-tables-fix-an-issue-that-facs-initialization-is-performed-twice.patch54
-rw-r--r--patches/agp-intel-fix-typo-in-needs_ilk_vtd_wa.patch41
-rw-r--r--patches/arm-fix-incorrect-backport-of-0b59d8806a31.patch23
-rw-r--r--patches/asoc-wm8737-fixup-setting-vmid-impedance-control-register.patch52
-rw-r--r--patches/asoc-wm8903-fix-define-for-wm8903_vmid_res_250k.patch37
-rw-r--r--patches/asoc-wm8955-fix-setting-wrong-register-for-wm8955_k_8_0_mask-bits.patch29
-rw-r--r--patches/asoc-wm8960-the-enum-of-dac-polarity-should-be-wm8960_enum-1.patch28
-rw-r--r--patches/ath3k-add-support-of-13d3-3474-ar3012-device.patch56
-rw-r--r--patches/ath9k-fix-dma-stop-sequence-for-ar9003.patch50
-rw-r--r--patches/bridge-fix-br_stp_set_bridge_priority-race-conditions.patch66
-rw-r--r--patches/bridge-multicast-restore-router-configuration-on-port-link-down-up.patch42
-rw-r--r--patches/crush-fix-a-bug-in-tree-bucket-decode.patch33
-rw-r--r--patches/crypto-s390-ghash-fix-incorrect-backport-of-a1cae34e23b1.patch21
-rw-r--r--patches/crypto-talitos-avoid-memleak-in-talitos_alg_alloc.patch25
-rw-r--r--patches/dcache-handle-escaped-paths-in-prepend_path.patch71
-rw-r--r--patches/dell-laptop-fix-allocating-freeing-smi-buffer-page.patch60
-rw-r--r--patches/disable-write-buffering-on-toshiba-topic95.patch67
-rw-r--r--patches/dmaengine-mv_xor-bug-fix-for-racing-condition-in-descriptors-cleanup.patch132
-rw-r--r--patches/drm-radeon-partially-revert-fix-vm_context-_page_table_end_addr-handling.patch82
-rw-r--r--patches/drm-radeon-take-the-mode_config-mutex-when-dealing-with-hpds-v2.patch32
-rw-r--r--patches/ext4-call-sync_blockdev-before-invalidate_bdev-in-put_super.patch33
-rw-r--r--patches/ext4-don-t-retry-file-block-mapping-on-bigalloc-fs-with-non-extent-file.patch33
-rw-r--r--patches/ext4-fix-race-between-truncate-and-__ext4_journalled_writepage.patch129
-rw-r--r--patches/failing-to-send-a-close-if-file-is-opened-wronly-and-server-reboots-on-a-4.x-mount.patch44
-rw-r--r--patches/fixing-infinite-open-loop-in-4.0-stateid-recovery.patch38
-rw-r--r--patches/fuse-initialize-fc-release-before-calling-it.patch38
-rw-r--r--patches/hrtimer-allow-concurrent-hrtimer_start-for-self-restarting-timers.patch70
-rw-r--r--patches/ib-qib-change-lkey-table-allocation-to-support-more-mrs.patch119
-rw-r--r--patches/ideapad-fix-software-rfkill-setting.patch37
-rw-r--r--patches/ipr-increase-default-adapter-init-stage-change-timeout.patch30
-rw-r--r--patches/jbd2-avoid-infinite-loop-when-destroying-aborted-journal.patch171
-rw-r--r--patches/jbd2-fix-ocfs2-corrupt-when-updating-journal-superblock-fails.patch194
-rw-r--r--patches/jbd2-use-gfp_nofs-in-jbd2_cleanup_journal_tail.patch63
-rw-r--r--patches/kvm-x86-make-vapics_in_nmi_mode-atomic.patch62
-rw-r--r--patches/kvm-x86-properly-restore-lvt0.patch33
-rw-r--r--patches/mm-kmemleak-allow-safe-memory-scanning-during-kmemleak-disabling.patch103
-rw-r--r--patches/mmc-card-fixup-request-missing-in-mmc_blk_issue_rw_rq.patch52
-rw-r--r--patches/mtd-dc21285-use-raw-spinlock-functions-for-nw_gpio_lock.patch60
-rw-r--r--patches/mtd-fix-avoid-race-condition-when-accessing-mtd-usecount.patch93
-rw-r--r--patches/nfs-fix-size-of-nfsacl-setacl-operations.patch30
-rw-r--r--patches/nfs-increase-size-of-exchange_id-name-string-buffer.patch30
-rw-r--r--patches/packet-avoid-out-of-bounds-read-in-round-robin-fanout.patch63
-rw-r--r--patches/packet-read-num_members-once-in-packet_rcv_fanout.patch36
-rw-r--r--patches/pktgen-adjust-spacing-in-proc-file-interface-output.patch29
-rw-r--r--patches/pktgen-document-ability-to-add-same-device-to-several-threads.patch129
-rw-r--r--patches/rcu-correctly-handle-non-empty-tiny-rcu-callback-list-with-none-ready.patch47
-rw-r--r--patches/regmap-fix-regmap_bulk_read-in-be-mode.patch33
-rw-r--r--patches/regulator-core-fix-constraints-output-buffer.patch28
-rw-r--r--patches/revert-drm-i915-don-t-skip-request-retirement-if-the-active-list-is-empty.patch38
-rw-r--r--patches/revert-drm-radeon-use-drm_calloc_ab-for-cs-relocs.patch36
-rw-r--r--patches/rndis_wlan-harmless-issue-calling-set_bit.patch38
-rw-r--r--patches/sctp-fix-asconf-list-handling.patch181
-rw-r--r--patches/staging-rtl8712-prevent-buffer-overrun-in-recvbuf2recvframe.patch33
-rw-r--r--patches/stmmac-troubleshoot-unexpected-bits-in-des0-des1.patch148
-rw-r--r--patches/sunrpc-fix-a-memory-leak-in-the-backchannel-code.patch29
-rw-r--r--patches/tracing-filter-do-not-allow-infix-to-exceed-end-of-string.patch58
-rw-r--r--patches/tracing-filter-do-not-warn-on-operand-count-going-below-zero.patch43
-rw-r--r--patches/tty-serial-at91-rs485-mode-0-is-valid-for-delay_rts_after_send.patch60
-rw-r--r--patches/usb-core-fix-usb-3.0-devices-lost-in-notattached-state-after-a-hub-port-reset.patch174
-rw-r--r--patches/usb-dwc3-gadget-return-error-if-command-sent-to-depcmd-register-fails.patch30
-rw-r--r--patches/usb-dwc3-reset-the-transfer-resource-index-on-set_interface.patch54
-rw-r--r--patches/vfs-test-for-and-handle-paths-that-are-unreachable-from-their-mnt_root.patch107
-rw-r--r--patches/watchdog-omap-assert-the-counter-being-stopped-before-reprogramming.patch58
-rw-r--r--patches/x86-pci-use-host-bridge-_crs-info-on-foxconn-k8m890-8237a.patch59
66 files changed, 0 insertions, 4084 deletions
diff --git a/patches/9p-forgetting-to-cancel-request-on-interrupted-zero-copy-rpc.patch b/patches/9p-forgetting-to-cancel-request-on-interrupted-zero-copy-rpc.patch
deleted file mode 100644
index 8c560c1..0000000
--- a/patches/9p-forgetting-to-cancel-request-on-interrupted-zero-copy-rpc.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From a84b69cb6e0a41e86bc593904faa6def3b957343 Mon Sep 17 00:00:00 2001
-From: Al Viro <viro@zeniv.linux.org.uk>
-Date: Sat, 4 Jul 2015 16:04:19 -0400
-Subject: 9p: forgetting to cancel request on interrupted zero-copy RPC
-
-commit a84b69cb6e0a41e86bc593904faa6def3b957343 upstream.
-
-If we'd already sent a request and decide to abort it, we *must*
-issue TFLUSH properly and not just blindly reuse the tag, or
-we'll get seriously screwed when response eventually arrives
-and we confuse it for response to later request that had reused
-the same tag.
-
-Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- net/9p/client.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
---- a/net/9p/client.c
-+++ b/net/9p/client.c
-@@ -833,7 +833,8 @@ static struct p9_req_t *p9_client_zc_rpc
- if (err < 0) {
- if (err == -EIO)
- c->status = Disconnected;
-- goto reterr;
-+ if (err != -ERESTARTSYS)
-+ goto reterr;
- }
- if (req->status == REQ_STATUS_ERROR) {
- p9_debug(P9_DEBUG_ERROR, "req_status error %d\n", req->t_err);
diff --git a/patches/__bitmap_parselist-fix-bug-in-empty-string-handling.patch b/patches/__bitmap_parselist-fix-bug-in-empty-string-handling.patch
deleted file mode 100644
index 7f88fb7..0000000
--- a/patches/__bitmap_parselist-fix-bug-in-empty-string-handling.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From 2528a8b8f457d7432552d0e2b6f0f4046bb702f4 Mon Sep 17 00:00:00 2001
-From: Chris Metcalf <cmetcalf@ezchip.com>
-Date: Thu, 25 Jun 2015 15:02:08 -0700
-Subject: __bitmap_parselist: fix bug in empty string handling
-
-commit 2528a8b8f457d7432552d0e2b6f0f4046bb702f4 upstream.
-
-bitmap_parselist("", &mask, nmaskbits) will erroneously set bit zero in
-the mask. The same bug is visible in cpumask_parselist() since it is
-layered on top of the bitmask code, e.g. if you boot with "isolcpus=",
-you will actually end up with cpu zero isolated.
-
-The bug was introduced in commit 4b060420a596 ("bitmap, irq: add
-smp_affinity_list interface to /proc/irq") when bitmap_parselist() was
-generalized to support userspace as well as kernelspace.
-
-Fixes: 4b060420a596 ("bitmap, irq: add smp_affinity_list interface to /proc/irq")
-Signed-off-by: Chris Metcalf <cmetcalf@ezchip.com>
-Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- lib/bitmap.c | 17 +++++++++--------
- 1 file changed, 9 insertions(+), 8 deletions(-)
-
---- a/lib/bitmap.c
-+++ b/lib/bitmap.c
-@@ -603,12 +603,12 @@ static int __bitmap_parselist(const char
- unsigned a, b;
- int c, old_c, totaldigits;
- const char __user __force *ubuf = (const char __user __force *)buf;
-- int exp_digit, in_range;
-+ int at_start, in_range;
-
- totaldigits = c = 0;
- bitmap_zero(maskp, nmaskbits);
- do {
-- exp_digit = 1;
-+ at_start = 1;
- in_range = 0;
- a = b = 0;
-
-@@ -637,11 +637,10 @@ static int __bitmap_parselist(const char
- break;
-
- if (c == '-') {
-- if (exp_digit || in_range)
-+ if (at_start || in_range)
- return -EINVAL;
- b = 0;
- in_range = 1;
-- exp_digit = 1;
- continue;
- }
-
-@@ -651,16 +650,18 @@ static int __bitmap_parselist(const char
- b = b * 10 + (c - '0');
- if (!in_range)
- a = b;
-- exp_digit = 0;
-+ at_start = 0;
- totaldigits++;
- }
- if (!(a <= b))
- return -EINVAL;
- if (b >= nmaskbits)
- return -ERANGE;
-- while (a <= b) {
-- set_bit(a, maskp);
-- a++;
-+ if (!at_start) {
-+ while (a <= b) {
-+ set_bit(a, maskp);
-+ a++;
-+ }
- }
- } while (buflen && c == ',');
- return 0;
diff --git a/patches/acpica-tables-fix-an-issue-that-facs-initialization-is-performed-twice.patch b/patches/acpica-tables-fix-an-issue-that-facs-initialization-is-performed-twice.patch
deleted file mode 100644
index edb2485..0000000
--- a/patches/acpica-tables-fix-an-issue-that-facs-initialization-is-performed-twice.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From c04be18448355441a0c424362df65b6422e27bda Mon Sep 17 00:00:00 2001
-From: Lv Zheng <lv.zheng@intel.com>
-Date: Wed, 1 Jul 2015 14:43:26 +0800
-Subject: ACPICA: Tables: Fix an issue that FACS initialization is performed
- twice
-
-commit c04be18448355441a0c424362df65b6422e27bda upstream.
-
-ACPICA commit 90f5332a15e9d9ba83831ca700b2b9f708274658
-
-This patch adds a new FACS initialization flag for acpi_tb_initialize().
-acpi_enable_subsystem() might be invoked several times in OS bootup process,
-and we don't want FACS initialization to be invoked twice. Lv Zheng.
-
-Link: https://github.com/acpica/acpica/commit/90f5332a
-Signed-off-by: Lv Zheng <lv.zheng@intel.com>
-Signed-off-by: Bob Moore <robert.moore@intel.com>
-Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
-[lizf: Backported to 3.4: adjust filename]
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- drivers/acpi/acpica/utxface.c | 10 ++++++----
- include/acpi/actypes.h | 1 +
- 2 files changed, 7 insertions(+), 4 deletions(-)
-
---- a/drivers/acpi/acpica/utxface.c
-+++ b/drivers/acpi/acpica/utxface.c
-@@ -166,10 +166,12 @@ acpi_status acpi_enable_subsystem(u32 fl
- * Obtain a permanent mapping for the FACS. This is required for the
- * Global Lock and the Firmware Waking Vector
- */
-- status = acpi_tb_initialize_facs();
-- if (ACPI_FAILURE(status)) {
-- ACPI_WARNING((AE_INFO, "Could not map the FACS table"));
-- return_ACPI_STATUS(status);
-+ if (!(flags & ACPI_NO_FACS_INIT)) {
-+ status = acpi_tb_initialize_facs();
-+ if (ACPI_FAILURE(status)) {
-+ ACPI_WARNING((AE_INFO, "Could not map the FACS table"));
-+ return_ACPI_STATUS(status);
-+ }
- }
- #endif /* !ACPI_REDUCED_HARDWARE */
-
---- a/include/acpi/actypes.h
-+++ b/include/acpi/actypes.h
-@@ -495,6 +495,7 @@ typedef u64 acpi_integer;
- #define ACPI_NO_ACPI_ENABLE 0x10
- #define ACPI_NO_DEVICE_INIT 0x20
- #define ACPI_NO_OBJECT_INIT 0x40
-+#define ACPI_NO_FACS_INIT 0x80
-
- /*
- * Initialization state
diff --git a/patches/agp-intel-fix-typo-in-needs_ilk_vtd_wa.patch b/patches/agp-intel-fix-typo-in-needs_ilk_vtd_wa.patch
deleted file mode 100644
index 7ad28b2..0000000
--- a/patches/agp-intel-fix-typo-in-needs_ilk_vtd_wa.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 8b572a4200828b4e75cc22ed2f494b58d5372d65 Mon Sep 17 00:00:00 2001
-From: Chris Wilson <chris@chris-wilson.co.uk>
-Date: Sun, 28 Jun 2015 14:18:16 +0100
-Subject: agp/intel: Fix typo in needs_ilk_vtd_wa()
-
-commit 8b572a4200828b4e75cc22ed2f494b58d5372d65 upstream.
-
-In needs_ilk_vtd_wa(), we pass in the GPU device but compared it against
-the ids for the mobile GPU and the mobile host bridge. That latter is
-impossible and so likely was just a typo for the desktop GPU device id
-(which is also buggy).
-
-Fixes commit da88a5f7f7d434e2cde1b3e19d952e6d84533662
-Author: Chris Wilson <chris@chris-wilson.co.uk>
-Date: Wed Feb 13 09:31:53 2013 +0000
-
- drm/i915: Disable WC PTE updates to w/a buggy IOMMU on ILK
-
-Reported-by: Ting-Wei Lan <lantw44@gmail.com>
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91127
-References: https://bugzilla.freedesktop.org/show_bug.cgi?id=60391
-Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
-Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-Signed-off-by: Jani Nikula <jani.nikula@intel.com>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- drivers/char/agp/intel-gtt.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/char/agp/intel-gtt.c
-+++ b/drivers/char/agp/intel-gtt.c
-@@ -1194,7 +1194,7 @@ static inline int needs_idle_maps(void)
- /* Query intel_iommu to see if we need the workaround. Presumably that
- * was loaded first.
- */
-- if ((gpu_devid == PCI_DEVICE_ID_INTEL_IRONLAKE_M_HB ||
-+ if ((gpu_devid == PCI_DEVICE_ID_INTEL_IRONLAKE_D_IG ||
- gpu_devid == PCI_DEVICE_ID_INTEL_IRONLAKE_M_IG) &&
- intel_iommu_gfx_mapped)
- return 1;
diff --git a/patches/arm-fix-incorrect-backport-of-0b59d8806a31.patch b/patches/arm-fix-incorrect-backport-of-0b59d8806a31.patch
deleted file mode 100644
index e305bf3..0000000
--- a/patches/arm-fix-incorrect-backport-of-0b59d8806a31.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From 56041bfe2c3c122eeb5d8065eff569e30ddcf794 Mon Sep 17 00:00:00 2001
-From: Zefan Li <lizefan@huawei.com>
-Date: Sun, 11 Oct 2015 18:45:19 +0800
-Subject: [PATCH] ARM: Fix incorrect backport of 0b59d8806a31
-
-Reported-by: Jim Faulkner <jfaulkne@ccs.neu.edu>
-Fixed-by: Nicolas Schichan <nschichan@freebox.fr>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- arch/arm/net/bpf_jit_32.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/arch/arm/net/bpf_jit_32.c
-+++ b/arch/arm/net/bpf_jit_32.c
-@@ -899,7 +899,7 @@ void bpf_jit_compile(struct sk_filter *f
- if (ctx.imm_count)
- kfree(ctx.imms);
- #endif
-- bpf_jit_binary_free(header);
-+ module_free(NULL, ctx.target);
- goto out;
- }
- build_epilogue(&ctx);
diff --git a/patches/asoc-wm8737-fixup-setting-vmid-impedance-control-register.patch b/patches/asoc-wm8737-fixup-setting-vmid-impedance-control-register.patch
deleted file mode 100644
index 74aef43..0000000
--- a/patches/asoc-wm8737-fixup-setting-vmid-impedance-control-register.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 14ba3ec1de043260cecd9e828ea2e3a0ad302893 Mon Sep 17 00:00:00 2001
-From: Axel Lin <axel.lin@ingics.com>
-Date: Sun, 10 May 2015 11:35:06 +0800
-Subject: ASoC: wm8737: Fixup setting VMID Impedance control register
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 14ba3ec1de043260cecd9e828ea2e3a0ad302893 upstream.
-
-According to the datasheet:
-R10 (0Ah) VMID Impedance Control
-
-BIT 3:2 VMIDSEL DEFAULT 00
-
-DESCRIPTION: VMID impedance selection control
-00: 75kΩ output
-01: 300kΩ output
-10: 2.5kΩ output
-
-WM8737_VMIDSEL_MASK is 0xC (VMIDSEL - [3:2]),
-so it needs to left shift WM8737_VMIDSEL_SHIFT bits for setting these bits.
-
-Signed-off-by: Axel Lin <axel.lin@ingics.com>
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- sound/soc/codecs/wm8737.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
---- a/sound/soc/codecs/wm8737.c
-+++ b/sound/soc/codecs/wm8737.c
-@@ -484,7 +484,8 @@ static int wm8737_set_bias_level(struct
-
- /* Fast VMID ramp at 2*2.5k */
- snd_soc_update_bits(codec, WM8737_MISC_BIAS_CONTROL,
-- WM8737_VMIDSEL_MASK, 0x4);
-+ WM8737_VMIDSEL_MASK,
-+ 2 << WM8737_VMIDSEL_SHIFT);
-
- /* Bring VMID up */
- snd_soc_update_bits(codec, WM8737_POWER_MANAGEMENT,
-@@ -498,7 +499,8 @@ static int wm8737_set_bias_level(struct
-
- /* VMID at 2*300k */
- snd_soc_update_bits(codec, WM8737_MISC_BIAS_CONTROL,
-- WM8737_VMIDSEL_MASK, 2);
-+ WM8737_VMIDSEL_MASK,
-+ 1 << WM8737_VMIDSEL_SHIFT);
-
- break;
-
diff --git a/patches/asoc-wm8903-fix-define-for-wm8903_vmid_res_250k.patch b/patches/asoc-wm8903-fix-define-for-wm8903_vmid_res_250k.patch
deleted file mode 100644
index 4a739df..0000000
--- a/patches/asoc-wm8903-fix-define-for-wm8903_vmid_res_250k.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From ebb6ad73e645b8f2d098dd3c41d2ff0da4146a02 Mon Sep 17 00:00:00 2001
-From: Axel Lin <axel.lin@ingics.com>
-Date: Mon, 11 May 2015 09:04:06 +0800
-Subject: ASoC: wm8903: Fix define for WM8903_VMID_RES_250K
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit ebb6ad73e645b8f2d098dd3c41d2ff0da4146a02 upstream.
-
-VMID Control 0 BIT[2:1] is VMID Divider Enable and Select
-
-00 = VMID disabled (for OFF mode)
-01 = 2 x 50kΩ divider (for normal operation)
-10 = 2 x 250kΩ divider (for low power standby)
-11 = 2 x 5kΩ divider (for fast start-up)
-
-So WM8903_VMID_RES_250K should be 2 << 1, which is 4.
-
-Signed-off-by: Axel Lin <axel.lin@ingics.com>
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- sound/soc/codecs/wm8903.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/sound/soc/codecs/wm8903.h
-+++ b/sound/soc/codecs/wm8903.h
-@@ -172,7 +172,7 @@ extern int wm8903_mic_detect(struct snd_
- #define WM8903_VMID_BUF_ENA_WIDTH 1 /* VMID_BUF_ENA */
-
- #define WM8903_VMID_RES_50K 2
--#define WM8903_VMID_RES_250K 3
-+#define WM8903_VMID_RES_250K 4
- #define WM8903_VMID_RES_5K 6
-
- /*
diff --git a/patches/asoc-wm8955-fix-setting-wrong-register-for-wm8955_k_8_0_mask-bits.patch b/patches/asoc-wm8955-fix-setting-wrong-register-for-wm8955_k_8_0_mask-bits.patch
deleted file mode 100644
index 3084162..0000000
--- a/patches/asoc-wm8955-fix-setting-wrong-register-for-wm8955_k_8_0_mask-bits.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 12c350050538c7dc779c083b7342bfd20f74949c Mon Sep 17 00:00:00 2001
-From: Axel Lin <axel.lin@ingics.com>
-Date: Fri, 15 May 2015 09:15:16 +0800
-Subject: ASoC: wm8955: Fix setting wrong register for WM8955_K_8_0_MASK bits
-
-commit 12c350050538c7dc779c083b7342bfd20f74949c upstream.
-
-WM8955_K_8_0_MASK bits is controlled by WM8955_PLL_CONTROL_3 rather than
-WM8955_PLL_CONTROL_2.
-
-Signed-off-by: Axel Lin <axel.lin@ingics.com>
-Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- sound/soc/codecs/wm8955.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/sound/soc/codecs/wm8955.c
-+++ b/sound/soc/codecs/wm8955.c
-@@ -298,7 +298,7 @@ static int wm8955_configure_clocking(str
- snd_soc_update_bits(codec, WM8955_PLL_CONTROL_2,
- WM8955_K_17_9_MASK,
- (pll.k >> 9) & WM8955_K_17_9_MASK);
-- snd_soc_update_bits(codec, WM8955_PLL_CONTROL_2,
-+ snd_soc_update_bits(codec, WM8955_PLL_CONTROL_3,
- WM8955_K_8_0_MASK,
- pll.k & WM8955_K_8_0_MASK);
- if (pll.k)
diff --git a/patches/asoc-wm8960-the-enum-of-dac-polarity-should-be-wm8960_enum-1.patch b/patches/asoc-wm8960-the-enum-of-dac-polarity-should-be-wm8960_enum-1.patch
deleted file mode 100644
index 902f546..0000000
--- a/patches/asoc-wm8960-the-enum-of-dac-polarity-should-be-wm8960_enum-1.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From a077e81ec61e07a7f86997d045109f06719fbffe Mon Sep 17 00:00:00 2001
-From: Zidan Wang <zidan.wang@freescale.com>
-Date: Thu, 11 Jun 2015 19:14:36 +0800
-Subject: ASoC: wm8960: the enum of "DAC Polarity" should be wm8960_enum[1]
-
-commit a077e81ec61e07a7f86997d045109f06719fbffe upstream.
-
-the enum of "DAC Polarity" should be wm8960_enum[1].
-
-Signed-off-by: Zidan Wang <zidan.wang@freescale.com>
-Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- sound/soc/codecs/wm8960.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/sound/soc/codecs/wm8960.c
-+++ b/sound/soc/codecs/wm8960.c
-@@ -183,7 +183,7 @@ SOC_SINGLE("PCM Playback -6dB Switch", W
- SOC_ENUM("ADC Polarity", wm8960_enum[0]),
- SOC_SINGLE("ADC High Pass Filter Switch", WM8960_DACCTL1, 0, 1, 0),
-
--SOC_ENUM("DAC Polarity", wm8960_enum[2]),
-+SOC_ENUM("DAC Polarity", wm8960_enum[1]),
- SOC_SINGLE_BOOL_EXT("DAC Deemphasis Switch", 0,
- wm8960_get_deemph, wm8960_put_deemph),
-
diff --git a/patches/ath3k-add-support-of-13d3-3474-ar3012-device.patch b/patches/ath3k-add-support-of-13d3-3474-ar3012-device.patch
deleted file mode 100644
index 84dd15e..0000000
--- a/patches/ath3k-add-support-of-13d3-3474-ar3012-device.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 0d0cef6183aec0fb6d0c9f00a09ff51ee086bbe2 Mon Sep 17 00:00:00 2001
-From: Dmitry Tunin <hanipouspilot@gmail.com>
-Date: Sat, 6 Jun 2015 20:29:25 +0300
-Subject: ath3k: add support of 13d3:3474 AR3012 device
-
-commit 0d0cef6183aec0fb6d0c9f00a09ff51ee086bbe2 upstream.
-
-BugLink: https://bugs.launchpad.net/bugs/1427680
-
-This device requires new firmware files
- AthrBT_0x11020100.dfu and ramps_0x11020100_40.dfu added to
-/lib/firmware/ar3k/ that are not included in linux-firmware yet.
-
-T: Bus=01 Lev=01 Prnt=01 Port=04 Cnt=01 Dev#= 4 Spd=12 MxCh= 0
-D: Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
-P: Vendor=13d3 ProdID=3474 Rev=00.01
-C: #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
-I: If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
-I: If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
-
-Signed-off-by: Dmitry Tunin <hanipouspilot@gmail.com>
-Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- drivers/bluetooth/ath3k.c | 2 ++
- drivers/bluetooth/btusb.c | 1 +
- 2 files changed, 3 insertions(+)
-
---- a/drivers/bluetooth/ath3k.c
-+++ b/drivers/bluetooth/ath3k.c
-@@ -104,6 +104,7 @@ static struct usb_device_id ath3k_table[
- { USB_DEVICE(0x13d3, 0x3408) },
- { USB_DEVICE(0x13d3, 0x3423) },
- { USB_DEVICE(0x13d3, 0x3432) },
-+ { USB_DEVICE(0x13d3, 0x3474) },
-
- /* Atheros AR5BBU12 with sflash firmware */
- { USB_DEVICE(0x0489, 0xE02C) },
-@@ -153,6 +154,7 @@ static struct usb_device_id ath3k_blist_
- { USB_DEVICE(0x13d3, 0x3408), .driver_info = BTUSB_ATH3012 },
- { USB_DEVICE(0x13d3, 0x3423), .driver_info = BTUSB_ATH3012 },
- { USB_DEVICE(0x13d3, 0x3432), .driver_info = BTUSB_ATH3012 },
-+ { USB_DEVICE(0x13d3, 0x3474), .driver_info = BTUSB_ATH3012 },
-
- /* Atheros AR5BBU22 with sflash firmware */
- { USB_DEVICE(0x0489, 0xE03C), .driver_info = BTUSB_ATH3012 },
---- a/drivers/bluetooth/btusb.c
-+++ b/drivers/bluetooth/btusb.c
-@@ -182,6 +182,7 @@ static struct usb_device_id blacklist_ta
- { USB_DEVICE(0x13d3, 0x3408), .driver_info = BTUSB_ATH3012 },
- { USB_DEVICE(0x13d3, 0x3423), .driver_info = BTUSB_ATH3012 },
- { USB_DEVICE(0x13d3, 0x3432), .driver_info = BTUSB_ATH3012 },
-+ { USB_DEVICE(0x13d3, 0x3474), .driver_info = BTUSB_ATH3012 },
-
- /* Atheros AR5BBU12 with sflash firmware */
- { USB_DEVICE(0x0489, 0xe02c), .driver_info = BTUSB_IGNORE },
diff --git a/patches/ath9k-fix-dma-stop-sequence-for-ar9003.patch b/patches/ath9k-fix-dma-stop-sequence-for-ar9003.patch
deleted file mode 100644
index 1336291..0000000
--- a/patches/ath9k-fix-dma-stop-sequence-for-ar9003.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 300f77c08ded96d33f492aaa02549103852f0c12 Mon Sep 17 00:00:00 2001
-From: Felix Fietkau <nbd@openwrt.org>
-Date: Tue, 2 Jun 2015 10:38:32 +0200
-Subject: ath9k: fix DMA stop sequence for AR9003+
-
-commit 300f77c08ded96d33f492aaa02549103852f0c12 upstream.
-
-AR93xx and newer needs to stop rx before tx to avoid getting the DMA
-engine or MAC into a stuck state.
-This should reduce/fix the occurence of "Failed to stop Tx DMA" logspam.
-
-Signed-off-by: Felix Fietkau <nbd@openwrt.org>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
-[lizf: Backported to 3.4:
- - initialize ret
- - ath_drain_all_txq() takes a second argument]
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- drivers/net/wireless/ath/ath9k/main.c | 13 ++++++++-----
- 1 file changed, 8 insertions(+), 5 deletions(-)
-
---- a/drivers/net/wireless/ath/ath9k/main.c
-+++ b/drivers/net/wireless/ath/ath9k/main.c
-@@ -235,7 +235,7 @@ static bool ath_prepare_reset(struct ath
- {
- struct ath_hw *ah = sc->sc_ah;
- struct ath_common *common = ath9k_hw_common(ah);
-- bool ret;
-+ bool ret = true;
-
- ieee80211_stop_queues(sc->hw);
-
-@@ -245,10 +245,13 @@ static bool ath_prepare_reset(struct ath
- ath9k_debug_samp_bb_mac(sc);
- ath9k_hw_disable_interrupts(ah);
-
-- ret = ath_drain_all_txq(sc, retry_tx);
--
-- if (!ath_stoprecv(sc))
-- ret = false;
-+ if (AR_SREV_9300_20_OR_LATER(ah)) {
-+ ret &= ath_stoprecv(sc);
-+ ret &= ath_drain_all_txq(sc, retry_tx);
-+ } else {
-+ ret &= ath_drain_all_txq(sc, retry_tx);
-+ ret &= ath_stoprecv(sc);
-+ }
-
- if (!flush) {
- if (ah->caps.hw_caps & ATH9K_HW_CAP_EDMA)
diff --git a/patches/bridge-fix-br_stp_set_bridge_priority-race-conditions.patch b/patches/bridge-fix-br_stp_set_bridge_priority-race-conditions.patch
deleted file mode 100644
index 31ccdad..0000000
--- a/patches/bridge-fix-br_stp_set_bridge_priority-race-conditions.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From 2dab80a8b486f02222a69daca6859519e05781d9 Mon Sep 17 00:00:00 2001
-From: Nikolay Aleksandrov <razor@blackwall.org>
-Date: Mon, 15 Jun 2015 20:28:51 +0300
-Subject: bridge: fix br_stp_set_bridge_priority race conditions
-
-commit 2dab80a8b486f02222a69daca6859519e05781d9 upstream.
-
-After the ->set() spinlocks were removed br_stp_set_bridge_priority
-was left running without any protection when used via sysfs. It can
-race with port add/del and could result in use-after-free cases and
-corrupted lists. Tested by running port add/del in a loop with stp
-enabled while setting priority in a loop, crashes are easily
-reproducible.
-The spinlocks around sysfs ->set() were removed in commit:
-14f98f258f19 ("bridge: range check STP parameters")
-There's also a race condition in the netlink priority support that is
-fixed by this change, but it was introduced recently and the fixes tag
-covers it, just in case it's needed the commit is:
-af615762e972 ("bridge: add ageing_time, stp_state, priority over netlink")
-
-Signed-off-by: Nikolay Aleksandrov <razor@blackwall.org>
-Fixes: 14f98f258f19 ("bridge: range check STP parameters")
-Signed-off-by: David S. Miller <davem@davemloft.net>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- net/bridge/br_ioctl.c | 2 --
- net/bridge/br_stp_if.c | 4 +++-
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
---- a/net/bridge/br_ioctl.c
-+++ b/net/bridge/br_ioctl.c
-@@ -246,9 +246,7 @@ static int old_dev_ioctl(struct net_devi
- if (!capable(CAP_NET_ADMIN))
- return -EPERM;
-
-- spin_lock_bh(&br->lock);
- br_stp_set_bridge_priority(br, args[1]);
-- spin_unlock_bh(&br->lock);
- return 0;
-
- case BRCTL_SET_PORT_PRIORITY:
---- a/net/bridge/br_stp_if.c
-+++ b/net/bridge/br_stp_if.c
-@@ -242,12 +242,13 @@ bool br_stp_recalculate_bridge_id(struct
- return true;
- }
-
--/* called under bridge lock */
-+/* Acquires and releases bridge lock */
- void br_stp_set_bridge_priority(struct net_bridge *br, u16 newprio)
- {
- struct net_bridge_port *p;
- int wasroot;
-
-+ spin_lock_bh(&br->lock);
- wasroot = br_is_root_bridge(br);
-
- list_for_each_entry(p, &br->port_list, list) {
-@@ -265,6 +266,7 @@ void br_stp_set_bridge_priority(struct n
- br_port_state_selection(br);
- if (br_is_root_bridge(br) && !wasroot)
- br_become_root_bridge(br);
-+ spin_unlock_bh(&br->lock);
- }
-
- /* called under bridge lock */
diff --git a/patches/bridge-multicast-restore-router-configuration-on-port-link-down-up.patch b/patches/bridge-multicast-restore-router-configuration-on-port-link-down-up.patch
deleted file mode 100644
index 97805e3..0000000
--- a/patches/bridge-multicast-restore-router-configuration-on-port-link-down-up.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 754bc547f0a79f7568b5b81c7fc0a8d044a6571a Mon Sep 17 00:00:00 2001
-From: Satish Ashok <sashok@cumulusnetworks.com>
-Date: Fri, 19 Jun 2015 01:22:57 -0700
-Subject: bridge: multicast: restore router configuration on port link down/up
-
-commit 754bc547f0a79f7568b5b81c7fc0a8d044a6571a upstream.
-
-When a port goes through a link down/up the multicast router configuration
-is not restored.
-
-Signed-off-by: Satish Ashok <sashok@cumulusnetworks.com>
-Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
-Fixes: 0909e11758bd ("bridge: Add multicast_router sysfs entries")
-Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-[lizf: Backported to 3.4: adjust context]
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- net/bridge/br_multicast.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
---- a/net/bridge/br_multicast.c
-+++ b/net/bridge/br_multicast.c
-@@ -36,6 +36,9 @@
- #define mlock_dereference(X, br) \
- rcu_dereference_protected(X, lockdep_is_held(&br->multicast_lock))
-
-+static void br_multicast_add_router(struct net_bridge *br,
-+ struct net_bridge_port *port);
-+
- #if IS_ENABLED(CONFIG_IPV6)
- static inline int ipv6_is_transient_multicast(const struct in6_addr *addr)
- {
-@@ -842,6 +845,8 @@ void br_multicast_enable_port(struct net
- goto out;
-
- __br_multicast_enable_port(port);
-+ if (port->multicast_router == 2 && hlist_unhashed(&port->rlist))
-+ br_multicast_add_router(br, port);
-
- out:
- spin_unlock(&br->multicast_lock);
diff --git a/patches/crush-fix-a-bug-in-tree-bucket-decode.patch b/patches/crush-fix-a-bug-in-tree-bucket-decode.patch
deleted file mode 100644
index ec2d6df..0000000
--- a/patches/crush-fix-a-bug-in-tree-bucket-decode.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 82cd003a77173c91b9acad8033fb7931dac8d751 Mon Sep 17 00:00:00 2001
-From: Ilya Dryomov <idryomov@gmail.com>
-Date: Mon, 29 Jun 2015 19:30:23 +0300
-Subject: crush: fix a bug in tree bucket decode
-
-commit 82cd003a77173c91b9acad8033fb7931dac8d751 upstream.
-
-struct crush_bucket_tree::num_nodes is u8, so ceph_decode_8_safe()
-should be used. -Wconversion catches this, but I guess it went
-unnoticed in all the noise it spews. The actual problem (at least for
-common crushmaps) isn't the u32 -> u8 truncation though - it's the
-advancement by 4 bytes instead of 1 in the crushmap buffer.
-
-Fixes: http://tracker.ceph.com/issues/2759
-
-Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
-Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- net/ceph/osdmap.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/net/ceph/osdmap.c
-+++ b/net/ceph/osdmap.c
-@@ -102,7 +102,7 @@ static int crush_decode_tree_bucket(void
- {
- int j;
- dout("crush_decode_tree_bucket %p to %p\n", *p, end);
-- ceph_decode_32_safe(p, end, b->num_nodes, bad);
-+ ceph_decode_8_safe(p, end, b->num_nodes, bad);
- b->node_weights = kcalloc(b->num_nodes, sizeof(u32), GFP_NOFS);
- if (b->node_weights == NULL)
- return -ENOMEM;
diff --git a/patches/crypto-s390-ghash-fix-incorrect-backport-of-a1cae34e23b1.patch b/patches/crypto-s390-ghash-fix-incorrect-backport-of-a1cae34e23b1.patch
deleted file mode 100644
index 958e074..0000000
--- a/patches/crypto-s390-ghash-fix-incorrect-backport-of-a1cae34e23b1.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From b1c0b1d3a205ba28387b96848d9f6ab25a44015f Mon Sep 17 00:00:00 2001
-From: Zefan Li <lizefan@huawei.com>
-Date: Sun, 11 Oct 2015 16:27:16 +0800
-Subject: [PATCH] crypto: s390/ghash: Fix incorrect backport of a1cae34e23b1
-
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- arch/s390/crypto/ghash_s390.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/arch/s390/crypto/ghash_s390.c
-+++ b/arch/s390/crypto/ghash_s390.c
-@@ -115,7 +115,7 @@ static int ghash_final(struct shash_desc
- struct ghash_desc_ctx *dctx = shash_desc_ctx(desc);
-
- ghash_flush(dctx);
-- memcpy(dst, dtx->icv, GHASH_BLOCK_SIZE);
-+ memcpy(dst, dctx->icv, GHASH_BLOCK_SIZE);
-
- return 0;
- }
diff --git a/patches/crypto-talitos-avoid-memleak-in-talitos_alg_alloc.patch b/patches/crypto-talitos-avoid-memleak-in-talitos_alg_alloc.patch
deleted file mode 100644
index e8d58b9..0000000
--- a/patches/crypto-talitos-avoid-memleak-in-talitos_alg_alloc.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 5fa7dadc898567ce14d6d6d427e7bd8ce6eb5d39 Mon Sep 17 00:00:00 2001
-From: Horia Geant? <horia.geanta@freescale.com>
-Date: Mon, 11 May 2015 20:03:24 +0300
-Subject: crypto: talitos - avoid memleak in talitos_alg_alloc()
-
-commit 5fa7dadc898567ce14d6d6d427e7bd8ce6eb5d39 upstream.
-
-Fixes: 1d11911a8c57 ("crypto: talitos - fix warning: 'alg' may be used uninitialized in this function")
-Signed-off-by: Horia Geanta <horia.geanta@freescale.com>
-Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- drivers/crypto/talitos.c | 1 +
- 1 file changed, 1 insertion(+)
-
---- a/drivers/crypto/talitos.c
-+++ b/drivers/crypto/talitos.c
-@@ -2653,6 +2653,7 @@ static struct talitos_crypto_alg *talito
- break;
- default:
- dev_err(dev, "unknown algorithm type %d\n", t_alg->algt.type);
-+ kfree(t_alg);
- return ERR_PTR(-EINVAL);
- }
-
diff --git a/patches/dcache-handle-escaped-paths-in-prepend_path.patch b/patches/dcache-handle-escaped-paths-in-prepend_path.patch
deleted file mode 100644
index 033b139..0000000
--- a/patches/dcache-handle-escaped-paths-in-prepend_path.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From d1c3c58267ed18be9275f53c49673cb970165f2a Mon Sep 17 00:00:00 2001
-From: "Eric W. Biederman" <ebiederm@xmission.com>
-Date: Sat, 15 Aug 2015 13:36:12 -0500
-Subject: [PATCH 1/2] dcache: Handle escaped paths in prepend_path
-
-commit cde93be45a8a90d8c264c776fab63487b5038a65 upstream.
-
-A rename can result in a dentry that by walking up d_parent
-will never reach it's mnt_root. For lack of a better term
-I call this an escaped path.
-
-prepend_path is called by four different functions __d_path,
-d_absolute_path, d_path, and getcwd.
-
-__d_path only wants to see paths are connected to the root it passes
-in. So __d_path needs prepend_path to return an error.
-
-d_absolute_path similarly wants to see paths that are connected to
-some root. Escaped paths are not connected to any mnt_root so
-d_absolute_path needs prepend_path to return an error greater
-than 1. So escaped paths will be treated like paths on lazily
-unmounted mounts.
-
-getcwd needs to prepend "(unreachable)" so getcwd also needs
-prepend_path to return an error.
-
-d_path is the interesting hold out. d_path just wants to print
-something, and does not care about the weird cases. Which raises
-the question what should be printed?
-
-Given that <escaped_path>/<anything> should result in -ENOENT I
-believe it is desirable for escaped paths to be printed as empty
-paths. As there are not really any meaninful path components when
-considered from the perspective of a mount tree.
-
-So tweak prepend_path to return an empty path with an new error
-code of 3 when it encounters an escaped path.
-
-Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
-Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- fs/dcache.c | 10 ++++++++++
- 1 file changed, 10 insertions(+)
-
---- a/fs/dcache.c
-+++ b/fs/dcache.c
-@@ -2518,6 +2518,8 @@ static int prepend_path(const struct pat
- struct dentry *dentry = path->dentry;
- struct vfsmount *vfsmnt = path->mnt;
- struct mount *mnt = real_mount(vfsmnt);
-+ char *orig_buffer = *buffer;
-+ int orig_len = *buflen;
- bool slash = false;
- int error = 0;
-
-@@ -2525,6 +2527,14 @@ static int prepend_path(const struct pat
- struct dentry * parent;
-
- if (dentry == vfsmnt->mnt_root || IS_ROOT(dentry)) {
-+ /* Escaped? */
-+ if (dentry != vfsmnt->mnt_root) {
-+ *buffer = orig_buffer;
-+ *buflen = orig_len;
-+ slash = false;
-+ error = 3;
-+ goto global_root;
-+ }
- /* Global root? */
- if (!mnt_has_parent(mnt))
- goto global_root;
diff --git a/patches/dell-laptop-fix-allocating-freeing-smi-buffer-page.patch b/patches/dell-laptop-fix-allocating-freeing-smi-buffer-page.patch
deleted file mode 100644
index 4077a04..0000000
--- a/patches/dell-laptop-fix-allocating-freeing-smi-buffer-page.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From b8830a4e71b15d0364ac8e6c55301eea73f211da Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <pali.rohar@gmail.com>
-Date: Tue, 23 Jun 2015 10:11:19 +0200
-Subject: dell-laptop: Fix allocating & freeing SMI buffer page
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit b8830a4e71b15d0364ac8e6c55301eea73f211da upstream.
-
-This commit fix kernel crash when probing for rfkill devices in dell-laptop
-driver failed. Function free_page() was incorrectly used on struct page *
-instead of virtual address of SMI buffer.
-
-This commit also simplify allocating page for SMI buffer by using
-__get_free_page() function instead of sequential call of functions
-alloc_page() and page_address().
-
-Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
-Acked-by: Michal Hocko <mhocko@suse.cz>
-Signed-off-by: Darren Hart <dvhart@linux.intel.com>
-[lizf: Backported to 3.4: adjust context]
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- drivers/platform/x86/dell-laptop.c | 8 +++-----
- 1 file changed, 3 insertions(+), 5 deletions(-)
-
---- a/drivers/platform/x86/dell-laptop.c
-+++ b/drivers/platform/x86/dell-laptop.c
-@@ -216,7 +216,6 @@ static struct dmi_system_id __devinitdat
- };
-
- static struct calling_interface_buffer *buffer;
--static struct page *bufferpage;
- static DEFINE_MUTEX(buffer_mutex);
-
- static int hwswitch_state;
-@@ -714,11 +713,10 @@ static int __init dell_init(void)
- * Allocate buffer below 4GB for SMI data--only 32-bit physical addr
- * is passed to SMI handler.
- */
-- bufferpage = alloc_page(GFP_KERNEL | GFP_DMA32);
-+ buffer = (void *)__get_free_page(GFP_KERNEL | GFP_DMA32);
-
-- if (!bufferpage)
-+ if (!buffer)
- goto fail_buffer;
-- buffer = page_address(bufferpage);
-
- ret = dell_setup_rfkill();
-
-@@ -787,7 +785,7 @@ fail_backlight:
- fail_filter:
- dell_cleanup_rfkill();
- fail_rfkill:
-- free_page((unsigned long)bufferpage);
-+ free_page((unsigned long)buffer);
- fail_buffer:
- platform_device_del(platform_device);
- fail_platform_device2:
diff --git a/patches/disable-write-buffering-on-toshiba-topic95.patch b/patches/disable-write-buffering-on-toshiba-topic95.patch
deleted file mode 100644
index d89dfb6..0000000
--- a/patches/disable-write-buffering-on-toshiba-topic95.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From 2fb22a8042fe96b4220843f79241c116d90922c4 Mon Sep 17 00:00:00 2001
-From: Ryan Underwood <nemesis@icequake.net>
-Date: Sun, 25 Jan 2015 16:07:09 -0800
-Subject: Disable write buffering on Toshiba ToPIC95
-
-commit 2fb22a8042fe96b4220843f79241c116d90922c4 upstream.
-
-Disable write buffering on the Toshiba ToPIC95 if it is enabled by
-somebody (it is not supposed to be a power-on default according to
-the datasheet). On the ToPIC95, practically no 32-bit Cardbus card
-will work under heavy load without locking up the whole system if
-this is left enabled. I tried about a dozen. It does not affect
-16-bit cards. This is similar to the O2 bugs in early controller
-revisions it seems.
-
-Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=55961
-Signed-off-by: Ryan C. Underwood <nemesis@icequake.net>
-Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- drivers/pcmcia/topic.h | 16 ++++++++++++++++
- 1 file changed, 16 insertions(+)
-
-diff --git a/drivers/pcmcia/topic.h b/drivers/pcmcia/topic.h
-index 615a45a..582688fe 100644
---- a/drivers/pcmcia/topic.h
-+++ b/drivers/pcmcia/topic.h
-@@ -104,6 +104,9 @@
- #define TOPIC_EXCA_IF_CONTROL 0x3e /* 8 bit */
- #define TOPIC_EXCA_IFC_33V_ENA 0x01
-
-+#define TOPIC_PCI_CFG_PPBCN 0x3e /* 16-bit */
-+#define TOPIC_PCI_CFG_PPBCN_WBEN 0x0400
-+
- static void topic97_zoom_video(struct pcmcia_socket *sock, int onoff)
- {
- struct yenta_socket *socket = container_of(sock, struct yenta_socket, socket);
-@@ -138,6 +141,7 @@ static int topic97_override(struct yenta_socket *socket)
- static int topic95_override(struct yenta_socket *socket)
- {
- u8 fctrl;
-+ u16 ppbcn;
-
- /* enable 3.3V support for 16bit cards */
- fctrl = exca_readb(socket, TOPIC_EXCA_IF_CONTROL);
-@@ -146,6 +150,18 @@ static int topic95_override(struct yenta_socket *socket)
- /* tell yenta to use exca registers to power 16bit cards */
- socket->flags |= YENTA_16BIT_POWER_EXCA | YENTA_16BIT_POWER_DF;
-
-+ /* Disable write buffers to prevent lockups under load with numerous
-+ Cardbus cards, observed on Tecra 500CDT and reported elsewhere on the
-+ net. This is not a power-on default according to the datasheet
-+ but some BIOSes seem to set it. */
-+ if (pci_read_config_word(socket->dev, TOPIC_PCI_CFG_PPBCN, &ppbcn) == 0
-+ && socket->dev->revision <= 7
-+ && (ppbcn & TOPIC_PCI_CFG_PPBCN_WBEN)) {
-+ ppbcn &= ~TOPIC_PCI_CFG_PPBCN_WBEN;
-+ pci_write_config_word(socket->dev, TOPIC_PCI_CFG_PPBCN, ppbcn);
-+ dev_info(&socket->dev->dev, "Disabled ToPIC95 Cardbus write buffers.\n");
-+ }
-+
- return 0;
- }
-
---
-1.9.1
-
diff --git a/patches/dmaengine-mv_xor-bug-fix-for-racing-condition-in-descriptors-cleanup.patch b/patches/dmaengine-mv_xor-bug-fix-for-racing-condition-in-descriptors-cleanup.patch
deleted file mode 100644
index bc222fa..0000000
--- a/patches/dmaengine-mv_xor-bug-fix-for-racing-condition-in-descriptors-cleanup.patch
+++ /dev/null
@@ -1,132 +0,0 @@
-From 9136291f1dbc1d4d1cacd2840fb35f4f3ce16c46 Mon Sep 17 00:00:00 2001
-From: Lior Amsalem <alior@marvell.com>
-Date: Tue, 26 May 2015 15:07:32 +0200
-Subject: dmaengine: mv_xor: bug fix for racing condition in descriptors
- cleanup
-
-commit 9136291f1dbc1d4d1cacd2840fb35f4f3ce16c46 upstream.
-
-This patch fixes a bug in the XOR driver where the cleanup function can be
-called and free descriptors that never been processed by the engine (which
-result in data errors).
-
-The cleanup function will free descriptors based on the ownership bit in
-the descriptors.
-
-Fixes: ff7b04796d98 ("dmaengine: DMA engine driver for Marvell XOR engine")
-Signed-off-by: Lior Amsalem <alior@marvell.com>
-Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
-Reviewed-by: Ofer Heifetz <oferh@marvell.com>
-Signed-off-by: Vinod Koul <vinod.koul@intel.com>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- drivers/dma/mv_xor.c | 74 ++++++++++++++++++++++++++++++++-------------------
- drivers/dma/mv_xor.h | 1
- 2 files changed, 48 insertions(+), 27 deletions(-)
-
---- a/drivers/dma/mv_xor.c
-+++ b/drivers/dma/mv_xor.c
-@@ -390,7 +390,8 @@ static void __mv_xor_slot_cleanup(struct
- dma_cookie_t cookie = 0;
- int busy = mv_chan_is_busy(mv_chan);
- u32 current_desc = mv_chan_get_current_desc(mv_chan);
-- int seen_current = 0;
-+ int current_cleaned = 0;
-+ struct mv_xor_desc *hw_desc;
-
- dev_dbg(mv_chan->device->common.dev, "%s %d\n", __func__, __LINE__);
- dev_dbg(mv_chan->device->common.dev, "current_desc %x\n", current_desc);
-@@ -402,38 +403,57 @@ static void __mv_xor_slot_cleanup(struct
-
- list_for_each_entry_safe(iter, _iter, &mv_chan->chain,
- chain_node) {
-- prefetch(_iter);
-- prefetch(&_iter->async_tx);
-
-- /* do not advance past the current descriptor loaded into the
-- * hardware channel, subsequent descriptors are either in
-- * process or have not been submitted
-- */
-- if (seen_current)
-- break;
--
-- /* stop the search if we reach the current descriptor and the
-- * channel is busy
-- */
-- if (iter->async_tx.phys == current_desc) {
-- seen_current = 1;
-- if (busy)
-+ /* clean finished descriptors */
-+ hw_desc = iter->hw_desc;
-+ if (hw_desc->status & XOR_DESC_SUCCESS) {
-+ cookie = mv_xor_run_tx_complete_actions(iter, mv_chan,
-+ cookie);
-+
-+ /* done processing desc, clean slot */
-+ mv_xor_clean_slot(iter, mv_chan);
-+
-+ /* break if we did cleaned the current */
-+ if (iter->async_tx.phys == current_desc) {
-+ current_cleaned = 1;
- break;
-+ }
-+ } else {
-+ if (iter->async_tx.phys == current_desc) {
-+ current_cleaned = 0;
-+ break;
-+ }
- }
--
-- cookie = mv_xor_run_tx_complete_actions(iter, mv_chan, cookie);
--
-- if (mv_xor_clean_slot(iter, mv_chan))
-- break;
- }
-
- if ((busy == 0) && !list_empty(&mv_chan->chain)) {
-- struct mv_xor_desc_slot *chain_head;
-- chain_head = list_entry(mv_chan->chain.next,
-- struct mv_xor_desc_slot,
-- chain_node);
--
-- mv_xor_start_new_chain(mv_chan, chain_head);
-+ if (current_cleaned) {
-+ /*
-+ * current descriptor cleaned and removed, run
-+ * from list head
-+ */
-+ iter = list_entry(mv_chan->chain.next,
-+ struct mv_xor_desc_slot,
-+ chain_node);
-+ mv_xor_start_new_chain(mv_chan, iter);
-+ } else {
-+ if (!list_is_last(&iter->chain_node, &mv_chan->chain)) {
-+ /*
-+ * descriptors are still waiting after
-+ * current, trigger them
-+ */
-+ iter = list_entry(iter->chain_node.next,
-+ struct mv_xor_desc_slot,
-+ chain_node);
-+ mv_xor_start_new_chain(mv_chan, iter);
-+ } else {
-+ /*
-+ * some descriptors are still waiting
-+ * to be cleaned
-+ */
-+ tasklet_schedule(&mv_chan->irq_tasklet);
-+ }
-+ }
- }
-
- if (cookie > 0)
---- a/drivers/dma/mv_xor.h
-+++ b/drivers/dma/mv_xor.h
-@@ -30,6 +30,7 @@
- #define XOR_OPERATION_MODE_XOR 0
- #define XOR_OPERATION_MODE_MEMCPY 2
- #define XOR_OPERATION_MODE_MEMSET 4
-+#define XOR_DESC_SUCCESS 0x40000000
-
- #define XOR_CURR_DESC(chan) (chan->mmr_base + 0x210 + (chan->idx * 4))
- #define XOR_NEXT_DESC(chan) (chan->mmr_base + 0x200 + (chan->idx * 4))
diff --git a/patches/drm-radeon-partially-revert-fix-vm_context-_page_table_end_addr-handling.patch b/patches/drm-radeon-partially-revert-fix-vm_context-_page_table_end_addr-handling.patch
deleted file mode 100644
index 2930be4..0000000
--- a/patches/drm-radeon-partially-revert-fix-vm_context-_page_table_end_addr-handling.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From 7c0411d2fabc2e2702c9871ffb603e251158b317 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com>
-Date: Thu, 28 May 2015 15:51:59 +0200
-Subject: drm/radeon: partially revert "fix VM_CONTEXT*_PAGE_TABLE_END_ADDR
- handling"
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 7c0411d2fabc2e2702c9871ffb603e251158b317 upstream.
-
-We have that bug for years and some users report side effects when fixing it on older hardware.
-
-So revert it for VM_CONTEXT0_PAGE_TABLE_END_ADDR, but keep it for VM 1-15.
-
-Signed-off-by: Christian König <christian.koenig@amd.com>
-Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-[lizf: Backported to 3.4: drop the change to clk.c]
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- drivers/gpu/drm/radeon/evergreen.c | 2 +-
- drivers/gpu/drm/radeon/ni.c | 2 +-
- drivers/gpu/drm/radeon/r600.c | 2 +-
- drivers/gpu/drm/radeon/rv770.c | 2 +-
- drivers/gpu/drm/radeon/si.c | 2 +-
- 5 files changed, 5 insertions(+), 5 deletions(-)
-
---- a/drivers/gpu/drm/radeon/evergreen.c
-+++ b/drivers/gpu/drm/radeon/evergreen.c
-@@ -1079,7 +1079,7 @@ int evergreen_pcie_gart_enable(struct ra
- WREG32(MC_VM_MB_L1_TLB2_CNTL, tmp);
- WREG32(MC_VM_MB_L1_TLB3_CNTL, tmp);
- WREG32(VM_CONTEXT0_PAGE_TABLE_START_ADDR, rdev->mc.gtt_start >> 12);
-- WREG32(VM_CONTEXT0_PAGE_TABLE_END_ADDR, (rdev->mc.gtt_end >> 12) - 1);
-+ WREG32(VM_CONTEXT0_PAGE_TABLE_END_ADDR, rdev->mc.gtt_end >> 12);
- WREG32(VM_CONTEXT0_PAGE_TABLE_BASE_ADDR, rdev->gart.table_addr >> 12);
- WREG32(VM_CONTEXT0_CNTL, ENABLE_CONTEXT | PAGE_TABLE_DEPTH(0) |
- RANGE_PROTECTION_FAULT_ENABLE_DEFAULT);
---- a/drivers/gpu/drm/radeon/ni.c
-+++ b/drivers/gpu/drm/radeon/ni.c
-@@ -1075,7 +1075,7 @@ int cayman_pcie_gart_enable(struct radeo
- L2_CACHE_BIGK_FRAGMENT_SIZE(6));
- /* setup context0 */
- WREG32(VM_CONTEXT0_PAGE_TABLE_START_ADDR, rdev->mc.gtt_start >> 12);
-- WREG32(VM_CONTEXT0_PAGE_TABLE_END_ADDR, (rdev->mc.gtt_end >> 12) - 1);
-+ WREG32(VM_CONTEXT0_PAGE_TABLE_END_ADDR, rdev->mc.gtt_end >> 12);
- WREG32(VM_CONTEXT0_PAGE_TABLE_BASE_ADDR, rdev->gart.table_addr >> 12);
- WREG32(VM_CONTEXT0_PROTECTION_FAULT_DEFAULT_ADDR,
- (u32)(rdev->dummy_page.addr >> 12));
---- a/drivers/gpu/drm/radeon/r600.c
-+++ b/drivers/gpu/drm/radeon/r600.c
-@@ -930,7 +930,7 @@ int r600_pcie_gart_enable(struct radeon_
- WREG32(MC_VM_L1_TLB_MCB_RD_SEM_CNTL, tmp | ENABLE_SEMAPHORE_MODE);
- WREG32(MC_VM_L1_TLB_MCB_WR_SEM_CNTL, tmp | ENABLE_SEMAPHORE_MODE);
- WREG32(VM_CONTEXT0_PAGE_TABLE_START_ADDR, rdev->mc.gtt_start >> 12);
-- WREG32(VM_CONTEXT0_PAGE_TABLE_END_ADDR, (rdev->mc.gtt_end >> 12) - 1);
-+ WREG32(VM_CONTEXT0_PAGE_TABLE_END_ADDR, rdev->mc.gtt_end >> 12);
- WREG32(VM_CONTEXT0_PAGE_TABLE_BASE_ADDR, rdev->gart.table_addr >> 12);
- WREG32(VM_CONTEXT0_CNTL, ENABLE_CONTEXT | PAGE_TABLE_DEPTH(0) |
- RANGE_PROTECTION_FAULT_ENABLE_DEFAULT);
---- a/drivers/gpu/drm/radeon/rv770.c
-+++ b/drivers/gpu/drm/radeon/rv770.c
-@@ -158,7 +158,7 @@ int rv770_pcie_gart_enable(struct radeon
- WREG32(MC_VM_MB_L1_TLB2_CNTL, tmp);
- WREG32(MC_VM_MB_L1_TLB3_CNTL, tmp);
- WREG32(VM_CONTEXT0_PAGE_TABLE_START_ADDR, rdev->mc.gtt_start >> 12);
-- WREG32(VM_CONTEXT0_PAGE_TABLE_END_ADDR, (rdev->mc.gtt_end >> 12) - 1);
-+ WREG32(VM_CONTEXT0_PAGE_TABLE_END_ADDR, rdev->mc.gtt_end >> 12);
- WREG32(VM_CONTEXT0_PAGE_TABLE_BASE_ADDR, rdev->gart.table_addr >> 12);
- WREG32(VM_CONTEXT0_CNTL, ENABLE_CONTEXT | PAGE_TABLE_DEPTH(0) |
- RANGE_PROTECTION_FAULT_ENABLE_DEFAULT);
---- a/drivers/gpu/drm/radeon/si.c
-+++ b/drivers/gpu/drm/radeon/si.c
-@@ -2537,7 +2537,7 @@ int si_pcie_gart_enable(struct radeon_de
- L2_CACHE_BIGK_FRAGMENT_SIZE(0));
- /* setup context0 */
- WREG32(VM_CONTEXT0_PAGE_TABLE_START_ADDR, rdev->mc.gtt_start >> 12);
-- WREG32(VM_CONTEXT0_PAGE_TABLE_END_ADDR, (rdev->mc.gtt_end >> 12) - 1);
-+ WREG32(VM_CONTEXT0_PAGE_TABLE_END_ADDR, rdev->mc.gtt_end >> 12);
- WREG32(VM_CONTEXT0_PAGE_TABLE_BASE_ADDR, rdev->gart.table_addr >> 12);
- WREG32(VM_CONTEXT0_PROTECTION_FAULT_DEFAULT_ADDR,
- (u32)(rdev->dummy_page.addr >> 12));
diff --git a/patches/drm-radeon-take-the-mode_config-mutex-when-dealing-with-hpds-v2.patch b/patches/drm-radeon-take-the-mode_config-mutex-when-dealing-with-hpds-v2.patch
deleted file mode 100644
index 2fc52fe..0000000
--- a/patches/drm-radeon-take-the-mode_config-mutex-when-dealing-with-hpds-v2.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 39fa10f7e21574a70cecf1fed0f9b36535aa68a0 Mon Sep 17 00:00:00 2001
-From: Alex Deucher <alexander.deucher@amd.com>
-Date: Fri, 15 May 2015 11:48:52 -0400
-Subject: drm/radeon: take the mode_config mutex when dealing with hpds (v2)
-
-commit 39fa10f7e21574a70cecf1fed0f9b36535aa68a0 upstream.
-
-Since we are messing with state in the worker.
-
-v2: drop the changes in the mst worker
-
-Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- drivers/gpu/drm/radeon/radeon_irq_kms.c | 2 ++
- 1 file changed, 2 insertions(+)
-
---- a/drivers/gpu/drm/radeon/radeon_irq_kms.c
-+++ b/drivers/gpu/drm/radeon/radeon_irq_kms.c
-@@ -51,10 +51,12 @@ static void radeon_hotplug_work_func(str
- struct drm_mode_config *mode_config = &dev->mode_config;
- struct drm_connector *connector;
-
-+ mutex_lock(&mode_config->mutex);
- if (mode_config->num_connector) {
- list_for_each_entry(connector, &mode_config->connector_list, head)
- radeon_connector_hotplug(connector);
- }
-+ mutex_unlock(&mode_config->mutex);
- /* Just fire off a uevent and let userspace tell us what to do */
- drm_helper_hpd_irq_event(dev);
- }
diff --git a/patches/ext4-call-sync_blockdev-before-invalidate_bdev-in-put_super.patch b/patches/ext4-call-sync_blockdev-before-invalidate_bdev-in-put_super.patch
deleted file mode 100644
index a3ede05..0000000
--- a/patches/ext4-call-sync_blockdev-before-invalidate_bdev-in-put_super.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 89d96a6f8e6491f24fc8f99fd6ae66820e85c6c1 Mon Sep 17 00:00:00 2001
-From: Theodore Ts'o <tytso@mit.edu>
-Date: Sat, 20 Jun 2015 22:50:33 -0400
-Subject: ext4: call sync_blockdev() before invalidate_bdev() in put_super()
-
-commit 89d96a6f8e6491f24fc8f99fd6ae66820e85c6c1 upstream.
-
-Normally all of the buffers will have been forced out to disk before
-we call invalidate_bdev(), but there will be some cases, where a file
-system operation was aborted due to an ext4_error(), where there may
-still be some dirty buffers in the buffer cache for the device. So
-try to force them out to memory before calling invalidate_bdev().
-
-This fixes a warning triggered by generic/081:
-
-WARNING: CPU: 1 PID: 3473 at /usr/projects/linux/ext4/fs/block_dev.c:56 __blkdev_put+0xb5/0x16f()
-
-Signed-off-by: Theodore Ts'o <tytso@mit.edu>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- fs/ext4/super.c | 1 +
- 1 file changed, 1 insertion(+)
-
---- a/fs/ext4/super.c
-+++ b/fs/ext4/super.c
-@@ -888,6 +888,7 @@ static void ext4_put_super(struct super_
- dump_orphan_list(sb, sbi);
- J_ASSERT(list_empty(&sbi->s_orphan));
-
-+ sync_blockdev(sb->s_bdev);
- invalidate_bdev(sb->s_bdev);
- if (sbi->journal_bdev && sbi->journal_bdev != sb->s_bdev) {
- /*
diff --git a/patches/ext4-don-t-retry-file-block-mapping-on-bigalloc-fs-with-non-extent-file.patch b/patches/ext4-don-t-retry-file-block-mapping-on-bigalloc-fs-with-non-extent-file.patch
deleted file mode 100644
index 1c107d7..0000000
--- a/patches/ext4-don-t-retry-file-block-mapping-on-bigalloc-fs-with-non-extent-file.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 292db1bc6c105d86111e858859456bcb11f90f91 Mon Sep 17 00:00:00 2001
-From: "Darrick J. Wong" <darrick.wong@oracle.com>
-Date: Sun, 21 Jun 2015 21:10:51 -0400
-Subject: ext4: don't retry file block mapping on bigalloc fs with non-extent
- file
-
-commit 292db1bc6c105d86111e858859456bcb11f90f91 upstream.
-
-ext4 isn't willing to map clusters to a non-extent file. Don't signal
-this with an out of space error, since the FS will retry the
-allocation (which didn't fail) forever. Instead, return EUCLEAN so
-that the operation will fail immediately all the way back to userspace.
-
-(The fix is either to run e2fsck -E bmap2extent, or to chattr +e the file.)
-
-Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
-Signed-off-by: Theodore Ts'o <tytso@mit.edu>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- fs/ext4/indirect.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/fs/ext4/indirect.c
-+++ b/fs/ext4/indirect.c
-@@ -705,7 +705,7 @@ int ext4_ind_map_blocks(handle_t *handle
- EXT4_FEATURE_RO_COMPAT_BIGALLOC)) {
- EXT4_ERROR_INODE(inode, "Can't allocate blocks for "
- "non-extent mapped inodes with bigalloc");
-- return -ENOSPC;
-+ return -EUCLEAN;
- }
-
- goal = ext4_find_goal(inode, map->m_lblk, partial);
diff --git a/patches/ext4-fix-race-between-truncate-and-__ext4_journalled_writepage.patch b/patches/ext4-fix-race-between-truncate-and-__ext4_journalled_writepage.patch
deleted file mode 100644
index a8b96ea..0000000
--- a/patches/ext4-fix-race-between-truncate-and-__ext4_journalled_writepage.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-From bdf96838aea6a265f2ae6cbcfb12a778c84a0b8e Mon Sep 17 00:00:00 2001
-From: Theodore Ts'o <tytso@mit.edu>
-Date: Fri, 12 Jun 2015 23:45:33 -0400
-Subject: ext4: fix race between truncate and __ext4_journalled_writepage()
-
-commit bdf96838aea6a265f2ae6cbcfb12a778c84a0b8e upstream.
-
-The commit cf108bca465d: "ext4: Invert the locking order of page_lock
-and transaction start" caused __ext4_journalled_writepage() to drop
-the page lock before the page was written back, as part of changing
-the locking order to jbd2_journal_start -> page_lock. However, this
-introduced a potential race if there was a truncate racing with the
-data=journalled writeback mode.
-
-Fix this by grabbing the page lock after starting the journal handle,
-and then checking to see if page had gotten truncated out from under
-us.
-
-This fixes a number of different warnings or BUG_ON's when running
-xfstests generic/086 in data=journalled mode, including:
-
-jbd2_journal_dirty_metadata: vdc-8: bad jh for block 115643: transaction (ee3fe7
-c0, 164), jh->b_transaction ( (null), 0), jh->b_next_transaction ( (null), 0), jlist 0
-
- - and -
-
-kernel BUG at /usr/projects/linux/ext4/fs/jbd2/transaction.c:2200!
- ...
-Call Trace:
- [<c02b2ded>] ? __ext4_journalled_invalidatepage+0x117/0x117
- [<c02b2de5>] __ext4_journalled_invalidatepage+0x10f/0x117
- [<c02b2ded>] ? __ext4_journalled_invalidatepage+0x117/0x117
- [<c027d883>] ? lock_buffer+0x36/0x36
- [<c02b2dfa>] ext4_journalled_invalidatepage+0xd/0x22
- [<c0229139>] do_invalidatepage+0x22/0x26
- [<c0229198>] truncate_inode_page+0x5b/0x85
- [<c022934b>] truncate_inode_pages_range+0x156/0x38c
- [<c0229592>] truncate_inode_pages+0x11/0x15
- [<c022962d>] truncate_pagecache+0x55/0x71
- [<c02b913b>] ext4_setattr+0x4a9/0x560
- [<c01ca542>] ? current_kernel_time+0x10/0x44
- [<c026c4d8>] notify_change+0x1c7/0x2be
- [<c0256a00>] do_truncate+0x65/0x85
- [<c0226f31>] ? file_ra_state_init+0x12/0x29
-
- - and -
-
-WARNING: CPU: 1 PID: 1331 at /usr/projects/linux/ext4/fs/jbd2/transaction.c:1396
-irty_metadata+0x14a/0x1ae()
- ...
-Call Trace:
- [<c01b879f>] ? console_unlock+0x3a1/0x3ce
- [<c082cbb4>] dump_stack+0x48/0x60
- [<c0178b65>] warn_slowpath_common+0x89/0xa0
- [<c02ef2cf>] ? jbd2_journal_dirty_metadata+0x14a/0x1ae
- [<c0178bef>] warn_slowpath_null+0x14/0x18
- [<c02ef2cf>] jbd2_journal_dirty_metadata+0x14a/0x1ae
- [<c02d8615>] __ext4_handle_dirty_metadata+0xd4/0x19d
- [<c02b2f44>] write_end_fn+0x40/0x53
- [<c02b4a16>] ext4_walk_page_buffers+0x4e/0x6a
- [<c02b59e7>] ext4_writepage+0x354/0x3b8
- [<c02b2f04>] ? mpage_release_unused_pages+0xd4/0xd4
- [<c02b1b21>] ? wait_on_buffer+0x2c/0x2c
- [<c02b5a4b>] ? ext4_writepage+0x3b8/0x3b8
- [<c02b5a5b>] __writepage+0x10/0x2e
- [<c0225956>] write_cache_pages+0x22d/0x32c
- [<c02b5a4b>] ? ext4_writepage+0x3b8/0x3b8
- [<c02b6ee8>] ext4_writepages+0x102/0x607
- [<c019adfe>] ? sched_clock_local+0x10/0x10e
- [<c01a8a7c>] ? __lock_is_held+0x2e/0x44
- [<c01a8ad5>] ? lock_is_held+0x43/0x51
- [<c0226dff>] do_writepages+0x1c/0x29
- [<c0276bed>] __writeback_single_inode+0xc3/0x545
- [<c0277c07>] writeback_sb_inodes+0x21f/0x36d
- ...
-
-Signed-off-by: Theodore Ts'o <tytso@mit.edu>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- fs/ext4/inode.c | 22 +++++++++++++++++++---
- 1 file changed, 19 insertions(+), 3 deletions(-)
-
---- a/fs/ext4/inode.c
-+++ b/fs/ext4/inode.c
-@@ -1848,18 +1848,32 @@ static int __ext4_journalled_writepage(s
- page_bufs = page_buffers(page);
- BUG_ON(!page_bufs);
- walk_page_buffers(handle, page_bufs, 0, len, NULL, bget_one);
-- /* As soon as we unlock the page, it can go away, but we have
-- * references to buffers so we are safe */
-+ /*
-+ * We need to release the page lock before we start the
-+ * journal, so grab a reference so the page won't disappear
-+ * out from under us.
-+ */
-+ get_page(page);
- unlock_page(page);
-
- handle = ext4_journal_start(inode, ext4_writepage_trans_blocks(inode));
- if (IS_ERR(handle)) {
- ret = PTR_ERR(handle);
-- goto out;
-+ put_page(page);
-+ goto out_no_pagelock;
- }
-
- BUG_ON(!ext4_handle_valid(handle));
-
-+ lock_page(page);
-+ put_page(page);
-+ if (page->mapping != mapping) {
-+ /* The page got truncated from under us */
-+ ext4_journal_stop(handle);
-+ ret = 0;
-+ goto out;
-+ }
-+
- ret = walk_page_buffers(handle, page_bufs, 0, len, NULL,
- do_journal_get_write_access);
-
-@@ -1875,6 +1889,8 @@ static int __ext4_journalled_writepage(s
- walk_page_buffers(handle, page_bufs, 0, len, NULL, bput_one);
- ext4_set_inode_state(inode, EXT4_STATE_JDATA);
- out:
-+ unlock_page(page);
-+out_no_pagelock:
- return ret;
- }
-
diff --git a/patches/failing-to-send-a-close-if-file-is-opened-wronly-and-server-reboots-on-a-4.x-mount.patch b/patches/failing-to-send-a-close-if-file-is-opened-wronly-and-server-reboots-on-a-4.x-mount.patch
deleted file mode 100644
index 9abed3d..0000000
--- a/patches/failing-to-send-a-close-if-file-is-opened-wronly-and-server-reboots-on-a-4.x-mount.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From a41cbe86df3afbc82311a1640e20858c0cd7e065 Mon Sep 17 00:00:00 2001
-From: Olga Kornievskaia <aglo@umich.edu>
-Date: Mon, 14 Sep 2015 19:54:36 -0400
-Subject: Failing to send a CLOSE if file is opened WRONLY and server reboots
- on a 4.x mount
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit a41cbe86df3afbc82311a1640e20858c0cd7e065 upstream.
-
-A test case is as the description says:
-open(foobar, O_WRONLY);
-sleep() --> reboot the server
-close(foobar)
-
-The bug is because in nfs4state.c in nfs4_reclaim_open_state() a few
-line before going to restart, there is
-clear_bit(NFS4CLNT_RECLAIM_NOGRACE, &state->flags).
-
-NFS4CLNT_RECLAIM_NOGRACE is a flag for the client states not open
-owner states. Value of NFS4CLNT_RECLAIM_NOGRACE is 4 which is the
-value of NFS_O_WRONLY_STATE in nfs4_state->flags. So clearing it wipes
-out state and when we go to close it, “call_close” doesn’t get set as
-state flag is not set and CLOSE doesn’t go on the wire.
-
-Signed-off-by: Olga Kornievskaia <aglo@umich.edu>
-Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- fs/nfs/nfs4state.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/fs/nfs/nfs4state.c
-+++ b/fs/nfs/nfs4state.c
-@@ -1279,7 +1279,7 @@ restart:
- }
- spin_unlock(&state->state_lock);
- nfs4_put_open_state(state);
-- clear_bit(NFS4CLNT_RECLAIM_NOGRACE,
-+ clear_bit(NFS_STATE_RECLAIM_NOGRACE,
- &state->flags);
- goto restart;
- }
diff --git a/patches/fixing-infinite-open-loop-in-4.0-stateid-recovery.patch b/patches/fixing-infinite-open-loop-in-4.0-stateid-recovery.patch
deleted file mode 100644
index bc9dd00..0000000
--- a/patches/fixing-infinite-open-loop-in-4.0-stateid-recovery.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From e8d975e73e5fa05f983fbf2723120edcf68e0b38 Mon Sep 17 00:00:00 2001
-From: Olga Kornievskaia <kolga@netapp.com>
-Date: Fri, 15 May 2015 11:45:31 -0400
-Subject: fixing infinite OPEN loop in 4.0 stateid recovery
-
-commit e8d975e73e5fa05f983fbf2723120edcf68e0b38 upstream.
-
-Problem: When an operation like WRITE receives a BAD_STATEID, even though
-recovery code clears the RECLAIM_NOGRACE recovery flag before recovering
-the open state, because of clearing delegation state for the associated
-inode, nfs_inode_find_state_and_recover() gets called and it makes the
-same state with RECLAIM_NOGRACE flag again. As a results, when we restart
-looking over the open states, we end up in the infinite loop instead of
-breaking out in the next test of state flags.
-
-Solution: unset the RECLAIM_NOGRACE set because of
-calling of nfs_inode_find_state_and_recover() after returning from calling
-recover_open() function.
-
-Signed-off-by: Olga Kornievskaia <kolga@netapp.com>
-Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
-[lizf: Backported to 3.4: adjust context]
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- fs/nfs/nfs4state.c | 2 ++
- 1 file changed, 2 insertions(+)
-
---- a/fs/nfs/nfs4state.c
-+++ b/fs/nfs/nfs4state.c
-@@ -1279,6 +1279,8 @@ restart:
- }
- spin_unlock(&state->state_lock);
- nfs4_put_open_state(state);
-+ clear_bit(NFS4CLNT_RECLAIM_NOGRACE,
-+ &state->flags);
- goto restart;
- }
- }
diff --git a/patches/fuse-initialize-fc-release-before-calling-it.patch b/patches/fuse-initialize-fc-release-before-calling-it.patch
deleted file mode 100644
index 5661675..0000000
--- a/patches/fuse-initialize-fc-release-before-calling-it.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 0ad0b3255a08020eaf50e34ef0d6df5bdf5e09ed Mon Sep 17 00:00:00 2001
-From: Miklos Szeredi <mszeredi@suse.cz>
-Date: Wed, 1 Jul 2015 16:25:55 +0200
-Subject: fuse: initialize fc->release before calling it
-
-commit 0ad0b3255a08020eaf50e34ef0d6df5bdf5e09ed upstream.
-
-fc->release is called from fuse_conn_put() which was used in the error
-cleanup before fc->release was initialized.
-
-[Jeremiah Mahler <jmmahler@gmail.com>: assign fc->release after calling
-fuse_conn_init(fc) instead of before.]
-
-Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
-Fixes: a325f9b92273 ("fuse: update fuse_conn_init() and separate out fuse_conn_kill()")
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- fs/fuse/inode.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/fs/fuse/inode.c
-+++ b/fs/fuse/inode.c
-@@ -981,6 +981,7 @@ static int fuse_fill_super(struct super_
- goto err_fput;
-
- fuse_conn_init(fc);
-+ fc->release = fuse_free_conn;
-
- fc->dev = sb->s_dev;
- fc->sb = sb;
-@@ -995,7 +996,6 @@ static int fuse_fill_super(struct super_
- fc->dont_mask = 1;
- sb->s_flags |= MS_POSIXACL;
-
-- fc->release = fuse_free_conn;
- fc->flags = d.flags;
- fc->user_id = d.user_id;
- fc->group_id = d.group_id;
diff --git a/patches/hrtimer-allow-concurrent-hrtimer_start-for-self-restarting-timers.patch b/patches/hrtimer-allow-concurrent-hrtimer_start-for-self-restarting-timers.patch
deleted file mode 100644
index 6b57d2a..0000000
--- a/patches/hrtimer-allow-concurrent-hrtimer_start-for-self-restarting-timers.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 5de2755c8c8b3a6b8414870e2c284914a2b42e4d Mon Sep 17 00:00:00 2001
-From: Peter Zijlstra <peterz@infradead.org>
-Date: Tue, 20 May 2014 15:49:48 +0200
-Subject: hrtimer: Allow concurrent hrtimer_start() for self restarting timers
-
-commit 5de2755c8c8b3a6b8414870e2c284914a2b42e4d upstream.
-
-Because we drop cpu_base->lock around calling hrtimer::function, it is
-possible for hrtimer_start() to come in between and enqueue the timer.
-
-If hrtimer::function then returns HRTIMER_RESTART we'll hit the BUG_ON
-because HRTIMER_STATE_ENQUEUED will be set.
-
-Since the above is a perfectly valid scenario, remove the BUG_ON and
-make the enqueue_hrtimer() call conditional on the timer not being
-enqueued already.
-
-NOTE: in that concurrent scenario its entirely common for both sites
-to want to modify the hrtimer, since hrtimers don't provide
-serialization themselves be sure to provide some such that the
-hrtimer::function and the hrtimer_start() caller don't both try and
-fudge the expiration state at the same time.
-
-To that effect, add a WARN when someone tries to forward an already
-enqueued timer, the most common way to change the expiry of self
-restarting timers. Ideally we'd put the WARN in everything modifying
-the expiry but most of that is inlines and we don't need the bloat.
-
-Fixes: 2d44ae4d7135 ("hrtimer: clean up cpu->base locking tricks")
-Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
-Cc: Ben Segall <bsegall@google.com>
-Cc: Roman Gushchin <klamm@yandex-team.ru>
-Cc: Paul Turner <pjt@google.com>
-Link: http://lkml.kernel.org/r/20150415113105.GT5029@twins.programming.kicks-ass.net
-Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- kernel/hrtimer.c | 12 +++++++++---
- 1 file changed, 9 insertions(+), 3 deletions(-)
-
---- a/kernel/hrtimer.c
-+++ b/kernel/hrtimer.c
-@@ -853,6 +853,9 @@ u64 hrtimer_forward(struct hrtimer *time
- if (delta.tv64 < 0)
- return 0;
-
-+ if (WARN_ON(timer->state & HRTIMER_STATE_ENQUEUED))
-+ return 0;
-+
- if (interval.tv64 < timer->base->resolution.tv64)
- interval.tv64 = timer->base->resolution.tv64;
-
-@@ -1265,11 +1268,14 @@ static void __run_hrtimer(struct hrtimer
- * Note: We clear the CALLBACK bit after enqueue_hrtimer and
- * we do not reprogramm the event hardware. Happens either in
- * hrtimer_start_range_ns() or in hrtimer_interrupt()
-+ *
-+ * Note: Because we dropped the cpu_base->lock above,
-+ * hrtimer_start_range_ns() can have popped in and enqueued the timer
-+ * for us already.
- */
-- if (restart != HRTIMER_NORESTART) {
-- BUG_ON(timer->state != HRTIMER_STATE_CALLBACK);
-+ if (restart != HRTIMER_NORESTART &&
-+ !(timer->state & HRTIMER_STATE_ENQUEUED))
- enqueue_hrtimer(timer, base);
-- }
-
- WARN_ON_ONCE(!(timer->state & HRTIMER_STATE_CALLBACK));
-
diff --git a/patches/ib-qib-change-lkey-table-allocation-to-support-more-mrs.patch b/patches/ib-qib-change-lkey-table-allocation-to-support-more-mrs.patch
deleted file mode 100644
index 6799a4d..0000000
--- a/patches/ib-qib-change-lkey-table-allocation-to-support-more-mrs.patch
+++ /dev/null
@@ -1,119 +0,0 @@
-From 9f386b43b12b8051a610e790c74865e83a8804cd Mon Sep 17 00:00:00 2001
-From: Mike Marciniszyn <mike.marciniszyn@intel.com>
-Date: Fri, 9 Oct 2015 01:12:28 +0100
-Subject: [PATCH] IB/qib: Change lkey table allocation to support more MRs
-
-commit d6f1c17e162b2a11e708f28fa93f2f79c164b442 upstream.
-
-The lkey table is allocated with with a get_user_pages() with an
-order based on a number of index bits from a module parameter.
-
-The underlying kernel code cannot allocate that many contiguous pages.
-
-There is no reason the underlying memory needs to be physically
-contiguous.
-
-This patch:
-- switches the allocation/deallocation to vmalloc/vfree
-- caps the number of bits to 23 to insure at least 1 generation bit
- o this matches the module parameter description
-
-Reviewed-by: Vinit Agnihotri <vinit.abhay.agnihotri@intel.com>
-Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
-Signed-off-by: Doug Ledford <dledford@redhat.com>
-[bwh: Backported to 3.2:
- - Adjust context
- - Add definition of qib_dev_warn(), added upstream by commit ddb887658970
- ("IB/qib: Convert opcode counters to per-context")]
-Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- drivers/infiniband/hw/qib/qib.h | 4 ++++
- drivers/infiniband/hw/qib/qib_keys.c | 4 ++++
- drivers/infiniband/hw/qib/qib_verbs.c | 14 ++++++++++----
- drivers/infiniband/hw/qib/qib_verbs.h | 2 ++
- 4 files changed, 20 insertions(+), 4 deletions(-)
-
---- a/drivers/infiniband/hw/qib/qib.h
-+++ b/drivers/infiniband/hw/qib/qib.h
-@@ -1429,6 +1429,10 @@ extern struct mutex qib_mutex;
- qib_get_unit_name((dd)->unit), ##__VA_ARGS__); \
- } while (0)
-
-+#define qib_dev_warn(dd, fmt, ...) \
-+ dev_warn(&(dd)->pcidev->dev, "%s: " fmt, \
-+ qib_get_unit_name((dd)->unit), ##__VA_ARGS__)
-+
- #define qib_dev_porterr(dd, port, fmt, ...) \
- do { \
- dev_err(&(dd)->pcidev->dev, "%s: IB%u:%u " fmt, \
---- a/drivers/infiniband/hw/qib/qib_keys.c
-+++ b/drivers/infiniband/hw/qib/qib_keys.c
-@@ -69,6 +69,10 @@ int qib_alloc_lkey(struct qib_lkey_table
- * unrestricted LKEY.
- */
- rkt->gen++;
-+ /*
-+ * bits are capped in qib_verbs.c to insure enough bits
-+ * for generation number
-+ */
- mr->lkey = (r << (32 - ib_qib_lkey_table_size)) |
- ((((1 << (24 - ib_qib_lkey_table_size)) - 1) & rkt->gen)
- << 8);
---- a/drivers/infiniband/hw/qib/qib_verbs.c
-+++ b/drivers/infiniband/hw/qib/qib_verbs.c
-@@ -40,6 +40,7 @@
- #include <linux/rculist.h>
- #include <linux/mm.h>
- #include <linux/random.h>
-+#include <linux/vmalloc.h>
-
- #include "qib.h"
- #include "qib_common.h"
-@@ -2058,10 +2059,16 @@ int qib_register_ib_device(struct qib_de
- * the LKEY). The remaining bits act as a generation number or tag.
- */
- spin_lock_init(&dev->lk_table.lock);
-+ /* insure generation is at least 4 bits see keys.c */
-+ if (ib_qib_lkey_table_size > MAX_LKEY_TABLE_BITS) {
-+ qib_dev_warn(dd, "lkey bits %u too large, reduced to %u\n",
-+ ib_qib_lkey_table_size, MAX_LKEY_TABLE_BITS);
-+ ib_qib_lkey_table_size = MAX_LKEY_TABLE_BITS;
-+ }
- dev->lk_table.max = 1 << ib_qib_lkey_table_size;
- lk_tab_size = dev->lk_table.max * sizeof(*dev->lk_table.table);
- dev->lk_table.table = (struct qib_mregion **)
-- __get_free_pages(GFP_KERNEL, get_order(lk_tab_size));
-+ vmalloc(lk_tab_size);
- if (dev->lk_table.table == NULL) {
- ret = -ENOMEM;
- goto err_lk;
-@@ -2231,7 +2238,7 @@ err_tx:
- sizeof(struct qib_pio_header),
- dev->pio_hdrs, dev->pio_hdrs_phys);
- err_hdrs:
-- free_pages((unsigned long) dev->lk_table.table, get_order(lk_tab_size));
-+ vfree(dev->lk_table.table);
- err_lk:
- kfree(dev->qp_table);
- err_qpt:
-@@ -2285,7 +2292,6 @@ void qib_unregister_ib_device(struct qib
- sizeof(struct qib_pio_header),
- dev->pio_hdrs, dev->pio_hdrs_phys);
- lk_tab_size = dev->lk_table.max * sizeof(*dev->lk_table.table);
-- free_pages((unsigned long) dev->lk_table.table,
-- get_order(lk_tab_size));
-+ vfree(dev->lk_table.table);
- kfree(dev->qp_table);
- }
---- a/drivers/infiniband/hw/qib/qib_verbs.h
-+++ b/drivers/infiniband/hw/qib/qib_verbs.h
-@@ -622,6 +622,8 @@ struct qib_qpn_table {
- struct qpn_map map[QPNMAP_ENTRIES];
- };
-
-+#define MAX_LKEY_TABLE_BITS 23
-+
- struct qib_lkey_table {
- spinlock_t lock; /* protect changes in this struct */
- u32 next; /* next unused index (speeds search) */
diff --git a/patches/ideapad-fix-software-rfkill-setting.patch b/patches/ideapad-fix-software-rfkill-setting.patch
deleted file mode 100644
index e3bf7dc..0000000
--- a/patches/ideapad-fix-software-rfkill-setting.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 4b200b4604bec3388426159f1656109d19fadf6e Mon Sep 17 00:00:00 2001
-From: Arnd Bergmann <arnd@arndb.de>
-Date: Sat, 13 Jun 2015 15:23:33 +0200
-Subject: ideapad: fix software rfkill setting
-
-commit 4b200b4604bec3388426159f1656109d19fadf6e upstream.
-
-This fixes a several year old regression that I found while trying
-to get the Yoga 3 11 to work. The ideapad_rfk_set function is meant
-to send a command to the embedded controller through ACPI, but
-as of c1f73658ed, it sends the index of the rfkill device instead
-of the command, and ignores the opcode field.
-
-This changes it back to the original behavior, which indeed
-flips the rfkill state as seen in the debugfs interface.
-
-Signed-off-by: Arnd Bergmann <arnd@arndb.de>
-Fixes: c1f73658ed ("ideapad: pass ideapad_priv as argument (part 2)")
-Signed-off-by: Darren Hart <dvhart@linux.intel.com>
-[lizf: Backported to 3.4: @data is not a pointer but the device idx]
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- drivers/platform/x86/ideapad-laptop.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
---- a/drivers/platform/x86/ideapad-laptop.c
-+++ b/drivers/platform/x86/ideapad-laptop.c
-@@ -407,7 +407,8 @@ const struct ideapad_rfk_data ideapad_rf
-
- static int ideapad_rfk_set(void *data, bool blocked)
- {
-- unsigned long opcode = (unsigned long)data;
-+ unsigned long dev = (unsigned long)data;
-+ int opcode = ideapad_rfk_data[dev].opcode;
-
- return write_ec_cmd(ideapad_handle, opcode, !blocked);
- }
diff --git a/patches/ipr-increase-default-adapter-init-stage-change-timeout.patch b/patches/ipr-increase-default-adapter-init-stage-change-timeout.patch
deleted file mode 100644
index 6410d7e..0000000
--- a/patches/ipr-increase-default-adapter-init-stage-change-timeout.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 45c44b5ff9caa743ed9c2bfd44307c536c9caf1e Mon Sep 17 00:00:00 2001
-From: Brian King <brking@linux.vnet.ibm.com>
-Date: Wed, 13 May 2015 08:50:27 -0500
-Subject: ipr: Increase default adapter init stage change timeout
-
-commit 45c44b5ff9caa743ed9c2bfd44307c536c9caf1e upstream.
-
-Increase the default init stage change timeout from 15 seconds to 30 seconds.
-This resolves issues we have seen with some adapters not transitioning
-to the first init stage within 15 seconds, which results in adapter
-initialization failures.
-
-Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
-Signed-off-by: James Bottomley <JBottomley@Odin.com>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- drivers/scsi/ipr.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/scsi/ipr.h
-+++ b/drivers/scsi/ipr.h
-@@ -251,7 +251,7 @@
- #define IPR_RUNTIME_RESET 0x40000000
-
- #define IPR_IPL_INIT_MIN_STAGE_TIME 5
--#define IPR_IPL_INIT_DEFAULT_STAGE_TIME 15
-+#define IPR_IPL_INIT_DEFAULT_STAGE_TIME 30
- #define IPR_IPL_INIT_STAGE_UNKNOWN 0x0
- #define IPR_IPL_INIT_STAGE_TRANSOP 0xB0000000
- #define IPR_IPL_INIT_STAGE_MASK 0xff000000
diff --git a/patches/jbd2-avoid-infinite-loop-when-destroying-aborted-journal.patch b/patches/jbd2-avoid-infinite-loop-when-destroying-aborted-journal.patch
deleted file mode 100644
index eaaa1b5..0000000
--- a/patches/jbd2-avoid-infinite-loop-when-destroying-aborted-journal.patch
+++ /dev/null
@@ -1,171 +0,0 @@
-From 841df7df196237ea63233f0f9eaa41db53afd70f Mon Sep 17 00:00:00 2001
-From: Jan Kara <jack@suse.com>
-Date: Tue, 28 Jul 2015 14:57:14 -0400
-Subject: jbd2: avoid infinite loop when destroying aborted journal
-
-commit 841df7df196237ea63233f0f9eaa41db53afd70f upstream.
-
-Commit 6f6a6fda2945 "jbd2: fix ocfs2 corrupt when updating journal
-superblock fails" changed jbd2_cleanup_journal_tail() to return EIO
-when the journal is aborted. That makes logic in
-jbd2_log_do_checkpoint() bail out which is fine, except that
-jbd2_journal_destroy() expects jbd2_log_do_checkpoint() to always make
-a progress in cleaning the journal. Without it jbd2_journal_destroy()
-just loops in an infinite loop.
-
-Fix jbd2_journal_destroy() to cleanup journal checkpoint lists of
-jbd2_log_do_checkpoint() fails with error.
-
-Reported-by: Eryu Guan <guaneryu@gmail.com>
-Tested-by: Eryu Guan <guaneryu@gmail.com>
-Fixes: 6f6a6fda294506dfe0e3e0a253bb2d2923f28f0a
-Signed-off-by: Jan Kara <jack@suse.com>
-Signed-off-by: Theodore Ts'o <tytso@mit.edu>
-[lizf: Backported to 3.4: adjust context]
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- fs/jbd2/checkpoint.c | 39 +++++++++++++++++++++++++++++++++------
- fs/jbd2/commit.c | 2 +-
- fs/jbd2/journal.c | 11 ++++++++++-
- include/linux/jbd2.h | 3 ++-
- 4 files changed, 46 insertions(+), 9 deletions(-)
-
---- a/fs/jbd2/checkpoint.c
-+++ b/fs/jbd2/checkpoint.c
-@@ -467,14 +467,14 @@ int jbd2_cleanup_journal_tail(journal_t
- * journal_clean_one_cp_list
- *
- * Find all the written-back checkpoint buffers in the given list and
-- * release them.
-+ * release them. If 'destroy' is set, clean all buffers unconditionally.
- *
- * Called with the journal locked.
- * Called with j_list_lock held.
- * Returns number of buffers reaped (for debug)
- */
-
--static int journal_clean_one_cp_list(struct journal_head *jh, int *released)
-+static int journal_clean_one_cp_list(struct journal_head *jh, int *released, bool destroy)
- {
- struct journal_head *last_jh;
- struct journal_head *next_jh = jh;
-@@ -488,7 +488,10 @@ static int journal_clean_one_cp_list(str
- do {
- jh = next_jh;
- next_jh = jh->b_cpnext;
-- ret = __try_to_free_cp_buf(jh);
-+ if (!destroy)
-+ ret = __try_to_free_cp_buf(jh);
-+ else
-+ ret = __jbd2_journal_remove_checkpoint(jh) + 1;
- if (ret) {
- freed++;
- if (ret == 2) {
-@@ -514,12 +517,14 @@ static int journal_clean_one_cp_list(str
- *
- * Find all the written-back checkpoint buffers in the journal and release them.
- *
-+ * If 'destroy' is set, release all buffers unconditionally.
-+ *
- * Called with the journal locked.
- * Called with j_list_lock held.
- * Returns number of buffers reaped (for debug)
- */
-
--int __jbd2_journal_clean_checkpoint_list(journal_t *journal)
-+int __jbd2_journal_clean_checkpoint_list(journal_t *journal, bool destroy)
- {
- transaction_t *transaction, *last_transaction, *next_transaction;
- int ret = 0;
-@@ -535,7 +540,7 @@ int __jbd2_journal_clean_checkpoint_list
- transaction = next_transaction;
- next_transaction = transaction->t_cpnext;
- ret += journal_clean_one_cp_list(transaction->
-- t_checkpoint_list, &released);
-+ t_checkpoint_list, &released, destroy);
- /*
- * This function only frees up some memory if possible so we
- * dont have an obligation to finish processing. Bail out if
-@@ -551,7 +556,7 @@ int __jbd2_journal_clean_checkpoint_list
- * we can possibly see not yet submitted buffers on io_list
- */
- ret += journal_clean_one_cp_list(transaction->
-- t_checkpoint_io_list, &released);
-+ t_checkpoint_io_list, &released, destroy);
- if (need_resched())
- goto out;
- } while (transaction != last_transaction);
-@@ -560,6 +565,28 @@ out:
- }
-
- /*
-+ * Remove buffers from all checkpoint lists as journal is aborted and we just
-+ * need to free memory
-+ */
-+void jbd2_journal_destroy_checkpoint(journal_t *journal)
-+{
-+ /*
-+ * We loop because __jbd2_journal_clean_checkpoint_list() may abort
-+ * early due to a need of rescheduling.
-+ */
-+ while (1) {
-+ spin_lock(&journal->j_list_lock);
-+ if (!journal->j_checkpoint_transactions) {
-+ spin_unlock(&journal->j_list_lock);
-+ break;
-+ }
-+ __jbd2_journal_clean_checkpoint_list(journal, true);
-+ spin_unlock(&journal->j_list_lock);
-+ cond_resched();
-+ }
-+}
-+
-+/*
- * journal_remove_checkpoint: called after a buffer has been committed
- * to disk (either by being write-back flushed to disk, or being
- * committed to the log).
---- a/fs/jbd2/commit.c
-+++ b/fs/jbd2/commit.c
-@@ -438,7 +438,7 @@ void jbd2_journal_commit_transaction(jou
- * frees some memory
- */
- spin_lock(&journal->j_list_lock);
-- __jbd2_journal_clean_checkpoint_list(journal);
-+ __jbd2_journal_clean_checkpoint_list(journal, false);
- spin_unlock(&journal->j_list_lock);
-
- jbd_debug(3, "JBD2: commit phase 1\n");
---- a/fs/jbd2/journal.c
-+++ b/fs/jbd2/journal.c
-@@ -1591,8 +1591,17 @@ int jbd2_journal_destroy(journal_t *jour
- while (journal->j_checkpoint_transactions != NULL) {
- spin_unlock(&journal->j_list_lock);
- mutex_lock(&journal->j_checkpoint_mutex);
-- jbd2_log_do_checkpoint(journal);
-+ err = jbd2_log_do_checkpoint(journal);
- mutex_unlock(&journal->j_checkpoint_mutex);
-+ /*
-+ * If checkpointing failed, just free the buffers to avoid
-+ * looping forever
-+ */
-+ if (err) {
-+ jbd2_journal_destroy_checkpoint(journal);
-+ spin_lock(&journal->j_list_lock);
-+ break;
-+ }
- spin_lock(&journal->j_list_lock);
- }
-
---- a/include/linux/jbd2.h
-+++ b/include/linux/jbd2.h
-@@ -981,8 +981,9 @@ void jbd2_update_log_tail(journal_t *jou
- extern void jbd2_journal_commit_transaction(journal_t *);
-
- /* Checkpoint list management */
--int __jbd2_journal_clean_checkpoint_list(journal_t *journal);
-+int __jbd2_journal_clean_checkpoint_list(journal_t *journal, bool destroy);
- int __jbd2_journal_remove_checkpoint(struct journal_head *);
-+void jbd2_journal_destroy_checkpoint(journal_t *journal);
- void __jbd2_journal_insert_checkpoint(struct journal_head *, transaction_t *);
-
-
diff --git a/patches/jbd2-fix-ocfs2-corrupt-when-updating-journal-superblock-fails.patch b/patches/jbd2-fix-ocfs2-corrupt-when-updating-journal-superblock-fails.patch
deleted file mode 100644
index b7a3729..0000000
--- a/patches/jbd2-fix-ocfs2-corrupt-when-updating-journal-superblock-fails.patch
+++ /dev/null
@@ -1,194 +0,0 @@
-From 6f6a6fda294506dfe0e3e0a253bb2d2923f28f0a Mon Sep 17 00:00:00 2001
-From: Joseph Qi <joseph.qi@huawei.com>
-Date: Mon, 15 Jun 2015 14:36:01 -0400
-Subject: jbd2: fix ocfs2 corrupt when updating journal superblock fails
-
-commit 6f6a6fda294506dfe0e3e0a253bb2d2923f28f0a upstream.
-
-If updating journal superblock fails after journal data has been
-flushed, the error is omitted and this will mislead the caller as a
-normal case. In ocfs2, the checkpoint will be treated successfully
-and the other node can get the lock to update. Since the sb_start is
-still pointing to the old log block, it will rewrite the journal data
-during journal recovery by the other node. Thus the new updates will
-be overwritten and ocfs2 corrupts. So in above case we have to return
-the error, and ocfs2_commit_cache will take care of the error and
-prevent the other node to do update first. And only after recovering
-journal it can do the new updates.
-
-The issue discussion mail can be found at:
-https://oss.oracle.com/pipermail/ocfs2-devel/2015-June/010856.html
-http://comments.gmane.org/gmane.comp.file-systems.ext4/48841
-
-[ Fixed bug in patch which allowed a non-negative error return from
- jbd2_cleanup_journal_tail() to leak out of jbd2_fjournal_flush(); this
- was causing xfstests ext4/306 to fail. -- Ted ]
-
-Reported-by: Yiwen Jiang <jiangyiwen@huawei.com>
-Signed-off-by: Joseph Qi <joseph.qi@huawei.com>
-Signed-off-by: Theodore Ts'o <tytso@mit.edu>
-Tested-by: Yiwen Jiang <jiangyiwen@huawei.com>
-Cc: Junxiao Bi <junxiao.bi@oracle.com>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- fs/jbd2/checkpoint.c | 5 ++---
- fs/jbd2/journal.c | 38 +++++++++++++++++++++++++++++++-------
- include/linux/jbd2.h | 4 ++--
- 3 files changed, 35 insertions(+), 12 deletions(-)
-
---- a/fs/jbd2/checkpoint.c
-+++ b/fs/jbd2/checkpoint.c
-@@ -440,7 +440,7 @@ int jbd2_cleanup_journal_tail(journal_t
- unsigned long blocknr;
-
- if (is_journal_aborted(journal))
-- return 1;
-+ return -EIO;
-
- if (!jbd2_journal_get_log_tail(journal, &first_tid, &blocknr))
- return 1;
-@@ -457,8 +457,7 @@ int jbd2_cleanup_journal_tail(journal_t
- if (journal->j_flags & JBD2_BARRIER)
- blkdev_issue_flush(journal->j_fs_dev, GFP_NOFS, NULL);
-
-- __jbd2_update_log_tail(journal, first_tid, blocknr);
-- return 0;
-+ return __jbd2_update_log_tail(journal, first_tid, blocknr);
- }
-
-
---- a/fs/jbd2/journal.c
-+++ b/fs/jbd2/journal.c
-@@ -823,9 +823,10 @@ int jbd2_journal_get_log_tail(journal_t
- *
- * Requires j_checkpoint_mutex
- */
--void __jbd2_update_log_tail(journal_t *journal, tid_t tid, unsigned long block)
-+int __jbd2_update_log_tail(journal_t *journal, tid_t tid, unsigned long block)
- {
- unsigned long freed;
-+ int ret;
-
- BUG_ON(!mutex_is_locked(&journal->j_checkpoint_mutex));
-
-@@ -835,7 +836,10 @@ void __jbd2_update_log_tail(journal_t *j
- * space and if we lose sb update during power failure we'd replay
- * old transaction with possibly newly overwritten data.
- */
-- jbd2_journal_update_sb_log_tail(journal, tid, block, WRITE_FUA);
-+ ret = jbd2_journal_update_sb_log_tail(journal, tid, block, WRITE_FUA);
-+ if (ret)
-+ goto out;
-+
- write_lock(&journal->j_state_lock);
- freed = block - journal->j_tail;
- if (block < journal->j_tail)
-@@ -851,6 +855,9 @@ void __jbd2_update_log_tail(journal_t *j
- journal->j_tail_sequence = tid;
- journal->j_tail = block;
- write_unlock(&journal->j_state_lock);
-+
-+out:
-+ return ret;
- }
-
- /*
-@@ -1264,7 +1271,7 @@ static int journal_reset(journal_t *jour
- return jbd2_journal_start_thread(journal);
- }
-
--static void jbd2_write_superblock(journal_t *journal, int write_op)
-+static int jbd2_write_superblock(journal_t *journal, int write_op)
- {
- struct buffer_head *bh = journal->j_sb_buffer;
- int ret;
-@@ -1301,7 +1308,10 @@ static void jbd2_write_superblock(journa
- printk(KERN_ERR "JBD2: Error %d detected when updating "
- "journal superblock for %s.\n", ret,
- journal->j_devname);
-+ jbd2_journal_abort(journal, ret);
- }
-+
-+ return ret;
- }
-
- /**
-@@ -1314,10 +1324,11 @@ static void jbd2_write_superblock(journa
- * Update a journal's superblock information about log tail and write it to
- * disk, waiting for the IO to complete.
- */
--void jbd2_journal_update_sb_log_tail(journal_t *journal, tid_t tail_tid,
-+int jbd2_journal_update_sb_log_tail(journal_t *journal, tid_t tail_tid,
- unsigned long tail_block, int write_op)
- {
- journal_superblock_t *sb = journal->j_superblock;
-+ int ret;
-
- BUG_ON(!mutex_is_locked(&journal->j_checkpoint_mutex));
- jbd_debug(1, "JBD2: updating superblock (start %lu, seq %u)\n",
-@@ -1326,13 +1337,18 @@ void jbd2_journal_update_sb_log_tail(jou
- sb->s_sequence = cpu_to_be32(tail_tid);
- sb->s_start = cpu_to_be32(tail_block);
-
-- jbd2_write_superblock(journal, write_op);
-+ ret = jbd2_write_superblock(journal, write_op);
-+ if (ret)
-+ goto out;
-
- /* Log is no longer empty */
- write_lock(&journal->j_state_lock);
- WARN_ON(!sb->s_sequence);
- journal->j_flags &= ~JBD2_FLUSHED;
- write_unlock(&journal->j_state_lock);
-+
-+out:
-+ return ret;
- }
-
- /**
-@@ -1785,7 +1801,14 @@ int jbd2_journal_flush(journal_t *journa
- return -EIO;
-
- mutex_lock(&journal->j_checkpoint_mutex);
-- jbd2_cleanup_journal_tail(journal);
-+ if (!err) {
-+ err = jbd2_cleanup_journal_tail(journal);
-+ if (err < 0) {
-+ mutex_unlock(&journal->j_checkpoint_mutex);
-+ goto out;
-+ }
-+ err = 0;
-+ }
-
- /* Finally, mark the journal as really needing no recovery.
- * This sets s_start==0 in the underlying superblock, which is
-@@ -1801,7 +1824,8 @@ int jbd2_journal_flush(journal_t *journa
- J_ASSERT(journal->j_head == journal->j_tail);
- J_ASSERT(journal->j_tail_sequence == journal->j_transaction_sequence);
- write_unlock(&journal->j_state_lock);
-- return 0;
-+out:
-+ return err;
- }
-
- /**
---- a/include/linux/jbd2.h
-+++ b/include/linux/jbd2.h
-@@ -974,7 +974,7 @@ extern struct journal_head * jbd2_journa
- int jbd2_journal_next_log_block(journal_t *, unsigned long long *);
- int jbd2_journal_get_log_tail(journal_t *journal, tid_t *tid,
- unsigned long *block);
--void __jbd2_update_log_tail(journal_t *journal, tid_t tid, unsigned long block);
-+int __jbd2_update_log_tail(journal_t *journal, tid_t tid, unsigned long block);
- void jbd2_update_log_tail(journal_t *journal, tid_t tid, unsigned long block);
-
- /* Commit management */
-@@ -1093,7 +1093,7 @@ extern int jbd2_journal_recover (j
- extern int jbd2_journal_wipe (journal_t *, int);
- extern int jbd2_journal_skip_recovery (journal_t *);
- extern void jbd2_journal_update_sb_errno(journal_t *);
--extern void jbd2_journal_update_sb_log_tail (journal_t *, tid_t,
-+extern int jbd2_journal_update_sb_log_tail (journal_t *, tid_t,
- unsigned long, int);
- extern void __jbd2_journal_abort_hard (journal_t *);
- extern void jbd2_journal_abort (journal_t *, int);
diff --git a/patches/jbd2-use-gfp_nofs-in-jbd2_cleanup_journal_tail.patch b/patches/jbd2-use-gfp_nofs-in-jbd2_cleanup_journal_tail.patch
deleted file mode 100644
index 0b05743..0000000
--- a/patches/jbd2-use-gfp_nofs-in-jbd2_cleanup_journal_tail.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From b4f1afcd068f6e533230dfed00782cd8a907f96b Mon Sep 17 00:00:00 2001
-From: Dmitry Monakhov <dmonakhov@openvz.org>
-Date: Mon, 15 Jun 2015 00:18:02 -0400
-Subject: jbd2: use GFP_NOFS in jbd2_cleanup_journal_tail()
-
-commit b4f1afcd068f6e533230dfed00782cd8a907f96b upstream.
-
-jbd2_cleanup_journal_tail() can be invoked by jbd2__journal_start()
-So allocations should be done with GFP_NOFS
-
-[Full stack trace snipped from 3.10-rh7]
-[<ffffffff815c4bd4>] dump_stack+0x19/0x1b
-[<ffffffff8105dba1>] warn_slowpath_common+0x61/0x80
-[<ffffffff8105dcca>] warn_slowpath_null+0x1a/0x20
-[<ffffffff815c2142>] slab_pre_alloc_hook.isra.31.part.32+0x15/0x17
-[<ffffffff8119c045>] kmem_cache_alloc+0x55/0x210
-[<ffffffff811477f5>] ? mempool_alloc_slab+0x15/0x20
-[<ffffffff811477f5>] mempool_alloc_slab+0x15/0x20
-[<ffffffff81147939>] mempool_alloc+0x69/0x170
-[<ffffffff815cb69e>] ? _raw_spin_unlock_irq+0xe/0x20
-[<ffffffff8109160d>] ? finish_task_switch+0x5d/0x150
-[<ffffffff811f1a8e>] bio_alloc_bioset+0x1be/0x2e0
-[<ffffffff8127ee49>] blkdev_issue_flush+0x99/0x120
-[<ffffffffa019a733>] jbd2_cleanup_journal_tail+0x93/0xa0 [jbd2] -->GFP_KERNEL
-[<ffffffffa019aca1>] jbd2_log_do_checkpoint+0x221/0x4a0 [jbd2]
-[<ffffffffa019afc7>] __jbd2_log_wait_for_space+0xa7/0x1e0 [jbd2]
-[<ffffffffa01952d8>] start_this_handle+0x2d8/0x550 [jbd2]
-[<ffffffff811b02a9>] ? __memcg_kmem_put_cache+0x29/0x30
-[<ffffffff8119c120>] ? kmem_cache_alloc+0x130/0x210
-[<ffffffffa019573a>] jbd2__journal_start+0xba/0x190 [jbd2]
-[<ffffffff811532ce>] ? lru_cache_add+0xe/0x10
-[<ffffffffa01c9549>] ? ext4_da_write_begin+0xf9/0x330 [ext4]
-[<ffffffffa01f2c77>] __ext4_journal_start_sb+0x77/0x160 [ext4]
-[<ffffffffa01c9549>] ext4_da_write_begin+0xf9/0x330 [ext4]
-[<ffffffff811446ec>] generic_file_buffered_write_iter+0x10c/0x270
-[<ffffffff81146918>] __generic_file_write_iter+0x178/0x390
-[<ffffffff81146c6b>] __generic_file_aio_write+0x8b/0xb0
-[<ffffffff81146ced>] generic_file_aio_write+0x5d/0xc0
-[<ffffffffa01bf289>] ext4_file_write+0xa9/0x450 [ext4]
-[<ffffffff811c31d9>] ? pipe_read+0x379/0x4f0
-[<ffffffff811b93f0>] do_sync_write+0x90/0xe0
-[<ffffffff811b9b6d>] vfs_write+0xbd/0x1e0
-[<ffffffff811ba5b8>] SyS_write+0x58/0xb0
-[<ffffffff815d4799>] system_call_fastpath+0x16/0x1b
-
-Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
-Signed-off-by: Theodore Ts'o <tytso@mit.edu>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- fs/jbd2/checkpoint.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/fs/jbd2/checkpoint.c
-+++ b/fs/jbd2/checkpoint.c
-@@ -455,7 +455,7 @@ int jbd2_cleanup_journal_tail(journal_t
- * jbd2_cleanup_journal_tail() doesn't get called all that often.
- */
- if (journal->j_flags & JBD2_BARRIER)
-- blkdev_issue_flush(journal->j_fs_dev, GFP_KERNEL, NULL);
-+ blkdev_issue_flush(journal->j_fs_dev, GFP_NOFS, NULL);
-
- __jbd2_update_log_tail(journal, first_tid, blocknr);
- return 0;
diff --git a/patches/kvm-x86-make-vapics_in_nmi_mode-atomic.patch b/patches/kvm-x86-make-vapics_in_nmi_mode-atomic.patch
deleted file mode 100644
index 84ce721..0000000
--- a/patches/kvm-x86-make-vapics_in_nmi_mode-atomic.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 42720138b06301cc8a7ee8a495a6d021c4b6a9bc Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= <rkrcmar@redhat.com>
-Date: Wed, 1 Jul 2015 15:31:49 +0200
-Subject: KVM: x86: make vapics_in_nmi_mode atomic
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 42720138b06301cc8a7ee8a495a6d021c4b6a9bc upstream.
-
-Writes were a bit racy, but hard to turn into a bug at the same time.
-(Particularly because modern Linux doesn't use this feature anymore.)
-
-Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
-[Actually the next patch makes it much, much easier to trigger the race
- so I'm including this one for stable@ as well. - Paolo]
-Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-[lizf: Backported to 3.4: adjust context]
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- arch/x86/include/asm/kvm_host.h | 2 +-
- arch/x86/kvm/i8254.c | 2 +-
- arch/x86/kvm/lapic.c | 4 ++--
- 3 files changed, 4 insertions(+), 4 deletions(-)
-
---- a/arch/x86/include/asm/kvm_host.h
-+++ b/arch/x86/include/asm/kvm_host.h
-@@ -509,7 +509,7 @@ struct kvm_arch {
- struct kvm_pic *vpic;
- struct kvm_ioapic *vioapic;
- struct kvm_pit *vpit;
-- int vapics_in_nmi_mode;
-+ atomic_t vapics_in_nmi_mode;
-
- unsigned int tss_addr;
- struct page *apic_access_page;
---- a/arch/x86/kvm/i8254.c
-+++ b/arch/x86/kvm/i8254.c
-@@ -317,7 +317,7 @@ static void pit_do_work(struct work_stru
- * LVT0 to NMI delivery. Other PIC interrupts are just sent to
- * VCPU0, and only if its LVT0 is in EXTINT mode.
- */
-- if (kvm->arch.vapics_in_nmi_mode > 0)
-+ if (atomic_read(&kvm->arch.vapics_in_nmi_mode) > 0)
- kvm_for_each_vcpu(i, vcpu, kvm)
- kvm_apic_nmi_wd_deliver(vcpu);
- }
---- a/arch/x86/kvm/lapic.c
-+++ b/arch/x86/kvm/lapic.c
-@@ -761,10 +761,10 @@ static void apic_manage_nmi_watchdog(str
- if (!nmi_wd_enabled) {
- apic_debug("Receive NMI setting on APIC_LVT0 "
- "for cpu %d\n", apic->vcpu->vcpu_id);
-- apic->vcpu->kvm->arch.vapics_in_nmi_mode++;
-+ atomic_inc(&apic->vcpu->kvm->arch.vapics_in_nmi_mode);
- }
- } else if (nmi_wd_enabled)
-- apic->vcpu->kvm->arch.vapics_in_nmi_mode--;
-+ atomic_dec(&apic->vcpu->kvm->arch.vapics_in_nmi_mode);
- }
-
- static int apic_reg_write(struct kvm_lapic *apic, u32 reg, u32 val)
diff --git a/patches/kvm-x86-properly-restore-lvt0.patch b/patches/kvm-x86-properly-restore-lvt0.patch
deleted file mode 100644
index 85eb740..0000000
--- a/patches/kvm-x86-properly-restore-lvt0.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From db1385624c686fe99fe2d1b61a36e1537b915d08 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= <rkrcmar@redhat.com>
-Date: Tue, 30 Jun 2015 22:19:17 +0200
-Subject: KVM: x86: properly restore LVT0
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit db1385624c686fe99fe2d1b61a36e1537b915d08 upstream.
-
-Legacy NMI watchdog didn't work after migration/resume, because
-vapics_in_nmi_mode was left at 0.
-
-Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
-Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-[lizf: Backported to 3.4:
- - adjust context
- - s/kvm_apic_get_reg/apic_get_reg/]
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- arch/x86/kvm/lapic.c | 1 +
- 1 file changed, 1 insertion(+)
-
---- a/arch/x86/kvm/lapic.c
-+++ b/arch/x86/kvm/lapic.c
-@@ -1257,6 +1257,7 @@ void kvm_apic_post_state_restore(struct
-
- apic_update_ppr(apic);
- hrtimer_cancel(&apic->lapic_timer.timer);
-+ apic_manage_nmi_watchdog(apic, apic_get_reg(apic, APIC_LVT0));
- update_divide_count(apic);
- start_apic_timer(apic);
- apic->irr_pending = true;
diff --git a/patches/mm-kmemleak-allow-safe-memory-scanning-during-kmemleak-disabling.patch b/patches/mm-kmemleak-allow-safe-memory-scanning-during-kmemleak-disabling.patch
deleted file mode 100644
index 4a4835b..0000000
--- a/patches/mm-kmemleak-allow-safe-memory-scanning-during-kmemleak-disabling.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-From c5f3b1a51a591c18c8b33983908e7fdda6ae417e Mon Sep 17 00:00:00 2001
-From: Catalin Marinas <catalin.marinas@arm.com>
-Date: Wed, 24 Jun 2015 16:58:26 -0700
-Subject: mm: kmemleak: allow safe memory scanning during kmemleak disabling
-
-commit c5f3b1a51a591c18c8b33983908e7fdda6ae417e upstream.
-
-The kmemleak scanning thread can run for minutes. Callbacks like
-kmemleak_free() are allowed during this time, the race being taken care
-of by the object->lock spinlock. Such lock also prevents a memory block
-from being freed or unmapped while it is being scanned by blocking the
-kmemleak_free() -> ... -> __delete_object() function until the lock is
-released in scan_object().
-
-When a kmemleak error occurs (e.g. it fails to allocate its metadata),
-kmemleak_enabled is set and __delete_object() is no longer called on
-freed objects. If kmemleak_scan is running at the same time,
-kmemleak_free() no longer waits for the object scanning to complete,
-allowing the corresponding memory block to be freed or unmapped (in the
-case of vfree()). This leads to kmemleak_scan potentially triggering a
-page fault.
-
-This patch separates the kmemleak_free() enabling/disabling from the
-overall kmemleak_enabled nob so that we can defer the disabling of the
-object freeing tracking until the scanning thread completed. The
-kmemleak_free_part() is deliberately ignored by this patch since this is
-only called during boot before the scanning thread started.
-
-Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
-Reported-by: Vignesh Radhakrishnan <vigneshr@codeaurora.org>
-Tested-by: Vignesh Radhakrishnan <vigneshr@codeaurora.org>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-[lizf: Backported to 3.4: adjust context]
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- mm/kmemleak.c | 19 ++++++++++++++++---
- 1 file changed, 16 insertions(+), 3 deletions(-)
-
---- a/mm/kmemleak.c
-+++ b/mm/kmemleak.c
-@@ -193,6 +193,8 @@ static struct kmem_cache *scan_area_cach
-
- /* set if tracing memory operations is enabled */
- static atomic_t kmemleak_enabled = ATOMIC_INIT(0);
-+/* same as above but only for the kmemleak_free() callback */
-+static int kmemleak_free_enabled;
- /* set in the late_initcall if there were no errors */
- static atomic_t kmemleak_initialized = ATOMIC_INIT(0);
- /* enables or disables early logging of the memory operations */
-@@ -936,7 +938,7 @@ void __ref kmemleak_free(const void *ptr
- {
- pr_debug("%s(0x%p)\n", __func__, ptr);
-
-- if (atomic_read(&kmemleak_enabled) && ptr && !IS_ERR(ptr))
-+ if (kmemleak_free_enabled && ptr && !IS_ERR(ptr))
- delete_object_full((unsigned long)ptr);
- else if (atomic_read(&kmemleak_early_log))
- log_early(KMEMLEAK_FREE, ptr, 0, 0);
-@@ -976,7 +978,7 @@ void __ref kmemleak_free_percpu(const vo
-
- pr_debug("%s(0x%p)\n", __func__, ptr);
-
-- if (atomic_read(&kmemleak_enabled) && ptr && !IS_ERR(ptr))
-+ if (kmemleak_free_enabled && ptr && !IS_ERR(ptr))
- for_each_possible_cpu(cpu)
- delete_object_full((unsigned long)per_cpu_ptr(ptr,
- cpu));
-@@ -1690,6 +1692,13 @@ static void kmemleak_do_cleanup(struct w
- mutex_lock(&scan_mutex);
- stop_scan_thread();
-
-+ /*
-+ * Once the scan thread has stopped, it is safe to no longer track
-+ * object freeing. Ordering of the scan thread stopping and the memory
-+ * accesses below is guaranteed by the kthread_stop() function.
-+ */
-+ kmemleak_free_enabled = 0;
-+
- if (cleanup) {
- rcu_read_lock();
- list_for_each_entry_rcu(object, &object_list, object_list)
-@@ -1717,6 +1726,8 @@ static void kmemleak_disable(void)
- /* check whether it is too early for a kernel thread */
- if (atomic_read(&kmemleak_initialized))
- schedule_work(&cleanup_work);
-+ else
-+ kmemleak_free_enabled = 0;
-
- pr_info("Kernel memory leak detector disabled\n");
- }
-@@ -1782,8 +1793,10 @@ void __init kmemleak_init(void)
- if (atomic_read(&kmemleak_error)) {
- local_irq_restore(flags);
- return;
-- } else
-+ } else {
- atomic_set(&kmemleak_enabled, 1);
-+ kmemleak_free_enabled = 1;
-+ }
- local_irq_restore(flags);
-
- /*
diff --git a/patches/mmc-card-fixup-request-missing-in-mmc_blk_issue_rw_rq.patch b/patches/mmc-card-fixup-request-missing-in-mmc_blk_issue_rw_rq.patch
deleted file mode 100644
index e55df3d..0000000
--- a/patches/mmc-card-fixup-request-missing-in-mmc_blk_issue_rw_rq.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 29535f7b797df35cc9b6b3bca635591cdd3dd2a8 Mon Sep 17 00:00:00 2001
-From: Ding Wang <justin.wang@spreadtrum.com>
-Date: Mon, 18 May 2015 20:14:15 +0800
-Subject: mmc: card: Fixup request missing in mmc_blk_issue_rw_rq
-
-commit 29535f7b797df35cc9b6b3bca635591cdd3dd2a8 upstream.
-
-The current handler of MMC_BLK_CMD_ERR in mmc_blk_issue_rw_rq function
-may cause new coming request permanent missing when the ongoing
-request (previoulsy started) complete end.
-
-The problem scenario is as follows:
-(1) Request A is ongoing;
-(2) Request B arrived, and finally mmc_blk_issue_rw_rq() is called;
-(3) Request A encounters the MMC_BLK_CMD_ERR error;
-(4) In the error handling of MMC_BLK_CMD_ERR, suppose mmc_blk_cmd_err()
- end request A completed and return zero. Continue the error handling,
- suppose mmc_blk_reset() reset device success;
-(5) Continue the execution, while loop completed because variable ret
- is zero now;
-(6) Finally, mmc_blk_issue_rw_rq() return without processing request B.
-
-The process related to the missing request may wait that IO request
-complete forever, possibly crashing the application or hanging the system.
-
-Fix this issue by starting new request when reset success.
-
-Signed-off-by: Ding Wang <justin.wang@spreadtrum.com>
-Fixes: 67716327eec7 ("mmc: block: add eMMC hardware reset support")
-Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- drivers/mmc/card/block.c | 8 +++++---
- 1 file changed, 5 insertions(+), 3 deletions(-)
-
---- a/drivers/mmc/card/block.c
-+++ b/drivers/mmc/card/block.c
-@@ -1372,9 +1372,11 @@ static int mmc_blk_issue_rw_rq(struct mm
- break;
- case MMC_BLK_CMD_ERR:
- ret = mmc_blk_cmd_err(md, card, brq, req, ret);
-- if (!mmc_blk_reset(md, card->host, type))
-- break;
-- goto cmd_abort;
-+ if (mmc_blk_reset(md, card->host, type))
-+ goto cmd_abort;
-+ if (!ret)
-+ goto start_new_req;
-+ break;
- case MMC_BLK_RETRY:
- if (retry++ < 5)
- break;
diff --git a/patches/mtd-dc21285-use-raw-spinlock-functions-for-nw_gpio_lock.patch b/patches/mtd-dc21285-use-raw-spinlock-functions-for-nw_gpio_lock.patch
deleted file mode 100644
index aba6f5f..0000000
--- a/patches/mtd-dc21285-use-raw-spinlock-functions-for-nw_gpio_lock.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From e5babdf928e5d0c432a8d4b99f20421ce14d1ab6 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= <u.kleine-koenig@pengutronix.de>
-Date: Thu, 28 May 2015 10:22:10 +0200
-Subject: mtd: dc21285: use raw spinlock functions for nw_gpio_lock
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit e5babdf928e5d0c432a8d4b99f20421ce14d1ab6 upstream.
-
-Since commit bd31b85960a7 (which is in 3.2-rc1) nw_gpio_lock is a raw spinlock
-that needs usage of the corresponding raw functions.
-
-This fixes:
-
- drivers/mtd/maps/dc21285.c: In function 'nw_en_write':
- drivers/mtd/maps/dc21285.c:41:340: warning: passing argument 1 of 'spinlock_check' from incompatible pointer type
- spin_lock_irqsave(&nw_gpio_lock, flags);
-
- In file included from include/linux/seqlock.h:35:0,
- from include/linux/time.h:5,
- from include/linux/stat.h:18,
- from include/linux/module.h:10,
- from drivers/mtd/maps/dc21285.c:8:
- include/linux/spinlock.h:299:102: note: expected 'struct spinlock_t *' but argument is of type 'struct raw_spinlock_t *'
- static inline raw_spinlock_t *spinlock_check(spinlock_t *lock)
- ^
- drivers/mtd/maps/dc21285.c:43:25: warning: passing argument 1 of 'spin_unlock_irqrestore' from incompatible pointer type
- spin_unlock_irqrestore(&nw_gpio_lock, flags);
- ^
- In file included from include/linux/seqlock.h:35:0,
- from include/linux/time.h:5,
- from include/linux/stat.h:18,
- from include/linux/module.h:10,
- from drivers/mtd/maps/dc21285.c:8:
- include/linux/spinlock.h:370:91: note: expected 'struct spinlock_t *' but argument is of type 'struct raw_spinlock_t *'
- static inline void spin_unlock_irqrestore(spinlock_t *lock, unsigned long flags)
-
-Fixes: bd31b85960a7 ("locking, ARM: Annotate low level hw locks as raw")
-Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
-Signed-off-by: Brian Norris <computersforpeace@gmail.com>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- drivers/mtd/maps/dc21285.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/drivers/mtd/maps/dc21285.c
-+++ b/drivers/mtd/maps/dc21285.c
-@@ -38,9 +38,9 @@ static void nw_en_write(void)
- * we want to write a bit pattern XXX1 to Xilinx to enable
- * the write gate, which will be open for about the next 2ms.
- */
-- spin_lock_irqsave(&nw_gpio_lock, flags);
-+ raw_spin_lock_irqsave(&nw_gpio_lock, flags);
- nw_cpld_modify(CPLD_FLASH_WR_ENABLE, CPLD_FLASH_WR_ENABLE);
-- spin_unlock_irqrestore(&nw_gpio_lock, flags);
-+ raw_spin_unlock_irqrestore(&nw_gpio_lock, flags);
-
- /*
- * let the ISA bus to catch on...
diff --git a/patches/mtd-fix-avoid-race-condition-when-accessing-mtd-usecount.patch b/patches/mtd-fix-avoid-race-condition-when-accessing-mtd-usecount.patch
deleted file mode 100644
index cc2d3da..0000000
--- a/patches/mtd-fix-avoid-race-condition-when-accessing-mtd-usecount.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-From 073db4a51ee43ccb827f54a4261c0583b028d5ab Mon Sep 17 00:00:00 2001
-From: Brian Norris <computersforpeace@gmail.com>
-Date: Thu, 7 May 2015 17:55:16 -0700
-Subject: mtd: fix: avoid race condition when accessing mtd->usecount
-
-commit 073db4a51ee43ccb827f54a4261c0583b028d5ab upstream.
-
-On A MIPS 32-cores machine a BUG_ON was triggered because some acesses to
-mtd->usecount were done without taking mtd_table_mutex.
-kernel: Call Trace:
-kernel: [<ffffffff80401818>] __put_mtd_device+0x20/0x50
-kernel: [<ffffffff804086f4>] blktrans_release+0x8c/0xd8
-kernel: [<ffffffff802577e0>] __blkdev_put+0x1a8/0x200
-kernel: [<ffffffff802579a4>] blkdev_close+0x1c/0x30
-kernel: [<ffffffff8022006c>] __fput+0xac/0x250
-kernel: [<ffffffff80171208>] task_work_run+0xd8/0x120
-kernel: [<ffffffff8012c23c>] work_notifysig+0x10/0x18
-kernel:
-kernel:
- Code: 2442ffff ac8202d8 000217fe <00020336> dc820128 10400003
- 00000000 0040f809 00000000
-kernel: ---[ end trace 080fbb4579b47a73 ]---
-
-Fixed by taking the mutex in blktrans_open and blktrans_release.
-
-Note that this locking is already suggested in
-include/linux/mtd/blktrans.h:
-
-struct mtd_blktrans_ops {
-...
- /* Called with mtd_table_mutex held; no race with add/remove */
- int (*open)(struct mtd_blktrans_dev *dev);
- void (*release)(struct mtd_blktrans_dev *dev);
-...
-};
-
-But we weren't following it.
-
-Originally reported by (and patched by) Zhang and Giuseppe,
-independently. Improved and rewritten.
-
-Reported-by: Zhang Xingcai <zhangxingcai@huawei.com>
-Reported-by: Giuseppe Cantavenera <giuseppe.cantavenera.ext@nokia.com>
-Tested-by: Giuseppe Cantavenera <giuseppe.cantavenera.ext@nokia.com>
-Acked-by: Alexander Sverdlin <alexander.sverdlin@nokia.com>
-Signed-off-by: Brian Norris <computersforpeace@gmail.com>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- drivers/mtd/mtd_blkdevs.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
---- a/drivers/mtd/mtd_blkdevs.c
-+++ b/drivers/mtd/mtd_blkdevs.c
-@@ -214,6 +214,7 @@ static int blktrans_open(struct block_de
- return -ERESTARTSYS; /* FIXME: busy loop! -arnd*/
-
- mutex_lock(&dev->lock);
-+ mutex_lock(&mtd_table_mutex);
-
- if (dev->open)
- goto unlock;
-@@ -237,6 +238,7 @@ static int blktrans_open(struct block_de
-
- unlock:
- dev->open++;
-+ mutex_unlock(&mtd_table_mutex);
- mutex_unlock(&dev->lock);
- blktrans_dev_put(dev);
- return ret;
-@@ -247,6 +249,7 @@ error_release:
- error_put:
- module_put(dev->tr->owner);
- kref_put(&dev->ref, blktrans_dev_release);
-+ mutex_unlock(&mtd_table_mutex);
- mutex_unlock(&dev->lock);
- blktrans_dev_put(dev);
- return ret;
-@@ -261,6 +264,7 @@ static int blktrans_release(struct gendi
- return ret;
-
- mutex_lock(&dev->lock);
-+ mutex_lock(&mtd_table_mutex);
-
- if (--dev->open)
- goto unlock;
-@@ -273,6 +277,7 @@ static int blktrans_release(struct gendi
- __put_mtd_device(dev->mtd);
- }
- unlock:
-+ mutex_unlock(&mtd_table_mutex);
- mutex_unlock(&dev->lock);
- blktrans_dev_put(dev);
- return ret;
diff --git a/patches/nfs-fix-size-of-nfsacl-setacl-operations.patch b/patches/nfs-fix-size-of-nfsacl-setacl-operations.patch
deleted file mode 100644
index 2fc10a3..0000000
--- a/patches/nfs-fix-size-of-nfsacl-setacl-operations.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From d683cc49daf7c5afca8cd9654aaa1bf63cdf2ad9 Mon Sep 17 00:00:00 2001
-From: Chuck Lever <chuck.lever@oracle.com>
-Date: Tue, 26 May 2015 11:53:52 -0400
-Subject: NFS: Fix size of NFSACL SETACL operations
-
-commit d683cc49daf7c5afca8cd9654aaa1bf63cdf2ad9 upstream.
-
-When encoding the NFSACL SETACL operation, reserve just the estimated
-size of the ACL rather than a fixed maximum. This eliminates needless
-zero padding on the wire that the server ignores.
-
-Fixes: ee5dc7732bd5 ('NFS: Fix "kernel BUG at fs/nfs/nfs3xdr.c:1338!"')
-Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
-Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- fs/nfs/nfs3xdr.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/fs/nfs/nfs3xdr.c
-+++ b/fs/nfs/nfs3xdr.c
-@@ -1333,7 +1333,7 @@ static void nfs3_xdr_enc_setacl3args(str
- if (args->npages != 0)
- xdr_write_pages(xdr, args->pages, 0, args->len);
- else
-- xdr_reserve_space(xdr, NFS_ACL_INLINE_BUFSIZE);
-+ xdr_reserve_space(xdr, args->len);
-
- error = nfsacl_encode(xdr->buf, base, args->inode,
- (args->mask & NFS_ACL) ?
diff --git a/patches/nfs-increase-size-of-exchange_id-name-string-buffer.patch b/patches/nfs-increase-size-of-exchange_id-name-string-buffer.patch
deleted file mode 100644
index c2f97c8..0000000
--- a/patches/nfs-increase-size-of-exchange_id-name-string-buffer.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 764ad8ba8cd4c6f836fca9378f8c5121aece0842 Mon Sep 17 00:00:00 2001
-From: Jeff Layton <jlayton@poochiereds.net>
-Date: Tue, 9 Jun 2015 19:43:56 -0400
-Subject: nfs: increase size of EXCHANGE_ID name string buffer
-
-commit 764ad8ba8cd4c6f836fca9378f8c5121aece0842 upstream.
-
-The current buffer is much too small if you have a relatively long
-hostname. Bring it up to the size of the one that SETCLIENTID has.
-
-Reported-by: Michael Skralivetsky <michael.skralivetsky@primarydata.com>
-Signed-off-by: Jeff Layton <jeff.layton@primarydata.com>
-Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
-[lizf: Backported to 3.4: adjust context]
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- include/linux/nfs_xdr.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/include/linux/nfs_xdr.h
-+++ b/include/linux/nfs_xdr.h
-@@ -1061,7 +1061,7 @@ struct nfstime4 {
- };
-
- #ifdef CONFIG_NFS_V4_1
--#define NFS4_EXCHANGE_ID_LEN (48)
-+#define NFS4_EXCHANGE_ID_LEN (127)
- struct nfs41_exchange_id_args {
- struct nfs_client *client;
- nfs4_verifier *verifier;
diff --git a/patches/packet-avoid-out-of-bounds-read-in-round-robin-fanout.patch b/patches/packet-avoid-out-of-bounds-read-in-round-robin-fanout.patch
deleted file mode 100644
index 0f90097..0000000
--- a/patches/packet-avoid-out-of-bounds-read-in-round-robin-fanout.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 468479e6043c84f5a65299cc07cb08a22a28c2b1 Mon Sep 17 00:00:00 2001
-From: Willem de Bruijn <willemb@google.com>
-Date: Wed, 17 Jun 2015 15:59:34 -0400
-Subject: packet: avoid out of bounds read in round robin fanout
-
-commit 468479e6043c84f5a65299cc07cb08a22a28c2b1 upstream.
-
-PACKET_FANOUT_LB computes f->rr_cur such that it is modulo
-f->num_members. It returns the old value unconditionally, but
-f->num_members may have changed since the last store. Ensure
-that the return value is always < num.
-
-When modifying the logic, simplify it further by replacing the loop
-with an unconditional atomic increment.
-
-Fixes: dc99f600698d ("packet: Add fanout support.")
-Suggested-by: Eric Dumazet <edumazet@google.com>
-Signed-off-by: Willem de Bruijn <willemb@google.com>
-Acked-by: Eric Dumazet <edumazet@google.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-[lizf: Backported to 3.4:
- - adjust context
- - fanout_demux_lb() returns a pointer]
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- net/packet/af_packet.c | 18 ++----------------
- 1 file changed, 2 insertions(+), 16 deletions(-)
-
---- a/net/packet/af_packet.c
-+++ b/net/packet/af_packet.c
-@@ -1169,16 +1169,6 @@ static void packet_sock_destruct(struct
- sk_refcnt_debug_dec(sk);
- }
-
--static int fanout_rr_next(struct packet_fanout *f, unsigned int num)
--{
-- int x = atomic_read(&f->rr_cur) + 1;
--
-- if (x >= num)
-- x = 0;
--
-- return x;
--}
--
- static struct sock *fanout_demux_hash(struct packet_fanout *f, struct sk_buff *skb, unsigned int num)
- {
- u32 idx, hash = skb->rxhash;
-@@ -1190,13 +1180,9 @@ static struct sock *fanout_demux_hash(st
-
- static struct sock *fanout_demux_lb(struct packet_fanout *f, struct sk_buff *skb, unsigned int num)
- {
-- int cur, old;
-+ unsigned int val = atomic_inc_return(&f->rr_cur);
-
-- cur = atomic_read(&f->rr_cur);
-- while ((old = atomic_cmpxchg(&f->rr_cur, cur,
-- fanout_rr_next(f, num))) != cur)
-- cur = old;
-- return f->arr[cur];
-+ return f->arr[val % num];
- }
-
- static struct sock *fanout_demux_cpu(struct packet_fanout *f, struct sk_buff *skb, unsigned int num)
diff --git a/patches/packet-read-num_members-once-in-packet_rcv_fanout.patch b/patches/packet-read-num_members-once-in-packet_rcv_fanout.patch
deleted file mode 100644
index cb89a1d..0000000
--- a/patches/packet-read-num_members-once-in-packet_rcv_fanout.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From f98f4514d07871da7a113dd9e3e330743fd70ae4 Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <edumazet@google.com>
-Date: Tue, 16 Jun 2015 07:59:11 -0700
-Subject: packet: read num_members once in packet_rcv_fanout()
-
-commit f98f4514d07871da7a113dd9e3e330743fd70ae4 upstream.
-
-We need to tell compiler it must not read f->num_members multiple
-times. Otherwise testing if num is not zero is flaky, and we could
-attempt an invalid divide by 0 in fanout_demux_cpu()
-
-Note bug was present in packet_rcv_fanout_hash() and
-packet_rcv_fanout_lb() but final 3.1 had a simple location
-after commit 95ec3eb417115fb ("packet: Add 'cpu' fanout policy.")
-
-Fixes: dc99f600698dc ("packet: Add fanout support.")
-Signed-off-by: Eric Dumazet <edumazet@google.com>
-Cc: Willem de Bruijn <willemb@google.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-[lizf: Backported to 3.4: use ACCESS_ONCE() instead of READ_ONCE()]
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- net/packet/af_packet.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/net/packet/af_packet.c
-+++ b/net/packet/af_packet.c
-@@ -1210,7 +1210,7 @@ static int packet_rcv_fanout(struct sk_b
- struct packet_type *pt, struct net_device *orig_dev)
- {
- struct packet_fanout *f = pt->af_packet_priv;
-- unsigned int num = f->num_members;
-+ unsigned int num = ACCESS_ONCE(f->num_members);
- struct packet_sock *po;
- struct sock *sk;
-
diff --git a/patches/pktgen-adjust-spacing-in-proc-file-interface-output.patch b/patches/pktgen-adjust-spacing-in-proc-file-interface-output.patch
deleted file mode 100644
index c8dd486..0000000
--- a/patches/pktgen-adjust-spacing-in-proc-file-interface-output.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From d079abd181950a44cdf31daafd1662388a6c4d2e Mon Sep 17 00:00:00 2001
-From: Jesper Dangaard Brouer <brouer@redhat.com>
-Date: Thu, 21 May 2015 12:16:11 +0200
-Subject: pktgen: adjust spacing in proc file interface output
-
-commit d079abd181950a44cdf31daafd1662388a6c4d2e upstream.
-
-Too many spaces were introduced in commit 63adc6fb8ac0 ("pktgen: cleanup
-checkpatch warnings"), thus misaligning "src_min:" to other columns.
-
-Fixes: 63adc6fb8ac0 ("pktgen: cleanup checkpatch warnings")
-Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- net/core/pktgen.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/net/core/pktgen.c
-+++ b/net/core/pktgen.c
-@@ -568,7 +568,7 @@ static int pktgen_if_show(struct seq_fil
- " dst_min: %s dst_max: %s\n",
- pkt_dev->dst_min, pkt_dev->dst_max);
- seq_printf(seq,
-- " src_min: %s src_max: %s\n",
-+ " src_min: %s src_max: %s\n",
- pkt_dev->src_min, pkt_dev->src_max);
- }
-
diff --git a/patches/pktgen-document-ability-to-add-same-device-to-several-threads.patch b/patches/pktgen-document-ability-to-add-same-device-to-several-threads.patch
deleted file mode 100644
index 04da9a2..0000000
--- a/patches/pktgen-document-ability-to-add-same-device-to-several-threads.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-From 2a1ddf27e8189e1d68336c55dd2f305b224ae8f1 Mon Sep 17 00:00:00 2001
-From: Jesper Dangaard Brouer <brouer@redhat.com>
-Date: Thu, 21 May 2015 12:16:40 +0200
-Subject: pktgen: document ability to add same device to several threads
-
-commit 2a1ddf27e8189e1d68336c55dd2f305b224ae8f1 upstream.
-
-The pktgen.txt documentation still claimed that adding same device to
-multiple threads were not supported, but it have been since 2008 via
-commit e6fce5b916cd7 ("pktgen: multiqueue etc.").
-
-Document this and describe the naming scheme dev@X, as the procfile name
-still need to be unique.
-
-Fixes: e6fce5b916cd7 ("pktgen: multiqueue etc.")
-Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com>
-Acked-by: Alexei Starovoitov <ast@plumgrid.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- Documentation/networking/pktgen.txt | 77 ++++++++++++++++++++++--------------
- 1 file changed, 49 insertions(+), 28 deletions(-)
-
---- a/Documentation/networking/pktgen.txt
-+++ b/Documentation/networking/pktgen.txt
-@@ -24,17 +24,33 @@ For monitoring and control pktgen create
- /proc/net/pktgen/ethX
-
-
--Viewing threads
--===============
--/proc/net/pktgen/kpktgend_0
--Name: kpktgend_0 max_before_softirq: 10000
--Running:
--Stopped: eth1
--Result: OK: max_before_softirq=10000
-+Kernel threads
-+==============
-+Pktgen creates a thread for each CPU with affinity to that CPU.
-+Which is controlled through procfile /proc/net/pktgen/kpktgend_X.
-+
-+Example: /proc/net/pktgen/kpktgend_0
-+
-+ Running:
-+ Stopped: eth4@0
-+ Result: OK: add_device=eth4@0
-+
-+Most important are the devices assigned to the thread.
-
--Most important the devices assigned to thread. Note! A device can only belong
--to one thread.
-+The two basic thread commands are:
-+ * add_device DEVICE@NAME -- adds a single device
-+ * rem_device_all -- remove all associated devices
-
-+When adding a device to a thread, a corrosponding procfile is created
-+which is used for configuring this device. Thus, device names need to
-+be unique.
-+
-+To support adding the same device to multiple threads, which is useful
-+with multi queue NICs, a the device naming scheme is extended with "@":
-+ device@something
-+
-+The part after "@" can be anything, but it is custom to use the thread
-+number.
-
- Viewing devices
- ===============
-@@ -42,29 +58,32 @@ Viewing devices
- Parm section holds configured info. Current hold running stats.
- Result is printed after run or after interruption. Example:
-
--/proc/net/pktgen/eth1
-+/proc/net/pktgen/eth4@0
-
--Params: count 10000000 min_pkt_size: 60 max_pkt_size: 60
-- frags: 0 delay: 0 clone_skb: 1000000 ifname: eth1
-+ Params: count 100000 min_pkt_size: 60 max_pkt_size: 60
-+ frags: 0 delay: 0 clone_skb: 64 ifname: eth4@0
- flows: 0 flowlen: 0
-- dst_min: 10.10.11.2 dst_max:
-- src_min: src_max:
-- src_mac: 00:00:00:00:00:00 dst_mac: 00:04:23:AC:FD:82
-- udp_src_min: 9 udp_src_max: 9 udp_dst_min: 9 udp_dst_max: 9
-- src_mac_count: 0 dst_mac_count: 0
-- Flags:
--Current:
-- pkts-sofar: 10000000 errors: 39664
-- started: 1103053986245187us stopped: 1103053999346329us idle: 880401us
-- seq_num: 10000011 cur_dst_mac_offset: 0 cur_src_mac_offset: 0
-- cur_saddr: 0x10a0a0a cur_daddr: 0x20b0a0a
-- cur_udp_dst: 9 cur_udp_src: 9
-+ queue_map_min: 0 queue_map_max: 0
-+ dst_min: 192.168.81.2 dst_max:
-+ src_min: src_max:
-+ src_mac: 90:e2:ba:0a:56:b4 dst_mac: 00:1b:21:3c:9d:f8
-+ udp_src_min: 9 udp_src_max: 109 udp_dst_min: 9 udp_dst_max: 9
-+ src_mac_count: 0 dst_mac_count: 0
-+ Flags: UDPSRC_RND NO_TIMESTAMP QUEUE_MAP_CPU
-+ Current:
-+ pkts-sofar: 100000 errors: 0
-+ started: 623913381008us stopped: 623913396439us idle: 25us
-+ seq_num: 100001 cur_dst_mac_offset: 0 cur_src_mac_offset: 0
-+ cur_saddr: 192.168.8.3 cur_daddr: 192.168.81.2
-+ cur_udp_dst: 9 cur_udp_src: 42
-+ cur_queue_map:
- flows: 0
--Result: OK: 13101142(c12220741+d880401) usec, 10000000 (60byte,0frags)
-- 763292pps 390Mb/sec (390805504bps) errors: 39664
-+ Result: OK: 15430(c15405d25) usec, 100000 (60byte,0frags)
-+ 6480562pps 3110Mb/sec (3110669760bps) errors: 0
-
--Configuring threads and devices
--================================
-+
-+Configuring devices
-+===================
- This is done via the /proc interface easiest done via pgset in the scripts
-
- Examples:
-@@ -177,6 +196,8 @@ Note when adding devices to a specific C
- /proc/irq/XX/smp_affinity so the TX-interrupts gets bound to the same CPU.
- as this reduces cache bouncing when freeing skb's.
-
-+Plus using the device flag QUEUE_MAP_CPU, which maps the SKBs TX queue
-+to the running threads CPU (directly from smp_processor_id()).
-
- Current commands and configuration options
- ==========================================
diff --git a/patches/rcu-correctly-handle-non-empty-tiny-rcu-callback-list-with-none-ready.patch b/patches/rcu-correctly-handle-non-empty-tiny-rcu-callback-list-with-none-ready.patch
deleted file mode 100644
index 571c1d4..0000000
--- a/patches/rcu-correctly-handle-non-empty-tiny-rcu-callback-list-with-none-ready.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 6e91f8cb138625be96070b778d9ba71ce520ea7e Mon Sep 17 00:00:00 2001
-From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
-Date: Mon, 11 May 2015 11:13:05 -0700
-Subject: rcu: Correctly handle non-empty Tiny RCU callback list with none
- ready
-
-commit 6e91f8cb138625be96070b778d9ba71ce520ea7e upstream.
-
-If, at the time __rcu_process_callbacks() is invoked, there are callbacks
-in Tiny RCU's callback list, but none of them are ready to be invoked,
-the current list-management code will knit the non-ready callbacks out
-of the list. This can result in hangs and possibly worse. This commit
-therefore inserts a check for there being no callbacks that can be
-invoked immediately.
-
-This bug is unlikely to occur -- you have to get a new callback between
-the time rcu_sched_qs() or rcu_bh_qs() was called, but before we get to
-__rcu_process_callbacks(). It was detected by the addition of RCU-bh
-testing to rcutorture, which in turn was instigated by Iftekhar Ahmed's
-mutation testing. Although this bug was made much more likely by
-915e8a4fe45e (rcu: Remove fastpath from __rcu_process_callbacks()), this
-did not cause the bug, but rather made it much more probable. That
-said, it takes more than 40 hours of rcutorture testing, on average,
-for this bug to appear, so this fix cannot be considered an emergency.
-
-Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
-Reviewed-by: Josh Triplett <josh@joshtriplett.org>
-[lizf: Backported to 3.4: adjust filename ]
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- kernel/rcutiny.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
---- a/kernel/rcutiny.c
-+++ b/kernel/rcutiny.c
-@@ -279,6 +279,11 @@ static void __rcu_process_callbacks(stru
-
- /* Move the ready-to-invoke callbacks to a local list. */
- local_irq_save(flags);
-+ if (rcp->donetail == &rcp->rcucblist) {
-+ /* No callbacks ready, so just leave. */
-+ local_irq_restore(flags);
-+ return;
-+ }
- RCU_TRACE(trace_rcu_batch_start(rcp->name, 0, rcp->qlen, -1));
- list = rcp->rcucblist;
- rcp->rcucblist = *rcp->donetail;
diff --git a/patches/regmap-fix-regmap_bulk_read-in-be-mode.patch b/patches/regmap-fix-regmap_bulk_read-in-be-mode.patch
deleted file mode 100644
index a94574b..0000000
--- a/patches/regmap-fix-regmap_bulk_read-in-be-mode.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 15b8d2c41fe5839582029f65c5f7004db451cc2b Mon Sep 17 00:00:00 2001
-From: Arun Chandran <achandran@mvista.com>
-Date: Mon, 15 Jun 2015 15:59:02 +0530
-Subject: regmap: Fix regmap_bulk_read in BE mode
-
-commit 15b8d2c41fe5839582029f65c5f7004db451cc2b upstream.
-
-In big endian mode regmap_bulk_read gives incorrect data
-for byte reads.
-
-This is because memcpy of a single byte from an address
-after full word read gives different results when
-endianness differs. ie. we get little-end in LE and big-end in BE.
-
-Signed-off-by: Arun Chandran <achandran@mvista.com>
-Signed-off-by: Mark Brown <broonie@kernel.org>
-[lizf: Backported to 3.4: format_val() takes only two arguments]
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- drivers/base/regmap/regmap.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/base/regmap/regmap.c
-+++ b/drivers/base/regmap/regmap.c
-@@ -784,7 +784,7 @@ int regmap_bulk_read(struct regmap *map,
- ret = regmap_read(map, reg + i, &ival);
- if (ret != 0)
- return ret;
-- memcpy(val + (i * val_bytes), &ival, val_bytes);
-+ map->format.format_val(val + (i * val_bytes), ival);
- }
- }
-
diff --git a/patches/regulator-core-fix-constraints-output-buffer.patch b/patches/regulator-core-fix-constraints-output-buffer.patch
deleted file mode 100644
index 9e30b28..0000000
--- a/patches/regulator-core-fix-constraints-output-buffer.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From a7068e3932eee8268c4ce4e080a338ee7b8a27bf Mon Sep 17 00:00:00 2001
-From: Stefan Wahren <stefan.wahren@i2se.com>
-Date: Tue, 9 Jun 2015 20:09:42 +0000
-Subject: regulator: core: fix constraints output buffer
-
-commit a7068e3932eee8268c4ce4e080a338ee7b8a27bf upstream.
-
-The buffer for condtraints debug isn't big enough to hold the output
-in all cases. So fix this issue by increasing the buffer.
-
-Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- drivers/regulator/core.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/regulator/core.c
-+++ b/drivers/regulator/core.c
-@@ -749,7 +749,7 @@ static int suspend_prepare(struct regula
- static void print_constraints(struct regulator_dev *rdev)
- {
- struct regulation_constraints *constraints = rdev->constraints;
-- char buf[80] = "";
-+ char buf[160] = "";
- int count = 0;
- int ret;
-
diff --git a/patches/revert-drm-i915-don-t-skip-request-retirement-if-the-active-list-is-empty.patch b/patches/revert-drm-i915-don-t-skip-request-retirement-if-the-active-list-is-empty.patch
deleted file mode 100644
index 1ec6bd2..0000000
--- a/patches/revert-drm-i915-don-t-skip-request-retirement-if-the-active-list-is-empty.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 245ec9d85696c3e539b23e210f248698b478379c Mon Sep 17 00:00:00 2001
-From: Jani Nikula <jani.nikula@intel.com>
-Date: Mon, 15 Jun 2015 12:59:37 +0300
-Subject: Revert "drm/i915: Don't skip request retirement if the active list is
- empty"
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 245ec9d85696c3e539b23e210f248698b478379c upstream.
-
-This reverts commit 0aedb1626566efd72b369c01992ee7413c82a0c5.
-
-I messed things up while applying [1] to drm-intel-fixes. Rectify.
-
-[1] http://mid.gmane.org/1432827156-9605-1-git-send-email-ville.syrjala@linux.intel.com
-
-Fixes: 0aedb1626566 ("drm/i915: Don't skip request retirement if the active list is empty")
-Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
-Signed-off-by: Jani Nikula <jani.nikula@intel.com>
-[lizf: Backported to 3.4: adjust context]
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- drivers/gpu/drm/i915/i915_gem.c | 3 +++
- 1 file changed, 3 insertions(+)
-
---- a/drivers/gpu/drm/i915/i915_gem.c
-+++ b/drivers/gpu/drm/i915/i915_gem.c
-@@ -1779,6 +1779,9 @@ i915_gem_retire_requests_ring(struct int
- uint32_t seqno;
- int i;
-
-+ if (list_empty(&ring->request_list))
-+ return;
-+
- WARN_ON(i915_verify_lists(ring->dev));
-
- seqno = ring->get_seqno(ring);
diff --git a/patches/revert-drm-radeon-use-drm_calloc_ab-for-cs-relocs.patch b/patches/revert-drm-radeon-use-drm_calloc_ab-for-cs-relocs.patch
deleted file mode 100644
index d0c1bd2..0000000
--- a/patches/revert-drm-radeon-use-drm_calloc_ab-for-cs-relocs.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 7d2e186544bcdad49d19143d00faef26e2b6b0ee Mon Sep 17 00:00:00 2001
-From: Zefan Li <lizefan@huawei.com>
-Date: Sun, 11 Oct 2015 16:03:09 +0800
-Subject: [PATCH] Revert "drm/radeon: Use drm_calloc_ab for CS relocs"
-
-This reverts commit 961bd13539b9e7ca5d2e667668141496b7a1d6bc.
-
-Both Satoshi-san and Cal reported a kernel crash due to this commit.
-
-Reported-by: Satoshi Iwamoto <satoshi.iwamoto@nifty.ne.jp>
-Reported-by: Cal Peake <cp@absolutedigital.net>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- drivers/gpu/drm/radeon/radeon_cs.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/drivers/gpu/drm/radeon/radeon_cs.c
-+++ b/drivers/gpu/drm/radeon/radeon_cs.c
-@@ -49,7 +49,7 @@ int radeon_cs_parser_relocs(struct radeo
- if (p->relocs_ptr == NULL) {
- return -ENOMEM;
- }
-- p->relocs = drm_calloc_large(p->nrelocs, sizeof(struct radeon_bo_list));
-+ p->relocs = kcalloc(p->nrelocs, sizeof(struct radeon_cs_reloc), GFP_KERNEL);
- if (p->relocs == NULL) {
- return -ENOMEM;
- }
-@@ -324,7 +324,7 @@ static void radeon_cs_parser_fini(struct
- }
- }
- kfree(parser->track);
-- drm_free_large(parser->relocs);
-+ kfree(parser->relocs);
- kfree(parser->relocs_ptr);
- for (i = 0; i < parser->nchunks; i++) {
- kfree(parser->chunks[i].kdata);
diff --git a/patches/rndis_wlan-harmless-issue-calling-set_bit.patch b/patches/rndis_wlan-harmless-issue-calling-set_bit.patch
deleted file mode 100644
index 8eb3027..0000000
--- a/patches/rndis_wlan-harmless-issue-calling-set_bit.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From e3958e9d60b4570fff709f397ef5c6b8483f40f7 Mon Sep 17 00:00:00 2001
-From: Dan Carpenter <dan.carpenter@oracle.com>
-Date: Thu, 14 May 2015 11:37:50 +0300
-Subject: rndis_wlan: harmless issue calling set_bit()
-
-commit e3958e9d60b4570fff709f397ef5c6b8483f40f7 upstream.
-
-These are used like:
-
- set_bit(WORK_LINK_UP, &priv->work_pending);
-
-The problem is that set_bit() takes the actual bit number and not a mask
-so static checkers get upset. It doesn't affect run time because we do
-it consistently, but we may as well clean it up.
-
-Fixes: 6010ce07a66c ('rndis_wlan: do link-down state change in worker thread')
-Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- drivers/net/wireless/rndis_wlan.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
---- a/drivers/net/wireless/rndis_wlan.c
-+++ b/drivers/net/wireless/rndis_wlan.c
-@@ -407,9 +407,9 @@ struct ndis_80211_pmkid {
- #define CAP_MODE_80211G 4
- #define CAP_MODE_MASK 7
-
--#define WORK_LINK_UP (1<<0)
--#define WORK_LINK_DOWN (1<<1)
--#define WORK_SET_MULTICAST_LIST (1<<2)
-+#define WORK_LINK_UP 0
-+#define WORK_LINK_DOWN 1
-+#define WORK_SET_MULTICAST_LIST 2
-
- #define RNDIS_WLAN_ALG_NONE 0
- #define RNDIS_WLAN_ALG_WEP (1<<0)
diff --git a/patches/sctp-fix-asconf-list-handling.patch b/patches/sctp-fix-asconf-list-handling.patch
deleted file mode 100644
index 89249d6..0000000
--- a/patches/sctp-fix-asconf-list-handling.patch
+++ /dev/null
@@ -1,181 +0,0 @@
-From 2d45a02d0166caf2627fe91897c6ffc3b19514c4 Mon Sep 17 00:00:00 2001
-From: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
-Date: Fri, 12 Jun 2015 10:16:41 -0300
-Subject: sctp: fix ASCONF list handling
-
-commit 2d45a02d0166caf2627fe91897c6ffc3b19514c4 upstream.
-
-->auto_asconf_splist is per namespace and mangled by functions like
-sctp_setsockopt_auto_asconf() which doesn't guarantee any serialization.
-
-Also, the call to inet_sk_copy_descendant() was backuping
-->auto_asconf_list through the copy but was not honoring
-->do_auto_asconf, which could lead to list corruption if it was
-different between both sockets.
-
-This commit thus fixes the list handling by using ->addr_wq_lock
-spinlock to protect the list. A special handling is done upon socket
-creation and destruction for that. Error handlig on sctp_init_sock()
-will never return an error after having initialized asconf, so
-sctp_destroy_sock() can be called without addrq_wq_lock. The lock now
-will be take on sctp_close_sock(), before locking the socket, so we
-don't do it in inverse order compared to sctp_addr_wq_timeout_handler().
-
-Instead of taking the lock on sctp_sock_migrate() for copying and
-restoring the list values, it's preferred to avoid rewritting it by
-implementing sctp_copy_descendant().
-
-Issue was found with a test application that kept flipping sysctl
-default_auto_asconf on and off, but one could trigger it by issuing
-simultaneous setsockopt() calls on multiple sockets or by
-creating/destroying sockets fast enough. This is only triggerable
-locally.
-
-Fixes: 9f7d653b67ae ("sctp: Add Auto-ASCONF support (core).")
-Reported-by: Ji Jianwen <jiji@redhat.com>
-Suggested-by: Neil Horman <nhorman@tuxdriver.com>
-Suggested-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
-Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
-Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-[lizf: Backported to 3.4:
- - use global spinlock instead of per-namespace lock]
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- include/net/sctp/structs.h | 5 +++++
- net/sctp/socket.c | 43 ++++++++++++++++++++++++++++++++-----------
- 2 files changed, 37 insertions(+), 11 deletions(-)
-
---- a/include/net/sctp/structs.h
-+++ b/include/net/sctp/structs.h
-@@ -209,6 +209,7 @@ extern struct sctp_globals {
- struct list_head addr_waitq;
- struct timer_list addr_wq_timer;
- struct list_head auto_asconf_splist;
-+ /* Lock that protects both addr_waitq and auto_asconf_splist */
- spinlock_t addr_wq_lock;
-
- /* Lock that protects the local_addr_list writers */
-@@ -355,6 +356,10 @@ struct sctp_sock {
- atomic_t pd_mode;
- /* Receive to here while partial delivery is in effect. */
- struct sk_buff_head pd_lobby;
-+
-+ /* These must be the last fields, as they will skipped on copies,
-+ * like on accept and peeloff operations
-+ */
- struct list_head auto_asconf_list;
- int do_auto_asconf;
- };
---- a/net/sctp/socket.c
-+++ b/net/sctp/socket.c
-@@ -1539,8 +1539,10 @@ SCTP_STATIC void sctp_close(struct sock
-
- /* Supposedly, no process has access to the socket, but
- * the net layers still may.
-+ * Also, sctp_destroy_sock() needs to be called with addr_wq_lock
-+ * held and that should be grabbed before socket lock.
- */
-- sctp_local_bh_disable();
-+ spin_lock_bh(&sctp_globals.addr_wq_lock);
- sctp_bh_lock_sock(sk);
-
- /* Hold the sock, since sk_common_release() will put sock_put()
-@@ -1550,7 +1552,7 @@ SCTP_STATIC void sctp_close(struct sock
- sk_common_release(sk);
-
- sctp_bh_unlock_sock(sk);
-- sctp_local_bh_enable();
-+ spin_unlock_bh(&sctp_globals.addr_wq_lock);
-
- sock_put(sk);
-
-@@ -3492,6 +3494,7 @@ static int sctp_setsockopt_auto_asconf(s
- if ((val && sp->do_auto_asconf) || (!val && !sp->do_auto_asconf))
- return 0;
-
-+ spin_lock_bh(&sctp_globals.addr_wq_lock);
- if (val == 0 && sp->do_auto_asconf) {
- list_del(&sp->auto_asconf_list);
- sp->do_auto_asconf = 0;
-@@ -3500,6 +3503,7 @@ static int sctp_setsockopt_auto_asconf(s
- &sctp_auto_asconf_splist);
- sp->do_auto_asconf = 1;
- }
-+ spin_unlock_bh(&sctp_globals.addr_wq_lock);
- return 0;
- }
-
-@@ -3935,18 +3939,28 @@ SCTP_STATIC int sctp_init_sock(struct so
- local_bh_disable();
- percpu_counter_inc(&sctp_sockets_allocated);
- sock_prot_inuse_add(sock_net(sk), sk->sk_prot, 1);
-+
-+ /* Nothing can fail after this block, otherwise
-+ * sctp_destroy_sock() will be called without addr_wq_lock held
-+ */
- if (sctp_default_auto_asconf) {
-+ spin_lock(&sctp_globals.addr_wq_lock);
- list_add_tail(&sp->auto_asconf_list,
- &sctp_auto_asconf_splist);
- sp->do_auto_asconf = 1;
-- } else
-+ spin_unlock(&sctp_globals.addr_wq_lock);
-+ } else {
- sp->do_auto_asconf = 0;
-+ }
-+
- local_bh_enable();
-
- return 0;
- }
-
--/* Cleanup any SCTP per socket resources. */
-+/* Cleanup any SCTP per socket resources. Must be called with
-+ * sctp_globals.addr_wq_lock held if sp->do_auto_asconf is true
-+ */
- SCTP_STATIC void sctp_destroy_sock(struct sock *sk)
- {
- struct sctp_sock *sp;
-@@ -6746,6 +6760,19 @@ void sctp_copy_sock(struct sock *newsk,
- newinet->mc_list = NULL;
- }
-
-+static inline void sctp_copy_descendant(struct sock *sk_to,
-+ const struct sock *sk_from)
-+{
-+ int ancestor_size = sizeof(struct inet_sock) +
-+ sizeof(struct sctp_sock) -
-+ offsetof(struct sctp_sock, auto_asconf_list);
-+
-+ if (sk_from->sk_family == PF_INET6)
-+ ancestor_size += sizeof(struct ipv6_pinfo);
-+
-+ __inet_sk_copy_descendant(sk_to, sk_from, ancestor_size);
-+}
-+
- /* Populate the fields of the newsk from the oldsk and migrate the assoc
- * and its messages to the newsk.
- */
-@@ -6760,7 +6787,6 @@ static void sctp_sock_migrate(struct soc
- struct sk_buff *skb, *tmp;
- struct sctp_ulpevent *event;
- struct sctp_bind_hashbucket *head;
-- struct list_head tmplist;
-
- /* Migrate socket buffer sizes and all the socket level options to the
- * new socket.
-@@ -6768,12 +6794,7 @@ static void sctp_sock_migrate(struct soc
- newsk->sk_sndbuf = oldsk->sk_sndbuf;
- newsk->sk_rcvbuf = oldsk->sk_rcvbuf;
- /* Brute force copy old sctp opt. */
-- if (oldsp->do_auto_asconf) {
-- memcpy(&tmplist, &newsp->auto_asconf_list, sizeof(tmplist));
-- inet_sk_copy_descendant(newsk, oldsk);
-- memcpy(&newsp->auto_asconf_list, &tmplist, sizeof(tmplist));
-- } else
-- inet_sk_copy_descendant(newsk, oldsk);
-+ sctp_copy_descendant(newsk, oldsk);
-
- /* Restore the ep value that was overwritten with the above structure
- * copy.
diff --git a/patches/staging-rtl8712-prevent-buffer-overrun-in-recvbuf2recvframe.patch b/patches/staging-rtl8712-prevent-buffer-overrun-in-recvbuf2recvframe.patch
deleted file mode 100644
index 93319c3..0000000
--- a/patches/staging-rtl8712-prevent-buffer-overrun-in-recvbuf2recvframe.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From cab462140f8a183e3cca0b51c8b59ef715cb6148 Mon Sep 17 00:00:00 2001
-From: Haggai Eran <haggai.eran@gmail.com>
-Date: Sat, 23 May 2015 23:13:51 +0300
-Subject: staging: rtl8712: prevent buffer overrun in recvbuf2recvframe
-
-commit cab462140f8a183e3cca0b51c8b59ef715cb6148 upstream.
-
-With an RTL8191SU USB adaptor, sometimes the hints for a fragmented
-packet are set, but the packet length is too large. Allocate enough
-space to prevent memory corruption and a resulting kernel panic [1].
-
-[1] http://www.spinics.net/lists/linux-wireless/msg136546.html
-
-Signed-off-by: Haggai Eran <haggai.eran@gmail.com>
-ACKed-by: Larry Finger <Larry.Finger@lwfinger.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- drivers/staging/rtl8712/rtl8712_recv.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
---- a/drivers/staging/rtl8712/rtl8712_recv.c
-+++ b/drivers/staging/rtl8712/rtl8712_recv.c
-@@ -1074,7 +1074,8 @@ static int recvbuf2recvframe(struct _ada
- /* for first fragment packet, driver need allocate 1536 +
- * drvinfo_sz + RXDESC_SIZE to defrag packet. */
- if ((mf == 1) && (frag == 0))
-- alloc_sz = 1658;/*1658+6=1664, 1664 is 128 alignment.*/
-+ /*1658+6=1664, 1664 is 128 alignment.*/
-+ alloc_sz = max_t(u16, tmp_len, 1658);
- else
- alloc_sz = tmp_len;
- /* 2 is for IP header 4 bytes alignment in QoS packet case.
diff --git a/patches/stmmac-troubleshoot-unexpected-bits-in-des0-des1.patch b/patches/stmmac-troubleshoot-unexpected-bits-in-des0-des1.patch
deleted file mode 100644
index 5f07ce6..0000000
--- a/patches/stmmac-troubleshoot-unexpected-bits-in-des0-des1.patch
+++ /dev/null
@@ -1,148 +0,0 @@
-From f1590670ce069eefeb93916391a67643e6ad1630 Mon Sep 17 00:00:00 2001
-From: Alexey Brodkin <Alexey.Brodkin@synopsys.com>
-Date: Wed, 24 Jun 2015 11:47:41 +0300
-Subject: stmmac: troubleshoot unexpected bits in des0 & des1
-
-commit f1590670ce069eefeb93916391a67643e6ad1630 upstream.
-
-Current implementation of descriptor init procedure only takes
-care about setting/clearing ownership flag in "des0"/"des1"
-fields while it is perfectly possible to get unexpected bits
-set because of the following factors:
-
- [1] On driver probe underlying memory allocated with
- dma_alloc_coherent() might not be zeroed and so
- it will be filled with garbage.
-
- [2] During driver operation some bits could be set by SD/MMC
- controller (for example error flags etc).
-
-And unexpected and/or randomly set flags in "des0"/"des1"
-fields may lead to unpredictable behavior of GMAC DMA block.
-
-This change addresses both items above with:
-
- [1] Use of dma_zalloc_coherent() instead of simple
- dma_alloc_coherent() to make sure allocated memory is
- zeroed. That shouldn't affect performance because
- this allocation only happens once on driver probe.
-
- [2] Do explicit zeroing of both "des0" and "des1" fields
- of all buffer descriptors during initialization of
- DMA transfer.
-
-And while at it fixed identation of dma_free_coherent()
-counterpart as well.
-
-Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
-Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com>
-Cc: arc-linux-dev@synopsys.com
-Cc: linux-kernel@vger.kernel.org
-Cc: David Miller <davem@davemloft.net>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-[lizf: Backported to 3.4:
- - adjust contest
- - adjust allocations in init_dma_desc_rings()]
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- drivers/net/ethernet/stmicro/stmmac/descs.h | 2 ++
- drivers/net/ethernet/stmicro/stmmac/enh_desc.c | 4 +++-
- drivers/net/ethernet/stmicro/stmmac/norm_desc.c | 4 +++-
- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 18 ++++++++----------
- 4 files changed, 16 insertions(+), 12 deletions(-)
-
---- a/drivers/net/ethernet/stmicro/stmmac/descs.h
-+++ b/drivers/net/ethernet/stmicro/stmmac/descs.h
-@@ -153,6 +153,8 @@ struct dma_desc {
- u32 buffer2_size:13;
- u32 reserved4:3;
- } etx; /* -- enhanced -- */
-+
-+ u64 all_flags;
- } des01;
- unsigned int des2;
- unsigned int des3;
---- a/drivers/net/ethernet/stmicro/stmmac/enh_desc.c
-+++ b/drivers/net/ethernet/stmicro/stmmac/enh_desc.c
-@@ -232,6 +232,7 @@ static void enh_desc_init_rx_desc(struct
- {
- int i;
- for (i = 0; i < ring_size; i++) {
-+ p->des01.all_flags = 0;
- p->des01.erx.own = 1;
- p->des01.erx.buffer1_size = BUF_SIZE_8KiB - 1;
-
-@@ -248,7 +249,7 @@ static void enh_desc_init_tx_desc(struct
- int i;
-
- for (i = 0; i < ring_size; i++) {
-- p->des01.etx.own = 0;
-+ p->des01.all_flags = 0;
- ehn_desc_tx_set_on_ring_chain(p, (i == ring_size - 1));
- p++;
- }
-@@ -271,6 +272,7 @@ static void enh_desc_set_tx_owner(struct
-
- static void enh_desc_set_rx_owner(struct dma_desc *p)
- {
-+ p->des01.all_flags = 0;
- p->des01.erx.own = 1;
- }
-
---- a/drivers/net/ethernet/stmicro/stmmac/norm_desc.c
-+++ b/drivers/net/ethernet/stmicro/stmmac/norm_desc.c
-@@ -126,6 +126,7 @@ static void ndesc_init_rx_desc(struct dm
- {
- int i;
- for (i = 0; i < ring_size; i++) {
-+ p->des01.all_flags = 0;
- p->des01.rx.own = 1;
- p->des01.rx.buffer1_size = BUF_SIZE_2KiB - 1;
-
-@@ -141,7 +142,7 @@ static void ndesc_init_tx_desc(struct dm
- {
- int i;
- for (i = 0; i < ring_size; i++) {
-- p->des01.tx.own = 0;
-+ p->des01.all_flags = 0;
- ndesc_tx_set_on_ring_chain(p, (i == (ring_size - 1)));
- p++;
- }
-@@ -164,6 +165,7 @@ static void ndesc_set_tx_owner(struct dm
-
- static void ndesc_set_rx_owner(struct dma_desc *p)
- {
-+ p->des01.all_flags = 0;
- p->des01.rx.own = 1;
- }
-
---- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
-+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
-@@ -424,19 +424,17 @@ static void init_dma_desc_rings(struct n
- priv->rx_skbuff =
- kmalloc(sizeof(struct sk_buff *) * rxsize, GFP_KERNEL);
- priv->dma_rx =
-- (struct dma_desc *)dma_alloc_coherent(priv->device,
-- rxsize *
-- sizeof(struct dma_desc),
-- &priv->dma_rx_phy,
-- GFP_KERNEL);
-+ (struct dma_desc *)dma_zalloc_coherent(priv->device, rxsize *
-+ sizeof(struct dma_desc),
-+ &priv->dma_rx_phy,
-+ GFP_KERNEL);
- priv->tx_skbuff = kmalloc(sizeof(struct sk_buff *) * txsize,
- GFP_KERNEL);
- priv->dma_tx =
-- (struct dma_desc *)dma_alloc_coherent(priv->device,
-- txsize *
-- sizeof(struct dma_desc),
-- &priv->dma_tx_phy,
-- GFP_KERNEL);
-+ (struct dma_desc *)dma_zalloc_coherent(priv->device, txsize *
-+ sizeof(struct dma_desc),
-+ &priv->dma_tx_phy,
-+ GFP_KERNEL);
-
- if ((priv->dma_rx == NULL) || (priv->dma_tx == NULL)) {
- pr_err("%s:ERROR allocating the DMA Tx/Rx desc\n", __func__);
diff --git a/patches/sunrpc-fix-a-memory-leak-in-the-backchannel-code.patch b/patches/sunrpc-fix-a-memory-leak-in-the-backchannel-code.patch
deleted file mode 100644
index 3e546d5..0000000
--- a/patches/sunrpc-fix-a-memory-leak-in-the-backchannel-code.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 88de6af24f2b48b06c514d3c3d0a8f22fafe30bd Mon Sep 17 00:00:00 2001
-From: Trond Myklebust <trond.myklebust@primarydata.com>
-Date: Mon, 1 Jun 2015 15:10:25 -0400
-Subject: SUNRPC: Fix a memory leak in the backchannel code
-
-commit 88de6af24f2b48b06c514d3c3d0a8f22fafe30bd upstream.
-
-req->rq_private_buf isn't initialised when xprt_setup_backchannel calls
-xprt_free_allocation.
-
-Fixes: fb7a0b9addbdb ("nfs41: New backchannel helper routines")
-Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
-[lizf: Backported to 3.4: adjust context]
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- net/sunrpc/backchannel_rqst.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/net/sunrpc/backchannel_rqst.c
-+++ b/net/sunrpc/backchannel_rqst.c
-@@ -60,7 +60,7 @@ static void xprt_free_allocation(struct
-
- dprintk("RPC: free allocations for req= %p\n", req);
- BUG_ON(test_bit(RPC_BC_PA_IN_USE, &req->rq_bc_pa_state));
-- xbufp = &req->rq_private_buf;
-+ xbufp = &req->rq_rcv_buf;
- free_page((unsigned long)xbufp->head[0].iov_base);
- xbufp = &req->rq_snd_buf;
- free_page((unsigned long)xbufp->head[0].iov_base);
diff --git a/patches/tracing-filter-do-not-allow-infix-to-exceed-end-of-string.patch b/patches/tracing-filter-do-not-allow-infix-to-exceed-end-of-string.patch
deleted file mode 100644
index b52f912..0000000
--- a/patches/tracing-filter-do-not-allow-infix-to-exceed-end-of-string.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 6b88f44e161b9ee2a803e5b2b1fbcf4e20e8b980 Mon Sep 17 00:00:00 2001
-From: "Steven Rostedt (Red Hat)" <rostedt@goodmis.org>
-Date: Thu, 25 Jun 2015 18:10:09 -0400
-Subject: tracing/filter: Do not allow infix to exceed end of string
-
-commit 6b88f44e161b9ee2a803e5b2b1fbcf4e20e8b980 upstream.
-
-While debugging a WARN_ON() for filtering, I found that it is possible
-for the filter string to be referenced after its end. With the filter:
-
- # echo '>' > /sys/kernel/debug/events/ext4/ext4_truncate_exit/filter
-
-The filter_parse() function can call infix_get_op() which calls
-infix_advance() that updates the infix filter pointers for the cnt
-and tail without checking if the filter is already at the end, which
-will put the cnt to zero and the tail beyond the end. The loop then calls
-infix_next() that has
-
- ps->infix.cnt--;
- return ps->infix.string[ps->infix.tail++];
-
-The cnt will now be below zero, and the tail that is returned is
-already passed the end of the filter string. So far the allocation
-of the filter string usually has some buffer that is zeroed out, but
-if the filter string is of the exact size of the allocated buffer
-there's no guarantee that the charater after the nul terminating
-character will be zero.
-
-Luckily, only root can write to the filter.
-
-Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- kernel/trace/trace_events_filter.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
---- a/kernel/trace/trace_events_filter.c
-+++ b/kernel/trace/trace_events_filter.c
-@@ -1044,6 +1044,9 @@ static void parse_init(struct filter_par
-
- static char infix_next(struct filter_parse_state *ps)
- {
-+ if (!ps->infix.cnt)
-+ return 0;
-+
- ps->infix.cnt--;
-
- return ps->infix.string[ps->infix.tail++];
-@@ -1059,6 +1062,9 @@ static char infix_peek(struct filter_par
-
- static void infix_advance(struct filter_parse_state *ps)
- {
-+ if (!ps->infix.cnt)
-+ return;
-+
- ps->infix.cnt--;
- ps->infix.tail++;
- }
diff --git a/patches/tracing-filter-do-not-warn-on-operand-count-going-below-zero.patch b/patches/tracing-filter-do-not-warn-on-operand-count-going-below-zero.patch
deleted file mode 100644
index 81b56bc..0000000
--- a/patches/tracing-filter-do-not-warn-on-operand-count-going-below-zero.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From b4875bbe7e68f139bd3383828ae8e994a0df6d28 Mon Sep 17 00:00:00 2001
-From: "Steven Rostedt (Red Hat)" <rostedt@goodmis.org>
-Date: Thu, 25 Jun 2015 18:02:29 -0400
-Subject: tracing/filter: Do not WARN on operand count going below zero
-
-commit b4875bbe7e68f139bd3383828ae8e994a0df6d28 upstream.
-
-When testing the fix for the trace filter, I could not come up with
-a scenario where the operand count goes below zero, so I added a
-WARN_ON_ONCE(cnt < 0) to the logic. But there is legitimate case
-that it can happen (although the filter would be wrong).
-
- # echo '>' > /sys/kernel/debug/events/ext4/ext4_truncate_exit/filter
-
-That is, a single operation without any operands will hit the path
-where the WARN_ON_ONCE() can trigger. Although this is harmless,
-and the filter is reported as a error. But instead of spitting out
-a warning to the kernel dmesg, just fail nicely and report it via
-the proper channels.
-
-Link: http://lkml.kernel.org/r/558C6082.90608@oracle.com
-
-Reported-by: Vince Weaver <vincent.weaver@maine.edu>
-Reported-by: Sasha Levin <sasha.levin@oracle.com>
-Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- kernel/trace/trace_events_filter.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
---- a/kernel/trace/trace_events_filter.c
-+++ b/kernel/trace/trace_events_filter.c
-@@ -1372,7 +1372,9 @@ static int check_preds(struct filter_par
- }
- cnt--;
- n_normal_preds++;
-- WARN_ON_ONCE(cnt < 0);
-+ /* all ops should have operands */
-+ if (cnt < 0)
-+ break;
- }
-
- if (cnt != 1 || !n_normal_preds || n_logical_preds >= n_normal_preds) {
diff --git a/patches/tty-serial-at91-rs485-mode-0-is-valid-for-delay_rts_after_send.patch b/patches/tty-serial-at91-rs485-mode-0-is-valid-for-delay_rts_after_send.patch
deleted file mode 100644
index 0e4d1c6..0000000
--- a/patches/tty-serial-at91-rs485-mode-0-is-valid-for-delay_rts_after_send.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 8687634b7908c42eb700e0469e110e02833611d1 Mon Sep 17 00:00:00 2001
-From: Nicolas Ferre <nicolas.ferre@atmel.com>
-Date: Mon, 11 May 2015 13:00:31 +0200
-Subject: tty/serial: at91: RS485 mode: 0 is valid for delay_rts_after_send
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 8687634b7908c42eb700e0469e110e02833611d1 upstream.
-
-In RS485 mode, we may want to set the delay_rts_after_send value to 0.
-In the datasheet, the 0 value is said to "disable" the Transmitter Timeguard but
-this is exactly the expected behavior if we want no delay...
-
-Moreover, if the value was set to non-zero value by device-tree or earlier
-ioctl command, it was impossible to change it back to zero.
-
-Reported-by: Sami Pietikäinen <Sami.Pietikainen@wapice.com>
-Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-[lizf: Backported to 3.4: adjust context]
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- drivers/tty/serial/atmel_serial.c | 11 +++--------
- 1 file changed, 3 insertions(+), 8 deletions(-)
-
---- a/drivers/tty/serial/atmel_serial.c
-+++ b/drivers/tty/serial/atmel_serial.c
-@@ -229,8 +229,7 @@ void atmel_config_rs485(struct uart_port
- if (rs485conf->flags & SER_RS485_ENABLED) {
- dev_dbg(port->dev, "Setting UART to RS485\n");
- atmel_port->tx_done_mask = ATMEL_US_TXEMPTY;
-- if ((rs485conf->delay_rts_after_send) > 0)
-- UART_PUT_TTGR(port, rs485conf->delay_rts_after_send);
-+ UART_PUT_TTGR(port, rs485conf->delay_rts_after_send);
- mode |= ATMEL_US_USMODE_RS485;
- } else {
- dev_dbg(port->dev, "Setting UART to RS232\n");
-@@ -305,9 +304,7 @@ static void atmel_set_mctrl(struct uart_
-
- if (atmel_port->rs485.flags & SER_RS485_ENABLED) {
- dev_dbg(port->dev, "Setting UART to RS485\n");
-- if ((atmel_port->rs485.delay_rts_after_send) > 0)
-- UART_PUT_TTGR(port,
-- atmel_port->rs485.delay_rts_after_send);
-+ UART_PUT_TTGR(port, atmel_port->rs485.delay_rts_after_send);
- mode |= ATMEL_US_USMODE_RS485;
- } else {
- dev_dbg(port->dev, "Setting UART to RS232\n");
-@@ -1239,9 +1236,7 @@ static void atmel_set_termios(struct uar
-
- if (atmel_port->rs485.flags & SER_RS485_ENABLED) {
- dev_dbg(port->dev, "Setting UART to RS485\n");
-- if ((atmel_port->rs485.delay_rts_after_send) > 0)
-- UART_PUT_TTGR(port,
-- atmel_port->rs485.delay_rts_after_send);
-+ UART_PUT_TTGR(port, atmel_port->rs485.delay_rts_after_send);
- mode |= ATMEL_US_USMODE_RS485;
- } else {
- dev_dbg(port->dev, "Setting UART to RS232\n");
diff --git a/patches/usb-core-fix-usb-3.0-devices-lost-in-notattached-state-after-a-hub-port-reset.patch b/patches/usb-core-fix-usb-3.0-devices-lost-in-notattached-state-after-a-hub-port-reset.patch
deleted file mode 100644
index 2a4e3e3..0000000
--- a/patches/usb-core-fix-usb-3.0-devices-lost-in-notattached-state-after-a-hub-port-reset.patch
+++ /dev/null
@@ -1,174 +0,0 @@
-From fb6d1f7df5d25299fd7b3e84b72b8851d3634764 Mon Sep 17 00:00:00 2001
-From: Robert Schlabbach <Robert.Schlabbach@gmx.net>
-Date: Tue, 26 May 2015 00:27:30 +0200
-Subject: usb: core: Fix USB 3.0 devices lost in NOTATTACHED state after a hub
- port reset
-
-commit fb6d1f7df5d25299fd7b3e84b72b8851d3634764 upstream.
-
-Fix USB 3.0 devices lost in NOTATTACHED state after a hub port reset.
-
-Dissolve the function hub_port_finish_reset() completely and divide the
-actions to be taken into those which need to be done after each reset
-attempt and those which need to be done after the full procedure is
-complete, and place them in the appropriate places in hub_port_reset().
-Also, remove an unneeded forward declaration of hub_port_reset().
-
-Verbose Problem Description:
-
-USB 3.0 devices may be "lost for good" during a hub port reset.
-This makes Linux unable to boot from USB 3.0 devices in certain
-constellations of host controllers and devices, because the USB device is
-lost during initialization, preventing the rootfs from being mounted.
-
-The underlying problem is that in the affected constellations, during the
-processing inside hub_port_reset(), the hub link state goes from 0 to
-SS.inactive after the initial reset, and back to 0 again only after the
-following "warm" reset.
-
-However, hub_port_finish_reset() is called after each reset attempt and
-sets the state the connected USB device based on the "preliminary" status
-of the hot reset to USB_STATE_NOTATTACHED due to SS.inactive, yet when
-the following warm reset is complete and hub_port_finish_reset() is
-called again, its call to set the device to USB_STATE_DEFAULT is blocked
-by usb_set_device_state() which does not allow taking USB devices out of
-USB_STATE_NOTATTACHED state.
-
-Thanks to Alan Stern for guiding me to the proper solution and how to
-submit it.
-
-Link: http://lkml.kernel.org/r/trinity-25981484-72a9-4d46-bf17-9c1cf9301a31-1432073240136%20()%203capp-gmx-bs27
-Signed-off-by: Robert Schlabbach <robert_s@gmx.net>
-Acked-by: Alan Stern <stern@rowland.harvard.edu>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-[lizf: Backported to 3.4:
- - adjust context
- - s/usb_clear_port_feature/clear_port_feature
- - hub_port_warm_reset_required() takes only two arguments]
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- drivers/usb/core/hub.c | 81 +++++++++++++++++++------------------------------
- 1 file changed, 32 insertions(+), 49 deletions(-)
-
---- a/drivers/usb/core/hub.c
-+++ b/drivers/usb/core/hub.c
-@@ -2176,9 +2176,6 @@ static unsigned hub_is_wusb(struct usb_h
- #define HUB_LONG_RESET_TIME 200
- #define HUB_RESET_TIMEOUT 800
-
--static int hub_port_reset(struct usb_hub *hub, int port1,
-- struct usb_device *udev, unsigned int delay, bool warm);
--
- /* Is a USB 3.0 port in the Inactive or Complinance Mode state?
- * Port worm reset is required to recover
- */
-@@ -2258,44 +2255,6 @@ delay:
- return -EBUSY;
- }
-
--static void hub_port_finish_reset(struct usb_hub *hub, int port1,
-- struct usb_device *udev, int *status)
--{
-- switch (*status) {
-- case 0:
-- /* TRSTRCY = 10 ms; plus some extra */
-- msleep(10 + 40);
-- if (udev) {
-- struct usb_hcd *hcd = bus_to_hcd(udev->bus);
--
-- update_devnum(udev, 0);
-- /* The xHC may think the device is already reset,
-- * so ignore the status.
-- */
-- if (hcd->driver->reset_device)
-- hcd->driver->reset_device(hcd, udev);
-- }
-- /* FALL THROUGH */
-- case -ENOTCONN:
-- case -ENODEV:
-- clear_port_feature(hub->hdev,
-- port1, USB_PORT_FEAT_C_RESET);
-- if (hub_is_superspeed(hub->hdev)) {
-- clear_port_feature(hub->hdev, port1,
-- USB_PORT_FEAT_C_BH_PORT_RESET);
-- clear_port_feature(hub->hdev, port1,
-- USB_PORT_FEAT_C_PORT_LINK_STATE);
-- clear_port_feature(hub->hdev, port1,
-- USB_PORT_FEAT_C_CONNECTION);
-- }
-- if (udev)
-- usb_set_device_state(udev, *status
-- ? USB_STATE_NOTATTACHED
-- : USB_STATE_DEFAULT);
-- break;
-- }
--}
--
- /* Handle port reset and port warm(BH) reset (for USB3 protocol ports) */
- static int hub_port_reset(struct usb_hub *hub, int port1,
- struct usb_device *udev, unsigned int delay, bool warm)
-@@ -2318,13 +2277,9 @@ static int hub_port_reset(struct usb_hub
- * If the caller hasn't explicitly requested a warm reset,
- * double check and see if one is needed.
- */
-- status = hub_port_status(hub, port1,
-- &portstatus, &portchange);
-- if (status < 0)
-- goto done;
--
-- if (hub_port_warm_reset_required(hub, portstatus))
-- warm = true;
-+ if (hub_port_status(hub, port1, &portstatus, &portchange) == 0)
-+ if (hub_port_warm_reset_required(hub, portstatus))
-+ warm = true;
- }
-
- /* Reset the port */
-@@ -2347,11 +2302,19 @@ static int hub_port_reset(struct usb_hub
-
- /* Check for disconnect or reset */
- if (status == 0 || status == -ENOTCONN || status == -ENODEV) {
-- hub_port_finish_reset(hub, port1, udev, &status);
-+ clear_port_feature(hub->hdev, port1,
-+ USB_PORT_FEAT_C_RESET);
-
- if (!hub_is_superspeed(hub->hdev))
- goto done;
-
-+ clear_port_feature(hub->hdev, port1,
-+ USB_PORT_FEAT_C_BH_PORT_RESET);
-+ clear_port_feature(hub->hdev, port1,
-+ USB_PORT_FEAT_C_PORT_LINK_STATE);
-+ clear_port_feature(hub->hdev, port1,
-+ USB_PORT_FEAT_C_CONNECTION);
-+
- /*
- * If a USB 3.0 device migrates from reset to an error
- * state, re-issue the warm reset.
-@@ -2385,6 +2348,26 @@ static int hub_port_reset(struct usb_hub
- port1);
-
- done:
-+ if (status == 0) {
-+ /* TRSTRCY = 10 ms; plus some extra */
-+ msleep(10 + 40);
-+ if (udev) {
-+ struct usb_hcd *hcd = bus_to_hcd(udev->bus);
-+
-+ update_devnum(udev, 0);
-+ /* The xHC may think the device is already reset,
-+ * so ignore the status.
-+ */
-+ if (hcd->driver->reset_device)
-+ hcd->driver->reset_device(hcd, udev);
-+
-+ usb_set_device_state(udev, USB_STATE_DEFAULT);
-+ }
-+ } else {
-+ if (udev)
-+ usb_set_device_state(udev, USB_STATE_NOTATTACHED);
-+ }
-+
- if (!hub_is_superspeed(hub->hdev))
- up_read(&ehci_cf_port_reset_rwsem);
-
diff --git a/patches/usb-dwc3-gadget-return-error-if-command-sent-to-depcmd-register-fails.patch b/patches/usb-dwc3-gadget-return-error-if-command-sent-to-depcmd-register-fails.patch
deleted file mode 100644
index ae644e3..0000000
--- a/patches/usb-dwc3-gadget-return-error-if-command-sent-to-depcmd-register-fails.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 76e838c9f7765f9a6205b4d558d75a66104bc60d Mon Sep 17 00:00:00 2001
-From: Subbaraya Sundeep Bhatta <subbaraya.sundeep.bhatta@xilinx.com>
-Date: Thu, 21 May 2015 15:46:48 +0530
-Subject: usb: dwc3: gadget: return error if command sent to DEPCMD register
- fails
-
-commit 76e838c9f7765f9a6205b4d558d75a66104bc60d upstream.
-
-We need to return error to caller if command is not sent to
-controller succesfully.
-
-Signed-off-by: Subbaraya Sundeep Bhatta <sbhatta@xilinx.com>
-Fixes: 72246da40f37 (usb: Introduce DesignWare USB3 DRD Driver)
-Signed-off-by: Felipe Balbi <balbi@ti.com>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- drivers/usb/dwc3/gadget.c | 2 ++
- 1 file changed, 2 insertions(+)
-
---- a/drivers/usb/dwc3/gadget.c
-+++ b/drivers/usb/dwc3/gadget.c
-@@ -301,6 +301,8 @@ int dwc3_send_gadget_ep_cmd(struct dwc3
- if (!(reg & DWC3_DEPCMD_CMDACT)) {
- dev_vdbg(dwc->dev, "Command Complete --> %d\n",
- DWC3_DEPCMD_STATUS(reg));
-+ if (DWC3_DEPCMD_STATUS(reg))
-+ return -EINVAL;
- return 0;
- }
-
diff --git a/patches/usb-dwc3-reset-the-transfer-resource-index-on-set_interface.patch b/patches/usb-dwc3-reset-the-transfer-resource-index-on-set_interface.patch
deleted file mode 100644
index a6482c2..0000000
--- a/patches/usb-dwc3-reset-the-transfer-resource-index-on-set_interface.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From aebda618718157a69c0dc0adb978d69bc2b8723c Mon Sep 17 00:00:00 2001
-From: John Youn <John.Youn@synopsys.com>
-Date: Mon, 17 Sep 2001 00:00:00 -0700
-Subject: usb: dwc3: Reset the transfer resource index on SET_INTERFACE
-
-commit aebda618718157a69c0dc0adb978d69bc2b8723c upstream.
-
-This fixes an issue introduced in commit b23c843992b6 (usb: dwc3:
-gadget: fix DEPSTARTCFG for non-EP0 EPs) that made sure we would
-only use DEPSTARTCFG once per SetConfig.
-
-The trick is that we should use one DEPSTARTCFG per SetConfig *OR*
-SetInterface. SetInterface was completely missed from the original
-patch.
-
-This problem became aparent after commit 76e838c9f776 (usb: dwc3:
-gadget: return error if command sent to DEPCMD register fails)
-added checking of the return status of device endpoint commands.
-
-'Set Endpoint Transfer Resource' command was caught failing
-occasionally. This is because the Transfer Resource
-Index was not getting reset during a SET_INTERFACE request.
-
-Finally, to fix the issue, was we have to do is make sure that
-our start_config_issued flag gets reset whenever we receive a
-SetInterface request.
-
-To verify the problem (and its fix), all we have to do is run
-test 9 from testusb with 'testusb -t 9 -s 2048 -a -c 5000'.
-
-Tested-by: Huang Rui <ray.huang@amd.com>
-Tested-by: Subbaraya Sundeep Bhatta <subbaraya.sundeep.bhatta@xilinx.com>
-Fixes: b23c843992b6 (usb: dwc3: gadget: fix DEPSTARTCFG for non-EP0 EPs)
-Signed-off-by: John Youn <johnyoun@synopsys.com>
-Signed-off-by: Felipe Balbi <balbi@ti.com>
-[lizf: Backported to 3.4: use dev_vdbg() instead of dwc3_trace()]
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- drivers/usb/dwc3/ep0.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
---- a/drivers/usb/dwc3/ep0.c
-+++ b/drivers/usb/dwc3/ep0.c
-@@ -644,6 +644,10 @@ static void dwc3_ep0_xfer_complete(struc
- dev_vdbg(dwc->dev, "Status Phase\n");
- dwc3_ep0_complete_req(dwc, event);
- break;
-+ case USB_REQ_SET_INTERFACE:
-+ dev_vdbg(dwc->dev, "USB_REQ_SET_INTERFACE\n");
-+ dwc->start_config_issued = false;
-+ /* Fall through */
- default:
- WARN(true, "UNKNOWN ep0state %d\n", dwc->ep0state);
- }
diff --git a/patches/vfs-test-for-and-handle-paths-that-are-unreachable-from-their-mnt_root.patch b/patches/vfs-test-for-and-handle-paths-that-are-unreachable-from-their-mnt_root.patch
deleted file mode 100644
index eb57b64..0000000
--- a/patches/vfs-test-for-and-handle-paths-that-are-unreachable-from-their-mnt_root.patch
+++ /dev/null
@@ -1,107 +0,0 @@
-From b97fd34ebf9398a1f72b3e04cf371b154c1cdb4f Mon Sep 17 00:00:00 2001
-From: "Eric W. Biederman" <ebiederm@xmission.com>
-Date: Sat, 15 Aug 2015 20:27:13 -0500
-Subject: [PATCH 2/2] vfs: Test for and handle paths that are unreachable from
- their mnt_root
-
-commit 397d425dc26da728396e66d392d5dcb8dac30c37 upstream.
-
-In rare cases a directory can be renamed out from under a bind mount.
-In those cases without special handling it becomes possible to walk up
-the directory tree to the root dentry of the filesystem and down
-from the root dentry to every other file or directory on the filesystem.
-
-Like division by zero .. from an unconnected path can not be given
-a useful semantic as there is no predicting at which path component
-the code will realize it is unconnected. We certainly can not match
-the current behavior as the current behavior is a security hole.
-
-Therefore when encounting .. when following an unconnected path
-return -ENOENT.
-
-- Add a function path_connected to verify path->dentry is reachable
- from path->mnt.mnt_root. AKA to validate that rename did not do
- something nasty to the bind mount.
-
- To avoid races path_connected must be called after following a path
- component to it's next path component.
-
-Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
-Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
----
- fs/namei.c | 29 +++++++++++++++++++++++++++--
- 1 file changed, 27 insertions(+), 2 deletions(-)
-
---- a/fs/namei.c
-+++ b/fs/namei.c
-@@ -397,6 +397,24 @@ void path_put(struct path *path)
- }
- EXPORT_SYMBOL(path_put);
-
-+/**
-+ * path_connected - Verify that a path->dentry is below path->mnt.mnt_root
-+ * @path: nameidate to verify
-+ *
-+ * Rename can sometimes move a file or directory outside of a bind
-+ * mount, path_connected allows those cases to be detected.
-+ */
-+static bool path_connected(const struct path *path)
-+{
-+ struct vfsmount *mnt = path->mnt;
-+
-+ /* Only bind mounts can have disconnected paths */
-+ if (mnt->mnt_root == mnt->mnt_sb->s_root)
-+ return true;
-+
-+ return is_subdir(path->dentry, mnt->mnt_root);
-+}
-+
- /*
- * Path walking has 2 modes, rcu-walk and ref-walk (see
- * Documentation/filesystems/path-lookup.txt). In situations when we can't
-@@ -945,6 +963,8 @@ static int follow_dotdot_rcu(struct name
- goto failed;
- nd->path.dentry = parent;
- nd->seq = seq;
-+ if (unlikely(!path_connected(&nd->path)))
-+ goto failed;
- break;
- }
- if (!follow_up_rcu(&nd->path))
-@@ -1029,7 +1049,7 @@ static void follow_mount(struct path *pa
- }
- }
-
--static void follow_dotdot(struct nameidata *nd)
-+static int follow_dotdot(struct nameidata *nd)
- {
- if (!nd->root.mnt)
- set_root(nd);
-@@ -1045,6 +1065,10 @@ static void follow_dotdot(struct nameida
- /* rare case of legitimate dget_parent()... */
- nd->path.dentry = dget_parent(nd->path.dentry);
- dput(old);
-+ if (unlikely(!path_connected(&nd->path))) {
-+ path_put(&nd->path);
-+ return -ENOENT;
-+ }
- break;
- }
- if (!follow_up(&nd->path))
-@@ -1052,6 +1076,7 @@ static void follow_dotdot(struct nameida
- }
- follow_mount(&nd->path);
- nd->inode = nd->path.dentry->d_inode;
-+ return 0;
- }
-
- /*
-@@ -1252,7 +1277,7 @@ static inline int handle_dots(struct nam
- if (follow_dotdot_rcu(nd))
- return -ECHILD;
- } else
-- follow_dotdot(nd);
-+ return follow_dotdot(nd);
- }
- return 0;
- }
diff --git a/patches/watchdog-omap-assert-the-counter-being-stopped-before-reprogramming.patch b/patches/watchdog-omap-assert-the-counter-being-stopped-before-reprogramming.patch
deleted file mode 100644
index f5f8f57..0000000
--- a/patches/watchdog-omap-assert-the-counter-being-stopped-before-reprogramming.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 530c11d432727c697629ad5f9d00ee8e2864d453 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= <u.kleine-koenig@pengutronix.de>
-Date: Wed, 29 Apr 2015 20:38:46 +0200
-Subject: watchdog: omap: assert the counter being stopped before reprogramming
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 530c11d432727c697629ad5f9d00ee8e2864d453 upstream.
-
-The omap watchdog has the annoying behaviour that writes to most
-registers don't have any effect when the watchdog is already running.
-Quoting the AM335x reference manual:
-
- To modify the timer counter value (the WDT_WCRR register),
- prescaler ratio (the WDT_WCLR[4:2] PTV bit field), delay
- configuration value (the WDT_WDLY[31:0] DLY_VALUE bit field), or
- the load value (the WDT_WLDR[31:0] TIMER_LOAD bit field), the
- watchdog timer must be disabled by using the start/stop sequence
- (the WDT_WSPR register).
-
-Currently the timer is stopped in the .probe callback but still there
-are possibilities that yield to a situation where omap_wdt_start is
-entered with the timer running (e.g. when /dev/watchdog is closed
-without stopping and then reopened). In such a case programming the
-timeout silently fails!
-
-To circumvent this stop the timer before reprogramming.
-
-Assuming one of the first things the watchdog user does is setting the
-timeout explicitly nothing too bad should happen because this explicit
-setting works fine.
-
-Fixes: 7768a13c252a ("[PATCH] OMAP: Add Watchdog driver support")
-Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
-Reviewed-by: Guenter Roeck <linux@roeck-us.net>
-Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- drivers/watchdog/omap_wdt.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
---- a/drivers/watchdog/omap_wdt.c
-+++ b/drivers/watchdog/omap_wdt.c
-@@ -152,6 +152,13 @@ static int omap_wdt_open(struct inode *i
-
- pm_runtime_get_sync(wdev->dev);
-
-+ /*
-+ * Make sure the watchdog is disabled. This is unfortunately required
-+ * because writing to various registers with the watchdog running has no
-+ * effect.
-+ */
-+ omap_wdt_disable(wdev);
-+
- /* initialize prescaler */
- while (__raw_readl(base + OMAP_WATCHDOG_WPS) & 0x01)
- cpu_relax();
diff --git a/patches/x86-pci-use-host-bridge-_crs-info-on-foxconn-k8m890-8237a.patch b/patches/x86-pci-use-host-bridge-_crs-info-on-foxconn-k8m890-8237a.patch
deleted file mode 100644
index 7e5e860..0000000
--- a/patches/x86-pci-use-host-bridge-_crs-info-on-foxconn-k8m890-8237a.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 1dace0116d0b05c967d94644fc4dfe96be2ecd3d Mon Sep 17 00:00:00 2001
-From: Bjorn Helgaas <bhelgaas@google.com>
-Date: Tue, 9 Jun 2015 18:54:07 -0500
-Subject: x86/PCI: Use host bridge _CRS info on Foxconn K8M890-8237A
-
-commit 1dace0116d0b05c967d94644fc4dfe96be2ecd3d upstream.
-
-The Foxconn K8M890-8237A has two PCI host bridges, and we can't assign
-resources correctly without the information from _CRS that tells us which
-address ranges are claimed by which bridge. In the bugs mentioned below,
-we incorrectly assign a sound card address (this example is from 1033299):
-
- bus: 00 index 2 [mem 0x80000000-0xfcffffffff]
- ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-7f])
- pci_root PNP0A08:00: host bridge window [mem 0x80000000-0xbfefffff] (ignored)
- pci_root PNP0A08:00: host bridge window [mem 0xc0000000-0xdfffffff] (ignored)
- pci_root PNP0A08:00: host bridge window [mem 0xf0000000-0xfebfffff] (ignored)
- ACPI: PCI Root Bridge [PCI1] (domain 0000 [bus 80-ff])
- pci_root PNP0A08:01: host bridge window [mem 0xbff00000-0xbfffffff] (ignored)
- pci 0000:80:01.0: [1106:3288] type 0 class 0x000403
- pci 0000:80:01.0: reg 10: [mem 0xbfffc000-0xbfffffff 64bit]
- pci 0000:80:01.0: address space collision: [mem 0xbfffc000-0xbfffffff 64bit] conflicts with PCI Bus #00 [mem 0x80000000-0xfcffffffff]
- pci 0000:80:01.0: BAR 0: assigned [mem 0xfd00000000-0xfd00003fff 64bit]
- BUG: unable to handle kernel paging request at ffffc90000378000
- IP: [<ffffffffa0345f63>] azx_create+0x37c/0x822 [snd_hda_intel]
-
-We assigned 0xfd_0000_0000, but that is not in any of the host bridge
-windows, and the sound card doesn't work.
-
-Turn on pci=use_crs automatically for this system.
-
-Link: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/931368
-Link: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/1033299
-Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
-Signed-off-by: Zefan Li <lizefan@huawei.com>
----
- arch/x86/pci/acpi.c | 11 +++++++++++
- 1 file changed, 11 insertions(+)
-
---- a/arch/x86/pci/acpi.c
-+++ b/arch/x86/pci/acpi.c
-@@ -70,6 +70,17 @@ static const struct dmi_system_id pci_us
- DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies, LTD"),
- },
- },
-+ /* https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/931368 */
-+ /* https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/1033299 */
-+ {
-+ .callback = set_use_crs,
-+ .ident = "Foxconn K8M890-8237A",
-+ .matches = {
-+ DMI_MATCH(DMI_BOARD_VENDOR, "Foxconn"),
-+ DMI_MATCH(DMI_BOARD_NAME, "K8M890-8237A"),
-+ DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies, LTD"),
-+ },
-+ },
-
- /* Now for the blacklist.. */
-