stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 4.4 00/92] 4.4.206-stable review
@ 2019-12-04 17:49 Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 01/92] ASoC: compress: fix unsigned integer overflow check Greg Kroah-Hartman
                   ` (95 more replies)
  0 siblings, 96 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, torvalds, akpm, linux, shuah, patches,
	ben.hutchings, lkft-triage, stable

This is the start of the stable review cycle for the 4.4.206 release.
There are 92 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 Fri, 06 Dec 2019 17:42:37 +0000.
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.206-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.206-rc1

Hans de Goede <hdegoede@redhat.com>
    platform/x86: hp-wmi: Fix ACPI errors caused by too small buffer

Lionel Debieve <lionel.debieve@st.com>
    hwrng: stm32 - fix unbalanced pm_runtime_enable

Candle Sun <candle.sun@unisoc.com>
    HID: core: check whether Usage Page item is after Usage ID items

Dust Li <dust.li@linux.alibaba.com>
    net: sched: fix `tc -s class show` no bstats on class with nolock subqueues

John Rutherford <john.rutherford@dektech.com.au>
    tipc: fix link name length check

Paolo Abeni <pabeni@redhat.com>
    openvswitch: remove another BUG_ON()

Paolo Abeni <pabeni@redhat.com>
    openvswitch: drop unneeded BUG_ON() in ovs_flow_cmd_build_info()

Jouni Hogander <jouni.hogander@unikie.com>
    slip: Fix use-after-free Read in slip_open

Paolo Abeni <pabeni@redhat.com>
    openvswitch: fix flow command message size

Menglong Dong <dong.menglong@zte.com.cn>
    macvlan: schedule bc_work even if error

Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    pwm: Clear chip_data in pwm_put()

Luca Ceresoli <luca@lucaceresoli.net>
    net: macb: fix error format in dev_err()

Eugen Hristev <eugen.hristev@microchip.com>
    media: v4l2-ctrl: fix flags for DO_WHITE_BALANCE

Alexander Usyskin <alexander.usyskin@intel.com>
    mei: bus: prefix device names on bus with the bus name

Fabio D'Urso <fabiodurso@hotmail.it>
    USB: serial: ftdi_sio: add device IDs for U-Blox C099-F9P

Pan Bian <bianpan2016@163.com>
    staging: rtl8192e: fix potential use after free

Boris Brezillon <bbrezillon@kernel.org>
    mtd: Remove a debug trace in mtdpart.c

Gen Zhang <blackgod016574@gmail.com>
    powerpc/pseries/dlpar: Fix a missing check in dlpar_parse_cc_property()

John Garry <john.garry@huawei.com>
    scsi: libsas: Check SMP PHY control function result

James Morse <james.morse@arm.com>
    ACPI / APEI: Switch estatus pool to use vmalloc memory

John Garry <john.garry@huawei.com>
    scsi: libsas: Support SATA PHY connection rate unmatch fixing during discovery

Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    net: dev: Use unsigned integer as an argument to left-shift

Eric Dumazet <edumazet@google.com>
    net: fix possible overflow in __sk_mem_raise_allocated()

Bert Kenward <bkenward@solarflare.com>
    sfc: initialise found bitmap in efx_ef10_mtd_probe

Hoang Le <hoang.h.le@dektech.com.au>
    tipc: fix skb may be leaky in tipc_link_input

Johannes Berg <johannes.berg@intel.com>
    decnet: fix DN_IFREQ_SIZE

Edward Cree <ecree@solarflare.com>
    sfc: suppress duplicate nvmem partition types in efx_ef10_mtd_probe

Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
    net/core/neighbour: fix kmemleak minimal reference count for hash tables

Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
    net/core/neighbour: tell kmemleak about hash tables

Gustavo A. R. Silva <gustavo@embeddedor.com>
    tipc: fix memory leak in tipc_nl_compat_publ_dump

Boris Brezillon <bbrezillon@kernel.org>
    mtd: Check add_mtd_device() ret code

Olof Johansson <olof@lixom.net>
    lib/genalloc.c: include vmalloc.h

Huang Shijie <sjhuang@iluvatar.ai>
    lib/genalloc.c: use vzalloc_node() to allocate the bitmap

Junxiao Bi <junxiao.bi@oracle.com>
    ocfs2: clear journal dirty flag after shutdown journal

Kangjie Lu <kjlu@umn.edu>
    tipc: fix a missing check of genlmsg_put

Kangjie Lu <kjlu@umn.edu>
    atl1e: checking the status of atl1e_write_phy_reg

Kangjie Lu <kjlu@umn.edu>
    net: stmicro: fix a missing check of clk_prepare

Richard Weinberger <richard@nod.at>
    um: Make GCOV depend on !KCOV

Aditya Pakki <pakki001@umn.edu>
    net/net_namespace: Check the return value of register_pernet_subsys()

Kangjie Lu <kjlu@umn.edu>
    regulator: tps65910: fix a missing check of return value

Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
    drbd: fix print_st_err()'s prototype to match the definition

Lars Ellenberg <lars.ellenberg@linbit.com>
    drbd: reject attach of unsuitable uuids even if connected

Benjamin Herrenschmidt <benh@kernel.crashing.org>
    powerpc/44x/bamboo: Fix PCI range

Christophe Leroy <christophe.leroy@c-s.fr>
    powerpc/mm: Make NULL pointer deferences explicit on bad page faults.

Christophe Leroy <christophe.leroy@c-s.fr>
    powerpc/prom: fix early DEBUG messages

Kyle Roeschley <kyle.roeschley@ni.com>
    ath6kl: Fix off by one error in scan completion

Kyle Roeschley <kyle.roeschley@ni.com>
    ath6kl: Only use match sets when firmware supports it

Varun Prakash <varun@chelsio.com>
    scsi: csiostor: fix incorrect dma device in case of vport

Anatoliy Glagolev <glagolig@gmail.com>
    scsi: qla2xxx: deadlock by configfs_depend_item

Bart Van Assche <bvanassche@acm.org>
    RDMA/srp: Propagate ib_post_send() failures to the SCSI mid-layer

Geert Uytterhoeven <geert@linux-m68k.org>
    openrisc: Fix broken paths to arch/or32

Alexander Shiyan <shc_work@mail.ru>
    serial: max310x: Fix tx_empty() callback

Kangjie Lu <kjlu@umn.edu>
    drivers/regulator: fix a missing check of return value

Christophe Leroy <christophe.leroy@c-s.fr>
    powerpc/xmon: fix dump_segments()

Christophe Leroy <christophe.leroy@c-s.fr>
    powerpc/book3s/32: fix number of bats in p/v_block_mapped()

Dan Carpenter <dan.carpenter@oracle.com>
    IB/qib: Fix an error code in qib_sdma_verbs_send()

Nick Bowler <nbowler@draconx.ca>
    xfs: Align compat attrlist_by_handle with native implementation.

Bob Peterson <rpeterso@redhat.com>
    gfs2: take jdata unstuff into account in do_grow

Peter Hutterer <peter.hutterer@who-t.net>
    HID: doc: fix wrong data structure reference for UHID_OUTPUT

Geert Uytterhoeven <geert+renesas@glider.be>
    pinctrl: sh-pfc: sh7734: Fix shifted values in IPSR10

Geert Uytterhoeven <geert+renesas@glider.be>
    pinctrl: sh-pfc: sh7264: Fix PFCR3 and PFCR0 register configuration

Michael Mueller <mimu@linux.ibm.com>
    KVM: s390: unregister debug feature on failing arch init

Ross Lagerwall <ross.lagerwall@citrix.com>
    xen/pciback: Check dev_data before using it

Josef Bacik <jbacik@fb.com>
    btrfs: only track ref_heads in delayed_ref_updates

Lepton Wu <ytht.net@gmail.com>
    VSOCK: bind to random port for VMADDR_PORT_ANY

Krzysztof Kozlowski <krzk@kernel.org>
    gpiolib: Fix return value of gpio_to_desc() stub if !GPIOLIB

Masahiro Yamada <yamada.masahiro@socionext.com>
    microblaze: move "... is ready" messages to arch/microblaze/Makefile

Masahiro Yamada <yamada.masahiro@socionext.com>
    microblaze: adjust the help to the real behavior

Pan Bian <bianpan2016@163.com>
    ubi: Do not drop UBI device reference before using

Pan Bian <bianpan2016@163.com>
    ubi: Put MTD device after it is not used

Darrick J. Wong <darrick.wong@oracle.com>
    xfs: require both realtime inodes to mount

Pan Bian <bianpan2016@163.com>
    rtl818x: fix potential use after free

Brian Norris <briannorris@chromium.org>
    mwifiex: debugfs: correct histogram spacing, formatting

Pan Bian <bianpan2016@163.com>
    mwifiex: fix potential NULL dereference and use after free

Eric Biggers <ebiggers@google.com>
    crypto: user - support incremental algorithm dumps

Hans de Goede <hdegoede@redhat.com>
    ACPI / LPSS: Ignore acpi_device_fix_up_power() return value

Arnd Bergmann <arnd@arndb.de>
    ARM: ks8695: fix section mismatch warning

Thomas Meyer <thomas@m3y3r.de>
    PM / AVS: SmartReflex: NULL check before some freeing functions is not needed

Suzuki K Poulose <Suzuki.Poulose@arm.com>
    arm64: smp: Handle errors reported by the firmware

Helge Deller <deller@gmx.de>
    parisc: Fix HP SDC hpa address output

Helge Deller <deller@gmx.de>
    parisc: Fix serio address output

Fabio Estevam <festevam@gmail.com>
    ARM: dts: imx53-voipac-dmm-668: Fix memory node duplication

Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    ARM: debug-imx: only define DEBUG_IMX_UART_PORT if needed

James Smart <jsmart2021@gmail.com>
    scsi: lpfc: Fix dif and first burst use in write commands

Dan Carpenter <dan.carpenter@oracle.com>
    block: drbd: remove a stray unlock in __drbd_send_protocol()

Ilya Leoshkevich <iii@linux.ibm.com>
    scripts/gdb: fix debugging modules compiled with hot/cold partitioning

Jeroen Hofstee <jhofstee@victronenergy.com>
    can: c_can: D_CAN: c_can_chip_config(): perform a sofware reset on open

Jeroen Hofstee <jhofstee@victronenergy.com>
    can: peak_usb: report bus recovery as well

Randy Dunlap <rdunlap@infradead.org>
    reset: fix reset_control_ops kerneldoc comment

Marek Szyprowski <m.szyprowski@samsung.com>
    clk: samsung: exynos5420: Preserve PLL configuration during suspend/resume

Russell King <rmk+kernel@armlinux.org.uk>
    ASoC: kirkwood: fix external clock probe defer

Xiaojun Sang <xsang@codeaurora.org>
    ASoC: compress: fix unsigned integer overflow check


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

Diffstat:

 Documentation/hid/uhid.txt                         |  2 +-
 Makefile                                           |  4 +-
 arch/arm/Kconfig.debug                             | 28 ++++++------
 arch/arm/boot/dts/imx53-voipac-dmm-668.dtsi        |  8 +---
 arch/arm/mach-ks8695/board-acs5k.c                 |  2 +-
 arch/arm64/kernel/smp.c                            |  1 +
 arch/microblaze/Makefile                           | 12 ++---
 arch/microblaze/boot/Makefile                      |  4 --
 arch/openrisc/kernel/entry.S                       |  2 +-
 arch/openrisc/kernel/head.S                        |  2 +-
 arch/powerpc/boot/dts/bamboo.dts                   |  4 +-
 arch/powerpc/kernel/prom.c                         |  6 +--
 arch/powerpc/mm/fault.c                            | 17 ++++----
 arch/powerpc/mm/ppc_mmu_32.c                       |  4 +-
 arch/powerpc/platforms/pseries/dlpar.c             |  4 ++
 arch/powerpc/xmon/xmon.c                           |  2 +-
 arch/s390/kvm/kvm-s390.c                           | 17 ++++++--
 arch/um/Kconfig.debug                              |  1 +
 crypto/crypto_user.c                               | 37 ++++++++--------
 drivers/acpi/acpi_lpss.c                           |  7 +--
 drivers/acpi/apei/ghes.c                           | 30 ++++++-------
 drivers/block/drbd/drbd_main.c                     |  1 -
 drivers/block/drbd/drbd_nl.c                       |  6 +--
 drivers/block/drbd/drbd_receiver.c                 | 19 ++++++++
 drivers/block/drbd/drbd_state.h                    |  2 +-
 drivers/char/hw_random/stm32-rng.c                 |  8 ++++
 drivers/clk/samsung/clk-exynos5420.c               |  6 +++
 drivers/hid/hid-core.c                             | 51 +++++++++++++++++++---
 drivers/infiniband/hw/qib/qib_sdma.c               |  4 +-
 drivers/infiniband/ulp/srp/ib_srp.c                |  1 +
 drivers/input/serio/gscps2.c                       |  4 +-
 drivers/input/serio/hp_sdc.c                       |  4 +-
 drivers/media/v4l2-core/v4l2-ctrls.c               |  1 +
 drivers/misc/mei/bus.c                             |  9 ++--
 drivers/mtd/mtdcore.h                              |  2 +-
 drivers/mtd/mtdpart.c                              | 35 ++++++++++++---
 drivers/mtd/ubi/build.c                            |  2 +-
 drivers/mtd/ubi/kapi.c                             |  2 +-
 drivers/net/can/c_can/c_can.c                      | 26 +++++++++++
 drivers/net/can/usb/peak_usb/pcan_usb.c            | 15 ++++---
 drivers/net/ethernet/atheros/atl1e/atl1e_main.c    |  4 +-
 drivers/net/ethernet/cadence/macb.c                | 12 ++---
 drivers/net/ethernet/sfc/ef10.c                    | 29 ++++++++----
 drivers/net/ethernet/stmicro/stmmac/dwmac-sunxi.c  |  4 +-
 drivers/net/macvlan.c                              |  3 +-
 drivers/net/slip/slip.c                            |  1 +
 drivers/net/wireless/ath/ath6kl/cfg80211.c         |  4 +-
 drivers/net/wireless/mwifiex/debugfs.c             | 14 +++---
 drivers/net/wireless/mwifiex/scan.c                | 18 ++++----
 drivers/net/wireless/realtek/rtl818x/rtl8187/dev.c |  3 +-
 drivers/pinctrl/sh-pfc/pfc-sh7264.c                |  9 +++-
 drivers/pinctrl/sh-pfc/pfc-sh7734.c                | 16 +++----
 drivers/platform/x86/hp-wmi.c                      |  6 +--
 drivers/power/avs/smartreflex.c                    |  3 +-
 drivers/pwm/core.c                                 |  1 +
 drivers/pwm/pwm-samsung.c                          |  1 -
 drivers/regulator/palmas-regulator.c               |  5 ++-
 drivers/regulator/tps65910-regulator.c             |  4 +-
 drivers/scsi/csiostor/csio_init.c                  |  2 +-
 drivers/scsi/libsas/sas_expander.c                 | 29 +++++++++++-
 drivers/scsi/lpfc/lpfc_scsi.c                      | 18 ++++++++
 drivers/scsi/qla2xxx/tcm_qla2xxx.c                 | 48 ++++----------------
 drivers/scsi/qla2xxx/tcm_qla2xxx.h                 |  3 --
 drivers/staging/rtl8192e/rtl8192e/rtl_core.c       |  5 ++-
 drivers/tty/serial/max310x.c                       |  7 +--
 drivers/usb/serial/ftdi_sio.c                      |  3 ++
 drivers/usb/serial/ftdi_sio_ids.h                  |  7 +++
 drivers/xen/xen-pciback/pci_stub.c                 |  3 +-
 fs/btrfs/delayed-ref.c                             |  3 --
 fs/gfs2/bmap.c                                     |  2 +
 fs/ocfs2/journal.c                                 |  6 +--
 fs/xfs/xfs_ioctl32.c                               |  6 +++
 fs/xfs/xfs_rtalloc.c                               |  4 +-
 include/linux/gpio/consumer.h                      |  2 +-
 include/linux/netdevice.h                          |  2 +-
 include/linux/reset-controller.h                   |  2 +-
 include/net/sock.h                                 |  2 +-
 lib/genalloc.c                                     |  5 ++-
 net/core/neighbour.c                               | 13 ++++--
 net/core/net_namespace.c                           |  3 +-
 net/core/sock.c                                    |  2 +-
 net/decnet/dn_dev.c                                |  2 +-
 net/openvswitch/datapath.c                         | 17 ++++++--
 net/sched/sch_mq.c                                 |  2 +-
 net/sched/sch_mqprio.c                             |  3 +-
 net/sched/sch_multiq.c                             |  2 +-
 net/sched/sch_prio.c                               |  2 +-
 net/tipc/link.c                                    |  2 +-
 net/tipc/netlink_compat.c                          |  8 +++-
 net/vmw_vsock/af_vsock.c                           |  7 ++-
 scripts/gdb/linux/symbols.py                       |  3 +-
 sound/core/compress_offload.c                      |  2 +-
 sound/soc/kirkwood/kirkwood-i2s.c                  |  8 ++--
 93 files changed, 493 insertions(+), 271 deletions(-)



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

* [PATCH 4.4 01/92] ASoC: compress: fix unsigned integer overflow check
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 02/92] ASoC: kirkwood: fix external clock probe defer Greg Kroah-Hartman
                   ` (94 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Xiaojun Sang, Srinivas Kandagatla,
	Vinod Koul, Mark Brown, Sasha Levin

From: Xiaojun Sang <xsang@codeaurora.org>

[ Upstream commit d3645b055399538415586ebaacaedebc1e5899b0 ]

Parameter fragments and fragment_size are type of u32. U32_MAX is
the correct check.

Signed-off-by: Xiaojun Sang <xsang@codeaurora.org>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Acked-by: Vinod Koul <vkoul@kernel.org>
Link: https://lore.kernel.org/r/20191021095432.5639-1-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 sound/core/compress_offload.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sound/core/compress_offload.c b/sound/core/compress_offload.c
index 771d7b334ad87..07f5017cbea2a 100644
--- a/sound/core/compress_offload.c
+++ b/sound/core/compress_offload.c
@@ -501,7 +501,7 @@ static int snd_compress_check_input(struct snd_compr_params *params)
 {
 	/* first let's check the buffer parameter's */
 	if (params->buffer.fragment_size == 0 ||
-	    params->buffer.fragments > INT_MAX / params->buffer.fragment_size ||
+	    params->buffer.fragments > U32_MAX / params->buffer.fragment_size ||
 	    params->buffer.fragments == 0)
 		return -EINVAL;
 
-- 
2.20.1




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

* [PATCH 4.4 02/92] ASoC: kirkwood: fix external clock probe defer
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 01/92] ASoC: compress: fix unsigned integer overflow check Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 03/92] clk: samsung: exynos5420: Preserve PLL configuration during suspend/resume Greg Kroah-Hartman
                   ` (93 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Russell King, Mark Brown, Sasha Levin

From: Russell King <rmk+kernel@armlinux.org.uk>

[ Upstream commit 4523817d51bc3b2ef38da768d004fda2c8bc41de ]

When our call to get the external clock fails, we forget to clean up
the enabled internal clock correctly.  Enable the clock after we have
obtained all our resources.

Fixes: 84aac6c79bfd ("ASoC: kirkwood: fix loss of external clock at probe time")
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Link: https://lore.kernel.org/r/E1iNGyK-0004oF-6A@rmk-PC.armlinux.org.uk
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 sound/soc/kirkwood/kirkwood-i2s.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/sound/soc/kirkwood/kirkwood-i2s.c b/sound/soc/kirkwood/kirkwood-i2s.c
index 3a36d60e17850..0a5d9fb6fc84b 100644
--- a/sound/soc/kirkwood/kirkwood-i2s.c
+++ b/sound/soc/kirkwood/kirkwood-i2s.c
@@ -570,10 +570,6 @@ static int kirkwood_i2s_dev_probe(struct platform_device *pdev)
 		return PTR_ERR(priv->clk);
 	}
 
-	err = clk_prepare_enable(priv->clk);
-	if (err < 0)
-		return err;
-
 	priv->extclk = devm_clk_get(&pdev->dev, "extclk");
 	if (IS_ERR(priv->extclk)) {
 		if (PTR_ERR(priv->extclk) == -EPROBE_DEFER)
@@ -589,6 +585,10 @@ static int kirkwood_i2s_dev_probe(struct platform_device *pdev)
 		}
 	}
 
+	err = clk_prepare_enable(priv->clk);
+	if (err < 0)
+		return err;
+
 	/* Some sensible defaults - this reflects the powerup values */
 	priv->ctl_play = KIRKWOOD_PLAYCTL_SIZE_24;
 	priv->ctl_rec = KIRKWOOD_RECCTL_SIZE_24;
-- 
2.20.1




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

* [PATCH 4.4 03/92] clk: samsung: exynos5420: Preserve PLL configuration during suspend/resume
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 01/92] ASoC: compress: fix unsigned integer overflow check Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 02/92] ASoC: kirkwood: fix external clock probe defer Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 04/92] reset: fix reset_control_ops kerneldoc comment Greg Kroah-Hartman
                   ` (92 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Reported-by: Marian Mihailescu,
	Marek Szyprowski, Sylwester Nawrocki, Sasha Levin

From: Marek Szyprowski <m.szyprowski@samsung.com>

[ Upstream commit e9323b664ce29547d996195e8a6129a351c39108 ]

Properly save and restore all top PLL related configuration registers
during suspend/resume cycle. So far driver only handled EPLL and RPLL
clocks, all other were reset to default values after suspend/resume cycle.
This caused for example lower G3D (MALI Panfrost) performance after system
resume, even if performance governor has been selected.

Reported-by: Reported-by: Marian Mihailescu <mihailescu2m@gmail.com>
Fixes: 773424326b51 ("clk: samsung: exynos5420: add more registers to restore list")
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/clk/samsung/clk-exynos5420.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/clk/samsung/clk-exynos5420.c b/drivers/clk/samsung/clk-exynos5420.c
index bde71b07f15e7..c94de13ce3627 100644
--- a/drivers/clk/samsung/clk-exynos5420.c
+++ b/drivers/clk/samsung/clk-exynos5420.c
@@ -166,12 +166,18 @@ static unsigned long exynos5x_clk_regs[] __initdata = {
 	GATE_BUS_CPU,
 	GATE_SCLK_CPU,
 	CLKOUT_CMU_CPU,
+	CPLL_CON0,
+	DPLL_CON0,
 	EPLL_CON0,
 	EPLL_CON1,
 	EPLL_CON2,
 	RPLL_CON0,
 	RPLL_CON1,
 	RPLL_CON2,
+	IPLL_CON0,
+	SPLL_CON0,
+	VPLL_CON0,
+	MPLL_CON0,
 	SRC_TOP0,
 	SRC_TOP1,
 	SRC_TOP2,
-- 
2.20.1




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

* [PATCH 4.4 04/92] reset: fix reset_control_ops kerneldoc comment
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (2 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 03/92] clk: samsung: exynos5420: Preserve PLL configuration during suspend/resume Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 05/92] can: peak_usb: report bus recovery as well Greg Kroah-Hartman
                   ` (91 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Randy Dunlap, Philipp Zabel, Sasha Levin

From: Randy Dunlap <rdunlap@infradead.org>

[ Upstream commit f430c7ed8bc22992ed528b518da465b060b9223f ]

Add a missing short description to the reset_control_ops documentation.

Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
[p.zabel@pengutronix.de: rebased and updated commit message]
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 include/linux/reset-controller.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/linux/reset-controller.h b/include/linux/reset-controller.h
index ce6b962ffed43..842f70fcfc486 100644
--- a/include/linux/reset-controller.h
+++ b/include/linux/reset-controller.h
@@ -6,7 +6,7 @@
 struct reset_controller_dev;
 
 /**
- * struct reset_control_ops
+ * struct reset_control_ops - reset controller driver callbacks
  *
  * @reset: for self-deasserting resets, does all necessary
  *         things to reset the device
-- 
2.20.1




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

* [PATCH 4.4 05/92] can: peak_usb: report bus recovery as well
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (3 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 04/92] reset: fix reset_control_ops kerneldoc comment Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 06/92] can: c_can: D_CAN: c_can_chip_config(): perform a sofware reset on open Greg Kroah-Hartman
                   ` (90 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Jeroen Hofstee, Stephane Grosjean,
	Marc Kleine-Budde, Sasha Levin

From: Jeroen Hofstee <jhofstee@victronenergy.com>

[ Upstream commit 128a1b87d3ceb2ba449d5aadb222fe22395adeb0 ]

While the state changes are reported when the error counters increase
and decrease, there is no event when the bus recovers and the error
counters decrease again. So add those as well.

Change the state going downward to be ERROR_PASSIVE -> ERROR_WARNING ->
ERROR_ACTIVE instead of directly to ERROR_ACTIVE again.

Signed-off-by: Jeroen Hofstee <jhofstee@victronenergy.com>
Cc: Stephane Grosjean <s.grosjean@peak-system.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/net/can/usb/peak_usb/pcan_usb.c | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/drivers/net/can/usb/peak_usb/pcan_usb.c b/drivers/net/can/usb/peak_usb/pcan_usb.c
index e626c2afbbb11..0e1fc6c4360e7 100644
--- a/drivers/net/can/usb/peak_usb/pcan_usb.c
+++ b/drivers/net/can/usb/peak_usb/pcan_usb.c
@@ -441,8 +441,8 @@ static int pcan_usb_decode_error(struct pcan_usb_msg_context *mc, u8 n,
 		}
 		if ((n & PCAN_USB_ERROR_BUS_LIGHT) == 0) {
 			/* no error (back to active state) */
-			mc->pdev->dev.can.state = CAN_STATE_ERROR_ACTIVE;
-			return 0;
+			new_state = CAN_STATE_ERROR_ACTIVE;
+			break;
 		}
 		break;
 
@@ -465,9 +465,9 @@ static int pcan_usb_decode_error(struct pcan_usb_msg_context *mc, u8 n,
 		}
 
 		if ((n & PCAN_USB_ERROR_BUS_HEAVY) == 0) {
-			/* no error (back to active state) */
-			mc->pdev->dev.can.state = CAN_STATE_ERROR_ACTIVE;
-			return 0;
+			/* no error (back to warning state) */
+			new_state = CAN_STATE_ERROR_WARNING;
+			break;
 		}
 		break;
 
@@ -506,6 +506,11 @@ static int pcan_usb_decode_error(struct pcan_usb_msg_context *mc, u8 n,
 		mc->pdev->dev.can.can_stats.error_warning++;
 		break;
 
+	case CAN_STATE_ERROR_ACTIVE:
+		cf->can_id |= CAN_ERR_CRTL;
+		cf->data[1] = CAN_ERR_CRTL_ACTIVE;
+		break;
+
 	default:
 		/* CAN_STATE_MAX (trick to handle other errors) */
 		cf->can_id |= CAN_ERR_CRTL;
-- 
2.20.1




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

* [PATCH 4.4 06/92] can: c_can: D_CAN: c_can_chip_config(): perform a sofware reset on open
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (4 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 05/92] can: peak_usb: report bus recovery as well Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 07/92] scripts/gdb: fix debugging modules compiled with hot/cold partitioning Greg Kroah-Hartman
                   ` (89 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Jeroen Hofstee, Marc Kleine-Budde,
	Sasha Levin

From: Jeroen Hofstee <jhofstee@victronenergy.com>

[ Upstream commit 23c5a9488f076bab336177cd1d1a366bd8ddf087 ]

When the CAN interface is closed it the hardwre is put in power down
mode, but does not reset the error counters / state. Reset the D_CAN on
open, so the reported state and the actual state match.

According to [1], the C_CAN module doesn't have the software reset.

[1] http://www.bosch-semiconductors.com/media/ip_modules/pdf_2/c_can_fd8/users_manual_c_can_fd8_r210_1.pdf

Signed-off-by: Jeroen Hofstee <jhofstee@victronenergy.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/net/can/c_can/c_can.c | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/drivers/net/can/c_can/c_can.c b/drivers/net/can/c_can/c_can.c
index 7d35f6737499c..4ead5a18b7940 100644
--- a/drivers/net/can/c_can/c_can.c
+++ b/drivers/net/can/c_can/c_can.c
@@ -52,6 +52,7 @@
 #define CONTROL_EX_PDR		BIT(8)
 
 /* control register */
+#define CONTROL_SWR		BIT(15)
 #define CONTROL_TEST		BIT(7)
 #define CONTROL_CCE		BIT(6)
 #define CONTROL_DISABLE_AR	BIT(5)
@@ -572,6 +573,26 @@ static void c_can_configure_msg_objects(struct net_device *dev)
 				   IF_MCONT_RCV_EOB);
 }
 
+static int c_can_software_reset(struct net_device *dev)
+{
+	struct c_can_priv *priv = netdev_priv(dev);
+	int retry = 0;
+
+	if (priv->type != BOSCH_D_CAN)
+		return 0;
+
+	priv->write_reg(priv, C_CAN_CTRL_REG, CONTROL_SWR | CONTROL_INIT);
+	while (priv->read_reg(priv, C_CAN_CTRL_REG) & CONTROL_SWR) {
+		msleep(20);
+		if (retry++ > 100) {
+			netdev_err(dev, "CCTRL: software reset failed\n");
+			return -EIO;
+		}
+	}
+
+	return 0;
+}
+
 /*
  * Configure C_CAN chip:
  * - enable/disable auto-retransmission
@@ -581,6 +602,11 @@ static void c_can_configure_msg_objects(struct net_device *dev)
 static int c_can_chip_config(struct net_device *dev)
 {
 	struct c_can_priv *priv = netdev_priv(dev);
+	int err;
+
+	err = c_can_software_reset(dev);
+	if (err)
+		return err;
 
 	/* enable automatic retransmission */
 	priv->write_reg(priv, C_CAN_CTRL_REG, CONTROL_ENABLE_AR);
-- 
2.20.1




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

* [PATCH 4.4 07/92] scripts/gdb: fix debugging modules compiled with hot/cold partitioning
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (5 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 06/92] can: c_can: D_CAN: c_can_chip_config(): perform a sofware reset on open Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 08/92] block: drbd: remove a stray unlock in __drbd_send_protocol() Greg Kroah-Hartman
                   ` (88 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Ilya Leoshkevich, Jan Kiszka,
	Kieran Bingham, Heiko Carstens, Vasily Gorbik, Andrew Morton,
	Linus Torvalds, Sasha Levin

From: Ilya Leoshkevich <iii@linux.ibm.com>

[ Upstream commit 8731acc5068eb3f422a45c760d32198175c756f8 ]

gcc's -freorder-blocks-and-partition option makes it group frequently
and infrequently used code in .text.hot and .text.unlikely sections
respectively.  At least when building modules on s390, this option is
used by default.

gdb assumes that all code is located in .text section, and that .text
section is located at module load address.  With such modules this is no
longer the case: there is code in .text.hot and .text.unlikely, and
either of them might precede .text.

Fix by explicitly telling gdb the addresses of code sections.

It might be tempting to do this for all sections, not only the ones in
the white list.  Unfortunately, gdb appears to have an issue, when
telling it about e.g. loadable .note.gnu.build-id section causes it to
think that non-loadable .note.Linux section is loaded at address 0,
which in turn causes NULL pointers to be resolved to bogus symbols.  So
keep using the white list approach for the time being.

Link: http://lkml.kernel.org/r/20191028152734.13065-1-iii@linux.ibm.com
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Reviewed-by: Jan Kiszka <jan.kiszka@siemens.com>
Cc: Kieran Bingham <kbingham@kernel.org>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Vasily Gorbik <gor@linux.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 scripts/gdb/linux/symbols.py | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/scripts/gdb/linux/symbols.py b/scripts/gdb/linux/symbols.py
index 627750cb420d0..9b71c65504a38 100644
--- a/scripts/gdb/linux/symbols.py
+++ b/scripts/gdb/linux/symbols.py
@@ -99,7 +99,8 @@ lx-symbols command."""
             attrs[n]['name'].string(): attrs[n]['address']
             for n in range(int(sect_attrs['nsections']))}
         args = []
-        for section_name in [".data", ".data..read_mostly", ".rodata", ".bss"]:
+        for section_name in [".data", ".data..read_mostly", ".rodata", ".bss",
+                             ".text", ".text.hot", ".text.unlikely"]:
             address = section_name_to_address.get(section_name)
             if address:
                 args.append(" -s {name} {addr}".format(
-- 
2.20.1




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

* [PATCH 4.4 08/92] block: drbd: remove a stray unlock in __drbd_send_protocol()
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (6 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 07/92] scripts/gdb: fix debugging modules compiled with hot/cold partitioning Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 09/92] scsi: lpfc: Fix dif and first burst use in write commands Greg Kroah-Hartman
                   ` (87 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Dan Carpenter, Jens Axboe, Sasha Levin

From: Dan Carpenter <dan.carpenter@oracle.com>

[ Upstream commit 8e9c523016cf9983b295e4bc659183d1fa6ef8e0 ]

There are two callers of this function and they both unlock the mutex so
this ends up being a double unlock.

Fixes: 44ed167da748 ("drbd: rcu_read_lock() and rcu_dereference() for tconn->net_conf")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/block/drbd/drbd_main.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c
index 1d58854c4a9fa..385ec4ae33945 100644
--- a/drivers/block/drbd/drbd_main.c
+++ b/drivers/block/drbd/drbd_main.c
@@ -792,7 +792,6 @@ int __drbd_send_protocol(struct drbd_connection *connection, enum drbd_packet cm
 
 	if (nc->tentative && connection->agreed_pro_version < 92) {
 		rcu_read_unlock();
-		mutex_unlock(&sock->mutex);
 		drbd_err(connection, "--dry-run is not supported by peer");
 		return -EOPNOTSUPP;
 	}
-- 
2.20.1




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

* [PATCH 4.4 09/92] scsi: lpfc: Fix dif and first burst use in write commands
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (7 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 08/92] block: drbd: remove a stray unlock in __drbd_send_protocol() Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 10/92] ARM: debug-imx: only define DEBUG_IMX_UART_PORT if needed Greg Kroah-Hartman
                   ` (86 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Dick Kennedy, James Smart,
	Martin K. Petersen, Sasha Levin

From: James Smart <jsmart2021@gmail.com>

[ Upstream commit 7c4042a4d0b7532cfbc90478fd3084b2dab5849e ]

When dif and first burst is used in a write command wqe, the driver was not
properly setting fields in the io command request. This resulted in no dif
bytes being sent and invalid xfer_rdy's, resulting in the io being aborted
by the hardware.

Correct the wqe initializaton when both dif and first burst are used.

Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com>
Signed-off-by: James Smart <jsmart2021@gmail.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/scsi/lpfc/lpfc_scsi.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c
index bae36cc3740b6..ab6bff60478f9 100644
--- a/drivers/scsi/lpfc/lpfc_scsi.c
+++ b/drivers/scsi/lpfc/lpfc_scsi.c
@@ -2707,6 +2707,7 @@ lpfc_bg_scsi_prep_dma_buf_s3(struct lpfc_hba *phba,
 	int datasegcnt, protsegcnt, datadir = scsi_cmnd->sc_data_direction;
 	int prot_group_type = 0;
 	int fcpdl;
+	struct lpfc_vport *vport = phba->pport;
 
 	/*
 	 * Start the lpfc command prep by bumping the bpl beyond fcp_cmnd
@@ -2812,6 +2813,14 @@ lpfc_bg_scsi_prep_dma_buf_s3(struct lpfc_hba *phba,
 	 */
 	iocb_cmd->un.fcpi.fcpi_parm = fcpdl;
 
+	/*
+	 * For First burst, we may need to adjust the initial transfer
+	 * length for DIF
+	 */
+	if (iocb_cmd->un.fcpi.fcpi_XRdy &&
+	    (fcpdl < vport->cfg_first_burst_size))
+		iocb_cmd->un.fcpi.fcpi_XRdy = fcpdl;
+
 	return 0;
 err:
 	if (lpfc_cmd->seg_cnt)
@@ -3361,6 +3370,7 @@ lpfc_bg_scsi_prep_dma_buf_s4(struct lpfc_hba *phba,
 	int datasegcnt, protsegcnt, datadir = scsi_cmnd->sc_data_direction;
 	int prot_group_type = 0;
 	int fcpdl;
+	struct lpfc_vport *vport = phba->pport;
 
 	/*
 	 * Start the lpfc command prep by bumping the sgl beyond fcp_cmnd
@@ -3476,6 +3486,14 @@ lpfc_bg_scsi_prep_dma_buf_s4(struct lpfc_hba *phba,
 	 */
 	iocb_cmd->un.fcpi.fcpi_parm = fcpdl;
 
+	/*
+	 * For First burst, we may need to adjust the initial transfer
+	 * length for DIF
+	 */
+	if (iocb_cmd->un.fcpi.fcpi_XRdy &&
+	    (fcpdl < vport->cfg_first_burst_size))
+		iocb_cmd->un.fcpi.fcpi_XRdy = fcpdl;
+
 	/*
 	 * If the OAS driver feature is enabled and the lun is enabled for
 	 * OAS, set the oas iocb related flags.
-- 
2.20.1




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

* [PATCH 4.4 10/92] ARM: debug-imx: only define DEBUG_IMX_UART_PORT if needed
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (8 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 09/92] scsi: lpfc: Fix dif and first burst use in write commands Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 11/92] ARM: dts: imx53-voipac-dmm-668: Fix memory node duplication Greg Kroah-Hartman
                   ` (85 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Uwe Kleine-König, Shawn Guo,
	Sasha Levin

From: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>

[ Upstream commit 7c41ea57beb2aee96fa63091a457b1a2826f3c42 ]

If debugging on i.MX is enabled DEBUG_IMX_UART_PORT defines which UART
is used for the debug output. If however debugging is off don't only
hide the then unused config item but drop it completely by using a
dependency instead of a conditional prompt.

This fixes DEBUG_IMX_UART_PORT being present in the kernel config even
if DEBUG_LL is disabled.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 arch/arm/Kconfig.debug | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
index ddbb361267d87..9c3042da44402 100644
--- a/arch/arm/Kconfig.debug
+++ b/arch/arm/Kconfig.debug
@@ -1260,21 +1260,21 @@ config DEBUG_OMAP2PLUS_UART
 	depends on ARCH_OMAP2PLUS
 
 config DEBUG_IMX_UART_PORT
-	int "i.MX Debug UART Port Selection" if DEBUG_IMX1_UART || \
-						DEBUG_IMX25_UART || \
-						DEBUG_IMX21_IMX27_UART || \
-						DEBUG_IMX31_UART || \
-						DEBUG_IMX35_UART || \
-						DEBUG_IMX50_UART || \
-						DEBUG_IMX51_UART || \
-						DEBUG_IMX53_UART || \
-						DEBUG_IMX6Q_UART || \
-						DEBUG_IMX6SL_UART || \
-						DEBUG_IMX6SX_UART || \
-						DEBUG_IMX6UL_UART || \
-						DEBUG_IMX7D_UART
+	int "i.MX Debug UART Port Selection"
+	depends on DEBUG_IMX1_UART || \
+		   DEBUG_IMX25_UART || \
+		   DEBUG_IMX21_IMX27_UART || \
+		   DEBUG_IMX31_UART || \
+		   DEBUG_IMX35_UART || \
+		   DEBUG_IMX50_UART || \
+		   DEBUG_IMX51_UART || \
+		   DEBUG_IMX53_UART || \
+		   DEBUG_IMX6Q_UART || \
+		   DEBUG_IMX6SL_UART || \
+		   DEBUG_IMX6SX_UART || \
+		   DEBUG_IMX6UL_UART || \
+		   DEBUG_IMX7D_UART
 	default 1
-	depends on ARCH_MXC
 	help
 	  Choose UART port on which kernel low-level debug messages
 	  should be output.
-- 
2.20.1




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

* [PATCH 4.4 11/92] ARM: dts: imx53-voipac-dmm-668: Fix memory node duplication
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (9 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 10/92] ARM: debug-imx: only define DEBUG_IMX_UART_PORT if needed Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 12/92] parisc: Fix serio address output Greg Kroah-Hartman
                   ` (84 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Marco Franchi, Fabio Estevam,
	Shawn Guo, Sasha Levin

From: Fabio Estevam <festevam@gmail.com>

[ Upstream commit 998a84c27a7f3f9133d32af64e19c05cec161a1a ]

imx53-voipac-dmm-668 has two memory nodes, but the correct representation
would be to use a single one with two reg entries - one for each RAM chip
select, so fix it accordingly.

Reported-by: Marco Franchi <marco.franchi@nxp.com>
Signed-off-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Marco Franchi <marco.franchi@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 arch/arm/boot/dts/imx53-voipac-dmm-668.dtsi | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/arch/arm/boot/dts/imx53-voipac-dmm-668.dtsi b/arch/arm/boot/dts/imx53-voipac-dmm-668.dtsi
index ba689fbd0e413..301cf8d45947f 100644
--- a/arch/arm/boot/dts/imx53-voipac-dmm-668.dtsi
+++ b/arch/arm/boot/dts/imx53-voipac-dmm-668.dtsi
@@ -17,12 +17,8 @@
 
 	memory@70000000 {
 		device_type = "memory";
-		reg = <0x70000000 0x20000000>;
-	};
-
-	memory@b0000000 {
-		device_type = "memory";
-		reg = <0xb0000000 0x20000000>;
+		reg = <0x70000000 0x20000000>,
+		      <0xb0000000 0x20000000>;
 	};
 
 	regulators {
-- 
2.20.1




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

* [PATCH 4.4 12/92] parisc: Fix serio address output
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (10 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 11/92] ARM: dts: imx53-voipac-dmm-668: Fix memory node duplication Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 13/92] parisc: Fix HP SDC hpa " Greg Kroah-Hartman
                   ` (83 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Helge Deller, Sasha Levin

From: Helge Deller <deller@gmx.de>

[ Upstream commit 785145171d17af2554128becd6a7c8f89e101141 ]

We want the hpa addresses printed in the serio modules, not some
virtual ioremap()ed address, e.g.:

 serio: gsc-ps2-keyboard port at 0xf0108000 irq 22 @ 2:0:11
 serio: gsc-ps2-mouse port at 0xf0108100 irq 22 @ 2:0:12

Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/input/serio/gscps2.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/input/serio/gscps2.c b/drivers/input/serio/gscps2.c
index ecba666afadb7..cca26e6f38b36 100644
--- a/drivers/input/serio/gscps2.c
+++ b/drivers/input/serio/gscps2.c
@@ -382,9 +382,9 @@ static int gscps2_probe(struct parisc_device *dev)
 		goto fail;
 #endif
 
-	printk(KERN_INFO "serio: %s port at 0x%p irq %d @ %s\n",
+	pr_info("serio: %s port at 0x%08lx irq %d @ %s\n",
 		ps2port->port->name,
-		ps2port->addr,
+		hpa,
 		ps2port->padev->irq,
 		ps2port->port->phys);
 
-- 
2.20.1




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

* [PATCH 4.4 13/92] parisc: Fix HP SDC hpa address output
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (11 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 12/92] parisc: Fix serio address output Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 14/92] arm64: smp: Handle errors reported by the firmware Greg Kroah-Hartman
                   ` (82 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Helge Deller, Sasha Levin

From: Helge Deller <deller@gmx.de>

[ Upstream commit c4bff35ca1bfba886da6223c9fed76a2b1382b8e ]

Show the hpa address of the HP SDC instead of a hashed value, e.g.:
HP SDC: HP SDC at 0xf0201000, IRQ 23 (NMI IRQ 24)

Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/input/serio/hp_sdc.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/input/serio/hp_sdc.c b/drivers/input/serio/hp_sdc.c
index 852858e5d8d08..92f541db98a09 100644
--- a/drivers/input/serio/hp_sdc.c
+++ b/drivers/input/serio/hp_sdc.c
@@ -887,8 +887,8 @@ static int __init hp_sdc_init(void)
 			"HP SDC NMI", &hp_sdc))
 		goto err2;
 
-	printk(KERN_INFO PREFIX "HP SDC at 0x%p, IRQ %d (NMI IRQ %d)\n",
-	       (void *)hp_sdc.base_io, hp_sdc.irq, hp_sdc.nmi);
+	pr_info(PREFIX "HP SDC at 0x%08lx, IRQ %d (NMI IRQ %d)\n",
+	       hp_sdc.base_io, hp_sdc.irq, hp_sdc.nmi);
 
 	hp_sdc_status_in8();
 	hp_sdc_data_in8();
-- 
2.20.1




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

* [PATCH 4.4 14/92] arm64: smp: Handle errors reported by the firmware
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (12 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 13/92] parisc: Fix HP SDC hpa " Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 15/92] PM / AVS: SmartReflex: NULL check before some freeing functions is not needed Greg Kroah-Hartman
                   ` (81 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Steve Capper, Will Deacon,
	Suzuki K Poulose, Sasha Levin

From: Suzuki K Poulose <Suzuki.Poulose@arm.com>

[ Upstream commit f357b3a7e17af7736d67d8267edc1ed3d1dd9391 ]

The __cpu_up() routine ignores the errors reported by the firmware
for a CPU bringup operation and looks for the error status set by the
booting CPU. If the CPU never entered the kernel, we could end up
in assuming stale error status, which otherwise would have been
set/cleared appropriately by the booting CPU.

Reported-by: Steve Capper <steve.capper@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 arch/arm64/kernel/smp.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm64/kernel/smp.c b/arch/arm64/kernel/smp.c
index 03c0946b79d20..7e90f429f7e5c 100644
--- a/arch/arm64/kernel/smp.c
+++ b/arch/arm64/kernel/smp.c
@@ -115,6 +115,7 @@ int __cpu_up(unsigned int cpu, struct task_struct *idle)
 		}
 	} else {
 		pr_err("CPU%u: failed to boot: %d\n", cpu, ret);
+		return ret;
 	}
 
 	secondary_data.stack = NULL;
-- 
2.20.1




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

* [PATCH 4.4 15/92] PM / AVS: SmartReflex: NULL check before some freeing functions is not needed
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (13 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 14/92] arm64: smp: Handle errors reported by the firmware Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 16/92] ARM: ks8695: fix section mismatch warning Greg Kroah-Hartman
                   ` (80 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Thomas Meyer, Kevin Hilman,
	Rafael J. Wysocki, Sasha Levin

From: Thomas Meyer <thomas@m3y3r.de>

[ Upstream commit 14d338a857f05f894ba3badd9e6d3039c68b8180 ]

NULL check before some freeing functions is not needed.

Signed-off-by: Thomas Meyer <thomas@m3y3r.de>
Reviewed-by: Kevin Hilman <khilman@baylibre.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/power/avs/smartreflex.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/power/avs/smartreflex.c b/drivers/power/avs/smartreflex.c
index db9973bb53f19..ecc59798fd0aa 100644
--- a/drivers/power/avs/smartreflex.c
+++ b/drivers/power/avs/smartreflex.c
@@ -1001,8 +1001,7 @@ static int omap_sr_remove(struct platform_device *pdev)
 
 	if (sr_info->autocomp_active)
 		sr_stop_vddautocomp(sr_info);
-	if (sr_info->dbg_dir)
-		debugfs_remove_recursive(sr_info->dbg_dir);
+	debugfs_remove_recursive(sr_info->dbg_dir);
 
 	pm_runtime_disable(&pdev->dev);
 	list_del(&sr_info->node);
-- 
2.20.1




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

* [PATCH 4.4 16/92] ARM: ks8695: fix section mismatch warning
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (14 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 15/92] PM / AVS: SmartReflex: NULL check before some freeing functions is not needed Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 17/92] ACPI / LPSS: Ignore acpi_device_fix_up_power() return value Greg Kroah-Hartman
                   ` (79 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Arnd Bergmann, Olof Johansson, Sasha Levin

From: Arnd Bergmann <arnd@arndb.de>

[ Upstream commit 4aa64677330beeeed721b4b122884dabad845d66 ]

WARNING: vmlinux.o(.text+0x13250): Section mismatch in reference from the function acs5k_i2c_init() to the (unknown reference) .init.data:(unknown)
The function acs5k_i2c_init() references
the (unknown reference) __initdata (unknown).
This is often because acs5k_i2c_init lacks a __initdata
annotation or the annotation of (unknown) is wrong.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 arch/arm/mach-ks8695/board-acs5k.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/mach-ks8695/board-acs5k.c b/arch/arm/mach-ks8695/board-acs5k.c
index 9f9c0441a9175..e372609c48dd0 100644
--- a/arch/arm/mach-ks8695/board-acs5k.c
+++ b/arch/arm/mach-ks8695/board-acs5k.c
@@ -92,7 +92,7 @@ static struct i2c_board_info acs5k_i2c_devs[] __initdata = {
 	},
 };
 
-static void acs5k_i2c_init(void)
+static void __init acs5k_i2c_init(void)
 {
 	/* The gpio interface */
 	platform_device_register(&acs5k_i2c_device);
-- 
2.20.1




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

* [PATCH 4.4 17/92] ACPI / LPSS: Ignore acpi_device_fix_up_power() return value
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (15 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 16/92] ARM: ks8695: fix section mismatch warning Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 18/92] crypto: user - support incremental algorithm dumps Greg Kroah-Hartman
                   ` (78 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Hans de Goede, Rafael J. Wysocki,
	Sasha Levin

From: Hans de Goede <hdegoede@redhat.com>

[ Upstream commit 1a2fa02f7489dc4d746f2a15fb77b3ce1affade8 ]

Ignore acpi_device_fix_up_power() return value. If we return an error
we end up with acpi_default_enumeration() still creating a platform-
device for the device and we end up with the device still being used
but without the special LPSS related handling which is not useful.

Specicifically ignoring the error fixes the touchscreen no longer
working after a suspend/resume on a Prowise PT301 tablet.

This tablet has a broken _PS0 method on the touchscreen's I2C controller,
causing acpi_device_fix_up_power() to fail, causing fallback to standard
platform-dev handling and specifically causing acpi_lpss_save/restore_ctx
to not run.

The I2C controllers _PS0 method does actually turn on the device, but then
does some more nonsense which fails when run during early boot trying to
use I2C opregion handling on another not-yet registered I2C controller.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/acpi/acpi_lpss.c | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/drivers/acpi/acpi_lpss.c b/drivers/acpi/acpi_lpss.c
index 572755e557d6a..e54e6170981b4 100644
--- a/drivers/acpi/acpi_lpss.c
+++ b/drivers/acpi/acpi_lpss.c
@@ -405,12 +405,7 @@ static int acpi_lpss_create_device(struct acpi_device *adev,
 	 * have _PS0 and _PS3 without _PSC (and no power resources), so
 	 * acpi_bus_init_power() will assume that the BIOS has put them into D0.
 	 */
-	ret = acpi_device_fix_up_power(adev);
-	if (ret) {
-		/* Skip the device, but continue the namespace scan. */
-		ret = 0;
-		goto err_out;
-	}
+	acpi_device_fix_up_power(adev);
 
 	adev->driver_data = pdata;
 	pdev = acpi_create_platform_device(adev);
-- 
2.20.1




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

* [PATCH 4.4 18/92] crypto: user - support incremental algorithm dumps
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (16 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 17/92] ACPI / LPSS: Ignore acpi_device_fix_up_power() return value Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 19/92] mwifiex: fix potential NULL dereference and use after free Greg Kroah-Hartman
                   ` (77 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Eric Biggers, Herbert Xu, Sasha Levin

From: Eric Biggers <ebiggers@google.com>

[ Upstream commit 0ac6b8fb23c724b015d9ca70a89126e8d1563166 ]

CRYPTO_MSG_GETALG in NLM_F_DUMP mode sometimes doesn't return all
registered crypto algorithms, because it doesn't support incremental
dumps.  crypto_dump_report() only permits itself to be called once, yet
the netlink subsystem allocates at most ~64 KiB for the skb being dumped
to.  Thus only the first recvmsg() returns data, and it may only include
a subset of the crypto algorithms even if the user buffer passed to
recvmsg() is large enough to hold all of them.

Fix this by using one of the arguments in the netlink_callback structure
to keep track of the current position in the algorithm list.  Then
userspace can do multiple recvmsg() on the socket after sending the dump
request.  This is the way netlink dumps work elsewhere in the kernel;
it's unclear why this was different (probably just an oversight).

Also fix an integer overflow when calculating the dump buffer size hint.

Fixes: a38f7907b926 ("crypto: Add userspace configuration API")
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 crypto/crypto_user.c | 37 ++++++++++++++++++++-----------------
 1 file changed, 20 insertions(+), 17 deletions(-)

diff --git a/crypto/crypto_user.c b/crypto/crypto_user.c
index b93c6db18ed3a..f18dc2d045c2a 100644
--- a/crypto/crypto_user.c
+++ b/crypto/crypto_user.c
@@ -257,30 +257,33 @@ drop_alg:
 
 static int crypto_dump_report(struct sk_buff *skb, struct netlink_callback *cb)
 {
-	struct crypto_alg *alg;
+	const size_t start_pos = cb->args[0];
+	size_t pos = 0;
 	struct crypto_dump_info info;
-	int err;
-
-	if (cb->args[0])
-		goto out;
-
-	cb->args[0] = 1;
+	struct crypto_alg *alg;
+	int res;
 
 	info.in_skb = cb->skb;
 	info.out_skb = skb;
 	info.nlmsg_seq = cb->nlh->nlmsg_seq;
 	info.nlmsg_flags = NLM_F_MULTI;
 
+	down_read(&crypto_alg_sem);
 	list_for_each_entry(alg, &crypto_alg_list, cra_list) {
-		err = crypto_report_alg(alg, &info);
-		if (err)
-			goto out_err;
+		if (pos >= start_pos) {
+			res = crypto_report_alg(alg, &info);
+			if (res == -EMSGSIZE)
+				break;
+			if (res)
+				goto out;
+		}
+		pos++;
 	}
-
+	cb->args[0] = pos;
+	res = skb->len;
 out:
-	return skb->len;
-out_err:
-	return err;
+	up_read(&crypto_alg_sem);
+	return res;
 }
 
 static int crypto_dump_report_done(struct netlink_callback *cb)
@@ -498,7 +501,7 @@ static int crypto_user_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
 	if ((type == (CRYPTO_MSG_GETALG - CRYPTO_MSG_BASE) &&
 	    (nlh->nlmsg_flags & NLM_F_DUMP))) {
 		struct crypto_alg *alg;
-		u16 dump_alloc = 0;
+		unsigned long dump_alloc = 0;
 
 		if (link->dump == NULL)
 			return -EINVAL;
@@ -506,16 +509,16 @@ static int crypto_user_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
 		down_read(&crypto_alg_sem);
 		list_for_each_entry(alg, &crypto_alg_list, cra_list)
 			dump_alloc += CRYPTO_REPORT_MAXSIZE;
+		up_read(&crypto_alg_sem);
 
 		{
 			struct netlink_dump_control c = {
 				.dump = link->dump,
 				.done = link->done,
-				.min_dump_alloc = dump_alloc,
+				.min_dump_alloc = min(dump_alloc, 65535UL),
 			};
 			err = netlink_dump_start(crypto_nlsk, skb, nlh, &c);
 		}
-		up_read(&crypto_alg_sem);
 
 		return err;
 	}
-- 
2.20.1




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

* [PATCH 4.4 19/92] mwifiex: fix potential NULL dereference and use after free
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (17 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 18/92] crypto: user - support incremental algorithm dumps Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 20/92] mwifiex: debugfs: correct histogram spacing, formatting Greg Kroah-Hartman
                   ` (76 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Pan Bian, Kalle Valo, Sasha Levin

From: Pan Bian <bianpan2016@163.com>

[ Upstream commit 1dcd9429212b98bea87fc6ec92fb50bf5953eb47 ]

There are two defects: (1) passing a NULL bss to
mwifiex_save_hidden_ssid_channels will result in NULL dereference,
(2) using bss after dropping the reference to it via cfg80211_put_bss.
To fix them, the patch moves the buggy code to the branch that bss is
not NULL and puts it before cfg80211_put_bss.

Signed-off-by: Pan Bian <bianpan2016@163.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/net/wireless/mwifiex/scan.c | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/drivers/net/wireless/mwifiex/scan.c b/drivers/net/wireless/mwifiex/scan.c
index b3fa3e4bed052..39b78dc1bd92b 100644
--- a/drivers/net/wireless/mwifiex/scan.c
+++ b/drivers/net/wireless/mwifiex/scan.c
@@ -1873,15 +1873,17 @@ mwifiex_parse_single_response_buf(struct mwifiex_private *priv, u8 **bss_info,
 					    ETH_ALEN))
 					mwifiex_update_curr_bss_params(priv,
 								       bss);
-				cfg80211_put_bss(priv->wdev.wiphy, bss);
-			}
 
-			if ((chan->flags & IEEE80211_CHAN_RADAR) ||
-			    (chan->flags & IEEE80211_CHAN_NO_IR)) {
-				mwifiex_dbg(adapter, INFO,
-					    "radar or passive channel %d\n",
-					    channel);
-				mwifiex_save_hidden_ssid_channels(priv, bss);
+				if ((chan->flags & IEEE80211_CHAN_RADAR) ||
+				    (chan->flags & IEEE80211_CHAN_NO_IR)) {
+					mwifiex_dbg(adapter, INFO,
+						    "radar or passive channel %d\n",
+						    channel);
+					mwifiex_save_hidden_ssid_channels(priv,
+									  bss);
+				}
+
+				cfg80211_put_bss(priv->wdev.wiphy, bss);
 			}
 		}
 	} else {
-- 
2.20.1




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

* [PATCH 4.4 20/92] mwifiex: debugfs: correct histogram spacing, formatting
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (18 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 19/92] mwifiex: fix potential NULL dereference and use after free Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 21/92] rtl818x: fix potential use after free Greg Kroah-Hartman
                   ` (75 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Brian Norris, Kalle Valo, Sasha Levin

From: Brian Norris <briannorris@chromium.org>

[ Upstream commit 4cb777c64e030778c569f605398d7604d8aabc0f ]

Currently, snippets of this file look like:

rx rates (in Mbps): 0=1M   1=2M2=5.5M  3=11M   4=6M   5=9M  6=12M
7=18M  8=24M  9=36M  10=48M  11=54M12-27=MCS0-15(BW20) 28-43=MCS0-15(BW40)
44-53=MCS0-9(VHT:BW20)54-63=MCS0-9(VHT:BW40)64-73=MCS0-9(VHT:BW80)
...
noise_flr[--96dBm] = 22
noise_flr[--95dBm] = 149
noise_flr[--94dBm] = 9
noise_flr[--93dBm] = 2

We're missing some spaces, and we're adding a minus sign ('-') on values
that are already negative signed integers.

Signed-off-by: Brian Norris <briannorris@chromium.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/net/wireless/mwifiex/debugfs.c | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/drivers/net/wireless/mwifiex/debugfs.c b/drivers/net/wireless/mwifiex/debugfs.c
index 45d97b64ef84b..f72c4f8853111 100644
--- a/drivers/net/wireless/mwifiex/debugfs.c
+++ b/drivers/net/wireless/mwifiex/debugfs.c
@@ -295,15 +295,13 @@ mwifiex_histogram_read(struct file *file, char __user *ubuf,
 		     "total samples = %d\n",
 		     atomic_read(&phist_data->num_samples));
 
-	p += sprintf(p, "rx rates (in Mbps): 0=1M   1=2M");
-	p += sprintf(p, "2=5.5M  3=11M   4=6M   5=9M  6=12M\n");
-	p += sprintf(p, "7=18M  8=24M  9=36M  10=48M  11=54M");
-	p += sprintf(p, "12-27=MCS0-15(BW20) 28-43=MCS0-15(BW40)\n");
+	p += sprintf(p,
+		     "rx rates (in Mbps): 0=1M   1=2M 2=5.5M  3=11M   4=6M   5=9M  6=12M\n"
+		     "7=18M  8=24M  9=36M  10=48M  11=54M 12-27=MCS0-15(BW20) 28-43=MCS0-15(BW40)\n");
 
 	if (ISSUPP_11ACENABLED(priv->adapter->fw_cap_info)) {
-		p += sprintf(p, "44-53=MCS0-9(VHT:BW20)");
-		p += sprintf(p, "54-63=MCS0-9(VHT:BW40)");
-		p += sprintf(p, "64-73=MCS0-9(VHT:BW80)\n\n");
+		p += sprintf(p,
+			     "44-53=MCS0-9(VHT:BW20) 54-63=MCS0-9(VHT:BW40) 64-73=MCS0-9(VHT:BW80)\n\n");
 	} else {
 		p += sprintf(p, "\n");
 	}
@@ -332,7 +330,7 @@ mwifiex_histogram_read(struct file *file, char __user *ubuf,
 	for (i = 0; i < MWIFIEX_MAX_NOISE_FLR; i++) {
 		value = atomic_read(&phist_data->noise_flr[i]);
 		if (value)
-			p += sprintf(p, "noise_flr[-%02ddBm] = %d\n",
+			p += sprintf(p, "noise_flr[%02ddBm] = %d\n",
 				(int)(i-128), value);
 	}
 	for (i = 0; i < MWIFIEX_MAX_SIG_STRENGTH; i++) {
-- 
2.20.1




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

* [PATCH 4.4 21/92] rtl818x: fix potential use after free
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (19 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 20/92] mwifiex: debugfs: correct histogram spacing, formatting Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 22/92] xfs: require both realtime inodes to mount Greg Kroah-Hartman
                   ` (74 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Pan Bian, Larry Finger, Kalle Valo,
	Sasha Levin

From: Pan Bian <bianpan2016@163.com>

[ Upstream commit afbb1947db94eacc5a13302eee88a9772fb78935 ]

entry is released via usb_put_urb just after calling usb_submit_urb.
However, entry is used if the submission fails, resulting in a use after
free bug. The patch fixes this.

Signed-off-by: Pan Bian <bianpan2016@163.com>
ACKed-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/net/wireless/realtek/rtl818x/rtl8187/dev.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wireless/realtek/rtl818x/rtl8187/dev.c b/drivers/net/wireless/realtek/rtl818x/rtl8187/dev.c
index b3691712df610..60e77eaa4ce94 100644
--- a/drivers/net/wireless/realtek/rtl818x/rtl8187/dev.c
+++ b/drivers/net/wireless/realtek/rtl818x/rtl8187/dev.c
@@ -446,12 +446,13 @@ static int rtl8187_init_urbs(struct ieee80211_hw *dev)
 		skb_queue_tail(&priv->rx_queue, skb);
 		usb_anchor_urb(entry, &priv->anchored);
 		ret = usb_submit_urb(entry, GFP_KERNEL);
-		usb_put_urb(entry);
 		if (ret) {
 			skb_unlink(skb, &priv->rx_queue);
 			usb_unanchor_urb(entry);
+			usb_put_urb(entry);
 			goto err;
 		}
+		usb_put_urb(entry);
 	}
 	return ret;
 
-- 
2.20.1




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

* [PATCH 4.4 22/92] xfs: require both realtime inodes to mount
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (20 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 21/92] rtl818x: fix potential use after free Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 23/92] ubi: Put MTD device after it is not used Greg Kroah-Hartman
                   ` (73 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Darrick J. Wong, Bill ODonnell, Sasha Levin

From: Darrick J. Wong <darrick.wong@oracle.com>

[ Upstream commit 64bafd2f1e484e27071e7584642005d56516cb77 ]

Since mkfs always formats the filesystem with the realtime bitmap and
summary inodes immediately after the root directory, we should expect
that both of them are present and loadable, even if there isn't a
realtime volume attached.  There's no reason to skip this if rbmino ==
NULLFSINO; in fact, this causes an immediate crash if the there /is/ a
realtime volume and someone writes to it.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Bill O'Donnell <billodo@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 fs/xfs/xfs_rtalloc.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/fs/xfs/xfs_rtalloc.c b/fs/xfs/xfs_rtalloc.c
index ab1bac6a3a1c0..919b6544b61a3 100644
--- a/fs/xfs/xfs_rtalloc.c
+++ b/fs/xfs/xfs_rtalloc.c
@@ -1225,13 +1225,11 @@ xfs_rtmount_inodes(
 	xfs_sb_t	*sbp;
 
 	sbp = &mp->m_sb;
-	if (sbp->sb_rbmino == NULLFSINO)
-		return 0;
 	error = xfs_iget(mp, NULL, sbp->sb_rbmino, 0, 0, &mp->m_rbmip);
 	if (error)
 		return error;
 	ASSERT(mp->m_rbmip != NULL);
-	ASSERT(sbp->sb_rsumino != NULLFSINO);
+
 	error = xfs_iget(mp, NULL, sbp->sb_rsumino, 0, 0, &mp->m_rsumip);
 	if (error) {
 		IRELE(mp->m_rbmip);
-- 
2.20.1




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

* [PATCH 4.4 23/92] ubi: Put MTD device after it is not used
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (21 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 22/92] xfs: require both realtime inodes to mount Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 24/92] ubi: Do not drop UBI device reference before using Greg Kroah-Hartman
                   ` (72 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Pan Bian, Boris Brezillon,
	Richard Weinberger, Sasha Levin

From: Pan Bian <bianpan2016@163.com>

[ Upstream commit b95f83ab762dd6211351b9140f99f43644076ca8 ]

The MTD device reference is dropped via put_mtd_device, however its
field ->index is read and passed to ubi_msg. To fix this, the patch
moves the reference dropping after calling ubi_msg.

Signed-off-by: Pan Bian <bianpan2016@163.com>
Reviewed-by: Boris Brezillon <boris.brezillon@bootlin.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/mtd/ubi/build.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/mtd/ubi/build.c b/drivers/mtd/ubi/build.c
index c9f5ae424af75..ae8e55b4f6f93 100644
--- a/drivers/mtd/ubi/build.c
+++ b/drivers/mtd/ubi/build.c
@@ -1141,10 +1141,10 @@ int ubi_detach_mtd_dev(int ubi_num, int anyway)
 	ubi_wl_close(ubi);
 	ubi_free_internal_volumes(ubi);
 	vfree(ubi->vtbl);
-	put_mtd_device(ubi->mtd);
 	vfree(ubi->peb_buf);
 	vfree(ubi->fm_buf);
 	ubi_msg(ubi, "mtd%d is detached", ubi->mtd->index);
+	put_mtd_device(ubi->mtd);
 	put_device(&ubi->dev);
 	return 0;
 }
-- 
2.20.1




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

* [PATCH 4.4 24/92] ubi: Do not drop UBI device reference before using
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (22 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 23/92] ubi: Put MTD device after it is not used Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 25/92] microblaze: adjust the help to the real behavior Greg Kroah-Hartman
                   ` (71 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Pan Bian, Boris Brezillon,
	Richard Weinberger, Sasha Levin

From: Pan Bian <bianpan2016@163.com>

[ Upstream commit e542087701f09418702673631a908429feb3eae0 ]

The UBI device reference is dropped but then the device is used as a
parameter of ubi_err. The bug is introduced in changing ubi_err's
behavior. The old ubi_err does not require a UBI device as its first
parameter, but the new one does.

Fixes: 32608703310 ("UBI: Extend UBI layer debug/messaging capabilities")
Signed-off-by: Pan Bian <bianpan2016@163.com>
Reviewed-by: Boris Brezillon <boris.brezillon@bootlin.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/mtd/ubi/kapi.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/mtd/ubi/kapi.c b/drivers/mtd/ubi/kapi.c
index e844887732fbd..1db375caef71b 100644
--- a/drivers/mtd/ubi/kapi.c
+++ b/drivers/mtd/ubi/kapi.c
@@ -227,9 +227,9 @@ out_unlock:
 out_free:
 	kfree(desc);
 out_put_ubi:
-	ubi_put_device(ubi);
 	ubi_err(ubi, "cannot open device %d, volume %d, error %d",
 		ubi_num, vol_id, err);
+	ubi_put_device(ubi);
 	return ERR_PTR(err);
 }
 EXPORT_SYMBOL_GPL(ubi_open_volume);
-- 
2.20.1




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

* [PATCH 4.4 25/92] microblaze: adjust the help to the real behavior
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (23 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 24/92] ubi: Do not drop UBI device reference before using Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 26/92] microblaze: move "... is ready" messages to arch/microblaze/Makefile Greg Kroah-Hartman
                   ` (70 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Masahiro Yamada, Michal Simek, Sasha Levin

From: Masahiro Yamada <yamada.masahiro@socionext.com>

[ Upstream commit bafcc61d998c1ca18f556d92a0e95335ac68c7da ]

"make ARCH=microblaze help" mentions simpleImage.<dt>.unstrip,
but it is not a real Make target. It does not work because Makefile
assumes "system.unstrip" is the name of DT.

$ make ARCH=microblaze CROSS_COMPILE=microblaze-linux- simpleImage.system.unstrip
  [ snip ]
make[1]: *** No rule to make target 'arch/microblaze/boot/dts/system.unstrip.dtb', needed by 'arch/microblaze/boot/dts/system.dtb'.  Stop.
make: *** [Makefile;1060: arch/microblaze/boot/dts] Error 2
make: *** Waiting for unfinished jobs....

simpleImage.<dt> works like a phony target that generates multiple
images. Reflect the real behavior. I removed the DT directory path
information because it is already explained a few lines below.

While I am here, I deleted the redundant *_defconfig explanation.

The top-level Makefile caters to list available defconfig files:

  mmu_defconfig            - Build for mmu
  nommu_defconfig          - Build for nommu

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 arch/microblaze/Makefile | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/arch/microblaze/Makefile b/arch/microblaze/Makefile
index 740f2b82a182a..5e1e18540a571 100644
--- a/arch/microblaze/Makefile
+++ b/arch/microblaze/Makefile
@@ -83,11 +83,11 @@ define archhelp
   echo '* linux.bin    - Create raw binary'
   echo '  linux.bin.gz - Create compressed raw binary'
   echo '  linux.bin.ub - Create U-Boot wrapped raw binary'
-  echo '  simpleImage.<dt> - ELF image with $(arch)/boot/dts/<dt>.dts linked in'
-  echo '                   - stripped elf with fdt blob'
-  echo '  simpleImage.<dt>.unstrip - full ELF image with fdt blob'
-  echo '  *_defconfig      - Select default config from arch/microblaze/configs'
-  echo ''
+  echo '  simpleImage.<dt> - Create the following images with <dt>.dtb linked in'
+  echo '                    simpleImage.<dt>        : raw image'
+  echo '                    simpleImage.<dt>.ub     : raw image with U-Boot header'
+  echo '                    simpleImage.<dt>.unstrip: ELF (identical to vmlinux)'
+  echo '                    simpleImage.<dt>.strip  : stripped ELF'
   echo '  Targets with <dt> embed a device tree blob inside the image'
   echo '  These targets support board with firmware that does not'
   echo '  support passing a device tree directly. Replace <dt> with the'
-- 
2.20.1




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

* [PATCH 4.4 26/92] microblaze: move "... is ready" messages to arch/microblaze/Makefile
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (24 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 25/92] microblaze: adjust the help to the real behavior Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 27/92] gpiolib: Fix return value of gpio_to_desc() stub if !GPIOLIB Greg Kroah-Hartman
                   ` (69 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Masahiro Yamada, Michal Simek, Sasha Levin

From: Masahiro Yamada <yamada.masahiro@socionext.com>

[ Upstream commit 2e14f94cf4bc2f15ca5362e81ca3a987c79e3062 ]

To prepare for more fixes, move this to arch/microblaze/Makefile.
Otherwise, the same "... is ready" would be printed multiple times.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 arch/microblaze/Makefile      | 2 ++
 arch/microblaze/boot/Makefile | 4 ----
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/arch/microblaze/Makefile b/arch/microblaze/Makefile
index 5e1e18540a571..491676a6cde57 100644
--- a/arch/microblaze/Makefile
+++ b/arch/microblaze/Makefile
@@ -75,9 +75,11 @@ archclean:
 
 linux.bin linux.bin.gz linux.bin.ub: vmlinux
 	$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
+	@echo 'Kernel: $(boot)/$@ is ready' ' (#'`cat .version`')'
 
 simpleImage.%: vmlinux
 	$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
+	@echo 'Kernel: $(boot)/$@ is ready' ' (#'`cat .version`')'
 
 define archhelp
   echo '* linux.bin    - Create raw binary'
diff --git a/arch/microblaze/boot/Makefile b/arch/microblaze/boot/Makefile
index 0f3fe6a151dce..22bed08ec7f28 100644
--- a/arch/microblaze/boot/Makefile
+++ b/arch/microblaze/boot/Makefile
@@ -8,15 +8,12 @@ OBJCOPYFLAGS := -R .note -R .comment -R .note.gnu.build-id -O binary
 
 $(obj)/linux.bin: vmlinux FORCE
 	$(call if_changed,objcopy)
-	@echo 'Kernel: $@ is ready' ' (#'`cat .version`')'
 
 $(obj)/linux.bin.ub: $(obj)/linux.bin FORCE
 	$(call if_changed,uimage)
-	@echo 'Kernel: $@ is ready' ' (#'`cat .version`')'
 
 $(obj)/linux.bin.gz: $(obj)/linux.bin FORCE
 	$(call if_changed,gzip)
-	@echo 'Kernel: $@ is ready' ' (#'`cat .version`')'
 
 quiet_cmd_cp = CP      $< $@$2
 	cmd_cp = cat $< >$@$2 || (rm -f $@ && echo false)
@@ -34,6 +31,5 @@ $(obj)/simpleImage.%: vmlinux FORCE
 	$(call if_changed,objcopy)
 	$(call if_changed,uimage)
 	$(call if_changed,strip,.strip)
-	@echo 'Kernel: $(UIMAGE_OUT) is ready' ' (#'`cat .version`')'
 
 clean-files += simpleImage.*.unstrip linux.bin.ub dts/*.dtb
-- 
2.20.1




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

* [PATCH 4.4 27/92] gpiolib: Fix return value of gpio_to_desc() stub if !GPIOLIB
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (25 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 26/92] microblaze: move "... is ready" messages to arch/microblaze/Makefile Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 28/92] VSOCK: bind to random port for VMADDR_PORT_ANY Greg Kroah-Hartman
                   ` (68 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Krzysztof Kozlowski, Linus Walleij,
	Sasha Levin

From: Krzysztof Kozlowski <krzk@kernel.org>

[ Upstream commit c5510b8dafce5f3f5a039c9b262ebcae0092c462 ]

If CONFIG_GPOILIB is not set, the stub of gpio_to_desc() should return
the same type of error as regular version: NULL.  All the callers
compare the return value of gpio_to_desc() against NULL, so returned
ERR_PTR would be treated as non-error case leading to dereferencing of
error value.

Fixes: 79a9becda894 ("gpiolib: export descriptor-based GPIO interface")
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 include/linux/gpio/consumer.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/linux/gpio/consumer.h b/include/linux/gpio/consumer.h
index fb0fde686cb1f..4a9838feb0866 100644
--- a/include/linux/gpio/consumer.h
+++ b/include/linux/gpio/consumer.h
@@ -398,7 +398,7 @@ static inline int gpiod_to_irq(const struct gpio_desc *desc)
 
 static inline struct gpio_desc *gpio_to_desc(unsigned gpio)
 {
-	return ERR_PTR(-EINVAL);
+	return NULL;
 }
 
 static inline int desc_to_gpio(const struct gpio_desc *desc)
-- 
2.20.1




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

* [PATCH 4.4 28/92] VSOCK: bind to random port for VMADDR_PORT_ANY
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (26 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 27/92] gpiolib: Fix return value of gpio_to_desc() stub if !GPIOLIB Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 29/92] btrfs: only track ref_heads in delayed_ref_updates Greg Kroah-Hartman
                   ` (67 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Lepton Wu, Jorgen Hansen,
	David S. Miller, Sasha Levin

From: Lepton Wu <ytht.net@gmail.com>

[ Upstream commit 8236b08cf50f85bbfaf48910a0b3ee68318b7c4b ]

The old code always starts from fixed port for VMADDR_PORT_ANY. Sometimes
when VMM crashed, there is still orphaned vsock which is waiting for
close timer, then it could cause connection time out for new started VM
if they are trying to connect to same port with same guest cid since the
new packets could hit that orphaned vsock. We could also fix this by doing
more in vhost_vsock_reset_orphans, but any way, it should be better to start
from a random local port instead of a fixed one.

Signed-off-by: Lepton Wu <ytht.net@gmail.com>
Reviewed-by: Jorgen Hansen <jhansen@vmware.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 net/vmw_vsock/af_vsock.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/net/vmw_vsock/af_vsock.c b/net/vmw_vsock/af_vsock.c
index 7f1d166ce6128..412d56614fd5e 100644
--- a/net/vmw_vsock/af_vsock.c
+++ b/net/vmw_vsock/af_vsock.c
@@ -89,6 +89,7 @@
 #include <linux/mutex.h>
 #include <linux/net.h>
 #include <linux/poll.h>
+#include <linux/random.h>
 #include <linux/skbuff.h>
 #include <linux/smp.h>
 #include <linux/socket.h>
@@ -483,9 +484,13 @@ out:
 static int __vsock_bind_stream(struct vsock_sock *vsk,
 			       struct sockaddr_vm *addr)
 {
-	static u32 port = LAST_RESERVED_PORT + 1;
+	static u32 port = 0;
 	struct sockaddr_vm new_addr;
 
+	if (!port)
+		port = LAST_RESERVED_PORT + 1 +
+			prandom_u32_max(U32_MAX - LAST_RESERVED_PORT);
+
 	vsock_addr_init(&new_addr, addr->svm_cid, addr->svm_port);
 
 	if (addr->svm_port == VMADDR_PORT_ANY) {
-- 
2.20.1




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

* [PATCH 4.4 29/92] btrfs: only track ref_heads in delayed_ref_updates
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (27 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 28/92] VSOCK: bind to random port for VMADDR_PORT_ANY Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 30/92] xen/pciback: Check dev_data before using it Greg Kroah-Hartman
                   ` (66 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Nikolay Borisov, Josef Bacik,
	David Sterba, Sasha Levin

From: Josef Bacik <jbacik@fb.com>

[ Upstream commit 158ffa364bf723fa1ef128060646d23dc3942994 ]

We use this number to figure out how many delayed refs to run, but
__btrfs_run_delayed_refs really only checks every time we need a new
delayed ref head, so we always run at least one ref head completely no
matter what the number of items on it.  Fix the accounting to only be
adjusted when we add/remove a ref head.

In addition to using this number to limit the number of delayed refs
run, a future patch is also going to use it to calculate the amount of
space required for delayed refs space reservation.

Reviewed-by: Nikolay Borisov <nborisov@suse.com>
Signed-off-by: Josef Bacik <jbacik@fb.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 fs/btrfs/delayed-ref.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/fs/btrfs/delayed-ref.c b/fs/btrfs/delayed-ref.c
index e06dd75ad13f9..a2f165029ee62 100644
--- a/fs/btrfs/delayed-ref.c
+++ b/fs/btrfs/delayed-ref.c
@@ -193,8 +193,6 @@ static inline void drop_delayed_ref(struct btrfs_trans_handle *trans,
 	ref->in_tree = 0;
 	btrfs_put_delayed_ref(ref);
 	atomic_dec(&delayed_refs->num_entries);
-	if (trans->delayed_ref_updates)
-		trans->delayed_ref_updates--;
 }
 
 static bool merge_ref(struct btrfs_trans_handle *trans,
@@ -444,7 +442,6 @@ add_delayed_ref_tail_merge(struct btrfs_trans_handle *trans,
 add_tail:
 	list_add_tail(&ref->list, &href->ref_list);
 	atomic_inc(&root->num_entries);
-	trans->delayed_ref_updates++;
 	spin_unlock(&href->lock);
 	return ret;
 }
-- 
2.20.1




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

* [PATCH 4.4 30/92] xen/pciback: Check dev_data before using it
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (28 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 29/92] btrfs: only track ref_heads in delayed_ref_updates Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 31/92] KVM: s390: unregister debug feature on failing arch init Greg Kroah-Hartman
                   ` (65 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Ross Lagerwall, Boris Ostrovsky, Sasha Levin

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

[ Upstream commit 1669907e3d1abfa3f7586e2d55dbbc117b5adba2 ]

If pcistub_init_device fails, the release function will be called with
dev_data set to NULL.  Check it before using it to avoid a NULL pointer
dereference.

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 <sashal@kernel.org>
---
 drivers/xen/xen-pciback/pci_stub.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/xen/xen-pciback/pci_stub.c b/drivers/xen/xen-pciback/pci_stub.c
index 258b7c3256499..47c6df53cabfb 100644
--- a/drivers/xen/xen-pciback/pci_stub.c
+++ b/drivers/xen/xen-pciback/pci_stub.c
@@ -104,7 +104,8 @@ static void pcistub_device_release(struct kref *kref)
 	 * is called from "unbind" which takes a device_lock mutex.
 	 */
 	__pci_reset_function_locked(dev);
-	if (pci_load_and_free_saved_state(dev, &dev_data->pci_saved_state))
+	if (dev_data &&
+	    pci_load_and_free_saved_state(dev, &dev_data->pci_saved_state))
 		dev_info(&dev->dev, "Could not reload PCI state\n");
 	else
 		pci_restore_state(dev);
-- 
2.20.1




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

* [PATCH 4.4 31/92] KVM: s390: unregister debug feature on failing arch init
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (29 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 30/92] xen/pciback: Check dev_data before using it Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 32/92] pinctrl: sh-pfc: sh7264: Fix PFCR3 and PFCR0 register configuration Greg Kroah-Hartman
                   ` (64 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Michael Mueller, Cornelia Huck,
	Pierre Morel, David Hildenbrand, Christian Borntraeger,
	Sasha Levin

From: Michael Mueller <mimu@linux.ibm.com>

[ Upstream commit 308c3e6673b012beecb96ef04cc65f4a0e7cdd99 ]

Make sure the debug feature and its allocated resources get
released upon unsuccessful architecture initialization.

A related indication of the issue will be reported as kernel
message.

Signed-off-by: Michael Mueller <mimu@linux.ibm.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: Pierre Morel <pmorel@linux.ibm.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Message-Id: <20181130143215.69496-2-mimu@linux.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 arch/s390/kvm/kvm-s390.c | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
index 3e46f62d32adf..b4032d625d225 100644
--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -185,17 +185,28 @@ void kvm_arch_hardware_unsetup(void)
 
 int kvm_arch_init(void *opaque)
 {
+	int rc;
+
 	kvm_s390_dbf = debug_register("kvm-trace", 32, 1, 7 * sizeof(long));
 	if (!kvm_s390_dbf)
 		return -ENOMEM;
 
 	if (debug_register_view(kvm_s390_dbf, &debug_sprintf_view)) {
-		debug_unregister(kvm_s390_dbf);
-		return -ENOMEM;
+		rc = -ENOMEM;
+		goto out_debug_unreg;
 	}
 
 	/* Register floating interrupt controller interface. */
-	return kvm_register_device_ops(&kvm_flic_ops, KVM_DEV_TYPE_FLIC);
+	rc = kvm_register_device_ops(&kvm_flic_ops, KVM_DEV_TYPE_FLIC);
+	if (rc) {
+		pr_err("Failed to register FLIC rc=%d\n", rc);
+		goto out_debug_unreg;
+	}
+	return 0;
+
+out_debug_unreg:
+	debug_unregister(kvm_s390_dbf);
+	return rc;
 }
 
 void kvm_arch_exit(void)
-- 
2.20.1




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

* [PATCH 4.4 32/92] pinctrl: sh-pfc: sh7264: Fix PFCR3 and PFCR0 register configuration
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (30 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 31/92] KVM: s390: unregister debug feature on failing arch init Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 33/92] pinctrl: sh-pfc: sh7734: Fix shifted values in IPSR10 Greg Kroah-Hartman
                   ` (63 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Geert Uytterhoeven, Simon Horman,
	Sasha Levin

From: Geert Uytterhoeven <geert+renesas@glider.be>

[ Upstream commit 1b99d0c80bbe1810572c2cb77b90f67886adfa8d ]

The Port F Control Register 3 (PFCR3) contains only a single field.
However, counting from left to right, it is the fourth field, not the
first field.
Insert the missing dummy configuration values (3 fields of 16 values) to
fix this.

The descriptor for the Port F Control Register 0 (PFCR0) lacks the
description for the 4th field (PF0 Mode, PF0MD[2:0]).
Add the missing configuration values to fix this.

Fixes: a8d42fc4217b1ea1 ("sh-pfc: Add sh7264 pinmux support")
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Simon Horman <horms+renesas@verge.net.au>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/pinctrl/sh-pfc/pfc-sh7264.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/pinctrl/sh-pfc/pfc-sh7264.c b/drivers/pinctrl/sh-pfc/pfc-sh7264.c
index 8070765311dbf..e1c34e19222ee 100644
--- a/drivers/pinctrl/sh-pfc/pfc-sh7264.c
+++ b/drivers/pinctrl/sh-pfc/pfc-sh7264.c
@@ -1716,6 +1716,9 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = {
 	},
 
 	{ PINMUX_CFG_REG("PFCR3", 0xfffe38a8, 16, 4) {
+		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 		PF12MD_000, PF12MD_001, 0, PF12MD_011,
 		PF12MD_100, PF12MD_101, 0, 0,
 		0, 0, 0, 0, 0, 0, 0, 0 }
@@ -1759,8 +1762,10 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = {
 		0, 0, 0, 0, 0, 0, 0, 0,
 		PF1MD_000, PF1MD_001, PF1MD_010, PF1MD_011,
 		PF1MD_100, PF1MD_101, 0, 0,
-		0, 0, 0, 0, 0, 0, 0, 0
-	 }
+		0, 0, 0, 0, 0, 0, 0, 0,
+		PF0MD_000, PF0MD_001, PF0MD_010, PF0MD_011,
+		PF0MD_100, PF0MD_101, 0, 0,
+		0, 0, 0, 0, 0, 0, 0, 0 }
 	},
 
 	{ PINMUX_CFG_REG("PFIOR0", 0xfffe38b2, 16, 1) {
-- 
2.20.1




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

* [PATCH 4.4 33/92] pinctrl: sh-pfc: sh7734: Fix shifted values in IPSR10
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (31 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 32/92] pinctrl: sh-pfc: sh7264: Fix PFCR3 and PFCR0 register configuration Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 34/92] HID: doc: fix wrong data structure reference for UHID_OUTPUT Greg Kroah-Hartman
                   ` (62 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Geert Uytterhoeven, Simon Horman,
	Sasha Levin

From: Geert Uytterhoeven <geert+renesas@glider.be>

[ Upstream commit 054f2400f706327f96770219c3065b5131f8f154 ]

Some values in the Peripheral Function Select Register 10 descriptor are
shifted by one position, which may cause a peripheral function to be
programmed incorrectly.

Fixing this makes all HSCIF0 pins use Function 4 (value 3), like was
already the case for the HSCK0 pin in field IP10[5:3].

Fixes: ac1ebc2190f575fc ("sh-pfc: Add sh7734 pinmux support")
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Simon Horman <horms+renesas@verge.net.au>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/pinctrl/sh-pfc/pfc-sh7734.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/pinctrl/sh-pfc/pfc-sh7734.c b/drivers/pinctrl/sh-pfc/pfc-sh7734.c
index 9842bb1067969..c691b2e343746 100644
--- a/drivers/pinctrl/sh-pfc/pfc-sh7734.c
+++ b/drivers/pinctrl/sh-pfc/pfc-sh7734.c
@@ -2218,22 +2218,22 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = {
 	    /* IP10_22 [1] */
 		FN_CAN_CLK_A, FN_RX4_D,
 	    /* IP10_21_19 [3] */
-		FN_AUDIO_CLKOUT, FN_TX1_E, FN_HRTS0_C, FN_FSE_B,
-		FN_LCD_M_DISP_B, 0, 0, 0,
+		FN_AUDIO_CLKOUT, FN_TX1_E, 0, FN_HRTS0_C, FN_FSE_B,
+		FN_LCD_M_DISP_B, 0, 0,
 	    /* IP10_18_16 [3] */
-		FN_AUDIO_CLKC, FN_SCK1_E, FN_HCTS0_C, FN_FRB_B,
-		FN_LCD_VEPWC_B, 0, 0, 0,
+		FN_AUDIO_CLKC, FN_SCK1_E, 0, FN_HCTS0_C, FN_FRB_B,
+		FN_LCD_VEPWC_B, 0, 0,
 	    /* IP10_15 [1] */
 		FN_AUDIO_CLKB_A, FN_LCD_CLK_B,
 	    /* IP10_14_12 [3] */
 		FN_AUDIO_CLKA_A, FN_VI1_CLK_B, FN_SCK1_D, FN_IECLK_B,
 		FN_LCD_FLM_B, 0, 0, 0,
 	    /* IP10_11_9 [3] */
-		FN_SSI_SDATA3, FN_VI1_7_B, FN_HTX0_C, FN_FWE_B,
-		FN_LCD_CL2_B, 0, 0, 0,
+		FN_SSI_SDATA3, FN_VI1_7_B, 0, FN_HTX0_C, FN_FWE_B,
+		FN_LCD_CL2_B, 0, 0,
 	    /* IP10_8_6 [3] */
-		FN_SSI_SDATA2, FN_VI1_6_B, FN_HRX0_C, FN_FRE_B,
-		FN_LCD_CL1_B, 0, 0, 0,
+		FN_SSI_SDATA2, FN_VI1_6_B, 0, FN_HRX0_C, FN_FRE_B,
+		FN_LCD_CL1_B, 0, 0,
 	    /* IP10_5_3 [3] */
 		FN_SSI_WS23, FN_VI1_5_B, FN_TX1_D, FN_HSCK0_C, FN_FALE_B,
 		FN_LCD_DON_B, 0, 0, 0,
-- 
2.20.1




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

* [PATCH 4.4 34/92] HID: doc: fix wrong data structure reference for UHID_OUTPUT
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (32 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 33/92] pinctrl: sh-pfc: sh7734: Fix shifted values in IPSR10 Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 35/92] gfs2: take jdata unstuff into account in do_grow Greg Kroah-Hartman
                   ` (61 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Peter Hutterer, Jiri Kosina, Sasha Levin

From: Peter Hutterer <peter.hutterer@who-t.net>

[ Upstream commit 46b14eef59a8157138dc02f916a7f97c73b3ec53 ]

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 Documentation/hid/uhid.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Documentation/hid/uhid.txt b/Documentation/hid/uhid.txt
index c8656dd029a91..958fff9453044 100644
--- a/Documentation/hid/uhid.txt
+++ b/Documentation/hid/uhid.txt
@@ -160,7 +160,7 @@ them but you should handle them according to your needs.
   UHID_OUTPUT:
   This is sent if the HID device driver wants to send raw data to the I/O
   device on the interrupt channel. You should read the payload and forward it to
-  the device. The payload is of type "struct uhid_data_req".
+  the device. The payload is of type "struct uhid_output_req".
   This may be received even though you haven't received UHID_OPEN, yet.
 
   UHID_GET_REPORT:
-- 
2.20.1




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

* [PATCH 4.4 35/92] gfs2: take jdata unstuff into account in do_grow
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (33 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 34/92] HID: doc: fix wrong data structure reference for UHID_OUTPUT Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 36/92] xfs: Align compat attrlist_by_handle with native implementation Greg Kroah-Hartman
                   ` (60 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Bob Peterson, Andreas Gruenbacher,
	Sasha Levin

From: Bob Peterson <rpeterso@redhat.com>

[ Upstream commit bc0205612bbd4dd4026d4ba6287f5643c37366ec ]

Before this patch, function do_grow would not reserve enough journal
blocks in the transaction to unstuff jdata files while growing them.
This patch adds the logic to add one more block if the file to grow
is jdata.

Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Reviewed-by: Andreas Gruenbacher <agruenba@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 fs/gfs2/bmap.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/fs/gfs2/bmap.c b/fs/gfs2/bmap.c
index 09476bb8f6cd0..f0302e09eff99 100644
--- a/fs/gfs2/bmap.c
+++ b/fs/gfs2/bmap.c
@@ -1235,6 +1235,8 @@ static int do_grow(struct inode *inode, u64 size)
 	}
 
 	error = gfs2_trans_begin(sdp, RES_DINODE + RES_STATFS + RES_RG_BIT +
+				 (unstuff &&
+				  gfs2_is_jdata(ip) ? RES_JDATA : 0) +
 				 (sdp->sd_args.ar_quota == GFS2_QUOTA_OFF ?
 				  0 : RES_QUOTA), 0);
 	if (error)
-- 
2.20.1




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

* [PATCH 4.4 36/92] xfs: Align compat attrlist_by_handle with native implementation.
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (34 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 35/92] gfs2: take jdata unstuff into account in do_grow Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 37/92] IB/qib: Fix an error code in qib_sdma_verbs_send() Greg Kroah-Hartman
                   ` (59 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Nick Bowler, Darrick J. Wong, Sasha Levin

From: Nick Bowler <nbowler@draconx.ca>

[ Upstream commit c456d64449efe37da50832b63d91652a85ea1d20 ]

While inspecting the ioctl implementations, I noticed that the compat
implementation of XFS_IOC_ATTRLIST_BY_HANDLE does not do exactly the
same thing as the native implementation.  Specifically, the "cursor"
does not appear to be written out to userspace on the compat path,
like it is on the native path.

This adjusts the compat implementation to copy out the cursor just
like the native implementation does.  The attrlist cursor does not
require any special compat handling.  This fixes xfstests xfs/269
on both IA-32 and x32 userspace, when running on an amd64 kernel.

Signed-off-by: Nick Bowler <nbowler@draconx.ca>
Fixes: 0facef7fb053b ("xfs: in _attrlist_by_handle, copy the cursor back to userspace")
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 fs/xfs/xfs_ioctl32.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/fs/xfs/xfs_ioctl32.c b/fs/xfs/xfs_ioctl32.c
index 1a05d8ae327db..e7372cef5ac33 100644
--- a/fs/xfs/xfs_ioctl32.c
+++ b/fs/xfs/xfs_ioctl32.c
@@ -346,6 +346,7 @@ xfs_compat_attrlist_by_handle(
 {
 	int			error;
 	attrlist_cursor_kern_t	*cursor;
+	compat_xfs_fsop_attrlist_handlereq_t __user *p = arg;
 	compat_xfs_fsop_attrlist_handlereq_t al_hreq;
 	struct dentry		*dentry;
 	char			*kbuf;
@@ -380,6 +381,11 @@ xfs_compat_attrlist_by_handle(
 	if (error)
 		goto out_kfree;
 
+	if (copy_to_user(&p->pos, cursor, sizeof(attrlist_cursor_kern_t))) {
+		error = -EFAULT;
+		goto out_kfree;
+	}
+
 	if (copy_to_user(compat_ptr(al_hreq.buffer), kbuf, al_hreq.buflen))
 		error = -EFAULT;
 
-- 
2.20.1




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

* [PATCH 4.4 37/92] IB/qib: Fix an error code in qib_sdma_verbs_send()
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (35 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 36/92] xfs: Align compat attrlist_by_handle with native implementation Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 38/92] powerpc/book3s/32: fix number of bats in p/v_block_mapped() Greg Kroah-Hartman
                   ` (58 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Dan Carpenter, Jason Gunthorpe, Sasha Levin

From: Dan Carpenter <dan.carpenter@oracle.com>

[ Upstream commit 5050ae5fa3d54c8e83e1e447cc7e3591110a7f57 ]

We accidentally return success on this error path.

Fixes: f931551bafe1 ("IB/qib: Add new qib driver for QLogic PCIe InfiniBand adapters")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/infiniband/hw/qib/qib_sdma.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/infiniband/hw/qib/qib_sdma.c b/drivers/infiniband/hw/qib/qib_sdma.c
index c6d6a54d2e19d..1c9a3e8752012 100644
--- a/drivers/infiniband/hw/qib/qib_sdma.c
+++ b/drivers/infiniband/hw/qib/qib_sdma.c
@@ -597,8 +597,10 @@ retry:
 		dw = (len + 3) >> 2;
 		addr = dma_map_single(&ppd->dd->pcidev->dev, sge->vaddr,
 				      dw << 2, DMA_TO_DEVICE);
-		if (dma_mapping_error(&ppd->dd->pcidev->dev, addr))
+		if (dma_mapping_error(&ppd->dd->pcidev->dev, addr)) {
+			ret = -ENOMEM;
 			goto unmap;
+		}
 		sdmadesc[0] = 0;
 		make_sdma_desc(ppd, sdmadesc, (u64) addr, dw, dwoffset);
 		/* SDmaUseLargeBuf has to be set in every descriptor */
-- 
2.20.1




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

* [PATCH 4.4 38/92] powerpc/book3s/32: fix number of bats in p/v_block_mapped()
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (36 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 37/92] IB/qib: Fix an error code in qib_sdma_verbs_send() Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 39/92] powerpc/xmon: fix dump_segments() Greg Kroah-Hartman
                   ` (57 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Christophe Leroy, Michael Ellerman,
	Sasha Levin

From: Christophe Leroy <christophe.leroy@c-s.fr>

[ Upstream commit e93ba1b7eb5b188c749052df7af1c90821c5f320 ]

This patch fixes the loop in p_block_mapped() and v_block_mapped()
to scan the entire bat_addrs[] array.

Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 arch/powerpc/mm/ppc_mmu_32.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/mm/ppc_mmu_32.c b/arch/powerpc/mm/ppc_mmu_32.c
index 6b2f3e457171a..ae0f157d201c6 100644
--- a/arch/powerpc/mm/ppc_mmu_32.c
+++ b/arch/powerpc/mm/ppc_mmu_32.c
@@ -52,7 +52,7 @@ struct batrange {		/* stores address ranges mapped by BATs */
 phys_addr_t v_mapped_by_bats(unsigned long va)
 {
 	int b;
-	for (b = 0; b < 4; ++b)
+	for (b = 0; b < ARRAY_SIZE(bat_addrs); ++b)
 		if (va >= bat_addrs[b].start && va < bat_addrs[b].limit)
 			return bat_addrs[b].phys + (va - bat_addrs[b].start);
 	return 0;
@@ -64,7 +64,7 @@ phys_addr_t v_mapped_by_bats(unsigned long va)
 unsigned long p_mapped_by_bats(phys_addr_t pa)
 {
 	int b;
-	for (b = 0; b < 4; ++b)
+	for (b = 0; b < ARRAY_SIZE(bat_addrs); ++b)
 		if (pa >= bat_addrs[b].phys
 	    	    && pa < (bat_addrs[b].limit-bat_addrs[b].start)
 		              +bat_addrs[b].phys)
-- 
2.20.1




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

* [PATCH 4.4 39/92] powerpc/xmon: fix dump_segments()
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (37 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 38/92] powerpc/book3s/32: fix number of bats in p/v_block_mapped() Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 40/92] drivers/regulator: fix a missing check of return value Greg Kroah-Hartman
                   ` (56 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Christophe Leroy, Michael Ellerman,
	Sasha Levin

From: Christophe Leroy <christophe.leroy@c-s.fr>

[ Upstream commit 32c8c4c621897199e690760c2d57054f8b84b6e6 ]

mfsrin() takes segment num from bits 31-28 (IBM bits 0-3).

Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
[mpe: Clarify bit numbering]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 arch/powerpc/xmon/xmon.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index 83619ebede93d..dc2ebc20a96f8 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -2840,7 +2840,7 @@ void dump_segments(void)
 
 	printf("sr0-15 =");
 	for (i = 0; i < 16; ++i)
-		printf(" %x", mfsrin(i));
+		printf(" %x", mfsrin(i << 28));
 	printf("\n");
 }
 #endif
-- 
2.20.1




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

* [PATCH 4.4 40/92] drivers/regulator: fix a missing check of return value
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (38 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 39/92] powerpc/xmon: fix dump_segments() Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 41/92] serial: max310x: Fix tx_empty() callback Greg Kroah-Hartman
                   ` (55 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Kangjie Lu, Mark Brown, Sasha Levin

From: Kangjie Lu <kjlu@umn.edu>

[ Upstream commit 966e927bf8cc6a44f8b72582a1d6d3ffc73b12ad ]

If palmas_smps_read() fails, we should not use the read data in "reg"
which may contain random value. The fix inserts a check for the return
value of palmas_smps_read(): If it fails, we return the error code
upstream and stop using "reg".

Signed-off-by: Kangjie Lu <kjlu@umn.edu>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/regulator/palmas-regulator.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/regulator/palmas-regulator.c b/drivers/regulator/palmas-regulator.c
index 8217613807d37..4a4766c43e616 100644
--- a/drivers/regulator/palmas-regulator.c
+++ b/drivers/regulator/palmas-regulator.c
@@ -435,13 +435,16 @@ static int palmas_ldo_write(struct palmas *palmas, unsigned int reg,
 static int palmas_set_mode_smps(struct regulator_dev *dev, unsigned int mode)
 {
 	int id = rdev_get_id(dev);
+	int ret;
 	struct palmas_pmic *pmic = rdev_get_drvdata(dev);
 	struct palmas_pmic_driver_data *ddata = pmic->palmas->pmic_ddata;
 	struct palmas_regs_info *rinfo = &ddata->palmas_regs_info[id];
 	unsigned int reg;
 	bool rail_enable = true;
 
-	palmas_smps_read(pmic->palmas, rinfo->ctrl_addr, &reg);
+	ret = palmas_smps_read(pmic->palmas, rinfo->ctrl_addr, &reg);
+	if (ret)
+		return ret;
 
 	reg &= ~PALMAS_SMPS12_CTRL_MODE_ACTIVE_MASK;
 
-- 
2.20.1




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

* [PATCH 4.4 41/92] serial: max310x: Fix tx_empty() callback
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (39 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 40/92] drivers/regulator: fix a missing check of return value Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 42/92] openrisc: Fix broken paths to arch/or32 Greg Kroah-Hartman
                   ` (54 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Alexander Shiyan, Sasha Levin

From: Alexander Shiyan <shc_work@mail.ru>

[ Upstream commit a8da3c7873ea57acb8f9cea58c0af477522965aa ]

Function max310x_tx_empty() accesses the IRQSTS register, which is
cleared by IC when reading, so if there is an interrupt status, we
will lose it. This patch implement the transmitter check only by
the current FIFO level.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/tty/serial/max310x.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/tty/serial/max310x.c b/drivers/tty/serial/max310x.c
index a66fb7afecc71..e13e95733fa3c 100644
--- a/drivers/tty/serial/max310x.c
+++ b/drivers/tty/serial/max310x.c
@@ -763,12 +763,9 @@ static void max310x_start_tx(struct uart_port *port)
 
 static unsigned int max310x_tx_empty(struct uart_port *port)
 {
-	unsigned int lvl, sts;
+	u8 lvl = max310x_port_read(port, MAX310X_TXFIFOLVL_REG);
 
-	lvl = max310x_port_read(port, MAX310X_TXFIFOLVL_REG);
-	sts = max310x_port_read(port, MAX310X_IRQSTS_REG);
-
-	return ((sts & MAX310X_IRQ_TXEMPTY_BIT) && !lvl) ? TIOCSER_TEMT : 0;
+	return lvl ? 0 : TIOCSER_TEMT;
 }
 
 static unsigned int max310x_get_mctrl(struct uart_port *port)
-- 
2.20.1




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

* [PATCH 4.4 42/92] openrisc: Fix broken paths to arch/or32
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (40 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 41/92] serial: max310x: Fix tx_empty() callback Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 43/92] RDMA/srp: Propagate ib_post_send() failures to the SCSI mid-layer Greg Kroah-Hartman
                   ` (53 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Geert Uytterhoeven, Stafford Horne,
	Sasha Levin

From: Geert Uytterhoeven <geert@linux-m68k.org>

[ Upstream commit 57ce8ba0fd3a95bf29ed741df1c52bd591bf43ff ]

OpenRISC was mainlined as "openrisc", not "or32".
vmlinux.lds is generated from vmlinux.lds.S.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Stafford Horne <shorne@gmail.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 arch/openrisc/kernel/entry.S | 2 +-
 arch/openrisc/kernel/head.S  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/openrisc/kernel/entry.S b/arch/openrisc/kernel/entry.S
index fec8bf97d8064..c17e8451d9978 100644
--- a/arch/openrisc/kernel/entry.S
+++ b/arch/openrisc/kernel/entry.S
@@ -179,7 +179,7 @@ handler:							;\
  *	 occured. in fact they never do. if you need them use
  *	 values saved on stack (for SPR_EPC, SPR_ESR) or content
  *       of r4 (for SPR_EEAR). for details look at EXCEPTION_HANDLE()
- *       in 'arch/or32/kernel/head.S'
+ *       in 'arch/openrisc/kernel/head.S'
  */
 
 /* =====================================================[ exceptions] === */
diff --git a/arch/openrisc/kernel/head.S b/arch/openrisc/kernel/head.S
index f14793306b03f..98dd6860bc0b9 100644
--- a/arch/openrisc/kernel/head.S
+++ b/arch/openrisc/kernel/head.S
@@ -1596,7 +1596,7 @@ _string_esr_irq_bug:
 
 /*
  * .data section should be page aligned
- *	(look into arch/or32/kernel/vmlinux.lds)
+ *	(look into arch/openrisc/kernel/vmlinux.lds.S)
  */
 	.section .data,"aw"
 	.align	8192
-- 
2.20.1




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

* [PATCH 4.4 43/92] RDMA/srp: Propagate ib_post_send() failures to the SCSI mid-layer
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (41 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 42/92] openrisc: Fix broken paths to arch/or32 Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 44/92] scsi: qla2xxx: deadlock by configfs_depend_item Greg Kroah-Hartman
                   ` (52 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Sergey Gorenko, Max Gurtovoy,
	Laurence Oberman, Bart Van Assche, Doug Ledford, Sasha Levin

From: Bart Van Assche <bvanassche@acm.org>

[ Upstream commit 2ee00f6a98c36f7e4ba07cc33f24cc5a69060cc9 ]

This patch avoids that the SCSI mid-layer keeps retrying forever if
ib_post_send() fails. This was discovered while testing immediate
data support and passing a too large num_sge value to ib_post_send().

Cc: Sergey Gorenko <sergeygo@mellanox.com>
Cc: Max Gurtovoy <maxg@mellanox.com>
Cc: Laurence Oberman <loberman@redhat.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/infiniband/ulp/srp/ib_srp.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/infiniband/ulp/srp/ib_srp.c b/drivers/infiniband/ulp/srp/ib_srp.c
index 3dbc3ed263c21..3b4188efc2835 100644
--- a/drivers/infiniband/ulp/srp/ib_srp.c
+++ b/drivers/infiniband/ulp/srp/ib_srp.c
@@ -2135,6 +2135,7 @@ static int srp_queuecommand(struct Scsi_Host *shost, struct scsi_cmnd *scmnd)
 
 	if (srp_post_send(ch, iu, len)) {
 		shost_printk(KERN_ERR, target->scsi_host, PFX "Send failed\n");
+		scmnd->result = DID_ERROR << 16;
 		goto err_unmap;
 	}
 
-- 
2.20.1




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

* [PATCH 4.4 44/92] scsi: qla2xxx: deadlock by configfs_depend_item
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (42 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 43/92] RDMA/srp: Propagate ib_post_send() failures to the SCSI mid-layer Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 45/92] scsi: csiostor: fix incorrect dma device in case of vport Greg Kroah-Hartman
                   ` (51 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Anatoliy Glagolev, Himanshu Madhani,
	Martin K. Petersen, Sasha Levin

From: Anatoliy Glagolev <glagolig@gmail.com>

[ Upstream commit 17b18eaa6f59044a5172db7d07149e31ede0f920 ]

The intent of invoking configfs_depend_item in commit 7474f52a82d51
("tcm_qla2xxx: Perform configfs depend/undepend for base_tpg")
was to prevent a physical Fibre Channel port removal when
virtual (NPIV) ports announced through that physical port are active.
The change does not work as expected: it makes enabled physical port
dependent on target configfs subsystem (the port's parent), something
the configfs guarantees anyway.

Besides, scheduling work in a worker thread and waiting for the work's
completion is not really a valid workaround for the requirement not to call
configfs_depend_item from a configfs callback: the call occasionally
deadlocks.

Thus, removing configfs_depend_item calls does not break anything and fixes
the deadlock problem.

Signed-off-by: Anatoliy Glagolev <glagolig@gmail.com>
Acked-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/scsi/qla2xxx/tcm_qla2xxx.c | 48 +++++-------------------------
 drivers/scsi/qla2xxx/tcm_qla2xxx.h |  3 --
 2 files changed, 8 insertions(+), 43 deletions(-)

diff --git a/drivers/scsi/qla2xxx/tcm_qla2xxx.c b/drivers/scsi/qla2xxx/tcm_qla2xxx.c
index 81af294f15a7d..b1233ce6cb475 100644
--- a/drivers/scsi/qla2xxx/tcm_qla2xxx.c
+++ b/drivers/scsi/qla2xxx/tcm_qla2xxx.c
@@ -793,38 +793,14 @@ static ssize_t tcm_qla2xxx_tpg_enable_show(struct config_item *item,
 			atomic_read(&tpg->lport_tpg_enabled));
 }
 
-static void tcm_qla2xxx_depend_tpg(struct work_struct *work)
-{
-	struct tcm_qla2xxx_tpg *base_tpg = container_of(work,
-				struct tcm_qla2xxx_tpg, tpg_base_work);
-	struct se_portal_group *se_tpg = &base_tpg->se_tpg;
-	struct scsi_qla_host *base_vha = base_tpg->lport->qla_vha;
-
-	if (!target_depend_item(&se_tpg->tpg_group.cg_item)) {
-		atomic_set(&base_tpg->lport_tpg_enabled, 1);
-		qlt_enable_vha(base_vha);
-	}
-	complete(&base_tpg->tpg_base_comp);
-}
-
-static void tcm_qla2xxx_undepend_tpg(struct work_struct *work)
-{
-	struct tcm_qla2xxx_tpg *base_tpg = container_of(work,
-				struct tcm_qla2xxx_tpg, tpg_base_work);
-	struct se_portal_group *se_tpg = &base_tpg->se_tpg;
-	struct scsi_qla_host *base_vha = base_tpg->lport->qla_vha;
-
-	if (!qlt_stop_phase1(base_vha->vha_tgt.qla_tgt)) {
-		atomic_set(&base_tpg->lport_tpg_enabled, 0);
-		target_undepend_item(&se_tpg->tpg_group.cg_item);
-	}
-	complete(&base_tpg->tpg_base_comp);
-}
-
 static ssize_t tcm_qla2xxx_tpg_enable_store(struct config_item *item,
 		const char *page, size_t count)
 {
 	struct se_portal_group *se_tpg = to_tpg(item);
+	struct se_wwn *se_wwn = se_tpg->se_tpg_wwn;
+	struct tcm_qla2xxx_lport *lport = container_of(se_wwn,
+			struct tcm_qla2xxx_lport, lport_wwn);
+	struct scsi_qla_host *vha = lport->qla_vha;
 	struct tcm_qla2xxx_tpg *tpg = container_of(se_tpg,
 			struct tcm_qla2xxx_tpg, se_tpg);
 	unsigned long op;
@@ -843,24 +819,16 @@ static ssize_t tcm_qla2xxx_tpg_enable_store(struct config_item *item,
 		if (atomic_read(&tpg->lport_tpg_enabled))
 			return -EEXIST;
 
-		INIT_WORK(&tpg->tpg_base_work, tcm_qla2xxx_depend_tpg);
+		atomic_set(&tpg->lport_tpg_enabled, 1);
+		qlt_enable_vha(vha);
 	} else {
 		if (!atomic_read(&tpg->lport_tpg_enabled))
 			return count;
 
-		INIT_WORK(&tpg->tpg_base_work, tcm_qla2xxx_undepend_tpg);
+		atomic_set(&tpg->lport_tpg_enabled, 0);
+		qlt_stop_phase1(vha->vha_tgt.qla_tgt);
 	}
-	init_completion(&tpg->tpg_base_comp);
-	schedule_work(&tpg->tpg_base_work);
-	wait_for_completion(&tpg->tpg_base_comp);
 
-	if (op) {
-		if (!atomic_read(&tpg->lport_tpg_enabled))
-			return -ENODEV;
-	} else {
-		if (atomic_read(&tpg->lport_tpg_enabled))
-			return -EPERM;
-	}
 	return count;
 }
 
diff --git a/drivers/scsi/qla2xxx/tcm_qla2xxx.h b/drivers/scsi/qla2xxx/tcm_qla2xxx.h
index 3bbf4cb6fd97e..344f4eab5403c 100644
--- a/drivers/scsi/qla2xxx/tcm_qla2xxx.h
+++ b/drivers/scsi/qla2xxx/tcm_qla2xxx.h
@@ -47,9 +47,6 @@ struct tcm_qla2xxx_tpg {
 	struct tcm_qla2xxx_tpg_attrib tpg_attrib;
 	/* Returned by tcm_qla2xxx_make_tpg() */
 	struct se_portal_group se_tpg;
-	/* Items for dealing with configfs_depend_item */
-	struct completion tpg_base_comp;
-	struct work_struct tpg_base_work;
 };
 
 struct tcm_qla2xxx_fc_loopid {
-- 
2.20.1




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

* [PATCH 4.4 45/92] scsi: csiostor: fix incorrect dma device in case of vport
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (43 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 44/92] scsi: qla2xxx: deadlock by configfs_depend_item Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 46/92] ath6kl: Only use match sets when firmware supports it Greg Kroah-Hartman
                   ` (50 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Varun Prakash, Martin K. Petersen,
	Sasha Levin

From: Varun Prakash <varun@chelsio.com>

[ Upstream commit 9934613edcb40b92a216122876cd3b7e76d08390 ]

In case of ->vport_create() call scsi_add_host_with_dma() instead of
scsi_add_host() to pass correct dma device.

Signed-off-by: Varun Prakash <varun@chelsio.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/scsi/csiostor/csio_init.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/scsi/csiostor/csio_init.c b/drivers/scsi/csiostor/csio_init.c
index dbe416ff46c27..776b992786881 100644
--- a/drivers/scsi/csiostor/csio_init.c
+++ b/drivers/scsi/csiostor/csio_init.c
@@ -648,7 +648,7 @@ csio_shost_init(struct csio_hw *hw, struct device *dev,
 	if (csio_lnode_init(ln, hw, pln))
 		goto err_shost_put;
 
-	if (scsi_add_host(shost, dev))
+	if (scsi_add_host_with_dma(shost, dev, &hw->pdev->dev))
 		goto err_lnode_exit;
 
 	return ln;
-- 
2.20.1




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

* [PATCH 4.4 46/92] ath6kl: Only use match sets when firmware supports it
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (44 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 45/92] scsi: csiostor: fix incorrect dma device in case of vport Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 47/92] ath6kl: Fix off by one error in scan completion Greg Kroah-Hartman
                   ` (49 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Kyle Roeschley, Kalle Valo, Sasha Levin

From: Kyle Roeschley <kyle.roeschley@ni.com>

[ Upstream commit fb376a495fbdb886f38cfaf5a3805401b9e46f13 ]

Commit dd45b7598f1c ("ath6kl: Include match ssid list in scheduled scan")
merged the probed and matched SSID lists before sending them to the
firmware. In the process, it assumed match set support is always available
in ath6kl_set_probed_ssids, which breaks scans for hidden SSIDs. Now, check
that the firmware supports matching SSIDs in scheduled scans before setting
MATCH_SSID_FLAG.

Fixes: dd45b7598f1c ("ath6kl: Include match ssid list in scheduled scan")
Signed-off-by: Kyle Roeschley <kyle.roeschley@ni.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/net/wireless/ath/ath6kl/cfg80211.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/ath/ath6kl/cfg80211.c b/drivers/net/wireless/ath/ath6kl/cfg80211.c
index 81ac8c59f0ecd..2b79815f59093 100644
--- a/drivers/net/wireless/ath/ath6kl/cfg80211.c
+++ b/drivers/net/wireless/ath/ath6kl/cfg80211.c
@@ -932,7 +932,7 @@ static int ath6kl_set_probed_ssids(struct ath6kl *ar,
 		else
 			ssid_list[i].flag = ANY_SSID_FLAG;
 
-		if (n_match_ssid == 0)
+		if (ar->wiphy->max_match_sets != 0 && n_match_ssid == 0)
 			ssid_list[i].flag |= MATCH_SSID_FLAG;
 	}
 
-- 
2.20.1




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

* [PATCH 4.4 47/92] ath6kl: Fix off by one error in scan completion
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (45 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 46/92] ath6kl: Only use match sets when firmware supports it Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 48/92] powerpc/prom: fix early DEBUG messages Greg Kroah-Hartman
                   ` (48 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Kyle Roeschley, Kalle Valo, Sasha Levin

From: Kyle Roeschley <kyle.roeschley@ni.com>

[ Upstream commit 5803c12816c43bd09e5f4247dd9313c2d9a2c41b ]

When ath6kl was reworked to share code between regular and scheduled scans
in commit 3b8ffc6a22ba ("ath6kl: Configure probed SSID list consistently"),
probed SSID entry changed from 1-index to 0-indexed. However,
ath6kl_cfg80211_scan_complete_event() was missed in that change. Fix its
indexing so that we correctly clear out the probed SSID list.

Signed-off-by: Kyle Roeschley <kyle.roeschley@ni.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/net/wireless/ath/ath6kl/cfg80211.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/ath/ath6kl/cfg80211.c b/drivers/net/wireless/ath/ath6kl/cfg80211.c
index 2b79815f59093..7653fa47508bb 100644
--- a/drivers/net/wireless/ath/ath6kl/cfg80211.c
+++ b/drivers/net/wireless/ath/ath6kl/cfg80211.c
@@ -1083,7 +1083,7 @@ void ath6kl_cfg80211_scan_complete_event(struct ath6kl_vif *vif, bool aborted)
 	if (vif->scan_req->n_ssids && vif->scan_req->ssids[0].ssid_len) {
 		for (i = 0; i < vif->scan_req->n_ssids; i++) {
 			ath6kl_wmi_probedssid_cmd(ar->wmi, vif->fw_vif_idx,
-						  i + 1, DISABLE_SSID_FLAG,
+						  i, DISABLE_SSID_FLAG,
 						  0, NULL);
 		}
 	}
-- 
2.20.1




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

* [PATCH 4.4 48/92] powerpc/prom: fix early DEBUG messages
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (46 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 47/92] ath6kl: Fix off by one error in scan completion Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 49/92] powerpc/mm: Make NULL pointer deferences explicit on bad page faults Greg Kroah-Hartman
                   ` (47 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Christophe Leroy, Michael Ellerman,
	Sasha Levin

From: Christophe Leroy <christophe.leroy@c-s.fr>

[ Upstream commit b18f0ae92b0a1db565c3e505fa87b6971ad3b641 ]

This patch fixes early DEBUG messages in prom.c:
- Use %px instead of %p to see the addresses
- Cast memblock_phys_mem_size() with (unsigned long long) to
avoid build failure when phys_addr_t is not 64 bits.

Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 arch/powerpc/kernel/prom.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
index a15fe1d4e84ae..04a27307a2c4d 100644
--- a/arch/powerpc/kernel/prom.c
+++ b/arch/powerpc/kernel/prom.c
@@ -125,7 +125,7 @@ static void __init move_device_tree(void)
 		p = __va(memblock_alloc(size, PAGE_SIZE));
 		memcpy(p, initial_boot_params, size);
 		initial_boot_params = p;
-		DBG("Moved device tree to 0x%p\n", p);
+		DBG("Moved device tree to 0x%px\n", p);
 	}
 
 	DBG("<- move_device_tree\n");
@@ -647,7 +647,7 @@ void __init early_init_devtree(void *params)
 {
 	phys_addr_t limit;
 
-	DBG(" -> early_init_devtree(%p)\n", params);
+	DBG(" -> early_init_devtree(%px)\n", params);
 
 	/* Too early to BUG_ON(), do it by hand */
 	if (!early_init_dt_verify(params))
@@ -707,7 +707,7 @@ void __init early_init_devtree(void *params)
 	memblock_allow_resize();
 	memblock_dump_all();
 
-	DBG("Phys. mem: %llx\n", memblock_phys_mem_size());
+	DBG("Phys. mem: %llx\n", (unsigned long long)memblock_phys_mem_size());
 
 	/* We may need to relocate the flat tree, do it now.
 	 * FIXME .. and the initrd too? */
-- 
2.20.1




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

* [PATCH 4.4 49/92] powerpc/mm: Make NULL pointer deferences explicit on bad page faults.
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (47 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 48/92] powerpc/prom: fix early DEBUG messages Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 50/92] powerpc/44x/bamboo: Fix PCI range Greg Kroah-Hartman
                   ` (46 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Christophe Leroy, Michael Ellerman,
	Sasha Levin

From: Christophe Leroy <christophe.leroy@c-s.fr>

[ Upstream commit 49a502ea23bf9dec47f8f3c3960909ff409cd1bb ]

As several other arches including x86, this patch makes it explicit
that a bad page fault is a NULL pointer dereference when the fault
address is lower than PAGE_SIZE

In the mean time, this page makes all bad_page_fault() messages
shorter so that they remain on one single line. And it prefixes them
by "BUG: " so that they get easily grepped.

Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
[mpe: Avoid pr_cont()]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 arch/powerpc/mm/fault.c | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c
index d154e333f76b7..d1f860ca03ade 100644
--- a/arch/powerpc/mm/fault.c
+++ b/arch/powerpc/mm/fault.c
@@ -521,21 +521,22 @@ void bad_page_fault(struct pt_regs *regs, unsigned long address, int sig)
 	switch (regs->trap) {
 	case 0x300:
 	case 0x380:
-		printk(KERN_ALERT "Unable to handle kernel paging request for "
-			"data at address 0x%08lx\n", regs->dar);
+		pr_alert("BUG: %s at 0x%08lx\n",
+			 regs->dar < PAGE_SIZE ? "Kernel NULL pointer dereference" :
+			 "Unable to handle kernel data access", regs->dar);
 		break;
 	case 0x400:
 	case 0x480:
-		printk(KERN_ALERT "Unable to handle kernel paging request for "
-			"instruction fetch\n");
+		pr_alert("BUG: Unable to handle kernel instruction fetch%s",
+			 regs->nip < PAGE_SIZE ? " (NULL pointer?)\n" : "\n");
 		break;
 	case 0x600:
-		printk(KERN_ALERT "Unable to handle kernel paging request for "
-			"unaligned access at address 0x%08lx\n", regs->dar);
+		pr_alert("BUG: Unable to handle kernel unaligned access at 0x%08lx\n",
+			 regs->dar);
 		break;
 	default:
-		printk(KERN_ALERT "Unable to handle kernel paging request for "
-			"unknown fault\n");
+		pr_alert("BUG: Unable to handle unknown paging fault at 0x%08lx\n",
+			 regs->dar);
 		break;
 	}
 	printk(KERN_ALERT "Faulting instruction address: 0x%08lx\n",
-- 
2.20.1




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

* [PATCH 4.4 50/92] powerpc/44x/bamboo: Fix PCI range
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (48 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 49/92] powerpc/mm: Make NULL pointer deferences explicit on bad page faults Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 51/92] drbd: reject attach of unsuitable uuids even if connected Greg Kroah-Hartman
                   ` (45 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Benjamin Herrenschmidt,
	Michael Ellerman, Sasha Levin

From: Benjamin Herrenschmidt <benh@kernel.crashing.org>

[ Upstream commit 3cfb9ebe906b51f2942b1e251009bb251efd2ba6 ]

The bamboo dts has a bug: it uses a non-naturally aligned range
for PCI memory space. This isnt' supported by the code, thus
causing PCI to break on this system.

This is due to the fact that while the chip memory map has 1G
reserved for PCI memory, it's only 512M aligned. The code doesn't
know how to split that into 2 different PMMs and fails, so limit
the region to 512M.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 arch/powerpc/boot/dts/bamboo.dts | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/arch/powerpc/boot/dts/bamboo.dts b/arch/powerpc/boot/dts/bamboo.dts
index aa68911f6560a..084b82ba74933 100644
--- a/arch/powerpc/boot/dts/bamboo.dts
+++ b/arch/powerpc/boot/dts/bamboo.dts
@@ -268,8 +268,10 @@
 			/* Outbound ranges, one memory and one IO,
 			 * later cannot be changed. Chip supports a second
 			 * IO range but we don't use it for now
+			 * The chip also supports a larger memory range but
+			 * it's not naturally aligned, so our code will break
 			 */
-			ranges = <0x02000000 0x00000000 0xa0000000 0x00000000 0xa0000000 0x00000000 0x40000000
+			ranges = <0x02000000 0x00000000 0xa0000000 0x00000000 0xa0000000 0x00000000 0x20000000
 				  0x02000000 0x00000000 0x00000000 0x00000000 0xe0000000 0x00000000 0x00100000
 				  0x01000000 0x00000000 0x00000000 0x00000000 0xe8000000 0x00000000 0x00010000>;
 
-- 
2.20.1




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

* [PATCH 4.4 51/92] drbd: reject attach of unsuitable uuids even if connected
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (49 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 50/92] powerpc/44x/bamboo: Fix PCI range Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 52/92] drbd: fix print_st_err()s prototype to match the definition Greg Kroah-Hartman
                   ` (44 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Lars Ellenberg, Jens Axboe, Sasha Levin

From: Lars Ellenberg <lars.ellenberg@linbit.com>

[ Upstream commit fe43ed97bba3b11521abd934b83ed93143470e4f ]

Multiple failure scenario:
a) all good
   Connected Primary/Secondary UpToDate/UpToDate
b) lose disk on Primary,
   Connected Primary/Secondary Diskless/UpToDate
c) continue to write to the device,
   changes only make it to the Secondary storage.
d) lose disk on Secondary,
   Connected Primary/Secondary Diskless/Diskless
e) now try to re-attach on Primary

This would have succeeded before, even though that is clearly the
wrong data set to attach to (missing the modifications from c).
Because we only compared our "effective" and the "to-be-attached"
data generation uuid tags if (device->state.conn < C_CONNECTED).

Fix: change that constraint to (device->state.pdsk != D_UP_TO_DATE)
compare the uuids, and reject the attach.

This patch also tries to improve the reverse scenario:
first lose Secondary, then Primary disk,
then try to attach the disk on Secondary.

Before this patch, the attach on the Secondary succeeds, but since commit
drbd: disconnect, if the wrong UUIDs are attached on a connected peer
the Primary will notice unsuitable data, and drop the connection hard.

Though unfortunately at a point in time during the handshake where
we cannot easily abort the attach on the peer without more
refactoring of the handshake.

We now reject any attach to "unsuitable" uuids,
as long as we can see a Primary role,
unless we already have access to "good" data.

Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/block/drbd/drbd_nl.c       |  6 +++---
 drivers/block/drbd/drbd_receiver.c | 19 +++++++++++++++++++
 2 files changed, 22 insertions(+), 3 deletions(-)

diff --git a/drivers/block/drbd/drbd_nl.c b/drivers/block/drbd/drbd_nl.c
index 27e1abcf57100..4adbf4c8d532c 100644
--- a/drivers/block/drbd/drbd_nl.c
+++ b/drivers/block/drbd/drbd_nl.c
@@ -1685,9 +1685,9 @@ int drbd_adm_attach(struct sk_buff *skb, struct genl_info *info)
 		}
 	}
 
-	if (device->state.conn < C_CONNECTED &&
-	    device->state.role == R_PRIMARY && device->ed_uuid &&
-	    (device->ed_uuid & ~((u64)1)) != (nbc->md.uuid[UI_CURRENT] & ~((u64)1))) {
+	if (device->state.pdsk != D_UP_TO_DATE && device->ed_uuid &&
+	    (device->state.role == R_PRIMARY || device->state.peer == R_PRIMARY) &&
+            (device->ed_uuid & ~((u64)1)) != (nbc->md.uuid[UI_CURRENT] & ~((u64)1))) {
 		drbd_err(device, "Can only attach to data with current UUID=%016llX\n",
 		    (unsigned long long)device->ed_uuid);
 		retcode = ERR_DATA_NOT_CURRENT;
diff --git a/drivers/block/drbd/drbd_receiver.c b/drivers/block/drbd/drbd_receiver.c
index b1ee358edd3b4..afd8f315d29b1 100644
--- a/drivers/block/drbd/drbd_receiver.c
+++ b/drivers/block/drbd/drbd_receiver.c
@@ -4116,6 +4116,25 @@ static int receive_state(struct drbd_connection *connection, struct packet_info
 	if (peer_state.conn == C_AHEAD)
 		ns.conn = C_BEHIND;
 
+	/* TODO:
+	 * if (primary and diskless and peer uuid != effective uuid)
+	 *     abort attach on peer;
+	 *
+	 * If this node does not have good data, was already connected, but
+	 * the peer did a late attach only now, trying to "negotiate" with me,
+	 * AND I am currently Primary, possibly frozen, with some specific
+	 * "effective" uuid, this should never be reached, really, because
+	 * we first send the uuids, then the current state.
+	 *
+	 * In this scenario, we already dropped the connection hard
+	 * when we received the unsuitable uuids (receive_uuids().
+	 *
+	 * Should we want to change this, that is: not drop the connection in
+	 * receive_uuids() already, then we would need to add a branch here
+	 * that aborts the attach of "unsuitable uuids" on the peer in case
+	 * this node is currently Diskless Primary.
+	 */
+
 	if (device->p_uuid && peer_state.disk >= D_NEGOTIATING &&
 	    get_ldev_if_state(device, D_NEGOTIATING)) {
 		int cr; /* consider resync */
-- 
2.20.1




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

* [PATCH 4.4 52/92] drbd: fix print_st_err()s prototype to match the definition
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (50 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 51/92] drbd: reject attach of unsuitable uuids even if connected Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 53/92] regulator: tps65910: fix a missing check of return value Greg Kroah-Hartman
                   ` (43 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Luc Van Oostenryck, Roland Kammerer,
	Lars Ellenberg, Jens Axboe, Sasha Levin

From: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>

[ Upstream commit 2c38f035117331eb78d0504843c79ea7c7fabf37 ]

print_st_err() is defined with its 4th argument taking an
'enum drbd_state_rv' but its prototype use an int for it.

Fix this by using 'enum drbd_state_rv' in the prototype too.

Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Signed-off-by: Roland Kammerer <roland.kammerer@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/block/drbd/drbd_state.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/block/drbd/drbd_state.h b/drivers/block/drbd/drbd_state.h
index 7f53c40823cd5..75219cd2534aa 100644
--- a/drivers/block/drbd/drbd_state.h
+++ b/drivers/block/drbd/drbd_state.h
@@ -126,7 +126,7 @@ extern enum drbd_state_rv __drbd_set_state(struct drbd_device *, union drbd_stat
 					   enum chg_state_flags,
 					   struct completion *done);
 extern void print_st_err(struct drbd_device *, union drbd_state,
-			union drbd_state, int);
+			union drbd_state, enum drbd_state_rv);
 
 enum drbd_state_rv
 _conn_request_state(struct drbd_connection *connection, union drbd_state mask, union drbd_state val,
-- 
2.20.1




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

* [PATCH 4.4 53/92] regulator: tps65910: fix a missing check of return value
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (51 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 52/92] drbd: fix print_st_err()s prototype to match the definition Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 54/92] net/net_namespace: Check the return value of register_pernet_subsys() Greg Kroah-Hartman
                   ` (42 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Kangjie Lu, Mark Brown, Sasha Levin

From: Kangjie Lu <kjlu@umn.edu>

[ Upstream commit cd07e3701fa6a4c68f8493ee1d12caa18d46ec6a ]

tps65910_reg_set_bits() may fail. The fix checks if it fails, and if so,
returns with its error code.

Signed-off-by: Kangjie Lu <kjlu@umn.edu>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/regulator/tps65910-regulator.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/regulator/tps65910-regulator.c b/drivers/regulator/tps65910-regulator.c
index 696116ebdf50a..9cde7b0757011 100644
--- a/drivers/regulator/tps65910-regulator.c
+++ b/drivers/regulator/tps65910-regulator.c
@@ -1102,8 +1102,10 @@ static int tps65910_probe(struct platform_device *pdev)
 	platform_set_drvdata(pdev, pmic);
 
 	/* Give control of all register to control port */
-	tps65910_reg_set_bits(pmic->mfd, TPS65910_DEVCTRL,
+	err = tps65910_reg_set_bits(pmic->mfd, TPS65910_DEVCTRL,
 				DEVCTRL_SR_CTL_I2C_SEL_MASK);
+	if (err < 0)
+		return err;
 
 	switch (tps65910_chip_id(tps65910)) {
 	case TPS65910:
-- 
2.20.1




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

* [PATCH 4.4 54/92] net/net_namespace: Check the return value of register_pernet_subsys()
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (52 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 53/92] regulator: tps65910: fix a missing check of return value Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 55/92] um: Make GCOV depend on !KCOV Greg Kroah-Hartman
                   ` (41 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Aditya Pakki, Kirill Tkhai,
	David S. Miller, Sasha Levin

From: Aditya Pakki <pakki001@umn.edu>

[ Upstream commit 0eb987c874dc93f9c9d85a6465dbde20fdd3884c ]

In net_ns_init(), register_pernet_subsys() could fail while registering
network namespace subsystems. The fix checks the return value and
sends a panic() on failure.

Signed-off-by: Aditya Pakki <pakki001@umn.edu>
Reviewed-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 net/core/net_namespace.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c
index 087ce1598b746..01bfe28b20a19 100644
--- a/net/core/net_namespace.c
+++ b/net/core/net_namespace.c
@@ -778,7 +778,8 @@ static int __init net_ns_init(void)
 
 	mutex_unlock(&net_mutex);
 
-	register_pernet_subsys(&net_ns_ops);
+	if (register_pernet_subsys(&net_ns_ops))
+		panic("Could not register network namespace subsystems");
 
 	rtnl_register(PF_UNSPEC, RTM_NEWNSID, rtnl_net_newid, NULL, NULL);
 	rtnl_register(PF_UNSPEC, RTM_GETNSID, rtnl_net_getid, rtnl_net_dumpid,
-- 
2.20.1




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

* [PATCH 4.4 55/92] um: Make GCOV depend on !KCOV
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (53 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 54/92] net/net_namespace: Check the return value of register_pernet_subsys() Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 56/92] net: stmicro: fix a missing check of clk_prepare Greg Kroah-Hartman
                   ` (40 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Richard Weinberger, Sasha Levin

From: Richard Weinberger <richard@nod.at>

[ Upstream commit 550ed0e2036663b35cec12374b835444f9c60454 ]

Both do more or less the same thing and are mutually exclusive.
If both are enabled the build will fail.
Sooner or later we can kill UML's GCOV.

Signed-off-by: Richard Weinberger <richard@nod.at>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 arch/um/Kconfig.debug | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/um/Kconfig.debug b/arch/um/Kconfig.debug
index 68205fd3b08c8..6ae7f0f434a9c 100644
--- a/arch/um/Kconfig.debug
+++ b/arch/um/Kconfig.debug
@@ -18,6 +18,7 @@ config GPROF
 config GCOV
 	bool "Enable gcov support"
 	depends on DEBUG_INFO
+	depends on !KCOV
 	help
 	  This option allows developers to retrieve coverage data from a UML
 	  session.
-- 
2.20.1




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

* [PATCH 4.4 56/92] net: stmicro: fix a missing check of clk_prepare
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (54 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 55/92] um: Make GCOV depend on !KCOV Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 57/92] atl1e: checking the status of atl1e_write_phy_reg Greg Kroah-Hartman
                   ` (39 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Kangjie Lu, David S. Miller, Sasha Levin

From: Kangjie Lu <kjlu@umn.edu>

[ Upstream commit f86a3b83833e7cfe558ca4d70b64ebc48903efec ]

clk_prepare() could fail, so let's check its status, and if it fails,
return its error code upstream.

Signed-off-by: Kangjie Lu <kjlu@umn.edu>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/net/ethernet/stmicro/stmmac/dwmac-sunxi.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-sunxi.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-sunxi.c
index adff46375a322..6e56c4e5ecec5 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-sunxi.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-sunxi.c
@@ -59,7 +59,9 @@ static int sun7i_gmac_init(struct platform_device *pdev, void *priv)
 		gmac->clk_enabled = 1;
 	} else {
 		clk_set_rate(gmac->tx_clk, SUN7I_GMAC_MII_RATE);
-		clk_prepare(gmac->tx_clk);
+		ret = clk_prepare(gmac->tx_clk);
+		if (ret)
+			return ret;
 	}
 
 	return 0;
-- 
2.20.1




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

* [PATCH 4.4 57/92] atl1e: checking the status of atl1e_write_phy_reg
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (55 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 56/92] net: stmicro: fix a missing check of clk_prepare Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 58/92] tipc: fix a missing check of genlmsg_put Greg Kroah-Hartman
                   ` (38 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Kangjie Lu, David S. Miller, Sasha Levin

From: Kangjie Lu <kjlu@umn.edu>

[ Upstream commit ff07d48d7bc0974d4f96a85a4df14564fb09f1ef ]

atl1e_write_phy_reg() could fail. The fix issues an error message when
it fails.

Signed-off-by: Kangjie Lu <kjlu@umn.edu>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/net/ethernet/atheros/atl1e/atl1e_main.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/atheros/atl1e/atl1e_main.c b/drivers/net/ethernet/atheros/atl1e/atl1e_main.c
index 59a03a193e835..4384b2b4d2382 100644
--- a/drivers/net/ethernet/atheros/atl1e/atl1e_main.c
+++ b/drivers/net/ethernet/atheros/atl1e/atl1e_main.c
@@ -478,7 +478,9 @@ static void atl1e_mdio_write(struct net_device *netdev, int phy_id,
 {
 	struct atl1e_adapter *adapter = netdev_priv(netdev);
 
-	atl1e_write_phy_reg(&adapter->hw, reg_num & MDIO_REG_ADDR_MASK, val);
+	if (atl1e_write_phy_reg(&adapter->hw,
+				reg_num & MDIO_REG_ADDR_MASK, val))
+		netdev_err(netdev, "write phy register failed\n");
 }
 
 static int atl1e_mii_ioctl(struct net_device *netdev,
-- 
2.20.1




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

* [PATCH 4.4 58/92] tipc: fix a missing check of genlmsg_put
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (56 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 57/92] atl1e: checking the status of atl1e_write_phy_reg Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:49 ` [PATCH 4.4 59/92] ocfs2: clear journal dirty flag after shutdown journal Greg Kroah-Hartman
                   ` (37 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Kangjie Lu, David S. Miller, Sasha Levin

From: Kangjie Lu <kjlu@umn.edu>

[ Upstream commit 46273cf7e009231d2b6bc10a926e82b8928a9fb2 ]

genlmsg_put could fail. The fix inserts a check of its return value, and
if it fails, returns -EMSGSIZE.

Signed-off-by: Kangjie Lu <kjlu@umn.edu>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 net/tipc/netlink_compat.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/net/tipc/netlink_compat.c b/net/tipc/netlink_compat.c
index d2bf92e711505..4f6fbd2f29add 100644
--- a/net/tipc/netlink_compat.c
+++ b/net/tipc/netlink_compat.c
@@ -926,6 +926,8 @@ static int tipc_nl_compat_publ_dump(struct tipc_nl_compat_msg *msg, u32 sock)
 
 	hdr = genlmsg_put(args, 0, 0, &tipc_genl_family, NLM_F_MULTI,
 			  TIPC_NL_PUBL_GET);
+	if (!hdr)
+		return -EMSGSIZE;
 
 	nest = nla_nest_start(args, TIPC_NLA_SOCK);
 	if (!nest) {
-- 
2.20.1




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

* [PATCH 4.4 59/92] ocfs2: clear journal dirty flag after shutdown journal
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (57 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 58/92] tipc: fix a missing check of genlmsg_put Greg Kroah-Hartman
@ 2019-12-04 17:49 ` Greg Kroah-Hartman
  2019-12-04 17:50 ` [PATCH 4.4 60/92] lib/genalloc.c: use vzalloc_node() to allocate the bitmap Greg Kroah-Hartman
                   ` (36 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Junxiao Bi, Yiwen Jiang, Joseph Qi,
	Jun Piao, Changwei Ge, Joel Becker, Mark Fasheh, Andrew Morton,
	Linus Torvalds, Sasha Levin

From: Junxiao Bi <junxiao.bi@oracle.com>

[ Upstream commit d85400af790dba2aa294f0a77e712f166681f977 ]

Dirty flag of the journal should be cleared at the last stage of umount,
if do it before jbd2_journal_destroy(), then some metadata in uncommitted
transaction could be lost due to io error, but as dirty flag of journal
was already cleared, we can't find that until run a full fsck.  This may
cause system panic or other corruption.

Link: http://lkml.kernel.org/r/20181121020023.3034-3-junxiao.bi@oracle.com
Signed-off-by: Junxiao Bi <junxiao.bi@oracle.com>
Reviewed-by: Yiwen Jiang <jiangyiwen@huawei.com>
Reviewed-by: Joseph Qi <jiangqi903@gmail.com>
Cc: Jun Piao <piaojun@huawei.com>
Cc: Changwei Ge <ge.changwei@h3c.com>
Cc: Joel Becker <jlbec@evilplan.org>
Cc: Mark Fasheh <mfasheh@versity.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 fs/ocfs2/journal.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/fs/ocfs2/journal.c b/fs/ocfs2/journal.c
index 722eb5bc9b8f0..2301011428a1d 100644
--- a/fs/ocfs2/journal.c
+++ b/fs/ocfs2/journal.c
@@ -1017,7 +1017,8 @@ void ocfs2_journal_shutdown(struct ocfs2_super *osb)
 			mlog_errno(status);
 	}
 
-	if (status == 0) {
+	/* Shutdown the kernel journal system */
+	if (!jbd2_journal_destroy(journal->j_journal) && !status) {
 		/*
 		 * Do not toggle if flush was unsuccessful otherwise
 		 * will leave dirty metadata in a "clean" journal
@@ -1026,9 +1027,6 @@ void ocfs2_journal_shutdown(struct ocfs2_super *osb)
 		if (status < 0)
 			mlog_errno(status);
 	}
-
-	/* Shutdown the kernel journal system */
-	jbd2_journal_destroy(journal->j_journal);
 	journal->j_journal = NULL;
 
 	OCFS2_I(inode)->ip_open_count--;
-- 
2.20.1




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

* [PATCH 4.4 60/92] lib/genalloc.c: use vzalloc_node() to allocate the bitmap
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (58 preceding siblings ...)
  2019-12-04 17:49 ` [PATCH 4.4 59/92] ocfs2: clear journal dirty flag after shutdown journal Greg Kroah-Hartman
@ 2019-12-04 17:50 ` Greg Kroah-Hartman
  2019-12-04 17:50 ` [PATCH 4.4 61/92] lib/genalloc.c: include vmalloc.h Greg Kroah-Hartman
                   ` (35 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:50 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Huang Shijie, Andrew Morton,
	Alexey Skidanov, Linus Torvalds, Sasha Levin

From: Huang Shijie <sjhuang@iluvatar.ai>

[ Upstream commit 6862d2fc81859f88c1f3f660886427893f2b4f3f ]

Some devices may have big memory on chip, such as over 1G.  In some
cases, the nbytes maybe bigger then 4M which is the bounday of the
memory buddy system (4K default).

So use vzalloc_node() to allocate the bitmap.  Also use vfree to free
it.

Link: http://lkml.kernel.org/r/20181225015701.6289-1-sjhuang@iluvatar.ai
Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
Cc: Alexey Skidanov <alexey.skidanov@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 lib/genalloc.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/genalloc.c b/lib/genalloc.c
index e4303fb2a7b28..38764572ddde8 100644
--- a/lib/genalloc.c
+++ b/lib/genalloc.c
@@ -187,7 +187,7 @@ int gen_pool_add_virt(struct gen_pool *pool, unsigned long virt, phys_addr_t phy
 	int nbytes = sizeof(struct gen_pool_chunk) +
 				BITS_TO_LONGS(nbits) * sizeof(long);
 
-	chunk = kzalloc_node(nbytes, GFP_KERNEL, nid);
+	chunk = vzalloc_node(nbytes, nid);
 	if (unlikely(chunk == NULL))
 		return -ENOMEM;
 
@@ -251,7 +251,7 @@ void gen_pool_destroy(struct gen_pool *pool)
 		bit = find_next_bit(chunk->bits, end_bit, 0);
 		BUG_ON(bit < end_bit);
 
-		kfree(chunk);
+		vfree(chunk);
 	}
 	kfree_const(pool->name);
 	kfree(pool);
-- 
2.20.1




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

* [PATCH 4.4 61/92] lib/genalloc.c: include vmalloc.h
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (59 preceding siblings ...)
  2019-12-04 17:50 ` [PATCH 4.4 60/92] lib/genalloc.c: use vzalloc_node() to allocate the bitmap Greg Kroah-Hartman
@ 2019-12-04 17:50 ` Greg Kroah-Hartman
  2019-12-04 17:50 ` [PATCH 4.4 62/92] mtd: Check add_mtd_device() ret code Greg Kroah-Hartman
                   ` (34 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:50 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Huang Shijie, Andrew Morton,
	Alexey Skidanov, Olof Johansson, Linus Torvalds, Sasha Levin

From: Olof Johansson <olof@lixom.net>

[ Upstream commit 35004f2e55807a1a1491db24ab512dd2f770a130 ]

Fixes build break on most ARM/ARM64 defconfigs:

  lib/genalloc.c: In function 'gen_pool_add_virt':
  lib/genalloc.c:190:10: error: implicit declaration of function 'vzalloc_node'; did you mean 'kzalloc_node'?
  lib/genalloc.c:190:8: warning: assignment to 'struct gen_pool_chunk *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  lib/genalloc.c: In function 'gen_pool_destroy':
  lib/genalloc.c:254:3: error: implicit declaration of function 'vfree'; did you mean 'kfree'?

Fixes: 6862d2fc8185 ('lib/genalloc.c: use vzalloc_node() to allocate the bitmap')
Cc: Huang Shijie <sjhuang@iluvatar.ai>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Alexey Skidanov <alexey.skidanov@intel.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 lib/genalloc.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/lib/genalloc.c b/lib/genalloc.c
index 38764572ddde8..e3a475b14e260 100644
--- a/lib/genalloc.c
+++ b/lib/genalloc.c
@@ -35,6 +35,7 @@
 #include <linux/interrupt.h>
 #include <linux/genalloc.h>
 #include <linux/of_device.h>
+#include <linux/vmalloc.h>
 
 static inline size_t chunk_size(const struct gen_pool_chunk *chunk)
 {
-- 
2.20.1




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

* [PATCH 4.4 62/92] mtd: Check add_mtd_device() ret code
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (60 preceding siblings ...)
  2019-12-04 17:50 ` [PATCH 4.4 61/92] lib/genalloc.c: include vmalloc.h Greg Kroah-Hartman
@ 2019-12-04 17:50 ` Greg Kroah-Hartman
  2019-12-04 17:50 ` [PATCH 4.4 63/92] tipc: fix memory leak in tipc_nl_compat_publ_dump Greg Kroah-Hartman
                   ` (33 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:50 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Boris Brezillon, Sasha Levin

From: Boris Brezillon <bbrezillon@kernel.org>

[ Upstream commit 2b6f0090a3335b7bdd03ca520c35591159463041 ]

add_mtd_device() can fail. We should always check its return value
and gracefully handle the failure case. Fix the call sites where this
not done (in mtdpart.c) and add a __must_check attribute to the
prototype to avoid this kind of mistakes.

Signed-off-by: Boris Brezillon <bbrezillon@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/mtd/mtdcore.h |  2 +-
 drivers/mtd/mtdpart.c | 36 +++++++++++++++++++++++++++++++-----
 2 files changed, 32 insertions(+), 6 deletions(-)

diff --git a/drivers/mtd/mtdcore.h b/drivers/mtd/mtdcore.h
index 7b0353399a106..b837f44716820 100644
--- a/drivers/mtd/mtdcore.h
+++ b/drivers/mtd/mtdcore.h
@@ -6,7 +6,7 @@
 extern struct mutex mtd_table_mutex;
 
 struct mtd_info *__mtd_next_device(int i);
-int add_mtd_device(struct mtd_info *mtd);
+int __must_check add_mtd_device(struct mtd_info *mtd);
 int del_mtd_device(struct mtd_info *mtd);
 int add_mtd_partitions(struct mtd_info *, const struct mtd_partition *, int);
 int del_mtd_partitions(struct mtd_info *);
diff --git a/drivers/mtd/mtdpart.c b/drivers/mtd/mtdpart.c
index f8ba153f63bfe..9b48be05cd1af 100644
--- a/drivers/mtd/mtdpart.c
+++ b/drivers/mtd/mtdpart.c
@@ -610,10 +610,22 @@ int mtd_add_partition(struct mtd_info *master, const char *name,
 	list_add(&new->list, &mtd_partitions);
 	mutex_unlock(&mtd_partitions_mutex);
 
-	add_mtd_device(&new->mtd);
+	ret = add_mtd_device(&new->mtd);
+	if (ret)
+		goto err_remove_part;
 
 	mtd_add_partition_attrs(new);
 
+	return 0;
+
+err_remove_part:
+	mutex_lock(&mtd_partitions_mutex);
+	list_del(&new->list);
+	mutex_unlock(&mtd_partitions_mutex);
+
+	free_partition(new);
+	pr_info("%s:%i\n", __func__, __LINE__);
+
 	return ret;
 }
 EXPORT_SYMBOL_GPL(mtd_add_partition);
@@ -658,28 +670,42 @@ int add_mtd_partitions(struct mtd_info *master,
 {
 	struct mtd_part *slave;
 	uint64_t cur_offset = 0;
-	int i;
+	int i, ret;
 
 	printk(KERN_NOTICE "Creating %d MTD partitions on \"%s\":\n", nbparts, master->name);
 
 	for (i = 0; i < nbparts; i++) {
 		slave = allocate_partition(master, parts + i, i, cur_offset);
 		if (IS_ERR(slave)) {
-			del_mtd_partitions(master);
-			return PTR_ERR(slave);
+			ret = PTR_ERR(slave);
+			goto err_del_partitions;
 		}
 
 		mutex_lock(&mtd_partitions_mutex);
 		list_add(&slave->list, &mtd_partitions);
 		mutex_unlock(&mtd_partitions_mutex);
 
-		add_mtd_device(&slave->mtd);
+		ret = add_mtd_device(&slave->mtd);
+		if (ret) {
+			mutex_lock(&mtd_partitions_mutex);
+			list_del(&slave->list);
+			mutex_unlock(&mtd_partitions_mutex);
+
+			free_partition(slave);
+			goto err_del_partitions;
+		}
+
 		mtd_add_partition_attrs(slave);
 
 		cur_offset = slave->offset + slave->mtd.size;
 	}
 
 	return 0;
+
+err_del_partitions:
+	del_mtd_partitions(master);
+
+	return ret;
 }
 
 static DEFINE_SPINLOCK(part_parser_lock);
-- 
2.20.1




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

* [PATCH 4.4 63/92] tipc: fix memory leak in tipc_nl_compat_publ_dump
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (61 preceding siblings ...)
  2019-12-04 17:50 ` [PATCH 4.4 62/92] mtd: Check add_mtd_device() ret code Greg Kroah-Hartman
@ 2019-12-04 17:50 ` Greg Kroah-Hartman
  2019-12-04 17:50 ` [PATCH 4.4 64/92] net/core/neighbour: tell kmemleak about hash tables Greg Kroah-Hartman
                   ` (32 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:50 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Gustavo A. R. Silva, Ying Xue,
	David S. Miller, Sasha Levin

From: Gustavo A. R. Silva <gustavo@embeddedor.com>

[ Upstream commit f87d8ad9233f115db92c6c087d58403b0009ed36 ]

There is a memory leak in case genlmsg_put fails.

Fix this by freeing *args* before return.

Addresses-Coverity-ID: 1476406 ("Resource leak")
Fixes: 46273cf7e009 ("tipc: fix a missing check of genlmsg_put")
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Acked-by: Ying Xue <ying.xue@windriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 net/tipc/netlink_compat.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/net/tipc/netlink_compat.c b/net/tipc/netlink_compat.c
index 4f6fbd2f29add..392d72d65e602 100644
--- a/net/tipc/netlink_compat.c
+++ b/net/tipc/netlink_compat.c
@@ -926,8 +926,10 @@ static int tipc_nl_compat_publ_dump(struct tipc_nl_compat_msg *msg, u32 sock)
 
 	hdr = genlmsg_put(args, 0, 0, &tipc_genl_family, NLM_F_MULTI,
 			  TIPC_NL_PUBL_GET);
-	if (!hdr)
+	if (!hdr) {
+		kfree_skb(args);
 		return -EMSGSIZE;
+	}
 
 	nest = nla_nest_start(args, TIPC_NLA_SOCK);
 	if (!nest) {
-- 
2.20.1




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

* [PATCH 4.4 64/92] net/core/neighbour: tell kmemleak about hash tables
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (62 preceding siblings ...)
  2019-12-04 17:50 ` [PATCH 4.4 63/92] tipc: fix memory leak in tipc_nl_compat_publ_dump Greg Kroah-Hartman
@ 2019-12-04 17:50 ` Greg Kroah-Hartman
  2019-12-04 17:50 ` [PATCH 4.4 65/92] net/core/neighbour: fix kmemleak minimal reference count for " Greg Kroah-Hartman
                   ` (31 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:50 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Konstantin Khlebnikov,
	David S. Miller, Sasha Levin

From: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>

[ Upstream commit 85704cb8dcfd88d351bfc87faaeba1c8214f3177 ]

This fixes false-positive kmemleak reports about leaked neighbour entries:

unreferenced object 0xffff8885c6e4d0a8 (size 1024):
  comm "softirq", pid 0, jiffies 4294922664 (age 167640.804s)
  hex dump (first 32 bytes):
    00 00 00 00 00 00 00 00 20 2c f3 83 ff ff ff ff  ........ ,......
    08 c0 ef 5f 84 88 ff ff 01 8c 7d 02 01 00 00 00  ..._......}.....
  backtrace:
    [<00000000748509fe>] ip6_finish_output2+0x887/0x1e40
    [<0000000036d7a0d8>] ip6_output+0x1ba/0x600
    [<0000000027ea7dba>] ip6_send_skb+0x92/0x2f0
    [<00000000d6e2111d>] udp_v6_send_skb.isra.24+0x680/0x15e0
    [<000000000668a8be>] udpv6_sendmsg+0x18c9/0x27a0
    [<000000004bd5fa90>] sock_sendmsg+0xb3/0xf0
    [<000000008227b29f>] ___sys_sendmsg+0x745/0x8f0
    [<000000008698009d>] __sys_sendmsg+0xde/0x170
    [<00000000889dacf1>] do_syscall_64+0x9b/0x400
    [<0000000081cdb353>] entry_SYSCALL_64_after_hwframe+0x49/0xbe
    [<000000005767ed39>] 0xffffffffffffffff

Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 net/core/neighbour.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/net/core/neighbour.c b/net/core/neighbour.c
index b3b242f7ecfd2..bba672482a0ef 100644
--- a/net/core/neighbour.c
+++ b/net/core/neighbour.c
@@ -18,6 +18,7 @@
 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 
 #include <linux/slab.h>
+#include <linux/kmemleak.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
@@ -325,12 +326,14 @@ static struct neigh_hash_table *neigh_hash_alloc(unsigned int shift)
 	ret = kmalloc(sizeof(*ret), GFP_ATOMIC);
 	if (!ret)
 		return NULL;
-	if (size <= PAGE_SIZE)
+	if (size <= PAGE_SIZE) {
 		buckets = kzalloc(size, GFP_ATOMIC);
-	else
+	} else {
 		buckets = (struct neighbour __rcu **)
 			  __get_free_pages(GFP_ATOMIC | __GFP_ZERO,
 					   get_order(size));
+		kmemleak_alloc(buckets, size, 0, GFP_ATOMIC);
+	}
 	if (!buckets) {
 		kfree(ret);
 		return NULL;
@@ -350,10 +353,12 @@ static void neigh_hash_free_rcu(struct rcu_head *head)
 	size_t size = (1 << nht->hash_shift) * sizeof(struct neighbour *);
 	struct neighbour __rcu **buckets = nht->hash_buckets;
 
-	if (size <= PAGE_SIZE)
+	if (size <= PAGE_SIZE) {
 		kfree(buckets);
-	else
+	} else {
+		kmemleak_free(buckets);
 		free_pages((unsigned long)buckets, get_order(size));
+	}
 	kfree(nht);
 }
 
-- 
2.20.1




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

* [PATCH 4.4 65/92] net/core/neighbour: fix kmemleak minimal reference count for hash tables
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (63 preceding siblings ...)
  2019-12-04 17:50 ` [PATCH 4.4 64/92] net/core/neighbour: tell kmemleak about hash tables Greg Kroah-Hartman
@ 2019-12-04 17:50 ` Greg Kroah-Hartman
  2019-12-04 17:50 ` [PATCH 4.4 66/92] sfc: suppress duplicate nvmem partition types in efx_ef10_mtd_probe Greg Kroah-Hartman
                   ` (30 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:50 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Konstantin Khlebnikov, Cong Wang,
	David S. Miller, Sasha Levin

From: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>

[ Upstream commit 01b833ab44c9e484060aad72267fc7e71beb559b ]

This should be 1 for normal allocations, 0 disables leak reporting.

Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Reported-by: Cong Wang <xiyou.wangcong@gmail.com>
Fixes: 85704cb8dcfd ("net/core/neighbour: tell kmemleak about hash tables")
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 net/core/neighbour.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/core/neighbour.c b/net/core/neighbour.c
index bba672482a0ef..8aef689b8f32d 100644
--- a/net/core/neighbour.c
+++ b/net/core/neighbour.c
@@ -332,7 +332,7 @@ static struct neigh_hash_table *neigh_hash_alloc(unsigned int shift)
 		buckets = (struct neighbour __rcu **)
 			  __get_free_pages(GFP_ATOMIC | __GFP_ZERO,
 					   get_order(size));
-		kmemleak_alloc(buckets, size, 0, GFP_ATOMIC);
+		kmemleak_alloc(buckets, size, 1, GFP_ATOMIC);
 	}
 	if (!buckets) {
 		kfree(ret);
-- 
2.20.1




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

* [PATCH 4.4 66/92] sfc: suppress duplicate nvmem partition types in efx_ef10_mtd_probe
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (64 preceding siblings ...)
  2019-12-04 17:50 ` [PATCH 4.4 65/92] net/core/neighbour: fix kmemleak minimal reference count for " Greg Kroah-Hartman
@ 2019-12-04 17:50 ` Greg Kroah-Hartman
  2019-12-04 17:50 ` [PATCH 4.4 67/92] decnet: fix DN_IFREQ_SIZE Greg Kroah-Hartman
                   ` (29 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:50 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Edward Cree, David S. Miller, Sasha Levin

From: Edward Cree <ecree@solarflare.com>

[ Upstream commit 3366463513f544c12c6b88c13da4462ee9e7a1a1 ]

Use a bitmap to keep track of which partition types we've already seen;
 for duplicates, return -EEXIST from efx_ef10_mtd_probe_partition() and
 thus skip adding that partition.
Duplicate partitions occur because of the A/B backup scheme used by newer
 sfc NICs.  Prior to this patch they cause sysfs_warn_dup errors because
 they have the same name, causing us not to expose any MTDs at all.

Signed-off-by: Edward Cree <ecree@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/net/ethernet/sfc/ef10.c | 29 +++++++++++++++++++++--------
 1 file changed, 21 insertions(+), 8 deletions(-)

diff --git a/drivers/net/ethernet/sfc/ef10.c b/drivers/net/ethernet/sfc/ef10.c
index 063aca17e698b..79a1031c3ef77 100644
--- a/drivers/net/ethernet/sfc/ef10.c
+++ b/drivers/net/ethernet/sfc/ef10.c
@@ -4433,22 +4433,25 @@ static const struct efx_ef10_nvram_type_info efx_ef10_nvram_types[] = {
 	{ NVRAM_PARTITION_TYPE_LICENSE,		   0,    0, "sfc_license" },
 	{ NVRAM_PARTITION_TYPE_PHY_MIN,		   0xff, 0, "sfc_phy_fw" },
 };
+#define EF10_NVRAM_PARTITION_COUNT	ARRAY_SIZE(efx_ef10_nvram_types)
 
 static int efx_ef10_mtd_probe_partition(struct efx_nic *efx,
 					struct efx_mcdi_mtd_partition *part,
-					unsigned int type)
+					unsigned int type,
+					unsigned long *found)
 {
 	MCDI_DECLARE_BUF(inbuf, MC_CMD_NVRAM_METADATA_IN_LEN);
 	MCDI_DECLARE_BUF(outbuf, MC_CMD_NVRAM_METADATA_OUT_LENMAX);
 	const struct efx_ef10_nvram_type_info *info;
 	size_t size, erase_size, outlen;
+	int type_idx = 0;
 	bool protected;
 	int rc;
 
-	for (info = efx_ef10_nvram_types; ; info++) {
-		if (info ==
-		    efx_ef10_nvram_types + ARRAY_SIZE(efx_ef10_nvram_types))
+	for (type_idx = 0; ; type_idx++) {
+		if (type_idx == EF10_NVRAM_PARTITION_COUNT)
 			return -ENODEV;
+		info = efx_ef10_nvram_types + type_idx;
 		if ((type & ~info->type_mask) == info->type)
 			break;
 	}
@@ -4461,6 +4464,13 @@ static int efx_ef10_mtd_probe_partition(struct efx_nic *efx,
 	if (protected)
 		return -ENODEV; /* hide it */
 
+	/* If we've already exposed a partition of this type, hide this
+	 * duplicate.  All operations on MTDs are keyed by the type anyway,
+	 * so we can't act on the duplicate.
+	 */
+	if (__test_and_set_bit(type_idx, found))
+		return -EEXIST;
+
 	part->nvram_type = type;
 
 	MCDI_SET_DWORD(inbuf, NVRAM_METADATA_IN_TYPE, type);
@@ -4489,6 +4499,7 @@ static int efx_ef10_mtd_probe_partition(struct efx_nic *efx,
 static int efx_ef10_mtd_probe(struct efx_nic *efx)
 {
 	MCDI_DECLARE_BUF(outbuf, MC_CMD_NVRAM_PARTITIONS_OUT_LENMAX);
+	DECLARE_BITMAP(found, EF10_NVRAM_PARTITION_COUNT);
 	struct efx_mcdi_mtd_partition *parts;
 	size_t outlen, n_parts_total, i, n_parts;
 	unsigned int type;
@@ -4517,11 +4528,13 @@ static int efx_ef10_mtd_probe(struct efx_nic *efx)
 	for (i = 0; i < n_parts_total; i++) {
 		type = MCDI_ARRAY_DWORD(outbuf, NVRAM_PARTITIONS_OUT_TYPE_ID,
 					i);
-		rc = efx_ef10_mtd_probe_partition(efx, &parts[n_parts], type);
-		if (rc == 0)
-			n_parts++;
-		else if (rc != -ENODEV)
+		rc = efx_ef10_mtd_probe_partition(efx, &parts[n_parts], type,
+						  found);
+		if (rc == -EEXIST || rc == -ENODEV)
+			continue;
+		if (rc)
 			goto fail;
+		n_parts++;
 	}
 
 	rc = efx_mtd_add(efx, &parts[0].common, n_parts, sizeof(*parts));
-- 
2.20.1




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

* [PATCH 4.4 67/92] decnet: fix DN_IFREQ_SIZE
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (65 preceding siblings ...)
  2019-12-04 17:50 ` [PATCH 4.4 66/92] sfc: suppress duplicate nvmem partition types in efx_ef10_mtd_probe Greg Kroah-Hartman
@ 2019-12-04 17:50 ` Greg Kroah-Hartman
  2019-12-04 17:50 ` [PATCH 4.4 68/92] tipc: fix skb may be leaky in tipc_link_input Greg Kroah-Hartman
                   ` (28 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:50 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Johannes Berg, David S. Miller, Sasha Levin

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

[ Upstream commit 50c2936634bcb1db78a8ca63249236810c11a80f ]

Digging through the ioctls with Al because of the previous
patches, we found that on 64-bit decnet's dn_dev_ioctl()
is wrong, because struct ifreq::ifr_ifru is actually 24
bytes (not 16 as expected from struct sockaddr) due to the
ifru_map and ifru_settings members.

Clearly, decnet expects the ioctl to be called with a struct
like
  struct ifreq_dn {
    char ifr_name[IFNAMSIZ];
    struct sockaddr_dn ifr_addr;
  };

since it does
  struct ifreq *ifr = ...;
  struct sockaddr_dn *sdn = (struct sockaddr_dn *)&ifr->ifr_addr;

This means that DN_IFREQ_SIZE is too big for what it wants on
64-bit, as it is
  sizeof(struct ifreq) - sizeof(struct sockaddr) +
  sizeof(struct sockaddr_dn)

This assumes that sizeof(struct sockaddr) is the size of ifr_ifru
but that isn't true.

Fix this to use offsetof(struct ifreq, ifr_ifru).

This indeed doesn't really matter much - the result is that we
copy in/out 8 bytes more than we should on 64-bit platforms. In
case the "struct ifreq_dn" lands just on the end of a page though
it might lead to faults.

As far as I can tell, it has been like this forever, so it seems
very likely that nobody cares.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 net/decnet/dn_dev.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/decnet/dn_dev.c b/net/decnet/dn_dev.c
index b2c26b081134a..80554e7e9a0f6 100644
--- a/net/decnet/dn_dev.c
+++ b/net/decnet/dn_dev.c
@@ -55,7 +55,7 @@
 #include <net/dn_neigh.h>
 #include <net/dn_fib.h>
 
-#define DN_IFREQ_SIZE (sizeof(struct ifreq) - sizeof(struct sockaddr) + sizeof(struct sockaddr_dn))
+#define DN_IFREQ_SIZE (offsetof(struct ifreq, ifr_ifru) + sizeof(struct sockaddr_dn))
 
 static char dn_rt_all_end_mcast[ETH_ALEN] = {0xAB,0x00,0x00,0x04,0x00,0x00};
 static char dn_rt_all_rt_mcast[ETH_ALEN]  = {0xAB,0x00,0x00,0x03,0x00,0x00};
-- 
2.20.1




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

* [PATCH 4.4 68/92] tipc: fix skb may be leaky in tipc_link_input
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (66 preceding siblings ...)
  2019-12-04 17:50 ` [PATCH 4.4 67/92] decnet: fix DN_IFREQ_SIZE Greg Kroah-Hartman
@ 2019-12-04 17:50 ` Greg Kroah-Hartman
  2019-12-04 17:50 ` [PATCH 4.4 69/92] sfc: initialise found bitmap in efx_ef10_mtd_probe Greg Kroah-Hartman
                   ` (27 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:50 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Ying Xue, Jon Maloy, Hoang Le,
	David S. Miller, Sasha Levin

From: Hoang Le <hoang.h.le@dektech.com.au>

[ Upstream commit 7384b538d3aed2ed49d3575483d17aeee790fb06 ]

When we free skb at tipc_data_input, we return a 'false' boolean.
Then, skb passed to subcalling tipc_link_input in tipc_link_rcv,

<snip>
1303 int tipc_link_rcv:
...
1354    if (!tipc_data_input(l, skb, l->inputq))
1355        rc |= tipc_link_input(l, skb, l->inputq);
</snip>

Fix it by simple changing to a 'true' boolean when skb is being free-ed.
Then, tipc_link_rcv will bypassed to subcalling tipc_link_input as above
condition.

Acked-by: Ying Xue <ying.xue@windriver.com>
Acked-by: Jon Maloy <maloy@donjonn.com>
Signed-off-by: Hoang Le <hoang.h.le@dektech.com.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 net/tipc/link.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/tipc/link.c b/net/tipc/link.c
index 736fffb28ab6f..0080699b7cd1b 100644
--- a/net/tipc/link.c
+++ b/net/tipc/link.c
@@ -883,7 +883,7 @@ static bool tipc_data_input(struct tipc_link *l, struct sk_buff *skb,
 	default:
 		pr_warn("Dropping received illegal msg type\n");
 		kfree_skb(skb);
-		return false;
+		return true;
 	};
 }
 
-- 
2.20.1




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

* [PATCH 4.4 69/92] sfc: initialise found bitmap in efx_ef10_mtd_probe
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (67 preceding siblings ...)
  2019-12-04 17:50 ` [PATCH 4.4 68/92] tipc: fix skb may be leaky in tipc_link_input Greg Kroah-Hartman
@ 2019-12-04 17:50 ` Greg Kroah-Hartman
  2019-12-04 17:50 ` [PATCH 4.4 70/92] net: fix possible overflow in __sk_mem_raise_allocated() Greg Kroah-Hartman
                   ` (26 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:50 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Bert Kenward, David S. Miller, Sasha Levin

From: Bert Kenward <bkenward@solarflare.com>

[ Upstream commit c65285428b6e7797f1bb063f33b0ae7e93397b7b ]

The bitmap of found partitions in efx_ef10_mtd_probe was not
initialised, causing partitions to be suppressed based off whatever
value was in the bitmap at the start.

Fixes: 3366463513f5 ("sfc: suppress duplicate nvmem partition types in efx_ef10_mtd_probe")
Signed-off-by: Bert Kenward <bkenward@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/net/ethernet/sfc/ef10.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/sfc/ef10.c b/drivers/net/ethernet/sfc/ef10.c
index 79a1031c3ef77..6dcd436e6e323 100644
--- a/drivers/net/ethernet/sfc/ef10.c
+++ b/drivers/net/ethernet/sfc/ef10.c
@@ -4499,7 +4499,7 @@ static int efx_ef10_mtd_probe_partition(struct efx_nic *efx,
 static int efx_ef10_mtd_probe(struct efx_nic *efx)
 {
 	MCDI_DECLARE_BUF(outbuf, MC_CMD_NVRAM_PARTITIONS_OUT_LENMAX);
-	DECLARE_BITMAP(found, EF10_NVRAM_PARTITION_COUNT);
+	DECLARE_BITMAP(found, EF10_NVRAM_PARTITION_COUNT) = { 0 };
 	struct efx_mcdi_mtd_partition *parts;
 	size_t outlen, n_parts_total, i, n_parts;
 	unsigned int type;
-- 
2.20.1




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

* [PATCH 4.4 70/92] net: fix possible overflow in __sk_mem_raise_allocated()
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (68 preceding siblings ...)
  2019-12-04 17:50 ` [PATCH 4.4 69/92] sfc: initialise found bitmap in efx_ef10_mtd_probe Greg Kroah-Hartman
@ 2019-12-04 17:50 ` Greg Kroah-Hartman
  2019-12-04 17:50 ` [PATCH 4.4 71/92] net: dev: Use unsigned integer as an argument to left-shift Greg Kroah-Hartman
                   ` (25 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:50 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Eric Dumazet, David S. Miller, Sasha Levin

From: Eric Dumazet <edumazet@google.com>

[ Upstream commit 5bf325a53202b8728cf7013b72688c46071e212e ]

With many active TCP sockets, fat TCP sockets could fool
__sk_mem_raise_allocated() thanks to an overflow.

They would increase their share of the memory, instead
of decreasing it.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 include/net/sock.h | 2 +-
 net/core/sock.c    | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/include/net/sock.h b/include/net/sock.h
index 5ed4786a2058b..de4434284a34b 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -1282,7 +1282,7 @@ static inline void sk_sockets_allocated_inc(struct sock *sk)
 	percpu_counter_inc(prot->sockets_allocated);
 }
 
-static inline int
+static inline u64
 sk_sockets_allocated_read_positive(struct sock *sk)
 {
 	struct proto *prot = sk->sk_prot;
diff --git a/net/core/sock.c b/net/core/sock.c
index 8aa4a5f895723..0f4c15fcd87d3 100644
--- a/net/core/sock.c
+++ b/net/core/sock.c
@@ -2122,7 +2122,7 @@ int __sk_mem_schedule(struct sock *sk, int size, int kind)
 	}
 
 	if (sk_has_memory_pressure(sk)) {
-		int alloc;
+		u64 alloc;
 
 		if (!sk_under_memory_pressure(sk))
 			return 1;
-- 
2.20.1




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

* [PATCH 4.4 71/92] net: dev: Use unsigned integer as an argument to left-shift
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (69 preceding siblings ...)
  2019-12-04 17:50 ` [PATCH 4.4 70/92] net: fix possible overflow in __sk_mem_raise_allocated() Greg Kroah-Hartman
@ 2019-12-04 17:50 ` Greg Kroah-Hartman
  2019-12-04 17:50 ` [PATCH 4.4 72/92] scsi: libsas: Support SATA PHY connection rate unmatch fixing during discovery Greg Kroah-Hartman
                   ` (24 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:50 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Andy Shevchenko, David S. Miller,
	Sasha Levin

From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

[ Upstream commit f4d7b3e23d259c44f1f1c39645450680fcd935d6 ]

1 << 31 is Undefined Behaviour according to the C standard.
Use U type modifier to avoid theoretical overflow.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 include/linux/netdevice.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 0b211d482c961..861b71377e5e1 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -3298,7 +3298,7 @@ static inline u32 netif_msg_init(int debug_value, int default_msg_enable_bits)
 	if (debug_value == 0)	/* no output */
 		return 0;
 	/* set low N bits */
-	return (1 << debug_value) - 1;
+	return (1U << debug_value) - 1;
 }
 
 static inline void __netif_tx_lock(struct netdev_queue *txq, int cpu)
-- 
2.20.1




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

* [PATCH 4.4 72/92] scsi: libsas: Support SATA PHY connection rate unmatch fixing during discovery
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (70 preceding siblings ...)
  2019-12-04 17:50 ` [PATCH 4.4 71/92] net: dev: Use unsigned integer as an argument to left-shift Greg Kroah-Hartman
@ 2019-12-04 17:50 ` Greg Kroah-Hartman
  2019-12-04 17:50 ` [PATCH 4.4 73/92] ACPI / APEI: Switch estatus pool to use vmalloc memory Greg Kroah-Hartman
                   ` (23 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:50 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Jian Luo, John Garry,
	Martin K. Petersen, Sasha Levin

From: John Garry <john.garry@huawei.com>

[ Upstream commit cec9771d2e954650095aa37a6a97722c8194e7d2 ]

   +----------+             +----------+
   |          |             |          |
   |          |--- 3.0 G ---|          |--- 6.0 G --- SAS  disk
   |          |             |          |
   |          |--- 3.0 G ---|          |--- 6.0 G --- SAS  disk
   |initiator |             |          |
   | device   |--- 3.0 G ---| Expander |--- 6.0 G --- SAS  disk
   |          |             |          |
   |          |--- 3.0 G ---|          |--- 6.0 G --- SATA disk  -->failed to connect
   |          |             |          |
   |          |             |          |--- 6.0 G --- SATA disk  -->failed to connect
   |          |             |          |
   +----------+             +----------+

According to Serial Attached SCSI - 1.1 (SAS-1.1):
If an expander PHY attached to a SATA PHY is using a physical link rate
greater than the maximum connection rate supported by the pathway from an
STP initiator port, a management application client should use the SMP PHY
CONTROL function (see 10.4.3.10) to set the PROGRAMMED MAXIMUM PHYSICAL
LINK RATE field of the expander PHY to the maximum connection rate
supported by the pathway from that STP initiator port.

Currently libsas does not support checking if this condition occurs, nor
rectifying when it does.

Such a condition is not at all common, however it has been seen on some
pre-silicon environments where the initiator PHY only supports a 1.5 Gbit
maximum linkrate, mated with 12G expander PHYs and 3/6G SATA phy.

This patch adds support for checking and rectifying this condition during
initial device discovery only.

We do support checking min pathway connection rate during revalidation phase,
when new devices can be detected in the topology. However we do not
support in the case of the the user reprogramming PHY linkrates, such that
min pathway condition is not met/maintained.

A note on root port PHY rates:
The libsas root port PHY rates calculation is broken. Libsas sets the
rates (min, max, and current linkrate) of a root port to the same linkrate
of the first PHY member of that same port. In doing so, it assumes that
all other PHYs which subsequently join the port to have the same
negotiated linkrate, when they could actually be different.

In practice this doesn't happen, as initiator and expander PHYs are
normally initialised with consistent min/max linkrates.

This has not caused an issue so far, so leave alone for now.

Tested-by: Jian Luo <luojian5@huawei.com>
Signed-off-by: John Garry <john.garry@huawei.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/scsi/libsas/sas_expander.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/drivers/scsi/libsas/sas_expander.c b/drivers/scsi/libsas/sas_expander.c
index d44f18f773c0f..b7e4493d3dc16 100644
--- a/drivers/scsi/libsas/sas_expander.c
+++ b/drivers/scsi/libsas/sas_expander.c
@@ -806,6 +806,26 @@ static struct domain_device *sas_ex_discover_end_dev(
 
 #ifdef CONFIG_SCSI_SAS_ATA
 	if ((phy->attached_tproto & SAS_PROTOCOL_STP) || phy->attached_sata_dev) {
+		if (child->linkrate > parent->min_linkrate) {
+			struct sas_phy_linkrates rates = {
+				.maximum_linkrate = parent->min_linkrate,
+				.minimum_linkrate = parent->min_linkrate,
+			};
+			int ret;
+
+			pr_notice("ex %016llx phy%02d SATA device linkrate > min pathway connection rate, attempting to lower device linkrate\n",
+				   SAS_ADDR(child->sas_addr), phy_id);
+			ret = sas_smp_phy_control(parent, phy_id,
+						  PHY_FUNC_LINK_RESET, &rates);
+			if (ret) {
+				pr_err("ex %016llx phy%02d SATA device could not set linkrate (%d)\n",
+				       SAS_ADDR(child->sas_addr), phy_id, ret);
+				goto out_free;
+			}
+			pr_notice("ex %016llx phy%02d SATA device set linkrate successfully\n",
+				  SAS_ADDR(child->sas_addr), phy_id);
+			child->linkrate = child->min_linkrate;
+		}
 		res = sas_get_ata_info(child, phy);
 		if (res)
 			goto out_free;
-- 
2.20.1




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

* [PATCH 4.4 73/92] ACPI / APEI: Switch estatus pool to use vmalloc memory
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (71 preceding siblings ...)
  2019-12-04 17:50 ` [PATCH 4.4 72/92] scsi: libsas: Support SATA PHY connection rate unmatch fixing during discovery Greg Kroah-Hartman
@ 2019-12-04 17:50 ` Greg Kroah-Hartman
  2019-12-04 17:50 ` [PATCH 4.4 74/92] scsi: libsas: Check SMP PHY control function result Greg Kroah-Hartman
                   ` (22 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:50 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, James Morse, Borislav Petkov,
	Rafael J. Wysocki, Sasha Levin

From: James Morse <james.morse@arm.com>

[ Upstream commit 0ac234be1a9497498e57d958f4251f5257b116b4 ]

The ghes code is careful to parse and round firmware's advertised
memory requirements for CPER records, up to a maximum of 64K.
However when ghes_estatus_pool_expand() does its work, it splits
the requested size into PAGE_SIZE granules.

This means if firmware generates 5K of CPER records, and correctly
describes this in the table, __process_error() will silently fail as it
is unable to allocate more than PAGE_SIZE.

Switch the estatus pool to vmalloc() memory. On x86 vmalloc() memory
may fault and be fixed up by vmalloc_fault(). To prevent this call
vmalloc_sync_all() before an NMI handler could discover the memory.

Signed-off-by: James Morse <james.morse@arm.com>
Reviewed-by: Borislav Petkov <bp@suse.de>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/acpi/apei/ghes.c | 30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c
index bb81cd05f0bc8..d532aa87eef10 100644
--- a/drivers/acpi/apei/ghes.c
+++ b/drivers/acpi/apei/ghes.c
@@ -198,40 +198,40 @@ static int ghes_estatus_pool_init(void)
 	return 0;
 }
 
-static void ghes_estatus_pool_free_chunk_page(struct gen_pool *pool,
+static void ghes_estatus_pool_free_chunk(struct gen_pool *pool,
 					      struct gen_pool_chunk *chunk,
 					      void *data)
 {
-	free_page(chunk->start_addr);
+	vfree((void *)chunk->start_addr);
 }
 
 static void ghes_estatus_pool_exit(void)
 {
 	gen_pool_for_each_chunk(ghes_estatus_pool,
-				ghes_estatus_pool_free_chunk_page, NULL);
+				ghes_estatus_pool_free_chunk, NULL);
 	gen_pool_destroy(ghes_estatus_pool);
 }
 
 static int ghes_estatus_pool_expand(unsigned long len)
 {
-	unsigned long i, pages, size, addr;
-	int ret;
+	unsigned long size, addr;
 
 	ghes_estatus_pool_size_request += PAGE_ALIGN(len);
 	size = gen_pool_size(ghes_estatus_pool);
 	if (size >= ghes_estatus_pool_size_request)
 		return 0;
-	pages = (ghes_estatus_pool_size_request - size) / PAGE_SIZE;
-	for (i = 0; i < pages; i++) {
-		addr = __get_free_page(GFP_KERNEL);
-		if (!addr)
-			return -ENOMEM;
-		ret = gen_pool_add(ghes_estatus_pool, addr, PAGE_SIZE, -1);
-		if (ret)
-			return ret;
-	}
 
-	return 0;
+	addr = (unsigned long)vmalloc(PAGE_ALIGN(len));
+	if (!addr)
+		return -ENOMEM;
+
+	/*
+	 * New allocation must be visible in all pgd before it can be found by
+	 * an NMI allocating from the pool.
+	 */
+	vmalloc_sync_all();
+
+	return gen_pool_add(ghes_estatus_pool, addr, PAGE_ALIGN(len), -1);
 }
 
 static struct ghes *ghes_new(struct acpi_hest_generic *generic)
-- 
2.20.1




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

* [PATCH 4.4 74/92] scsi: libsas: Check SMP PHY control function result
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (72 preceding siblings ...)
  2019-12-04 17:50 ` [PATCH 4.4 73/92] ACPI / APEI: Switch estatus pool to use vmalloc memory Greg Kroah-Hartman
@ 2019-12-04 17:50 ` Greg Kroah-Hartman
  2019-12-04 17:50 ` [PATCH 4.4 75/92] powerpc/pseries/dlpar: Fix a missing check in dlpar_parse_cc_property() Greg Kroah-Hartman
                   ` (21 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:50 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Jian Luo, John Garry,
	Martin K. Petersen, Sasha Levin

From: John Garry <john.garry@huawei.com>

[ Upstream commit 01929a65dfa13e18d89264ab1378854a91857e59 ]

Currently the SMP PHY control execution result is checked, however the
function result for the command is not.

As such, we may be missing all potential errors, like SMP FUNCTION FAILED,
INVALID REQUEST FRAME LENGTH, etc., meaning the PHY control request has
failed.

In some scenarios we need to ensure the function result is accepted, so add
a check for this.

Tested-by: Jian Luo <luojian5@huawei.com>
Signed-off-by: John Garry <john.garry@huawei.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/scsi/libsas/sas_expander.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/scsi/libsas/sas_expander.c b/drivers/scsi/libsas/sas_expander.c
index b7e4493d3dc16..7e8274938a3ee 100644
--- a/drivers/scsi/libsas/sas_expander.c
+++ b/drivers/scsi/libsas/sas_expander.c
@@ -603,7 +603,14 @@ int sas_smp_phy_control(struct domain_device *dev, int phy_id,
 	}
 
 	res = smp_execute_task(dev, pc_req, PC_REQ_SIZE, pc_resp,PC_RESP_SIZE);
-
+	if (res) {
+		pr_err("ex %016llx phy%02d PHY control failed: %d\n",
+		       SAS_ADDR(dev->sas_addr), phy_id, res);
+	} else if (pc_resp[2] != SMP_RESP_FUNC_ACC) {
+		pr_err("ex %016llx phy%02d PHY control failed: function result 0x%x\n",
+		       SAS_ADDR(dev->sas_addr), phy_id, pc_resp[2]);
+		res = pc_resp[2];
+	}
 	kfree(pc_resp);
 	kfree(pc_req);
 	return res;
-- 
2.20.1




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

* [PATCH 4.4 75/92] powerpc/pseries/dlpar: Fix a missing check in dlpar_parse_cc_property()
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (73 preceding siblings ...)
  2019-12-04 17:50 ` [PATCH 4.4 74/92] scsi: libsas: Check SMP PHY control function result Greg Kroah-Hartman
@ 2019-12-04 17:50 ` Greg Kroah-Hartman
  2019-12-04 17:50 ` [PATCH 4.4 76/92] mtd: Remove a debug trace in mtdpart.c Greg Kroah-Hartman
                   ` (20 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:50 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Gen Zhang, Michael Ellerman, Sasha Levin

From: Gen Zhang <blackgod016574@gmail.com>

[ Upstream commit efa9ace68e487ddd29c2b4d6dd23242158f1f607 ]

In dlpar_parse_cc_property(), 'prop->name' is allocated by kstrdup().
kstrdup() may return NULL, so it should be checked and handle error.
And prop should be freed if 'prop->name' is NULL.

Signed-off-by: Gen Zhang <blackgod016574@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 arch/powerpc/platforms/pseries/dlpar.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/arch/powerpc/platforms/pseries/dlpar.c b/arch/powerpc/platforms/pseries/dlpar.c
index a8efed3b46916..551ba5b35df9d 100644
--- a/arch/powerpc/platforms/pseries/dlpar.c
+++ b/arch/powerpc/platforms/pseries/dlpar.c
@@ -55,6 +55,10 @@ static struct property *dlpar_parse_cc_property(struct cc_workarea *ccwa)
 
 	name = (char *)ccwa + be32_to_cpu(ccwa->name_offset);
 	prop->name = kstrdup(name, GFP_KERNEL);
+	if (!prop->name) {
+		dlpar_free_cc_property(prop);
+		return NULL;
+	}
 
 	prop->length = be32_to_cpu(ccwa->prop_length);
 	value = (char *)ccwa + be32_to_cpu(ccwa->prop_offset);
-- 
2.20.1




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

* [PATCH 4.4 76/92] mtd: Remove a debug trace in mtdpart.c
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (74 preceding siblings ...)
  2019-12-04 17:50 ` [PATCH 4.4 75/92] powerpc/pseries/dlpar: Fix a missing check in dlpar_parse_cc_property() Greg Kroah-Hartman
@ 2019-12-04 17:50 ` Greg Kroah-Hartman
  2019-12-04 17:50 ` [PATCH 4.4 77/92] staging: rtl8192e: fix potential use after free Greg Kroah-Hartman
                   ` (19 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:50 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Boris Brezillon, Sasha Levin

From: Boris Brezillon <bbrezillon@kernel.org>

[ Upstream commit bda2ab56356b9acdfab150f31c4bac9846253092 ]

Commit 2b6f0090a333 ("mtd: Check add_mtd_device() ret code") contained
a leftover of the debug session that led to this bug fix. Remove this
pr_info().

Fixes: 2b6f0090a333 ("mtd: Check add_mtd_device() ret code")
Signed-off-by: Boris Brezillon <bbrezillon@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/mtd/mtdpart.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/mtd/mtdpart.c b/drivers/mtd/mtdpart.c
index 9b48be05cd1af..59772510452a5 100644
--- a/drivers/mtd/mtdpart.c
+++ b/drivers/mtd/mtdpart.c
@@ -624,7 +624,6 @@ err_remove_part:
 	mutex_unlock(&mtd_partitions_mutex);
 
 	free_partition(new);
-	pr_info("%s:%i\n", __func__, __LINE__);
 
 	return ret;
 }
-- 
2.20.1




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

* [PATCH 4.4 77/92] staging: rtl8192e: fix potential use after free
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (75 preceding siblings ...)
  2019-12-04 17:50 ` [PATCH 4.4 76/92] mtd: Remove a debug trace in mtdpart.c Greg Kroah-Hartman
@ 2019-12-04 17:50 ` Greg Kroah-Hartman
  2019-12-04 17:50 ` [PATCH 4.4 78/92] USB: serial: ftdi_sio: add device IDs for U-Blox C099-F9P Greg Kroah-Hartman
                   ` (18 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:50 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Pan Bian, Dan Carpenter

From: Pan Bian <bianpan2016@163.com>

commit b7aa39a2ed0112d07fc277ebd24a08a7b2368ab9 upstream.

The variable skb is released via kfree_skb() when the return value of
_rtl92e_tx is not zero. However, after that, skb is accessed again to
read its length, which may result in a use after free bug. This patch
fixes the bug by moving the release operation to where skb is never
used later.

Signed-off-by: Pan Bian <bianpan2016@163.com>
Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/1572965351-6745-1-git-send-email-bianpan2016@163.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/staging/rtl8192e/rtl8192e/rtl_core.c |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

--- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c
+++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c
@@ -1631,14 +1631,15 @@ static void _rtl92e_hard_data_xmit(struc
 	memcpy((unsigned char *)(skb->cb), &dev, sizeof(dev));
 	skb_push(skb, priv->rtllib->tx_headroom);
 	ret = _rtl92e_tx(dev, skb);
-	if (ret != 0)
-		kfree_skb(skb);
 
 	if (queue_index != MGNT_QUEUE) {
 		priv->rtllib->stats.tx_bytes += (skb->len -
 						 priv->rtllib->tx_headroom);
 		priv->rtllib->stats.tx_packets++;
 	}
+
+	if (ret != 0)
+		kfree_skb(skb);
 }
 
 static int _rtl92e_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)



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

* [PATCH 4.4 78/92] USB: serial: ftdi_sio: add device IDs for U-Blox C099-F9P
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (76 preceding siblings ...)
  2019-12-04 17:50 ` [PATCH 4.4 77/92] staging: rtl8192e: fix potential use after free Greg Kroah-Hartman
@ 2019-12-04 17:50 ` Greg Kroah-Hartman
  2019-12-04 17:50 ` [PATCH 4.4 79/92] mei: bus: prefix device names on bus with the bus name Greg Kroah-Hartman
                   ` (17 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:50 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Fabio DUrso, Johan Hovold

From: Fabio D'Urso <fabiodurso@hotmail.it>

commit c1a1f273d0825774c80896b8deb1c9ea1d0b91e3 upstream.

This device presents itself as a USB hub with three attached devices:
 - An ACM serial port connected to the GPS module (not affected by this
   commit)
 - An FTDI serial port connected to the GPS module (1546:0502)
 - Another FTDI serial port connected to the ODIN-W2 radio module
   (1546:0503)

This commit registers U-Blox's VID and the PIDs of the second and third
devices.

Datasheet: https://www.u-blox.com/sites/default/files/C099-F9P-AppBoard-Mbed-OS3-FW_UserGuide_%28UBX-18063024%29.pdf

Signed-off-by: Fabio D'Urso <fabiodurso@hotmail.it>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/serial/ftdi_sio.c     |    3 +++
 drivers/usb/serial/ftdi_sio_ids.h |    7 +++++++
 2 files changed, 10 insertions(+)

--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
@@ -1028,6 +1028,9 @@ static const struct usb_device_id id_tab
 	/* Sienna devices */
 	{ USB_DEVICE(FTDI_VID, FTDI_SIENNA_PID) },
 	{ USB_DEVICE(ECHELON_VID, ECHELON_U20_PID) },
+	/* U-Blox devices */
+	{ USB_DEVICE(UBLOX_VID, UBLOX_C099F9P_ZED_PID) },
+	{ USB_DEVICE(UBLOX_VID, UBLOX_C099F9P_ODIN_PID) },
 	{ }					/* Terminating entry */
 };
 
--- a/drivers/usb/serial/ftdi_sio_ids.h
+++ b/drivers/usb/serial/ftdi_sio_ids.h
@@ -1557,3 +1557,10 @@
  */
 #define UNJO_VID			0x22B7
 #define UNJO_ISODEBUG_V1_PID		0x150D
+
+/*
+ * U-Blox products (http://www.u-blox.com).
+ */
+#define UBLOX_VID			0x1546
+#define UBLOX_C099F9P_ZED_PID		0x0502
+#define UBLOX_C099F9P_ODIN_PID		0x0503



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

* [PATCH 4.4 79/92] mei: bus: prefix device names on bus with the bus name
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (77 preceding siblings ...)
  2019-12-04 17:50 ` [PATCH 4.4 78/92] USB: serial: ftdi_sio: add device IDs for U-Blox C099-F9P Greg Kroah-Hartman
@ 2019-12-04 17:50 ` Greg Kroah-Hartman
  2019-12-04 17:50 ` [PATCH 4.4 80/92] media: v4l2-ctrl: fix flags for DO_WHITE_BALANCE Greg Kroah-Hartman
                   ` (16 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:50 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Alexander Usyskin, Tomas Winkler

From: Alexander Usyskin <alexander.usyskin@intel.com>

commit 7a2b9e6ec84588b0be65cc0ae45a65bac431496b upstream.

Add parent device name to the name of devices on bus to avoid
device names collisions for same client UUID available
from different MEI heads. Namely this prevents sysfs collision under
/sys/bus/mei/device/

In the device part leave just UUID other parameters that are
required for device matching are not required here and are
just bloating the name.

Cc: <stable@vger.kernel.org>
Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Link: https://lore.kernel.org/r/20191105150514.14010-1-tomas.winkler@intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/misc/mei/bus.c |    9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

--- a/drivers/misc/mei/bus.c
+++ b/drivers/misc/mei/bus.c
@@ -761,15 +761,16 @@ static struct device_type mei_cl_device_
 
 /**
  * mei_cl_bus_set_name - set device name for me client device
+ *  <controller>-<client device>
+ *  Example: 0000:00:16.0-55213584-9a29-4916-badf-0fb7ed682aeb
  *
  * @cldev: me client device
  */
 static inline void mei_cl_bus_set_name(struct mei_cl_device *cldev)
 {
-	dev_set_name(&cldev->dev, "mei:%s:%pUl:%02X",
-		     cldev->name,
-		     mei_me_cl_uuid(cldev->me_cl),
-		     mei_me_cl_ver(cldev->me_cl));
+	dev_set_name(&cldev->dev, "%s-%pUl",
+		     dev_name(cldev->bus->dev),
+		     mei_me_cl_uuid(cldev->me_cl));
 }
 
 /**



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

* [PATCH 4.4 80/92] media: v4l2-ctrl: fix flags for DO_WHITE_BALANCE
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (78 preceding siblings ...)
  2019-12-04 17:50 ` [PATCH 4.4 79/92] mei: bus: prefix device names on bus with the bus name Greg Kroah-Hartman
@ 2019-12-04 17:50 ` Greg Kroah-Hartman
  2019-12-04 17:50 ` [PATCH 4.4 81/92] net: macb: fix error format in dev_err() Greg Kroah-Hartman
                   ` (15 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:50 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Eugen Hristev, Hans Verkuil,
	Mauro Carvalho Chehab, Lee Jones

From: Eugen Hristev <eugen.hristev@microchip.com>

commit a0816e5088baab82aa738d61a55513114a673c8e upstream.

Control DO_WHITE_BALANCE is a button, with read only and execute-on-write flags.
Adding this control in the proper list in the fill function.

After adding it here, we can see output of v4l2-ctl -L
do_white_balance 0x0098090d (button) : flags=write-only, execute-on-write

Signed-off-by: Eugen Hristev <eugen.hristev@microchip.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/media/v4l2-core/v4l2-ctrls.c |    1 +
 1 file changed, 1 insertion(+)

--- a/drivers/media/v4l2-core/v4l2-ctrls.c
+++ b/drivers/media/v4l2-core/v4l2-ctrls.c
@@ -991,6 +991,7 @@ void v4l2_ctrl_fill(u32 id, const char *
 	case V4L2_CID_FLASH_STROBE_STOP:
 	case V4L2_CID_AUTO_FOCUS_START:
 	case V4L2_CID_AUTO_FOCUS_STOP:
+	case V4L2_CID_DO_WHITE_BALANCE:
 		*type = V4L2_CTRL_TYPE_BUTTON;
 		*flags |= V4L2_CTRL_FLAG_WRITE_ONLY |
 			  V4L2_CTRL_FLAG_EXECUTE_ON_WRITE;



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

* [PATCH 4.4 81/92] net: macb: fix error format in dev_err()
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (79 preceding siblings ...)
  2019-12-04 17:50 ` [PATCH 4.4 80/92] media: v4l2-ctrl: fix flags for DO_WHITE_BALANCE Greg Kroah-Hartman
@ 2019-12-04 17:50 ` Greg Kroah-Hartman
  2019-12-04 17:50 ` [PATCH 4.4 82/92] pwm: Clear chip_data in pwm_put() Greg Kroah-Hartman
                   ` (14 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:50 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Luca Ceresoli, Nicolas Ferre,
	Andrew Lunn, David S. Miller, Lee Jones

From: Luca Ceresoli <luca@lucaceresoli.net>

commit f413cbb332a0b5251a790f396d0eb4ebcade5dec upstream.

Errors are negative numbers. Using %u shows them as very large positive
numbers such as 4294967277 that don't make sense. Use the %d format
instead, and get a much nicer -19.

Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
Fixes: b48e0bab142f ("net: macb: Migrate to devm clock interface")
Fixes: 93b31f48b3ba ("net/macb: unify clock management")
Fixes: 421d9df0628b ("net/macb: merge at91_ether driver into macb driver")
Fixes: aead88bd0e99 ("net: ethernet: macb: Add support for rx_clk")
Fixes: f5473d1d44e4 ("net: macb: Support clock management for tsu_clk")
Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/net/ethernet/cadence/macb.c |   12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

--- a/drivers/net/ethernet/cadence/macb.c
+++ b/drivers/net/ethernet/cadence/macb.c
@@ -2275,14 +2275,14 @@ static int macb_clk_init(struct platform
 	*pclk = devm_clk_get(&pdev->dev, "pclk");
 	if (IS_ERR(*pclk)) {
 		err = PTR_ERR(*pclk);
-		dev_err(&pdev->dev, "failed to get macb_clk (%u)\n", err);
+		dev_err(&pdev->dev, "failed to get macb_clk (%d)\n", err);
 		return err;
 	}
 
 	*hclk = devm_clk_get(&pdev->dev, "hclk");
 	if (IS_ERR(*hclk)) {
 		err = PTR_ERR(*hclk);
-		dev_err(&pdev->dev, "failed to get hclk (%u)\n", err);
+		dev_err(&pdev->dev, "failed to get hclk (%d)\n", err);
 		return err;
 	}
 
@@ -2292,19 +2292,19 @@ static int macb_clk_init(struct platform
 
 	err = clk_prepare_enable(*pclk);
 	if (err) {
-		dev_err(&pdev->dev, "failed to enable pclk (%u)\n", err);
+		dev_err(&pdev->dev, "failed to enable pclk (%d)\n", err);
 		return err;
 	}
 
 	err = clk_prepare_enable(*hclk);
 	if (err) {
-		dev_err(&pdev->dev, "failed to enable hclk (%u)\n", err);
+		dev_err(&pdev->dev, "failed to enable hclk (%d)\n", err);
 		goto err_disable_pclk;
 	}
 
 	err = clk_prepare_enable(*tx_clk);
 	if (err) {
-		dev_err(&pdev->dev, "failed to enable tx_clk (%u)\n", err);
+		dev_err(&pdev->dev, "failed to enable tx_clk (%d)\n", err);
 		goto err_disable_hclk;
 	}
 
@@ -2704,7 +2704,7 @@ static int at91ether_clk_init(struct pla
 
 	err = clk_prepare_enable(*pclk);
 	if (err) {
-		dev_err(&pdev->dev, "failed to enable pclk (%u)\n", err);
+		dev_err(&pdev->dev, "failed to enable pclk (%d)\n", err);
 		return err;
 	}
 



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

* [PATCH 4.4 82/92] pwm: Clear chip_data in pwm_put()
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (80 preceding siblings ...)
  2019-12-04 17:50 ` [PATCH 4.4 81/92] net: macb: fix error format in dev_err() Greg Kroah-Hartman
@ 2019-12-04 17:50 ` Greg Kroah-Hartman
  2019-12-04 17:50 ` [PATCH 4.4 83/92] macvlan: schedule bc_work even if error Greg Kroah-Hartman
                   ` (13 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:50 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Uwe Kleine-König,
	Thierry Reding, Lee Jones

From: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>

commit e926b12c611c2095c7976e2ed31753ad6eb5ff1a upstream.

After a PWM is disposed by its user the per chip data becomes invalid.
Clear the data in common code instead of the device drivers to get
consistent behaviour. Before this patch only three of nine drivers
cleaned up here.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/pwm/core.c        |    1 +
 drivers/pwm/pwm-samsung.c |    1 -
 2 files changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/pwm/core.c
+++ b/drivers/pwm/core.c
@@ -781,6 +781,7 @@ void pwm_put(struct pwm_device *pwm)
 	if (pwm->chip->ops->free)
 		pwm->chip->ops->free(pwm->chip, pwm);
 
+	pwm_set_chip_data(pwm, NULL);
 	pwm->label = NULL;
 
 	module_put(pwm->chip->ops->owner);
--- a/drivers/pwm/pwm-samsung.c
+++ b/drivers/pwm/pwm-samsung.c
@@ -226,7 +226,6 @@ static int pwm_samsung_request(struct pw
 static void pwm_samsung_free(struct pwm_chip *chip, struct pwm_device *pwm)
 {
 	devm_kfree(chip->dev, pwm_get_chip_data(pwm));
-	pwm_set_chip_data(pwm, NULL);
 }
 
 static int pwm_samsung_enable(struct pwm_chip *chip, struct pwm_device *pwm)



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

* [PATCH 4.4 83/92] macvlan: schedule bc_work even if error
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (81 preceding siblings ...)
  2019-12-04 17:50 ` [PATCH 4.4 82/92] pwm: Clear chip_data in pwm_put() Greg Kroah-Hartman
@ 2019-12-04 17:50 ` Greg Kroah-Hartman
  2019-12-04 17:50 ` [PATCH 4.4 84/92] openvswitch: fix flow command message size Greg Kroah-Hartman
                   ` (12 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:50 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Menglong Dong, David S. Miller

From: Menglong Dong <dong.menglong@zte.com.cn>

[ Upstream commit 1d7ea55668878bb350979c377fc72509dd6f5b21 ]

While enqueueing a broadcast skb to port->bc_queue, schedule_work()
is called to add port->bc_work, which processes the skbs in
bc_queue, to "events" work queue. If port->bc_queue is full, the
skb will be discarded and schedule_work(&port->bc_work) won't be
called. However, if port->bc_queue is full and port->bc_work is not
running or pending, port->bc_queue will keep full and schedule_work()
won't be called any more, and all broadcast skbs to macvlan will be
discarded. This case can happen:

macvlan_process_broadcast() is the pending function of port->bc_work,
it moves all the skbs in port->bc_queue to the queue "list", and
processes the skbs in "list". During this, new skbs will keep being
added to port->bc_queue in macvlan_broadcast_enqueue(), and
port->bc_queue may already full when macvlan_process_broadcast()
return. This may happen, especially when there are a lot of real-time
threads and the process is preempted.

Fix this by calling schedule_work(&port->bc_work) even if
port->bc_work is full in macvlan_broadcast_enqueue().

Fixes: 412ca1550cbe ("macvlan: Move broadcasts into a work queue")
Signed-off-by: Menglong Dong <dong.menglong@zte.com.cn>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/net/macvlan.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/drivers/net/macvlan.c
+++ b/drivers/net/macvlan.c
@@ -326,10 +326,11 @@ static void macvlan_broadcast_enqueue(st
 	}
 	spin_unlock(&port->bc_queue.lock);
 
+	schedule_work(&port->bc_work);
+
 	if (err)
 		goto free_nskb;
 
-	schedule_work(&port->bc_work);
 	return;
 
 free_nskb:



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

* [PATCH 4.4 84/92] openvswitch: fix flow command message size
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (82 preceding siblings ...)
  2019-12-04 17:50 ` [PATCH 4.4 83/92] macvlan: schedule bc_work even if error Greg Kroah-Hartman
@ 2019-12-04 17:50 ` Greg Kroah-Hartman
  2019-12-04 17:50 ` [PATCH 4.4 85/92] slip: Fix use-after-free Read in slip_open Greg Kroah-Hartman
                   ` (11 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:50 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Qi Jun Ding, Paolo Abeni, David S. Miller

From: Paolo Abeni <pabeni@redhat.com>

[ Upstream commit 4e81c0b3fa93d07653e2415fa71656b080a112fd ]

When user-space sets the OVS_UFID_F_OMIT_* flags, and the relevant
flow has no UFID, we can exceed the computed size, as
ovs_nla_put_identifier() will always dump an OVS_FLOW_ATTR_KEY
attribute.
Take the above in account when computing the flow command message
size.

Fixes: 74ed7ab9264c ("openvswitch: Add support for unique flow IDs.")
Reported-by: Qi Jun Ding <qding@redhat.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/openvswitch/datapath.c |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

--- a/net/openvswitch/datapath.c
+++ b/net/openvswitch/datapath.c
@@ -725,9 +725,13 @@ static size_t ovs_flow_cmd_msg_size(cons
 {
 	size_t len = NLMSG_ALIGN(sizeof(struct ovs_header));
 
-	/* OVS_FLOW_ATTR_UFID */
+	/* OVS_FLOW_ATTR_UFID, or unmasked flow key as fallback
+	 * see ovs_nla_put_identifier()
+	 */
 	if (sfid && ovs_identifier_is_ufid(sfid))
 		len += nla_total_size(sfid->ufid_len);
+	else
+		len += nla_total_size(ovs_key_attr_size());
 
 	/* OVS_FLOW_ATTR_KEY */
 	if (!sfid || should_fill_key(sfid, ufid_flags))



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

* [PATCH 4.4 85/92] slip: Fix use-after-free Read in slip_open
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (83 preceding siblings ...)
  2019-12-04 17:50 ` [PATCH 4.4 84/92] openvswitch: fix flow command message size Greg Kroah-Hartman
@ 2019-12-04 17:50 ` Greg Kroah-Hartman
  2019-12-04 17:50 ` [PATCH 4.4 86/92] openvswitch: drop unneeded BUG_ON() in ovs_flow_cmd_build_info() Greg Kroah-Hartman
                   ` (10 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:50 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, syzbot+4d5170758f3762109542,
	David Miller, Oliver Hartkopp, Lukas Bulwahn, Jouni Hogander

From: Jouni Hogander <jouni.hogander@unikie.com>

[ Upstream commit e58c1912418980f57ba2060017583067f5f71e52 ]

Slip_open doesn't clean-up device which registration failed from the
slip_devs device list. On next open after failure this list is iterated
and freed device is accessed. Fix this by calling sl_free_netdev in error
path.

Here is the trace from the Syzbot:

__dump_stack lib/dump_stack.c:77 [inline]
dump_stack+0x197/0x210 lib/dump_stack.c:118
print_address_description.constprop.0.cold+0xd4/0x30b mm/kasan/report.c:374
__kasan_report.cold+0x1b/0x41 mm/kasan/report.c:506
kasan_report+0x12/0x20 mm/kasan/common.c:634
__asan_report_load8_noabort+0x14/0x20 mm/kasan/generic_report.c:132
sl_sync drivers/net/slip/slip.c:725 [inline]
slip_open+0xecd/0x11b7 drivers/net/slip/slip.c:801
tty_ldisc_open.isra.0+0xa3/0x110 drivers/tty/tty_ldisc.c:469
tty_set_ldisc+0x30e/0x6b0 drivers/tty/tty_ldisc.c:596
tiocsetd drivers/tty/tty_io.c:2334 [inline]
tty_ioctl+0xe8d/0x14f0 drivers/tty/tty_io.c:2594
vfs_ioctl fs/ioctl.c:46 [inline]
file_ioctl fs/ioctl.c:509 [inline]
do_vfs_ioctl+0xdb6/0x13e0 fs/ioctl.c:696
ksys_ioctl+0xab/0xd0 fs/ioctl.c:713
__do_sys_ioctl fs/ioctl.c:720 [inline]
__se_sys_ioctl fs/ioctl.c:718 [inline]
__x64_sys_ioctl+0x73/0xb0 fs/ioctl.c:718
do_syscall_64+0xfa/0x760 arch/x86/entry/common.c:290
entry_SYSCALL_64_after_hwframe+0x49/0xbe

Fixes: 3b5a39979daf ("slip: Fix memory leak in slip_open error path")
Reported-by: syzbot+4d5170758f3762109542@syzkaller.appspotmail.com
Cc: David Miller <davem@davemloft.net>
Cc: Oliver Hartkopp <socketcan@hartkopp.net>
Cc: Lukas Bulwahn <lukas.bulwahn@gmail.com>
Signed-off-by: Jouni Hogander <jouni.hogander@unikie.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/net/slip/slip.c |    1 +
 1 file changed, 1 insertion(+)

--- a/drivers/net/slip/slip.c
+++ b/drivers/net/slip/slip.c
@@ -860,6 +860,7 @@ err_free_chan:
 	sl->tty = NULL;
 	tty->disc_data = NULL;
 	clear_bit(SLF_INUSE, &sl->flags);
+	sl_free_netdev(sl->dev);
 	free_netdev(sl->dev);
 
 err_exit:



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

* [PATCH 4.4 86/92] openvswitch: drop unneeded BUG_ON() in ovs_flow_cmd_build_info()
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (84 preceding siblings ...)
  2019-12-04 17:50 ` [PATCH 4.4 85/92] slip: Fix use-after-free Read in slip_open Greg Kroah-Hartman
@ 2019-12-04 17:50 ` Greg Kroah-Hartman
  2019-12-04 17:50 ` [PATCH 4.4 87/92] openvswitch: remove another BUG_ON() Greg Kroah-Hartman
                   ` (9 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:50 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Paolo Abeni, David S. Miller

From: Paolo Abeni <pabeni@redhat.com>

[ Upstream commit 8ffeb03fbba3b599690b361467bfd2373e8c450f ]

All the callers of ovs_flow_cmd_build_info() already deal with
error return code correctly, so we can handle the error condition
in a more gracefull way. Still dump a warning to preserve
debuggability.

v1 -> v2:
 - clarify the commit message
 - clean the skb and report the error (DaveM)

Fixes: ccb1352e76cf ("net: Add Open vSwitch kernel components.")
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/openvswitch/datapath.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

--- a/net/openvswitch/datapath.c
+++ b/net/openvswitch/datapath.c
@@ -904,7 +904,10 @@ static struct sk_buff *ovs_flow_cmd_buil
 	retval = ovs_flow_cmd_fill_info(flow, dp_ifindex, skb,
 					info->snd_portid, info->snd_seq, 0,
 					cmd, ufid_flags);
-	BUG_ON(retval < 0);
+	if (WARN_ON_ONCE(retval < 0)) {
+		kfree_skb(skb);
+		skb = ERR_PTR(retval);
+	}
 	return skb;
 }
 



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

* [PATCH 4.4 87/92] openvswitch: remove another BUG_ON()
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (85 preceding siblings ...)
  2019-12-04 17:50 ` [PATCH 4.4 86/92] openvswitch: drop unneeded BUG_ON() in ovs_flow_cmd_build_info() Greg Kroah-Hartman
@ 2019-12-04 17:50 ` Greg Kroah-Hartman
  2019-12-04 17:50 ` [PATCH 4.4 88/92] tipc: fix link name length check Greg Kroah-Hartman
                   ` (8 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:50 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Paolo Abeni, David S. Miller

From: Paolo Abeni <pabeni@redhat.com>

[ Upstream commit 8a574f86652a4540a2433946ba826ccb87f398cc ]

If we can't build the flow del notification, we can simply delete
the flow, no need to crash the kernel. Still keep a WARN_ON to
preserve debuggability.

Note: the BUG_ON() predates the Fixes tag, but this change
can be applied only after the mentioned commit.

v1 -> v2:
 - do not leak an skb on error

Fixes: aed067783e50 ("openvswitch: Minimize ovs_flow_cmd_del critical section.")
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/openvswitch/datapath.c |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

--- a/net/openvswitch/datapath.c
+++ b/net/openvswitch/datapath.c
@@ -1325,7 +1325,10 @@ static int ovs_flow_cmd_del(struct sk_bu
 						     OVS_FLOW_CMD_DEL,
 						     ufid_flags);
 			rcu_read_unlock();
-			BUG_ON(err < 0);
+			if (WARN_ON_ONCE(err < 0)) {
+				kfree_skb(reply);
+				goto out_free;
+			}
 
 			ovs_notify(&dp_flow_genl_family, reply, info);
 		} else {
@@ -1333,6 +1336,7 @@ static int ovs_flow_cmd_del(struct sk_bu
 		}
 	}
 
+out_free:
 	ovs_flow_free(flow, true);
 	return 0;
 unlock:



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

* [PATCH 4.4 88/92] tipc: fix link name length check
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (86 preceding siblings ...)
  2019-12-04 17:50 ` [PATCH 4.4 87/92] openvswitch: remove another BUG_ON() Greg Kroah-Hartman
@ 2019-12-04 17:50 ` Greg Kroah-Hartman
  2019-12-04 17:50 ` [PATCH 4.4 89/92] net: sched: fix `tc -s class show` no bstats on class with nolock subqueues Greg Kroah-Hartman
                   ` (7 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:50 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, John Rutherford, Jon Maloy, David S. Miller

From: John Rutherford <john.rutherford@dektech.com.au>

[ Upstream commit fd567ac20cb0377ff466d3337e6e9ac5d0cb15e4 ]

In commit 4f07b80c9733 ("tipc: check msg->req data len in
tipc_nl_compat_bearer_disable") the same patch code was copied into
routines: tipc_nl_compat_bearer_disable(),
tipc_nl_compat_link_stat_dump() and tipc_nl_compat_link_reset_stats().
The two link routine occurrences should have been modified to check
the maximum link name length and not bearer name length.

Fixes: 4f07b80c9733 ("tipc: check msg->reg data len in tipc_nl_compat_bearer_disable")
Signed-off-by: John Rutherford <john.rutherford@dektech.com.au>
Acked-by: Jon Maloy <jon.maloy@ericsson.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/tipc/netlink_compat.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/net/tipc/netlink_compat.c
+++ b/net/tipc/netlink_compat.c
@@ -516,7 +516,7 @@ static int tipc_nl_compat_link_stat_dump
 	if (len <= 0)
 		return -EINVAL;
 
-	len = min_t(int, len, TIPC_MAX_BEARER_NAME);
+	len = min_t(int, len, TIPC_MAX_LINK_NAME);
 	if (!string_is_valid(name, len))
 		return -EINVAL;
 
@@ -791,7 +791,7 @@ static int tipc_nl_compat_link_reset_sta
 	if (len <= 0)
 		return -EINVAL;
 
-	len = min_t(int, len, TIPC_MAX_BEARER_NAME);
+	len = min_t(int, len, TIPC_MAX_LINK_NAME);
 	if (!string_is_valid(name, len))
 		return -EINVAL;
 



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

* [PATCH 4.4 89/92] net: sched: fix `tc -s class show` no bstats on class with nolock subqueues
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (87 preceding siblings ...)
  2019-12-04 17:50 ` [PATCH 4.4 88/92] tipc: fix link name length check Greg Kroah-Hartman
@ 2019-12-04 17:50 ` Greg Kroah-Hartman
  2019-12-04 17:50 ` [PATCH 4.4 90/92] HID: core: check whether Usage Page item is after Usage ID items Greg Kroah-Hartman
                   ` (6 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:50 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Dust Li, Tony Lu, Cong Wang, David S. Miller

From: Dust Li <dust.li@linux.alibaba.com>

[ Upstream commit 14e54ab9143fa60794d13ea0a66c792a2046a8f3 ]

When a classful qdisc's child qdisc has set the flag
TCQ_F_CPUSTATS (pfifo_fast for example), the child qdisc's
cpu_bstats should be passed to gnet_stats_copy_basic(),
but many classful qdisc didn't do that. As a result,
`tc -s class show dev DEV` always return 0 for bytes and
packets in this case.

Pass the child qdisc's cpu_bstats to gnet_stats_copy_basic()
to fix this issue.

The qstats also has this problem, but it has been fixed
in 5dd431b6b9 ("net: sched: introduce and use qstats read...")
and bstats still remains buggy.

Fixes: 22e0f8b9322c ("net: sched: make bstats per cpu and estimator RCU safe")
Signed-off-by: Dust Li <dust.li@linux.alibaba.com>
Signed-off-by: Tony Lu <tonylu@linux.alibaba.com>
Acked-by: Cong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/sched/sch_mq.c     |    2 +-
 net/sched/sch_mqprio.c |    3 ++-
 net/sched/sch_multiq.c |    2 +-
 net/sched/sch_prio.c   |    2 +-
 4 files changed, 5 insertions(+), 4 deletions(-)

--- a/net/sched/sch_mq.c
+++ b/net/sched/sch_mq.c
@@ -195,7 +195,7 @@ static int mq_dump_class_stats(struct Qd
 	struct netdev_queue *dev_queue = mq_queue_get(sch, cl);
 
 	sch = dev_queue->qdisc_sleeping;
-	if (gnet_stats_copy_basic(d, NULL, &sch->bstats) < 0 ||
+	if (gnet_stats_copy_basic(d, sch->cpu_bstats, &sch->bstats) < 0 ||
 	    gnet_stats_copy_queue(d, NULL, &sch->qstats, sch->q.qlen) < 0)
 		return -1;
 	return 0;
--- a/net/sched/sch_mqprio.c
+++ b/net/sched/sch_mqprio.c
@@ -355,7 +355,8 @@ static int mqprio_dump_class_stats(struc
 		struct netdev_queue *dev_queue = mqprio_queue_get(sch, cl);
 
 		sch = dev_queue->qdisc_sleeping;
-		if (gnet_stats_copy_basic(d, NULL, &sch->bstats) < 0 ||
+		if (gnet_stats_copy_basic(d, sch->cpu_bstats,
+					  &sch->bstats) < 0 ||
 		    gnet_stats_copy_queue(d, NULL,
 					  &sch->qstats, sch->q.qlen) < 0)
 			return -1;
--- a/net/sched/sch_multiq.c
+++ b/net/sched/sch_multiq.c
@@ -351,7 +351,7 @@ static int multiq_dump_class_stats(struc
 	struct Qdisc *cl_q;
 
 	cl_q = q->queues[cl - 1];
-	if (gnet_stats_copy_basic(d, NULL, &cl_q->bstats) < 0 ||
+	if (gnet_stats_copy_basic(d, cl_q->cpu_bstats, &cl_q->bstats) < 0 ||
 	    gnet_stats_copy_queue(d, NULL, &cl_q->qstats, cl_q->q.qlen) < 0)
 		return -1;
 
--- a/net/sched/sch_prio.c
+++ b/net/sched/sch_prio.c
@@ -319,7 +319,7 @@ static int prio_dump_class_stats(struct
 	struct Qdisc *cl_q;
 
 	cl_q = q->queues[cl - 1];
-	if (gnet_stats_copy_basic(d, NULL, &cl_q->bstats) < 0 ||
+	if (gnet_stats_copy_basic(d, cl_q->cpu_bstats, &cl_q->bstats) < 0 ||
 	    gnet_stats_copy_queue(d, NULL, &cl_q->qstats, cl_q->q.qlen) < 0)
 		return -1;
 



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

* [PATCH 4.4 90/92] HID: core: check whether Usage Page item is after Usage ID items
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (88 preceding siblings ...)
  2019-12-04 17:50 ` [PATCH 4.4 89/92] net: sched: fix `tc -s class show` no bstats on class with nolock subqueues Greg Kroah-Hartman
@ 2019-12-04 17:50 ` Greg Kroah-Hartman
  2019-12-04 17:50 ` [PATCH 4.4 91/92] hwrng: stm32 - fix unbalanced pm_runtime_enable Greg Kroah-Hartman
                   ` (5 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:50 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Candle Sun, Nianfu Bai,
	Benjamin Tissoires, Jiri Kosina, Siarhei Vishniakou

From: Candle Sun <candle.sun@unisoc.com>

commit 1cb0d2aee26335d0bccf29100c7bed00ebece851 upstream.

Upstream commit 58e75155009c ("HID: core: move Usage Page concatenation
to Main item") adds support for Usage Page item after Usage ID items
(such as keyboards manufactured by Primax).

Usage Page concatenation in Main item works well for following report
descriptor patterns:

    USAGE_PAGE (Keyboard)                   05 07
    USAGE_MINIMUM (Keyboard LeftControl)    19 E0
    USAGE_MAXIMUM (Keyboard Right GUI)      29 E7
    LOGICAL_MINIMUM (0)                     15 00
    LOGICAL_MAXIMUM (1)                     25 01
    REPORT_SIZE (1)                         75 01
    REPORT_COUNT (8)                        95 08
    INPUT (Data,Var,Abs)                    81 02

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

    USAGE_MINIMUM (Keyboard LeftControl)    19 E0
    USAGE_MAXIMUM (Keyboard Right GUI)      29 E7
    LOGICAL_MINIMUM (0)                     15 00
    LOGICAL_MAXIMUM (1)                     25 01
    REPORT_SIZE (1)                         75 01
    REPORT_COUNT (8)                        95 08
    USAGE_PAGE (Keyboard)                   05 07
    INPUT (Data,Var,Abs)                    81 02

But it makes the parser act wrong for the following report
descriptor pattern(such as some Gamepads):

    USAGE_PAGE (Button)                     05 09
    USAGE (Button 1)                        09 01
    USAGE (Button 2)                        09 02
    USAGE (Button 4)                        09 04
    USAGE (Button 5)                        09 05
    USAGE (Button 7)                        09 07
    USAGE (Button 8)                        09 08
    USAGE (Button 14)                       09 0E
    USAGE (Button 15)                       09 0F
    USAGE (Button 13)                       09 0D
    USAGE_PAGE (Consumer Devices)           05 0C
    USAGE (Back)                            0a 24 02
    USAGE (HomePage)                        0a 23 02
    LOGICAL_MINIMUM (0)                     15 00
    LOGICAL_MAXIMUM (1)                     25 01
    REPORT_SIZE (1)                         75 01
    REPORT_COUNT (11)                       95 0B
    INPUT (Data,Var,Abs)                    81 02

With Usage Page concatenation in Main item, parser recognizes all the
11 Usages as consumer keys, it is not the HID device's real intention.

This patch checks whether Usage Page is really defined after Usage ID
items by comparing usage page using status.

Usage Page concatenation on currently defined Usage Page will always
do in local parsing when Usage ID items encountered.

When Main item is parsing, concatenation will do again with last
defined Usage Page if this page has not been used in the previous
usages concatenation.

Signed-off-by: Candle Sun <candle.sun@unisoc.com>
Signed-off-by: Nianfu Bai <nianfu.bai@unisoc.com>
Cc: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Cc: Siarhei Vishniakou <svv@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/hid/hid-core.c |   51 +++++++++++++++++++++++++++++++++++++++++++------
 1 file changed, 45 insertions(+), 6 deletions(-)

--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -197,6 +197,18 @@ static unsigned hid_lookup_collection(st
 }
 
 /*
+ * Concatenate usage which defines 16 bits or less with the
+ * currently defined usage page to form a 32 bit usage
+ */
+
+static void complete_usage(struct hid_parser *parser, unsigned int index)
+{
+	parser->local.usage[index] &= 0xFFFF;
+	parser->local.usage[index] |=
+		(parser->global.usage_page & 0xFFFF) << 16;
+}
+
+/*
  * Add a usage to the temporary parser table.
  */
 
@@ -207,6 +219,14 @@ static int hid_add_usage(struct hid_pars
 		return -1;
 	}
 	parser->local.usage[parser->local.usage_index] = usage;
+
+	/*
+	 * If Usage item only includes usage id, concatenate it with
+	 * currently defined usage page
+	 */
+	if (size <= 2)
+		complete_usage(parser, parser->local.usage_index);
+
 	parser->local.usage_size[parser->local.usage_index] = size;
 	parser->local.collection_index[parser->local.usage_index] =
 		parser->collection_stack_ptr ?
@@ -523,13 +543,32 @@ static int hid_parser_local(struct hid_p
  * usage value."
  */
 
-static void hid_concatenate_usage_page(struct hid_parser *parser)
+static void hid_concatenate_last_usage_page(struct hid_parser *parser)
 {
 	int i;
+	unsigned int usage_page;
+	unsigned int current_page;
+
+	if (!parser->local.usage_index)
+		return;
 
-	for (i = 0; i < parser->local.usage_index; i++)
-		if (parser->local.usage_size[i] <= 2)
-			parser->local.usage[i] += parser->global.usage_page << 16;
+	usage_page = parser->global.usage_page;
+
+	/*
+	 * Concatenate usage page again only if last declared Usage Page
+	 * has not been already used in previous usages concatenation
+	 */
+	for (i = parser->local.usage_index - 1; i >= 0; i--) {
+		if (parser->local.usage_size[i] > 2)
+			/* Ignore extended usages */
+			continue;
+
+		current_page = parser->local.usage[i] >> 16;
+		if (current_page == usage_page)
+			break;
+
+		complete_usage(parser, i);
+	}
 }
 
 /*
@@ -541,7 +580,7 @@ static int hid_parser_main(struct hid_pa
 	__u32 data;
 	int ret;
 
-	hid_concatenate_usage_page(parser);
+	hid_concatenate_last_usage_page(parser);
 
 	data = item_udata(item);
 
@@ -756,7 +795,7 @@ static int hid_scan_main(struct hid_pars
 	__u32 data;
 	int i;
 
-	hid_concatenate_usage_page(parser);
+	hid_concatenate_last_usage_page(parser);
 
 	data = item_udata(item);
 



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

* [PATCH 4.4 91/92] hwrng: stm32 - fix unbalanced pm_runtime_enable
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (89 preceding siblings ...)
  2019-12-04 17:50 ` [PATCH 4.4 90/92] HID: core: check whether Usage Page item is after Usage ID items Greg Kroah-Hartman
@ 2019-12-04 17:50 ` Greg Kroah-Hartman
  2019-12-04 17:50 ` [PATCH 4.4 92/92] platform/x86: hp-wmi: Fix ACPI errors caused by too small buffer Greg Kroah-Hartman
                   ` (4 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:50 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Lionel Debieve, Herbert Xu, Mathieu Poirier

From: Lionel Debieve <lionel.debieve@st.com>

commit af0d4442dd6813de6e77309063beb064fa8e89ae upstream.

No remove function implemented yet in the driver.
Without remove function, the pm_runtime implementation
complains when removing and probing again the driver.

Signed-off-by: Lionel Debieve <lionel.debieve@st.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/char/hw_random/stm32-rng.c |    8 ++++++++
 1 file changed, 8 insertions(+)

--- a/drivers/char/hw_random/stm32-rng.c
+++ b/drivers/char/hw_random/stm32-rng.c
@@ -166,6 +166,13 @@ static int stm32_rng_probe(struct platfo
 	return devm_hwrng_register(dev, &priv->rng);
 }
 
+static int stm32_rng_remove(struct platform_device *ofdev)
+{
+	pm_runtime_disable(&ofdev->dev);
+
+	return 0;
+}
+
 #ifdef CONFIG_PM
 static int stm32_rng_runtime_suspend(struct device *dev)
 {
@@ -202,6 +209,7 @@ static struct platform_driver stm32_rng_
 		.of_match_table = stm32_rng_match,
 	},
 	.probe = stm32_rng_probe,
+	.remove = stm32_rng_remove,
 };
 
 module_platform_driver(stm32_rng_driver);



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

* [PATCH 4.4 92/92] platform/x86: hp-wmi: Fix ACPI errors caused by too small buffer
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (90 preceding siblings ...)
  2019-12-04 17:50 ` [PATCH 4.4 91/92] hwrng: stm32 - fix unbalanced pm_runtime_enable Greg Kroah-Hartman
@ 2019-12-04 17:50 ` Greg Kroah-Hartman
  2019-12-05  5:41 ` [PATCH 4.4 00/92] 4.4.206-stable review Naresh Kamboju
                   ` (3 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-04 17:50 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Hans de Goede, Andy Shevchenko

From: Hans de Goede <hdegoede@redhat.com>

commit 16245db1489cd9aa579506f64afeeeb13d825a93 upstream.

The HP WMI calls may take up to 128 bytes of data as input, and
the AML methods implementing the WMI calls, declare a couple of fields for
accessing input in different sizes, specifycally the HWMC method contains:

        CreateField (Arg1, 0x80, 0x0400, D128)

Even though we do not use any of the WMI command-types which need a buffer
of this size, the APCI interpreter still tries to create it as it is
declared in generoc code at the top of the HWMC method which runs before
the code looks at which command-type is requested.

This results in many of these errors on many different HP laptop models:

[   14.459261] ACPI Error: Field [D128] at 1152 exceeds Buffer [NULL] size 160 (bits) (20170303/dsopcode-236)
[   14.459268] ACPI Error: Method parse/execution failed [\HWMC] (Node ffff8edcc61507f8), AE_AML_BUFFER_LIMIT (20170303/psparse-543)
[   14.459279] ACPI Error: Method parse/execution failed [\_SB.WMID.WMAA] (Node ffff8edcc61523c0), AE_AML_BUFFER_LIMIT (20170303/psparse-543)

This commit increases the size of the data element of the bios_args struct
to 128 bytes fixing these errors.

Cc: stable@vger.kernel.org
BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=197007
BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=201981
BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1520703
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/platform/x86/hp-wmi.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

--- a/drivers/platform/x86/hp-wmi.c
+++ b/drivers/platform/x86/hp-wmi.c
@@ -90,7 +90,7 @@ struct bios_args {
 	u32 command;
 	u32 commandtype;
 	u32 datasize;
-	u32 data;
+	u8 data[128];
 };
 
 struct bios_return {
@@ -199,7 +199,7 @@ static int hp_wmi_perform_query(int quer
 		.command = write ? 0x2 : 0x1,
 		.commandtype = query,
 		.datasize = insize,
-		.data = 0,
+		.data = { 0 },
 	};
 	struct acpi_buffer input = { sizeof(struct bios_args), &args };
 	struct acpi_buffer output = { ACPI_ALLOCATE_BUFFER, NULL };
@@ -207,7 +207,7 @@ static int hp_wmi_perform_query(int quer
 
 	if (WARN_ON(insize > sizeof(args.data)))
 		return -EINVAL;
-	memcpy(&args.data, buffer, insize);
+	memcpy(&args.data[0], buffer, insize);
 
 	wmi_evaluate_method(HPWMI_BIOS_GUID, 0, 0x3, &input, &output);
 



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

* Re: [PATCH 4.4 00/92] 4.4.206-stable review
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (91 preceding siblings ...)
  2019-12-04 17:50 ` [PATCH 4.4 92/92] platform/x86: hp-wmi: Fix ACPI errors caused by too small buffer Greg Kroah-Hartman
@ 2019-12-05  5:41 ` Naresh Kamboju
  2019-12-05  6:59 ` Jon Hunter
                   ` (2 subsequent siblings)
  95 siblings, 0 replies; 98+ messages in thread
From: Naresh Kamboju @ 2019-12-05  5:41 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: open list, Linus Torvalds, Andrew Morton, Guenter Roeck,
	Shuah Khan, patches, Ben Hutchings, lkft-triage, linux- stable

On Wed, 4 Dec 2019 at 23:27, Greg Kroah-Hartman
<gregkh@linuxfoundation.org> wrote:
>
> This is the start of the stable review cycle for the 4.4.206 release.
> There are 92 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 Fri, 06 Dec 2019 17:42:37 +0000.
> 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.206-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, x86_64, and i386.

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

kernel: 4.4.206-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: 4fd2af91bc35d9c97085ffa7098b4bd9384cd9db
git describe: v4.4.205-93-g4fd2af91bc35
Test details: https://qa-reports.linaro.org/lkft/linux-stable-rc-4.4-oe/build/v4.4.205-93-g4fd2af91bc35

No regressions (compared to build v4.4.205)

No fixes (compared to build v4.4.205)

Ran 19808 total tests in the following environments and test suites.

Environments
--------------
- i386
- juno-r2 - arm64
- qemu_arm
- qemu_arm64
- qemu_i386
- qemu_x86_64
- x15 - arm
- x86_64

Test Suites
-----------
* build
* kselftest
* libhugetlbfs
* linux-log-parser
* ltp-cap_bounds-tests
* ltp-commands-tests
* ltp-containers-tests
* ltp-cpuhotplug-tests
* ltp-cve-tests
* ltp-dio-tests
* ltp-fcntl-locktests-tests
* ltp-filecaps-tests
* ltp-fs-tests
* ltp-fs_bind-tests
* ltp-fs_perms_simple-tests
* ltp-fsx-tests
* ltp-hugetlb-tests
* ltp-io-tests
* ltp-ipc-tests
* ltp-math-tests
* ltp-mm-tests
* ltp-nptl-tests
* ltp-open-posix-tests
* ltp-pty-tests
* ltp-sched-tests
* ltp-securebits-tests
* ltp-syscalls-tests
* network-basic-tests
* perf
* spectre-meltdown-checker-test
* v4l2-compliance
* kvm-unit-tests
* install-android-platform-tools-r2600
* prep-tmp-disk
* ssuite

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

kernel: 4.4.206-rc1
git repo: https://git.linaro.org/lkft/arm64-stable-rc.git
git branch: 4.4.206-rc1-hikey-20191204-621
git commit: 424879c574f511c49c186d46a127184599a4d486
git describe: 4.4.206-rc1-hikey-20191204-621
Test details: https://qa-reports.linaro.org/lkft/linaro-hikey-stable-rc-4.4-oe/build/4.4.206-rc1-hikey-20191204-621


No regressions (compared to build 4.4.206-rc1-hikey-20191204-620)


No fixes (compared to build 4.4.206-rc1-hikey-20191204-620)

Ran 1568 total tests in the following environments and test suites.

Environments
--------------
- hi6220-hikey - arm64

Test Suites
-----------
* build
* install-android-platform-tools-r2600
* kselftest
* libhugetlbfs
* linux-log-parser
* ltp-cap_bounds-tests
* ltp-commands-tests
* ltp-containers-tests
* ltp-cpuhotplug-tests
* ltp-cve-tests
* ltp-dio-tests
* ltp-fcntl-locktests-tests
* ltp-filecaps-tests
* ltp-fs-tests
* ltp-fs_bind-tests
* ltp-fs_perms_simple-tests
* ltp-fsx-tests
* ltp-hugetlb-tests
* ltp-io-tests
* ltp-ipc-tests
* ltp-math-tests
* ltp-mm-tests
* ltp-nptl-tests
* ltp-pty-tests
* ltp-sched-tests
* ltp-securebits-tests
* ltp-syscalls-tests
* perf
* spectre-meltdown-checker-test
* v4l2-compliance

-- 
Linaro LKFT
https://lkft.linaro.org

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

* Re: [PATCH 4.4 00/92] 4.4.206-stable review
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (92 preceding siblings ...)
  2019-12-05  5:41 ` [PATCH 4.4 00/92] 4.4.206-stable review Naresh Kamboju
@ 2019-12-05  6:59 ` Jon Hunter
  2019-12-05 14:13 ` Guenter Roeck
  2019-12-11 23:19 ` shuah
  95 siblings, 0 replies; 98+ messages in thread
From: Jon Hunter @ 2019-12-05  6:59 UTC (permalink / raw)
  To: Greg Kroah-Hartman, linux-kernel
  Cc: torvalds, akpm, linux, shuah, patches, ben.hutchings,
	lkft-triage, stable, linux-tegra


On 04/12/2019 17:49, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 4.4.206 release.
> There are 92 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 Fri, 06 Dec 2019 17:42:37 +0000.
> 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.206-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
> 
> -------------


All tests are passing for Tegra ...

Test results for stable-v4.4:
    6 builds:	6 pass, 0 fail
    12 boots:	12 pass, 0 fail
    19 tests:	19 pass, 0 fail

Linux version:	4.4.206-rc1-g4fd2af91bc35
Boards tested:	tegra124-jetson-tk1, tegra20-ventana,
                tegra30-cardhu-a04

Cheers
Jon

-- 
nvpublic

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

* Re: [PATCH 4.4 00/92] 4.4.206-stable review
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (93 preceding siblings ...)
  2019-12-05  6:59 ` Jon Hunter
@ 2019-12-05 14:13 ` Guenter Roeck
  2019-12-11 23:19 ` shuah
  95 siblings, 0 replies; 98+ messages in thread
From: Guenter Roeck @ 2019-12-05 14:13 UTC (permalink / raw)
  To: Greg Kroah-Hartman, linux-kernel
  Cc: torvalds, akpm, shuah, patches, ben.hutchings, lkft-triage, stable

On 12/4/19 9:49 AM, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 4.4.206 release.
> There are 92 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 Fri, 06 Dec 2019 17:42:37 +0000.
> Anything received after that time might be too late.
> 

Build results:
	total: 170 pass: 170 fail: 0
Qemu test results:
	total: 324 pass: 324 fail: 0

Guenter

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

* Re: [PATCH 4.4 00/92] 4.4.206-stable review
  2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
                   ` (94 preceding siblings ...)
  2019-12-05 14:13 ` Guenter Roeck
@ 2019-12-11 23:19 ` shuah
  2019-12-12  9:35   ` Greg Kroah-Hartman
  95 siblings, 1 reply; 98+ messages in thread
From: shuah @ 2019-12-11 23:19 UTC (permalink / raw)
  To: Greg Kroah-Hartman, linux-kernel
  Cc: torvalds, akpm, linux, patches, ben.hutchings, lkft-triage,
	stable, shuah

On 12/4/19 10:49 AM, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 4.4.206 release.
> There are 92 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 Fri, 06 Dec 2019 17:42:37 +0000.
> 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.206-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
> 

I know this is way late. I managed to boot 4.4.206 finally on my test
system running Ubuntu 19.10.

It turns out, Ubuntu 19.10 defaults to LZ4 compression.

/etc/initramfs-tools/initramfs.conf
COMPRESS=lz4

Enabling the following worked for me.

CONFIG_RD_LZ4=y
CONFIG_SQUASHFS_LZ4=y
CONFIG_LZ4_DECOMPRESS=y
CONFIG_DECOMPRESS_LZ4=y

Stable release older than 4.19 will require the above change.

thanks,
-- Shuah

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

* Re: [PATCH 4.4 00/92] 4.4.206-stable review
  2019-12-11 23:19 ` shuah
@ 2019-12-12  9:35   ` Greg Kroah-Hartman
  0 siblings, 0 replies; 98+ messages in thread
From: Greg Kroah-Hartman @ 2019-12-12  9:35 UTC (permalink / raw)
  To: shuah
  Cc: linux-kernel, torvalds, akpm, linux, patches, ben.hutchings,
	lkft-triage, stable

On Wed, Dec 11, 2019 at 04:19:00PM -0700, shuah wrote:
> On 12/4/19 10:49 AM, Greg Kroah-Hartman wrote:
> > This is the start of the stable review cycle for the 4.4.206 release.
> > There are 92 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 Fri, 06 Dec 2019 17:42:37 +0000.
> > 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.206-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
> > 
> 
> I know this is way late. I managed to boot 4.4.206 finally on my test
> system running Ubuntu 19.10.
> 
> It turns out, Ubuntu 19.10 defaults to LZ4 compression.
> 
> /etc/initramfs-tools/initramfs.conf
> COMPRESS=lz4
> 
> Enabling the following worked for me.
> 
> CONFIG_RD_LZ4=y
> CONFIG_SQUASHFS_LZ4=y
> CONFIG_LZ4_DECOMPRESS=y
> CONFIG_DECOMPRESS_LZ4=y
> 
> Stable release older than 4.19 will require the above change.

Ah, thanks for figuring this out.  Or you can run without an initramfs :)

greg k-h

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

end of thread, other threads:[~2019-12-12  9:37 UTC | newest]

Thread overview: 98+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-04 17:49 [PATCH 4.4 00/92] 4.4.206-stable review Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 01/92] ASoC: compress: fix unsigned integer overflow check Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 02/92] ASoC: kirkwood: fix external clock probe defer Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 03/92] clk: samsung: exynos5420: Preserve PLL configuration during suspend/resume Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 04/92] reset: fix reset_control_ops kerneldoc comment Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 05/92] can: peak_usb: report bus recovery as well Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 06/92] can: c_can: D_CAN: c_can_chip_config(): perform a sofware reset on open Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 07/92] scripts/gdb: fix debugging modules compiled with hot/cold partitioning Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 08/92] block: drbd: remove a stray unlock in __drbd_send_protocol() Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 09/92] scsi: lpfc: Fix dif and first burst use in write commands Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 10/92] ARM: debug-imx: only define DEBUG_IMX_UART_PORT if needed Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 11/92] ARM: dts: imx53-voipac-dmm-668: Fix memory node duplication Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 12/92] parisc: Fix serio address output Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 13/92] parisc: Fix HP SDC hpa " Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 14/92] arm64: smp: Handle errors reported by the firmware Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 15/92] PM / AVS: SmartReflex: NULL check before some freeing functions is not needed Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 16/92] ARM: ks8695: fix section mismatch warning Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 17/92] ACPI / LPSS: Ignore acpi_device_fix_up_power() return value Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 18/92] crypto: user - support incremental algorithm dumps Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 19/92] mwifiex: fix potential NULL dereference and use after free Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 20/92] mwifiex: debugfs: correct histogram spacing, formatting Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 21/92] rtl818x: fix potential use after free Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 22/92] xfs: require both realtime inodes to mount Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 23/92] ubi: Put MTD device after it is not used Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 24/92] ubi: Do not drop UBI device reference before using Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 25/92] microblaze: adjust the help to the real behavior Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 26/92] microblaze: move "... is ready" messages to arch/microblaze/Makefile Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 27/92] gpiolib: Fix return value of gpio_to_desc() stub if !GPIOLIB Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 28/92] VSOCK: bind to random port for VMADDR_PORT_ANY Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 29/92] btrfs: only track ref_heads in delayed_ref_updates Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 30/92] xen/pciback: Check dev_data before using it Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 31/92] KVM: s390: unregister debug feature on failing arch init Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 32/92] pinctrl: sh-pfc: sh7264: Fix PFCR3 and PFCR0 register configuration Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 33/92] pinctrl: sh-pfc: sh7734: Fix shifted values in IPSR10 Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 34/92] HID: doc: fix wrong data structure reference for UHID_OUTPUT Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 35/92] gfs2: take jdata unstuff into account in do_grow Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 36/92] xfs: Align compat attrlist_by_handle with native implementation Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 37/92] IB/qib: Fix an error code in qib_sdma_verbs_send() Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 38/92] powerpc/book3s/32: fix number of bats in p/v_block_mapped() Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 39/92] powerpc/xmon: fix dump_segments() Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 40/92] drivers/regulator: fix a missing check of return value Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 41/92] serial: max310x: Fix tx_empty() callback Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 42/92] openrisc: Fix broken paths to arch/or32 Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 43/92] RDMA/srp: Propagate ib_post_send() failures to the SCSI mid-layer Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 44/92] scsi: qla2xxx: deadlock by configfs_depend_item Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 45/92] scsi: csiostor: fix incorrect dma device in case of vport Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 46/92] ath6kl: Only use match sets when firmware supports it Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 47/92] ath6kl: Fix off by one error in scan completion Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 48/92] powerpc/prom: fix early DEBUG messages Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 49/92] powerpc/mm: Make NULL pointer deferences explicit on bad page faults Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 50/92] powerpc/44x/bamboo: Fix PCI range Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 51/92] drbd: reject attach of unsuitable uuids even if connected Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 52/92] drbd: fix print_st_err()s prototype to match the definition Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 53/92] regulator: tps65910: fix a missing check of return value Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 54/92] net/net_namespace: Check the return value of register_pernet_subsys() Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 55/92] um: Make GCOV depend on !KCOV Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 56/92] net: stmicro: fix a missing check of clk_prepare Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 57/92] atl1e: checking the status of atl1e_write_phy_reg Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 58/92] tipc: fix a missing check of genlmsg_put Greg Kroah-Hartman
2019-12-04 17:49 ` [PATCH 4.4 59/92] ocfs2: clear journal dirty flag after shutdown journal Greg Kroah-Hartman
2019-12-04 17:50 ` [PATCH 4.4 60/92] lib/genalloc.c: use vzalloc_node() to allocate the bitmap Greg Kroah-Hartman
2019-12-04 17:50 ` [PATCH 4.4 61/92] lib/genalloc.c: include vmalloc.h Greg Kroah-Hartman
2019-12-04 17:50 ` [PATCH 4.4 62/92] mtd: Check add_mtd_device() ret code Greg Kroah-Hartman
2019-12-04 17:50 ` [PATCH 4.4 63/92] tipc: fix memory leak in tipc_nl_compat_publ_dump Greg Kroah-Hartman
2019-12-04 17:50 ` [PATCH 4.4 64/92] net/core/neighbour: tell kmemleak about hash tables Greg Kroah-Hartman
2019-12-04 17:50 ` [PATCH 4.4 65/92] net/core/neighbour: fix kmemleak minimal reference count for " Greg Kroah-Hartman
2019-12-04 17:50 ` [PATCH 4.4 66/92] sfc: suppress duplicate nvmem partition types in efx_ef10_mtd_probe Greg Kroah-Hartman
2019-12-04 17:50 ` [PATCH 4.4 67/92] decnet: fix DN_IFREQ_SIZE Greg Kroah-Hartman
2019-12-04 17:50 ` [PATCH 4.4 68/92] tipc: fix skb may be leaky in tipc_link_input Greg Kroah-Hartman
2019-12-04 17:50 ` [PATCH 4.4 69/92] sfc: initialise found bitmap in efx_ef10_mtd_probe Greg Kroah-Hartman
2019-12-04 17:50 ` [PATCH 4.4 70/92] net: fix possible overflow in __sk_mem_raise_allocated() Greg Kroah-Hartman
2019-12-04 17:50 ` [PATCH 4.4 71/92] net: dev: Use unsigned integer as an argument to left-shift Greg Kroah-Hartman
2019-12-04 17:50 ` [PATCH 4.4 72/92] scsi: libsas: Support SATA PHY connection rate unmatch fixing during discovery Greg Kroah-Hartman
2019-12-04 17:50 ` [PATCH 4.4 73/92] ACPI / APEI: Switch estatus pool to use vmalloc memory Greg Kroah-Hartman
2019-12-04 17:50 ` [PATCH 4.4 74/92] scsi: libsas: Check SMP PHY control function result Greg Kroah-Hartman
2019-12-04 17:50 ` [PATCH 4.4 75/92] powerpc/pseries/dlpar: Fix a missing check in dlpar_parse_cc_property() Greg Kroah-Hartman
2019-12-04 17:50 ` [PATCH 4.4 76/92] mtd: Remove a debug trace in mtdpart.c Greg Kroah-Hartman
2019-12-04 17:50 ` [PATCH 4.4 77/92] staging: rtl8192e: fix potential use after free Greg Kroah-Hartman
2019-12-04 17:50 ` [PATCH 4.4 78/92] USB: serial: ftdi_sio: add device IDs for U-Blox C099-F9P Greg Kroah-Hartman
2019-12-04 17:50 ` [PATCH 4.4 79/92] mei: bus: prefix device names on bus with the bus name Greg Kroah-Hartman
2019-12-04 17:50 ` [PATCH 4.4 80/92] media: v4l2-ctrl: fix flags for DO_WHITE_BALANCE Greg Kroah-Hartman
2019-12-04 17:50 ` [PATCH 4.4 81/92] net: macb: fix error format in dev_err() Greg Kroah-Hartman
2019-12-04 17:50 ` [PATCH 4.4 82/92] pwm: Clear chip_data in pwm_put() Greg Kroah-Hartman
2019-12-04 17:50 ` [PATCH 4.4 83/92] macvlan: schedule bc_work even if error Greg Kroah-Hartman
2019-12-04 17:50 ` [PATCH 4.4 84/92] openvswitch: fix flow command message size Greg Kroah-Hartman
2019-12-04 17:50 ` [PATCH 4.4 85/92] slip: Fix use-after-free Read in slip_open Greg Kroah-Hartman
2019-12-04 17:50 ` [PATCH 4.4 86/92] openvswitch: drop unneeded BUG_ON() in ovs_flow_cmd_build_info() Greg Kroah-Hartman
2019-12-04 17:50 ` [PATCH 4.4 87/92] openvswitch: remove another BUG_ON() Greg Kroah-Hartman
2019-12-04 17:50 ` [PATCH 4.4 88/92] tipc: fix link name length check Greg Kroah-Hartman
2019-12-04 17:50 ` [PATCH 4.4 89/92] net: sched: fix `tc -s class show` no bstats on class with nolock subqueues Greg Kroah-Hartman
2019-12-04 17:50 ` [PATCH 4.4 90/92] HID: core: check whether Usage Page item is after Usage ID items Greg Kroah-Hartman
2019-12-04 17:50 ` [PATCH 4.4 91/92] hwrng: stm32 - fix unbalanced pm_runtime_enable Greg Kroah-Hartman
2019-12-04 17:50 ` [PATCH 4.4 92/92] platform/x86: hp-wmi: Fix ACPI errors caused by too small buffer Greg Kroah-Hartman
2019-12-05  5:41 ` [PATCH 4.4 00/92] 4.4.206-stable review Naresh Kamboju
2019-12-05  6:59 ` Jon Hunter
2019-12-05 14:13 ` Guenter Roeck
2019-12-11 23:19 ` shuah
2019-12-12  9:35   ` Greg Kroah-Hartman

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).