linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 4.4 00/34] 4.4.120-stable review
@ 2018-03-02  8:50 Greg Kroah-Hartman
  2018-03-02  8:50 ` [PATCH 4.4 01/34] hrtimer: Ensure POSIX compliance (relative CLOCK_REALTIME hrtimers) Greg Kroah-Hartman
                   ` (38 more replies)
  0 siblings, 39 replies; 53+ messages in thread
From: Greg Kroah-Hartman @ 2018-03-02  8:50 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, torvalds, akpm, linux, shuahkh, patches,
	ben.hutchings, lkft-triage, stable

This is the start of the stable review cycle for the 4.4.120 release.
There are 34 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 Mar  4 08:44:20 UTC 2018.
Anything received after that time might be too late.

The whole patch series can be found in one patch at:
	https://www.kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.4.120-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.4.y
and the diffstat can be found below.

thanks,

greg k-h

-------------
Pseudo-Shortlog of commits:

Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Linux 4.4.120-rc1

James Hogan <jhogan@kernel.org>
    MIPS: Implement __multi3 for GCC7 MIPS64r6 builds

Yangbo Lu <yangbo.lu@nxp.com>
    net: gianfar_ptp: move set_fipers() to spinlock protecting area

Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
    sctp: make use of pre-calculated len

Ross Lagerwall <ross.lagerwall@citrix.com>
    xen/gntdev: Fix partial gntdev_mmap() cleanup

Ross Lagerwall <ross.lagerwall@citrix.com>
    xen/gntdev: Fix off-by-one error when unmapping with holes

Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
    SolutionEngine771x: fix Ether platform data

Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    mdio-sun4i: Fix a memory leak

Eduardo Otubo <otubo@redhat.com>
    xen-netfront: enable device after manual module load

Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
    bnxt_en: Fix the 'Invalid VF' id check in bnxt_vf_ndo_prep routine.

Luu An Phu <phu.luuan@nxp.com>
    can: flex_can: Correct the checking for frame length in flexcan_start_xmit()

Johannes Berg <johannes.berg@intel.com>
    mac80211: mesh: drop frames appearing to be from us

Xiongwei Song <sxwjean@gmail.com>
    drm/ttm: check the return value of kzalloc

Tushar Dave <tushar.n.dave@oracle.com>
    e1000: fix disabling already-disabled warning

Aliaksei Karaliou <akaraliou.dev@gmail.com>
    xfs: quota: check result of register_shrinker()

Aliaksei Karaliou <akaraliou.dev@gmail.com>
    xfs: quota: fix missed destroy of qi_tree_lock

Erez Shitrit <erezsh@mellanox.com>
    IB/ipoib: Fix race condition in neigh creation

Leon Romanovsky <leonro@mellanox.com>
    IB/mlx4: Fix mlx4_ib_alloc_mr error flow

Stefan Haberland <sth@linux.vnet.ibm.com>
    s390/dasd: fix wrongly assigned configuration data

Matthieu CASTET <matthieu.castet@parrot.com>
    led: core: Fix brightness setting when setting delay_off=0

Guilherme G. Piccoli <gpiccoli@linux.vnet.ibm.com>
    bnx2x: Improve reliability in case of nested PCI errors

Siva Reddy Kallam <siva.kallam@broadcom.com>
    tg3: Enable PHY reset in MTU change path for 5720

Siva Reddy Kallam <siva.kallam@broadcom.com>
    tg3: Add workaround to restrict 5762 MRRS to 2048

James Hogan <jhogan@kernel.org>
    lib/mpi: Fix umul_ppmm() for MIPS64r6

Arnd Bergmann <arnd@arndb.de>
    ARM: dts: ls1021a: fix incorrect clock references

Cathy Avery <cavery@redhat.com>
    scsi: storvsc: Fix scsi_cmd error assignments in storvsc_handle_error

Alexander Kochetkov <al.kochet@gmail.com>
    net: arc_emac: fix arc_emac_rx() error paths

Radu Pirea <radu.pirea@microchip.com>
    spi: atmel: fixed spin_lock usage inside atmel_spi_remove

Karol Herbst <kherbst@redhat.com>
    drm/nouveau/pci: do a msi rearm on init

Al Viro <viro@zeniv.linux.org.uk>
    sget(): handle failures of register_shrinker()

Chunyan Zhang <zhang.lyra@gmail.com>
    ARM: 8731/1: Fix csum_partial_copy_from_user() stack mismatch

Brendan McGrath <redmcg@redmandi.dyndns.org>
    ipv6: icmp6: Allow icmp messages to be looped back

Sascha Hauer <s.hauer@pengutronix.de>
    mtd: nand: gpmi: Fix failure when a erased page has a bitflip at BBM

Yunlei He <heyunlei@huawei.com>
    f2fs: fix a bug caused by NULL extent tree

Anna-Maria Gleixner <anna-maria@linutronix.de>
    hrtimer: Ensure POSIX compliance (relative CLOCK_REALTIME hrtimers)


-------------

Diffstat:

 Makefile                                         |  4 +-
 arch/arm/boot/dts/ls1021a-qds.dts                |  2 +-
 arch/arm/boot/dts/ls1021a-twr.dts                |  2 +-
 arch/arm/lib/csumpartialcopyuser.S               |  4 ++
 arch/mips/lib/Makefile                           |  3 +-
 arch/mips/lib/libgcc.h                           | 17 ++++++++
 arch/mips/lib/multi3.c                           | 54 ++++++++++++++++++++++++
 arch/sh/boards/mach-se/770x/setup.c              | 10 ++++-
 drivers/gpu/drm/nouveau/nvkm/subdev/pci/base.c   |  7 +++
 drivers/gpu/drm/ttm/ttm_page_alloc.c             |  2 +
 drivers/infiniband/hw/mlx4/mr.c                  |  2 +-
 drivers/infiniband/ulp/ipoib/ipoib_main.c        | 25 ++++++++---
 drivers/infiniband/ulp/ipoib/ipoib_multicast.c   |  5 ++-
 drivers/leds/led-core.c                          |  2 +-
 drivers/mtd/nand/gpmi-nand/gpmi-nand.c           |  6 +--
 drivers/net/can/flexcan.c                        |  2 +-
 drivers/net/ethernet/arc/emac_main.c             | 53 +++++++++++++----------
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c  |  4 +-
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 14 +++++-
 drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c  |  2 +-
 drivers/net/ethernet/broadcom/tg3.c              | 13 +++++-
 drivers/net/ethernet/broadcom/tg3.h              |  4 ++
 drivers/net/ethernet/freescale/gianfar_ptp.c     |  3 +-
 drivers/net/ethernet/intel/e1000/e1000.h         |  3 +-
 drivers/net/ethernet/intel/e1000/e1000_main.c    | 27 +++++++++---
 drivers/net/phy/mdio-sun4i.c                     |  6 ++-
 drivers/net/xen-netfront.c                       |  1 +
 drivers/s390/block/dasd_3990_erp.c               | 10 +++++
 drivers/scsi/storvsc_drv.c                       |  3 +-
 drivers/spi/spi-atmel.c                          |  2 +-
 drivers/xen/gntdev.c                             |  8 ++--
 fs/f2fs/extent_cache.c                           | 10 ++++-
 fs/super.c                                       |  6 ++-
 fs/xfs/xfs_qm.c                                  | 46 +++++++++++++-------
 kernel/time/hrtimer.c                            |  7 ++-
 lib/mpi/longlong.h                               | 18 +++++++-
 net/ipv6/route.c                                 |  1 +
 net/mac80211/rx.c                                |  2 +
 net/sctp/socket.c                                | 16 ++++---
 39 files changed, 316 insertions(+), 90 deletions(-)

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [PATCH 4.4 01/34] hrtimer: Ensure POSIX compliance (relative CLOCK_REALTIME hrtimers)
  2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
@ 2018-03-02  8:50 ` Greg Kroah-Hartman
  2018-03-02  8:50 ` [PATCH 4.4 02/34] f2fs: fix a bug caused by NULL extent tree Greg Kroah-Hartman
                   ` (37 subsequent siblings)
  38 siblings, 0 replies; 53+ messages in thread
From: Greg Kroah-Hartman @ 2018-03-02  8:50 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Anna-Maria Gleixner,
	Christoph Hellwig, John Stultz, Linus Torvalds, Peter Zijlstra,
	Thomas Gleixner, keescook, Ingo Molnar, Mike Galbraith

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Anna-Maria Gleixner <anna-maria@linutronix.de>

commit 48d0c9becc7f3c66874c100c126459a9da0fdced upstream.

The POSIX specification defines that relative CLOCK_REALTIME timers are not
affected by clock modifications. Those timers have to use CLOCK_MONOTONIC
to ensure POSIX compliance.

The introduction of the additional HRTIMER_MODE_PINNED mode broke this
requirement for pinned timers.

There is no user space visible impact because user space timers are not
using pinned mode, but for consistency reasons this needs to be fixed.

Check whether the mode has the HRTIMER_MODE_REL bit set instead of
comparing with HRTIMER_MODE_ABS.

Signed-off-by: Anna-Maria Gleixner <anna-maria@linutronix.de>
Cc: Christoph Hellwig <hch@lst.de>
Cc: John Stultz <john.stultz@linaro.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: keescook@chromium.org
Fixes: 597d0275736d ("timers: Framework for identifying pinned timers")
Link: http://lkml.kernel.org/r/20171221104205.7269-7-anna-maria@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Cc: Mike Galbraith <efault@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 kernel/time/hrtimer.c |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

--- a/kernel/time/hrtimer.c
+++ b/kernel/time/hrtimer.c
@@ -1139,7 +1139,12 @@ static void __hrtimer_init(struct hrtime
 
 	cpu_base = raw_cpu_ptr(&hrtimer_bases);
 
-	if (clock_id == CLOCK_REALTIME && mode != HRTIMER_MODE_ABS)
+	/*
+	 * POSIX magic: Relative CLOCK_REALTIME timers are not affected by
+	 * clock modifications, so they needs to become CLOCK_MONOTONIC to
+	 * ensure POSIX compliance.
+	 */
+	if (clock_id == CLOCK_REALTIME && mode & HRTIMER_MODE_REL)
 		clock_id = CLOCK_MONOTONIC;
 
 	base = hrtimer_clockid_to_base(clock_id);

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [PATCH 4.4 02/34] f2fs: fix a bug caused by NULL extent tree
  2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
  2018-03-02  8:50 ` [PATCH 4.4 01/34] hrtimer: Ensure POSIX compliance (relative CLOCK_REALTIME hrtimers) Greg Kroah-Hartman
@ 2018-03-02  8:50 ` Greg Kroah-Hartman
  2018-03-02  8:50 ` [PATCH 4.4 03/34] mtd: nand: gpmi: Fix failure when a erased page has a bitflip at BBM Greg Kroah-Hartman
                   ` (36 subsequent siblings)
  38 siblings, 0 replies; 53+ messages in thread
From: Greg Kroah-Hartman @ 2018-03-02  8:50 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Yunlei He, Jaegeuk Kim, Nikolay Borisov

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Yunlei He <heyunlei@huawei.com>

commit dad48e73127ba10279ea33e6dbc8d3905c4d31c0 upstream.

Thread A:					Thread B:

-f2fs_remount
    -sbi->mount_opt.opt = 0;
						<--- -f2fs_iget
						         -do_read_inode
							     -f2fs_init_extent_tree
							         -F2FS_I(inode)->extent_tree is NULL
        -default_options && parse_options
	    -remount return
						<---  -f2fs_map_blocks
						          -f2fs_lookup_extent_tree
                                                              -f2fs_bug_on(sbi, !et);

The same problem with f2fs_new_inode.

Signed-off-by: Yunlei He <heyunlei@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Signed-off-by: Nikolay Borisov <nborisov@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/f2fs/extent_cache.c |   10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

--- a/fs/f2fs/extent_cache.c
+++ b/fs/f2fs/extent_cache.c
@@ -172,7 +172,7 @@ void f2fs_drop_largest_extent(struct ino
 	__drop_largest_extent(inode, fofs, 1);
 }
 
-void f2fs_init_extent_tree(struct inode *inode, struct f2fs_extent *i_ext)
+static void __f2fs_init_extent_tree(struct inode *inode, struct f2fs_extent *i_ext)
 {
 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
 	struct extent_tree *et;
@@ -204,6 +204,14 @@ out:
 	write_unlock(&et->lock);
 }
 
+void f2fs_init_extent_tree(struct inode *inode, struct f2fs_extent *i_ext)
+{
+	__f2fs_init_extent_tree(inode, i_ext);
+
+	if (!F2FS_I(inode)->extent_tree)
+		set_inode_flag(F2FS_I(inode), FI_NO_EXTENT);
+}
+
 static bool f2fs_lookup_extent_tree(struct inode *inode, pgoff_t pgofs,
 							struct extent_info *ei)
 {

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [PATCH 4.4 03/34] mtd: nand: gpmi: Fix failure when a erased page has a bitflip at BBM
  2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
  2018-03-02  8:50 ` [PATCH 4.4 01/34] hrtimer: Ensure POSIX compliance (relative CLOCK_REALTIME hrtimers) Greg Kroah-Hartman
  2018-03-02  8:50 ` [PATCH 4.4 02/34] f2fs: fix a bug caused by NULL extent tree Greg Kroah-Hartman
@ 2018-03-02  8:50 ` Greg Kroah-Hartman
  2018-03-06 21:22   ` Ben Hutchings
  2018-03-02  8:51 ` [PATCH 4.4 04/34] ipv6: icmp6: Allow icmp messages to be looped back Greg Kroah-Hartman
                   ` (35 subsequent siblings)
  38 siblings, 1 reply; 53+ messages in thread
From: Greg Kroah-Hartman @ 2018-03-02  8:50 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Sascha Hauer, Richard Weinberger,
	Boris Brezillon, Sasha Levin

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Sascha Hauer <s.hauer@pengutronix.de>


[ Upstream commit fdf2e821052958a114618a95ab18a300d0b080cb ]

When erased subpages are read then the BCH decoder returns STATUS_ERASED
if they are all empty, or STATUS_UNCORRECTABLE if there are bitflips.
When there are bitflips, we have to set these bits again to show the
upper layers a completely erased page. When a bitflip happens in the
exact byte where the bad block marker is, then this byte is swapped
with another byte in block_mark_swapping(). The correction code then
detects a bitflip in another subpage and no longer corrects the bitflip
where it really happens.

Correct this behaviour by calling block_mark_swapping() after the
bitflips have been corrected.

In our case UBIFS failed with this bug because it expects erased
pages to be really empty:

UBIFS error (pid 187): ubifs_scan: corrupt empty space at LEB 36:118735
UBIFS error (pid 187): ubifs_scanned_corruption: corruption at LEB 36:118735
UBIFS error (pid 187): ubifs_scanned_corruption: first 8192 bytes from LEB 36:118735
UBIFS error (pid 187): ubifs_scan: LEB 36 scanning failed
UBIFS error (pid 187): do_commit: commit failed, error -117

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Reviewed-by: Richard Weinberger <richard@nod.at>
Acked-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/mtd/nand/gpmi-nand/gpmi-nand.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

--- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
+++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
@@ -1029,9 +1029,6 @@ static int gpmi_ecc_read_page(struct mtd
 		return ret;
 	}
 
-	/* handle the block mark swapping */
-	block_mark_swapping(this, payload_virt, auxiliary_virt);
-
 	/* Loop over status bytes, accumulating ECC status. */
 	status = auxiliary_virt + nfc_geo->auxiliary_status_offset;
 
@@ -1047,6 +1044,9 @@ static int gpmi_ecc_read_page(struct mtd
 		max_bitflips = max_t(unsigned int, max_bitflips, *status);
 	}
 
+	/* handle the block mark swapping */
+	block_mark_swapping(this, buf, auxiliary_virt);
+
 	if (oob_required) {
 		/*
 		 * It's time to deliver the OOB bytes. See gpmi_ecc_read_oob()

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [PATCH 4.4 04/34] ipv6: icmp6: Allow icmp messages to be looped back
  2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
                   ` (2 preceding siblings ...)
  2018-03-02  8:50 ` [PATCH 4.4 03/34] mtd: nand: gpmi: Fix failure when a erased page has a bitflip at BBM Greg Kroah-Hartman
@ 2018-03-02  8:51 ` Greg Kroah-Hartman
  2018-03-02  8:51 ` [PATCH 4.4 05/34] ARM: 8731/1: Fix csum_partial_copy_from_user() stack mismatch Greg Kroah-Hartman
                   ` (34 subsequent siblings)
  38 siblings, 0 replies; 53+ messages in thread
From: Greg Kroah-Hartman @ 2018-03-02  8:51 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Brendan McGrath, David S. Miller,
	Sasha Levin

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Brendan McGrath <redmcg@redmandi.dyndns.org>


[ Upstream commit 588753f1eb18978512b1c9b85fddb457d46f9033 ]

One example of when an ICMPv6 packet is required to be looped back is
when a host acts as both a Multicast Listener and a Multicast Router.

A Multicast Router will listen on address ff02::16 for MLDv2 messages.

Currently, MLDv2 messages originating from a Multicast Listener running
on the same host as the Multicast Router are not being delivered to the
Multicast Router. This is due to dst.input being assigned the default
value of dst_discard.

This results in the packet being looped back but discarded before being
delivered to the Multicast Router.

This patch sets dst.input to ip6_input to ensure a looped back packet
is delivered to the Multicast Router.

Signed-off-by: Brendan McGrath <redmcg@redmandi.dyndns.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/ipv6/route.c |    1 +
 1 file changed, 1 insertion(+)

--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -1614,6 +1614,7 @@ struct dst_entry *icmp6_dst_alloc(struct
 	}
 
 	rt->dst.flags |= DST_HOST;
+	rt->dst.input = ip6_input;
 	rt->dst.output  = ip6_output;
 	atomic_set(&rt->dst.__refcnt, 1);
 	rt->rt6i_gateway  = fl6->daddr;

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [PATCH 4.4 05/34] ARM: 8731/1: Fix csum_partial_copy_from_user() stack mismatch
  2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
                   ` (3 preceding siblings ...)
  2018-03-02  8:51 ` [PATCH 4.4 04/34] ipv6: icmp6: Allow icmp messages to be looped back Greg Kroah-Hartman
