This is the start of the stable review cycle for the 4.14.19 release.
There are 22 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.
Responses should be made by Sun Feb 11 13:39:12 UTC 2018.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.14.19-rc1.gz
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.14.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Linux 4.14.19-rc1
Dan Carpenter <dan.carpenter(a)oracle.com>
scsi: storvsc: missing error code in storvsc_probe()
Andrew Morton <akpm(a)linux-foundation.org>
kernel/exit.c: export abort() to modules
Sudip Mukherjee <sudipm.mukherjee(a)gmail.com>
arch: define weak abort()
Robert Baronescu <robert.baronescu(a)nxp.com>
crypto: tcrypt - fix S/G table for test_aead_speed()
Jesse Chan <jc(a)linux.com>
media: soc_camera: soc_scale_crop: add missing MODULE_DESCRIPTION/AUTHOR/LICENSE
Jesse Chan <jc(a)linux.com>
media: mtk-vcodec: add missing MODULE_LICENSE/DESCRIPTION
Eric Dumazet <edumazet(a)google.com>
soreuseport: fix mem leak in reuseport_add_sock()
Martin KaFai Lau <kafai(a)fb.com>
ipv6: Fix SO_REUSEPORT UDP socket with implicit sk_ipv6only
Neal Cardwell <ncardwell(a)google.com>
tcp_bbr: fix pacing_gain to always be unity when using lt_bw
Jiri Pirko <jiri(a)mellanox.com>
rocker: fix possible null pointer dereference in rocker_router_fib_event_work
David Ahern <dsahern(a)gmail.com>
net: ipv6: send unsolicited NA after DAD
Roman Gushchin <guro(a)fb.com>
Revert "defer call to mem_cgroup_sk_alloc()"
Jason Wang <jasowang(a)redhat.com>
vhost_net: stop device during reset owner
Li RongQing <lirongqing(a)baidu.com>
tcp: release sk_frag.page in tcp_disconnect
Chunhao Lin <hau(a)realtek.com>
r8169: fix RTL8168EP take too long to complete driver initialization.
Kristian Evensen <kristian.evensen(a)gmail.com>
qmi_wwan: Add support for Quectel EP06
Junxiao Bi <junxiao.bi(a)oracle.com>
qlcnic: fix deadlock bug
Eric Dumazet <edumazet(a)google.com>
net: igmp: add a missing rcu locking section
Nikolay Aleksandrov <nikolay(a)cumulusnetworks.com>
ip6mr: fix stale iterator
Masahiro Yamada <yamada.masahiro(a)socionext.com>
kbuild: rpm-pkg: keep spec file until make mrproper
Masahiro Yamada <yamada.masahiro(a)socionext.com>
.gitignore: move *.dtb and *.dtb.S patterns to the top-level .gitignore
Masahiro Yamada <yamada.masahiro(a)socionext.com>
.gitignore: sort normal pattern rules alphabetically
-------------
Diffstat:
.gitignore | 49 ++++++++++++----------
Makefile | 4 +-
arch/arc/boot/.gitignore | 1 -
arch/arm/boot/.gitignore | 1 -
arch/arm/kernel/traps.c | 1 -
arch/arm64/boot/dts/.gitignore | 1 -
arch/m32r/kernel/traps.c | 1 -
arch/metag/boot/.gitignore | 1 -
arch/microblaze/boot/.gitignore | 1 -
arch/mips/boot/.gitignore | 1 -
arch/nios2/boot/.gitignore | 1 -
arch/powerpc/boot/.gitignore | 1 -
arch/unicore32/kernel/traps.c | 1 -
arch/xtensa/boot/.gitignore | 1 -
crypto/tcrypt.c | 6 ++-
.../media/platform/mtk-vcodec/mtk_vcodec_util.c | 3 ++
drivers/media/platform/soc_camera/soc_scale_crop.c | 4 ++
.../net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c | 18 ++++----
drivers/net/ethernet/realtek/r8169.c | 4 +-
drivers/net/ethernet/rocker/rocker_main.c | 18 ++++----
drivers/net/usb/qmi_wwan.c | 1 +
drivers/of/unittest-data/.gitignore | 2 -
drivers/scsi/storvsc_drv.c | 4 +-
drivers/vhost/net.c | 1 +
kernel/exit.c | 9 ++++
mm/memcontrol.c | 14 +++++++
net/core/sock.c | 5 +--
net/core/sock_reuseport.c | 35 +++++++++-------
net/ipv4/igmp.c | 4 ++
net/ipv4/inet_connection_sock.c | 1 -
net/ipv4/tcp.c | 6 +++
net/ipv4/tcp_bbr.c | 6 +--
net/ipv6/addrconf.c | 30 +++++++++++--
net/ipv6/af_inet6.c | 11 +++--
net/ipv6/ip6mr.c | 1 +
net/ipv6/ndisc.c | 5 +++
scripts/package/Makefile | 4 +-
37 files changed, 164 insertions(+), 93 deletions(-)
This is the start of the stable review cycle for the 4.15.3 release.
There are 23 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.
Responses should be made by Sun Feb 11 13:39:20 UTC 2018.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.15.3-rc1.gz
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.15.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Linux 4.15.3-rc1
Robert Baronescu <robert.baronescu(a)nxp.com>
crypto: tcrypt - fix S/G table for test_aead_speed()
Masahiro Yamada <yamada.masahiro(a)socionext.com>
gpio: uniphier: fix mismatch between license text and MODULE_LICENSE
Jesse Chan <jc(a)linux.com>
media: tegra-cec: add missing MODULE_DESCRIPTION/AUTHOR/LICENSE
Jesse Chan <jc(a)linux.com>
media: soc_camera: soc_scale_crop: add missing MODULE_DESCRIPTION/AUTHOR/LICENSE
Jesse Chan <jc(a)linux.com>
media: mtk-vcodec: add missing MODULE_LICENSE/DESCRIPTION
Jiri Pirko <jiri(a)mellanox.com>
net: sched: fix use-after-free in tcf_block_put_ext
Cong Wang <xiyou.wangcong(a)gmail.com>
net_sched: get rid of rcu_barrier() in tcf_block_put_ext()
Eric Dumazet <edumazet(a)google.com>
soreuseport: fix mem leak in reuseport_add_sock()
Martin KaFai Lau <kafai(a)fb.com>
ipv6: Fix SO_REUSEPORT UDP socket with implicit sk_ipv6only
Paolo Abeni <pabeni(a)redhat.com>
cls_u32: add missing RCU annotation.
Neal Cardwell <ncardwell(a)google.com>
tcp_bbr: fix pacing_gain to always be unity when using lt_bw
Jiri Pirko <jiri(a)mellanox.com>
rocker: fix possible null pointer dereference in rocker_router_fib_event_work
David Ahern <dsahern(a)gmail.com>
net: ipv6: send unsolicited NA after DAD
Roman Gushchin <guro(a)fb.com>
Revert "defer call to mem_cgroup_sk_alloc()"
Wei Wang <weiwan(a)google.com>
ipv6: change route cache aging logic
Eric Dumazet <edumazet(a)google.com>
ipv6: addrconf: break critical section in addrconf_verify_rtnl()
Jason Wang <jasowang(a)redhat.com>
vhost_net: stop device during reset owner
Li RongQing <lirongqing(a)baidu.com>
tcp: release sk_frag.page in tcp_disconnect
Chunhao Lin <hau(a)realtek.com>
r8169: fix RTL8168EP take too long to complete driver initialization.
Kristian Evensen <kristian.evensen(a)gmail.com>
qmi_wwan: Add support for Quectel EP06
Junxiao Bi <junxiao.bi(a)oracle.com>
qlcnic: fix deadlock bug
Eric Dumazet <edumazet(a)google.com>
net: igmp: add a missing rcu locking section
Nikolay Aleksandrov <nikolay(a)cumulusnetworks.com>
ip6mr: fix stale iterator
-------------
Diffstat:
Makefile | 4 +--
crypto/tcrypt.c | 6 ++--
drivers/gpio/gpio-uniphier.c | 2 +-
.../media/platform/mtk-vcodec/mtk_vcodec_util.c | 3 ++
drivers/media/platform/soc_camera/soc_scale_crop.c | 4 +++
drivers/media/platform/tegra-cec/tegra_cec.c | 5 +++
.../net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c | 18 +++++-----
drivers/net/ethernet/realtek/r8169.c | 4 +--
drivers/net/ethernet/rocker/rocker_main.c | 18 +++++-----
drivers/net/usb/qmi_wwan.c | 1 +
drivers/vhost/net.c | 1 +
include/net/sch_generic.h | 1 -
mm/memcontrol.c | 14 ++++++++
net/core/sock.c | 5 +--
net/core/sock_reuseport.c | 35 ++++++++++---------
net/ipv4/igmp.c | 4 +++
net/ipv4/inet_connection_sock.c | 1 -
net/ipv4/tcp.c | 6 ++++
net/ipv4/tcp_bbr.c | 6 ++--
net/ipv6/addrconf.c | 32 +++++++++++++++---
net/ipv6/af_inet6.c | 11 +++---
net/ipv6/ip6mr.c | 1 +
net/ipv6/ndisc.c | 5 +++
net/ipv6/route.c | 20 ++++++-----
net/sched/cls_api.c | 39 ++++++++--------------
net/sched/cls_u32.c | 12 ++++---
26 files changed, 163 insertions(+), 95 deletions(-)
This is a note to let you know that I've just added the patch titled
watchdog: indydog: Add dependency on SGI_HAS_INDYDOG
to the 4.15-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
watchdog-indydog-add-dependency-on-sgi_has_indydog.patch
and it can be found in the queue-4.15 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From 24f8d233074badd4c18e4dafd2fb97d65838afed Mon Sep 17 00:00:00 2001
From: Matt Redfearn <matt.redfearn(a)mips.com>
Date: Tue, 14 Nov 2017 10:52:54 +0000
Subject: watchdog: indydog: Add dependency on SGI_HAS_INDYDOG
From: Matt Redfearn <matt.redfearn(a)mips.com>
commit 24f8d233074badd4c18e4dafd2fb97d65838afed upstream.
Commit da2a68b3eb47 ("watchdog: Enable COMPILE_TEST where possible")
enabled building the Indy watchdog driver when COMPILE_TEST is enabled.
However, the driver makes reference to symbols that are only defined for
certain platforms are selected in the config. These platforms select
SGI_HAS_INDYDOG. Without this, link time errors result, for example
when building a MIPS allyesconfig.
drivers/watchdog/indydog.o: In function `indydog_write':
indydog.c:(.text+0x18): undefined reference to `sgimc'
indydog.c:(.text+0x1c): undefined reference to `sgimc'
drivers/watchdog/indydog.o: In function `indydog_start':
indydog.c:(.text+0x54): undefined reference to `sgimc'
indydog.c:(.text+0x58): undefined reference to `sgimc'
drivers/watchdog/indydog.o: In function `indydog_stop':
indydog.c:(.text+0xa4): undefined reference to `sgimc'
drivers/watchdog/indydog.o:indydog.c:(.text+0xa8): more undefined
references to `sgimc' follow
make: *** [Makefile:1005: vmlinux] Error 1
Fix this by ensuring that CONFIG_INDIDOG can only be selected when the
necessary dependent platform symbols are built in.
Fixes: da2a68b3eb47 ("watchdog: Enable COMPILE_TEST where possible")
Signed-off-by: Matt Redfearn <matt.redfearn(a)mips.com>
Signed-off-by: Ralf Baechle <ralf(a)linux-mips.org>
Suggested-by: James Hogan <james.hogan(a)mips.com>
Reviewed-by: Guenter Roeck <linux(a)roeck-us.net>
Signed-off-by: Guenter Roeck <linux(a)roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim(a)iguana.be>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/watchdog/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
@@ -1451,7 +1451,7 @@ config RC32434_WDT
config INDYDOG
tristate "Indy/I2 Hardware Watchdog"
- depends on SGI_HAS_INDYDOG || (MIPS && COMPILE_TEST)
+ depends on SGI_HAS_INDYDOG
help
Hardware driver for the Indy's/I2's watchdog. This is a
watchdog timer that will reboot the machine after a 60 second
Patches currently in stable-queue which might be from matt.redfearn(a)mips.com are
queue-4.15/watchdog-indydog-add-dependency-on-sgi_has_indydog.patch
The patch titled
Subject: vmalloc: fix __GFP_HIGHMEM usage for vmalloc_32 on 32b systems
has been added to the -mm tree. Its filename is
vmalloc-fix-__gfp_highmem-usage-for-vmalloc_32-on-32b-systems.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/vmalloc-fix-__gfp_highmem-usage-fo…
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/vmalloc-fix-__gfp_highmem-usage-fo…
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/SubmitChecklist when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Michal Hocko <mhocko(a)suse.com>
Subject: vmalloc: fix __GFP_HIGHMEM usage for vmalloc_32 on 32b systems
Kai Heng Feng has noticed that BUG_ON(PageHighMem(pg)) triggers in
drivers/media/common/saa7146/saa7146_core.c since 19809c2da28a ("mm,
vmalloc: use __GFP_HIGHMEM implicitly"). saa7146_vmalloc_build_pgtable
uses vmalloc_32 and it is reasonable to expect that the resulting page is
not in highmem. The above commit aimed to add __GFP_HIGHMEM only for
those requests which do not specify any zone modifier gfp flag.
vmalloc_32 relies on GFP_VMALLOC32 which should do the right thing.
Except it has been missed that GFP_VMALLOC32 is an alias for GFP_KERNEL on
32b architectures. Thanks to Matthew to notice this.
Fix the problem by unconditionally setting GFP_DMA32 in GFP_VMALLOC32 for
!64b arches (as a bailout). This should do the right thing and use
ZONE_NORMAL which should be always below 4G on 32b systems.
Debugged by Matthew Wilcox.
Link: http://lkml.kernel.org/r/20180212095019.GX21609@dhcp22.suse.cz
Fixes: 19809c2da28a ("mm, vmalloc: use __GFP_HIGHMEM implicitly”)
Signed-off-by: Michal Hocko <mhocko(a)suse.com>
Reported-by: Kai Heng Feng <kai.heng.feng(a)canonical.com>
Cc: Matthew Wilcox <willy(a)infradead.org>
Cc: Laura Abbott <labbott(a)redhat.com>
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
mm/vmalloc.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff -puN mm/vmalloc.c~vmalloc-fix-__gfp_highmem-usage-for-vmalloc_32-on-32b-systems mm/vmalloc.c
--- a/mm/vmalloc.c~vmalloc-fix-__gfp_highmem-usage-for-vmalloc_32-on-32b-systems
+++ a/mm/vmalloc.c
@@ -1947,7 +1947,11 @@ void *vmalloc_exec(unsigned long size)
#elif defined(CONFIG_64BIT) && defined(CONFIG_ZONE_DMA)
#define GFP_VMALLOC32 GFP_DMA | GFP_KERNEL
#else
-#define GFP_VMALLOC32 GFP_KERNEL
+/*
+ * 64b systems should always have either DMA or DMA32 zones. For others
+ * GFP_DMA32 should do the right thing and use the normal zone.
+ */
+#define GFP_VMALLOC32 GFP_DMA32 | GFP_KERNEL
#endif
/**
_
Patches currently in -mm which might be from mhocko(a)suse.com are
vmalloc-fix-__gfp_highmem-usage-for-vmalloc_32-on-32b-systems.patch
mm-oom-docs-describe-the-cgroup-aware-oom-killer-fix-2.patch
mm-introduce-map_fixed_safe.patch
fs-elf-drop-map_fixed-usage-from-elf_map.patch
mm-numa-rework-do_pages_move.patch
mm-migrate-remove-reason-argument-from-new_page_t.patch
mm-unclutter-thp-migration.patch
Some other drivers may be waiting for our extcon to show-up (exiting their
probe methods with -EPROBE_DEFER until we show up).
These drivers will typically get the cable state directly after getting
the extcon, this commit changes the int3496 code to process the id-pin
before registering the extcon, so that other drivers see the correct state
right away.
Fixes: 2f556bdb9f2e ("extcon: int3496: Add Intel INT3496 ACPI ... driver")
Cc: stable(a)vger.kernel.org
Signed-off-by: Hans de Goede <hdegoede(a)redhat.com>
---
Changes in v2:
-Add Fixes tag
Changes in v3:
-Fix oops on probe by scheduling the work too early
---
drivers/extcon/extcon-intel-int3496.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/drivers/extcon/extcon-intel-int3496.c b/drivers/extcon/extcon-intel-int3496.c
index c8691b5a9cb0..673bb26a9a2a 100644
--- a/drivers/extcon/extcon-intel-int3496.c
+++ b/drivers/extcon/extcon-intel-int3496.c
@@ -131,11 +131,15 @@ static int int3496_probe(struct platform_device *pdev)
if (IS_ERR(data->gpio_usb_mux))
dev_info(dev, "can't request USB MUX GPIO\n");
- /* register extcon device */
data->edev = devm_extcon_dev_allocate(dev, int3496_cable);
if (IS_ERR(data->edev))
return -ENOMEM;
+ /* process id-pin first so that we start with the right status */
+ queue_delayed_work(system_wq, &data->work, 0);
+ flush_delayed_work(&data->work);
+
+ /* register extcon device */
ret = devm_extcon_dev_register(dev, data->edev);
if (ret < 0) {
dev_err(dev, "can't register extcon device: %d\n", ret);
@@ -153,9 +157,6 @@ static int int3496_probe(struct platform_device *pdev)
return ret;
}
- /* queue initial processing of id-pin */
- queue_delayed_work(system_wq, &data->work, 0);
-
platform_set_drvdata(pdev, data);
return 0;
--
2.14.3
With commit 3cf32d180227 ("mtd: nand: vf610: switch to
mtd_ooblayout_ops") the driver started to use the NAND cores
default large page ooblayout. However, shortly after commit
6a623e076944 ("mtd: nand: add ooblayout for old hamming layout")
changed the default layout to the old hamming layout, which is
not what vf610_nfc is using. Specify the default large page
layout explicitly.
Fixes: 6a623e076944 ("mtd: nand: add ooblayout for old hamming layout")
Cc: <stable(a)vger.kernel.org> # v4.12+
Signed-off-by: Stefan Agner <stefan(a)agner.ch>
---
drivers/mtd/nand/vf610_nfc.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/mtd/nand/vf610_nfc.c b/drivers/mtd/nand/vf610_nfc.c
index 80d31a58e558..f367144f3c6f 100644
--- a/drivers/mtd/nand/vf610_nfc.c
+++ b/drivers/mtd/nand/vf610_nfc.c
@@ -752,10 +752,8 @@ static int vf610_nfc_probe(struct platform_device *pdev)
if (mtd->oobsize > 64)
mtd->oobsize = 64;
- /*
- * mtd->ecclayout is not specified here because we're using the
- * default large page ECC layout defined in NAND core.
- */
+ /* Use default large page ECC layout defined in NAND core */
+ mtd_set_ooblayout(mtd, &nand_ooblayout_lp_ops);
if (chip->ecc.strength == 32) {
nfc->ecc_mode = ECC_60_BYTE;
chip->ecc.bytes = 60;
--
2.16.1
Commit 41d600274fbf ("extcon: int3496: process id-pin first so that we
start with the right status") starts the work on the workqueue before
registration to make sure we've a valid cable state directly after
registration.
But that commit moves the queuing of the work to before we even alloc the
extcon, causing a NULL pointer deref in the worker.
This commit moves the queuing of the work to after we alloc the extcon,
fixing the NULL pointer deref.
Fixes: 41d600274fbf ("extcon: int3496: process id-pin first ...")
Cc: stable(a)vger.kernel.org
Signed-off-by: Hans de Goede <hdegoede(a)redhat.com>
---
drivers/extcon/extcon-intel-int3496.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/extcon/extcon-intel-int3496.c b/drivers/extcon/extcon-intel-int3496.c
index b23ee9d993a3..673bb26a9a2a 100644
--- a/drivers/extcon/extcon-intel-int3496.c
+++ b/drivers/extcon/extcon-intel-int3496.c
@@ -131,15 +131,15 @@ static int int3496_probe(struct platform_device *pdev)
if (IS_ERR(data->gpio_usb_mux))
dev_info(dev, "can't request USB MUX GPIO\n");
+ data->edev = devm_extcon_dev_allocate(dev, int3496_cable);
+ if (IS_ERR(data->edev))
+ return -ENOMEM;
+
/* process id-pin first so that we start with the right status */
queue_delayed_work(system_wq, &data->work, 0);
flush_delayed_work(&data->work);
/* register extcon device */
- data->edev = devm_extcon_dev_allocate(dev, int3496_cable);
- if (IS_ERR(data->edev))
- return -ENOMEM;
-
ret = devm_extcon_dev_register(dev, data->edev);
if (ret < 0) {
dev_err(dev, "can't register extcon device: %d\n", ret);
--
2.14.3