From 5cdb1bae587546f46b2ffc5b732c9c2b5f3eb7e6 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Sat, 26 Sep 2015 17:23:14 +0100 Subject: [PATCH] Update to 4.3-rc2 Drop a load of patches that went upstream. Drop aic94xx patch which was obsoleted by a different fix upstream. Refresh remaining patches. --- debian/changelog | 6 + ...e-broken-fallback-for-missing-ctrl-a.patch | 57 -------- ...handle-escaped-paths-in-prepend_path.patch | 58 -------- ...he-scope-of-i_lock-in-d_splice_alias.patch | 65 --------- ...ore-mtime-or-name-in-compressed-man-.patch | 31 ----- ...determinstic-installation-of-duplica.patch | 50 ------- .../all/docbook-generate-consistent-ids.patch | 31 ----- ...book-use-a-fixed-encoding-for-output.patch | 12 +- ...-loop-implementation-of-systime-read.patch | 61 --------- ...-redundant-log-messages-from-drivers.patch | 93 ++++++------- ...tics-unsigned-suitable-for-use-with-.patch | 128 ------------------ ...kbuild-use-nostdinc-in-compile-tests.patch | 12 +- ...nderlying-transport-exists-before-cr.patch | 74 ---------- ...oc-parse-kernel-doc-deterministicall.patch | 34 ----- ...oc-use-kbuild_build_timestamp-as-man.patch | 43 ------ ...-handle-paths-that-are-unreachable-f.patch | 104 -------------- ...lush_workqueue-available-again-to-no.patch | 35 ----- .../debian/yama-disable-by-default.patch | 14 +- .../features/all/aufs4/aufs4-mmap.patch | 96 +++++-------- .../features/all/aufs4/aufs4-standalone.patch | 52 +++---- ...mory-cgroup-support-to-be-included-b.patch | 30 ++-- .../regulator-axp20x-Add-module-alias.patch | 30 ---- ...matic-support-for-armhf-architecture.patch | 4 +- ...acpi-identification-to-xhci-platform.patch | 25 +--- ...-Add-support-for-the-UBNT-E200-board.patch | 10 +- .../x86-memtest-WARN-if-bad-RAM-found.patch | 8 +- debian/patches/series | 14 -- 27 files changed, 153 insertions(+), 1024 deletions(-) delete mode 100644 debian/patches/bugfix/all/aic94xx-remove-broken-fallback-for-missing-ctrl-a.patch delete mode 100644 debian/patches/bugfix/all/dcache-handle-escaped-paths-in-prepend_path.patch delete mode 100644 debian/patches/bugfix/all/dcache-reduce-the-scope-of-i_lock-in-d_splice_alias.patch delete mode 100644 debian/patches/bugfix/all/docbook-don-t-store-mtime-or-name-in-compressed-man-.patch delete mode 100644 debian/patches/bugfix/all/docbook-fix-non-determinstic-installation-of-duplica.patch delete mode 100644 debian/patches/bugfix/all/docbook-generate-consistent-ids.patch delete mode 100644 debian/patches/bugfix/all/e1000e-fix-tight-loop-implementation-of-systime-read.patch delete mode 100644 debian/patches/bugfix/all/gfs2-make-statistics-unsigned-suitable-for-use-with-.patch delete mode 100644 debian/patches/bugfix/all/rds-verify-the-underlying-transport-exists-before-cr.patch delete mode 100644 debian/patches/bugfix/all/scripts-kernel-doc-parse-kernel-doc-deterministicall.patch delete mode 100644 debian/patches/bugfix/all/scripts-kernel-doc-use-kbuild_build_timestamp-as-man.patch delete mode 100644 debian/patches/bugfix/all/vfs-test-for-and-handle-paths-that-are-unreachable-f.patch delete mode 100644 debian/patches/bugfix/all/workqueue-make-flush_workqueue-available-again-to-no.patch delete mode 100644 debian/patches/features/all/regulator-axp20x-Add-module-alias.patch diff --git a/debian/changelog b/debian/changelog index 101c90a22..5a4978c18 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +linux (4.3~rc2-1~exp1) UNRELEASED; urgency=medium + + * New upstream release candidate + + -- Ben Hutchings Sat, 26 Sep 2015 16:41:55 +0100 + linux (4.2.1-1) unstable; urgency=medium * New upstream stable update: diff --git a/debian/patches/bugfix/all/aic94xx-remove-broken-fallback-for-missing-ctrl-a.patch b/debian/patches/bugfix/all/aic94xx-remove-broken-fallback-for-missing-ctrl-a.patch deleted file mode 100644 index e41a52629..000000000 --- a/debian/patches/bugfix/all/aic94xx-remove-broken-fallback-for-missing-ctrl-a.patch +++ /dev/null @@ -1,57 +0,0 @@ -From: Ben Hutchings -Date: Sun, 08 Jun 2014 23:37:44 +0100 -Subject: [SCSI] aic94xx: Remove broken fallback for missing 'Ctrl-A' user settings -Forwarded: http://mid.gmane.org/1402267064.23860.42.camel@deadeye.wl.decadent.org.uk - -asd_process_ctrl_a_user() attempts to find user settings in flash, and -if they are missing it prepares a substitute structure containing -default values for PHY settings. But having done so, it will still -try to read user settings - from some random address in flash, as the -local variable 'offs' has not been initialised. - -Since asd_common_setup() already sets default PHY settings, there -seems to be no need to repeat them here, and we can just return 0. - -Compile-tested only. - -Signed-off-by: Ben Hutchings ---- - drivers/scsi/aic94xx/aic94xx_sds.c | 18 ++---------------- - 1 file changed, 2 insertions(+), 16 deletions(-) - -diff --git a/drivers/scsi/aic94xx/aic94xx_sds.c b/drivers/scsi/aic94xx/aic94xx_sds.c -index edb43fd..f5d51d2 100644 ---- a/drivers/scsi/aic94xx/aic94xx_sds.c -+++ b/drivers/scsi/aic94xx/aic94xx_sds.c -@@ -981,29 +981,15 @@ static int asd_process_ctrla_phy_settings(struct asd_ha_struct *asd_ha, - static int asd_process_ctrl_a_user(struct asd_ha_struct *asd_ha, - struct asd_flash_dir *flash_dir) - { -- int err, i; -+ int err; - u32 offs, size; - struct asd_ll_el *el; - struct asd_ctrla_phy_settings *ps; -- struct asd_ctrla_phy_settings dflt_ps; - - err = asd_find_flash_de(flash_dir, FLASH_DE_CTRL_A_USER, &offs, &size); - if (err) { - ASD_DPRINTK("couldn't find CTRL-A user settings section\n"); -- ASD_DPRINTK("Creating default CTRL-A user settings section\n"); -- -- dflt_ps.id0 = 'h'; -- dflt_ps.num_phys = 8; -- for (i =0; i < ASD_MAX_PHYS; i++) { -- memcpy(dflt_ps.phy_ent[i].sas_addr, -- asd_ha->hw_prof.sas_addr, SAS_ADDR_SIZE); -- dflt_ps.phy_ent[i].sas_link_rates = 0x98; -- dflt_ps.phy_ent[i].flags = 0x0; -- dflt_ps.phy_ent[i].sata_link_rates = 0x0; -- } -- -- size = sizeof(struct asd_ctrla_phy_settings); -- ps = &dflt_ps; -+ return 0; - } - - if (size == 0) diff --git a/debian/patches/bugfix/all/dcache-handle-escaped-paths-in-prepend_path.patch b/debian/patches/bugfix/all/dcache-handle-escaped-paths-in-prepend_path.patch deleted file mode 100644 index 9b4e9136a..000000000 --- a/debian/patches/bugfix/all/dcache-handle-escaped-paths-in-prepend_path.patch +++ /dev/null @@ -1,58 +0,0 @@ -From: "Eric W. Biederman" -Date: Sat, 15 Aug 2015 13:36:12 -0500 -Subject: dcache: Handle escaped paths in prepend_path -Origin: https://git.kernel.org/linus/cde93be45a8a90d8c264c776fab63487b5038a65 - -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 / 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" -Signed-off-by: Al Viro ---- - fs/dcache.c | 7 +++++++ - 1 file changed, 7 insertions(+) - ---- a/fs/dcache.c -+++ b/fs/dcache.c -@@ -2927,6 +2927,13 @@ restart: - - if (dentry == vfsmnt->mnt_root || IS_ROOT(dentry)) { - struct mount *parent = ACCESS_ONCE(mnt->mnt_parent); -+ /* Escaped? */ -+ if (dentry != vfsmnt->mnt_root) { -+ bptr = *buffer; -+ blen = *buflen; -+ error = 3; -+ break; -+ } - /* Global root? */ - if (mnt != parent) { - dentry = ACCESS_ONCE(mnt->mnt_mountpoint); diff --git a/debian/patches/bugfix/all/dcache-reduce-the-scope-of-i_lock-in-d_splice_alias.patch b/debian/patches/bugfix/all/dcache-reduce-the-scope-of-i_lock-in-d_splice_alias.patch deleted file mode 100644 index e41c4fac2..000000000 --- a/debian/patches/bugfix/all/dcache-reduce-the-scope-of-i_lock-in-d_splice_alias.patch +++ /dev/null @@ -1,65 +0,0 @@ -From: "Eric W. Biederman" -Date: Sat, 15 Aug 2015 13:36:41 -0500 -Subject: dcache: Reduce the scope of i_lock in d_splice_alias -Origin: https://git.kernel.org/linus/a03e283bf5c3d4851b4998122196ce9f849e6dfb - -i_lock is only needed until __d_find_any_alias calls dget on the alias -dentry. After that the reference to new ensures that dentry_kill and -d_delete will not remove the inode from the dentry, and remove the -dentry from the inode->d_entry list. - -The inode i_lock came to be held over the the __d_move calls in -d_splice_alias through a series of introduction of locks with -increasing smaller scope. First it was the dcache_lock, then -it was the dcache_inode_lock, and finally inode->i_lock. - -Furthermore inode->i_lock is not held over any other calls -to d_move or __d_move so it can not provide any meaningful -rename protection. - -Signed-off-by: "Eric W. Biederman" -Signed-off-by: Al Viro ---- - fs/dcache.c | 7 +++---- - 1 file changed, 3 insertions(+), 4 deletions(-) - ---- a/fs/dcache.c -+++ b/fs/dcache.c -@@ -2719,7 +2719,7 @@ struct dentry *d_ancestor(struct dentry - * This helper attempts to cope with remotely renamed directories - * - * It assumes that the caller is already holding -- * dentry->d_parent->d_inode->i_mutex, inode->i_lock and rename_lock -+ * dentry->d_parent->d_inode->i_mutex, and rename_lock - * - * Note: If ever the locking in lock_rename() changes, then please - * remember to update this too... -@@ -2745,7 +2745,6 @@ out_unalias: - __d_move(alias, dentry, false); - ret = 0; - out_err: -- spin_unlock(&inode->i_lock); - if (m2) - mutex_unlock(m2); - if (m1) -@@ -2791,10 +2790,11 @@ struct dentry *d_splice_alias(struct ino - if (S_ISDIR(inode->i_mode)) { - struct dentry *new = __d_find_any_alias(inode); - if (unlikely(new)) { -+ /* The reference to new ensures it remains an alias */ -+ spin_unlock(&inode->i_lock); - write_seqlock(&rename_lock); - if (unlikely(d_ancestor(new, dentry))) { - write_sequnlock(&rename_lock); -- spin_unlock(&inode->i_lock); - dput(new); - new = ERR_PTR(-ELOOP); - pr_warn_ratelimited( -@@ -2813,7 +2813,6 @@ struct dentry *d_splice_alias(struct ino - } else { - __d_move(new, dentry, false); - write_sequnlock(&rename_lock); -- spin_unlock(&inode->i_lock); - security_d_instantiate(new, inode); - } - iput(inode); diff --git a/debian/patches/bugfix/all/docbook-don-t-store-mtime-or-name-in-compressed-man-.patch b/debian/patches/bugfix/all/docbook-don-t-store-mtime-or-name-in-compressed-man-.patch deleted file mode 100644 index 73c370138..000000000 --- a/debian/patches/bugfix/all/docbook-don-t-store-mtime-or-name-in-compressed-man-.patch +++ /dev/null @@ -1,31 +0,0 @@ -From: Ben Hutchings -Date: Wed, 8 Jul 2015 20:06:44 +0100 -Subject: DocBook: Don't store mtime (or name) in compressed man pages -Bug-Debian: https://bugs.debian.org/769844 -Forwarded: http://thread.gmane.org/gmane.linux.documentation/31870/focus=31872 - -The mtime on a man page is the build time. As gzip stores the mtime -and original name in the compressed file by default, this makes -compressed man pages unreproducible. Neither of these are important -metadata in this case, so turn this off. - -Reported-by: Jérémy Bobbio -Signed-off-by: Ben Hutchings -Signed-off-by: Jonathan Corbet ---- - Documentation/DocBook/Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Documentation/DocBook/Makefile b/Documentation/DocBook/Makefile -index b6a6a2e..11a4145 100644 ---- a/Documentation/DocBook/Makefile -+++ b/Documentation/DocBook/Makefile -@@ -56,7 +56,7 @@ htmldocs: $(HTML) - - MAN := $(patsubst %.xml, %.9, $(BOOKS)) - mandocs: $(MAN) -- find $(obj)/man -name '*.9' | xargs gzip -f -+ find $(obj)/man -name '*.9' | xargs gzip -nf - - installmandocs: mandocs - mkdir -p /usr/local/man/man9/ diff --git a/debian/patches/bugfix/all/docbook-fix-non-determinstic-installation-of-duplica.patch b/debian/patches/bugfix/all/docbook-fix-non-determinstic-installation-of-duplica.patch deleted file mode 100644 index 3fbabcc99..000000000 --- a/debian/patches/bugfix/all/docbook-fix-non-determinstic-installation-of-duplica.patch +++ /dev/null @@ -1,50 +0,0 @@ -From: Ben Hutchings -Date: Thu, 6 Aug 2015 22:18:32 +0100 -Subject: DocBook: Fix non-determinstic installation of duplicate man pages -Bug-Debian: https://bugs.debian.org/769844 -Forwarded: http://thread.gmane.org/gmane.linux.kernel/1997951/focus=32450 - -Some kernel-doc sections are included in multiple DocBook files. This -means the mandocs target will generate the same manual page multiple -times with different metadata (author name/address and manual title, -taken from the including DocBook file). If it's invoked in a parallel -build, the output is non-determinstic. - -Build the manual pages in a separate subdirectory per DocBook file, -then sort and de-duplicate when installing them (which is serialised). - -Signed-off-by: Ben Hutchings ---- - Documentation/DocBook/Makefile | 8 +++++--- - 1 file changed, 5 insertions(+), 3 deletions(-) - -diff --git a/Documentation/DocBook/Makefile b/Documentation/DocBook/Makefile -index 11a4145..198e9b5 100644 ---- a/Documentation/DocBook/Makefile -+++ b/Documentation/DocBook/Makefile -@@ -60,7 +60,9 @@ mandocs: $(MAN) - - installmandocs: mandocs - mkdir -p /usr/local/man/man9/ -- install $(obj)/man/*.9.gz /usr/local/man/man9/ -+ find $(obj)/man -name '*.9.gz' -printf '%h %f\n' | \ -+ sort -k 2 -k 1 | uniq -f 1 | sed -e 's: :/:' | \ -+ xargs install -t /usr/local/man/man9/ - - ### - #External programs used -@@ -150,12 +152,12 @@ quiet_cmd_db2html = HTML $@ - cp $(PNG-$(basename $(notdir $@))) $(patsubst %.html,%,$@); fi - - quiet_cmd_db2man = MAN $@ -- cmd_db2man = if grep -q refentry $<; then xmlto man $(XMLTOFLAGS) -o $(obj)/man $< ; fi -+ cmd_db2man = if grep -q refentry $<; then xmlto man $(XMLTOFLAGS) -o $(obj)/man/$(*F) $< ; fi - %.9 : %.xml - @(which xmlto > /dev/null 2>&1) || \ - (echo "*** You need to install xmlto ***"; \ - exit 1) -- $(Q)mkdir -p $(obj)/man -+ $(Q)mkdir -p $(obj)/man/$(*F) - $(call cmd,db2man) - @touch $@ - diff --git a/debian/patches/bugfix/all/docbook-generate-consistent-ids.patch b/debian/patches/bugfix/all/docbook-generate-consistent-ids.patch deleted file mode 100644 index d0b084d92..000000000 --- a/debian/patches/bugfix/all/docbook-generate-consistent-ids.patch +++ /dev/null @@ -1,31 +0,0 @@ -From: Ben Hutchings -Date: Wed, 8 Jul 2015 20:06:51 +0100 -Subject: DocBook: Generate consistent IDs -Bug-Debian: https://bugs.debian.org/769844 -Forwarded: http://thread.gmane.org/gmane.linux.documentation/31870/focus=31873 - -By default, DocBook XSL uses a non-deterministic function to generate -IDs for HTML elements where it can't take a name from the input -document. However, it has the option to generate 'consistent' -(deterministic) IDs instead. Enable this to make the HTML pages -reproducible. - -Reported-by: Jérémy Bobbio -Signed-off-by: Ben Hutchings -Signed-off-by: Jonathan Corbet ---- - Documentation/DocBook/stylesheet.xsl | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/Documentation/DocBook/stylesheet.xsl b/Documentation/DocBook/stylesheet.xsl -index 85b2527..3bf4ecf 100644 ---- a/Documentation/DocBook/stylesheet.xsl -+++ b/Documentation/DocBook/stylesheet.xsl -@@ -5,6 +5,7 @@ - 80 - 0 - -+1 - 2 - 1 - diff --git a/debian/patches/bugfix/all/docbook-use-a-fixed-encoding-for-output.patch b/debian/patches/bugfix/all/docbook-use-a-fixed-encoding-for-output.patch index cbeafd313..b5874ce72 100644 --- a/debian/patches/bugfix/all/docbook-use-a-fixed-encoding-for-output.patch +++ b/debian/patches/bugfix/all/docbook-use-a-fixed-encoding-for-output.patch @@ -14,10 +14,10 @@ Signed-off-by: Ben Hutchings --- --- a/Documentation/DocBook/Makefile +++ b/Documentation/DocBook/Makefile -@@ -68,6 +68,12 @@ installmandocs: mandocs - #External programs used - KERNELDOC = $(srctree)/scripts/kernel-doc - DOCPROC = $(objtree)/scripts/docproc +@@ -69,6 +69,12 @@ installmandocs: mandocs + KERNELDOCXMLREF = $(srctree)/scripts/kernel-doc-xml-ref + KERNELDOC = $(srctree)/scripts/kernel-doc + DOCPROC = $(objtree)/scripts/docproc +CHECK_LC_CTYPE = $(objtree)/scripts/check-lc_ctype + +# Use a fixed encoding - UTF-8 if the C library has support built-in @@ -29,7 +29,7 @@ Signed-off-by: Ben Hutchings XMLTOFLAGS += --skip-validation --- a/Makefile +++ b/Makefile -@@ -1361,7 +1361,7 @@ $(help-board-dirs): help-%: +@@ -1353,7 +1353,7 @@ $(help-board-dirs): help-%: # Documentation targets # --------------------------------------------------------------------------- %docs: scripts_basic FORCE @@ -48,7 +48,7 @@ Signed-off-by: Ben Hutchings HOST_EXTRACFLAGS += -I$(srctree)/tools/include -@@ -23,14 +24,16 @@ HOSTCFLAGS_asn1_compiler.o = -I$(srctree +@@ -27,14 +28,16 @@ HOSTLOADLIBES_extract-cert = -lcrypto always := $(hostprogs-y) $(hostprogs-m) # The following hostprogs-y programs are only build on demand diff --git a/debian/patches/bugfix/all/e1000e-fix-tight-loop-implementation-of-systime-read.patch b/debian/patches/bugfix/all/e1000e-fix-tight-loop-implementation-of-systime-read.patch deleted file mode 100644 index 12f6aa264..000000000 --- a/debian/patches/bugfix/all/e1000e-fix-tight-loop-implementation-of-systime-read.patch +++ /dev/null @@ -1,61 +0,0 @@ -From: Raanan Avargil -Date: Sun, 19 Jul 2015 16:33:20 +0300 -Subject: e1000e: Fix tight loop implementation of systime read algorithm -Origin: https://git.kernel.org/linus/37b12910dd11d9ab969f2c310dc9160b7f3e3405 - -Change the algorithm. Read systimel twice and check for overflow. -If there was no overflow, use the first value. -If there was an overflow, read systimeh again and use the second -systimel value. - -Signed-off-by: Raanan Avargil -Tested-by: Aaron Brown -Signed-off-by: Jeff Kirsher ---- - drivers/net/ethernet/intel/e1000e/netdev.c | 31 ++++++++++++++++++++---------- - 1 file changed, 21 insertions(+), 10 deletions(-) - -diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c -index 24b7269..96a8166 100644 ---- a/drivers/net/ethernet/intel/e1000e/netdev.c -+++ b/drivers/net/ethernet/intel/e1000e/netdev.c -@@ -4280,18 +4280,29 @@ static cycle_t e1000e_cyclecounter_read(const struct cyclecounter *cc) - struct e1000_adapter *adapter = container_of(cc, struct e1000_adapter, - cc); - struct e1000_hw *hw = &adapter->hw; -+ u32 systimel_1, systimel_2, systimeh; - cycle_t systim, systim_next; -- /* SYSTIMH latching upon SYSTIML read does not work well. To fix that -- * we don't want to allow overflow of SYSTIML and a change to SYSTIMH -- * to occur between reads, so if we read a vale close to overflow, we -- * wait for overflow to occur and read both registers when its safe. -+ /* SYSTIMH latching upon SYSTIML read does not work well. -+ * This means that if SYSTIML overflows after we read it but before -+ * we read SYSTIMH, the value of SYSTIMH has been incremented and we -+ * will experience a huge non linear increment in the systime value -+ * to fix that we test for overflow and if true, we re-read systime. - */ -- u32 systim_overflow_latch_fix = 0x3FFFFFFF; -- -- do { -- systim = (cycle_t)er32(SYSTIML); -- } while (systim > systim_overflow_latch_fix); -- systim |= (cycle_t)er32(SYSTIMH) << 32; -+ systimel_1 = er32(SYSTIML); -+ systimeh = er32(SYSTIMH); -+ systimel_2 = er32(SYSTIML); -+ /* Check for overflow. If there was no overflow, use the values */ -+ if (systimel_1 < systimel_2) { -+ systim = (cycle_t)systimel_1; -+ systim |= (cycle_t)systimeh << 32; -+ } else { -+ /* There was an overflow, read again SYSTIMH, and use -+ * systimel_2 -+ */ -+ systimeh = er32(SYSTIMH); -+ systim = (cycle_t)systimel_2; -+ systim |= (cycle_t)systimeh << 32; -+ } - - if ((hw->mac.type == e1000_82574) || (hw->mac.type == e1000_82583)) { - u64 incvalue, time_delta, rem, temp; diff --git a/debian/patches/bugfix/all/firmware-remove-redundant-log-messages-from-drivers.patch b/debian/patches/bugfix/all/firmware-remove-redundant-log-messages-from-drivers.patch index 24a426d81..c337564c8 100644 --- a/debian/patches/bugfix/all/firmware-remove-redundant-log-messages-from-drivers.patch +++ b/debian/patches/bugfix/all/firmware-remove-redundant-log-messages-from-drivers.patch @@ -203,7 +203,7 @@ upstream submission. fw->size, fw_name); --- a/drivers/dma/imx-sdma.c +++ b/drivers/dma/imx-sdma.c -@@ -1285,11 +1285,8 @@ static void sdma_load_firmware(const str +@@ -1408,11 +1408,8 @@ static void sdma_load_firmware(const str const struct sdma_script_start_addrs *addr; unsigned short *ram_code; @@ -233,18 +233,18 @@ upstream submission. where = 0; --- a/drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c +++ b/drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c -@@ -1558,10 +1558,8 @@ gf100_gr_ctor_fw(struct gf100_gr_priv *p - if (ret) { - snprintf(f, sizeof(f), "nouveau/%s", fwname); - ret = request_firmware(&fw, f, nv_device_base(device)); -- if (ret) { -- nv_error(priv, "failed to load %s\n", fwname); -+ if (ret) - return ret; -- } - } +@@ -1643,10 +1643,8 @@ gf100_gr_ctor_fw(struct gf100_gr *gr, co + + snprintf(f, sizeof(f), "nvidia/%s/%s.bin", cname, fwname); + ret = request_firmware(&fw, f, device->dev); +- if (ret) { +- nvkm_error(subdev, "failed to load %s\n", fwname); ++ if (ret) + return ret; +- } fuc->size = fw->size; + fuc->data = kmemdup(fw->data, fuc->size, GFP_KERNEL); --- a/drivers/gpu/drm/r128/r128_cce.c +++ b/drivers/gpu/drm/r128/r128_cce.c @@ -154,11 +154,8 @@ static int r128_cce_load_microcode(drm_r @@ -343,7 +343,7 @@ upstream submission. ret = qib_ibsd_ucode_loaded(dd->pport, fw); --- a/drivers/input/touchscreen/atmel_mxt_ts.c +++ b/drivers/input/touchscreen/atmel_mxt_ts.c -@@ -2195,10 +2195,8 @@ static int mxt_load_fw(struct device *de +@@ -2209,10 +2209,8 @@ static int mxt_load_fw(struct device *de int ret; ret = request_firmware(&fw, fn, dev); @@ -686,14 +686,14 @@ upstream submission. printk(KERN_INFO "tda1004x: please rename the firmware file to %s\n", --- a/drivers/media/dvb-frontends/tda10071.c +++ b/drivers/media/dvb-frontends/tda10071.c -@@ -956,12 +956,8 @@ static int tda10071_init(struct dvb_fron +@@ -850,12 +850,8 @@ static int tda10071_init(struct dvb_fron /* request the firmware, this will block and timeout */ - ret = request_firmware(&fw, fw_file, priv->i2c->dev.parent); + ret = request_firmware(&fw, fw_file, &client->dev); - if (ret) { -- dev_err(&priv->i2c->dev, -- "%s: did not find the firmware file. (%s) Please see linux/Documentation/dvb/ for more details on firmware-problems. (%d)\n", -- KBUILD_MODNAME, fw_file, ret); +- dev_err(&client->dev, +- "did not find the firmware file. (%s) Please see linux/Documentation/dvb/ for more details on firmware-problems. (%d)\n", +- fw_file, ret); + if (ret) goto error; - } @@ -792,7 +792,7 @@ upstream submission. b[0] = 0xaa; --- a/drivers/media/usb/ttusb-dec/ttusb_dec.c +++ b/drivers/media/usb/ttusb-dec/ttusb_dec.c -@@ -1297,11 +1297,8 @@ static int ttusb_dec_boot_dsp(struct ttu +@@ -1292,11 +1292,8 @@ static int ttusb_dec_boot_dsp(struct ttu dprintk("%s\n", __func__); result = request_firmware(&fw_entry, dec->firmware_name, &dec->udev->dev); @@ -822,7 +822,7 @@ upstream submission. packet_num = ptr[0]; --- a/drivers/media/radio/wl128x/fmdrv_common.c +++ b/drivers/media/radio/wl128x/fmdrv_common.c -@@ -1252,10 +1252,8 @@ static int fm_download_firmware(struct f +@@ -1249,10 +1249,8 @@ static int fm_download_firmware(struct f ret = request_firmware(&fw_entry, fw_name, &fmdev->radio_dev->dev); @@ -1106,7 +1106,7 @@ upstream submission. __func__, fw->size); --- a/drivers/misc/ti-st/st_kim.c +++ b/drivers/misc/ti-st/st_kim.c -@@ -308,11 +308,8 @@ static long download_firmware(struct kim +@@ -303,11 +303,8 @@ static long download_firmware(struct kim request_firmware(&kim_gdata->fw_entry, bts_scr_name, &kim_gdata->kim_pdev->dev); if (unlikely((err != 0) || (kim_gdata->fw_entry->data == NULL) || @@ -1216,7 +1216,7 @@ upstream submission. if (bp->mips_firmware->size < sizeof(*mips_fw) || --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c -@@ -13003,11 +13003,8 @@ static int bnx2x_init_firmware(struct bn +@@ -13393,11 +13393,8 @@ static int bnx2x_init_firmware(struct bn BNX2X_DEV_INFO("Loading %s\n", fw_file_name); rc = request_firmware(&bp->firmware, fw_file_name, &bp->pdev->dev); @@ -1568,7 +1568,7 @@ upstream submission. else --- a/drivers/net/wireless/iwlwifi/iwl-drv.c +++ b/drivers/net/wireless/iwlwifi/iwl-drv.c -@@ -1131,13 +1131,8 @@ static void iwl_req_fw_callback(const st +@@ -1201,13 +1201,8 @@ static void iwl_req_fw_callback(const st if (!pieces) return; @@ -1596,7 +1596,7 @@ upstream submission. } --- a/drivers/net/wireless/mwifiex/main.c +++ b/drivers/net/wireless/mwifiex/main.c -@@ -459,11 +459,8 @@ static void mwifiex_fw_dpc(const struct +@@ -488,11 +488,8 @@ static void mwifiex_fw_dpc(const struct bool init_failed = false; struct wireless_dev *wdev; @@ -1611,7 +1611,7 @@ upstream submission. adapter->firmware = firmware; --- a/drivers/net/wireless/mwl8k.c +++ b/drivers/net/wireless/mwl8k.c -@@ -5711,16 +5711,12 @@ static int mwl8k_firmware_load_success(s +@@ -5712,16 +5712,12 @@ static int mwl8k_firmware_load_success(s static void mwl8k_fw_state_machine(const struct firmware *fw, void *context) { struct mwl8k_priv *priv = context; @@ -1629,7 +1629,7 @@ upstream submission. priv->fw_helper = fw; rc = mwl8k_request_fw(priv, priv->fw_pref, &priv->fw_ucode, true); -@@ -5755,11 +5751,8 @@ static void mwl8k_fw_state_machine(const +@@ -5756,11 +5752,8 @@ static void mwl8k_fw_state_machine(const break; case FW_STATE_LOADING_ALT: @@ -1642,7 +1642,7 @@ upstream submission. priv->fw_ucode = fw; rc = mwl8k_firmware_load_success(priv); if (rc) -@@ -5797,10 +5790,8 @@ retry: +@@ -5798,10 +5791,8 @@ retry: /* Ask userland hotplug daemon for the device firmware */ rc = mwl8k_request_firmware(priv, fw_image, nowait); @@ -1690,7 +1690,7 @@ upstream submission. --- a/drivers/net/wireless/orinoco/orinoco_usb.c +++ b/drivers/net/wireless/orinoco/orinoco_usb.c -@@ -1667,7 +1667,6 @@ static int ezusb_probe(struct usb_interf +@@ -1668,7 +1668,6 @@ static int ezusb_probe(struct usb_interf if (ezusb_firmware_download(upriv, &firmware) < 0) goto error; } else { @@ -1894,7 +1894,7 @@ upstream submission. } --- a/drivers/scsi/aic94xx/aic94xx_init.c +++ b/drivers/scsi/aic94xx/aic94xx_init.c -@@ -389,8 +389,6 @@ static ssize_t asd_store_update_bios(str +@@ -385,8 +385,6 @@ static ssize_t asd_store_update_bios(str filename_ptr, &asd_ha->pcidev->dev); if (err) { @@ -1930,7 +1930,7 @@ upstream submission. } --- a/drivers/scsi/ipr.c +++ b/drivers/scsi/ipr.c -@@ -4010,10 +4010,8 @@ static ssize_t ipr_store_update_fw(struc +@@ -4011,10 +4011,8 @@ static ssize_t ipr_store_update_fw(struc len = snprintf(fname, 99, "%s", buf); fname[len-1] = '\0'; @@ -1968,7 +1968,7 @@ upstream submission. } --- a/drivers/scsi/qla2xxx/qla_init.c +++ b/drivers/scsi/qla2xxx/qla_init.c -@@ -5524,8 +5524,6 @@ qla2x00_load_risc(scsi_qla_host_t *vha, +@@ -5520,8 +5520,6 @@ qla2x00_load_risc(scsi_qla_host_t *vha, /* Load firmware blob. */ blob = qla2x00_request_firmware(vha); if (!blob) { @@ -1977,7 +1977,7 @@ upstream submission. ql_log(ql_log_info, vha, 0x0084, "Firmware images can be retrieved from: "QLA_FW_URL ".\n"); return QLA_FUNCTION_FAILED; -@@ -5627,8 +5625,6 @@ qla24xx_load_risc_blob(scsi_qla_host_t * +@@ -5623,8 +5621,6 @@ qla24xx_load_risc_blob(scsi_qla_host_t * /* Load firmware blob. */ blob = qla2x00_request_firmware(vha); if (!blob) { @@ -2003,7 +2003,7 @@ upstream submission. if (qla82xx_validate_firmware_blob(vha, --- a/drivers/scsi/qla2xxx/qla_os.c +++ b/drivers/scsi/qla2xxx/qla_os.c -@@ -5369,8 +5369,6 @@ qla2x00_request_firmware(scsi_qla_host_t +@@ -5365,8 +5365,6 @@ qla2x00_request_firmware(scsi_qla_host_t goto out; if (request_firmware(&blob->fw, blob->name, &ha->pdev->dev)) { @@ -2136,10 +2136,10 @@ upstream submission. } --- a/drivers/staging/rtl8192u/r819xU_firmware.c +++ b/drivers/staging/rtl8192u/r819xU_firmware.c -@@ -243,10 +243,8 @@ bool init_firmware(struct net_device *de +@@ -244,10 +244,8 @@ bool init_firmware(struct net_device *de */ if (rst_opt == OPT_SYSTEM_RESET) { - rc = request_firmware(&fw_entry, fw_name[init_step],&priv->udev->dev); + rc = request_firmware(&fw_entry, fw_name[init_step], &priv->udev->dev); - if (rc < 0) { - RT_TRACE(COMP_ERR, "request firmware fail!\n"); + if (rc) @@ -2276,7 +2276,7 @@ upstream submission. --- a/drivers/usb/atm/cxacru.c +++ b/drivers/usb/atm/cxacru.c -@@ -1081,8 +1081,6 @@ static int cxacru_find_firmware(struct c +@@ -1086,8 +1086,6 @@ static int cxacru_find_firmware(struct c return -ENOENT; } @@ -2431,24 +2431,15 @@ upstream submission. BootMajorVersion = rec->data[0]; --- a/drivers/usb/serial/io_ti.c +++ b/drivers/usb/serial/io_ti.c -@@ -784,8 +784,6 @@ static int build_i2c_fw_hdr(__u8 *header +@@ -2483,8 +2483,6 @@ static int edge_startup(struct usb_seria - err = request_firmware(&fw, fw_name, dev); - if (err) { + status = request_firmware(&fw, fw_name, dev); + if (status) { - dev_err(dev, "Failed to load image \"%s\" err %d\n", -- fw_name, err); - kfree(buffer); - return err; +- fw_name, status); + kfree(edge_serial); + return status; } -@@ -1331,8 +1329,6 @@ static int download_fw(struct edgeport_s - - err = request_firmware(&fw, fw_name, dev); - if (err) { -- dev_err(dev, "Failed to load image \"%s\" err %d\n", -- fw_name, err); - kfree(buffer); - return err; - } --- a/drivers/usb/serial/ti_usb_3410_5052.c +++ b/drivers/usb/serial/ti_usb_3410_5052.c @@ -1485,10 +1485,8 @@ static int ti_download_firmware(struct t @@ -2680,7 +2671,7 @@ upstream submission. if (err) { --- a/sound/pci/rme9652/hdsp.c +++ b/sound/pci/rme9652/hdsp.c -@@ -5102,11 +5102,8 @@ static int hdsp_request_fw_loader(struct +@@ -5103,11 +5103,8 @@ static int hdsp_request_fw_loader(struct return -EINVAL; } diff --git a/debian/patches/bugfix/all/gfs2-make-statistics-unsigned-suitable-for-use-with-.patch b/debian/patches/bugfix/all/gfs2-make-statistics-unsigned-suitable-for-use-with-.patch deleted file mode 100644 index 084de2dd4..000000000 --- a/debian/patches/bugfix/all/gfs2-make-statistics-unsigned-suitable-for-use-with-.patch +++ /dev/null @@ -1,128 +0,0 @@ -From: Ben Hutchings -Date: Wed, 26 Aug 2015 00:44:21 +0100 -Subject: gfs2: Make statistics unsigned, suitable for use with do_div() -Forwarded: http://mid.gmane.org/1440548464.26026.9.camel@decadent.org.uk - -None of these statistics can meaningfully be negative, and the -numerator for do_div() must have the type u64. The generic -implementation of do_div() used on some 32-bit architectures asserts -that, resulting in a compiler error in gfs2_rgrp_congested(). - -Fixes: 0166b197c2ed ("GFS2: Average in only non-zero round-trip times ...") -Signed-off-by: Ben Hutchings ---- - fs/gfs2/glock.c | 22 +++++++++++----------- - fs/gfs2/incore.h | 2 +- - fs/gfs2/rgrp.c | 8 ++++---- - fs/gfs2/trace_gfs2.h | 16 ++++++++-------- - 4 files changed, 24 insertions(+), 24 deletions(-) - -diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c -index a38e38f..1b6aebe 100644 ---- a/fs/gfs2/glock.c -+++ b/fs/gfs2/glock.c -@@ -1733,17 +1733,17 @@ static int gfs2_glstats_seq_show(struct seq_file *seq, void *iter_ptr) - { - struct gfs2_glock *gl = iter_ptr; - -- seq_printf(seq, "G: n:%u/%llx rtt:%lld/%lld rttb:%lld/%lld irt:%lld/%lld dcnt: %lld qcnt: %lld\n", -+ seq_printf(seq, "G: n:%u/%llx rtt:%llu/%llu rttb:%llu/%llu irt:%llu/%llu dcnt: %llu qcnt: %llu\n", - gl->gl_name.ln_type, - (unsigned long long)gl->gl_name.ln_number, -- (long long)gl->gl_stats.stats[GFS2_LKS_SRTT], -- (long long)gl->gl_stats.stats[GFS2_LKS_SRTTVAR], -- (long long)gl->gl_stats.stats[GFS2_LKS_SRTTB], -- (long long)gl->gl_stats.stats[GFS2_LKS_SRTTVARB], -- (long long)gl->gl_stats.stats[GFS2_LKS_SIRT], -- (long long)gl->gl_stats.stats[GFS2_LKS_SIRTVAR], -- (long long)gl->gl_stats.stats[GFS2_LKS_DCOUNT], -- (long long)gl->gl_stats.stats[GFS2_LKS_QCOUNT]); -+ (unsigned long long)gl->gl_stats.stats[GFS2_LKS_SRTT], -+ (unsigned long long)gl->gl_stats.stats[GFS2_LKS_SRTTVAR], -+ (unsigned long long)gl->gl_stats.stats[GFS2_LKS_SRTTB], -+ (unsigned long long)gl->gl_stats.stats[GFS2_LKS_SRTTVARB], -+ (unsigned long long)gl->gl_stats.stats[GFS2_LKS_SIRT], -+ (unsigned long long)gl->gl_stats.stats[GFS2_LKS_SIRTVAR], -+ (unsigned long long)gl->gl_stats.stats[GFS2_LKS_DCOUNT], -+ (unsigned long long)gl->gl_stats.stats[GFS2_LKS_QCOUNT]); - return 0; - } - -@@ -1780,7 +1780,7 @@ static int gfs2_sbstats_seq_show(struct seq_file *seq, void *iter_ptr) - struct gfs2_sbd *sdp = gi->sdp; - unsigned index = gi->hash >> 3; - unsigned subindex = gi->hash & 0x07; -- s64 value; -+ u64 value; - int i; - - if (index == 0 && subindex != 0) -@@ -1796,7 +1796,7 @@ static int gfs2_sbstats_seq_show(struct seq_file *seq, void *iter_ptr) - } else { - value = lkstats->lkstats[index - 1].stats[subindex]; - } -- seq_printf(seq, " %15lld", (long long)value); -+ seq_printf(seq, " %15llu", (long long)value); - } - seq_putc(seq, '\n'); - return 0; -diff --git a/fs/gfs2/incore.h b/fs/gfs2/incore.h -index a1ec7c2..7647e31 100644 ---- a/fs/gfs2/incore.h -+++ b/fs/gfs2/incore.h -@@ -241,7 +241,7 @@ enum { - }; - - struct gfs2_lkstats { -- s64 stats[GFS2_NR_LKSTATS]; -+ u64 stats[GFS2_NR_LKSTATS]; - }; - - enum { -diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c -index c6c6232..2884f6f 100644 ---- a/fs/gfs2/rgrp.c -+++ b/fs/gfs2/rgrp.c -@@ -1862,11 +1862,11 @@ static bool gfs2_rgrp_congested(const struct gfs2_rgrpd *rgd, int loops) - const struct gfs2_glock *gl = rgd->rd_gl; - const struct gfs2_sbd *sdp = gl->gl_sbd; - struct gfs2_lkstats *st; -- s64 r_dcount, l_dcount; -- s64 l_srttb, a_srttb = 0; -+ u64 r_dcount, l_dcount; -+ u64 l_srttb, a_srttb = 0; - s64 srttb_diff; -- s64 sqr_diff; -- s64 var; -+ u64 sqr_diff; -+ u64 var; - int cpu, nonzero = 0; - - preempt_disable(); -diff --git a/fs/gfs2/trace_gfs2.h b/fs/gfs2/trace_gfs2.h -index 20c007d..03a7049 100644 ---- a/fs/gfs2/trace_gfs2.h -+++ b/fs/gfs2/trace_gfs2.h -@@ -267,14 +267,14 @@ TRACE_EVENT(gfs2_glock_lock_time, - __field( int, status ) - __field( char, flags ) - __field( s64, tdiff ) -- __field( s64, srtt ) -- __field( s64, srttvar ) -- __field( s64, srttb ) -- __field( s64, srttvarb ) -- __field( s64, sirt ) -- __field( s64, sirtvar ) -- __field( s64, dcount ) -- __field( s64, qcount ) -+ __field( u64, srtt ) -+ __field( u64, srttvar ) -+ __field( u64, srttb ) -+ __field( u64, srttvarb ) -+ __field( u64, sirt ) -+ __field( u64, sirtvar ) -+ __field( u64, dcount ) -+ __field( u64, qcount ) - ), - - TP_fast_assign( diff --git a/debian/patches/bugfix/all/kbuild-use-nostdinc-in-compile-tests.patch b/debian/patches/bugfix/all/kbuild-use-nostdinc-in-compile-tests.patch index 74230571e..cc12dd65e 100644 --- a/debian/patches/bugfix/all/kbuild-use-nostdinc-in-compile-tests.patch +++ b/debian/patches/bugfix/all/kbuild-use-nostdinc-in-compile-tests.patch @@ -30,13 +30,17 @@ the kernel. # cc-option-align # Prefix align with either -falign or -malign -@@ -126,14 +126,15 @@ cc-option-align = $(subst -functions=0,, +@@ -126,18 +126,19 @@ cc-option-align = $(subst -functions=0,, # cc-disable-warning # Usage: cflags-y += $(call cc-disable-warning,unused-but-set-variable) cc-disable-warning = $(call try-run,\ - $(CC) $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) -W$(strip $(1)) -c -x c /dev/null -o "$$TMP",-Wno-$(strip $(1))) + $(CC) $(NOSTDINC_FLAGS) $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) -W$(strip $(1)) -c -x c /dev/null -o "$$TMP",-Wno-$(strip $(1))) + # cc-name + # Expands to either gcc or clang + cc-name = $(shell $(CC) -v 2>&1 | grep -q "clang version" && echo clang || echo gcc) + # cc-version -cc-version = $(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-version.sh $(CC)) +cc-version = $(shell $(CONFIG_SHELL) \ @@ -49,7 +53,7 @@ the kernel. # cc-ifversion # Usage: EXTRA_CFLAGS += $(call cc-ifversion, -lt, 0402, -O1) -@@ -147,7 +148,7 @@ cc-ldoption = $(call try-run,\ +@@ -151,7 +152,7 @@ cc-ldoption = $(call try-run,\ # ld-option # Usage: LDFLAGS += $(call ld-option, -X) ld-option = $(call try-run,\ @@ -60,7 +64,7 @@ the kernel. # Usage: KBUILD_ARFLAGS := $(call ar-option,D) --- a/Makefile +++ b/Makefile -@@ -621,6 +621,8 @@ else +@@ -614,6 +614,8 @@ else KBUILD_CFLAGS += -O2 endif @@ -69,7 +73,7 @@ the kernel. # Tell gcc to never replace conditional load with a non-conditional one KBUILD_CFLAGS += $(call cc-option,--param=allow-store-data-races=0) -@@ -751,7 +753,7 @@ KBUILD_CFLAGS += $(call cc-option, -fno- +@@ -744,7 +746,7 @@ KBUILD_CFLAGS += $(call cc-option, -fno- endif # arch Makefile may override CC so keep this after arch Makefile is included diff --git a/debian/patches/bugfix/all/rds-verify-the-underlying-transport-exists-before-cr.patch b/debian/patches/bugfix/all/rds-verify-the-underlying-transport-exists-before-cr.patch deleted file mode 100644 index 0068818a9..000000000 --- a/debian/patches/bugfix/all/rds-verify-the-underlying-transport-exists-before-cr.patch +++ /dev/null @@ -1,74 +0,0 @@ -From: Sasha Levin -Date: Tue, 8 Sep 2015 10:53:40 -0400 -Subject: RDS: verify the underlying transport exists before creating a - connection -Origin: https://git.kernel.org/linus/74e98eb085889b0d2d4908f59f6e00026063014f - -There was no verification that an underlying transport exists when creating -a connection, this would cause dereferencing a NULL ptr. - -It might happen on sockets that weren't properly bound before attempting to -send a message, which will cause a NULL ptr deref: - -[135546.047719] kasan: GPF could be caused by NULL-ptr deref or user memory accessgeneral protection fault: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC KASAN -[135546.051270] Modules linked in: -[135546.051781] CPU: 4 PID: 15650 Comm: trinity-c4 Not tainted 4.2.0-next-20150902-sasha-00041-gbaa1222-dirty #2527 -[135546.053217] task: ffff8800835bc000 ti: ffff8800bc708000 task.ti: ffff8800bc708000 -[135546.054291] RIP: __rds_conn_create (net/rds/connection.c:194) -[135546.055666] RSP: 0018:ffff8800bc70fab0 EFLAGS: 00010202 -[135546.056457] RAX: dffffc0000000000 RBX: 0000000000000f2c RCX: ffff8800835bc000 -[135546.057494] RDX: 0000000000000007 RSI: ffff8800835bccd8 RDI: 0000000000000038 -[135546.058530] RBP: ffff8800bc70fb18 R08: 0000000000000001 R09: 0000000000000000 -[135546.059556] R10: ffffed014d7a3a23 R11: ffffed014d7a3a21 R12: 0000000000000000 -[135546.060614] R13: 0000000000000001 R14: ffff8801ec3d0000 R15: 0000000000000000 -[135546.061668] FS: 00007faad4ffb700(0000) GS:ffff880252000000(0000) knlGS:0000000000000000 -[135546.062836] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b -[135546.063682] CR2: 000000000000846a CR3: 000000009d137000 CR4: 00000000000006a0 -[135546.064723] Stack: -[135546.065048] ffffffffafe2055c ffffffffafe23fc1 ffffed00493097bf ffff8801ec3d0008 -[135546.066247] 0000000000000000 00000000000000d0 0000000000000000 ac194a24c0586342 -[135546.067438] 1ffff100178e1f78 ffff880320581b00 ffff8800bc70fdd0 ffff880320581b00 -[135546.068629] Call Trace: -[135546.069028] ? __rds_conn_create (include/linux/rcupdate.h:856 net/rds/connection.c:134) -[135546.069989] ? rds_message_copy_from_user (net/rds/message.c:298) -[135546.071021] rds_conn_create_outgoing (net/rds/connection.c:278) -[135546.071981] rds_sendmsg (net/rds/send.c:1058) -[135546.072858] ? perf_trace_lock (include/trace/events/lock.h:38) -[135546.073744] ? lockdep_init (kernel/locking/lockdep.c:3298) -[135546.074577] ? rds_send_drop_to (net/rds/send.c:976) -[135546.075508] ? __might_fault (./arch/x86/include/asm/current.h:14 mm/memory.c:3795) -[135546.076349] ? __might_fault (mm/memory.c:3795) -[135546.077179] ? rds_send_drop_to (net/rds/send.c:976) -[135546.078114] sock_sendmsg (net/socket.c:611 net/socket.c:620) -[135546.078856] SYSC_sendto (net/socket.c:1657) -[135546.079596] ? SYSC_connect (net/socket.c:1628) -[135546.080510] ? trace_dump_stack (kernel/trace/trace.c:1926) -[135546.081397] ? ring_buffer_unlock_commit (kernel/trace/ring_buffer.c:2479 kernel/trace/ring_buffer.c:2558 kernel/trace/ring_buffer.c:2674) -[135546.082390] ? trace_buffer_unlock_commit (kernel/trace/trace.c:1749) -[135546.083410] ? trace_event_raw_event_sys_enter (include/trace/events/syscalls.h:16) -[135546.084481] ? do_audit_syscall_entry (include/trace/events/syscalls.h:16) -[135546.085438] ? trace_buffer_unlock_commit (kernel/trace/trace.c:1749) -[135546.085515] rds_ib_laddr_check(): addr 36.74.25.172 ret -99 node type -1 - -Acked-by: Santosh Shilimkar -Signed-off-by: Sasha Levin -Signed-off-by: David S. Miller ---- - net/rds/connection.c | 6 ++++++ - 1 file changed, 6 insertions(+) - ---- a/net/rds/connection.c -+++ b/net/rds/connection.c -@@ -187,6 +187,12 @@ new_conn: - } - } - -+ if (trans == NULL) { -+ kmem_cache_free(rds_conn_slab, conn); -+ conn = ERR_PTR(-ENODEV); -+ goto out; -+ } -+ - conn->c_trans = trans; - - ret = trans->conn_alloc(conn, gfp); diff --git a/debian/patches/bugfix/all/scripts-kernel-doc-parse-kernel-doc-deterministicall.patch b/debian/patches/bugfix/all/scripts-kernel-doc-parse-kernel-doc-deterministicall.patch deleted file mode 100644 index 3c835fbde..000000000 --- a/debian/patches/bugfix/all/scripts-kernel-doc-parse-kernel-doc-deterministicall.patch +++ /dev/null @@ -1,34 +0,0 @@ -From: Jérémy Bobbio -Date: Wed, 8 Jul 2015 20:06:33 +0100 -Subject: scripts/kernel-doc: parse kernel-doc deterministically -Bug-Debian: https://bugs.debian.org/769844 -Forwarded: http://thread.gmane.org/gmane.linux.documentation/31870/focus=31871 - -Regular expressions for highlights in kernel-doc are stored in a Perl -hash. These hashes are ordered differently for each Perl run. This will -prevent kernel-doc to behave deterministically when parsing “@foo()” as -in some runs it will be interpreted as a parameter and in the others it -will be interpreted as a function. - -We now sort the %highlights hash to get the same behavior on every run. - -Signed-off-by: Jérémy Bobbio -Signed-off-by: Ben Hutchings -Signed-off-by: Jonathan Corbet ---- - scripts/kernel-doc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/scripts/kernel-doc b/scripts/kernel-doc -index 9922e66..71ada00 100755 ---- a/scripts/kernel-doc -+++ b/scripts/kernel-doc -@@ -2587,7 +2587,7 @@ $kernelversion = get_kernel_version(); - - # generate a sequence of code that will splice in highlighting information - # using the s// operator. --foreach my $pattern (keys %highlights) { -+foreach my $pattern (sort keys %highlights) { - # print STDERR "scanning pattern:$pattern, highlight:($highlights{$pattern})\n"; - $dohighlight .= "\$contents =~ s:$pattern:$highlights{$pattern}:gs;\n"; - } diff --git a/debian/patches/bugfix/all/scripts-kernel-doc-use-kbuild_build_timestamp-as-man.patch b/debian/patches/bugfix/all/scripts-kernel-doc-use-kbuild_build_timestamp-as-man.patch deleted file mode 100644 index e4385f637..000000000 --- a/debian/patches/bugfix/all/scripts-kernel-doc-use-kbuild_build_timestamp-as-man.patch +++ /dev/null @@ -1,43 +0,0 @@ -From: Ben Hutchings -Date: Wed, 8 Jul 2015 20:07:16 +0100 -Subject: scripts/kernel-doc: Use $KBUILD_BUILD_TIMESTAMP as man page date -Bug-Debian: https://bugs.debian.org/769844 -Forwarded: http://thread.gmane.org/gmane.linux.documentation/31870/focus=31875 - -Together with the preceding changes, this allows man pages to be built -reproducibly. - -Signed-off-by: Ben Hutchings -Signed-off-by: Jonathan Corbet ---- - scripts/kernel-doc | 15 ++++++++++++--- - 1 file changed, 12 insertions(+), 3 deletions(-) - -diff --git a/scripts/kernel-doc b/scripts/kernel-doc -index 71ada00..0ac1a07 100755 ---- a/scripts/kernel-doc -+++ b/scripts/kernel-doc -@@ -253,11 +253,20 @@ my %highlights = %highlights_man; - my $blankline = $blankline_man; - my $modulename = "Kernel API"; - my $function_only = 0; -+my $show_not_found = 0; -+ -+my @build_time; -+if (defined($ENV{'KBUILD_BUILD_TIMESTAMP'}) && -+ (my $seconds = `date -d"${ENV{'KBUILD_BUILD_TIMESTAMP'}}" +%s`) ne '') { -+ @build_time = gmtime($seconds); -+} else { -+ @build_time = localtime; -+} -+ - my $man_date = ('January', 'February', 'March', 'April', 'May', 'June', - 'July', 'August', 'September', 'October', -- 'November', 'December')[(localtime)[4]] . -- " " . ((localtime)[5]+1900); --my $show_not_found = 0; -+ 'November', 'December')[$build_time[4]] . -+ " " . ($build_time[5]+1900); - - # Essentially these are globals. - # They probably want to be tidied up, made more localised or something. diff --git a/debian/patches/bugfix/all/vfs-test-for-and-handle-paths-that-are-unreachable-f.patch b/debian/patches/bugfix/all/vfs-test-for-and-handle-paths-that-are-unreachable-f.patch deleted file mode 100644 index 7d38eac91..000000000 --- a/debian/patches/bugfix/all/vfs-test-for-and-handle-paths-that-are-unreachable-f.patch +++ /dev/null @@ -1,104 +0,0 @@ -From: "Eric W. Biederman" -Date: Sat, 15 Aug 2015 20:27:13 -0500 -Subject: vfs: Test for and handle paths that are unreachable from their mnt_root -Origin: https://git.kernel.org/linus/397d425dc26da728396e66d392d5dcb8dac30c37 - -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" -Signed-off-by: Al Viro ---- - fs/namei.c | 27 +++++++++++++++++++++++++-- - 1 file changed, 25 insertions(+), 2 deletions(-) - -diff --git a/fs/namei.c b/fs/namei.c -index 1c2105e..29b9279 100644 ---- a/fs/namei.c -+++ b/fs/namei.c -@@ -560,6 +560,24 @@ static int __nd_alloc_stack(struct nameidata *nd) - return 0; - } - -+/** -+ * 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); -+} -+ - static inline int nd_alloc_stack(struct nameidata *nd) - { - if (likely(nd->depth != EMBEDDED_LEVELS)) -@@ -1296,6 +1314,8 @@ static int follow_dotdot_rcu(struct nameidata *nd) - return -ECHILD; - nd->path.dentry = parent; - nd->seq = seq; -+ if (unlikely(!path_connected(&nd->path))) -+ return -ENOENT; - break; - } else { - struct mount *mnt = real_mount(nd->path.mnt); -@@ -1396,7 +1416,7 @@ static void follow_mount(struct path *path) - } - } - --static void follow_dotdot(struct nameidata *nd) -+static int follow_dotdot(struct nameidata *nd) - { - if (!nd->root.mnt) - set_root(nd); -@@ -1412,6 +1432,8 @@ static void follow_dotdot(struct nameidata *nd) - /* rare case of legitimate dget_parent()... */ - nd->path.dentry = dget_parent(nd->path.dentry); - dput(old); -+ if (unlikely(!path_connected(&nd->path))) -+ return -ENOENT; - break; - } - if (!follow_up(&nd->path)) -@@ -1419,6 +1441,7 @@ static void follow_dotdot(struct nameidata *nd) - } - follow_mount(&nd->path); - nd->inode = nd->path.dentry->d_inode; -+ return 0; - } - - /* -@@ -1634,7 +1657,7 @@ static inline int handle_dots(struct nameidata *nd, int type) - if (nd->flags & LOOKUP_RCU) { - return follow_dotdot_rcu(nd); - } else -- follow_dotdot(nd); -+ return follow_dotdot(nd); - } - return 0; - } diff --git a/debian/patches/bugfix/all/workqueue-make-flush_workqueue-available-again-to-no.patch b/debian/patches/bugfix/all/workqueue-make-flush_workqueue-available-again-to-no.patch deleted file mode 100644 index 571cc90c9..000000000 --- a/debian/patches/bugfix/all/workqueue-make-flush_workqueue-available-again-to-no.patch +++ /dev/null @@ -1,35 +0,0 @@ -From: Tim Gardner -Date: Tue, 4 Aug 2015 11:26:04 -0600 -Subject: workqueue: Make flush_workqueue() available again to non GPL modules -Origin: https://git.kernel.org/linus/1dadafa86a779884f14a6e7a3ddde1a57b0a0a65 -Bug-Debian: https://bugs.debian.org/798311 - -Commit 37b1ef31a568fc02e53587620226e5f3c66454c8 ("workqueue: move -flush_scheduled_work() to workqueue.h") moved the exported non GPL -flush_scheduled_work() from a function to an inline wrapper. -Unfortunately, it directly calls flush_workqueue() which is a GPL function. -This has the effect of changing the licensing requirement for this function -and makes it unavailable to non GPL modules. - -See commit ad7b1f841f8a54c6d61ff181451f55b68175e15a ("workqueue: Make -schedule_work() available again to non GPL modules") for precedent. - -Signed-off-by: Tim Gardner -Signed-off-by: Tejun Heo ---- - kernel/workqueue.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/kernel/workqueue.c b/kernel/workqueue.c -index 4c4f061..a413acb 100644 ---- a/kernel/workqueue.c -+++ b/kernel/workqueue.c -@@ -2614,7 +2614,7 @@ void flush_workqueue(struct workqueue_struct *wq) - out_unlock: - mutex_unlock(&wq->mutex); - } --EXPORT_SYMBOL_GPL(flush_workqueue); -+EXPORT_SYMBOL(flush_workqueue); - - /** - * drain_workqueue - drain a workqueue diff --git a/debian/patches/debian/yama-disable-by-default.patch b/debian/patches/debian/yama-disable-by-default.patch index cc5392f08..bbf8f21a5 100644 --- a/debian/patches/debian/yama-disable-by-default.patch +++ b/debian/patches/debian/yama-disable-by-default.patch @@ -15,12 +15,12 @@ Forwarded: not-needed /* describe a ptrace relationship for potential exception */ struct ptrace_relation { -@@ -408,7 +408,7 @@ static __init int yama_init(void) - return 0; - yama_add_hooks(); - #endif +@@ -402,7 +402,7 @@ static inline void yama_init_sysctl(void + + void __init yama_add_hooks(void) + { - pr_info("Yama: becoming mindful.\n"); + pr_info("Yama: disabled by default; enable with sysctl kernel.yama.*\n"); - - #ifdef CONFIG_SYSCTL - if (!register_sysctl_paths(yama_sysctl_path, yama_sysctl_table)) + security_add_hooks(yama_hooks, ARRAY_SIZE(yama_hooks)); + yama_init_sysctl(); + } diff --git a/debian/patches/features/all/aufs4/aufs4-mmap.patch b/debian/patches/features/all/aufs4/aufs4-mmap.patch index f0d7aa853..b7b4a9188 100644 --- a/debian/patches/features/all/aufs4/aufs4-mmap.patch +++ b/debian/patches/features/all/aufs4/aufs4-mmap.patch @@ -8,11 +8,10 @@ Patch headers added by debian/patches/features/all/aufs4/gen-patch aufs4.x-rcN mmap patch -diff --git a/fs/buffer.c b/fs/buffer.c -index 1cf7a53..076aff86 100644 +[bwh: Forward-ported to 4.3-rc2: adjust context, indentation] --- a/fs/buffer.c +++ b/fs/buffer.c -@@ -2473,7 +2473,7 @@ int block_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf, +@@ -2473,7 +2473,7 @@ int block_page_mkwrite(struct vm_area_st * Update file times before taking page lock. We may end up failing the * fault so this update may be superfluous but who really cares... */ @@ -21,11 +20,9 @@ index 1cf7a53..076aff86 100644 ret = __block_page_mkwrite(vma, vmf, get_block); sb_end_pagefault(sb); -diff --git a/fs/proc/base.c b/fs/proc/base.c -index 87782e8..b287e64 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c -@@ -1934,7 +1934,7 @@ static int proc_map_files_get_link(struct dentry *dentry, struct path *path) +@@ -1914,7 +1914,7 @@ static int proc_map_files_get_link(struc down_read(&mm->mmap_sem); vma = find_exact_vma(mm, vm_start, vm_end); if (vma && vma->vm_file) { @@ -34,11 +31,9 @@ index 87782e8..b287e64 100644 path_get(path); rc = 0; } -diff --git a/fs/proc/nommu.c b/fs/proc/nommu.c -index f8595e8..cb8eda0 100644 --- a/fs/proc/nommu.c +++ b/fs/proc/nommu.c -@@ -45,7 +45,10 @@ static int nommu_region_show(struct seq_file *m, struct vm_region *region) +@@ -45,7 +45,10 @@ static int nommu_region_show(struct seq_ file = region->vm_file; if (file) { @@ -50,11 +45,9 @@ index f8595e8..cb8eda0 100644 dev = inode->i_sb->s_dev; ino = inode->i_ino; } -diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c -index ca1e091..8940e47 100644 --- a/fs/proc/task_mmu.c +++ b/fs/proc/task_mmu.c -@@ -279,7 +279,10 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid) +@@ -280,7 +280,10 @@ show_map_vma(struct seq_file *m, struct const char *name = NULL; if (file) { @@ -66,7 +59,7 @@ index ca1e091..8940e47 100644 dev = inode->i_sb->s_dev; ino = inode->i_ino; pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT; -@@ -1479,7 +1482,7 @@ static int show_numa_map(struct seq_file *m, void *v, int is_pid) +@@ -1465,7 +1468,7 @@ static int show_numa_map(struct seq_file struct proc_maps_private *proc_priv = &numa_priv->proc_maps; struct vm_area_struct *vma = v; struct numa_maps *md = &numa_priv->md; @@ -75,11 +68,9 @@ index ca1e091..8940e47 100644 struct mm_struct *mm = vma->vm_mm; struct mm_walk walk = { .hugetlb_entry = gather_hugetlb_stats, -diff --git a/fs/proc/task_nommu.c b/fs/proc/task_nommu.c -index e0d64c9..7aa92db 100644 --- a/fs/proc/task_nommu.c +++ b/fs/proc/task_nommu.c -@@ -160,7 +160,10 @@ static int nommu_vma_show(struct seq_file *m, struct vm_area_struct *vma, +@@ -160,7 +160,10 @@ static int nommu_vma_show(struct seq_fil file = vma->vm_file; if (file) { @@ -91,11 +82,9 @@ index e0d64c9..7aa92db 100644 dev = inode->i_sb->s_dev; ino = inode->i_ino; pgoff = (loff_t)vma->vm_pgoff << PAGE_SHIFT; -diff --git a/include/linux/mm.h b/include/linux/mm.h -index 2e872f9..2494ed2 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h -@@ -1173,6 +1173,28 @@ static inline int fixup_user_fault(struct task_struct *tsk, +@@ -1190,6 +1190,28 @@ static inline int fixup_user_fault(struc } #endif @@ -124,11 +113,9 @@ index 2e872f9..2494ed2 100644 extern int access_process_vm(struct task_struct *tsk, unsigned long addr, void *buf, int len, int write); extern int access_remote_vm(struct mm_struct *mm, unsigned long addr, void *buf, int len, int write); -diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h -index 0038ac7..409940d 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h -@@ -259,6 +259,7 @@ struct vm_region { +@@ -250,6 +250,7 @@ struct vm_region { unsigned long vm_top; /* region allocated to here */ unsigned long vm_pgoff; /* the offset in vm_file corresponding to vm_start */ struct file *vm_file; /* the backing file or NULL */ @@ -136,7 +123,7 @@ index 0038ac7..409940d 100644 int vm_usage; /* region usage count (access under nommu_region_sem) */ bool vm_icache_flushed : 1; /* true if the icache has been flushed for -@@ -323,6 +324,7 @@ struct vm_area_struct { +@@ -324,6 +325,7 @@ struct vm_area_struct { unsigned long vm_pgoff; /* Offset (within vm_file) in PAGE_SIZE units, *not* PAGE_CACHE_SIZE */ struct file * vm_file; /* File we map to (can be NULL). */ @@ -144,11 +131,9 @@ index 0038ac7..409940d 100644 void * vm_private_data; /* was vm_pte (shared mem) */ #ifndef CONFIG_MMU -diff --git a/kernel/fork.c b/kernel/fork.c -index 1bfefc6..a86bd7f 100644 --- a/kernel/fork.c +++ b/kernel/fork.c -@@ -456,7 +456,7 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm) +@@ -462,7 +462,7 @@ static int dup_mmap(struct mm_struct *mm struct inode *inode = file_inode(file); struct address_space *mapping = file->f_mapping; @@ -157,11 +142,9 @@ index 1bfefc6..a86bd7f 100644 if (tmp->vm_flags & VM_DENYWRITE) atomic_dec(&inode->i_writecount); i_mmap_lock_write(mapping); -diff --git a/mm/Makefile b/mm/Makefile -index 98c4eae..3f0c9b9 100644 --- a/mm/Makefile +++ b/mm/Makefile -@@ -21,7 +21,7 @@ obj-y := filemap.o mempool.o oom_kill.o \ +@@ -21,7 +21,7 @@ obj-y := filemap.o mempool.o oom_kill. mm_init.o mmu_context.o percpu.o slab_common.o \ compaction.o vmacache.o \ interval_tree.o list_lru.o workingset.o \ @@ -170,11 +153,9 @@ index 98c4eae..3f0c9b9 100644 obj-y += init-mm.o -diff --git a/mm/filemap.c b/mm/filemap.c -index 1283fc8..128f18f 100644 --- a/mm/filemap.c +++ b/mm/filemap.c -@@ -2089,7 +2089,7 @@ int filemap_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf) +@@ -2089,7 +2089,7 @@ int filemap_page_mkwrite(struct vm_area_ int ret = VM_FAULT_LOCKED; sb_start_pagefault(inode->i_sb); @@ -183,11 +164,9 @@ index 1283fc8..128f18f 100644 lock_page(page); if (page->mapping != inode->i_mapping) { unlock_page(page); -diff --git a/mm/memory.c b/mm/memory.c -index a84fbb7..13973d2 100644 --- a/mm/memory.c +++ b/mm/memory.c -@@ -2034,7 +2034,7 @@ static inline int wp_page_reuse(struct mm_struct *mm, +@@ -2035,7 +2035,7 @@ static inline int wp_page_reuse(struct m } if (!page_mkwrite) @@ -196,11 +175,9 @@ index a84fbb7..13973d2 100644 } return VM_FAULT_WRITE; -diff --git a/mm/mmap.c b/mm/mmap.c -index aa632ad..3ff75d3 100644 --- a/mm/mmap.c +++ b/mm/mmap.c -@@ -274,7 +274,7 @@ static struct vm_area_struct *remove_vma(struct vm_area_struct *vma) +@@ -275,7 +275,7 @@ static struct vm_area_struct *remove_vma if (vma->vm_ops && vma->vm_ops->close) vma->vm_ops->close(vma); if (vma->vm_file) @@ -209,7 +186,7 @@ index aa632ad..3ff75d3 100644 mpol_put(vma_policy(vma)); kmem_cache_free(vm_area_cachep, vma); return next; -@@ -886,7 +886,7 @@ again: remove_next = 1 + (end > next->vm_end); +@@ -887,7 +887,7 @@ again: remove_next = 1 + (end > next-> if (remove_next) { if (file) { uprobe_munmap(next, next->vm_start, next->vm_end); @@ -218,7 +195,7 @@ index aa632ad..3ff75d3 100644 } if (next->anon_vma) anon_vma_merge(vma, next); -@@ -1671,8 +1671,8 @@ out: +@@ -1682,8 +1682,8 @@ out: return addr; unmap_and_free_vma: @@ -228,7 +205,7 @@ index aa632ad..3ff75d3 100644 /* Undo any partial mapping done by a device driver. */ unmap_region(mm, vma, prev, vma->vm_start, vma->vm_end); -@@ -2473,7 +2473,7 @@ static int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma, +@@ -2484,7 +2484,7 @@ static int __split_vma(struct mm_struct goto out_free_mpol; if (new->vm_file) @@ -237,7 +214,7 @@ index aa632ad..3ff75d3 100644 if (new->vm_ops && new->vm_ops->open) new->vm_ops->open(new); -@@ -2492,7 +2492,7 @@ static int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma, +@@ -2503,7 +2503,7 @@ static int __split_vma(struct mm_struct if (new->vm_ops && new->vm_ops->close) new->vm_ops->close(new); if (new->vm_file) @@ -246,7 +223,7 @@ index aa632ad..3ff75d3 100644 unlink_anon_vmas(new); out_free_mpol: mpol_put(vma_policy(new)); -@@ -2635,7 +2635,6 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size, +@@ -2645,7 +2645,6 @@ SYSCALL_DEFINE5(remap_file_pages, unsign struct vm_area_struct *vma; unsigned long populate = 0; unsigned long ret = -EINVAL; @@ -254,7 +231,7 @@ index aa632ad..3ff75d3 100644 pr_warn_once("%s (%d) uses deprecated remap_file_pages() syscall. " "See Documentation/vm/remap_file_pages.txt.\n", -@@ -2679,10 +2678,10 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size, +@@ -2689,10 +2688,10 @@ SYSCALL_DEFINE5(remap_file_pages, unsign munlock_vma_pages_range(vma, start, start + size); } @@ -267,20 +244,18 @@ index aa632ad..3ff75d3 100644 out: up_write(&mm->mmap_sem); if (populate) -@@ -2949,7 +2948,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap, - if (anon_vma_clone(new_vma, vma)) - goto out_free_mempol; - if (new_vma->vm_file) -- get_file(new_vma->vm_file); -+ vma_get_file(new_vma); - if (new_vma->vm_ops && new_vma->vm_ops->open) - new_vma->vm_ops->open(new_vma); - vma_link(mm, new_vma, prev, rb_link, rb_parent); -diff --git a/mm/nommu.c b/mm/nommu.c -index 58ea364..f937b7e 100644 +@@ -2962,7 +2961,7 @@ struct vm_area_struct *copy_vma(struct v + if (anon_vma_clone(new_vma, vma)) + goto out_free_mempol; + if (new_vma->vm_file) +- get_file(new_vma->vm_file); ++ vma_get_file(new_vma); + if (new_vma->vm_ops && new_vma->vm_ops->open) + new_vma->vm_ops->open(new_vma); + vma_link(mm, new_vma, prev, rb_link, rb_parent); --- a/mm/nommu.c +++ b/mm/nommu.c -@@ -671,7 +671,7 @@ static void __put_nommu_region(struct vm_region *region) +@@ -671,7 +671,7 @@ static void __put_nommu_region(struct vm up_write(&nommu_region_sem); if (region->vm_file) @@ -289,7 +264,7 @@ index 58ea364..f937b7e 100644 /* IO memory and memory shared directly out of the pagecache * from ramfs/tmpfs mustn't be released here */ -@@ -829,7 +829,7 @@ static void delete_vma(struct mm_struct *mm, struct vm_area_struct *vma) +@@ -829,7 +829,7 @@ static void delete_vma(struct mm_struct if (vma->vm_ops && vma->vm_ops->close) vma->vm_ops->close(vma); if (vma->vm_file) @@ -298,7 +273,7 @@ index 58ea364..f937b7e 100644 put_nommu_region(vma->vm_region); kmem_cache_free(vm_area_cachep, vma); } -@@ -1354,7 +1354,7 @@ unsigned long do_mmap_pgoff(struct file *file, +@@ -1355,7 +1355,7 @@ unsigned long do_mmap(struct file *file, goto error_just_free; } } @@ -307,7 +282,7 @@ index 58ea364..f937b7e 100644 kmem_cache_free(vm_region_jar, region); region = pregion; result = start; -@@ -1429,10 +1429,10 @@ error_just_free: +@@ -1430,10 +1430,10 @@ error_just_free: up_write(&nommu_region_sem); error: if (region->vm_file) @@ -320,9 +295,6 @@ index 58ea364..f937b7e 100644 kmem_cache_free(vm_area_cachep, vma); return ret; -diff --git a/mm/prfile.c b/mm/prfile.c -new file mode 100644 -index 0000000..b323b8a --- /dev/null +++ b/mm/prfile.c @@ -0,0 +1,86 @@ diff --git a/debian/patches/features/all/aufs4/aufs4-standalone.patch b/debian/patches/features/all/aufs4/aufs4-standalone.patch index 014308779..fc28158d4 100644 --- a/debian/patches/features/all/aufs4/aufs4-standalone.patch +++ b/debian/patches/features/all/aufs4/aufs4-standalone.patch @@ -8,6 +8,8 @@ Patch headers added by debian/patches/features/all/aufs4/gen-patch aufs4.x-rcN standalone patch +[bwh: Forward-ported to 4.3-rc2: remove export of inode_sb_list_lock which + no longer exists as a global variable] --- a/fs/dcache.c +++ b/fs/dcache.c @@ -1272,6 +1272,7 @@ rename_retry: @@ -36,16 +38,6 @@ aufs4.x-rcN standalone patch void __init files_init(void) { ---- a/fs/inode.c -+++ b/fs/inode.c -@@ -58,6 +58,7 @@ static struct hlist_head *inode_hashtabl - static __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_hash_lock); - - __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_sb_list_lock); -+EXPORT_SYMBOL_GPL(inode_sb_list_lock); - - /* - * Empty aops. Can be used for the cases where the user does not --- a/fs/namespace.c +++ b/fs/namespace.c @@ -463,6 +463,7 @@ void __mnt_drop_write(struct vfsmount *m @@ -108,23 +100,23 @@ aufs4.x-rcN standalone patch /* Calculate mask of events for a list of marks */ u32 fsnotify_recalc_mask(struct hlist_head *head) -@@ -202,6 +203,7 @@ void fsnotify_destroy_mark(struct fsnoti - fsnotify_destroy_mark_locked(mark, group); +@@ -208,6 +209,7 @@ void fsnotify_destroy_mark(struct fsnoti mutex_unlock(&group->mark_mutex); + fsnotify_free_mark(mark); } +EXPORT_SYMBOL_GPL(fsnotify_destroy_mark); - /* - * Destroy all marks in the given list. The marks must be already detached from -@@ -376,6 +378,7 @@ err: - + void fsnotify_destroy_marks(struct hlist_head *head, spinlock_t *lock) + { +@@ -402,6 +404,7 @@ int fsnotify_add_mark(struct fsnotify_ma + mutex_unlock(&group->mark_mutex); return ret; } +EXPORT_SYMBOL_GPL(fsnotify_add_mark); - int fsnotify_add_mark(struct fsnotify_mark *mark, struct fsnotify_group *group, - struct inode *inode, struct vfsmount *mnt, int allow_dups) -@@ -475,6 +478,7 @@ void fsnotify_init_mark(struct fsnotify_ + /* + * Given a list of marks, find the mark associated with given group. If found +@@ -492,6 +495,7 @@ void fsnotify_init_mark(struct fsnotify_ atomic_set(&mark->refcnt, 1); mark->free_mark = free_mark; } @@ -198,7 +190,7 @@ aufs4.x-rcN standalone patch int vfs_xattr_cmp(struct dentry *dentry, const char *xattr_name, --- a/security/commoncap.c +++ b/security/commoncap.c -@@ -970,12 +970,14 @@ int cap_mmap_addr(unsigned long addr) +@@ -1053,12 +1053,14 @@ int cap_mmap_addr(unsigned long addr) } return ret; } @@ -233,7 +225,7 @@ aufs4.x-rcN standalone patch { --- a/security/security.c +++ b/security/security.c -@@ -438,6 +438,7 @@ int security_path_rmdir(struct path *dir +@@ -433,6 +433,7 @@ int security_path_rmdir(struct path *dir return 0; return call_int_hook(path_rmdir, 0, dir, dentry); } @@ -241,7 +233,7 @@ aufs4.x-rcN standalone patch int security_path_unlink(struct path *dir, struct dentry *dentry) { -@@ -454,6 +455,7 @@ int security_path_symlink(struct path *d +@@ -449,6 +450,7 @@ int security_path_symlink(struct path *d return 0; return call_int_hook(path_symlink, 0, dir, dentry, old_name); } @@ -249,7 +241,7 @@ aufs4.x-rcN standalone patch int security_path_link(struct dentry *old_dentry, struct path *new_dir, struct dentry *new_dentry) -@@ -462,6 +464,7 @@ int security_path_link(struct dentry *ol +@@ -457,6 +459,7 @@ int security_path_link(struct dentry *ol return 0; return call_int_hook(path_link, 0, old_dentry, new_dir, new_dentry); } @@ -257,7 +249,7 @@ aufs4.x-rcN standalone patch int security_path_rename(struct path *old_dir, struct dentry *old_dentry, struct path *new_dir, struct dentry *new_dentry, -@@ -489,6 +492,7 @@ int security_path_truncate(struct path * +@@ -484,6 +487,7 @@ int security_path_truncate(struct path * return 0; return call_int_hook(path_truncate, 0, path); } @@ -265,7 +257,7 @@ aufs4.x-rcN standalone patch int security_path_chmod(struct path *path, umode_t mode) { -@@ -496,6 +500,7 @@ int security_path_chmod(struct path *pat +@@ -491,6 +495,7 @@ int security_path_chmod(struct path *pat return 0; return call_int_hook(path_chmod, 0, path, mode); } @@ -273,7 +265,7 @@ aufs4.x-rcN standalone patch int security_path_chown(struct path *path, kuid_t uid, kgid_t gid) { -@@ -503,6 +508,7 @@ int security_path_chown(struct path *pat +@@ -498,6 +503,7 @@ int security_path_chown(struct path *pat return 0; return call_int_hook(path_chown, 0, path, uid, gid); } @@ -281,7 +273,7 @@ aufs4.x-rcN standalone patch int security_path_chroot(struct path *path) { -@@ -588,6 +594,7 @@ int security_inode_readlink(struct dentr +@@ -583,6 +589,7 @@ int security_inode_readlink(struct dentr return 0; return call_int_hook(inode_readlink, 0, dentry); } @@ -289,7 +281,7 @@ aufs4.x-rcN standalone patch int security_inode_follow_link(struct dentry *dentry, struct inode *inode, bool rcu) -@@ -603,6 +610,7 @@ int security_inode_permission(struct ino +@@ -598,6 +605,7 @@ int security_inode_permission(struct ino return 0; return call_int_hook(inode_permission, 0, inode, mask); } @@ -297,7 +289,7 @@ aufs4.x-rcN standalone patch int security_inode_setattr(struct dentry *dentry, struct iattr *attr) { -@@ -741,6 +749,7 @@ int security_file_permission(struct file +@@ -736,6 +744,7 @@ int security_file_permission(struct file return fsnotify_perm(file, mask); } @@ -305,7 +297,7 @@ aufs4.x-rcN standalone patch int security_file_alloc(struct file *file) { -@@ -800,6 +809,7 @@ int security_mmap_file(struct file *file +@@ -795,6 +804,7 @@ int security_mmap_file(struct file *file return ret; return ima_file_mmap(file, prot); } diff --git a/debian/patches/features/all/cgroups-Allow-memory-cgroup-support-to-be-included-b.patch b/debian/patches/features/all/cgroups-Allow-memory-cgroup-support-to-be-included-b.patch index b2a6af631..95641c717 100644 --- a/debian/patches/features/all/cgroups-Allow-memory-cgroup-support-to-be-included-b.patch +++ b/debian/patches/features/all/cgroups-Allow-memory-cgroup-support-to-be-included-b.patch @@ -19,7 +19,7 @@ Signed-off-by: Ben Hutchings --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt -@@ -580,8 +580,8 @@ bytes respectively. Such letter suffixes +@@ -587,8 +587,8 @@ bytes respectively. Such letter suffixes ccw_timeout_log [S390] See Documentation/s390/CommonIO for details. @@ -32,7 +32,7 @@ Signed-off-by: Ben Hutchings a single hierarchy --- a/init/Kconfig +++ b/init/Kconfig -@@ -990,6 +990,14 @@ config MEMCG +@@ -1010,6 +1010,14 @@ config MEMCG Provides a memory resource controller that manages both anonymous memory and page cache. (See Documentation/cgroups/memory.txt) @@ -49,7 +49,7 @@ Signed-off-by: Ben Hutchings depends on MEMCG && SWAP --- a/kernel/cgroup.c +++ b/kernel/cgroup.c -@@ -5370,7 +5370,7 @@ out_free: +@@ -5468,7 +5468,7 @@ out_free: kfree(pathbuf); } @@ -58,19 +58,17 @@ Signed-off-by: Ben Hutchings { struct cgroup_subsys *ss; char *token; -@@ -5382,17 +5382,29 @@ static int __init cgroup_disable(char *s +@@ -5483,16 +5483,27 @@ static int __init cgroup_disable(char *s + strcmp(token, ss->legacy_name)) + continue; - for_each_subsys(ss, i) { - if (!strcmp(token, ss->name)) { -- ss->disabled = 1; -- printk(KERN_INFO "Disabling %s control group" -- " subsystem\n", ss->name); -+ ss->disabled = value; -+ printk(KERN_INFO -+ "%sabling %s control group subsystem\n", -+ value ? "Dis" : "En", ss->name); - break; - } +- ss->disabled = 1; +- printk(KERN_INFO "Disabling %s control group subsystem\n", +- ss->name); ++ ss->disabled = value; ++ printk(KERN_INFO "%sabling %s control group subsystem\n", ++ value ? "Dis" : "En", ss->name); + break; } } return 1; @@ -93,7 +91,7 @@ Signed-off-by: Ben Hutchings printk("cgroup: using legacy files on the default hierarchy\n"); --- a/mm/memcontrol.c +++ b/mm/memcontrol.c -@@ -5379,6 +5379,9 @@ static struct cftype memory_files[] = { +@@ -5209,6 +5209,9 @@ static struct cftype memory_files[] = { }; struct cgroup_subsys memory_cgrp_subsys = { diff --git a/debian/patches/features/all/regulator-axp20x-Add-module-alias.patch b/debian/patches/features/all/regulator-axp20x-Add-module-alias.patch deleted file mode 100644 index 21f67c4ff..000000000 --- a/debian/patches/features/all/regulator-axp20x-Add-module-alias.patch +++ /dev/null @@ -1,30 +0,0 @@ -From d4ea7d86457a8d0ea40ce77bdeda1fc966cc35ec Mon Sep 17 00:00:00 2001 -From: Ian Campbell -Date: Sat, 1 Aug 2015 18:13:25 +0100 -Subject: [PATCH] regulator: axp20x: Add module alias -Origin: https://git.kernel.org/broonie/regulator/c/d4ea7d86457a8d0ea40ce77bdeda1fc966cc35ec - -This allows the module to be autoloaded. - -Together with 07949bf9c63c ("cpufreq: dt: allow driver to boot -automatically") this is sufficient to allow a modular kernel (such -as Debian's) to enable cpufreq on a Cubietruck. - -Signed-off-by: Ian Campbell -Signed-off-by: Mark Brown ---- - drivers/regulator/axp20x-regulator.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/drivers/regulator/axp20x-regulator.c b/drivers/regulator/axp20x-regulator.c -index 6468291..01bf347 100644 ---- a/drivers/regulator/axp20x-regulator.c -+++ b/drivers/regulator/axp20x-regulator.c -@@ -405,3 +405,4 @@ module_platform_driver(axp20x_regulator_driver); - MODULE_LICENSE("GPL v2"); - MODULE_AUTHOR("Carlo Caione "); - MODULE_DESCRIPTION("Regulator Driver for AXP20X PMIC"); -+MODULE_ALIAS("platform:axp20x-regulator"); --- -2.1.4 - diff --git a/debian/patches/features/arm/deb-pkg-add-automatic-support-for-armhf-architecture.patch b/debian/patches/features/arm/deb-pkg-add-automatic-support-for-armhf-architecture.patch index 97bab79c3..3347d89db 100644 --- a/debian/patches/features/arm/deb-pkg-add-automatic-support-for-armhf-architecture.patch +++ b/debian/patches/features/arm/deb-pkg-add-automatic-support-for-armhf-architecture.patch @@ -24,7 +24,7 @@ Ben. --- a/scripts/package/builddeb +++ b/scripts/package/builddeb -@@ -45,7 +45,16 @@ create_package() { +@@ -52,7 +52,16 @@ set_debarch() { arm64) debarch=arm64 ;; arm*) @@ -40,5 +40,5 @@ Ben. + fi + ;; *) + debarch=$(dpkg --print-architecture) echo "" >&2 - echo "** ** ** WARNING ** ** **" >&2 diff --git a/debian/patches/features/arm64/usb-add-support-for-acpi-identification-to-xhci-platform.patch b/debian/patches/features/arm64/usb-add-support-for-acpi-identification-to-xhci-platform.patch index f02e58786..84c2c60e3 100644 --- a/debian/patches/features/arm64/usb-add-support-for-acpi-identification-to-xhci-platform.patch +++ b/debian/patches/features/arm64/usb-add-support-for-acpi-identification-to-xhci-platform.patch @@ -17,6 +17,7 @@ Signed-off-by: Mark Langsdorf [ ijc -- allow build as a module, otherwise cannot see various core symbols, like xhci_resume or usb_add_hcd which are in modules. xhci-hcd-plat can be built as a module from v3.18. ] +[bwh: Drop Kconfig change as a similar change was applied upstream] --- Changes from v2 @@ -28,26 +29,6 @@ Changes from v1 Removed changes to arm64/Kconfig Made CONFIG_USB_XHCI_PLATFORM a user selectable config option - drivers/usb/host/Kconfig | 7 ++++++- - drivers/usb/host/xhci-plat.c | 11 +++++++++++ - 2 files changed, 17 insertions(+), 1 deletion(-) - ---- a/drivers/usb/host/Kconfig -+++ b/drivers/usb/host/Kconfig -@@ -32,7 +32,12 @@ config USB_XHCI_PCI - default y - - config USB_XHCI_PLATFORM -- tristate -+ tristate "xHCI platform driver support" -+ ---help--- -+ Say 'Y' to enable the support for the xHCI host controller -+ as a platform device. Many ARM SoCs provide USB this way. -+ -+ If unsure, say 'Y'. - - config USB_XHCI_MVEBU - tristate "xHCI support for Marvell Armada 375/38x" --- a/drivers/usb/host/xhci-plat.c +++ b/drivers/usb/host/xhci-plat.c @@ -19,6 +19,7 @@ @@ -58,7 +39,7 @@ Changes from v1 #include "xhci.h" #include "xhci-mvebu.h" -@@ -258,6 +259,15 @@ static const struct of_device_id usb_xhc +@@ -262,6 +263,15 @@ static const struct of_device_id usb_xhc MODULE_DEVICE_TABLE(of, usb_xhci_of_match); #endif @@ -74,7 +55,7 @@ Changes from v1 static struct platform_driver usb_xhci_driver = { .probe = xhci_plat_probe, .remove = xhci_plat_remove, -@@ -265,6 +275,7 @@ static struct platform_driver usb_xhci_d +@@ -269,6 +279,7 @@ static struct platform_driver usb_xhci_d .name = "xhci-hcd", .pm = DEV_PM_OPS, .of_match_table = of_match_ptr(usb_xhci_of_match), diff --git a/debian/patches/features/mips/MIPS-octeon-Add-support-for-the-UBNT-E200-board.patch b/debian/patches/features/mips/MIPS-octeon-Add-support-for-the-UBNT-E200-board.patch index 3487d4248..f83da4bb9 100644 --- a/debian/patches/features/mips/MIPS-octeon-Add-support-for-the-UBNT-E200-board.patch +++ b/debian/patches/features/mips/MIPS-octeon-Add-support-for-the-UBNT-E200-board.patch @@ -24,7 +24,7 @@ Signed-off-by: Markos Chandras case CVMX_BOARD_TYPE_CUST_DSR1000N: /* * Port 2 connects to Broadcom PHY (B5081). Other ports (0-1) -@@ -759,6 +761,7 @@ enum cvmx_helper_board_usb_clock_types _ +@@ -765,6 +767,7 @@ enum cvmx_helper_board_usb_clock_types _ case CVMX_BOARD_TYPE_LANAI2_G: case CVMX_BOARD_TYPE_NIC10E_66: case CVMX_BOARD_TYPE_UBNT_E100: @@ -34,19 +34,19 @@ Signed-off-by: Markos Chandras case CVMX_BOARD_TYPE_NIC10E: --- a/arch/mips/include/asm/octeon/cvmx-bootinfo.h +++ b/arch/mips/include/asm/octeon/cvmx-bootinfo.h -@@ -228,6 +228,7 @@ enum cvmx_board_types_enum { +@@ -283,6 +283,7 @@ enum cvmx_board_types_enum { */ CVMX_BOARD_TYPE_CUST_PRIVATE_MIN = 20001, CVMX_BOARD_TYPE_UBNT_E100 = 20002, + CVMX_BOARD_TYPE_UBNT_E200 = 20003, CVMX_BOARD_TYPE_CUST_DSR1000N = 20006, + CVMX_BOARD_TYPE_KONTRON_S1901 = 21901, CVMX_BOARD_TYPE_CUST_PRIVATE_MAX = 30000, - -@@ -328,6 +329,7 @@ static inline const char *cvmx_board_typ +@@ -384,6 +385,7 @@ static inline const char *cvmx_board_typ /* Customer private range */ ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_PRIVATE_MIN) ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_UBNT_E100) + ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_UBNT_E200) ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_DSR1000N) + ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_KONTRON_S1901) ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_PRIVATE_MAX) - } diff --git a/debian/patches/features/x86/x86-memtest-WARN-if-bad-RAM-found.patch b/debian/patches/features/x86/x86-memtest-WARN-if-bad-RAM-found.patch index 145de00cf..7a7952003 100644 --- a/debian/patches/features/x86/x86-memtest-WARN-if-bad-RAM-found.patch +++ b/debian/patches/features/x86/x86-memtest-WARN-if-bad-RAM-found.patch @@ -15,7 +15,7 @@ Signed-off-by: Ben Hutchings --- a/mm/memtest.c +++ b/mm/memtest.c -@@ -31,6 +31,10 @@ static u64 patterns[] __initdata = { +@@ -26,6 +26,10 @@ static u64 patterns[] __initdata = { static void __init reserve_bad_mem(u64 pattern, phys_addr_t start_bad, phys_addr_t end_bad) { @@ -23,6 +23,6 @@ Signed-off-by: Ben Hutchings + WARN_ONCE(1, "Bad RAM detected. Use memtest86+ to perform a thorough test\n" + "and the memmap= parameter to reserve the bad areas."); +#endif - printk(KERN_INFO " %016llx bad mem addr %010llx - %010llx reserved\n", - (unsigned long long) pattern, - (unsigned long long) start_bad, + pr_info(" %016llx bad mem addr %pa - %pa reserved\n", + cpu_to_be64(pattern), &start_bad, &end_bad); + memblock_reserve(start_bad, end_bad - start_bad); diff --git a/debian/patches/series b/debian/patches/series index d65aad0fc..9d8249481 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -65,22 +65,15 @@ features/arm64/usb-add-support-for-acpi-identification-to-xhci-platform.patch bugfix/all/misc-bmp085-Enable-building-as-a-module.patch bugfix/all/kbuild-use-nostdinc-in-compile-tests.patch bugfix/all/disable-some-marvell-phys.patch -bugfix/all/aic94xx-remove-broken-fallback-for-missing-ctrl-a.patch bugfix/all/rtsx_usb_ms-use-msleep_interruptible-in-polling-loop.patch bugfix/all/net-mv643xx-disable-tso-by-default.patch # Reproducible docs -bugfix/all/scripts-kernel-doc-parse-kernel-doc-deterministicall.patch -bugfix/all/docbook-don-t-store-mtime-or-name-in-compressed-man-.patch -bugfix/all/docbook-generate-consistent-ids.patch -bugfix/all/docbook-fix-non-determinstic-installation-of-duplica.patch -bugfix/all/scripts-kernel-doc-use-kbuild_build_timestamp-as-man.patch bugfix/all/documentation-avoid-creating-man-pages-in-source-tree.patch bugfix/all/docbook-use-a-fixed-encoding-for-output.patch # Miscellaneous features features/all/efi-autoload-efi-pstore.patch -features/all/regulator-axp20x-Add-module-alias.patch # Hardening from grsecurity features/all/grsecurity/grsecurity-kconfig.patch @@ -88,11 +81,4 @@ features/all/grsecurity/grsecurity-kconfig.patch #features/all/grsecurity/grsecurity-kbuild.patch features/all/grsecurity/grkernsec_perf_harden.patch -bugfix/all/gfs2-make-statistics-unsigned-suitable-for-use-with-.patch -bugfix/all/workqueue-make-flush_workqueue-available-again-to-no.patch -bugfix/all/dcache-handle-escaped-paths-in-prepend_path.patch -bugfix/all/dcache-reduce-the-scope-of-i_lock-in-d_splice_alias.patch -bugfix/all/vfs-test-for-and-handle-paths-that-are-unreachable-f.patch -bugfix/all/rds-verify-the-underlying-transport-exists-before-cr.patch -bugfix/all/e1000e-fix-tight-loop-implementation-of-systime-read.patch bugfix/all/usb-whiteheat-fix-potential-null-deref-at-probe.patch