@ 2018-03-02  8:51 ` Greg Kroah-Hartman
  2018-03-02  8:51 ` [PATCH 4.4 06/34] sget(): handle failures of register_shrinker() Greg Kroah-Hartman
                   ` (33 subsequent siblings)
  38 siblings, 0 replies; 53+ messages in thread
From: Greg Kroah-Hartman @ 2018-03-02  8:51 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Lvqiang Huang, Chunyan Zhang,
	Russell King, Sasha Levin

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Chunyan Zhang <zhang.lyra@gmail.com>


[ Upstream commit 36b0cb84ee858f02c256d26f0cb4229c78e3399e ]

An additional 'ip' will be pushed to the stack, for restoring the
DACR later, if CONFIG_CPU_SW_DOMAIN_PAN defined.

However, the fixup still get the err_ptr by add #8*4 to sp, which
results in the fact that the code area pointed by the LR will be
overwritten, or the kernel will crash if CONFIG_DEBUG_RODATA is enabled.

This patch fixes the stack mismatch.

Fixes: a5e090acbf54 ("ARM: software-based priviledged-no-access support")
Signed-off-by: Lvqiang Huang <Lvqiang.Huang@spreadtrum.com>
Signed-off-by: Chunyan Zhang <zhang.lyra@gmail.com>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 arch/arm/lib/csumpartialcopyuser.S |    4 ++++
 1 file changed, 4 insertions(+)

--- a/arch/arm/lib/csumpartialcopyuser.S
+++ b/arch/arm/lib/csumpartialcopyuser.S
@@ -85,7 +85,11 @@
 		.pushsection .text.fixup,"ax"
 		.align	4
 9001:		mov	r4, #-EFAULT
+#ifdef CONFIG_CPU_SW_DOMAIN_PAN
+		ldr	r5, [sp, #9*4]		@ *err_ptr
+#else
 		ldr	r5, [sp, #8*4]		@ *err_ptr
+#endif
 		str	r4, [r5]
 		ldmia	sp, {r1, r2}		@ retrieve dst, len
 		add	r2, r2, r1

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [PATCH 4.4 06/34] sget(): handle failures of register_shrinker()
  2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
                   ` (4 preceding siblings ...)
  2018-03-02  8:51 ` [PATCH 4.4 05/34] ARM: 8731/1: Fix csum_partial_copy_from_user() stack mismatch Greg Kroah-Hartman
@ 2018-03-02  8:51 ` Greg Kroah-Hartman
  2018-03-07  2:16   ` Ben Hutchings
  2018-03-02  8:51 ` [PATCH 4.4 07/34] drm/nouveau/pci: do a msi rearm on init Greg Kroah-Hartman
                   ` (32 subsequent siblings)
  38 siblings, 1 reply; 53+ messages in thread
From: Greg Kroah-Hartman @ 2018-03-02  8:51 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Al Viro, Sasha Levin

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Al Viro <viro@zeniv.linux.org.uk>


[ Upstream commit 9ee332d99e4d5a97548943b81c54668450ce641b ]

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 fs/super.c |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

--- a/fs/super.c
+++ b/fs/super.c
@@ -497,7 +497,11 @@ retry:
 	hlist_add_head(&s->s_instances, &type->fs_supers);
 	spin_unlock(&sb_lock);
 	get_filesystem(type);
-	register_shrinker(&s->s_shrink);
+	err = register_shrinker(&s->s_shrink);
+	if (err) {
+		deactivate_locked_super(s);
+		s = ERR_PTR(err);
+	}
 	return s;
 }
 

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [PATCH 4.4 07/34] drm/nouveau/pci: do a msi rearm on init
  2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
                   ` (5 preceding siblings ...)
  2018-03-02  8:51 ` [PATCH 4.4 06/34] sget(): handle failures of register_shrinker() Greg Kroah-Hartman
@ 2018-03-02  8:51 ` Greg Kroah-Hartman
  2018-03-02  8:51 ` [PATCH 4.4 08/34] spi: atmel: fixed spin_lock usage inside atmel_spi_remove Greg Kroah-Hartman
                   ` (31 subsequent siblings)
  38 siblings, 0 replies; 53+ messages in thread
From: Greg Kroah-Hartman @ 2018-03-02  8:51 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Karol Herbst, Thierry Reding,
	Ben Skeggs, Sasha Levin

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Karol Herbst <kherbst@redhat.com>


[ Upstream commit a121027d2747168df0aac0c3da35509eea39f61c ]

On my GP107 when I load nouveau after unloading it, for some reason the
GPU stopped sending or the CPU stopped receiving interrupts if MSI was
enabled.

Doing a rearm once before getting any interrupts fixes this.

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/gpu/drm/nouveau/nvkm/subdev/pci/base.c |    7 +++++++
 1 file changed, 7 insertions(+)

--- a/drivers/gpu/drm/nouveau/nvkm/subdev/pci/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/pci/base.c
@@ -127,6 +127,13 @@ nvkm_pci_init(struct nvkm_subdev *subdev
 		return ret;
 
 	pci->irq = pdev->irq;
+
+	/* Ensure MSI interrupts are armed, for the case where there are
+	 * already interrupts pending (for whatever reason) at load time.
+	 */
+	if (pci->msi)
+		pci->func->msi_rearm(pci);
+
 	return ret;
 }
 

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [PATCH 4.4 08/34] spi: atmel: fixed spin_lock usage inside atmel_spi_remove
  2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
                   ` (6 preceding siblings ...)
  2018-03-02  8:51 ` [PATCH 4.4 07/34] drm/nouveau/pci: do a msi rearm on init Greg Kroah-Hartman
@ 2018-03-02  8:51 ` Greg Kroah-Hartman
  2018-03-02  8:51 ` [PATCH 4.4 09/34] net: arc_emac: fix arc_emac_rx() error paths Greg Kroah-Hartman
                   ` (30 subsequent siblings)
  38 siblings, 0 replies; 53+ messages in thread
From: Greg Kroah-Hartman @ 2018-03-02  8:51 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Jia-Ju Bai, Radu Pirea, Mark Brown,
	Sasha Levin

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Radu Pirea <radu.pirea@microchip.com>


[ Upstream commit 66e900a3d225575c8b48b59ae1fe74bb6e5a65cc ]

The only part of atmel_spi_remove which needs to be atomic is hardware
reset.

atmel_spi_stop_dma calls dma_terminate_all and this needs interrupts
enabled.
atmel_spi_release_dma calls dma_release_channel and dma_release_channel
locks a mutex inside of spin_lock.

So the call of these functions can't be inside a spin_lock.

Reported-by: Jia-Ju Bai <baijiaju1990@gmail.com>
Signed-off-by: Radu Pirea <radu.pirea@microchip.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/spi/spi-atmel.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/spi/spi-atmel.c
+++ b/drivers/spi/spi-atmel.c
@@ -1669,12 +1669,12 @@ static int atmel_spi_remove(struct platf
 	pm_runtime_get_sync(&pdev->dev);
 
 	/* reset the hardware and block queue progress */
-	spin_lock_irq(&as->lock);
 	if (as->use_dma) {
 		atmel_spi_stop_dma(as);
 		atmel_spi_release_dma(as);
 	}
 
+	spin_lock_irq(&as->lock);
 	spi_writel(as, CR, SPI_BIT(SWRST));
 	spi_writel(as, CR, SPI_BIT(SWRST)); /* AT91SAM9263 Rev B workaround */
 	spi_readl(as, SR);

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [PATCH 4.4 09/34] net: arc_emac: fix arc_emac_rx() error paths
  2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
                   ` (7 preceding siblings ...)
  2018-03-02  8:51 ` [PATCH 4.4 08/34] spi: atmel: fixed spin_lock usage inside atmel_spi_remove Greg Kroah-Hartman
@ 2018-03-02  8:51 ` Greg Kroah-Hartman
  2018-03-02  8:51 ` [PATCH 4.4 10/34] scsi: storvsc: Fix scsi_cmd error assignments in storvsc_handle_error Greg Kroah-Hartman
                   ` (29 subsequent siblings)
  38 siblings, 0 replies; 53+ messages in thread
From: Greg Kroah-Hartman @ 2018-03-02  8:51 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Alexander Kochetkov, David S. Miller,
	Sasha Levin

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Alexander Kochetkov <al.kochet@gmail.com>


[ Upstream commit e688822d035b494071ecbadcccbd6f3325fb0f59 ]

arc_emac_rx() has some issues found by code review.

In case netdev_alloc_skb_ip_align() or dma_map_single() failure
rx fifo entry will not be returned to EMAC.

In case dma_map_single() failure previously allocated skb became
lost to driver. At the same time address of newly allocated skb
will not be provided to EMAC.

Signed-off-by: Alexander Kochetkov <al.kochet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/net/ethernet/arc/emac_main.c |   53 ++++++++++++++++++++---------------
 1 file changed, 31 insertions(+), 22 deletions(-)

--- a/drivers/net/ethernet/arc/emac_main.c
+++ b/drivers/net/ethernet/arc/emac_main.c
@@ -250,39 +250,48 @@ static int arc_emac_rx(struct net_device
 			continue;
 		}
 
-		pktlen = info & LEN_MASK;
-		stats->rx_packets++;
-		stats->rx_bytes += pktlen;
-		skb = rx_buff->skb;
-		skb_put(skb, pktlen);
-		skb->dev = ndev;
-		skb->protocol = eth_type_trans(skb, ndev);
-
-		dma_unmap_single(&ndev->dev, dma_unmap_addr(rx_buff, addr),
-				 dma_unmap_len(rx_buff, len), DMA_FROM_DEVICE);
-
-		/* Prepare the BD for next cycle */
-		rx_buff->skb = netdev_alloc_skb_ip_align(ndev,
-							 EMAC_BUFFER_SIZE);
-		if (unlikely(!rx_buff->skb)) {
+		/* Prepare the BD for next cycle. netif_receive_skb()
+		 * only if new skb was allocated and mapped to avoid holes
+		 * in the RX fifo.
+		 */
+		skb = netdev_alloc_skb_ip_align(ndev, EMAC_BUFFER_SIZE);
+		if (unlikely(!skb)) {
+			if (net_ratelimit())
+				netdev_err(ndev, "cannot allocate skb\n");
+			/* Return ownership to EMAC */
+			rxbd->info = cpu_to_le32(FOR_EMAC | EMAC_BUFFER_SIZE);
 			stats->rx_errors++;
-			/* Because receive_skb is below, increment rx_dropped */
 			stats->rx_dropped++;
 			continue;
 		}
 
-		/* receive_skb only if new skb was allocated to avoid holes */
-		netif_receive_skb(skb);
-
-		addr = dma_map_single(&ndev->dev, (void *)rx_buff->skb->data,
+		addr = dma_map_single(&ndev->dev, (void *)skb->data,
 				      EMAC_BUFFER_SIZE, DMA_FROM_DEVICE);
 		if (dma_mapping_error(&ndev->dev, addr)) {
 			if (net_ratelimit())
-				netdev_err(ndev, "cannot dma map\n");
-			dev_kfree_skb(rx_buff->skb);
+				netdev_err(ndev, "cannot map dma buffer\n");
+			dev_kfree_skb(skb);
+			/* Return ownership to EMAC */
+			rxbd->info = cpu_to_le32(FOR_EMAC | EMAC_BUFFER_SIZE);
 			stats->rx_errors++;
+			stats->rx_dropped++;
 			continue;
 		}
+
+		/* unmap previosly mapped skb */
+		dma_unmap_single(&ndev->dev, dma_unmap_addr(rx_buff, addr),
+				 dma_unmap_len(rx_buff, len), DMA_FROM_DEVICE);
+
+		pktlen = info & LEN_MASK;
+		stats->rx_packets++;
+		stats->rx_bytes += pktlen;
+		skb_put(rx_buff->skb, pktlen);
+		rx_buff->skb->dev = ndev;
+		rx_buff->skb->protocol = eth_type_trans(rx_buff->skb, ndev);
+
+		netif_receive_skb(rx_buff->skb);
+
+		rx_buff->skb = skb;
 		dma_unmap_addr_set(rx_buff, addr, addr);
 		dma_unmap_len_set(rx_buff, len, EMAC_BUFFER_SIZE);
 

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [PATCH 4.4 10/34] scsi: storvsc: Fix scsi_cmd error assignments in storvsc_handle_error
  2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
                   ` (8 preceding siblings ...)
  2018-03-02  8:51 ` [PATCH 4.4 09/34] net: arc_emac: fix arc_emac_rx() error paths Greg Kroah-Hartman
@ 2018-03-02  8:51 ` Greg Kroah-Hartman
  2018-03-02  8:51 ` [PATCH 4.4 11/34] ARM: dts: ls1021a: fix incorrect clock references Greg Kroah-Hartman
                   ` (28 subsequent siblings)
  38 siblings, 0 replies; 53+ messages in thread
From: Greg Kroah-Hartman @ 2018-03-02  8:51 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Cathy Avery, Long Li,
	Stephen Hemminger, Martin K. Petersen, Sasha Levin

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Cathy Avery <cavery@redhat.com>


[ Upstream commit d1b8b2391c24751e44f618fcf86fb55d9a9247fd ]

When an I/O is returned with an srb_status of SRB_STATUS_INVALID_LUN
which has zero good_bytes it must be assigned an error. Otherwise the
I/O will be continuously requeued and will cause a deadlock in the case
where disks are being hot added and removed. sd_probe_async will wait
forever for its I/O to complete while holding scsi_sd_probe_domain.

Also returning the default error of DID_TARGET_FAILURE causes multipath
to not retry the I/O resulting in applications receiving I/O errors
before a failover can occur.

Signed-off-by: Cathy Avery <cavery@redhat.com>
Signed-off-by: Long Li <longli@microsoft.com>
Reviewed-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/scsi/storvsc_drv.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/drivers/scsi/storvsc_drv.c
+++ b/drivers/scsi/storvsc_drv.c
@@ -890,10 +890,11 @@ static void storvsc_handle_error(struct
 		case TEST_UNIT_READY:
 			break;
 		default:
-			set_host_byte(scmnd, DID_TARGET_FAILURE);
+			set_host_byte(scmnd, DID_ERROR);
 		}
 		break;
 	case SRB_STATUS_INVALID_LUN:
+		set_host_byte(scmnd, DID_NO_CONNECT);
 		do_work = true;
 		process_err_fn = storvsc_remove_lun;
 		break;

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [PATCH 4.4 11/34] ARM: dts: ls1021a: fix incorrect clock references
  2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
                   ` (9 preceding siblings ...)
  2018-03-02  8:51 ` [PATCH 4.4 10/34] scsi: storvsc: Fix scsi_cmd error assignments in storvsc_handle_error Greg Kroah-Hartman
@ 2018-03-02  8:51 ` Greg Kroah-Hartman
  2018-03-02  8:51 ` [PATCH 4.4 12/34] lib/mpi: Fix umul_ppmm() for MIPS64r6 Greg Kroah-Hartman
                   ` (27 subsequent siblings)
  38 siblings, 0 replies; 53+ messages in thread
From: Greg Kroah-Hartman @ 2018-03-02  8:51 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Arnd Bergmann, Sasha Levin

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Arnd Bergmann <arnd@arndb.de>


[ Upstream commit 506e8a912661c97b41adc8a286b875d01323ec45 ]

dtc warns about two 'clocks' properties that have an extraneous '1'
at the end:

arch/arm/boot/dts/ls1021a-qds.dtb: Warning (clocks_property): arch/arm/boot/dts/ls1021a-twr.dtb: Warning (clocks_property): Property 'clocks', cell 1 is not a phandle reference in /soc/i2c@2180000/mux@77/i2c@4/sgtl5000@2a
arch/arm/boot/dts/ls1021a-qds.dtb: Warning (clocks_property): Missing property '#clock-cells' in node /soc/interrupt-controller@1400000 or bad phandle (referred from /soc/i2c@2180000/mux@77/i2c@4/sgtl5000@2a:clocks[1])
Property 'clocks', cell 1 is not a phandle reference in /soc/i2c@2190000/sgtl5000@a
arch/arm/boot/dts/ls1021a-twr.dtb: Warning (clocks_property): Missing property '#clock-cells' in node /soc/interrupt-controller@1400000 or bad phandle (referred from /soc/i2c@2190000/sgtl5000@a:clocks[1])

The clocks that get referenced here are fixed-rate, so they do not
take any argument, and dtc interprets the next cell as a phandle, which
is invalid.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 arch/arm/boot/dts/ls1021a-qds.dts |    2 +-
 arch/arm/boot/dts/ls1021a-twr.dts |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

--- a/arch/arm/boot/dts/ls1021a-qds.dts
+++ b/arch/arm/boot/dts/ls1021a-qds.dts
@@ -215,7 +215,7 @@
 				reg = <0x2a>;
 				VDDA-supply = <&reg_3p3v>;
 				VDDIO-supply = <&reg_3p3v>;
-				clocks = <&sys_mclk 1>;
+				clocks = <&sys_mclk>;
 			};
 		};
 	};
--- a/arch/arm/boot/dts/ls1021a-twr.dts
+++ b/arch/arm/boot/dts/ls1021a-twr.dts
@@ -167,7 +167,7 @@
 		reg = <0x0a>;
 		VDDA-supply = <&reg_3p3v>;
 		VDDIO-supply = <&reg_3p3v>;
-		clocks = <&sys_mclk 1>;
+		clocks = <&sys_mclk>;
 	};
 };
 

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [PATCH 4.4 12/34] lib/mpi: Fix umul_ppmm() for MIPS64r6
  2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
                   ` (10 preceding siblings ...)
  2018-03-02  8:51 ` [PATCH 4.4 11/34] ARM: dts: ls1021a: fix incorrect clock references Greg Kroah-Hartman
@ 2018-03-02  8:51 ` Greg Kroah-Hartman
  2018-03-02  8:51 ` [PATCH 4.4 13/34] tg3: Add workaround to restrict 5762 MRRS to 2048 Greg Kroah-Hartman
                   ` (26 subsequent siblings)
  38 siblings, 0 replies; 53+ messages in thread
From: Greg Kroah-Hartman @ 2018-03-02  8:51 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, James Hogan, Ralf Baechle,
	Herbert Xu, David S. Miller, linux-mips, linux-crypto,
	Sasha Levin

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: James Hogan <jhogan@kernel.org>


[ Upstream commit bbc25bee37d2b32cf3a1fab9195b6da3a185614a ]

Current MIPS64r6 toolchains aren't able to generate efficient
DMULU/DMUHU based code for the C implementation of umul_ppmm(), which
performs an unsigned 64 x 64 bit multiply and returns the upper and
lower 64-bit halves of the 128-bit result. Instead it widens the 64-bit
inputs to 128-bits and emits a __multi3 intrinsic call to perform a 128
x 128 multiply. This is both inefficient, and it results in a link error
since we don't include __multi3 in MIPS linux.

For example commit 90a53e4432b1 ("cfg80211: implement regdb signature
checking") merged in v4.15-rc1 recently broke the 64r6_defconfig and
64r6el_defconfig builds by indirectly selecting MPILIB. The same build
errors can be reproduced on older kernels by enabling e.g. CRYPTO_RSA:

lib/mpi/generic_mpih-mul1.o: In function `mpihelp_mul_1':
lib/mpi/generic_mpih-mul1.c:50: undefined reference to `__multi3'
lib/mpi/generic_mpih-mul2.o: In function `mpihelp_addmul_1':
lib/mpi/generic_mpih-mul2.c:49: undefined reference to `__multi3'
lib/mpi/generic_mpih-mul3.o: In function `mpihelp_submul_1':
lib/mpi/generic_mpih-mul3.c:49: undefined reference to `__multi3'
lib/mpi/mpih-div.o In function `mpihelp_divrem':
lib/mpi/mpih-div.c:205: undefined reference to `__multi3'
lib/mpi/mpih-div.c:142: undefined reference to `__multi3'

Therefore add an efficient MIPS64r6 implementation of umul_ppmm() using
inline assembly and the DMULU/DMUHU instructions, to prevent __multi3
calls being emitted.

Fixes: 7fd08ca58ae6 ("MIPS: Add build support for the MIPS R6 ISA")
Signed-off-by: James Hogan <jhogan@kernel.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: linux-mips@linux-mips.org
Cc: linux-crypto@vger.kernel.org
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 lib/mpi/longlong.h |   18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

--- a/lib/mpi/longlong.h
+++ b/lib/mpi/longlong.h
@@ -671,7 +671,23 @@ do {						\
 	**************  MIPS/64  **************
 	***************************************/
 #if (defined(__mips) && __mips >= 3) && W_TYPE_SIZE == 64
-#if (__GNUC__ >= 5) || (__GNUC__ >= 4 && __GNUC_MINOR__ >= 4)
+#if defined(__mips_isa_rev) && __mips_isa_rev >= 6
+/*
+ * GCC ends up emitting a __multi3 intrinsic call for MIPS64r6 with the plain C
+ * code below, so we special case MIPS64r6 until the compiler can do better.
+ */
+#define umul_ppmm(w1, w0, u, v)						\
+do {									\
+	__asm__ ("dmulu %0,%1,%2"					\
+		 : "=d" ((UDItype)(w0))					\
+		 : "d" ((UDItype)(u)),					\
+		   "d" ((UDItype)(v)));					\
+	__asm__ ("dmuhu %0,%1,%2"					\
+		 : "=d" ((UDItype)(w1))					\
+		 : "d" ((UDItype)(u)),					\
+		   "d" ((UDItype)(v)));					\
+} while (0)
+#elif (__GNUC__ >= 5) || (__GNUC__ >= 4 && __GNUC_MINOR__ >= 4)
 #define umul_ppmm(w1, w0, u, v) \
 do {									\
 	typedef unsigned int __ll_UTItype __attribute__((mode(TI)));	\

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [PATCH 4.4 13/34] tg3: Add workaround to restrict 5762 MRRS to 2048
  2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
                   ` (11 preceding siblings ...)
  2018-03-02  8:51 ` [PATCH 4.4 12/34] lib/mpi: Fix umul_ppmm() for MIPS64r6 Greg Kroah-Hartman
@ 2018-03-02  8:51 ` Greg Kroah-Hartman
  2018-03-02  8:51 ` [PATCH 4.4 14/34] tg3: Enable PHY reset in MTU change path for 5720 Greg Kroah-Hartman
                   ` (25 subsequent siblings)
  38 siblings, 0 replies; 53+ messages in thread
From: Greg Kroah-Hartman @ 2018-03-02  8:51 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Siva Reddy Kallam, Michael Chan,
	David S. Miller, Sasha Levin

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Siva Reddy Kallam <siva.kallam@broadcom.com>


[ Upstream commit 4419bb1cedcda0272e1dc410345c5a1d1da0e367 ]

One of AMD based server with 5762 hangs with jumbo frame traffic.
This AMD platform has southbridge limitation which is restricting MRRS
to 4000. As a work around, driver to restricts the MRRS to 2048 for
this particular 5762 NX1 card.

Signed-off-by: Siva Reddy Kallam <siva.kallam@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/net/ethernet/broadcom/tg3.c |   10 ++++++++++
 drivers/net/ethernet/broadcom/tg3.h |    4 ++++
 2 files changed, 14 insertions(+)

--- a/drivers/net/ethernet/broadcom/tg3.c
+++ b/drivers/net/ethernet/broadcom/tg3.c
@@ -10051,6 +10051,16 @@ static int tg3_reset_hw(struct tg3 *tp,
 
 	tw32(GRC_MODE, tp->grc_mode | val);
 
+	/* On one of the AMD platform, MRRS is restricted to 4000 because of
+	 * south bridge limitation. As a workaround, Driver is setting MRRS
+	 * to 2048 instead of default 4096.
+	 */
+	if (tp->pdev->subsystem_vendor == PCI_VENDOR_ID_DELL &&
+	    tp->pdev->subsystem_device == TG3PCI_SUBDEVICE_ID_DELL_5762) {
+		val = tr32(TG3PCI_DEV_STATUS_CTRL) & ~MAX_READ_REQ_MASK;
+		tw32(TG3PCI_DEV_STATUS_CTRL, val | MAX_READ_REQ_SIZE_2048);
+	}
+
 	/* Setup the timer prescalar register.  Clock is always 66Mhz. */
 	val = tr32(GRC_MISC_CFG);
 	val &= ~0xff;
--- a/drivers/net/ethernet/broadcom/tg3.h
+++ b/drivers/net/ethernet/broadcom/tg3.h
@@ -95,6 +95,7 @@
 #define TG3PCI_SUBDEVICE_ID_DELL_JAGUAR		0x0106
 #define TG3PCI_SUBDEVICE_ID_DELL_MERLOT		0x0109
 #define TG3PCI_SUBDEVICE_ID_DELL_SLIM_MERLOT	0x010a
+#define TG3PCI_SUBDEVICE_ID_DELL_5762		0x07f0
 #define TG3PCI_SUBVENDOR_ID_COMPAQ		PCI_VENDOR_ID_COMPAQ
 #define TG3PCI_SUBDEVICE_ID_COMPAQ_BANSHEE	0x007c
 #define TG3PCI_SUBDEVICE_ID_COMPAQ_BANSHEE_2	0x009a
@@ -280,6 +281,9 @@
 #define TG3PCI_STD_RING_PROD_IDX	0x00000098 /* 64-bit */
 #define TG3PCI_RCV_RET_RING_CON_IDX	0x000000a0 /* 64-bit */
 /* 0xa8 --> 0xb8 unused */
+#define TG3PCI_DEV_STATUS_CTRL		0x000000b4
+#define  MAX_READ_REQ_SIZE_2048		 0x00004000
+#define  MAX_READ_REQ_MASK		 0x00007000
 #define TG3PCI_DUAL_MAC_CTRL		0x000000b8
 #define  DUAL_MAC_CTRL_CH_MASK		 0x00000003
 #define  DUAL_MAC_CTRL_ID		 0x00000004

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [PATCH 4.4 14/34] tg3: Enable PHY reset in MTU change path for 5720
  2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
                   ` (12 preceding siblings ...)
  2018-03-02  8:51 ` [PATCH 4.4 13/34] tg3: Add workaround to restrict 5762 MRRS to 2048 Greg Kroah-Hartman
@ 2018-03-02  8:51 ` Greg Kroah-Hartman
  2018-03-02  8:51 ` [PATCH 4.4 15/34] bnx2x: Improve reliability in case of nested PCI errors Greg Kroah-Hartman
                   ` (24 subsequent siblings)
  38 siblings, 0 replies; 53+ messages in thread
From: Greg Kroah-Hartman @ 2018-03-02  8:51 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Siva Reddy Kallam, Michael Chan,
	David S. Miller, Sasha Levin

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Siva Reddy Kallam <siva.kallam@broadcom.com>


[ Upstream commit e60ee41aaf898584205a6af5c996860d0fe6a836 ]

A customer noticed RX path hang when MTU is changed on the fly while
running heavy traffic with NCSI enabled for 5717 and 5719. Since 5720
belongs to same ASIC family, we observed same issue and same fix
could solve this problem for 5720.

Signed-off-by: Siva Reddy Kallam <siva.kallam@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/net/ethernet/broadcom/tg3.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/drivers/net/ethernet/broadcom/tg3.c
+++ b/drivers/net/ethernet/broadcom/tg3.c
@@ -14240,7 +14240,8 @@ static int tg3_change_mtu(struct net_dev
 	 */
 	if (tg3_asic_rev(tp) == ASIC_REV_57766 ||
 	    tg3_asic_rev(tp) == ASIC_REV_5717 ||
-	    tg3_asic_rev(tp) == ASIC_REV_5719)
+	    tg3_asic_rev(tp) == ASIC_REV_5719 ||
+	    tg3_asic_rev(tp) == ASIC_REV_5720)
 		reset_phy = true;
 
 	err = tg3_restart_hw(tp, reset_phy);

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [PATCH 4.4 15/34] bnx2x: Improve reliability in case of nested PCI errors
  2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
                   ` (13 preceding siblings ...)
  2018-03-02  8:51 ` [PATCH 4.4 14/34] tg3: Enable PHY reset in MTU change path for 5720 Greg Kroah-Hartman
@ 2018-03-02  8:51 ` Greg Kroah-Hartman
  2018-03-02  8:51 ` [PATCH 4.4 16/34] led: core: Fix brightness setting when setting delay_off=0 Greg Kroah-Hartman
                   ` (23 subsequent siblings)
  38 siblings, 0 replies; 53+ messages in thread
From: Greg Kroah-Hartman @ 2018-03-02  8:51 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Abdul Haleem, Guilherme G. Piccoli,
	Shahed Shaikh, David S. Miller, Sasha Levin

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: "Guilherme G. Piccoli" <gpiccoli@linux.vnet.ibm.com>


[ Upstream commit f7084059a9cb9e56a186e1677b1dcffd76c2cd24 ]

While in recovery process of PCI error (called EEH on PowerPC arch),
another PCI transaction could be corrupted causing a situation of
nested PCI errors. Also, this scenario could be reproduced with
error injection mechanisms (for debug purposes).

We observe that in case of nested PCI errors, bnx2x might attempt to
initialize its shmem and cause a kernel crash due to bad addresses
read from MCP. Multiple different stack traces were observed depending
on the point the second PCI error happens.

This patch avoids the crashes by:

 * failing PCI recovery in case of nested errors (since multiple
 PCI errors in a row are not expected to lead to a functional
 adapter anyway), and by,

 * preventing access to adapter FW when MCP is failed (we mark it as
 failed when shmem cannot get initialized properly).

Reported-by: Abdul Haleem <abdhalee@linux.vnet.ibm.com>
Signed-off-by: Guilherme G. Piccoli <gpiccoli@linux.vnet.ibm.com>
Acked-by: Shahed Shaikh <Shahed.Shaikh@cavium.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c  |    4 ++--
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c |   14 +++++++++++++-
 2 files changed, 15 insertions(+), 3 deletions(-)

--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
@@ -3052,7 +3052,7 @@ int bnx2x_nic_unload(struct bnx2x *bp, i
 
 	del_timer_sync(&bp->timer);
 
-	if (IS_PF(bp)) {
+	if (IS_PF(bp) && !BP_NOMCP(bp)) {
 		/* Set ALWAYS_ALIVE bit in shmem */
 		bp->fw_drv_pulse_wr_seq |= DRV_PULSE_ALWAYS_ALIVE;
 		bnx2x_drv_pulse(bp);
@@ -3134,7 +3134,7 @@ int bnx2x_nic_unload(struct bnx2x *bp, i
 	bp->cnic_loaded = false;
 
 	/* Clear driver version indication in shmem */
-	if (IS_PF(bp))
+	if (IS_PF(bp) && !BP_NOMCP(bp))
 		bnx2x_update_mng_version(bp);
 
 	/* Check if there are pending parity attentions. If there are - set
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
@@ -9570,6 +9570,15 @@ static int bnx2x_init_shmem(struct bnx2x
 
 	do {
 		bp->common.shmem_base = REG_RD(bp, MISC_REG_SHARED_MEM_ADDR);
+
+		/* If we read all 0xFFs, means we are in PCI error state and
+		 * should bail out to avoid crashes on adapter's FW reads.
+		 */
+		if (bp->common.shmem_base == 0xFFFFFFFF) {
+			bp->flags |= NO_MCP_FLAG;
+			return -ENODEV;
+		}
+
 		if (bp->common.shmem_base) {
 			val = SHMEM_RD(bp, validity_map[BP_PORT(bp)]);
 			if (val & SHR_MEM_VALIDITY_MB)
@@ -14214,7 +14223,10 @@ static pci_ers_result_t bnx2x_io_slot_re
 		BNX2X_ERR("IO slot reset --> driver unload\n");
 
 		/* MCP should have been reset; Need to wait for validity */
-		bnx2x_init_shmem(bp);
+		if (bnx2x_init_shmem(bp)) {
+			rtnl_unlock();
+			return PCI_ERS_RESULT_DISCONNECT;
+		}
 
 		if (IS_PF(bp) && SHMEM2_HAS(bp, drv_capabilities_flag)) {
 			u32 v;

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [PATCH 4.4 16/34] led: core: Fix brightness setting when setting delay_off=0
  2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
                   ` (14 preceding siblings ...)
  2018-03-02  8:51 ` [PATCH 4.4 15/34] bnx2x: Improve reliability in case of nested PCI errors Greg Kroah-Hartman
@ 2018-03-02  8:51 ` Greg Kroah-Hartman
  2018-03-07 15:30   ` Ben Hutchings
  2018-03-07 15:32   ` Ben Hutchings
  2018-03-02  8:51 ` [PATCH 4.4 17/34] s390/dasd: fix wrongly assigned configuration data Greg Kroah-Hartman
                   ` (22 subsequent siblings)
  38 siblings, 2 replies; 53+ messages in thread
From: Greg Kroah-Hartman @ 2018-03-02  8:51 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Matthieu CASTET <matthieu.castet@parrot.com>


[ Upstream commit 2b83ff96f51d0b039c4561b9f95c824d7bddb85c ]

With the current code, the following sequence won't work :
echo timer > trigger

echo 0 >  delay_off
* at this point we call
** led_delay_off_store
** led_blink_set
---
 drivers/leds/led-core.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/leds/led-core.c
+++ b/drivers/leds/led-core.c
@@ -149,7 +149,7 @@ void led_blink_set(struct led_classdev *
 		   unsigned long *delay_on,
 		   unsigned long *delay_off)
 {
-	del_timer_sync(&led_cdev->blink_timer);
+	led_stop_software_blink(led_cdev);
 
 	led_cdev->flags &= ~LED_BLINK_ONESHOT;
 	led_cdev->flags &= ~LED_BLINK_ONESHOT_STOP;

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [PATCH 4.4 17/34] s390/dasd: fix wrongly assigned configuration data
  2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
                   ` (15 preceding siblings ...)
  2018-03-02  8:51 ` [PATCH 4.4 16/34] led: core: Fix brightness setting when setting delay_off=0 Greg Kroah-Hartman
@ 2018-03-02  8:51 ` Greg Kroah-Hartman
  2018-03-02  8:51 ` [PATCH 4.4 18/34] IB/mlx4: Fix mlx4_ib_alloc_mr error flow Greg Kroah-Hartman
                   ` (21 subsequent siblings)
  38 siblings, 0 replies; 53+ messages in thread
From: Greg Kroah-Hartman @ 2018-03-02  8:51 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Stefan Haberland, Jan Hoeppner,
	Martin Schwidefsky, Sasha Levin

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Stefan Haberland <sth@linux.vnet.ibm.com>


[ Upstream commit 8a9bd4f8ebc6800bfc0596e28631ff6809a2f615 ]

We store per path and per device configuration data to identify the
path or device correctly. The per path configuration data might get
mixed up if the original request gets into error recovery and is
started with a random path mask.

This would lead to a wrong identification of a path in case of a CUIR
event for example.

Fix by copying the path mask from the original request to the error
recovery request in case it is a path verification request.

Signed-off-by: Stefan Haberland <sth@linux.vnet.ibm.com>
Reviewed-by: Jan Hoeppner <hoeppner@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/s390/block/dasd_3990_erp.c |   10 ++++++++++
 1 file changed, 10 insertions(+)

--- a/drivers/s390/block/dasd_3990_erp.c
+++ b/drivers/s390/block/dasd_3990_erp.c
@@ -2743,6 +2743,16 @@ dasd_3990_erp_action(struct dasd_ccw_req
 		erp = dasd_3990_erp_handle_match_erp(cqr, erp);
 	}
 
+
+	/*
+	 * For path verification work we need to stick with the path that was
+	 * originally chosen so that the per path configuration data is
+	 * assigned correctly.
+	 */
+	if (test_bit(DASD_CQR_VERIFY_PATH, &erp->flags) && cqr->lpm) {
+		erp->lpm = cqr->lpm;
+	}
+
 	if (device->features & DASD_FEATURE_ERPLOG) {
 		/* print current erp_chain */
 		dev_err(&device->cdev->dev,

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [PATCH 4.4 18/34] IB/mlx4: Fix mlx4_ib_alloc_mr error flow
  2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
                   ` (16 preceding siblings ...)
  2018-03-02  8:51 ` [PATCH 4.4 17/34] s390/dasd: fix wrongly assigned configuration data Greg Kroah-Hartman
@ 2018-03-02  8:51 ` Greg Kroah-Hartman
  2018-03-02  8:51 ` [PATCH 4.4 19/34] IB/ipoib: Fix race condition in neigh creation Greg Kroah-Hartman
                   ` (20 subsequent siblings)
  38 siblings, 0 replies; 53+ messages in thread
From: Greg Kroah-Hartman @ 2018-03-02  8:51 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Nitzan Carmi, Leon Romanovsky,
	Jason Gunthorpe, Sasha Levin

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Leon Romanovsky <leonro@mellanox.com>


[ Upstream commit 5a371cf87e145b86efd32007e46146e78c1eff6d ]

ibmr.device is being set only after ib_alloc_mr() is successfully complete.
Therefore, in case imlx4_mr_enable() returns with error, the error flow
unwinder calls to mlx4_free_priv_pages(), which uses ibmr.device.

Such usage causes to NULL dereference oops and to fix it, the IB device
should be set in the mr struct earlier stage (e.g. prior to calling
mlx4_free_priv_pages()).

Fixes: 1b2cd0fc673c ("IB/mlx4: Support the new memory registration API")
Signed-off-by: Nitzan Carmi <nitzanc@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/infiniband/hw/mlx4/mr.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/infiniband/hw/mlx4/mr.c
+++ b/drivers/infiniband/hw/mlx4/mr.c
@@ -424,7 +424,6 @@ struct ib_mr *mlx4_ib_alloc_mr(struct ib
 		goto err_free_mr;
 
 	mr->max_pages = max_num_sg;
-
 	err = mlx4_mr_enable(dev->dev, &mr->mmr);
 	if (err)
 		goto err_free_pl;
@@ -435,6 +434,7 @@ struct ib_mr *mlx4_ib_alloc_mr(struct ib
 	return &mr->ibmr;
 
 err_free_pl:
+	mr->ibmr.device = pd->device;
 	mlx4_free_priv_pages(mr);
 err_free_mr:
 	(void) mlx4_mr_free(dev->dev, &mr->mmr);

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [PATCH 4.4 19/34] IB/ipoib: Fix race condition in neigh creation
  2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
                   ` (17 preceding siblings ...)
  2018-03-02  8:51 ` [PATCH 4.4 18/34] IB/mlx4: Fix mlx4_ib_alloc_mr error flow Greg Kroah-Hartman
@ 2018-03-02  8:51 ` Greg Kroah-Hartman
  2018-03-02  8:51 ` [PATCH 4.4 20/34] xfs: quota: fix missed destroy of qi_tree_lock Greg Kroah-Hartman
                   ` (19 subsequent siblings)
  38 siblings, 0 replies; 53+ messages in thread
From: Greg Kroah-Hartman @ 2018-03-02  8:51 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Erez Shitrit, Alex Vesker,
	Leon Romanovsky, Jason Gunthorpe, Sasha Levin

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Erez Shitrit <erezsh@mellanox.com>


[ Upstream commit 16ba3defb8bd01a9464ba4820a487f5b196b455b ]

When using enhanced mode for IPoIB, two threads may execute xmit in
parallel to two different TX queues while the target is the same.
In this case, both of them will add the same neighbor to the path's
neigh link list and we might see the following message:

  list_add double add: new=ffff88024767a348, prev=ffff88024767a348...
  WARNING: lib/list_debug.c:31__list_add_valid+0x4e/0x70
  ipoib_start_xmit+0x477/0x680 [ib_ipoib]
  dev_hard_start_xmit+0xb9/0x3e0
  sch_direct_xmit+0xf9/0x250
  __qdisc_run+0x176/0x5d0
  __dev_queue_xmit+0x1f5/0xb10
  __dev_queue_xmit+0x55/0xb10

Analysis:
Two SKB are scheduled to be transmitted from two cores.
In ipoib_start_xmit, both gets NULL when calling ipoib_neigh_get.
Two calls to neigh_add_path are made. One thread takes the spin-lock
and calls ipoib_neigh_alloc which creates the neigh structure,
then (after the __path_find) the neigh is added to the path's neigh
link list. When the second thread enters the critical section it also
calls ipoib_neigh_alloc but in this case it gets the already allocated
ipoib_neigh structure, which is already linked to the path's neigh
link list and adds it again to the list. Which beside of triggering
the list, it creates a loop in the linked list. This loop leads to
endless loop inside path_rec_completion.

Solution:
Check list_empty(&neigh->list) before adding to the list.
Add a similar fix in "ipoib_multicast.c::ipoib_mcast_send"

Fixes: b63b70d87741 ('IPoIB: Use a private hash table for path lookup in xmit path')
Signed-off-by: Erez Shitrit <erezsh@mellanox.com>
Reviewed-by: Alex Vesker <valex@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/infiniband/ulp/ipoib/ipoib_main.c      |   25 ++++++++++++++++++-------
 drivers/infiniband/ulp/ipoib/ipoib_multicast.c |    5 ++++-
 2 files changed, 22 insertions(+), 8 deletions(-)

--- a/drivers/infiniband/ulp/ipoib/ipoib_main.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c
@@ -844,8 +844,8 @@ static int path_rec_start(struct net_dev
 	return 0;
 }
 
-static void neigh_add_path(struct sk_buff *skb, u8 *daddr,
-			   struct net_device *dev)
+static struct ipoib_neigh *neigh_add_path(struct sk_buff *skb, u8 *daddr,
+					  struct net_device *dev)
 {
 	struct ipoib_dev_priv *priv = netdev_priv(dev);
 	struct ipoib_path *path;
@@ -858,7 +858,15 @@ static void neigh_add_path(struct sk_buf
 		spin_unlock_irqrestore(&priv->lock, flags);
 		++dev->stats.tx_dropped;
 		dev_kfree_skb_any(skb);
-		return;
+		return NULL;
+	}
+
+	/* To avoid race condition, make sure that the
+	 * neigh will be added only once.
+	 */
+	if (unlikely(!list_empty(&neigh->list))) {
+		spin_unlock_irqrestore(&priv->lock, flags);
+		return neigh;
 	}
 
 	path = __path_find(dev, daddr + 4);
@@ -896,7 +904,7 @@ static void neigh_add_path(struct sk_buf
 			spin_unlock_irqrestore(&priv->lock, flags);
 			ipoib_send(dev, skb, path->ah, IPOIB_QPN(daddr));
 			ipoib_neigh_put(neigh);
-			return;
+			return NULL;
 		}
 	} else {
 		neigh->ah  = NULL;
@@ -913,7 +921,7 @@ static void neigh_add_path(struct sk_buf
 
 	spin_unlock_irqrestore(&priv->lock, flags);
 	ipoib_neigh_put(neigh);
-	return;
+	return NULL;
 
 err_path:
 	ipoib_neigh_free(neigh);
@@ -923,6 +931,8 @@ err_drop:
 
 	spin_unlock_irqrestore(&priv->lock, flags);
 	ipoib_neigh_put(neigh);
+
+	return NULL;
 }
 
 static void unicast_arp_send(struct sk_buff *skb, struct net_device *dev,
@@ -1028,8 +1038,9 @@ static int ipoib_start_xmit(struct sk_bu
 	case htons(ETH_P_TIPC):
 		neigh = ipoib_neigh_get(dev, phdr->hwaddr);
 		if (unlikely(!neigh)) {
-			neigh_add_path(skb, phdr->hwaddr, dev);
-			return NETDEV_TX_OK;
+			neigh = neigh_add_path(skb, phdr->hwaddr, dev);
+			if (likely(!neigh))
+				return NETDEV_TX_OK;
 		}
 		break;
 	case htons(ETH_P_ARP):
--- a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
@@ -775,7 +775,10 @@ void ipoib_mcast_send(struct net_device
 		spin_lock_irqsave(&priv->lock, flags);
 		if (!neigh) {
 			neigh = ipoib_neigh_alloc(daddr, dev);
-			if (neigh) {
+			/* Make sure that the neigh will be added only
+			 * once to mcast list.
+			 */
+			if (neigh && list_empty(&neigh->list)) {
 				kref_get(&mcast->ah->ref);
 				neigh->ah	= mcast->ah;
 				list_add_tail(&neigh->list, &mcast->neigh_list);

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [PATCH 4.4 20/34] xfs: quota: fix missed destroy of qi_tree_lock
  2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
                   ` (18 preceding siblings ...)
  2018-03-02  8:51 ` [PATCH 4.4 19/34] IB/ipoib: Fix race condition in neigh creation Greg Kroah-Hartman
@ 2018-03-02  8:51 ` Greg Kroah-Hartman
  2018-03-02  8:51 ` [PATCH 4.4 21/34] xfs: quota: check result of register_shrinker() Greg Kroah-Hartman
                   ` (18 subsequent siblings)
  38 siblings, 0 replies; 53+ messages in thread
From: Greg Kroah-Hartman @ 2018-03-02  8:51 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Aliaksei Karaliou, Darrick J. Wong,
	Sasha Levin

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Aliaksei Karaliou <akaraliou.dev@gmail.com>


[ Upstream commit 2196881566225f3c3428d1a5f847a992944daa5b ]

xfs_qm_destroy_quotainfo() does not destroy quotainfo->qi_tree_lock
while destroys quotainfo->qi_quotaofflock.

Signed-off-by: Aliaksei Karaliou <akaraliou.dev@gmail.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 fs/xfs/xfs_qm.c |    1 +
 1 file changed, 1 insertion(+)

--- a/fs/xfs/xfs_qm.c
+++ b/fs/xfs/xfs_qm.c
@@ -701,6 +701,7 @@ xfs_qm_destroy_quotainfo(
 		IRELE(qi->qi_pquotaip);
 		qi->qi_pquotaip = NULL;
 	}
+	mutex_destroy(&qi->qi_tree_lock);
 	mutex_destroy(&qi->qi_quotaofflock);
 	kmem_free(qi);
 	mp->m_quotainfo = NULL;

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [PATCH 4.4 21/34] xfs: quota: check result of register_shrinker()
  2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
                   ` (19 preceding siblings ...)
  2018-03-02  8:51 ` [PATCH 4.4 20/34] xfs: quota: fix missed destroy of qi_tree_lock Greg Kroah-Hartman
@ 2018-03-02  8:51 ` Greg Kroah-Hartman
  2018-03-02  8:51 ` [PATCH 4.4 22/34] e1000: fix disabling already-disabled warning Greg Kroah-Hartman
                   ` (17 subsequent siblings)
  38 siblings, 0 replies; 53+ messages in thread
From: Greg Kroah-Hartman @ 2018-03-02  8:51 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Aliaksei Karaliou, Darrick J. Wong,
	Sasha Levin

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Aliaksei Karaliou <akaraliou.dev@gmail.com>


[ Upstream commit 3a3882ff26fbdbaf5f7e13f6a0bccfbf7121041d ]

xfs_qm_init_quotainfo() does not check result of register_shrinker()
which was tagged as __must_check recently, reported by sparse.

Signed-off-by: Aliaksei Karaliou <akaraliou.dev@gmail.com>
[darrick: move xfs_qm_destroy_quotainos nearer xfs_qm_init_quotainos]
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>

Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 fs/xfs/xfs_qm.c |   45 +++++++++++++++++++++++++++++----------------
 1 file changed, 29 insertions(+), 16 deletions(-)

--- a/fs/xfs/xfs_qm.c
+++ b/fs/xfs/xfs_qm.c
@@ -47,7 +47,7 @@
 STATIC int	xfs_qm_init_quotainos(xfs_mount_t *);
 STATIC int	xfs_qm_init_quotainfo(xfs_mount_t *);
 
-
+STATIC void	xfs_qm_destroy_quotainos(xfs_quotainfo_t *qi);
 STATIC void	xfs_qm_dqfree_one(struct xfs_dquot *dqp);
 /*
  * We use the batch lookup interface to iterate over the dquots as it
@@ -660,9 +660,17 @@ xfs_qm_init_quotainfo(
 	qinf->qi_shrinker.scan_objects = xfs_qm_shrink_scan;
 	qinf->qi_shrinker.seeks = DEFAULT_SEEKS;
 	qinf->qi_shrinker.flags = SHRINKER_NUMA_AWARE;
-	register_shrinker(&qinf->qi_shrinker);
+
+	error = register_shrinker(&qinf->qi_shrinker);
+	if (error)
+		goto out_free_inos;
+
 	return 0;
 
+out_free_inos:
+	mutex_destroy(&qinf->qi_quotaofflock);
+	mutex_destroy(&qinf->qi_tree_lock);
+	xfs_qm_destroy_quotainos(qinf);
 out_free_lru:
 	list_lru_destroy(&qinf->qi_lru);
 out_free_qinf:
@@ -671,7 +679,6 @@ out_free_qinf:
 	return error;
 }
 
-
 /*
  * Gets called when unmounting a filesystem or when all quotas get
  * turned off.
@@ -688,19 +695,7 @@ xfs_qm_destroy_quotainfo(
 
 	unregister_shrinker(&qi->qi_shrinker);
 	list_lru_destroy(&qi->qi_lru);
-
-	if (qi->qi_uquotaip) {
-		IRELE(qi->qi_uquotaip);
-		qi->qi_uquotaip = NULL; /* paranoia */
-	}
-	if (qi->qi_gquotaip) {
-		IRELE(qi->qi_gquotaip);
-		qi->qi_gquotaip = NULL;
-	}
-	if (qi->qi_pquotaip) {
-		IRELE(qi->qi_pquotaip);
-		qi->qi_pquotaip = NULL;
-	}
+	xfs_qm_destroy_quotainos(qi);
 	mutex_destroy(&qi->qi_tree_lock);
 	mutex_destroy(&qi->qi_quotaofflock);
 	kmem_free(qi);
@@ -1563,6 +1558,24 @@ error_rele:
 }
 
 STATIC void
+xfs_qm_destroy_quotainos(
+	xfs_quotainfo_t	*qi)
+{
+	if (qi->qi_uquotaip) {
+		IRELE(qi->qi_uquotaip);
+		qi->qi_uquotaip = NULL; /* paranoia */
+	}
+	if (qi->qi_gquotaip) {
+		IRELE(qi->qi_gquotaip);
+		qi->qi_gquotaip = NULL;
+	}
+	if (qi->qi_pquotaip) {
+		IRELE(qi->qi_pquotaip);
+		qi->qi_pquotaip = NULL;
+	}
+}
+
+STATIC void
 xfs_qm_dqfree_one(
 	struct xfs_dquot	*dqp)
 {

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [PATCH 4.4 22/34] e1000: fix disabling already-disabled warning
  2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
                   ` (20 preceding siblings ...)
  2018-03-02  8:51 ` [PATCH 4.4 21/34] xfs: quota: check result of register_shrinker() Greg Kroah-Hartman
@ 2018-03-02  8:51 ` Greg Kroah-Hartman
  2018-03-02  8:51 ` [PATCH 4.4 23/34] drm/ttm: check the return value of kzalloc Greg Kroah-Hartman
                   ` (16 subsequent siblings)
  38 siblings, 0 replies; 53+ messages in thread
From: Greg Kroah-Hartman @ 2018-03-02  8:51 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Tushar Dave, Fengguang Wu,
	Jeff Kirsher, Sasha Levin

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Tushar Dave <tushar.n.dave@oracle.com>


[ Upstream commit 0b76aae741abb9d16d2c0e67f8b1e766576f897d ]

This patch adds check so that driver does not disable already
disabled device.

[   44.637743] advantechwdt: Unexpected close, not stopping watchdog!
[   44.997548] input: ImExPS/2 Generic Explorer Mouse as /devices/platform/i8042/serio1/input/input6
[   45.013419] e1000 0000:00:03.0: disabling already-disabled device
[   45.013447] ------------[ cut here ]------------
[   45.014868] WARNING: CPU: 1 PID: 71 at drivers/pci/pci.c:1641 pci_disable_device+0xa1/0x105:
						pci_disable_device at drivers/pci/pci.c:1640
[   45.016171] CPU: 1 PID: 71 Comm: rcu_perf_shutdo Not tainted 4.14.0-01330-g3c07399 #1
[   45.017197] task: ffff88011bee9e40 task.stack: ffffc90000860000
[   45.017987] RIP: 0010:pci_disable_device+0xa1/0x105:
						pci_disable_device at drivers/pci/pci.c:1640
[   45.018603] RSP: 0000:ffffc90000863e30 EFLAGS: 00010286
[   45.019282] RAX: 0000000000000035 RBX: ffff88013a230008 RCX: 0000000000000000
[   45.020182] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000203
[   45.021084] RBP: ffff88013a3f31e8 R08: 0000000000000001 R09: 0000000000000000
[   45.021986] R10: ffffffff827ec29c R11: 0000000000000002 R12: 0000000000000001
[   45.022946] R13: ffff88013a230008 R14: ffff880117802b20 R15: ffffc90000863e8f
[   45.023842] FS:  0000000000000000(0000) GS:ffff88013fd00000(0000) knlGS:0000000000000000
[   45.024863] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   45.025583] CR2: ffffc900006d4000 CR3: 000000000220f000 CR4: 00000000000006a0
[   45.026478] Call Trace:
[   45.026811]  __e1000_shutdown+0x1d4/0x1e2:
						__e1000_shutdown at drivers/net/ethernet/intel/e1000/e1000_main.c:5162
[   45.027344]  ? rcu_perf_cleanup+0x2a1/0x2a1:
						rcu_perf_shutdown at kernel/rcu/rcuperf.c:627
[   45.027883]  e1000_shutdown+0x14/0x3a:
						e1000_shutdown at drivers/net/ethernet/intel/e1000/e1000_main.c:5235
[   45.028351]  device_shutdown+0x110/0x1aa:
						device_shutdown at drivers/base/core.c:2807
[   45.028858]  kernel_power_off+0x31/0x64:
						kernel_power_off at kernel/reboot.c:260
[   45.029343]  rcu_perf_shutdown+0x9b/0xa7:
						rcu_perf_shutdown at kernel/rcu/rcuperf.c:637
[   45.029852]  ? __wake_up_common_lock+0xa2/0xa2:
						autoremove_wake_function at kernel/sched/wait.c:376
[   45.030414]  kthread+0x126/0x12e:
						kthread at kernel/kthread.c:233
[   45.030834]  ? __kthread_bind_mask+0x8e/0x8e:
						kthread at kernel/kthread.c:190
[   45.031399]  ? ret_from_fork+0x1f/0x30:
						ret_from_fork at arch/x86/entry/entry_64.S:443
[   45.031883]  ? kernel_init+0xa/0xf5:
						kernel_init at init/main.c:997
[   45.032325]  ret_from_fork+0x1f/0x30:
						ret_from_fork at arch/x86/entry/entry_64.S:443
[   45.032777] Code: 00 48 85 ed 75 07 48 8b ab a8 00 00 00 48 8d bb 98 00 00 00 e8 aa d1 11 00 48 89 ea 48 89 c6 48 c7 c7 d8 e4 0b 82 e8 55 7d da ff <0f> ff b9 01 00 00 00 31 d2 be 01 00 00 00 48 c7 c7 f0 b1 61 82
[   45.035222] ---[ end trace c257137b1b1976ef ]---
[   45.037838] ACPI: Preparing to enter system sleep state S5

Signed-off-by: Tushar Dave <tushar.n.dave@oracle.com>
Tested-by: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/net/ethernet/intel/e1000/e1000.h      |    3 +-
 drivers/net/ethernet/intel/e1000/e1000_main.c |   27 +++++++++++++++++++++-----
 2 files changed, 24 insertions(+), 6 deletions(-)

--- a/drivers/net/ethernet/intel/e1000/e1000.h
+++ b/drivers/net/ethernet/intel/e1000/e1000.h
@@ -331,7 +331,8 @@ struct e1000_adapter {
 enum e1000_state_t {
 	__E1000_TESTING,
 	__E1000_RESETTING,
-	__E1000_DOWN
+	__E1000_DOWN,
+	__E1000_DISABLED
 };
 
 #undef pr_fmt
--- a/drivers/net/ethernet/intel/e1000/e1000_main.c
+++ b/drivers/net/ethernet/intel/e1000/e1000_main.c
@@ -940,7 +940,7 @@ static int e1000_init_hw_struct(struct e
 static int e1000_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 {
 	struct net_device *netdev;
-	struct e1000_adapter *adapter;
+	struct e1000_adapter *adapter = NULL;
 	struct e1000_hw *hw;
 
 	static int cards_found = 0;
@@ -950,6 +950,7 @@ static int e1000_probe(struct pci_dev *p
 	u16 tmp = 0;
 	u16 eeprom_apme_mask = E1000_EEPROM_APME;
 	int bars, need_ioport;
+	bool disable_dev = false;
 
 	/* do not allocate ioport bars when not needed */
 	need_ioport = e1000_is_need_ioport(pdev);
@@ -1250,11 +1251,13 @@ err_mdio_ioremap:
 	iounmap(hw->ce4100_gbe_mdio_base_virt);
 	iounmap(hw->hw_addr);
 err_ioremap:
+	disable_dev = !test_and_set_bit(__E1000_DISABLED, &adapter->flags);
 	free_netdev(netdev);
 err_alloc_etherdev:
 	pci_release_selected_regions(pdev, bars);
 err_pci_reg:
-	pci_disable_device(pdev);
+	if (!adapter || disable_dev)
+		pci_disable_device(pdev);
 	return err;
 }
 
@@ -1272,6 +1275,7 @@ static void e1000_remove(struct pci_dev
 	struct net_device *netdev = pci_get_drvdata(pdev);
 	struct e1000_adapter *adapter = netdev_priv(netdev);
 	struct e1000_hw *hw = &adapter->hw;
+	bool disable_dev;
 
 	e1000_down_and_stop(adapter);
 	e1000_release_manageability(adapter);
@@ -1290,9 +1294,11 @@ static void e1000_remove(struct pci_dev
 		iounmap(hw->flash_address);
 	pci_release_selected_regions(pdev, adapter->bars);
 
+	disable_dev = !test_and_set_bit(__E1000_DISABLED, &adapter->flags);
 	free_netdev(netdev);
 
-	pci_disable_device(pdev);
+	if (disable_dev)
+		pci_disable_device(pdev);
 }
 
 /**
@@ -5135,7 +5141,8 @@ static int __e1000_shutdown(struct pci_d
 	if (netif_running(netdev))
 		e1000_free_irq(adapter);
 
-	pci_disable_device(pdev);
+	if (!test_and_set_bit(__E1000_DISABLED, &adapter->flags))
+		pci_disable_device(pdev);
 
 	return 0;
 }
@@ -5179,6 +5186,10 @@ static int e1000_resume(struct pci_dev *
 		pr_err("Cannot enable PCI device from suspend\n");
 		return err;
 	}
+
+	/* flush memory to make sure state is correct */
+	smp_mb__before_atomic();
+	clear_bit(__E1000_DISABLED, &adapter->flags);
 	pci_set_master(pdev);
 
 	pci_enable_wake(pdev, PCI_D3hot, 0);
@@ -5253,7 +5264,9 @@ static pci_ers_result_t e1000_io_error_d
 
 	if (netif_running(netdev))
 		e1000_down(adapter);
-	pci_disable_device(pdev);
+
+	if (!test_and_set_bit(__E1000_DISABLED, &adapter->flags))
+		pci_disable_device(pdev);
 
 	/* Request a slot slot reset. */
 	return PCI_ERS_RESULT_NEED_RESET;
@@ -5281,6 +5294,10 @@ static pci_ers_result_t e1000_io_slot_re
 		pr_err("Cannot re-enable PCI device after reset.\n");
 		return PCI_ERS_RESULT_DISCONNECT;
 	}
+
+	/* flush memory to make sure state is correct */
+	smp_mb__before_atomic();
+	clear_bit(__E1000_DISABLED, &adapter->flags);
 	pci_set_master(pdev);
 
 	pci_enable_wake(pdev, PCI_D3hot, 0);

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [PATCH 4.4 23/34] drm/ttm: check the return value of kzalloc
  2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
                   ` (21 preceding siblings ...)
  2018-03-02  8:51 ` [PATCH 4.4 22/34] e1000: fix disabling already-disabled warning Greg Kroah-Hartman
@ 2018-03-02  8:51 ` Greg Kroah-Hartman
  2018-03-02  8:51 ` [PATCH 4.4 24/34] mac80211: mesh: drop frames appearing to be from us Greg Kroah-Hartman
                   ` (15 subsequent siblings)
  38 siblings, 0 replies; 53+ messages in thread
From: Greg Kroah-Hartman @ 2018-03-02  8:51 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Xiongwei Song, Christian König,
	Alex Deucher, Sasha Levin

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Xiongwei Song <sxwjean@gmail.com>


[ Upstream commit 19d859a7205bc59ffc38303eb25ae394f61d21dc ]

In the function ttm_page_alloc_init, kzalloc call is made for variable
_manager, we need to check its return value, it may return NULL.

Signed-off-by: Xiongwei Song <sxwjean@gmail.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/gpu/drm/ttm/ttm_page_alloc.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/drivers/gpu/drm/ttm/ttm_page_alloc.c
+++ b/drivers/gpu/drm/ttm/ttm_page_alloc.c
@@ -818,6 +818,8 @@ int ttm_page_alloc_init(struct ttm_mem_g
 	pr_info("Initializing pool allocator\n");
 
 	_manager = kzalloc(sizeof(*_manager), GFP_KERNEL);
+	if (!_manager)
+		return -ENOMEM;
 
 	ttm_page_pool_init_locked(&_manager->wc_pool, GFP_HIGHUSER, "wc");
 

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [PATCH 4.4 24/34] mac80211: mesh: drop frames appearing to be from us
  2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
                   ` (22 preceding siblings ...)
  2018-03-02  8:51 ` [PATCH 4.4 23/34] drm/ttm: check the return value of kzalloc Greg Kroah-Hartman
@ 2018-03-02  8:51 ` Greg Kroah-Hartman
  2018-03-02  8:51 ` [PATCH 4.4 25/34] can: flex_can: Correct the checking for frame length in flexcan_start_xmit() Greg Kroah-Hartman
                   ` (14 subsequent siblings)
  38 siblings, 0 replies; 53+ messages in thread
From: Greg Kroah-Hartman @ 2018-03-02  8:51 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Gui Iribarren, Johannes Berg, Sasha Levin

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Johannes Berg <johannes.berg@intel.com>


[ Upstream commit 736a80bbfda709fb3631f5f62056f250a38e5804 ]

If there are multiple mesh stations with the same MAC address,
they will both get confused and start throwing warnings.

Obviously in this case nothing can actually work anyway, so just
drop frames that look like they're from ourselves early on.

Reported-by: Gui Iribarren <gui@altermundi.net>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/mac80211/rx.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -3367,6 +3367,8 @@ static bool ieee80211_accept_frame(struc
 		}
 		return true;
 	case NL80211_IFTYPE_MESH_POINT:
+		if (ether_addr_equal(sdata->vif.addr, hdr->addr2))
+			return false;
 		if (multicast)
 			return true;
 		return ether_addr_equal(sdata->vif.addr, hdr->addr1);

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [PATCH 4.4 25/34] can: flex_can: Correct the checking for frame length in flexcan_start_xmit()
  2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
                   ` (23 preceding siblings ...)
  2018-03-02  8:51 ` [PATCH 4.4 24/34] mac80211: mesh: drop frames appearing to be from us Greg Kroah-Hartman
@ 2018-03-02  8:51 ` Greg Kroah-Hartman
  2018-03-02  8:51 ` [PATCH 4.4 26/34] bnxt_en: Fix the Invalid VF id check in bnxt_vf_ndo_prep routine Greg Kroah-Hartman
                   ` (13 subsequent siblings)
  38 siblings, 0 replies; 53+ messages in thread
From: Greg Kroah-Hartman @ 2018-03-02  8:51 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Luu An Phu, Oliver Hartkopp,
	Marc Kleine-Budde, Sasha Levin

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Luu An Phu <phu.luuan@nxp.com>


[ Upstream commit 13454c14550065fcc1705d6bd4ee6d40e057099f ]

The flexcan_start_xmit() function compares the frame length with data
register length to write frame content into data[0] and data[1]
register. Data register length is 4 bytes and frame maximum length is 8
bytes.

Fix the check that compares frame length with 3. Because the register
length is 4.

Signed-off-by: Luu An Phu <phu.luuan@nxp.com>
Reviewed-by: Oliver Hartkopp <socketcan@hartkopp.net>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/net/can/flexcan.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/net/can/flexcan.c
+++ b/drivers/net/can/flexcan.c
@@ -493,7 +493,7 @@ static int flexcan_start_xmit(struct sk_
 		data = be32_to_cpup((__be32 *)&cf->data[0]);
 		flexcan_write(data, &regs->mb[FLEXCAN_TX_BUF_ID].data[0]);
 	}
-	if (cf->can_dlc > 3) {
+	if (cf->can_dlc > 4) {
 		data = be32_to_cpup((__be32 *)&cf->data[4]);
 		flexcan_write(data, &regs->mb[FLEXCAN_TX_BUF_ID].data[1]);
 	}

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [PATCH 4.4 26/34] bnxt_en: Fix the Invalid VF id check in bnxt_vf_ndo_prep routine.
  2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
                   ` (24 preceding siblings ...)
  2018-03-02  8:51 ` [PATCH 4.4 25/34] can: flex_can: Correct the checking for frame length in flexcan_start_xmit() Greg Kroah-Hartman
@ 2018-03-02  8:51 ` Greg Kroah-Hartman
  2018-03-02  8:51 ` [PATCH 4.4 27/34] xen-netfront: enable device after manual module load Greg Kroah-Hartman
                   ` (12 subsequent siblings)
  38 siblings, 0 replies; 53+ messages in thread
From: Greg Kroah-Hartman @ 2018-03-02  8:51 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Venkat Devvuru, Michael Chan,
	David S. Miller, Sasha Levin

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>


[ Upstream commit 78f300049335ae81a5cc6b4b232481dc5e1f9d41 ]

In bnxt_vf_ndo_prep (which is called by bnxt_get_vf_config ndo), there is a
check for "Invalid VF id". Currently, the check is done against max_vfs.
However, the user doesn't always create max_vfs. So, the check should be
against the created number of VFs. The number of bnxt_vf_info structures
that are allocated in bnxt_alloc_vf_resources routine is the "number of
requested VFs". So, if an "invalid VF id" falls between the requested
number of VFs and the max_vfs, the driver will be dereferencing an invalid
pointer.

Fixes: c0c050c58d84 ("bnxt_en: New Broadcom ethernet driver.")
Signed-off-by: Venkat Devvuru <venkatkumar.duvvuru@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c
@@ -29,7 +29,7 @@ static int bnxt_vf_ndo_prep(struct bnxt
 		netdev_err(bp->dev, "vf ndo called though sriov is disabled\n");
 		return -EINVAL;
 	}
-	if (vf_id >= bp->pf.max_vfs) {
+	if (vf_id >= bp->pf.active_vfs) {
 		netdev_err(bp->dev, "Invalid VF id %d\n", vf_id);
 		return -EINVAL;
 	}

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [PATCH 4.4 27/34] xen-netfront: enable device after manual module load
  2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
                   ` (25 preceding siblings ...)
  2018-03-02  8:51 ` [PATCH 4.4 26/34] bnxt_en: Fix the Invalid VF id check in bnxt_vf_ndo_prep routine Greg Kroah-Hartman
@ 2018-03-02  8:51 ` Greg Kroah-Hartman
  2018-03-02  8:51 ` [PATCH 4.4 28/34] mdio-sun4i: Fix a memory leak Greg Kroah-Hartman
                   ` (11 subsequent siblings)
  38 siblings, 0 replies; 53+ messages in thread
From: Greg Kroah-Hartman @ 2018-03-02  8:51 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Eduardo Otubo, Boris Ostrovsky,
	David S. Miller, Sasha Levin

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Eduardo Otubo <otubo@redhat.com>


[ Upstream commit b707fda2df4070785d0fa8a278aa13944c5f51f8 ]

When loading the module after unloading it, the network interface would
not be enabled and thus wouldn't have a backend counterpart and unable
to be used by the guest.

The guest would face errors like:

  [root@guest ~]# ethtool -i eth0
  Cannot get driver information: No such device

  [root@guest ~]# ifconfig eth0
  eth0: error fetching interface information: Device not found

This patch initializes the state of the netfront device whenever it is
loaded manually, this state would communicate the netback to create its
device and establish the connection between them.

Signed-off-by: Eduardo Otubo <otubo@redhat.com>
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/net/xen-netfront.c |    1 +
 1 file changed, 1 insertion(+)

--- a/drivers/net/xen-netfront.c
+++ b/drivers/net/xen-netfront.c
@@ -1331,6 +1331,7 @@ static struct net_device *xennet_create_
 
 	netif_carrier_off(netdev);
 
+	xenbus_switch_state(dev, XenbusStateInitialising);
 	return netdev;
 
  exit:

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [PATCH 4.4 28/34] mdio-sun4i: Fix a memory leak
  2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
                   ` (26 preceding siblings ...)
  2018-03-02  8:51 ` [PATCH 4.4 27/34] xen-netfront: enable device after manual module load Greg Kroah-Hartman
@ 2018-03-02  8:51 ` Greg Kroah-Hartman
  2018-03-02  8:51 ` [PATCH 4.4 29/34] SolutionEngine771x: fix Ether platform data Greg Kroah-Hartman
                   ` (10 subsequent siblings)
  38 siblings, 0 replies; 53+ messages in thread
From: Greg Kroah-Hartman @ 2018-03-02  8:51 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Christophe JAILLET, David S. Miller,
	Sasha Levin

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Christophe JAILLET <christophe.jaillet@wanadoo.fr>


[ Upstream commit 56c0290202ab94a2f2780c449395d4ae8495fab4 ]

If the probing of the regulator is deferred, the memory allocated by
'mdiobus_alloc_size()' will be leaking.
It should be freed before the next call to 'sun4i_mdio_probe()' which will
reallocate it.

Fixes: 4bdcb1dd9feb ("net: Add MDIO bus driver for the Allwinner EMAC")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/net/phy/mdio-sun4i.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

--- a/drivers/net/phy/mdio-sun4i.c
+++ b/drivers/net/phy/mdio-sun4i.c
@@ -128,8 +128,10 @@ static int sun4i_mdio_probe(struct platf
 
 	data->regulator = devm_regulator_get(&pdev->dev, "phy");
 	if (IS_ERR(data->regulator)) {
-		if (PTR_ERR(data->regulator) == -EPROBE_DEFER)
-			return -EPROBE_DEFER;
+		if (PTR_ERR(data->regulator) == -EPROBE_DEFER) {
+			ret = -EPROBE_DEFER;
+			goto err_out_free_mdiobus;
+		}
 
 		dev_info(&pdev->dev, "no regulator found\n");
 	} else {

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [PATCH 4.4 29/34] SolutionEngine771x: fix Ether platform data
  2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
                   ` (27 preceding siblings ...)
  2018-03-02  8:51 ` [PATCH 4.4 28/34] mdio-sun4i: Fix a memory leak Greg Kroah-Hartman
@ 2018-03-02  8:51 ` Greg Kroah-Hartman
  2018-03-02  8:51 ` [PATCH 4.4 30/34] xen/gntdev: Fix off-by-one error when unmapping with holes Greg Kroah-Hartman
                   ` (9 subsequent siblings)
  38 siblings, 0 replies; 53+ messages in thread
From: Greg Kroah-Hartman @ 2018-03-02  8:51 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Sergei Shtylyov, David S. Miller,
	Sasha Levin

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>


[ Upstream commit 195e2addbce09e5afbc766efc1e6567c9ce840d3 ]

The 'sh_eth' driver's probe() method would fail  on the SolutionEngine7710
board and crash on SolutionEngine7712 board  as the platform code is
hopelessly behind the driver's platform data --  it passes the PHY address
instead of 'struct sh_eth_plat_data *'; pass the latter to the driver in
order to fix the bug...

Fixes: 71557a37adb5 ("[netdrvr] sh_eth: Add SH7619 support")
Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 arch/sh/boards/mach-se/770x/setup.c |   10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

--- a/arch/sh/boards/mach-se/770x/setup.c
+++ b/arch/sh/boards/mach-se/770x/setup.c
@@ -8,6 +8,7 @@
  */
 #include <linux/init.h>
 #include <linux/platform_device.h>
+#include <linux/sh_eth.h>
 #include <mach-se/mach/se.h>
 #include <mach-se/mach/mrshpc.h>
 #include <asm/machvec.h>
@@ -114,6 +115,11 @@ static struct platform_device heartbeat_
 #if defined(CONFIG_CPU_SUBTYPE_SH7710) ||\
 	defined(CONFIG_CPU_SUBTYPE_SH7712)
 /* SH771X Ethernet driver */
+static struct sh_eth_plat_data sh_eth_plat = {
+	.phy = PHY_ID,
+	.phy_interface = PHY_INTERFACE_MODE_MII,
+};
+
 static struct resource sh_eth0_resources[] = {
 	[0] = {
 		.start = SH_ETH0_BASE,
@@ -131,7 +137,7 @@ static struct platform_device sh_eth0_de
 	.name = "sh771x-ether",
 	.id = 0,
 	.dev = {
-		.platform_data = PHY_ID,
+		.platform_data = &sh_eth_plat,
 	},
 	.num_resources = ARRAY_SIZE(sh_eth0_resources),
 	.resource = sh_eth0_resources,
@@ -154,7 +160,7 @@ static struct platform_device sh_eth1_de
 	.name = "sh771x-ether",
 	.id = 1,
 	.dev = {
-		.platform_data = PHY_ID,
+		.platform_data = &sh_eth_plat,
 	},
 	.num_resources = ARRAY_SIZE(sh_eth1_resources),
 	.resource = sh_eth1_resources,

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [PATCH 4.4 30/34] xen/gntdev: Fix off-by-one error when unmapping with holes
  2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
                   ` (28 preceding siblings ...)
  2018-03-02  8:51 ` [PATCH 4.4 29/34] SolutionEngine771x: fix Ether platform data Greg Kroah-Hartman
@ 2018-03-02  8:51 ` Greg Kroah-Hartman
  2018-03-02  8:51 ` [PATCH 4.4 31/34] xen/gntdev: Fix partial gntdev_mmap() cleanup Greg Kroah-Hartman
                   ` (8 subsequent siblings)
  38 siblings, 0 replies; 53+ messages in thread
From: Greg Kroah-Hartman @ 2018-03-02  8:51 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Ross Lagerwall, Boris Ostrovsky, Sasha Levin

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Ross Lagerwall <ross.lagerwall@citrix.com>


[ Upstream commit 951a010233625b77cde3430b4b8785a9a22968d1 ]

If the requested range has a hole, the calculation of the number of
pages to unmap is off by one. Fix it.

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/xen/gntdev.c |    4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

--- a/drivers/xen/gntdev.c
+++ b/drivers/xen/gntdev.c
@@ -378,10 +378,8 @@ static int unmap_grant_pages(struct gran
 		}
 		range = 0;
 		while (range < pages) {
-			if (map->unmap_ops[offset+range].handle == -1) {
-				range--;
+			if (map->unmap_ops[offset+range].handle == -1)
 				break;
-			}
 			range++;
 		}
 		err = __unmap_grant_pages(map, offset, range);

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [PATCH 4.4 31/34] xen/gntdev: Fix partial gntdev_mmap() cleanup
  2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
                   ` (29 preceding siblings ...)
  2018-03-02  8:51 ` [PATCH 4.4 30/34] xen/gntdev: Fix off-by-one error when unmapping with holes Greg Kroah-Hartman
@ 2018-03-02  8:51 ` Greg Kroah-Hartman
  2018-03-02  8:51 ` [PATCH 4.4 32/34] sctp: make use of pre-calculated len Greg Kroah-Hartman
                   ` (7 subsequent siblings)
  38 siblings, 0 replies; 53+ messages in thread
From: Greg Kroah-Hartman @ 2018-03-02  8:51 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Ross Lagerwall, Boris Ostrovsky, Sasha Levin

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Ross Lagerwall <ross.lagerwall@citrix.com>


[ Upstream commit cf2acf66ad43abb39735568f55e1f85f9844e990 ]

When cleaning up after a partially successful gntdev_mmap(), unmap the
successfully mapped grant pages otherwise Xen will kill the domain if
in debug mode (Attempt to implicitly unmap a granted PTE) or Linux will
kill the process and emit "BUG: Bad page map in process" if Xen is in
release mode.

This is only needed when use_ptemod is true because gntdev_put_map()
will unmap grant pages itself when use_ptemod is false.

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/xen/gntdev.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

--- a/drivers/xen/gntdev.c
+++ b/drivers/xen/gntdev.c
@@ -874,8 +874,10 @@ unlock_out:
 out_unlock_put:
 	mutex_unlock(&priv->lock);
 out_put_map:
-	if (use_ptemod)
+	if (use_ptemod) {
 		map->vma = NULL;
+		unmap_grant_pages(map, 0, map->count);
+	}
 	gntdev_put_map(priv, map);
 	return err;
 }

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [PATCH 4.4 32/34] sctp: make use of pre-calculated len
  2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
                   ` (30 preceding siblings ...)
  2018-03-02  8:51 ` [PATCH 4.4 31/34] xen/gntdev: Fix partial gntdev_mmap() cleanup Greg Kroah-Hartman
@ 2018-03-02  8:51 ` Greg Kroah-Hartman
  2018-03-02  8:51 ` [PATCH 4.4 33/34] net: gianfar_ptp: move set_fipers() to spinlock protecting area Greg Kroah-Hartman
                   ` (6 subsequent siblings)
  38 siblings, 0 replies; 53+ messages in thread
From: Greg Kroah-Hartman @ 2018-03-02  8:51 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Marcelo Ricardo Leitner,
	David S. Miller, Sasha Levin

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>


[ Upstream commit c76f97c99ae6d26d14c7f0e50e074382bfbc9f98 ]

Some sockopt handling functions were calculating the length of the
buffer to be written to userspace and then calculating it again when
actually writing the buffer, which could lead to some write not using
an up-to-date length.

This patch updates such places to just make use of the len variable.

Also, replace some sizeof(type) to sizeof(var).

Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/sctp/socket.c |   16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

--- a/net/sctp/socket.c
+++ b/net/sctp/socket.c
@@ -4445,7 +4445,7 @@ static int sctp_getsockopt_autoclose(str
 	len = sizeof(int);
 	if (put_user(len, optlen))
 		return -EFAULT;
-	if (copy_to_user(optval, &sctp_sk(sk)->autoclose, sizeof(int)))
+	if (copy_to_user(optval, &sctp_sk(sk)->autoclose, len))
 		return -EFAULT;
 	return 0;
 }
@@ -5022,6 +5022,9 @@ copy_getaddrs:
 		err = -EFAULT;
 		goto out;
 	}
+	/* XXX: We should have accounted for sizeof(struct sctp_getaddrs) too,
+	 * but we can't change it anymore.
+	 */
 	if (put_user(bytes_copied, optlen))
 		err = -EFAULT;
 out:
@@ -5458,7 +5461,7 @@ static int sctp_getsockopt_maxseg(struct
 		params.assoc_id = 0;
 	} else if (len >= sizeof(struct sctp_assoc_value)) {
 		len = sizeof(struct sctp_assoc_value);
-		if (copy_from_user(&params, optval, sizeof(params)))
+		if (copy_from_user(&params, optval, len))
 			return -EFAULT;
 	} else
 		return -EINVAL;
@@ -5627,7 +5630,9 @@ static int sctp_getsockopt_active_key(st
 
 	if (len < sizeof(struct sctp_authkeyid))
 		return -EINVAL;
-	if (copy_from_user(&val, optval, sizeof(struct sctp_authkeyid)))
+
+	len = sizeof(struct sctp_authkeyid);
+	if (copy_from_user(&val, optval, len))
 		return -EFAULT;
 
 	asoc = sctp_id2assoc(sk, val.scact_assoc_id);
@@ -5639,7 +5644,6 @@ static int sctp_getsockopt_active_key(st
 	else
 		val.scact_keynumber = ep->active_key_id;
 
-	len = sizeof(struct sctp_authkeyid);
 	if (put_user(len, optlen))
 		return -EFAULT;
 	if (copy_to_user(optval, &val, len))
@@ -5665,7 +5669,7 @@ static int sctp_getsockopt_peer_auth_chu
 	if (len < sizeof(struct sctp_authchunks))
 		return -EINVAL;
 
-	if (copy_from_user(&val, optval, sizeof(struct sctp_authchunks)))
+	if (copy_from_user(&val, optval, sizeof(val)))
 		return -EFAULT;
 
 	to = p->gauth_chunks;
@@ -5710,7 +5714,7 @@ static int sctp_getsockopt_local_auth_ch
 	if (len < sizeof(struct sctp_authchunks))
 		return -EINVAL;
 
-	if (copy_from_user(&val, optval, sizeof(struct sctp_authchunks)))
+	if (copy_from_user(&val, optval, sizeof(val)))
 		return -EFAULT;
 
 	to = p->gauth_chunks;

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [PATCH 4.4 33/34] net: gianfar_ptp: move set_fipers() to spinlock protecting area
  2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
                   ` (31 preceding siblings ...)
  2018-03-02  8:51 ` [PATCH 4.4 32/34] sctp: make use of pre-calculated len Greg Kroah-Hartman
@ 2018-03-02  8:51 ` Greg Kroah-Hartman
  2018-03-02  8:51 ` [PATCH 4.4 34/34] MIPS: Implement __multi3 for GCC7 MIPS64r6 builds Greg Kroah-Hartman
                   ` (5 subsequent siblings)
  38 siblings, 0 replies; 53+ messages in thread
From: Greg Kroah-Hartman @ 2018-03-02  8:51 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Yangbo Lu, Richard Cochran,
	Fabio Estevam, David S. Miller, Sasha Levin

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Yangbo Lu <yangbo.lu@nxp.com>


[ Upstream commit 11d827a993a969c3c6ec56758ff63a44ba19b466 ]

set_fipers() calling should be protected by spinlock in
case that any interrupt breaks related registers setting
and the function we expect. This patch is to move set_fipers()
to spinlock protecting area in ptp_gianfar_adjtime().

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
Acked-by: Richard Cochran <richardcochran@gmail.com>
Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/net/ethernet/freescale/gianfar_ptp.c |    3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

--- a/drivers/net/ethernet/freescale/gianfar_ptp.c
+++ b/drivers/net/ethernet/freescale/gianfar_ptp.c
@@ -314,11 +314,10 @@ static int ptp_gianfar_adjtime(struct pt
 	now = tmr_cnt_read(etsects);
 	now += delta;
 	tmr_cnt_write(etsects, now);
+	set_fipers(etsects);
 
 	spin_unlock_irqrestore(&etsects->lock, flags);
 
-	set_fipers(etsects);
-
 	return 0;
 }
 

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [PATCH 4.4 34/34] MIPS: Implement __multi3 for GCC7 MIPS64r6 builds
  2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
                   ` (32 preceding siblings ...)
  2018-03-02  8:51 ` [PATCH 4.4 33/34] net: gianfar_ptp: move set_fipers() to spinlock protecting area Greg Kroah-Hartman
@ 2018-03-02  8:51 ` Greg Kroah-Hartman
  2018-03-02 12:22 ` [PATCH 4.4 00/34] 4.4.120-stable review Nathan Chancellor
                   ` (4 subsequent siblings)
  38 siblings, 0 replies; 53+ messages in thread
From: Greg Kroah-Hartman @ 2018-03-02  8:51 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Thomas Petazzoni, James Hogan,
	Waldemar Brodkorb, Ralf Baechle, Maciej W. Rozycki,
	Matthew Fortune, Florian Fainelli, linux-mips, Guenter Roeck

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: James Hogan <jhogan@kernel.org>

commit ebabcf17bcd7ce968b1631ebe08236275698f39b upstream.

GCC7 is a bit too eager to generate suboptimal __multi3 calls (128bit
multiply with 128bit result) for MIPS64r6 builds, even in code which
doesn't explicitly use 128bit types, such as the following:

unsigned long func(unsigned long a, unsigned long b)
{
	return a > (~0UL) / b;
}

Which GCC rearanges to:

return (unsigned __int128)a * (unsigned __int128)b > 0xffffffffffffffff;

Therefore implement __multi3, but only for MIPS64r6 with GCC7 as under
normal circumstances we wouldn't expect any calls to __multi3 to be
generated from kernel code.

Reported-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: James Hogan <jhogan@kernel.org>
Tested-by: Waldemar Brodkorb <wbx@openadk.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Maciej W. Rozycki <macro@mips.com>
Cc: Matthew Fortune <matthew.fortune@mips.com>
Cc: Florian Fainelli <florian@openwrt.org>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/17890/
Cc: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/mips/lib/Makefile |    3 +-
 arch/mips/lib/libgcc.h |   17 +++++++++++++++
 arch/mips/lib/multi3.c |   54 +++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 73 insertions(+), 1 deletion(-)

--- a/arch/mips/lib/Makefile
+++ b/arch/mips/lib/Makefile
@@ -15,4 +15,5 @@ obj-$(CONFIG_CPU_R3000)		+= r3k_dump_tlb
 obj-$(CONFIG_CPU_TX39XX)	+= r3k_dump_tlb.o
 
 # libgcc-style stuff needed in the kernel
-obj-y += ashldi3.o ashrdi3.o bswapsi.o bswapdi.o cmpdi2.o lshrdi3.o ucmpdi2.o
+obj-y += ashldi3.o ashrdi3.o bswapsi.o bswapdi.o cmpdi2.o lshrdi3.o multi3.o \
+	 ucmpdi2.o
--- a/arch/mips/lib/libgcc.h
+++ b/arch/mips/lib/libgcc.h
@@ -9,10 +9,18 @@ typedef int word_type __attribute__ ((mo
 struct DWstruct {
 	int high, low;
 };
+
+struct TWstruct {
+	long long high, low;
+};
 #elif defined(__LITTLE_ENDIAN)
 struct DWstruct {
 	int low, high;
 };
+
+struct TWstruct {
+	long long low, high;
+};
 #else
 #error I feel sick.
 #endif
@@ -22,4 +30,13 @@ typedef union {
 	long long ll;
 } DWunion;
 
+#if defined(CONFIG_64BIT) && defined(CONFIG_CPU_MIPSR6)
+typedef int ti_type __attribute__((mode(TI)));
+
+typedef union {
+	struct TWstruct s;
+	ti_type ti;
+} TWunion;
+#endif
+
 #endif /* __ASM_LIBGCC_H */
--- /dev/null
+++ b/arch/mips/lib/multi3.c
@@ -0,0 +1,54 @@
+// SPDX-License-Identifier: GPL-2.0
+#include <linux/export.h>
+
+#include "libgcc.h"
+
+/*
+ * GCC 7 suboptimally generates __multi3 calls for mips64r6, so for that
+ * specific case only we'll implement it here.
+ *
+ * See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82981
+ */
+#if defined(CONFIG_64BIT) && defined(CONFIG_CPU_MIPSR6) && (__GNUC__ == 7)
+
+/* multiply 64-bit values, low 64-bits returned */
+static inline long long notrace dmulu(long long a, long long b)
+{
+	long long res;
+
+	asm ("dmulu %0,%1,%2" : "=r" (res) : "r" (a), "r" (b));
+	return res;
+}
+
+/* multiply 64-bit unsigned values, high 64-bits of 128-bit result returned */
+static inline long long notrace dmuhu(long long a, long long b)
+{
+	long long res;
+
+	asm ("dmuhu %0,%1,%2" : "=r" (res) : "r" (a), "r" (b));
+	return res;
+}
+
+/* multiply 128-bit values, low 128-bits returned */
+ti_type notrace __multi3(ti_type a, ti_type b)
+{
+	TWunion res, aa, bb;
+
+	aa.ti = a;
+	bb.ti = b;
+
+	/*
+	 * a * b =           (a.lo * b.lo)
+	 *         + 2^64  * (a.hi * b.lo + a.lo * b.hi)
+	 *        [+ 2^128 * (a.hi * b.hi)]
+	 */
+	res.s.low = dmulu(aa.s.low, bb.s.low);
+	res.s.high = dmuhu(aa.s.low, bb.s.low);
+	res.s.high += dmulu(aa.s.high, bb.s.low);
+	res.s.high += dmulu(aa.s.low, bb.s.high);
+
+	return res.ti;
+}
+EXPORT_SYMBOL(__multi3);
+
+#endif /* 64BIT && CPU_MIPSR6 && GCC7 */

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [PATCH 4.4 00/34] 4.4.120-stable review
  2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
                   ` (33 preceding siblings ...)
  2018-03-02  8:51 ` [PATCH 4.4 34/34] MIPS: Implement __multi3 for GCC7 MIPS64r6 builds Greg Kroah-Hartman
@ 2018-03-02 12:22 ` Nathan Chancellor
  2018-03-02 18:53   ` Greg Kroah-Hartman
  2018-03-02 13:58 ` kernelci.org bot
                   ` (3 subsequent siblings)
  38 siblings, 1 reply; 53+ messages in thread
From: Nathan Chancellor @ 2018-03-02 12:22 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: linux-kernel, torvalds, akpm, linux, shuahkh, patches,
	ben.hutchings, lkft-triage, stable

On Fri, Mar 02, 2018 at 09:50:56AM +0100, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 4.4.120 release.
> There are 34 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 Mar  4 08:44:20 UTC 2018.
> Anything received after that time might be too late.
> 
> The whole patch series can be found in one patch at:
> 	https://www.kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.4.120-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.4.y
> and the diffstat can be found below.
> 
> thanks,
> 
> greg k-h
>

Merged, compiled, and flashed onto my Pixel 2 XL and OnePlus 5.

No initial issues noticed in dmesg or general usage.

Thanks!
Nathan

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [PATCH 4.4 00/34] 4.4.120-stable review
  2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
                   ` (34 preceding siblings ...)
  2018-03-02 12:22 ` [PATCH 4.4 00/34] 4.4.120-stable review Nathan Chancellor
@ 2018-03-02 13:58 ` kernelci.org bot
  2018-03-02 16:59 ` Naresh Kamboju
                   ` (2 subsequent siblings)
  38 siblings, 0 replies; 53+ messages in thread
From: kernelci.org bot @ 2018-03-02 13:58 UTC (permalink / raw)
  To: Greg Kroah-Hartman, linux-kernel
  Cc: Greg Kroah-Hartman, torvalds, akpm, linux, shuahkh, patches,
	ben.hutchings, lkft-triage, stable

stable-rc/linux-4.4.y boot: 78 boots: 0 failed, 76 passed with 2 untried/unknown (v4.4.119-35-g2fd16f09a713)

Full Boot Summary: https://kernelci.org/boot/all/job/stable-rc/branch/linux-4.4.y/kernel/v4.4.119-35-g2fd16f09a713/
Full Build Summary: https://kernelci.org/build/stable-rc/branch/linux-4.4.y/kernel/v4.4.119-35-g2fd16f09a713/

Tree: stable-rc
Branch: linux-4.4.y
Git Describe: v4.4.119-35-g2fd16f09a713
Git Commit: 2fd16f09a713e5abaffdc1d8f9ca29a24f542bf9
Git URL: http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
Tested: 40 unique boards, 16 SoC families, 16 builds out of 177

---
For more info write to <info@kernelci.org>

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [PATCH 4.4 00/34] 4.4.120-stable review
  2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
                   ` (35 preceding siblings ...)
  2018-03-02 13:58 ` kernelci.org bot
@ 2018-03-02 16:59 ` Naresh Kamboju
  2018-03-02 17:16 ` Guenter Roeck
  2018-03-02 21:30 ` Shuah Khan
  38 siblings, 0 replies; 53+ messages in thread
From: Naresh Kamboju @ 2018-03-02 16:59 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: linux-kernel, Ben Hutchings, Shuah Khan, lkft-triage, patches,
	linux- stable, Andrew Morton, Linus Torvalds, Guenter Roeck

On 2 March 2018 at 14:20, Greg Kroah-Hartman <gregkh@linuxfoundation.org> wrote:
> This is the start of the stable review cycle for the 4.4.120 release.
> There are 34 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 Mar  4 08:44:20 UTC 2018.
> Anything received after that time might be too late.
>
> The whole patch series can be found in one patch at:
>         https://www.kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.4.120-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.4.y
> and the diffstat can be found below.
>
> thanks,
>
> greg k-h


Results from Linaro’s test farm.
No regressions on arm64, arm and x86_64.

NOTE:
qemu-system-x86_64 is added as emulation platform to run all set of tests.

Summary
------------------------------------------------------------------------

kernel: 4.4.120-rc1
git repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
git branch: linux-4.4.y
git commit: 2fd16f09a713e5abaffdc1d8f9ca29a24f542bf9
git describe: v4.4.119-35-g2fd16f09a713
Test details: https://qa-reports.linaro.org/lkft/linux-stable-rc-4.4-oe/build/v4.4.119-35-g2fd16f09a713


No regressions (compared to build v4.4.119)

Boards, architectures and test suites:
-------------------------------------

juno-r2 - arm64
* boot - pass: 20,
* kselftest - pass: 34, skip: 29
* libhugetlbfs - pass: 90, skip: 1
* ltp-cap_bounds-tests - pass: 2,
* ltp-containers-tests - pass: 28, skip: 53
* ltp-fcntl-locktests-tests - pass: 2,
* ltp-filecaps-tests - pass: 2,
* ltp-fs-tests - pass: 61, skip: 2
* ltp-fs_bind-tests - pass: 2,
* ltp-fs_perms_simple-tests - pass: 19,
* ltp-fsx-tests - pass: 2,
* ltp-hugetlb-tests - pass: 22,
* ltp-io-tests - pass: 3,
* ltp-ipc-tests - pass: 9,
* ltp-math-tests - pass: 11,
* ltp-nptl-tests - pass: 2,
* ltp-pty-tests - pass: 4,
* ltp-sched-tests - pass: 10, skip: 4
* ltp-securebits-tests - pass: 4,
* ltp-syscalls-tests - pass: 998, skip: 152
* ltp-timers-tests - pass: 12, skip: 1

qemu_x86_64
* boot - pass: 20,
* kselftest - pass: 54, skip: 26
* libhugetlbfs - pass: 90, skip: 1
* ltp-cap_bounds-tests - pass: 2,
* ltp-containers-tests - pass: 64, skip: 17
* ltp-fcntl-locktests-tests - pass: 2,
* ltp-filecaps-tests - pass: 2,
* ltp-fs-tests - pass: 57, skip: 6
* ltp-fs_bind-tests - pass: 2,
* ltp-fs_perms_simple-tests - pass: 19,
* ltp-fsx-tests - pass: 2,
* ltp-hugetlb-tests - pass: 22,
* ltp-io-tests - pass: 3,
* ltp-ipc-tests - pass: 9,
* ltp-math-tests - pass: 11,
* ltp-nptl-tests - pass: 2,
* ltp-pty-tests - pass: 4,
* ltp-sched-tests - pass: 13, skip: 1
* ltp-securebits-tests - pass: 4,
* ltp-syscalls-tests - pass: 1000, skip: 150
* ltp-timers-tests - pass: 12, skip: 1

x15 - arm
* boot - pass: 20,
* kselftest - pass: 33, skip: 29
* libhugetlbfs - pass: 87, skip: 1
* ltp-cap_bounds-tests - pass: 2,
* ltp-containers-tests - pass: 64, skip: 17
* ltp-fcntl-locktests-tests - pass: 2,
* ltp-filecaps-tests - pass: 2,
* ltp-fs-tests - pass: 61, skip: 2
* ltp-fs_bind-tests - pass: 2,
* ltp-fs_perms_simple-tests - pass: 19,
* ltp-fsx-tests - pass: 2,
* ltp-hugetlb-tests - pass: 20, skip: 2
* ltp-io-tests - pass: 3,
* ltp-ipc-tests - pass: 9,
* ltp-math-tests - pass: 11,
* ltp-nptl-tests - pass: 2,
* ltp-pty-tests - pass: 4,
* ltp-sched-tests - pass: 13, skip: 1
* ltp-securebits-tests - pass: 4,
* ltp-syscalls-tests - pass: 1052, skip: 98
* ltp-timers-tests - pass: 12, skip: 1

x86_64
* boot - pass: 20,
* kselftest - pass: 48, skip: 32
* libhugetlbfs - pass: 90, skip: 1
* ltp-cap_bounds-tests - pass: 2,
* ltp-containers-tests - pass: 64, skip: 17
* ltp-fcntl-locktests-tests - pass: 2,
* ltp-filecaps-tests - pass: 2,
* ltp-fs-tests - pass: 62, skip: 1
* ltp-fs_bind-tests - pass: 2,
* ltp-fs_perms_simple-tests - pass: 19,
* ltp-fsx-tests - pass: 2,
* ltp-hugetlb-tests - pass: 22,
* ltp-io-tests - pass: 3,
* ltp-ipc-tests - pass: 9,
* ltp-math-tests - pass: 11,
* ltp-nptl-tests - pass: 2,
* ltp-pty-tests - pass: 4,
* ltp-sched-tests - pass: 9, skip: 5
* ltp-securebits-tests - pass: 4,
* ltp-syscalls-tests - pass: 1030, skip: 120
* ltp-timers-tests - pass: 12, skip: 1

Hikey test results,

Summary
------------------------------------------------------------------------

kernel: 4.4.120-rc1
git repo: https://git.linaro.org/lkft/arm64-stable-rc.git
git tag: 4.4.120-rc1-hikey-20180302-146
git commit: 014050031eeff243d2cbfa82fb1ae4e815878710
git describe: 4.4.120-rc1-hikey-20180302-146
Test details: https://qa-reports.linaro.org/lkft/linaro-hikey-stable-rc-4.4-oe/build/4.4.120-rc1-hikey-20180302-146


No regressions (compared to build 4.4.119-rc1-hikey-20180227-144)

Boards, architectures and test suites:
-------------------------------------

hi6220-hikey - arm64
* boot - pass: 20,
* kselftest - pass: 31, skip: 32
* libhugetlbfs - pass: 90, skip: 1
* ltp-cap_bounds-tests - pass: 2,
* ltp-containers-tests - pass: 28, skip: 53
* ltp-fcntl-locktests-tests - pass: 2,
* ltp-filecaps-tests - pass: 2,
* ltp-fs-tests - pass: 61, skip: 2
* ltp-fs_bind-tests - pass: 2,
* ltp-fs_perms_simple-tests - pass: 19,
* ltp-fsx-tests - pass: 2,
* ltp-hugetlb-tests - pass: 21, skip: 1
* ltp-io-tests - pass: 3,
* ltp-ipc-tests - pass: 9,
* ltp-math-tests - pass: 11,
* ltp-nptl-tests - pass: 2,
* ltp-pty-tests - pass: 4,
* ltp-sched-tests - pass: 10, skip: 4
* ltp-securebits-tests - pass: 4,
* ltp-syscalls-tests - pass: 996, skip: 154
* ltp-timers-tests - pass: 12, skip: 1

--
Linaro QA (beta)
https://qa-reports.linaro.org

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [PATCH 4.4 00/34] 4.4.120-stable review
  2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
                   ` (36 preceding siblings ...)
  2018-03-02 16:59 ` Naresh Kamboju
@ 2018-03-02 17:16 ` Guenter Roeck
  2018-03-02 21:30 ` Shuah Khan
  38 siblings, 0 replies; 53+ messages in thread
From: Guenter Roeck @ 2018-03-02 17:16 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: linux-kernel, torvalds, akpm, shuahkh, patches, ben.hutchings,
	lkft-triage, stable

On Fri, Mar 02, 2018 at 09:50:56AM +0100, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 4.4.120 release.
> There are 34 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 Mar  4 08:44:20 UTC 2018.
> Anything received after that time might be too late.
> 

Build results:
	total: 145 pass: 145 fail: 0
Qemu test results:
	total: 125 pass: 125 fail: 0

Details are available at http://kerneltests.org/builders.

Guenter

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [PATCH 4.4 00/34] 4.4.120-stable review
  2018-03-02 12:22 ` [PATCH 4.4 00/34] 4.4.120-stable review Nathan Chancellor
@ 2018-03-02 18:53   ` Greg Kroah-Hartman
  0 siblings, 0 replies; 53+ messages in thread
From: Greg Kroah-Hartman @ 2018-03-02 18:53 UTC (permalink / raw)
  To: Nathan Chancellor
  Cc: linux-kernel, torvalds, akpm, linux, shuahkh, patches,
	ben.hutchings, lkft-triage, stable

On Fri, Mar 02, 2018 at 05:22:38AM -0700, Nathan Chancellor wrote:
> On Fri, Mar 02, 2018 at 09:50:56AM +0100, Greg Kroah-Hartman wrote:
> > This is the start of the stable review cycle for the 4.4.120 release.
> > There are 34 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 Mar  4 08:44:20 UTC 2018.
> > Anything received after that time might be too late.
> > 
> > The whole patch series can be found in one patch at:
> > 	https://www.kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.4.120-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.4.y
> > and the diffstat can be found below.
> > 
> > thanks,
> > 
> > greg k-h
> >
> 
> Merged, compiled, and flashed onto my Pixel 2 XL and OnePlus 5.
> 
> No initial issues noticed in dmesg or general usage.

Wonderful, thanks for testing and letting me know.

greg k-h

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [PATCH 4.4 00/34] 4.4.120-stable review
  2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
                   ` (37 preceding siblings ...)
  2018-03-02 17:16 ` Guenter Roeck
@ 2018-03-02 21:30 ` Shuah Khan
  38 siblings, 0 replies; 53+ messages in thread
From: Shuah Khan @ 2018-03-02 21:30 UTC (permalink / raw)
  To: Greg Kroah-Hartman, linux-kernel
  Cc: torvalds, akpm, linux, patches, ben.hutchings, lkft-triage,
	stable, Shuah Khan

On 03/02/2018 01:50 AM, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 4.4.120 release.
> There are 34 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 Mar  4 08:44:20 UTC 2018.
> Anything received after that time might be too late.
> 
> The whole patch series can be found in one patch at:
> 	https://www.kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.4.120-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.4.y
> and the diffstat can be found below.
> 
> thanks,
> 
> greg k-h
> 

Compiled and booted on my test system. No dmesg regressions.

thanks,
-- Shuah

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [PATCH 4.4 03/34] mtd: nand: gpmi: Fix failure when a erased page has a bitflip at BBM
  2018-03-02  8:50 ` [PATCH 4.4 03/34] mtd: nand: gpmi: Fix failure when a erased page has a bitflip at BBM Greg Kroah-Hartman
@ 2018-03-06 21:22   ` Ben Hutchings
  2018-03-07  8:12     ` Boris Brezillon
  0 siblings, 1 reply; 53+ messages in thread
From: Ben Hutchings @ 2018-03-06 21:22 UTC (permalink / raw)
  To: Greg Kroah-Hartman, linux-kernel
  Cc: stable, Sascha Hauer, Richard Weinberger, Boris Brezillon, Sasha Levin

On Fri, 2018-03-02 at 09:50 +0100, Greg Kroah-Hartman wrote:
> 4.4-stable review patch.  If anyone has any objections, please let me know.
> 
> ------------------
> 
> From: Sascha Hauer <s.hauer@pengutronix.de>
> 
> 
> [ Upstream commit fdf2e821052958a114618a95ab18a300d0b080cb ]
> 
> When erased subpages are read then the BCH decoder returns STATUS_ERASED
> if they are all empty, or STATUS_UNCORRECTABLE if there are bitflips.
> When there are bitflips, we have to set these bits again to show the
> upper layers a completely erased page. When a bitflip happens in the
> exact byte where the bad block marker is, then this byte is swapped
> with another byte in block_mark_swapping(). The correction code then
> detects a bitflip in another subpage and no longer corrects the bitflip
> where it really happens.
[...]

This seesm to be a bug fix for commit bd2e778c9ee3 "gpmi-nand: Handle
ECC Errors in erased pages".  That's not in 4.4 so the bug fix is not
needed, though it doesn't appear to do any harm.

Ben.

-- 
Ben Hutchings
Software Developer, Codethink Ltd.

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [PATCH 4.4 06/34] sget(): handle failures of register_shrinker()
  2018-03-02  8:51 ` [PATCH 4.4 06/34] sget(): handle failures of register_shrinker() Greg Kroah-Hartman
@ 2018-03-07  2:16   ` Ben Hutchings
  0 siblings, 0 replies; 53+ messages in thread
From: Ben Hutchings @ 2018-03-07  2:16 UTC (permalink / raw)
  To: Al Viro; +Cc: stable, Sasha Levin, Greg Kroah-Hartman, LKML

On Fri, 2018-03-02 at 09:51 +0100, Greg Kroah-Hartman wrote:
> 4.4-stable review patch.  If anyone has any objections, please let me know.
> 
> ------------------
> 
> From: Al Viro <viro@zeniv.linux.org.uk>
> 
> 
> [ Upstream commit 9ee332d99e4d5a97548943b81c54668450ce641b ]
> 
> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
> Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> ---
>  fs/super.c |    6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> --- a/fs/super.c
> +++ b/fs/super.c
> @@ -497,7 +497,11 @@ retry:
>  	hlist_add_head(&s->s_instances, &type->fs_supers);
>  	spin_unlock(&sb_lock);
>  	get_filesystem(type);
> -	register_shrinker(&s->s_shrink);
> +	err = register_shrinker(&s->s_shrink);
> +	if (err) {
> +		deactivate_locked_super(s);

But deactivate_locked_super() will call unregister_shrinker(), which
doesn't look safe if register_shrinker() failed.

Ben.

> +		s = ERR_PTR(err);
> +	}
>  	return s;
>  }
>  
> 
> 
> 
-- 
Ben Hutchings
Software Developer, Codethink Ltd.

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [PATCH 4.4 03/34] mtd: nand: gpmi: Fix failure when a erased page has a bitflip at BBM
  2018-03-06 21:22   ` Ben Hutchings
@ 2018-03-07  8:12     ` Boris Brezillon
  2018-03-07  8:19       ` Richard Weinberger
  2018-03-07 14:58       ` Sasha Levin
  0 siblings, 2 replies; 53+ messages in thread
From: Boris Brezillon @ 2018-03-07  8:12 UTC (permalink / raw)
  To: Ben Hutchings
  Cc: Greg Kroah-Hartman, linux-kernel, stable, Sascha Hauer,
	Richard Weinberger, Boris Brezillon, Sasha Levin

On Tue, 06 Mar 2018 21:22:30 +0000
Ben Hutchings <ben.hutchings@codethink.co.uk> wrote:

> On Fri, 2018-03-02 at 09:50 +0100, Greg Kroah-Hartman wrote:
> > 4.4-stable review patch.  If anyone has any objections, please let me know.
> > 
> > ------------------
> > 
> > From: Sascha Hauer <s.hauer@pengutronix.de>
> > 
> > 
> > [ Upstream commit fdf2e821052958a114618a95ab18a300d0b080cb ]
> > 
> > When erased subpages are read then the BCH decoder returns STATUS_ERASED
> > if they are all empty, or STATUS_UNCORRECTABLE if there are bitflips.
> > When there are bitflips, we have to set these bits again to show the
> > upper layers a completely erased page. When a bitflip happens in the
> > exact byte where the bad block marker is, then this byte is swapped
> > with another byte in block_mark_swapping(). The correction code then
> > detects a bitflip in another subpage and no longer corrects the bitflip
> > where it really happens.  
> [...]
> 
> This seesm to be a bug fix for commit bd2e778c9ee3 "gpmi-nand: Handle
> ECC Errors in erased pages".  That's not in 4.4 so the bug fix is not
> needed, though it doesn't appear to do any harm.

I wonder why the fix was backported to stable releases in the first
place. AFAICS, there's no Cc-stable or Fixes tag in the original
commit. It's probably something in the backport-to-stable process I'm
not aware of.

Anyway, not an issues since the changes seems to be harmless.

-- 
Boris Brezillon, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [PATCH 4.4 03/34] mtd: nand: gpmi: Fix failure when a erased page has a bitflip at BBM
  2018-03-07  8:12     ` Boris Brezillon
@ 2018-03-07  8:19       ` Richard Weinberger
  2018-03-07 14:58       ` Sasha Levin
  1 sibling, 0 replies; 53+ messages in thread
From: Richard Weinberger @ 2018-03-07  8:19 UTC (permalink / raw)
  To: Boris Brezillon
  Cc: Ben Hutchings, Greg Kroah-Hartman, linux-kernel, stable,
	Sascha Hauer, Boris Brezillon, Sasha Levin

Boris,

Am Mittwoch, 7. März 2018, 09:12:36 CET schrieb Boris Brezillon:
> On Tue, 06 Mar 2018 21:22:30 +0000
> 
> Ben Hutchings <ben.hutchings@codethink.co.uk> wrote:
> > On Fri, 2018-03-02 at 09:50 +0100, Greg Kroah-Hartman wrote:
> > > 4.4-stable review patch.  If anyone has any objections, please let me
> > > know.
> > > 
> > > ------------------
> > > 
> > > From: Sascha Hauer <s.hauer@pengutronix.de>
> > > 
> > > 
> > > [ Upstream commit fdf2e821052958a114618a95ab18a300d0b080cb ]
> > > 
> > > When erased subpages are read then the BCH decoder returns STATUS_ERASED
> > > if they are all empty, or STATUS_UNCORRECTABLE if there are bitflips.
> > > When there are bitflips, we have to set these bits again to show the
> > > upper layers a completely erased page. When a bitflip happens in the
> > > exact byte where the bad block marker is, then this byte is swapped
> > > with another byte in block_mark_swapping(). The correction code then
> > > detects a bitflip in another subpage and no longer corrects the bitflip
> > > where it really happens.
> > 
> > [...]
> > 
> > This seesm to be a bug fix for commit bd2e778c9ee3 "gpmi-nand: Handle
> > ECC Errors in erased pages".  That's not in 4.4 so the bug fix is not
> > needed, though it doesn't appear to do any harm.
> 
> I wonder why the fix was backported to stable releases in the first
> place. AFAICS, there's no Cc-stable or Fixes tag in the original
> commit. It's probably something in the backport-to-stable process I'm
> not aware of.

It was auto selected by a stable script.

Thanks,
//richard

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [PATCH 4.4 03/34] mtd: nand: gpmi: Fix failure when a erased page has a bitflip at BBM
  2018-03-07  8:12     ` Boris Brezillon
  2018-03-07  8:19       ` Richard Weinberger
@ 2018-03-07 14:58       ` Sasha Levin
  1 sibling, 0 replies; 53+ messages in thread
From: Sasha Levin @ 2018-03-07 14:58 UTC (permalink / raw)
  To: Boris Brezillon
  Cc: Ben Hutchings, Greg Kroah-Hartman, linux-kernel, stable,
	Sascha Hauer, Richard Weinberger, Boris Brezillon

On Wed, Mar 07, 2018 at 09:12:36AM +0100, Boris Brezillon wrote:
>On Tue, 06 Mar 2018 21:22:30 +0000
>Ben Hutchings <ben.hutchings@codethink.co.uk> wrote:
>
>> On Fri, 2018-03-02 at 09:50 +0100, Greg Kroah-Hartman wrote:
>> > 4.4-stable review patch.  If anyone has any objections, please let me know.
>> >
>> > ------------------
>> >
>> > From: Sascha Hauer <s.hauer@pengutronix.de>
>> >
>> >
>> > [ Upstream commit fdf2e821052958a114618a95ab18a300d0b080cb ]
>> >
>> > When erased subpages are read then the BCH decoder returns STATUS_ERASED
>> > if they are all empty, or STATUS_UNCORRECTABLE if there are bitflips.
>> > When there are bitflips, we have to set these bits again to show the
>> > upper layers a completely erased page. When a bitflip happens in the
>> > exact byte where the bad block marker is, then this byte is swapped
>> > with another byte in block_mark_swapping(). The correction code then
>> > detects a bitflip in another subpage and no longer corrects the bitflip
>> > where it really happens.
>> [...]
>>
>> This seesm to be a bug fix for commit bd2e778c9ee3 "gpmi-nand: Handle
>> ECC Errors in erased pages".  That's not in 4.4 so the bug fix is not
>> needed, though it doesn't appear to do any harm.
>
>I wonder why the fix was backported to stable releases in the first
>place. AFAICS, there's no Cc-stable or Fixes tag in the original
>commit. It's probably something in the backport-to-stable process I'm
>not aware of.

It's an attempt to mine kernel commits for commits that should go into
stable trees but were not marked as such.

Thanks again for the review!

-- 

Thanks,
Sasha

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [PATCH 4.4 16/34] led: core: Fix brightness setting when setting delay_off=0
  2018-03-02  8:51 ` [PATCH 4.4 16/34] led: core: Fix brightness setting when setting delay_off=0 Greg Kroah-Hartman
@ 2018-03-07 15:30   ` Ben Hutchings
  2018-03-07 15:32   ` Ben Hutchings
  1 sibling, 0 replies; 53+ messages in thread
From: Ben Hutchings @ 2018-03-07 15:30 UTC (permalink / raw)
  To: Greg Kroah-Hartman, linux-kernel; +Cc: stable

On Fri, 2018-03-02 at 09:51 +0100, Greg Kroah-Hartman wrote:
> 4.4-stable review patch.  If anyone has any objections, please let me know.
> 
> ------------------
> 
> From: Matthieu CASTET <matthieu.castet@parrot.com>
> 
> 
> [ Upstream commit 2b83ff96f51d0b039c4561b9f95c824d7bddb85c ]
> 
> With the current code, the following sequence won't work :
> echo timer > trigger
> 
> echo 0 >  delay_off
> * at this point we call
> ** led_delay_off_store
> ** led_blink_set
[...]

The commit message got cut truncated here, but the upstream commit
message refers to a LED_BLINK_SW flag which is not used in 4.4.  So
this fix probably isn't needed, though I can't tell whether it does any
harm.

Ben.

-- 
Ben Hutchings
Software Developer, Codethink Ltd.

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [PATCH 4.4 16/34] led: core: Fix brightness setting when setting delay_off=0
  2018-03-02  8:51 ` [PATCH 4.4 16/34] led: core: Fix brightness setting when setting delay_off=0 Greg Kroah-Hartman
  2018-03-07 15:30   ` Ben Hutchings
@ 2018-03-07 15:32   ` Ben Hutchings
  2018-03-07 20:39     ` Jacek Anaszewski
  1 sibling, 1 reply; 53+ messages in thread
From: Ben Hutchings @ 2018-03-07 15:32 UTC (permalink / raw)
  To: Greg Kroah-Hartman, linux-kernel, linux-leds, Matthieu CASTET,
	Jacek Anaszewski
  Cc: stable

On Fri, 2018-03-02 at 09:51 +0100, Greg Kroah-Hartman wrote:
> 4.4-stable review patch.  If anyone has any objections, please let me
> know.
> 
> ------------------
> 
> From: Matthieu CASTET <matthieu.castet@parrot.com>
> 
> 
> [ Upstream commit 2b83ff96f51d0b039c4561b9f95c824d7bddb85c ]
> 
> With the current code, the following sequence won't work :
> echo timer > trigger
> 
> echo 0 >  delay_off
> * at this point we call
> ** led_delay_off_store
> ** led_blink_set
[...]

The commit message got cut truncated here, which resulted in addresses
being omitted when it was sent out for review.  The upstream commit
message refers to a LED_BLINK_SW flag which is not used in 4.4.  So
this fix probably isn't needed, though I can't tell whether it does any
harm.

Ben.

-- 
Ben Hutchings
Software Developer, Codethink Ltd.

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [PATCH 4.4 16/34] led: core: Fix brightness setting when setting delay_off=0
  2018-03-07 15:32   ` Ben Hutchings
@ 2018-03-07 20:39     ` Jacek Anaszewski
  2018-03-08 17:24       ` Greg Kroah-Hartman
  0 siblings, 1 reply; 53+ messages in thread
From: Jacek Anaszewski @ 2018-03-07 20:39 UTC (permalink / raw)
  To: Ben Hutchings, Greg Kroah-Hartman, linux-kernel, linux-leds,
	Matthieu CASTET
  Cc: stable

Hi Ben,

On 03/07/2018 04:32 PM, Ben Hutchings wrote:
> On Fri, 2018-03-02 at 09:51 +0100, Greg Kroah-Hartman wrote:
>> 4.4-stable review patch.  If anyone has any objections, please let me
>> know.
>>
>> ------------------
>>
>> From: Matthieu CASTET <matthieu.castet@parrot.com>
>>
>>
>> [ Upstream commit 2b83ff96f51d0b039c4561b9f95c824d7bddb85c ]
>>
>> With the current code, the following sequence won't work :
>> echo timer > trigger
>>
>> echo 0 >  delay_off
>> * at this point we call
>> ** led_delay_off_store
>> ** led_blink_set
> [...]
> 
> The commit message got cut truncated here, which resulted in addresses
> being omitted when it was sent out for review.  The upstream commit
> message refers to a LED_BLINK_SW flag which is not used in 4.4.  So
> this fix probably isn't needed, though I can't tell whether it does any
> harm.

We discussed it in [0]. This patch is not needed for 4.4 and what's
more more it is harmful. It introduces a bug, fixed in [1].

[0] https://lkml.org/lkml/2018/2/6/726
[1[ https://patchwork.kernel.org/patch/10253933/

-- 
Best regards,
Jacek Anaszewski

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [PATCH 4.4 16/34] led: core: Fix brightness setting when setting delay_off=0
  2018-03-07 20:39     ` Jacek Anaszewski
@ 2018-03-08 17:24       ` Greg Kroah-Hartman
  2018-03-08 18:04         ` Pavel Machek
  2018-03-08 20:48         ` Jacek Anaszewski
  0 siblings, 2 replies; 53+ messages in thread
From: Greg Kroah-Hartman @ 2018-03-08 17:24 UTC (permalink / raw)
  To: Jacek Anaszewski
  Cc: Ben Hutchings, linux-kernel, linux-leds, Matthieu CASTET, stable

On Wed, Mar 07, 2018 at 09:39:08PM +0100, Jacek Anaszewski wrote:
> Hi Ben,
> 
> On 03/07/2018 04:32 PM, Ben Hutchings wrote:
> > On Fri, 2018-03-02 at 09:51 +0100, Greg Kroah-Hartman wrote:
> >> 4.4-stable review patch.  If anyone has any objections, please let me
> >> know.
> >>
> >> ------------------
> >>
> >> From: Matthieu CASTET <matthieu.castet@parrot.com>
> >>
> >>
> >> [ Upstream commit 2b83ff96f51d0b039c4561b9f95c824d7bddb85c ]
> >>
> >> With the current code, the following sequence won't work :
> >> echo timer > trigger
> >>
> >> echo 0 >  delay_off
> >> * at this point we call
> >> ** led_delay_off_store
> >> ** led_blink_set
> > [...]
> > 
> > The commit message got cut truncated here, which resulted in addresses
> > being omitted when it was sent out for review.  The upstream commit
> > message refers to a LED_BLINK_SW flag which is not used in 4.4.  So
> > this fix probably isn't needed, though I can't tell whether it does any
> > harm.
> 
> We discussed it in [0]. This patch is not needed for 4.4 and what's
> more more it is harmful. It introduces a bug, fixed in [1].
> 
> [0] https://lkml.org/lkml/2018/2/6/726
> [1[ https://patchwork.kernel.org/patch/10253933/

So, did I mess something up here?  Am I missing some patch that I need
to apply, or do I need to revert something?

confused,

greg k-h

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [PATCH 4.4 16/34] led: core: Fix brightness setting when setting delay_off=0
  2018-03-08 17:24       ` Greg Kroah-Hartman
@ 2018-03-08 18:04         ` Pavel Machek
  2018-03-08 20:48         ` Jacek Anaszewski
  1 sibling, 0 replies; 53+ messages in thread
From: Pavel Machek @ 2018-03-08 18:04 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Jacek Anaszewski, Ben Hutchings, linux-kernel, linux-leds,
	Matthieu CASTET, stable

[-- Attachment #1: Type: text/plain, Size: 1874 bytes --]

On Thu 2018-03-08 09:24:01, Greg Kroah-Hartman wrote:
> On Wed, Mar 07, 2018 at 09:39:08PM +0100, Jacek Anaszewski wrote:
> > Hi Ben,
> > 
> > On 03/07/2018 04:32 PM, Ben Hutchings wrote:
> > > On Fri, 2018-03-02 at 09:51 +0100, Greg Kroah-Hartman wrote:
> > >> 4.4-stable review patch.  If anyone has any objections, please let me
> > >> know.
> > >>
> > >> ------------------
> > >>
> > >> From: Matthieu CASTET <matthieu.castet@parrot.com>
> > >>
> > >>
> > >> [ Upstream commit 2b83ff96f51d0b039c4561b9f95c824d7bddb85c ]
> > >>
> > >> With the current code, the following sequence won't work :
> > >> echo timer > trigger
> > >>
> > >> echo 0 >  delay_off
> > >> * at this point we call
> > >> ** led_delay_off_store
> > >> ** led_blink_set
> > > [...]
> > > 
> > > The commit message got cut truncated here, which resulted in addresses
> > > being omitted when it was sent out for review.  The upstream commit
> > > message refers to a LED_BLINK_SW flag which is not used in 4.4.  So
> > > this fix probably isn't needed, though I can't tell whether it does any
> > > harm.
> > 
> > We discussed it in [0]. This patch is not needed for 4.4 and what's
> > more more it is harmful. It introduces a bug, fixed in [1].
> > 
> > [0] https://lkml.org/lkml/2018/2/6/726
> > [1[ https://patchwork.kernel.org/patch/10253933/
> 
> So, did I mess something up here?  Am I missing some patch that I need
> to apply, or do I need to revert something?

Well, patch [PATCH 4.4 16/34] led: core: Fix brightness setting when setting delay_off=0
is not suitable for -stable. It is not needed there.

(And it is also buggy and does not fix serious-enough problem to
warrant -stable).

									Pavel

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [PATCH 4.4 16/34] led: core: Fix brightness setting when setting delay_off=0
  2018-03-08 17:24       ` Greg Kroah-Hartman
  2018-03-08 18:04         ` Pavel Machek
@ 2018-03-08 20:48         ` Jacek Anaszewski
  2018-03-09  1:09           ` Greg Kroah-Hartman
  1 sibling, 1 reply; 53+ messages in thread
From: Jacek Anaszewski @ 2018-03-08 20:48 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Ben Hutchings, linux-kernel, linux-leds, Matthieu CASTET, stable

On 03/08/2018 06:24 PM, Greg Kroah-Hartman wrote:
> On Wed, Mar 07, 2018 at 09:39:08PM +0100, Jacek Anaszewski wrote:
>> Hi Ben,
>>
>> On 03/07/2018 04:32 PM, Ben Hutchings wrote:
>>> On Fri, 2018-03-02 at 09:51 +0100, Greg Kroah-Hartman wrote:
>>>> 4.4-stable review patch.  If anyone has any objections, please let me
>>>> know.
>>>>
>>>> ------------------
>>>>
>>>> From: Matthieu CASTET <matthieu.castet@parrot.com>
>>>>
>>>>
>>>> [ Upstream commit 2b83ff96f51d0b039c4561b9f95c824d7bddb85c ]
>>>>
>>>> With the current code, the following sequence won't work :
>>>> echo timer > trigger
>>>>
>>>> echo 0 >  delay_off
>>>> * at this point we call
>>>> ** led_delay_off_store
>>>> ** led_blink_set
>>> [...]
>>>
>>> The commit message got cut truncated here, which resulted in addresses
>>> being omitted when it was sent out for review.  The upstream commit
>>> message refers to a LED_BLINK_SW flag which is not used in 4.4.  So
>>> this fix probably isn't needed, though I can't tell whether it does any
>>> harm.
>>
>> We discussed it in [0]. This patch is not needed for 4.4 and what's
>> more more it is harmful. It introduces a bug, fixed in [1].
>>
>> [0] https://lkml.org/lkml/2018/2/6/726
>> [1[ https://patchwork.kernel.org/patch/10253933/
> 
> So, did I mess something up here?  Am I missing some patch that I need
> to apply, or do I need to revert something?
> 
> confused,

It needs to be reverted in 4.4-stable, and Ben's patch [0] does what's
needed.

[0] https://www.spinics.net/lists/stable/msg223656.html

-- 
Best regards,
Jacek Anaszewski

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [PATCH 4.4 16/34] led: core: Fix brightness setting when setting delay_off=0
  2018-03-08 20:48         ` Jacek Anaszewski
@ 2018-03-09  1:09           ` Greg Kroah-Hartman
  0 siblings, 0 replies; 53+ messages in thread
From: Greg Kroah-Hartman @ 2018-03-09  1:09 UTC (permalink / raw)
  To: Jacek Anaszewski
  Cc: Ben Hutchings, linux-kernel, linux-leds, Matthieu CASTET, stable

On Thu, Mar 08, 2018 at 09:48:08PM +0100, Jacek Anaszewski wrote:
> On 03/08/2018 06:24 PM, Greg Kroah-Hartman wrote:
> > On Wed, Mar 07, 2018 at 09:39:08PM +0100, Jacek Anaszewski wrote:
> >> Hi Ben,
> >>
> >> On 03/07/2018 04:32 PM, Ben Hutchings wrote:
> >>> On Fri, 2018-03-02 at 09:51 +0100, Greg Kroah-Hartman wrote:
> >>>> 4.4-stable review patch.  If anyone has any objections, please let me
> >>>> know.
> >>>>
> >>>> ------------------
> >>>>
> >>>> From: Matthieu CASTET <matthieu.castet@parrot.com>
> >>>>
> >>>>
> >>>> [ Upstream commit 2b83ff96f51d0b039c4561b9f95c824d7bddb85c ]
> >>>>
> >>>> With the current code, the following sequence won't work :
> >>>> echo timer > trigger
> >>>>
> >>>> echo 0 >  delay_off
> >>>> * at this point we call
> >>>> ** led_delay_off_store
> >>>> ** led_blink_set
> >>> [...]
> >>>
> >>> The commit message got cut truncated here, which resulted in addresses
> >>> being omitted when it was sent out for review.  The upstream commit
> >>> message refers to a LED_BLINK_SW flag which is not used in 4.4.  So
> >>> this fix probably isn't needed, though I can't tell whether it does any
> >>> harm.
> >>
> >> We discussed it in [0]. This patch is not needed for 4.4 and what's
> >> more more it is harmful. It introduces a bug, fixed in [1].
> >>
> >> [0] https://lkml.org/lkml/2018/2/6/726
> >> [1[ https://patchwork.kernel.org/patch/10253933/
> > 
> > So, did I mess something up here?  Am I missing some patch that I need
> > to apply, or do I need to revert something?
> > 
> > confused,
> 
> It needs to be reverted in 4.4-stable, and Ben's patch [0] does what's
> needed.
> 
> [0] https://www.spinics.net/lists/stable/msg223656.html

Ah great, that's now queued up.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 53+ messages in thread

end of thread, other threads:[~2018-03-09  1:09 UTC | newest]

Thread overview: 53+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-02  8:50 [PATCH 4.4 00/34] 4.4.120-stable review Greg Kroah-Hartman
2018-03-02  8:50 ` [PATCH 4.4 01/34] hrtimer: Ensure POSIX compliance (relative CLOCK_REALTIME hrtimers) Greg Kroah-Hartman
2018-03-02  8:50 ` [PATCH 4.4 02/34] f2fs: fix a bug caused by NULL extent tree Greg Kroah-Hartman
2018-03-02  8:50 ` [PATCH 4.4 03/34] mtd: nand: gpmi: Fix failure when a erased page has a bitflip at BBM Greg Kroah-Hartman
2018-03-06 21:22   ` Ben Hutchings
2018-03-07  8:12     ` Boris Brezillon
2018-03-07  8:19       ` Richard Weinberger
2018-03-07 14:58       ` Sasha Levin
2018-03-02  8:51 ` [PATCH 4.4 04/34] ipv6: icmp6: Allow icmp messages to be looped back Greg Kroah-Hartman
2018-03-02  8:51 ` [PATCH 4.4 05/34] ARM: 8731/1: Fix csum_partial_copy_from_user() stack mismatch Greg Kroah-Hartman
2018-03-02  8:51 ` [PATCH 4.4 06/34] sget(): handle failures of register_shrinker() Greg Kroah-Hartman
2018-03-07  2:16   ` Ben Hutchings
2018-03-02  8:51 ` [PATCH 4.4 07/34] drm/nouveau/pci: do a msi rearm on init Greg Kroah-Hartman
2018-03-02  8:51 ` [PATCH 4.4 08/34] spi: atmel: fixed spin_lock usage inside atmel_spi_remove Greg Kroah-Hartman
2018-03-02  8:51 ` [PATCH 4.4 09/34] net: arc_emac: fix arc_emac_rx() error paths Greg Kroah-Hartman
2018-03-02  8:51 ` [PATCH 4.4 10/34] scsi: storvsc: Fix scsi_cmd error assignments in storvsc_handle_error Greg Kroah-Hartman
2018-03-02  8:51 ` [PATCH 4.4 11/34] ARM: dts: ls1021a: fix incorrect clock references Greg Kroah-Hartman
2018-03-02  8:51 ` [PATCH 4.4 12/34] lib/mpi: Fix umul_ppmm() for MIPS64r6 Greg Kroah-Hartman
2018-03-02  8:51 ` [PATCH 4.4 13/34] tg3: Add workaround to restrict 5762 MRRS to 2048 Greg Kroah-Hartman
2018-03-02  8:51 ` [PATCH 4.4 14/34] tg3: Enable PHY reset in MTU change path for 5720 Greg Kroah-Hartman
2018-03-02  8:51 ` [PATCH 4.4 15/34] bnx2x: Improve reliability in case of nested PCI errors Greg Kroah-Hartman
2018-03-02  8:51 ` [PATCH 4.4 16/34] led: core: Fix brightness setting when setting delay_off=0 Greg Kroah-Hartman
2018-03-07 15:30   ` Ben Hutchings
2018-03-07 15:32   ` Ben Hutchings
2018-03-07 20:39     ` Jacek Anaszewski
2018-03-08 17:24       ` Greg Kroah-Hartman
2018-03-08 18:04         ` Pavel Machek
2018-03-08 20:48         ` Jacek Anaszewski
2018-03-09  1:09           ` Greg Kroah-Hartman
2018-03-02  8:51 ` [PATCH 4.4 17/34] s390/dasd: fix wrongly assigned configuration data Greg Kroah-Hartman
2018-03-02  8:51 ` [PATCH 4.4 18/34] IB/mlx4: Fix mlx4_ib_alloc_mr error flow Greg Kroah-Hartman
2018-03-02  8:51 ` [PATCH 4.4 19/34] IB/ipoib: Fix race condition in neigh creation Greg Kroah-Hartman
2018-03-02  8:51 ` [PATCH 4.4 20/34] xfs: quota: fix missed destroy of qi_tree_lock Greg Kroah-Hartman
2018-03-02  8:51 ` [PATCH 4.4 21/34] xfs: quota: check result of register_shrinker() Greg Kroah-Hartman
2018-03-02  8:51 ` [PATCH 4.4 22/34] e1000: fix disabling already-disabled warning Greg Kroah-Hartman
2018-03-02  8:51 ` [PATCH 4.4 23/34] drm/ttm: check the return value of kzalloc Greg Kroah-Hartman
2018-03-02  8:51 ` [PATCH 4.4 24/34] mac80211: mesh: drop frames appearing to be from us Greg Kroah-Hartman
2018-03-02  8:51 ` [PATCH 4.4 25/34] can: flex_can: Correct the checking for frame length in flexcan_start_xmit() Greg Kroah-Hartman
2018-03-02  8:51 ` [PATCH 4.4 26/34] bnxt_en: Fix the Invalid VF id check in bnxt_vf_ndo_prep routine Greg Kroah-Hartman
2018-03-02  8:51 ` [PATCH 4.4 27/34] xen-netfront: enable device after manual module load Greg Kroah-Hartman
2018-03-02  8:51 ` [PATCH 4.4 28/34] mdio-sun4i: Fix a memory leak Greg Kroah-Hartman
2018-03-02  8:51 ` [PATCH 4.4 29/34] SolutionEngine771x: fix Ether platform data Greg Kroah-Hartman
2018-03-02  8:51 ` [PATCH 4.4 30/34] xen/gntdev: Fix off-by-one error when unmapping with holes Greg Kroah-Hartman
2018-03-02  8:51 ` [PATCH 4.4 31/34] xen/gntdev: Fix partial gntdev_mmap() cleanup Greg Kroah-Hartman
2018-03-02  8:51 ` [PATCH 4.4 32/34] sctp: make use of pre-calculated len Greg Kroah-Hartman
2018-03-02  8:51 ` [PATCH 4.4 33/34] net: gianfar_ptp: move set_fipers() to spinlock protecting area Greg Kroah-Hartman
2018-03-02  8:51 ` [PATCH 4.4 34/34] MIPS: Implement __multi3 for GCC7 MIPS64r6 builds Greg Kroah-Hartman
2018-03-02 12:22 ` [PATCH 4.4 00/34] 4.4.120-stable review Nathan Chancellor
2018-03-02 18:53   ` Greg Kroah-Hartman
2018-03-02 13:58 ` kernelci.org bot
2018-03-02 16:59 ` Naresh Kamboju
2018-03-02 17:16 ` Guenter Roeck
2018-03-02 21:30 ` Shuah Khan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).