All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 4.14 000/178] 4.14.8-stable review
@ 2017-12-18 15:47 Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 001/178] mfd: fsl-imx25: Clean up irq settings during removal Greg Kroah-Hartman
                   ` (162 more replies)
  0 siblings, 163 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, torvalds, akpm, linux, shuahkh, patches,
	ben.hutchings, lkft-triage, stable

This is the start of the stable review cycle for the 4.14.8 release.
There are 178 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 Wed Dec 20 15:28:30 UTC 2017.
Anything received after that time might be too late.

The whole patch series can be found in one patch at:
	kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.14.8-rc1.gz
or in the git tree and branch at:
  git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.14.y
and the diffstat can be found below.

thanks,

greg k-h

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

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

Bin Liu <b-liu@ti.com>
    usb: musb: da8xx: fix babble condition handling

Brian Norris <briannorris@chromium.org>
    ath10k: fix build errors with !CONFIG_PM

Brian Norris <briannorris@chromium.org>
    ath10k: fix core PCI suspend when WoWLAN is supported but disabled

Miaoqing Pan <miaoqing@codeaurora.org>
    ath9k: fix tx99 potential info leak

Rakesh Pandit <rakesh@tuxera.com>
    lightnvm: pblk: protect line bitmap while submitting meta io

Javier González <javier@cnexlabs.com>
    lightnvm: pblk: fix min size for page mempool

Javier González <javier@cnexlabs.com>
    lightnvm: pblk: initialize debug stat counter

Javier González <javier@cnexlabs.com>
    lightnvm: pblk: use right flag for GC allocation

Rakesh Pandit <rakesh@tuxera.com>
    lightnvm: pblk: fix changing GC group list for a line

Hans Holmberg <hans.holmberg@cnexlabs.com>
    lightnvm: pblk: prevent gc kicks when gc is not operational

Matteo Croce <mcroce@redhat.com>
    icmp: don't fail on fragment reassembly time exceeded

Alex Vesker <valex@mellanox.com>
    IB/ipoib: Grab rtnl lock on heavy flush when calling ndo_open/stop

Bart Van Assche <bart.vanassche@wdc.com>
    RDMA/cma: Avoid triggering undefined behavior

Bart Van Assche <bart.vanassche@wdc.com>
    IB/core: Fix endianness annotation in rdma_is_multicast_addr()

Alexander Duyck <alexander.h.duyck@intel.com>
    macvlan: Only deliver one copy of the frame to the macvlan interface

Jan Kara <jack@suse.cz>
    udf: Avoid overflow when session starts at large offset

Chuck Lever <chuck.lever@oracle.com>
    xprtrdma: Don't defer fencing an async RPC's chunks

Guoqing Jiang <gqjiang@suse.com>
    md-cluster: fix wrong condition check in raid1_write_request

Artur Paszkiewicz <artur.paszkiewicz@intel.com>
    raid5-ppl: check recovery_offset when performing ppl recovery

Dan Carpenter <dan.carpenter@oracle.com>
    scsi: bfa: integer overflow in debugfs

weiping zhang <zhangweiping@didichuxing.com>
    scsi: sd: change allow_restart to bool in sysfs interface

weiping zhang <zhangweiping@didichuxing.com>
    scsi: sd: change manage_start_stop to bool in sysfs interface

Wei Yongjun <weiyongjun1@huawei.com>
    nullb: fix error return code in null_init()

Colin Ian King <colin.king@canonical.com>
    ipmi_si: fix memory leak on new_smi

Jia-Ju Bai <baijiaju1990@163.com>
    rtl8188eu: Fix a possible sleep-in-atomic bug in rtw_disassoc_cmd

Jia-Ju Bai <baijiaju1990@163.com>
    rtl8188eu: Fix a possible sleep-in-atomic bug in rtw_createbss_cmd

Don Hiatt <don.hiatt@intel.com>
    IB/hfi1: Mask out A bit from psn trace

Jia-Ju Bai <baijiaju1990@163.com>
    vt6655: Fix a possible sleep-in-atomic bug in vt6655_suspend

Parav Pandit <parav@mellanox.com>
    IB/core: Fix calculation of maximum RoCE MTU

Parav Pandit <parav@mellanox.com>
    IB/core: Fix use workqueue without WQ_MEM_RECLAIM

Kurt Garloff <garloff@suse.de>
    scsi: scsi_devinfo: Add REPORTLUN2 to EMC SYMMETRIX blacklist entry

NeilBrown <neilb@suse.com>
    raid5: Set R5_Expanded on parity devices as well as data.

Linus Walleij <linus.walleij@linaro.org>
    pinctrl: adi2: Fix Kconfig build problem

Ross Zwisler <ross.zwisler@linux.intel.com>
    dev/dax: fix uninitialized variable build warning

nixiaoming <nixiaoming@huawei.com>
    tty fix oops when rmmod 8250

Wanpeng Li <wanpeng.li@hotmail.com>
    KVM: nVMX: Fix EPT switching advertising

Eric Dumazet <edumazet@google.com>
    ipv4: ipv4_default_advmss() should use route mtu

Matthias Brugger <matthias.bgg@gmail.com>
    soc: mediatek: pwrap: fix compiler errors

Breno Leitao <leitao@debian.org>
    powerpc/xmon: Check before calling xive functions

Michael Ellerman <mpe@ellerman.id.au>
    powerpc/perf/hv-24x7: Fix incorrect comparison in memord

Johan Hovold <johan@kernel.org>
    serdev: ttyport: enforce tty-driver open() requirement

Lipeng <lipeng321@huawei.com>
    net: hns3: fix a bug when alloc new buffer

Lipeng <lipeng321@huawei.com>
    net: hns3: fix the bug when map buffer fail

Lipeng <lipeng321@huawei.com>
    net: hns3: fix the TX/RX ring.queue_index in hns3_ring_get_cfg

Alexey Khoroshilov <khoroshilov@ispras.ru>
    mfd: mxs-lradc: Fix error handling in mxs_lradc_probe()

Martin Wilck <mwilck@suse.de>
    scsi: hpsa: destroy sas transport properties before scsi_host

Martin Wilck <mwilck@suse.de>
    scsi: hpsa: cleanup sas_phy structures in sysfs when unloading

Xiaofei Tan <tanxiaofei@huawei.com>
    scsi: hisi_sas: fix the risk of freeing slot twice

Alex Williamson <alex.williamson@redhat.com>
    PCI: Detach driver before procfs & sysfs teardown on device remove

Leon Romanovsky <leon@kernel.org>
    RDMA/cxgb4: Declare stag as __be32

Lipeng <lipeng321@huawei.com>
    net: hns3: fix the bug of hns3_set_txbd_baseinfo

Lipeng <lipeng321@huawei.com>
    net: hns3: add nic_client check when initialize roce base information

Lipeng <lipeng321@huawei.com>
    net: hns3: fix a bug in hclge_uninit_client_instance

Egil Hjelmeland <privat@egil-hjelmeland.no>
    net: dsa: lan9303: Do not disable switch fabric port 0 at .probe

Christoph Hellwig <hch@lst.de>
    xfs: fix incorrect extent state in xfs_bmap_add_extent_unwritten_real

Darrick J. Wong <darrick.wong@oracle.com>
    xfs: return a distinct error code value for IGET_INCORE cache misses

Brian Foster <bfoster@redhat.com>
    xfs: fix log block underflow during recovery cycle verification

Jiri Slaby <jslaby@suse.cz>
    l2tp: cleanup l2tp_tunnel_delete calls

Christoph Hellwig <hch@lst.de>
    nvme: use kref_get_unless_zero in nvme_find_get_ns

Osama Khan <osama.khan@ericsson.com>
    platform/x86: hp_accel: Add quirk for HP ProBook 440 G4

Felix Manlunas <felix.manlunas@cavium.com>
    liquidio: fix kernel panic in VF driver

Tushar Dave <tushar.n.dave@oracle.com>
    samples/bpf: adjust rlimit RLIMIT_MEMLOCK for xdp1

Bartosz Chronowski <ext.bartosz.chronowski@tieto.com>
    Bluetooth: btusb: Add new NFA344A entry.

Neil Armstrong <narmstrong@baylibre.com>
    ARM64: dts: meson-gxbb-odroidc2: fix usb1 power supply

Geert Uytterhoeven <geert@linux-m68k.org>
    mtd: spi-nor: stm32-quadspi: Fix uninitialized error return code

Sergey Matyukevich <sergey.matyukevich.os@quantenna.com>
    qtnfmac: modify full Tx queue error reporting

Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    btrfs: tests: Fix a memory leak in error handling path in 'run_test()'

Colin Ian King <colin.king@canonical.com>
    btrfs: avoid null pointer dereference on fs_info when calling btrfs_crit

Anand Jain <anand.jain@oracle.com>
    btrfs: undo writable superblocke when sprouting fails

Nikolay Borisov <nborisov@suse.com>
    btrfs: Explicitly handle btrfs_update_root failure

Anand Jain <anand.jain@oracle.com>
    btrfs: fix false EIO for missing device

Nick Desaulniers <ndesaulniers@google.com>
    arm64: prevent regressions in compressed kernel image size when upgrading to binutils 2.27

Ronald Tschalär <ronald@innovation.ch>
    Bluetooth: hci_ldisc: Fix another race when closing the tty.

Patel Jay P <jay.p.patel@intel.com>
    Ib/hfi1: Return actual operational VLs in port info query

tang.junhui <tang.junhui@zte.com.cn>
    bcache: fix wrong cache_misses statistics

Liang Chen <liangchen.linux@gmail.com>
    bcache: explicitly destroy mutex while exiting

Arun Kumar Neelakantam <aneela@codeaurora.org>
    rpmsg: glink: Initialize the "intent_req_comp" completion variable

Adam Sampson <ats@offog.org>
    media: usbtv: fix brightness and contrast controls

Bob Peterson <rpeterso@redhat.com>
    GFS2: Take inode off order_write list when setting jdata flag

Douglas Gilbert <dgilbert@interlog.com>
    scsi: scsi_debug: write_same: fix error report

Dan Carpenter <dan.carpenter@oracle.com>
    misc: pci_endpoint_test: Avoid triggering a BUG()

Kishon Vijay Abraham I <kishon@ti.com>
    misc: pci_endpoint_test: Fix failure path return values in probe

Daniel Lezcano <daniel.lezcano@linaro.org>
    thermal/drivers/step_wise: Fix temperature regulation misbehavior

Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
    ASoC: rsnd: rsnd_ssi_run_mods() needs to care ssi_parent_mod

Gao Feng <gfree.wind@vip.163.com>
    ppp: Destroy the mutex when cleanup

Michał Mirosław <mirq-linux@rere.qmqm.pl>
    clk: tegra: Fix cclk_lp divisor register

Nicolin Chen <nicoleotsuka@gmail.com>
    clk: tegra: Use readl_relaxed_poll_timeout_atomic() in tegra210_clock_init()

Ming Lei <ming.lei@redhat.com>
    blk-mq-sched: dispatch from scheduler IFF progress is made in ->dispatch

Leo Yan <leo.yan@linaro.org>
    clk: hi6220: mark clock cs_atb_syspll as critical

Mauro Carvalho Chehab <mchehab@kernel.org>
    media: camss-vfe: always initialize reg at vfe_set_xbar_cfg()

Sébastien Szymanski <sebastien.szymanski@armadeus.com>
    clk: imx6: refine hdmi_isfr's parent to make HDMI work on i.MX6 SoCs w/o VPU

Adriana Reus <adriana.reus@nxp.com>
    clk: imx: imx7d: Fix parent clock for OCRAM_CLK

Chen Zhong <chen.zhong@mediatek.com>
    clk: mediatek: add the option for determining PLL source clock

Hans de Goede <hdegoede@redhat.com>
    staging: rtl8188eu: Revert part of "staging: rtl8188eu: fix comments with lines over 80 characters"

qumingguang <qumingguang@huawei.com>
    net: hns3: Fix a misuse to devm_free_irq

Fuyun Liang <liangfuyun1@huawei.com>
    net: hns3: fix for getting advertised_caps in hns3_get_link_ksettings

Jan Kara <jack@suse.cz>
    mm: Handle 0 flags in _calc_vm_trans() macro

Robert Baronescu <robert.baronescu@nxp.com>
    crypto: tcrypt - fix buffer lengths in test_aead_speed()

Suzuki K Poulose <suzuki.poulose@arm.com>
    arm-ccn: perf: Prevent module unload while PMU is in use

Eryu Guan <eguan@redhat.com>
    xfs: truncate pagecache before writeback in xfs_setattr_size()

Gary R Hook <gary.hook@amd.com>
    iommu/amd: Limit the IOVA page range to the specified addresses

Liu Bo <bo.li.liu@oracle.com>
    badblocks: fix wrong return value in badblocks_set if badblocks are disabled

Jiang Yi <jiangyilism@gmail.com>
    target/file: Do not return error for UNMAP if length is zero

tangwenji <tang.wenji@zte.com.cn>
    target:fix condition return in core_pr_dump_initiator_port()

tangwenji <tang.wenji@zte.com.cn>
    iscsi-target: fix memory leak in lio_target_tiqn_addtpg()

Bart Van Assche <bart.vanassche@wdc.com>
    target/iscsi: Fix a race condition in iscsit_add_reject_from_cmd()

Bart Van Assche <bart.vanassche@wdc.com>
    target/iscsi: Detect conn_cmd_list corruption early

Markus Elfring <elfring@users.sourceforge.net>
    platform/x86: sony-laptop: Fix error handling in sony_nc_setup_rfkill()

Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
    platform/x86: intel_punit_ipc: Fix resource ioremap warning

Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
    powerpc/pseries/vio: Dispose of virq mapping on vdevice unregister

Christophe Leroy <christophe.leroy@c-s.fr>
    powerpc/ipic: Fix status get and status clear

William A. Kennington III <wak@google.com>
    powerpc/opal: Fix EBUSY bug in acquiring tokens

KUWAZAWA Takuya <albatross0@gmail.com>
    netfilter: ipvs: Fix inappropriate output of procfs

Gustavo A. R. Silva <garsilva@embeddedor.com>
    thunderbolt: tb: fix use after free in tb_activate_pcie_devices

Matthias Brugger <matthias.bgg@gmail.com>
    iommu/mediatek: Fix driver name

Mika Westerberg <mika.westerberg@linux.intel.com>
    PCI: Do not allocate more buses than available in parent

Shriya <shriyak@linux.vnet.ibm.com>
    powerpc/powernv/cpufreq: Fix the frequency read by /proc/cpuinfo

Qiang <zhengqiang10@huawei.com>
    PCI/PME: Handle invalid data when reading Root Status

Wei Yongjun <weiyongjun1@huawei.com>
    mlxsw: spectrum: Fix error return code in mlxsw_sp_port_create()

Peter Ujfalusi <peter.ujfalusi@ti.com>
    dmaengine: ti-dma-crossbar: Correct am335x/am43xx mux value type

Pankaj Bharadiya <pankaj.laxminarayan.bharadiya@intel.com>
    ASoC: Intel: Skylake: Fix uuid_module memory leak in failure case

Rajat Jain <rajatja@google.com>
    PM / s2idle: Clear the events_check_enabled flag

Pixel Ding <Pixel.Ding@amd.com>
    drm/amdgpu: bypass lru touch for KIQ ring submission

Arnd Bergmann <arnd@arndb.de>
    scsi: aacraid: use timespec64 instead of timeval

Philipp Zabel <p.zabel@pengutronix.de>
    rtc: pcf8563: fix output clock rate

Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    video: fbdev: au1200fb: Return an error code if a memory allocation fails

Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    video: fbdev: au1200fb: Release some resources if a memory allocation fails

Ladislav Michl <ladis@linux-mips.org>
    video: udlfb: Fix read EDID timeout

Geert Uytterhoeven <geert@linux-m68k.org>
    fbdev: controlfb: Add missing modes to fix out of bounds access

Robert Stonehouse <rstonehouse@solarflare.com>
    sfc: don't warn on successful change of MAC

Sébastien Szymanski <sebastien.szymanski@armadeus.com>
    HID: cp2112: fix broken gpio_direction_input callback

Guy Levi <guyle@mellanox.com>
    IB/mlx4: Fix RSS's QPC attributes assignments

Chandan Rajendra <chandan@linux.vnet.ibm.com>
    ext4: fix crash when a directory's i_size is too small

Theodore Ts'o <tytso@mit.edu>
    ext4: add missing error check in __ext4_new_inode()

Eryu Guan <eguan@redhat.com>
    ext4: fix fdatasync(2) after fallocate(2) operation

Andi Kleen <ak@linux.intel.com>
    ext4: support fast symlinks from ext3 file systems

Kees Cook <keescook@chromium.org>
    Revert "exec: avoid RLIMIT_STACK races with prlimit()"

Adam Wallis <awallis@codeaurora.org>
    dmaengine: dmatest: move callback wait queue to thread context

Thomas Gleixner <tglx@linutronix.de>
    posix-timer: Properly check sigevent->sigev_notify

David Lechner <david@lechnology.com>
    eeprom: at24: change nvmem stride to 1

Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    x86/boot/compressed/64: Print error if 5-level paging is not supported

Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    x86/boot/compressed/64: Detect and handle 5-level paging at boot-time

Steve Wise <swise@opengridcomputing.com>
    iw_cxgb4: only insert drain cqes if wq is flushed

Trond Myklebust <trond.myklebust@primarydata.com>
    SUNRPC: Fix a race in the receive code path

monty_pavel@sina.com <monty_pavel@sina.com>
    dm: fix various targets to dm_register_target after module __init resources created

Steven Rostedt <rostedt@goodmis.org>
    sched/rt: Do not pull from current CPU if only one CPU to pull

Jason Yan <yanaijie@huawei.com>
    scsi: libsas: fix length error in sas_smp_handler()

Bart Van Assche <bart.vanassche@wdc.com>
    scsi: core: Fix a scsi_show_rq() NULL pointer dereference

Mark Rutland <mark.rutland@arm.com>
    arm64: fix CONFIG_DEBUG_WX address reporting

Steve Capper <steve.capper@arm.com>
    arm64: Initialise high_memory global variable earlier

Steve Capper <steve.capper@arm.com>
    arm64: mm: Fix pte_mkclean, pte_mkdirty semantics

Scott Mayhew <smayhew@redhat.com>
    nfs: don't wait on commit in nfs_commit_inode() if there were no commit requests

Daniel Jurgens <danielj@mellanox.com>
    IB/core: Don't enforce PKey security on SMI MADs

Daniel Jurgens <danielj@mellanox.com>
    IB/core: Bound check alternate path port number

Mathias Nyman <mathias.nyman@linux.intel.com>
    xhci: Don't add a virt_dev to the devs array before it's fully allocated

Chunfeng Yun <chunfeng.yun@mediatek.com>
    usb: xhci: fix TDS for MTK xHCI1.1

Yan, Zheng <zyan@redhat.com>
    ceph: drop negative child dentries before try pruning inode's alias

Christoph Fritz <chf.fritz@googlemail.com>
    mmc: core: apply NO_CMD23 quirk to some specific cards

Shuah Khan <shuah@kernel.org>
    usbip: fix stub_send_ret_submit() vulnerability to null transfer_buffer

Shuah Khan <shuah@kernel.org>
    usbip: prevent vhci_hcd driver from leaking a socket pointer address

Shuah Khan <shuah@kernel.org>
    usbip: fix stub_rx: harden CMD_SUBMIT path to handle malicious input

Shuah Khan <shuah@kernel.org>
    usbip: fix stub_rx: get_pipe() to validate endpoint number

Amir Goldstein <amir73il@gmail.com>
    ovl: update ctx->pos on impure dir iteration

Vivek Goyal <vgoyal@redhat.com>
    ovl: Pass ovl_get_nlink() parameters in right order

Alan Stern <stern@rowland.harvard.edu>
    USB: core: prevent malicious bNumInterfaces overflow

David Kozub <zub@linux.fjfi.cvut.cz>
    USB: uas and storage: Add US_FL_BROKEN_FUA for another JMicron JMS567 ID

Changbin Du <changbin.du@intel.com>
    tracing: Allocate mask_str buffer dynamically

Michal Hocko <mhocko@suse.com>
    mm, oom_reaper: fix memory corruption

Thiago Rafael Becker <thiago.becker@gmail.com>
    kernel: make groups_sort calling a responsibility group_info allocators

NeilBrown <neilb@suse.com>
    autofs: fix careless error in recent commit

Arnd Bergmann <arnd@arndb.de>
    string.h: workaround for increased stack usage

Ronnie Sahlberg <lsahlber@redhat.com>
    cifs: fix NULL deref in SMB2_read

Eric Biggers <ebiggers@google.com>
    crypto: af_alg - fix NULL pointer dereference in

Eric Biggers <ebiggers@google.com>
    crypto: salsa20 - fix blkcipher_walk API usage

Eric Biggers <ebiggers@google.com>
    crypto: hmac - require that the underlying hash algorithm is unkeyed

Eric Biggers <ebiggers@google.com>
    crypto: rsa - fix buffer overread when stripping leading zeroes

Eric Biggers <ebiggers@google.com>
    crypto: algif_aead - fix reference counting of null skcipher

Martin Kaiser <martin@kaiser.cx>
    mfd: fsl-imx25: Clean up irq settings during removal


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

Diffstat:

 Makefile                                           |  4 +-
 arch/arm64/Makefile                                |  8 +++-
 .../arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts |  1 +
 arch/arm64/include/asm/pgtable.h                   | 33 +++++++------
 arch/arm64/mm/dump.c                               |  2 +-
 arch/arm64/mm/init.c                               |  3 +-
 arch/blackfin/Kconfig                              |  7 ++-
 arch/blackfin/Kconfig.debug                        |  1 +
 arch/powerpc/perf/hv-24x7.c                        |  2 +-
 arch/powerpc/platforms/powernv/opal-async.c        |  6 +--
 arch/powerpc/platforms/powernv/setup.c             |  2 +-
 arch/powerpc/platforms/pseries/vio.c               |  2 +
 arch/powerpc/sysdev/ipic.c                         |  4 +-
 arch/powerpc/xmon/xmon.c                           |  5 ++
 arch/s390/kernel/compat_linux.c                    |  1 +
 arch/x86/boot/compressed/Makefile                  |  1 +
 arch/x86/boot/compressed/head_64.S                 | 16 +++++--
 arch/x86/boot/compressed/misc.c                    | 16 +++++++
 arch/x86/boot/compressed/pgtable_64.c              | 28 +++++++++++
 arch/x86/crypto/salsa20_glue.c                     |  7 ---
 arch/x86/kvm/vmx.c                                 |  5 +-
 block/badblocks.c                                  |  2 +-
 block/blk-mq-sched.c                               | 12 ++---
 crypto/af_alg.c                                    | 13 ++---
 crypto/algif_aead.c                                |  2 +-
 crypto/hmac.c                                      |  6 ++-
 crypto/rsa_helper.c                                |  2 +-
 crypto/salsa20_generic.c                           |  7 ---
 crypto/shash.c                                     |  5 +-
 crypto/tcrypt.c                                    |  6 ++-
 drivers/block/null_blk.c                           |  4 +-
 drivers/bluetooth/btusb.c                          |  1 +
 drivers/bluetooth/hci_ldisc.c                      |  4 +-
 drivers/bus/arm-ccn.c                              |  1 +
 drivers/char/ipmi/ipmi_si_intf.c                   |  1 +
 drivers/clk/hisilicon/clk-hi6220.c                 |  2 +-
 drivers/clk/imx/clk-imx6q.c                        |  2 +-
 drivers/clk/imx/clk-imx7d.c                        |  2 +-
 drivers/clk/mediatek/clk-mtk.h                     |  1 +
 drivers/clk/mediatek/clk-pll.c                     |  5 +-
 drivers/clk/tegra/clk-tegra210.c                   |  4 +-
 drivers/clk/tegra/clk-tegra30.c                    |  2 +-
 drivers/dax/device.c                               |  3 +-
 drivers/dma/dmatest.c                              | 55 ++++++++++++----------
 drivers/dma/ti-dma-crossbar.c                      |  8 ++--
 drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c           |  3 +-
 drivers/hid/hid-cp2112.c                           |  8 +++-
 drivers/infiniband/core/addr.c                     |  2 +-
 drivers/infiniband/core/cma.c                      | 11 +++--
 drivers/infiniband/core/security.c                 |  7 ++-
 drivers/infiniband/core/uverbs_cmd.c               |  6 +++
 drivers/infiniband/hw/cxgb4/cq.c                   |  5 ++
 drivers/infiniband/hw/cxgb4/qp.c                   | 14 +++++-
 drivers/infiniband/hw/cxgb4/t4.h                   |  2 +-
 drivers/infiniband/hw/hfi1/chip.c                  |  2 +-
 drivers/infiniband/hw/hfi1/trace.c                 |  4 +-
 drivers/infiniband/hw/mlx4/qp.c                    | 16 ++++---
 drivers/infiniband/ulp/ipoib/ipoib_ib.c            |  7 ++-
 drivers/iommu/amd_iommu.c                          |  2 +-
 drivers/iommu/mtk_iommu_v1.c                       |  2 +-
 drivers/lightnvm/pblk-core.c                       |  8 ++--
 drivers/lightnvm/pblk-gc.c                         |  9 ++--
 drivers/lightnvm/pblk-init.c                       | 21 +++++----
 drivers/lightnvm/pblk-read.c                       |  9 ++--
 drivers/lightnvm/pblk.h                            |  2 +-
 drivers/md/bcache/request.c                        |  6 ++-
 drivers/md/bcache/super.c                          |  6 ++-
 drivers/md/dm-cache-target.c                       | 12 ++---
 drivers/md/dm-mpath.c                              | 18 +++----
 drivers/md/dm-snap.c                               | 48 +++++++++----------
 drivers/md/dm-thin.c                               | 22 ++++-----
 drivers/md/raid1.c                                 | 10 ++--
 drivers/md/raid5-ppl.c                             |  3 +-
 drivers/md/raid5.c                                 |  5 +-
 drivers/media/platform/qcom/camss-8x16/camss-vfe.c |  3 ++
 drivers/media/usb/usbtv/usbtv-video.c              |  4 +-
 drivers/mfd/fsl-imx25-tsadc.c                      | 14 ++++++
 drivers/mfd/mxs-lradc.c                            |  6 ++-
 drivers/misc/eeprom/at24.c                         |  2 +-
 drivers/misc/pci_endpoint_test.c                   |  4 ++
 drivers/mmc/core/card.h                            |  2 +
 drivers/mmc/core/quirks.h                          |  8 ++++
 drivers/mtd/spi-nor/stm32-quadspi.c                |  4 +-
 drivers/net/dsa/lan9303-core.c                     |  2 +-
 drivers/net/ethernet/cavium/liquidio/lio_vf_main.c |  6 +--
 .../ethernet/hisilicon/hns3/hns3pf/hclge_main.c    | 12 +++--
 .../net/ethernet/hisilicon/hns3/hns3pf/hns3_enet.c | 15 +++---
 .../ethernet/hisilicon/hns3/hns3pf/hns3_ethtool.c  |  3 ++
 drivers/net/ethernet/mellanox/mlxsw/spectrum.c     |  1 +
 drivers/net/ethernet/sfc/ef10.c                    |  2 +-
 drivers/net/macvlan.c                              |  2 +-
 drivers/net/ppp/ppp_generic.c                      |  1 +
 drivers/net/wireless/ath/ath10k/pci.c              | 29 ++++++------
 drivers/net/wireless/ath/ath9k/tx99.c              |  5 ++
 .../net/wireless/quantenna/qtnfmac/pearl/pcie.c    |  2 +-
 drivers/nvme/host/core.c                           |  3 +-
 drivers/pci/pcie/pme.c                             |  5 +-
 drivers/pci/probe.c                                |  7 ++-
 drivers/pci/remove.c                               |  2 +-
 drivers/pinctrl/Kconfig                            |  3 +-
 drivers/platform/x86/hp_accel.c                    |  1 +
 drivers/platform/x86/intel_punit_ipc.c             |  8 ++--
 drivers/platform/x86/sony-laptop.c                 | 14 +++---
 drivers/rpmsg/qcom_glink_native.c                  |  1 +
 drivers/rtc/rtc-pcf8563.c                          |  2 +-
 drivers/scsi/aacraid/commsup.c                     | 26 +++++-----
 drivers/scsi/bfa/bfad_debugfs.c                    |  5 +-
 drivers/scsi/hisi_sas/hisi_sas_main.c              |  9 ++--
 drivers/scsi/hpsa.c                                |  6 +--
 drivers/scsi/libsas/sas_expander.c                 | 10 ++--
 drivers/scsi/scsi_debug.c                          |  6 +--
 drivers/scsi/scsi_debugfs.c                        |  6 ++-
 drivers/scsi/scsi_devinfo.c                        |  2 +-
 drivers/scsi/sd.c                                  | 16 +++++--
 drivers/soc/mediatek/mtk-pmic-wrap.c               |  2 +-
 drivers/staging/rtl8188eu/core/rtw_ap.c            |  2 +-
 drivers/staging/rtl8188eu/core/rtw_cmd.c           |  4 +-
 drivers/staging/vt6655/device_main.c               |  3 +-
 drivers/target/iscsi/iscsi_target.c                |  3 +-
 drivers/target/iscsi/iscsi_target_configfs.c       |  3 +-
 drivers/target/iscsi/iscsi_target_util.c           |  4 ++
 drivers/target/target_core_file.c                  |  4 ++
 drivers/target/target_core_pr.c                    |  4 +-
 drivers/thermal/step_wise.c                        | 11 +++--
 drivers/thunderbolt/tb.c                           |  1 +
 drivers/tty/serdev/serdev-ttyport.c                | 14 ++++--
 drivers/usb/core/config.c                          |  4 +-
 drivers/usb/host/xhci-mem.c                        | 15 ++++--
 drivers/usb/host/xhci-ring.c                       |  6 +--
 drivers/usb/musb/da8xx.c                           | 10 +++-
 drivers/usb/storage/unusual_devs.h                 |  7 +++
 drivers/usb/storage/unusual_uas.h                  |  7 +++
 drivers/usb/usbip/stub_rx.c                        | 51 ++++++++++++++++----
 drivers/usb/usbip/stub_tx.c                        |  7 +++
 drivers/usb/usbip/usbip_common.h                   |  1 +
 drivers/usb/usbip/vhci_sysfs.c                     | 25 ++++++----
 drivers/video/fbdev/au1200fb.c                     |  7 ++-
 drivers/video/fbdev/controlfb.h                    |  2 +
 drivers/video/fbdev/udlfb.c                        | 10 ++--
 fs/autofs4/waitq.c                                 |  1 -
 fs/btrfs/ioctl.c                                   |  7 ++-
 fs/btrfs/super.c                                   |  4 +-
 fs/btrfs/tests/free-space-tree-tests.c             |  3 +-
 fs/btrfs/volumes.c                                 |  7 ++-
 fs/ceph/mds_client.c                               | 42 +++++++++++++++--
 fs/cifs/smb2pdu.c                                  | 30 ++++++------
 fs/exec.c                                          |  7 +--
 fs/ext4/extents.c                                  |  1 +
 fs/ext4/ialloc.c                                   |  2 +
 fs/ext4/inode.c                                    |  9 ++++
 fs/ext4/namei.c                                    |  4 ++
 fs/gfs2/file.c                                     |  4 +-
 fs/nfs/write.c                                     |  2 +
 fs/nfsd/auth.c                                     |  3 ++
 fs/overlayfs/namei.c                               |  2 +-
 fs/overlayfs/readdir.c                             |  5 +-
 fs/proc/proc_tty.c                                 |  3 +-
 fs/udf/super.c                                     |  2 +-
 fs/xfs/libxfs/xfs_bmap.c                           |  2 +-
 fs/xfs/xfs_icache.c                                |  2 +-
 fs/xfs/xfs_iops.c                                  | 36 +++++++-------
 fs/xfs/xfs_log_recover.c                           |  2 +-
 include/crypto/internal/hash.h                     |  8 ++++
 include/linux/cred.h                               |  1 +
 include/linux/mman.h                               |  3 +-
 include/linux/oom.h                                |  9 ++++
 include/linux/sched/coredump.h                     |  1 +
 include/linux/string.h                             |  5 +-
 include/rdma/ib_addr.h                             | 11 +++--
 include/rdma/ib_pack.h                             | 19 ++++----
 kernel/groups.c                                    |  5 +-
 kernel/power/suspend.c                             |  2 +-
 kernel/sched/rt.c                                  |  8 +++-
 kernel/time/posix-timers.c                         | 29 +++++++-----
 kernel/trace/trace.c                               | 29 ++++--------
 kernel/uid16.c                                     |  1 +
 mm/mmap.c                                          | 10 ++--
 mm/oom_kill.c                                      |  4 +-
 net/ipv4/icmp.c                                    | 15 ++++--
 net/ipv4/route.c                                   |  2 +-
 net/l2tp/l2tp_core.c                               |  2 +-
 net/l2tp/l2tp_netlink.c                            |  2 +-
 net/netfilter/ipvs/ip_vs_ctl.c                     |  4 ++
 net/sunrpc/auth_gss/gss_rpc_xdr.c                  |  1 +
 net/sunrpc/auth_gss/svcauth_gss.c                  |  1 +
 net/sunrpc/svcauth_unix.c                          |  2 +
 net/sunrpc/xprt.c                                  | 28 +++++++----
 net/sunrpc/xprtrdma/transport.c                    |  2 +-
 samples/bpf/xdp1_user.c                            |  8 ++++
 sound/soc/intel/skylake/skl-sst-utils.c            | 15 ++++--
 sound/soc/sh/rcar/ssi.c                            | 11 +++--
 tools/usb/usbip/libsrc/vhci_driver.c               |  8 ++--
 192 files changed, 968 insertions(+), 498 deletions(-)

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

* [PATCH 4.14 001/178] mfd: fsl-imx25: Clean up irq settings during removal
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 002/178] crypto: algif_aead - fix reference counting of null skcipher Greg Kroah-Hartman
                   ` (161 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Martin Kaiser, Lucas Stach, Lee Jones

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

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

From: Martin Kaiser <martin@kaiser.cx>

commit 18f77393796848e68909e65d692c1d1436f06e06 upstream.

When fsl-imx25-tsadc is compiled as a module, loading, unloading and
reloading the module will lead to a crash.

Unable to handle kernel paging request at virtual address bf005430
[<c004df6c>] (irq_find_matching_fwspec)
   from [<c028d5ec>] (of_irq_get+0x58/0x74)
[<c028d594>] (of_irq_get)
   from [<c01ff970>] (platform_get_irq+0x48/0xc8)
[<c01ff928>] (platform_get_irq)
   from [<bf00e33c>] (mx25_tsadc_probe+0x220/0x2f4 [fsl_imx25_tsadc])

irq_find_matching_fwspec() loops over all registered irq domains. The
irq domain is still registered from last time the module was loaded but
the pointer to its operations is invalid after the module was unloaded.

Add a removal function which clears the irq handler and removes the irq
domain. With this cleanup in place, it's possible to unload and reload
the module.

Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/mfd/fsl-imx25-tsadc.c |   14 ++++++++++++++
 1 file changed, 14 insertions(+)

--- a/drivers/mfd/fsl-imx25-tsadc.c
+++ b/drivers/mfd/fsl-imx25-tsadc.c
@@ -180,6 +180,19 @@ static int mx25_tsadc_probe(struct platf
 	return devm_of_platform_populate(dev);
 }
 
+static int mx25_tsadc_remove(struct platform_device *pdev)
+{
+	struct mx25_tsadc *tsadc = platform_get_drvdata(pdev);
+	int irq = platform_get_irq(pdev, 0);
+
+	if (irq) {
+		irq_set_chained_handler_and_data(irq, NULL, NULL);
+		irq_domain_remove(tsadc->domain);
+	}
+
+	return 0;
+}
+
 static const struct of_device_id mx25_tsadc_ids[] = {
 	{ .compatible = "fsl,imx25-tsadc" },
 	{ /* Sentinel */ }
@@ -192,6 +205,7 @@ static struct platform_driver mx25_tsadc
 		.of_match_table = of_match_ptr(mx25_tsadc_ids),
 	},
 	.probe = mx25_tsadc_probe,
+	.remove = mx25_tsadc_remove,
 };
 module_platform_driver(mx25_tsadc_driver);
 

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

* [PATCH 4.14 002/178] crypto: algif_aead - fix reference counting of null skcipher
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 001/178] mfd: fsl-imx25: Clean up irq settings during removal Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 003/178] crypto: rsa - fix buffer overread when stripping leading zeroes Greg Kroah-Hartman
                   ` (160 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, syzbot, Eric Biggers,
	Stephan Mueller, Herbert Xu

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

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

From: Eric Biggers <ebiggers@google.com>

commit b32a7dc8aef1882fbf983eb354837488cc9d54dc upstream.

In the AEAD interface for AF_ALG, the reference to the "null skcipher"
held by each tfm was being dropped in the wrong place -- when each
af_alg_ctx was freed instead of when the aead_tfm was freed.  As
discovered by syzkaller, a specially crafted program could use this to
cause the null skcipher to be freed while it is still in use.

Fix it by dropping the reference in the right place.

Fixes: 72548b093ee3 ("crypto: algif_aead - copy AAD from src to dst")
Reported-by: syzbot <syzkaller@googlegroups.com>
Signed-off-by: Eric Biggers <ebiggers@google.com>
Reviewed-by: Stephan Mueller <smueller@chronox.de>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 crypto/algif_aead.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/crypto/algif_aead.c
+++ b/crypto/algif_aead.c
@@ -503,6 +503,7 @@ static void aead_release(void *private)
 	struct aead_tfm *tfm = private;
 
 	crypto_free_aead(tfm->aead);
+	crypto_put_default_null_skcipher2();
 	kfree(tfm);
 }
 
@@ -535,7 +536,6 @@ static void aead_sock_destruct(struct so
 	unsigned int ivlen = crypto_aead_ivsize(tfm);
 
 	af_alg_pull_tsgl(sk, ctx->used, NULL, 0);
-	crypto_put_default_null_skcipher2();
 	sock_kzfree_s(sk, ctx->iv, ivlen);
 	sock_kfree_s(sk, ctx, ctx->len);
 	af_alg_release_parent(sk);

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

* [PATCH 4.14 003/178] crypto: rsa - fix buffer overread when stripping leading zeroes
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 001/178] mfd: fsl-imx25: Clean up irq settings during removal Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 002/178] crypto: algif_aead - fix reference counting of null skcipher Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 004/178] crypto: hmac - require that the underlying hash algorithm is unkeyed Greg Kroah-Hartman
                   ` (159 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Tudor Ambarus, Eric Biggers,
	James Morris, David Howells, Herbert Xu

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

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

From: Eric Biggers <ebiggers@google.com>

commit d2890c3778b164fde587bc16583f3a1c87233ec5 upstream.

In rsa_get_n(), if the buffer contained all 0's and "FIPS mode" is
enabled, we would read one byte past the end of the buffer while
scanning the leading zeroes.  Fix it by checking 'n_sz' before '!*ptr'.

This bug was reachable by adding a specially crafted key of type
"asymmetric" (requires CONFIG_RSA and CONFIG_X509_CERTIFICATE_PARSER).

KASAN report:

    BUG: KASAN: slab-out-of-bounds in rsa_get_n+0x19e/0x1d0 crypto/rsa_helper.c:33
    Read of size 1 at addr ffff88003501a708 by task keyctl/196

    CPU: 1 PID: 196 Comm: keyctl Not tainted 4.14.0-09238-g1d3b78bbc6e9 #26
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.11.0-20171110_100015-anatol 04/01/2014
    Call Trace:
     rsa_get_n+0x19e/0x1d0 crypto/rsa_helper.c:33
     asn1_ber_decoder+0x82a/0x1fd0 lib/asn1_decoder.c:328
     rsa_set_pub_key+0xd3/0x320 crypto/rsa.c:278
     crypto_akcipher_set_pub_key ./include/crypto/akcipher.h:364 [inline]
     pkcs1pad_set_pub_key+0xae/0x200 crypto/rsa-pkcs1pad.c:117
     crypto_akcipher_set_pub_key ./include/crypto/akcipher.h:364 [inline]
     public_key_verify_signature+0x270/0x9d0 crypto/asymmetric_keys/public_key.c:106
     x509_check_for_self_signed+0x2ea/0x480 crypto/asymmetric_keys/x509_public_key.c:141
     x509_cert_parse+0x46a/0x620 crypto/asymmetric_keys/x509_cert_parser.c:129
     x509_key_preparse+0x61/0x750 crypto/asymmetric_keys/x509_public_key.c:174
     asymmetric_key_preparse+0xa4/0x150 crypto/asymmetric_keys/asymmetric_type.c:388
     key_create_or_update+0x4d4/0x10a0 security/keys/key.c:850
     SYSC_add_key security/keys/keyctl.c:122 [inline]
     SyS_add_key+0xe8/0x290 security/keys/keyctl.c:62
     entry_SYSCALL_64_fastpath+0x1f/0x96

    Allocated by task 196:
     __do_kmalloc mm/slab.c:3711 [inline]
     __kmalloc_track_caller+0x118/0x2e0 mm/slab.c:3726
     kmemdup+0x17/0x40 mm/util.c:118
     kmemdup ./include/linux/string.h:414 [inline]
     x509_cert_parse+0x2cb/0x620 crypto/asymmetric_keys/x509_cert_parser.c:106
     x509_key_preparse+0x61/0x750 crypto/asymmetric_keys/x509_public_key.c:174
     asymmetric_key_preparse+0xa4/0x150 crypto/asymmetric_keys/asymmetric_type.c:388
     key_create_or_update+0x4d4/0x10a0 security/keys/key.c:850
     SYSC_add_key security/keys/keyctl.c:122 [inline]
     SyS_add_key+0xe8/0x290 security/keys/keyctl.c:62
     entry_SYSCALL_64_fastpath+0x1f/0x96

Fixes: 5a7de97309f5 ("crypto: rsa - return raw integers for the ASN.1 parser")
Cc: Tudor Ambarus <tudor-dan.ambarus@nxp.com>
Signed-off-by: Eric Biggers <ebiggers@google.com>
Reviewed-by: James Morris <james.l.morris@oracle.com>
Reviewed-by: David Howells <dhowells@redhat.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 crypto/rsa_helper.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/crypto/rsa_helper.c
+++ b/crypto/rsa_helper.c
@@ -30,7 +30,7 @@ int rsa_get_n(void *context, size_t hdrl
 		return -EINVAL;
 
 	if (fips_enabled) {
-		while (!*ptr && n_sz) {
+		while (n_sz && !*ptr) {
 			ptr++;
 			n_sz--;
 		}

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

* [PATCH 4.14 004/178] crypto: hmac - require that the underlying hash algorithm is unkeyed
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (2 preceding siblings ...)
  2017-12-18 15:47 ` [PATCH 4.14 003/178] crypto: rsa - fix buffer overread when stripping leading zeroes Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 005/178] crypto: salsa20 - fix blkcipher_walk API usage Greg Kroah-Hartman
                   ` (158 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, syzbot, Eric Biggers, Herbert Xu

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

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

From: Eric Biggers <ebiggers@google.com>

commit af3ff8045bbf3e32f1a448542e73abb4c8ceb6f1 upstream.

Because the HMAC template didn't check that its underlying hash
algorithm is unkeyed, trying to use "hmac(hmac(sha3-512-generic))"
through AF_ALG or through KEYCTL_DH_COMPUTE resulted in the inner HMAC
being used without having been keyed, resulting in sha3_update() being
called without sha3_init(), causing a stack buffer overflow.

This is a very old bug, but it seems to have only started causing real
problems when SHA-3 support was added (requires CONFIG_CRYPTO_SHA3)
because the innermost hash's state is ->import()ed from a zeroed buffer,
and it just so happens that other hash algorithms are fine with that,
but SHA-3 is not.  However, there could be arch or hardware-dependent
hash algorithms also affected; I couldn't test everything.

Fix the bug by introducing a function crypto_shash_alg_has_setkey()
which tests whether a shash algorithm is keyed.  Then update the HMAC
template to require that its underlying hash algorithm is unkeyed.

Here is a reproducer:

    #include <linux/if_alg.h>
    #include <sys/socket.h>

    int main()
    {
        int algfd;
        struct sockaddr_alg addr = {
            .salg_type = "hash",
            .salg_name = "hmac(hmac(sha3-512-generic))",
        };
        char key[4096] = { 0 };

        algfd = socket(AF_ALG, SOCK_SEQPACKET, 0);
        bind(algfd, (const struct sockaddr *)&addr, sizeof(addr));
        setsockopt(algfd, SOL_ALG, ALG_SET_KEY, key, sizeof(key));
    }

Here was the KASAN report from syzbot:

    BUG: KASAN: stack-out-of-bounds in memcpy include/linux/string.h:341  [inline]
    BUG: KASAN: stack-out-of-bounds in sha3_update+0xdf/0x2e0  crypto/sha3_generic.c:161
    Write of size 4096 at addr ffff8801cca07c40 by task syzkaller076574/3044

    CPU: 1 PID: 3044 Comm: syzkaller076574 Not tainted 4.14.0-mm1+ #25
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS  Google 01/01/2011
    Call Trace:
      __dump_stack lib/dump_stack.c:17 [inline]
      dump_stack+0x194/0x257 lib/dump_stack.c:53
      print_address_description+0x73/0x250 mm/kasan/report.c:252
      kasan_report_error mm/kasan/report.c:351 [inline]
      kasan_report+0x25b/0x340 mm/kasan/report.c:409
      check_memory_region_inline mm/kasan/kasan.c:260 [inline]
      check_memory_region+0x137/0x190 mm/kasan/kasan.c:267
      memcpy+0x37/0x50 mm/kasan/kasan.c:303
      memcpy include/linux/string.h:341 [inline]
      sha3_update+0xdf/0x2e0 crypto/sha3_generic.c:161
      crypto_shash_update+0xcb/0x220 crypto/shash.c:109
      shash_finup_unaligned+0x2a/0x60 crypto/shash.c:151
      crypto_shash_finup+0xc4/0x120 crypto/shash.c:165
      hmac_finup+0x182/0x330 crypto/hmac.c:152
      crypto_shash_finup+0xc4/0x120 crypto/shash.c:165
      shash_digest_unaligned+0x9e/0xd0 crypto/shash.c:172
      crypto_shash_digest+0xc4/0x120 crypto/shash.c:186
      hmac_setkey+0x36a/0x690 crypto/hmac.c:66
      crypto_shash_setkey+0xad/0x190 crypto/shash.c:64
      shash_async_setkey+0x47/0x60 crypto/shash.c:207
      crypto_ahash_setkey+0xaf/0x180 crypto/ahash.c:200
      hash_setkey+0x40/0x90 crypto/algif_hash.c:446
      alg_setkey crypto/af_alg.c:221 [inline]
      alg_setsockopt+0x2a1/0x350 crypto/af_alg.c:254
      SYSC_setsockopt net/socket.c:1851 [inline]
      SyS_setsockopt+0x189/0x360 net/socket.c:1830
      entry_SYSCALL_64_fastpath+0x1f/0x96

Reported-by: syzbot <syzkaller@googlegroups.com>
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 crypto/hmac.c                  |    6 +++++-
 crypto/shash.c                 |    5 +++--
 include/crypto/internal/hash.h |    8 ++++++++
 3 files changed, 16 insertions(+), 3 deletions(-)

--- a/crypto/hmac.c
+++ b/crypto/hmac.c
@@ -195,11 +195,15 @@ static int hmac_create(struct crypto_tem
 	salg = shash_attr_alg(tb[1], 0, 0);
 	if (IS_ERR(salg))
 		return PTR_ERR(salg);
+	alg = &salg->base;
 
+	/* The underlying hash algorithm must be unkeyed */
 	err = -EINVAL;
+	if (crypto_shash_alg_has_setkey(salg))
+		goto out_put_alg;
+
 	ds = salg->digestsize;
 	ss = salg->statesize;
-	alg = &salg->base;
 	if (ds > alg->cra_blocksize ||
 	    ss < alg->cra_blocksize)
 		goto out_put_alg;
--- a/crypto/shash.c
+++ b/crypto/shash.c
@@ -25,11 +25,12 @@
 
 static const struct crypto_type crypto_shash_type;
 
-static int shash_no_setkey(struct crypto_shash *tfm, const u8 *key,
-			   unsigned int keylen)
+int shash_no_setkey(struct crypto_shash *tfm, const u8 *key,
+		    unsigned int keylen)
 {
 	return -ENOSYS;
 }
+EXPORT_SYMBOL_GPL(shash_no_setkey);
 
 static int shash_setkey_unaligned(struct crypto_shash *tfm, const u8 *key,
 				  unsigned int keylen)
--- a/include/crypto/internal/hash.h
+++ b/include/crypto/internal/hash.h
@@ -82,6 +82,14 @@ int ahash_register_instance(struct crypt
 			    struct ahash_instance *inst);
 void ahash_free_instance(struct crypto_instance *inst);
 
+int shash_no_setkey(struct crypto_shash *tfm, const u8 *key,
+		    unsigned int keylen);
+
+static inline bool crypto_shash_alg_has_setkey(struct shash_alg *alg)
+{
+	return alg->setkey != shash_no_setkey;
+}
+
 int crypto_init_ahash_spawn(struct crypto_ahash_spawn *spawn,
 			    struct hash_alg_common *alg,
 			    struct crypto_instance *inst);

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

* [PATCH 4.14 005/178] crypto: salsa20 - fix blkcipher_walk API usage
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (3 preceding siblings ...)
  2017-12-18 15:47 ` [PATCH 4.14 004/178] crypto: hmac - require that the underlying hash algorithm is unkeyed Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 006/178] crypto: af_alg - fix NULL pointer dereference in Greg Kroah-Hartman
                   ` (157 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, syzbot, Eric Biggers, Herbert Xu

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

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

From: Eric Biggers <ebiggers@google.com>

commit ecaaab5649781c5a0effdaf298a925063020500e upstream.

When asked to encrypt or decrypt 0 bytes, both the generic and x86
implementations of Salsa20 crash in blkcipher_walk_done(), either when
doing 'kfree(walk->buffer)' or 'free_page((unsigned long)walk->page)',
because walk->buffer and walk->page have not been initialized.

The bug is that Salsa20 is calling blkcipher_walk_done() even when
nothing is in 'walk.nbytes'.  But blkcipher_walk_done() is only meant to
be called when a nonzero number of bytes have been provided.

The broken code is part of an optimization that tries to make only one
call to salsa20_encrypt_bytes() to process inputs that are not evenly
divisible by 64 bytes.  To fix the bug, just remove this "optimization"
and use the blkcipher_walk API the same way all the other users do.

Reproducer:

    #include <linux/if_alg.h>
    #include <sys/socket.h>
    #include <unistd.h>

    int main()
    {
            int algfd, reqfd;
            struct sockaddr_alg addr = {
                    .salg_type = "skcipher",
                    .salg_name = "salsa20",
            };
            char key[16] = { 0 };

            algfd = socket(AF_ALG, SOCK_SEQPACKET, 0);
            bind(algfd, (void *)&addr, sizeof(addr));
            reqfd = accept(algfd, 0, 0);
            setsockopt(algfd, SOL_ALG, ALG_SET_KEY, key, sizeof(key));
            read(reqfd, key, sizeof(key));
    }

Reported-by: syzbot <syzkaller@googlegroups.com>
Fixes: eb6f13eb9f81 ("[CRYPTO] salsa20_generic: Fix multi-page processing")
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/x86/crypto/salsa20_glue.c |    7 -------
 crypto/salsa20_generic.c       |    7 -------
 2 files changed, 14 deletions(-)

--- a/arch/x86/crypto/salsa20_glue.c
+++ b/arch/x86/crypto/salsa20_glue.c
@@ -59,13 +59,6 @@ static int encrypt(struct blkcipher_desc
 
 	salsa20_ivsetup(ctx, walk.iv);
 
-	if (likely(walk.nbytes == nbytes))
-	{
-		salsa20_encrypt_bytes(ctx, walk.src.virt.addr,
-				      walk.dst.virt.addr, nbytes);
-		return blkcipher_walk_done(desc, &walk, 0);
-	}
-
 	while (walk.nbytes >= 64) {
 		salsa20_encrypt_bytes(ctx, walk.src.virt.addr,
 				      walk.dst.virt.addr,
--- a/crypto/salsa20_generic.c
+++ b/crypto/salsa20_generic.c
@@ -188,13 +188,6 @@ static int encrypt(struct blkcipher_desc
 
 	salsa20_ivsetup(ctx, walk.iv);
 
-	if (likely(walk.nbytes == nbytes))
-	{
-		salsa20_encrypt_bytes(ctx, walk.dst.virt.addr,
-				      walk.src.virt.addr, nbytes);
-		return blkcipher_walk_done(desc, &walk, 0);
-	}
-
 	while (walk.nbytes >= 64) {
 		salsa20_encrypt_bytes(ctx, walk.dst.virt.addr,
 				      walk.src.virt.addr,

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

* [PATCH 4.14 006/178] crypto: af_alg - fix NULL pointer dereference in
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (4 preceding siblings ...)
  2017-12-18 15:47 ` [PATCH 4.14 005/178] crypto: salsa20 - fix blkcipher_walk API usage Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 007/178] cifs: fix NULL deref in SMB2_read Greg Kroah-Hartman
                   ` (156 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, syzbot, Eric Biggers,
	Stephan Mueller, Herbert Xu

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

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

From: Eric Biggers <ebiggers@google.com>

commit 887207ed9e5812ed9239b6d07185a2d35dda91db upstream.

 af_alg_free_areq_sgls()

If allocating the ->tsgl member of 'struct af_alg_async_req' failed,
during cleanup we dereferenced the NULL ->tsgl pointer in
af_alg_free_areq_sgls(), because ->tsgl_entries was nonzero.

Fix it by only freeing the ->tsgl list if it is non-NULL.

This affected both algif_skcipher and algif_aead.

Fixes: e870456d8e7c ("crypto: algif_skcipher - overhaul memory management")
Fixes: d887c52d6ae4 ("crypto: algif_aead - overhaul memory management")
Reported-by: syzbot <syzkaller@googlegroups.com>
Signed-off-by: Eric Biggers <ebiggers@google.com>
Reviewed-by: Stephan Mueller <smueller@chronox.de>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 crypto/af_alg.c |   13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

--- a/crypto/af_alg.c
+++ b/crypto/af_alg.c
@@ -699,14 +699,15 @@ void af_alg_free_areq_sgls(struct af_alg
 	}
 
 	tsgl = areq->tsgl;
-	for_each_sg(tsgl, sg, areq->tsgl_entries, i) {
-		if (!sg_page(sg))
-			continue;
-		put_page(sg_page(sg));
-	}
+	if (tsgl) {
+		for_each_sg(tsgl, sg, areq->tsgl_entries, i) {
+			if (!sg_page(sg))
+				continue;
+			put_page(sg_page(sg));
+		}
 
-	if (areq->tsgl && areq->tsgl_entries)
 		sock_kfree_s(sk, tsgl, areq->tsgl_entries * sizeof(*tsgl));
+	}
 }
 EXPORT_SYMBOL_GPL(af_alg_free_areq_sgls);
 

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

* [PATCH 4.14 007/178] cifs: fix NULL deref in SMB2_read
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (5 preceding siblings ...)
  2017-12-18 15:47 ` [PATCH 4.14 006/178] crypto: af_alg - fix NULL pointer dereference in Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 008/178] string.h: workaround for increased stack usage Greg Kroah-Hartman
                   ` (155 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Ronnie Sahlberg, Pavel Shilovsky,
	Steve French

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

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

From: Ronnie Sahlberg <lsahlber@redhat.com>

commit a821df3f1af72aa6a0d573eea94a7dd2613e9f4e upstream.

Signed-off-by: Ronnie Sahlberg <lsahlber@redhat.com>
Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com>
Signed-off-by: Steve French <smfrench@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/cifs/smb2pdu.c |   30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)

--- a/fs/cifs/smb2pdu.c
+++ b/fs/cifs/smb2pdu.c
@@ -2678,27 +2678,27 @@ SMB2_read(const unsigned int xid, struct
 	cifs_small_buf_release(req);
 
 	rsp = (struct smb2_read_rsp *)rsp_iov.iov_base;
-	shdr = get_sync_hdr(rsp);
 
-	if (shdr->Status == STATUS_END_OF_FILE) {
+	if (rc) {
+		if (rc != -ENODATA) {
+			cifs_stats_fail_inc(io_parms->tcon, SMB2_READ_HE);
+			cifs_dbg(VFS, "Send error in read = %d\n", rc);
+		}
 		free_rsp_buf(resp_buftype, rsp_iov.iov_base);
-		return 0;
+		return rc == -ENODATA ? 0 : rc;
 	}
 
-	if (rc) {
-		cifs_stats_fail_inc(io_parms->tcon, SMB2_READ_HE);
-		cifs_dbg(VFS, "Send error in read = %d\n", rc);
-	} else {
-		*nbytes = le32_to_cpu(rsp->DataLength);
-		if ((*nbytes > CIFS_MAX_MSGSIZE) ||
-		    (*nbytes > io_parms->length)) {
-			cifs_dbg(FYI, "bad length %d for count %d\n",
-				 *nbytes, io_parms->length);
-			rc = -EIO;
-			*nbytes = 0;
-		}
+	*nbytes = le32_to_cpu(rsp->DataLength);
+	if ((*nbytes > CIFS_MAX_MSGSIZE) ||
+	    (*nbytes > io_parms->length)) {
+		cifs_dbg(FYI, "bad length %d for count %d\n",
+			 *nbytes, io_parms->length);
+		rc = -EIO;
+		*nbytes = 0;
 	}
 
+	shdr = get_sync_hdr(rsp);
+
 	if (*buf) {
 		memcpy(*buf, (char *)shdr + rsp->DataOffset, *nbytes);
 		free_rsp_buf(resp_buftype, rsp_iov.iov_base);

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

* [PATCH 4.14 008/178] string.h: workaround for increased stack usage
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (6 preceding siblings ...)
  2017-12-18 15:47 ` [PATCH 4.14 007/178] cifs: fix NULL deref in SMB2_read Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 009/178] autofs: fix careless error in recent commit Greg Kroah-Hartman
                   ` (154 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Arnd Bergmann, Kees Cook,
	Mauro Carvalho Chehab, Dmitry Vyukov, Alexander Potapenko,
	Andrey Ryabinin, Daniel Micay, Martin Wilck, Dan Williams,
	Andrew Morton, Linus Torvalds

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

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

From: Arnd Bergmann <arnd@arndb.de>

commit 146734b091430c80d80bb96b1139a96fb4bc830e upstream.

The hardened strlen() function causes rather large stack usage in at
least one file in the kernel, in particular when CONFIG_KASAN is
enabled:

  drivers/media/usb/em28xx/em28xx-dvb.c: In function 'em28xx_dvb_init':
  drivers/media/usb/em28xx/em28xx-dvb.c:2062:1: error: the frame size of 3256 bytes is larger than 204 bytes [-Werror=frame-larger-than=]

Analyzing this problem led to the discovery that gcc fails to merge the
stack slots for the i2c_board_info[] structures after we strlcpy() into
them, due to the 'noreturn' attribute on the source string length check.

I reported this as a gcc bug, but it is unlikely to get fixed for gcc-8,
since it is relatively easy to work around, and it gets triggered
rarely.  An earlier workaround I did added an empty inline assembly
statement before the call to fortify_panic(), which works surprisingly
well, but is really ugly and unintuitive.

This is a new approach to the same problem, this time addressing it by
not calling the 'extern __real_strnlen()' function for string constants
where __builtin_strlen() is a compile-time constant and therefore known
to be safe.

We do this by checking if the last character in the string is a
compile-time constant '\0'.  If it is, we can assume that strlen() of
the string is also constant.

As a side-effect, this should also improve the object code output for
any other call of strlen() on a string constant.

[akpm@linux-foundation.org: add comment]
Link: http://lkml.kernel.org/r/20171205215143.3085755-1-arnd@arndb.de
Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82365
Link: https://patchwork.kernel.org/patch/9980413/
Link: https://patchwork.kernel.org/patch/9974047/
Fixes: 6974f0c4555 ("include/linux/string.h: add the option of fortified string.h functions")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: Kees Cook <keescook@chromium.org>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: Alexander Potapenko <glider@google.com>
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
Cc: Daniel Micay <danielmicay@gmail.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Martin Wilck <mwilck@suse.com>
Cc: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 include/linux/string.h |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

--- a/include/linux/string.h
+++ b/include/linux/string.h
@@ -259,7 +259,10 @@ __FORTIFY_INLINE __kernel_size_t strlen(
 {
 	__kernel_size_t ret;
 	size_t p_size = __builtin_object_size(p, 0);
-	if (p_size == (size_t)-1)
+
+	/* Work around gcc excess stack consumption issue */
+	if (p_size == (size_t)-1 ||
+	    (__builtin_constant_p(p[p_size - 1]) && p[p_size - 1] == '\0'))
 		return __builtin_strlen(p);
 	ret = strnlen(p, p_size);
 	if (p_size <= ret)

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

* [PATCH 4.14 009/178] autofs: fix careless error in recent commit
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (7 preceding siblings ...)
  2017-12-18 15:47 ` [PATCH 4.14 008/178] string.h: workaround for increased stack usage Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 010/178] kernel: make groups_sort calling a responsibility group_info allocators Greg Kroah-Hartman
                   ` (153 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Ben Hutchings, NeilBrown, Ian Kent,
	Andrew Morton, Linus Torvalds

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

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

From: NeilBrown <neilb@suse.com>

commit 302ec300ef8a545a7fc7f667e5fd743b091c2eeb upstream.

Commit ecc0c469f277 ("autofs: don't fail mount for transient error") was
meant to replace an 'if' with a 'switch', but instead added the 'switch'
leaving the case in place.

Link: http://lkml.kernel.org/r/87zi6wstmw.fsf@notabene.neil.brown.name
Fixes: ecc0c469f277 ("autofs: don't fail mount for transient error")
Reported-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
Signed-off-by: NeilBrown <neilb@suse.com>
Cc: Ian Kent <raven@themaw.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/autofs4/waitq.c |    1 -
 1 file changed, 1 deletion(-)

--- a/fs/autofs4/waitq.c
+++ b/fs/autofs4/waitq.c
@@ -170,7 +170,6 @@ static void autofs4_notify_daemon(struct
 
 	mutex_unlock(&sbi->wq_mutex);
 
-	if (autofs4_write(sbi, pipe, &pkt, pktsz))
 	switch (ret = autofs4_write(sbi, pipe, &pkt, pktsz)) {
 	case 0:
 		break;

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

* [PATCH 4.14 010/178] kernel: make groups_sort calling a responsibility group_info allocators
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (8 preceding siblings ...)
  2017-12-18 15:47 ` [PATCH 4.14 009/178] autofs: fix careless error in recent commit Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 011/178] mm, oom_reaper: fix memory corruption Greg Kroah-Hartman
                   ` (152 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Thiago Rafael Becker, Matthew Wilcox,
	NeilBrown, J. Bruce Fields, Al Viro, Martin Schwidefsky,
	Andrew Morton, Linus Torvalds

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

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

From: Thiago Rafael Becker <thiago.becker@gmail.com>

commit bdcf0a423ea1c40bbb40e7ee483b50fc8aa3d758 upstream.

In testing, we found that nfsd threads may call set_groups in parallel
for the same entry cached in auth.unix.gid, racing in the call of
groups_sort, corrupting the groups for that entry and leading to
permission denials for the client.

This patch:
 - Make groups_sort globally visible.
 - Move the call to groups_sort to the modifiers of group_info
 - Remove the call to groups_sort from set_groups

Link: http://lkml.kernel.org/r/20171211151420.18655-1-thiago.becker@gmail.com
Signed-off-by: Thiago Rafael Becker <thiago.becker@gmail.com>
Reviewed-by: Matthew Wilcox <mawilcox@microsoft.com>
Reviewed-by: NeilBrown <neilb@suse.com>
Acked-by: "J. Bruce Fields" <bfields@fieldses.org>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/s390/kernel/compat_linux.c   |    1 +
 fs/nfsd/auth.c                    |    3 +++
 include/linux/cred.h              |    1 +
 kernel/groups.c                   |    5 +++--
 kernel/uid16.c                    |    1 +
 net/sunrpc/auth_gss/gss_rpc_xdr.c |    1 +
 net/sunrpc/auth_gss/svcauth_gss.c |    1 +
 net/sunrpc/svcauth_unix.c         |    2 ++
 8 files changed, 13 insertions(+), 2 deletions(-)

--- a/arch/s390/kernel/compat_linux.c
+++ b/arch/s390/kernel/compat_linux.c
@@ -263,6 +263,7 @@ COMPAT_SYSCALL_DEFINE2(s390_setgroups16,
 		return retval;
 	}
 
+	groups_sort(group_info);
 	retval = set_current_groups(group_info);
 	put_group_info(group_info);
 
--- a/fs/nfsd/auth.c
+++ b/fs/nfsd/auth.c
@@ -60,6 +60,9 @@ int nfsd_setuser(struct svc_rqst *rqstp,
 				gi->gid[i] = exp->ex_anon_gid;
 			else
 				gi->gid[i] = rqgi->gid[i];
+
+			/* Each thread allocates its own gi, no race */
+			groups_sort(gi);
 		}
 	} else {
 		gi = get_group_info(rqgi);
--- a/include/linux/cred.h
+++ b/include/linux/cred.h
@@ -83,6 +83,7 @@ extern int set_current_groups(struct gro
 extern void set_groups(struct cred *, struct group_info *);
 extern int groups_search(const struct group_info *, kgid_t);
 extern bool may_setgroups(void);
+extern void groups_sort(struct group_info *);
 
 /*
  * The security context of a task
--- a/kernel/groups.c
+++ b/kernel/groups.c
@@ -86,11 +86,12 @@ static int gid_cmp(const void *_a, const
 	return gid_gt(a, b) - gid_lt(a, b);
 }
 
-static void groups_sort(struct group_info *group_info)
+void groups_sort(struct group_info *group_info)
 {
 	sort(group_info->gid, group_info->ngroups, sizeof(*group_info->gid),
 	     gid_cmp, NULL);
 }
+EXPORT_SYMBOL(groups_sort);
 
 /* a simple bsearch */
 int groups_search(const struct group_info *group_info, kgid_t grp)
@@ -122,7 +123,6 @@ int groups_search(const struct group_inf
 void set_groups(struct cred *new, struct group_info *group_info)
 {
 	put_group_info(new->group_info);
-	groups_sort(group_info);
 	get_group_info(group_info);
 	new->group_info = group_info;
 }
@@ -206,6 +206,7 @@ SYSCALL_DEFINE2(setgroups, int, gidsetsi
 		return retval;
 	}
 
+	groups_sort(group_info);
 	retval = set_current_groups(group_info);
 	put_group_info(group_info);
 
--- a/kernel/uid16.c
+++ b/kernel/uid16.c
@@ -192,6 +192,7 @@ SYSCALL_DEFINE2(setgroups16, int, gidset
 		return retval;
 	}
 
+	groups_sort(group_info);
 	retval = set_current_groups(group_info);
 	put_group_info(group_info);
 
--- a/net/sunrpc/auth_gss/gss_rpc_xdr.c
+++ b/net/sunrpc/auth_gss/gss_rpc_xdr.c
@@ -231,6 +231,7 @@ static int gssx_dec_linux_creds(struct x
 			goto out_free_groups;
 		creds->cr_group_info->gid[i] = kgid;
 	}
+	groups_sort(creds->cr_group_info);
 
 	return 0;
 out_free_groups:
--- a/net/sunrpc/auth_gss/svcauth_gss.c
+++ b/net/sunrpc/auth_gss/svcauth_gss.c
@@ -481,6 +481,7 @@ static int rsc_parse(struct cache_detail
 				goto out;
 			rsci.cred.cr_group_info->gid[i] = kgid;
 		}
+		groups_sort(rsci.cred.cr_group_info);
 
 		/* mech name */
 		len = qword_get(&mesg, buf, mlen);
--- a/net/sunrpc/svcauth_unix.c
+++ b/net/sunrpc/svcauth_unix.c
@@ -520,6 +520,7 @@ static int unix_gid_parse(struct cache_d
 		ug.gi->gid[i] = kgid;
 	}
 
+	groups_sort(ug.gi);
 	ugp = unix_gid_lookup(cd, uid);
 	if (ugp) {
 		struct cache_head *ch;
@@ -819,6 +820,7 @@ svcauth_unix_accept(struct svc_rqst *rqs
 		kgid_t kgid = make_kgid(&init_user_ns, svc_getnl(argv));
 		cred->cr_group_info->gid[i] = kgid;
 	}
+	groups_sort(cred->cr_group_info);
 	if (svc_getu32(argv) != htonl(RPC_AUTH_NULL) || svc_getu32(argv) != 0) {
 		*authp = rpc_autherr_badverf;
 		return SVC_DENIED;

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

* [PATCH 4.14 011/178] mm, oom_reaper: fix memory corruption
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (9 preceding siblings ...)
  2017-12-18 15:47 ` [PATCH 4.14 010/178] kernel: make groups_sort calling a responsibility group_info allocators Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 012/178] tracing: Allocate mask_str buffer dynamically Greg Kroah-Hartman
                   ` (151 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Michal Hocko, David Rientjes,
	Tetsuo Handa, Andrea Argangeli, Andrew Morton, Linus Torvalds

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

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

From: Michal Hocko <mhocko@suse.com>

commit 4837fe37adff1d159904f0c013471b1ecbcb455e upstream.

David Rientjes has reported the following memory corruption while the
oom reaper tries to unmap the victims address space

  BUG: Bad page map in process oom_reaper  pte:6353826300000000 pmd:00000000
  addr:00007f50cab1d000 vm_flags:08100073 anon_vma:ffff9eea335603f0 mapping:          (null) index:7f50cab1d
  file:          (null) fault:          (null) mmap:          (null) readpage:          (null)
  CPU: 2 PID: 1001 Comm: oom_reaper
  Call Trace:
     unmap_page_range+0x1068/0x1130
     __oom_reap_task_mm+0xd5/0x16b
     oom_reaper+0xff/0x14c
     kthread+0xc1/0xe0

Tetsuo Handa has noticed that the synchronization inside exit_mmap is
insufficient.  We only synchronize with the oom reaper if
tsk_is_oom_victim which is not true if the final __mmput is called from
a different context than the oom victim exit path.  This can trivially
happen from context of any task which has grabbed mm reference (e.g.  to
read /proc/<pid>/ file which requires mm etc.).

The race would look like this

  oom_reaper		oom_victim		task
						mmget_not_zero
			do_exit
			  mmput
  __oom_reap_task_mm				mmput
  						  __mmput
						    exit_mmap
						      remove_vma
    unmap_page_range

Fix this issue by providing a new mm_is_oom_victim() helper which
operates on the mm struct rather than a task.  Any context which
operates on a remote mm struct should use this helper in place of
tsk_is_oom_victim.  The flag is set in mark_oom_victim and never cleared
so it is stable in the exit_mmap path.

Debugged by Tetsuo Handa.

Link: http://lkml.kernel.org/r/20171210095130.17110-1-mhocko@kernel.org
Fixes: 212925802454 ("mm: oom: let oom_reap_task and exit_mmap run concurrently")
Signed-off-by: Michal Hocko <mhocko@suse.com>
Reported-by: David Rientjes <rientjes@google.com>
Acked-by: David Rientjes <rientjes@google.com>
Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Cc: Andrea Argangeli <andrea@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 include/linux/oom.h            |    9 +++++++++
 include/linux/sched/coredump.h |    1 +
 mm/mmap.c                      |   10 +++++-----
 mm/oom_kill.c                  |    4 +++-
 4 files changed, 18 insertions(+), 6 deletions(-)

--- a/include/linux/oom.h
+++ b/include/linux/oom.h
@@ -67,6 +67,15 @@ static inline bool tsk_is_oom_victim(str
 }
 
 /*
+ * Use this helper if tsk->mm != mm and the victim mm needs a special
+ * handling. This is guaranteed to stay true after once set.
+ */
+static inline bool mm_is_oom_victim(struct mm_struct *mm)
+{
+	return test_bit(MMF_OOM_VICTIM, &mm->flags);
+}
+
+/*
  * Checks whether a page fault on the given mm is still reliable.
  * This is no longer true if the oom reaper started to reap the
  * address space which is reflected by MMF_UNSTABLE flag set in
--- a/include/linux/sched/coredump.h
+++ b/include/linux/sched/coredump.h
@@ -70,6 +70,7 @@ static inline int get_dumpable(struct mm
 #define MMF_UNSTABLE		22	/* mm is unstable for copy_from_user */
 #define MMF_HUGE_ZERO_PAGE	23      /* mm has ever used the global huge zero page */
 #define MMF_DISABLE_THP		24	/* disable THP for all VMAs */
+#define MMF_OOM_VICTIM		25	/* mm is the oom victim */
 #define MMF_DISABLE_THP_MASK	(1 << MMF_DISABLE_THP)
 
 #define MMF_INIT_MASK		(MMF_DUMPABLE_MASK | MMF_DUMP_FILTER_MASK |\
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -3004,20 +3004,20 @@ void exit_mmap(struct mm_struct *mm)
 	/* Use -1 here to ensure all VMAs in the mm are unmapped */
 	unmap_vmas(&tlb, vma, 0, -1);
 
-	set_bit(MMF_OOM_SKIP, &mm->flags);
-	if (unlikely(tsk_is_oom_victim(current))) {
+	if (unlikely(mm_is_oom_victim(mm))) {
 		/*
 		 * Wait for oom_reap_task() to stop working on this
 		 * mm. Because MMF_OOM_SKIP is already set before
 		 * calling down_read(), oom_reap_task() will not run
 		 * on this "mm" post up_write().
 		 *
-		 * tsk_is_oom_victim() cannot be set from under us
-		 * either because current->mm is already set to NULL
+		 * mm_is_oom_victim() cannot be set from under us
+		 * either because victim->mm is already set to NULL
 		 * under task_lock before calling mmput and oom_mm is
-		 * set not NULL by the OOM killer only if current->mm
+		 * set not NULL by the OOM killer only if victim->mm
 		 * is found not NULL while holding the task_lock.
 		 */
+		set_bit(MMF_OOM_SKIP, &mm->flags);
 		down_write(&mm->mmap_sem);
 		up_write(&mm->mmap_sem);
 	}
--- a/mm/oom_kill.c
+++ b/mm/oom_kill.c
@@ -673,8 +673,10 @@ static void mark_oom_victim(struct task_
 		return;
 
 	/* oom_mm is bound to the signal struct life time. */
-	if (!cmpxchg(&tsk->signal->oom_mm, NULL, mm))
+	if (!cmpxchg(&tsk->signal->oom_mm, NULL, mm)) {
 		mmgrab(tsk->signal->oom_mm);
+		set_bit(MMF_OOM_VICTIM, &mm->flags);
+	}
 
 	/*
 	 * Make sure that the task is woken up from uninterruptible sleep

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

* [PATCH 4.14 012/178] tracing: Allocate mask_str buffer dynamically
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (10 preceding siblings ...)
  2017-12-18 15:47 ` [PATCH 4.14 011/178] mm, oom_reaper: fix memory corruption Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 013/178] USB: uas and storage: Add US_FL_BROKEN_FUA for another JMicron JMS567 ID Greg Kroah-Hartman
                   ` (150 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Changbin Du, Steven Rostedt (VMware)

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

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

From: Changbin Du <changbin.du@intel.com>

commit 90e406f96f630c07d631a021fd4af10aac913e77 upstream.

The default NR_CPUS can be very large, but actual possible nr_cpu_ids
usually is very small. For my x86 distribution, the NR_CPUS is 8192 and
nr_cpu_ids is 4. About 2 pages are wasted.

Most machines don't have so many CPUs, so define a array with NR_CPUS
just wastes memory. So let's allocate the buffer dynamically when need.

With this change, the mutext tracing_cpumask_update_lock also can be
removed now, which was used to protect mask_str.

Link: http://lkml.kernel.org/r/1512013183-19107-1-git-send-email-changbin.du@intel.com

Fixes: 36dfe9252bd4c ("ftrace: make use of tracing_cpumask")
Signed-off-by: Changbin Du <changbin.du@intel.com>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 kernel/trace/trace.c |   29 +++++++++--------------------
 1 file changed, 9 insertions(+), 20 deletions(-)

--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -4178,37 +4178,30 @@ static const struct file_operations show
 	.llseek		= seq_lseek,
 };
 
-/*
- * The tracer itself will not take this lock, but still we want
- * to provide a consistent cpumask to user-space:
- */
-static DEFINE_MUTEX(tracing_cpumask_update_lock);
-
-/*
- * Temporary storage for the character representation of the
- * CPU bitmask (and one more byte for the newline):
- */
-static char mask_str[NR_CPUS + 1];
-
 static ssize_t
 tracing_cpumask_read(struct file *filp, char __user *ubuf,
 		     size_t count, loff_t *ppos)
 {
 	struct trace_array *tr = file_inode(filp)->i_private;
+	char *mask_str;
 	int len;
 
-	mutex_lock(&tracing_cpumask_update_lock);
+	len = snprintf(NULL, 0, "%*pb\n",
+		       cpumask_pr_args(tr->tracing_cpumask)) + 1;
+	mask_str = kmalloc(len, GFP_KERNEL);
+	if (!mask_str)
+		return -ENOMEM;
 
-	len = snprintf(mask_str, count, "%*pb\n",
+	len = snprintf(mask_str, len, "%*pb\n",
 		       cpumask_pr_args(tr->tracing_cpumask));
 	if (len >= count) {
 		count = -EINVAL;
 		goto out_err;
 	}
-	count = simple_read_from_buffer(ubuf, count, ppos, mask_str, NR_CPUS+1);
+	count = simple_read_from_buffer(ubuf, count, ppos, mask_str, len);
 
 out_err:
-	mutex_unlock(&tracing_cpumask_update_lock);
+	kfree(mask_str);
 
 	return count;
 }
@@ -4228,8 +4221,6 @@ tracing_cpumask_write(struct file *filp,
 	if (err)
 		goto err_unlock;
 
-	mutex_lock(&tracing_cpumask_update_lock);
-
 	local_irq_disable();
 	arch_spin_lock(&tr->max_lock);
 	for_each_tracing_cpu(cpu) {
@@ -4252,8 +4243,6 @@ tracing_cpumask_write(struct file *filp,
 	local_irq_enable();
 
 	cpumask_copy(tr->tracing_cpumask, tracing_cpumask_new);
-
-	mutex_unlock(&tracing_cpumask_update_lock);
 	free_cpumask_var(tracing_cpumask_new);
 
 	return count;

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

* [PATCH 4.14 013/178] USB: uas and storage: Add US_FL_BROKEN_FUA for another JMicron JMS567 ID
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (11 preceding siblings ...)
  2017-12-18 15:47 ` [PATCH 4.14 012/178] tracing: Allocate mask_str buffer dynamically Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 014/178] USB: core: prevent malicious bNumInterfaces overflow Greg Kroah-Hartman
                   ` (149 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, David Kozub, Alan Stern

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

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

From: David Kozub <zub@linux.fjfi.cvut.cz>

commit 62354454625741f0569c2cbe45b2d192f8fd258e upstream.

There is another JMS567-based USB3 UAS enclosure (152d:0578) that fails
with the following error:

[sda] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[sda] tag#0 Sense Key : Illegal Request [current]
[sda] tag#0 Add. Sense: Invalid field in cdb

The issue occurs both with UAS (occasionally) and mass storage
(immediately after mounting a FS on a disk in the enclosure).

Enabling US_FL_BROKEN_FUA quirk solves this issue.

This patch adds an UNUSUAL_DEV with US_FL_BROKEN_FUA for the enclosure
for both UAS and mass storage.

Signed-off-by: David Kozub <zub@linux.fjfi.cvut.cz>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/storage/unusual_devs.h |    7 +++++++
 drivers/usb/storage/unusual_uas.h  |    7 +++++++
 2 files changed, 14 insertions(+)

--- a/drivers/usb/storage/unusual_devs.h
+++ b/drivers/usb/storage/unusual_devs.h
@@ -2113,6 +2113,13 @@ UNUSUAL_DEV(  0x152d, 0x0567, 0x0114, 0x
 		USB_SC_DEVICE, USB_PR_DEVICE, NULL,
 		US_FL_BROKEN_FUA ),
 
+/* Reported by David Kozub <zub@linux.fjfi.cvut.cz> */
+UNUSUAL_DEV(0x152d, 0x0578, 0x0000, 0x9999,
+		"JMicron",
+		"JMS567",
+		USB_SC_DEVICE, USB_PR_DEVICE, NULL,
+		US_FL_BROKEN_FUA),
+
 /*
  * Reported by Alexandre Oliva <oliva@lsd.ic.unicamp.br>
  * JMicron responds to USN and several other SCSI ioctls with a
--- a/drivers/usb/storage/unusual_uas.h
+++ b/drivers/usb/storage/unusual_uas.h
@@ -142,6 +142,13 @@ UNUSUAL_DEV(0x152d, 0x0567, 0x0000, 0x99
 		USB_SC_DEVICE, USB_PR_DEVICE, NULL,
 		US_FL_BROKEN_FUA | US_FL_NO_REPORT_OPCODES),
 
+/* Reported-by: David Kozub <zub@linux.fjfi.cvut.cz> */
+UNUSUAL_DEV(0x152d, 0x0578, 0x0000, 0x9999,
+		"JMicron",
+		"JMS567",
+		USB_SC_DEVICE, USB_PR_DEVICE, NULL,
+		US_FL_BROKEN_FUA),
+
 /* Reported-by: Hans de Goede <hdegoede@redhat.com> */
 UNUSUAL_DEV(0x2109, 0x0711, 0x0000, 0x9999,
 		"VIA",

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

* [PATCH 4.14 014/178] USB: core: prevent malicious bNumInterfaces overflow
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (12 preceding siblings ...)
  2017-12-18 15:47 ` [PATCH 4.14 013/178] USB: uas and storage: Add US_FL_BROKEN_FUA for another JMicron JMS567 ID Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 015/178] ovl: Pass ovl_get_nlink() parameters in right order Greg Kroah-Hartman
                   ` (148 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Alan Stern, Andrey Konovalov

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

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

From: Alan Stern <stern@rowland.harvard.edu>

commit 48a4ff1c7bb5a32d2e396b03132d20d552c0eca7 upstream.

A malicious USB device with crafted descriptors can cause the kernel
to access unallocated memory by setting the bNumInterfaces value too
high in a configuration descriptor.  Although the value is adjusted
during parsing, this adjustment is skipped in one of the error return
paths.

This patch prevents the problem by setting bNumInterfaces to 0
initially.  The existing code already sets it to the proper value
after parsing is complete.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Reported-by: Andrey Konovalov <andreyknvl@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/core/config.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

--- a/drivers/usb/core/config.c
+++ b/drivers/usb/core/config.c
@@ -555,6 +555,9 @@ static int usb_parse_configuration(struc
 	unsigned iad_num = 0;
 
 	memcpy(&config->desc, buffer, USB_DT_CONFIG_SIZE);
+	nintf = nintf_orig = config->desc.bNumInterfaces;
+	config->desc.bNumInterfaces = 0;	// Adjusted later
+
 	if (config->desc.bDescriptorType != USB_DT_CONFIG ||
 	    config->desc.bLength < USB_DT_CONFIG_SIZE ||
 	    config->desc.bLength > size) {
@@ -568,7 +571,6 @@ static int usb_parse_configuration(struc
 	buffer += config->desc.bLength;
 	size -= config->desc.bLength;
 
-	nintf = nintf_orig = config->desc.bNumInterfaces;
 	if (nintf > USB_MAXINTERFACES) {
 		dev_warn(ddev, "config %d has too many interfaces: %d, "
 		    "using maximum allowed: %d\n",

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

* [PATCH 4.14 015/178] ovl: Pass ovl_get_nlink() parameters in right order
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (13 preceding siblings ...)
  2017-12-18 15:47 ` [PATCH 4.14 014/178] USB: core: prevent malicious bNumInterfaces overflow Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 016/178] ovl: update ctx->pos on impure dir iteration Greg Kroah-Hartman
                   ` (147 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Vivek Goyal, Amir Goldstein, Miklos Szeredi

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

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

From: Vivek Goyal <vgoyal@redhat.com>

commit 08d8f8a5b094b66b29936e8751b4a818b8db1207 upstream.

Right now we seem to be passing index as "lowerdentry" and origin.dentry
as "upperdentry". IIUC, we should pass these parameters in reversed order
and this looks like a bug.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
Acked-by: Amir Goldstein <amir73il@gmail.com>
Fixes: caf70cb2ba5d ("ovl: cleanup orphan index entries")
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/overlayfs/namei.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/fs/overlayfs/namei.c
+++ b/fs/overlayfs/namei.c
@@ -437,7 +437,7 @@ int ovl_verify_index(struct dentry *inde
 
 	/* Check if index is orphan and don't warn before cleaning it */
 	if (d_inode(index)->i_nlink == 1 &&
-	    ovl_get_nlink(index, origin.dentry, 0) == 0)
+	    ovl_get_nlink(origin.dentry, index, 0) == 0)
 		err = -ENOENT;
 
 	dput(origin.dentry);

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

* [PATCH 4.14 016/178] ovl: update ctx->pos on impure dir iteration
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (14 preceding siblings ...)
  2017-12-18 15:47 ` [PATCH 4.14 015/178] ovl: Pass ovl_get_nlink() parameters in right order Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 017/178] usbip: fix stub_rx: get_pipe() to validate endpoint number Greg Kroah-Hartman
                   ` (146 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Miguel Bernal Marin, Amir Goldstein,
	Miklos Szeredi

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

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

From: Amir Goldstein <amir73il@gmail.com>

commit b02a16e6413a2f782e542ef60bad9ff6bf212f8a upstream.

This fixes a regression with readdir of impure dir in overlayfs
that is shared to VM via 9p fs.

Reported-by: Miguel Bernal Marin <miguel.bernal.marin@linux.intel.com>
Fixes: 4edb83bb1041 ("ovl: constant d_ino for non-merge dirs")
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Tested-by: Miguel Bernal Marin <miguel.bernal.marin@linux.intel.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/overlayfs/readdir.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

--- a/fs/overlayfs/readdir.c
+++ b/fs/overlayfs/readdir.c
@@ -645,7 +645,10 @@ static int ovl_iterate_real(struct file
 			return PTR_ERR(rdt.cache);
 	}
 
-	return iterate_dir(od->realfile, &rdt.ctx);
+	err = iterate_dir(od->realfile, &rdt.ctx);
+	ctx->pos = rdt.ctx.pos;
+
+	return err;
 }
 
 

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

* [PATCH 4.14 017/178] usbip: fix stub_rx: get_pipe() to validate endpoint number
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (15 preceding siblings ...)
  2017-12-18 15:47 ` [PATCH 4.14 016/178] ovl: update ctx->pos on impure dir iteration Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 018/178] usbip: fix stub_rx: harden CMD_SUBMIT path to handle malicious input Greg Kroah-Hartman
                   ` (145 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Secunia Research, Shuah Khan

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

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

From: Shuah Khan <shuahkh@osg.samsung.com>

commit 635f545a7e8be7596b9b2b6a43cab6bbd5a88e43 upstream.

get_pipe() routine doesn't validate the input endpoint number
and uses to reference ep_in and ep_out arrays. Invalid endpoint
number can trigger BUG(). Range check the epnum and returning
error instead of calling BUG().

Change caller stub_recv_cmd_submit() to handle the get_pipe()
error return.

Reported-by: Secunia Research <vuln@secunia.com>
Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/usbip/stub_rx.c |   18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

--- a/drivers/usb/usbip/stub_rx.c
+++ b/drivers/usb/usbip/stub_rx.c
@@ -342,15 +342,15 @@ static int get_pipe(struct stub_device *
 	struct usb_host_endpoint *ep;
 	struct usb_endpoint_descriptor *epd = NULL;
 
+	if (epnum < 0 || epnum > 15)
+		goto err_ret;
+
 	if (dir == USBIP_DIR_IN)
 		ep = udev->ep_in[epnum & 0x7f];
 	else
 		ep = udev->ep_out[epnum & 0x7f];
-	if (!ep) {
-		dev_err(&sdev->udev->dev, "no such endpoint?, %d\n",
-			epnum);
-		BUG();
-	}
+	if (!ep)
+		goto err_ret;
 
 	epd = &ep->desc;
 	if (usb_endpoint_xfer_control(epd)) {
@@ -381,9 +381,10 @@ static int get_pipe(struct stub_device *
 			return usb_rcvisocpipe(udev, epnum);
 	}
 
+err_ret:
 	/* NOT REACHED */
-	dev_err(&sdev->udev->dev, "get pipe, epnum %d\n", epnum);
-	return 0;
+	dev_err(&sdev->udev->dev, "get pipe() invalid epnum %d\n", epnum);
+	return -1;
 }
 
 static void masking_bogus_flags(struct urb *urb)
@@ -449,6 +450,9 @@ static void stub_recv_cmd_submit(struct
 	struct usb_device *udev = sdev->udev;
 	int pipe = get_pipe(sdev, pdu->base.ep, pdu->base.direction);
 
+	if (pipe == -1)
+		return;
+
 	priv = stub_priv_alloc(sdev, pdu);
 	if (!priv)
 		return;

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

* [PATCH 4.14 018/178] usbip: fix stub_rx: harden CMD_SUBMIT path to handle malicious input
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (16 preceding siblings ...)
  2017-12-18 15:47 ` [PATCH 4.14 017/178] usbip: fix stub_rx: get_pipe() to validate endpoint number Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 019/178] usbip: prevent vhci_hcd driver from leaking a socket pointer address Greg Kroah-Hartman
                   ` (144 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Secunia Research, Shuah Khan

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

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

From: Shuah Khan <shuahkh@osg.samsung.com>

commit c6688ef9f29762e65bce325ef4acd6c675806366 upstream.

Harden CMD_SUBMIT path to handle malicious input that could trigger
large memory allocations. Add checks to validate transfer_buffer_length
and number_of_packets to protect against bad input requesting for
unbounded memory allocations. Validate early in get_pipe() and return
failure.

Reported-by: Secunia Research <vuln@secunia.com>
Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/usbip/stub_rx.c |   35 +++++++++++++++++++++++++++++++----
 1 file changed, 31 insertions(+), 4 deletions(-)

--- a/drivers/usb/usbip/stub_rx.c
+++ b/drivers/usb/usbip/stub_rx.c
@@ -336,11 +336,13 @@ static struct stub_priv *stub_priv_alloc
 	return priv;
 }
 
-static int get_pipe(struct stub_device *sdev, int epnum, int dir)
+static int get_pipe(struct stub_device *sdev, struct usbip_header *pdu)
 {
 	struct usb_device *udev = sdev->udev;
 	struct usb_host_endpoint *ep;
 	struct usb_endpoint_descriptor *epd = NULL;
+	int epnum = pdu->base.ep;
+	int dir = pdu->base.direction;
 
 	if (epnum < 0 || epnum > 15)
 		goto err_ret;
@@ -353,6 +355,15 @@ static int get_pipe(struct stub_device *
 		goto err_ret;
 
 	epd = &ep->desc;
+
+	/* validate transfer_buffer_length */
+	if (pdu->u.cmd_submit.transfer_buffer_length > INT_MAX) {
+		dev_err(&sdev->udev->dev,
+			"CMD_SUBMIT: -EMSGSIZE transfer_buffer_length %d\n",
+			pdu->u.cmd_submit.transfer_buffer_length);
+		return -1;
+	}
+
 	if (usb_endpoint_xfer_control(epd)) {
 		if (dir == USBIP_DIR_OUT)
 			return usb_sndctrlpipe(udev, epnum);
@@ -375,6 +386,21 @@ static int get_pipe(struct stub_device *
 	}
 
 	if (usb_endpoint_xfer_isoc(epd)) {
+		/* validate packet size and number of packets */
+		unsigned int maxp, packets, bytes;
+
+		maxp = usb_endpoint_maxp(epd);
+		maxp *= usb_endpoint_maxp_mult(epd);
+		bytes = pdu->u.cmd_submit.transfer_buffer_length;
+		packets = DIV_ROUND_UP(bytes, maxp);
+
+		if (pdu->u.cmd_submit.number_of_packets < 0 ||
+		    pdu->u.cmd_submit.number_of_packets > packets) {
+			dev_err(&sdev->udev->dev,
+				"CMD_SUBMIT: isoc invalid num packets %d\n",
+				pdu->u.cmd_submit.number_of_packets);
+			return -1;
+		}
 		if (dir == USBIP_DIR_OUT)
 			return usb_sndisocpipe(udev, epnum);
 		else
@@ -383,7 +409,7 @@ static int get_pipe(struct stub_device *
 
 err_ret:
 	/* NOT REACHED */
-	dev_err(&sdev->udev->dev, "get pipe() invalid epnum %d\n", epnum);
+	dev_err(&sdev->udev->dev, "CMD_SUBMIT: invalid epnum %d\n", epnum);
 	return -1;
 }
 
@@ -448,7 +474,7 @@ static void stub_recv_cmd_submit(struct
 	struct stub_priv *priv;
 	struct usbip_device *ud = &sdev->ud;
 	struct usb_device *udev = sdev->udev;
-	int pipe = get_pipe(sdev, pdu->base.ep, pdu->base.direction);
+	int pipe = get_pipe(sdev, pdu);
 
 	if (pipe == -1)
 		return;
@@ -470,7 +496,8 @@ static void stub_recv_cmd_submit(struct
 	}
 
 	/* allocate urb transfer buffer, if needed */
-	if (pdu->u.cmd_submit.transfer_buffer_length > 0) {
+	if (pdu->u.cmd_submit.transfer_buffer_length > 0 &&
+	    pdu->u.cmd_submit.transfer_buffer_length <= INT_MAX) {
 		priv->urb->transfer_buffer =
 			kzalloc(pdu->u.cmd_submit.transfer_buffer_length,
 				GFP_KERNEL);

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

* [PATCH 4.14 019/178] usbip: prevent vhci_hcd driver from leaking a socket pointer address
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (17 preceding siblings ...)
  2017-12-18 15:47 ` [PATCH 4.14 018/178] usbip: fix stub_rx: harden CMD_SUBMIT path to handle malicious input Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 020/178] usbip: fix stub_send_ret_submit() vulnerability to null transfer_buffer Greg Kroah-Hartman
                   ` (143 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Secunia Research, Shuah Khan

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

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

From: Shuah Khan <shuahkh@osg.samsung.com>

commit 2f2d0088eb93db5c649d2a5e34a3800a8a935fc5 upstream.

When a client has a USB device attached over IP, the vhci_hcd driver is
locally leaking a socket pointer address via the

/sys/devices/platform/vhci_hcd/status file (world-readable) and in debug
output when "usbip --debug port" is run.

Fix it to not leak. The socket pointer address is not used at the moment
and it was made visible as a convenient way to find IP address from socket
pointer address by looking up /proc/net/{tcp,tcp6}.

As this opens a security hole, the fix replaces socket pointer address with
sockfd.

Reported-by: Secunia Research <vuln@secunia.com>
Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/usbip/usbip_common.h     |    1 +
 drivers/usb/usbip/vhci_sysfs.c       |   25 ++++++++++++++++---------
 tools/usb/usbip/libsrc/vhci_driver.c |    8 ++++----
 3 files changed, 21 insertions(+), 13 deletions(-)

--- a/drivers/usb/usbip/usbip_common.h
+++ b/drivers/usb/usbip/usbip_common.h
@@ -270,6 +270,7 @@ struct usbip_device {
 	/* lock for status */
 	spinlock_t lock;
 
+	int sockfd;
 	struct socket *tcp_socket;
 
 	struct task_struct *tcp_rx;
--- a/drivers/usb/usbip/vhci_sysfs.c
+++ b/drivers/usb/usbip/vhci_sysfs.c
@@ -31,15 +31,20 @@
 
 /*
  * output example:
- * hub port sta spd dev      socket           local_busid
- * hs  0000 004 000 00000000         c5a7bb80 1-2.3
+ * hub port sta spd dev       sockfd    local_busid
+ * hs  0000 004 000 00000000  3         1-2.3
  * ................................................
- * ss  0008 004 000 00000000         d8cee980 2-3.4
+ * ss  0008 004 000 00000000  4         2-3.4
  * ................................................
  *
- * IP address can be retrieved from a socket pointer address by looking
- * up /proc/net/{tcp,tcp6}. Also, a userland program may remember a
- * port number and its peer IP address.
+ * Output includes socket fd instead of socket pointer address to avoid
+ * leaking kernel memory address in:
+ *	/sys/devices/platform/vhci_hcd.0/status and in debug output.
+ * The socket pointer address is not used at the moment and it was made
+ * visible as a convenient way to find IP address from socket pointer
+ * address by looking up /proc/net/{tcp,tcp6}. As this opens a security
+ * hole, the change is made to use sockfd instead.
+ *
  */
 static void port_show_vhci(char **out, int hub, int port, struct vhci_device *vdev)
 {
@@ -53,8 +58,8 @@ static void port_show_vhci(char **out, i
 	if (vdev->ud.status == VDEV_ST_USED) {
 		*out += sprintf(*out, "%03u %08x ",
 				      vdev->speed, vdev->devid);
-		*out += sprintf(*out, "%16p %s",
-				      vdev->ud.tcp_socket,
+		*out += sprintf(*out, "%u %s",
+				      vdev->ud.sockfd,
 				      dev_name(&vdev->udev->dev));
 
 	} else {
@@ -174,7 +179,8 @@ static ssize_t nports_show(struct device
 	char *s = out;
 
 	/*
-	 * Half the ports are for SPEED_HIGH and half for SPEED_SUPER, thus the * 2.
+	 * Half the ports are for SPEED_HIGH and half for SPEED_SUPER,
+	 * thus the * 2.
 	 */
 	out += sprintf(out, "%d\n", VHCI_PORTS * vhci_num_controllers);
 	return out - s;
@@ -380,6 +386,7 @@ static ssize_t store_attach(struct devic
 
 	vdev->devid         = devid;
 	vdev->speed         = speed;
+	vdev->ud.sockfd     = sockfd;
 	vdev->ud.tcp_socket = socket;
 	vdev->ud.status     = VDEV_ST_NOTASSIGNED;
 
--- a/tools/usb/usbip/libsrc/vhci_driver.c
+++ b/tools/usb/usbip/libsrc/vhci_driver.c
@@ -50,14 +50,14 @@ static int parse_status(const char *valu
 
 	while (*c != '\0') {
 		int port, status, speed, devid;
-		unsigned long socket;
+		int sockfd;
 		char lbusid[SYSFS_BUS_ID_SIZE];
 		struct usbip_imported_device *idev;
 		char hub[3];
 
-		ret = sscanf(c, "%2s  %d %d %d %x %lx %31s\n",
+		ret = sscanf(c, "%2s  %d %d %d %x %u %31s\n",
 				hub, &port, &status, &speed,
-				&devid, &socket, lbusid);
+				&devid, &sockfd, lbusid);
 
 		if (ret < 5) {
 			dbg("sscanf failed: %d", ret);
@@ -66,7 +66,7 @@ static int parse_status(const char *valu
 
 		dbg("hub %s port %d status %d speed %d devid %x",
 				hub, port, status, speed, devid);
-		dbg("socket %lx lbusid %s", socket, lbusid);
+		dbg("sockfd %u lbusid %s", sockfd, lbusid);
 
 		/* if a device is connected, look at it */
 		idev = &vhci_driver->idev[port];

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

* [PATCH 4.14 020/178] usbip: fix stub_send_ret_submit() vulnerability to null transfer_buffer
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (18 preceding siblings ...)
  2017-12-18 15:47 ` [PATCH 4.14 019/178] usbip: prevent vhci_hcd driver from leaking a socket pointer address Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 021/178] mmc: core: apply NO_CMD23 quirk to some specific cards Greg Kroah-Hartman
                   ` (142 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Secunia Research, Shuah Khan

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

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

From: Shuah Khan <shuahkh@osg.samsung.com>

commit be6123df1ea8f01ee2f896a16c2b7be3e4557a5a upstream.

stub_send_ret_submit() handles urb with a potential null transfer_buffer,
when it replays a packet with potential malicious data that could contain
a null buffer. Add a check for the condition when actual_length > 0 and
transfer_buffer is null.

Reported-by: Secunia Research <vuln@secunia.com>
Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/usbip/stub_tx.c |    7 +++++++
 1 file changed, 7 insertions(+)

--- a/drivers/usb/usbip/stub_tx.c
+++ b/drivers/usb/usbip/stub_tx.c
@@ -181,6 +181,13 @@ static int stub_send_ret_submit(struct s
 		memset(&pdu_header, 0, sizeof(pdu_header));
 		memset(&msg, 0, sizeof(msg));
 
+		if (urb->actual_length > 0 && !urb->transfer_buffer) {
+			dev_err(&sdev->udev->dev,
+				"urb: actual_length %d transfer_buffer null\n",
+				urb->actual_length);
+			return -1;
+		}
+
 		if (usb_pipetype(urb->pipe) == PIPE_ISOCHRONOUS)
 			iovnum = 2 + urb->number_of_packets;
 		else

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

* [PATCH 4.14 021/178] mmc: core: apply NO_CMD23 quirk to some specific cards
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (19 preceding siblings ...)
  2017-12-18 15:47 ` [PATCH 4.14 020/178] usbip: fix stub_send_ret_submit() vulnerability to null transfer_buffer Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 022/178] ceph: drop negative child dentries before try pruning inodes alias Greg Kroah-Hartman
                   ` (141 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Christoph Fritz, Ulf Hansson

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

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

From: Christoph Fritz <chf.fritz@googlemail.com>

commit 91516a2a4734614d62ee3ed921f8f88acc67c000 upstream.

To get an usdhc Apacer and some ATP SD cards work reliable, CMD23 needs
to be disabled.  This has been tested on i.MX6 (sdhci-esdhc) and rk3288
(dw_mmc-rockchip).

Without this patch on i.MX6 (sdhci-esdhc):

 $ dd if=/dev/urandom of=/mnt/test bs=1M count=10 conv=fsync

    | <mmc0: starting CMD23 arg 00000400 flags 00000015>
    | mmc0: starting CMD25 arg 00a71f00 flags 000000b5
    | mmc0:     blksz 512 blocks 1024 flags 00000100 tsac 3000 ms nsac 0
    | mmc0:     CMD12 arg 00000000 flags 0000049d
    | sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001
    | mmc0: Timeout waiting for hardware interrupt.

Without this patch on rk3288 (dw_mmc-rockchip):

    | mmc1: Card stuck in programming state! mmcblk1 card_busy_detect
    | dwmmc_rockchip ff0c0000.dwmmc: Busy; trying anyway
    | mmc_host mmc1: Bus speed (slot 0) = 400000Hz (slot req 400000Hz,
    | actual 400000HZ div = 0)
    | mmc1: card never left busy state
    | mmc1: tried to reset card, got error -110
    | blk_update_request: I/O error, dev mmcblk1, sector 139778
    | Buffer I/O error on dev mmcblk1p1, logical block 131586, lost async
    | page write

Signed-off-by: Christoph Fritz <chf.fritz@googlemail.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/mmc/core/card.h   |    2 ++
 drivers/mmc/core/quirks.h |    8 ++++++++
 2 files changed, 10 insertions(+)

--- a/drivers/mmc/core/card.h
+++ b/drivers/mmc/core/card.h
@@ -75,9 +75,11 @@ struct mmc_fixup {
 #define EXT_CSD_REV_ANY (-1u)
 
 #define CID_MANFID_SANDISK      0x2
+#define CID_MANFID_ATP          0x9
 #define CID_MANFID_TOSHIBA      0x11
 #define CID_MANFID_MICRON       0x13
 #define CID_MANFID_SAMSUNG      0x15
+#define CID_MANFID_APACER       0x27
 #define CID_MANFID_KINGSTON     0x70
 #define CID_MANFID_HYNIX	0x90
 
--- a/drivers/mmc/core/quirks.h
+++ b/drivers/mmc/core/quirks.h
@@ -53,6 +53,14 @@ static const struct mmc_fixup mmc_blk_fi
 		  MMC_QUIRK_BLK_NO_CMD23),
 
 	/*
+	 * Some SD cards lockup while using CMD23 multiblock transfers.
+	 */
+	MMC_FIXUP("AF SD", CID_MANFID_ATP, CID_OEMID_ANY, add_quirk_sd,
+		  MMC_QUIRK_BLK_NO_CMD23),
+	MMC_FIXUP("APUSD", CID_MANFID_APACER, 0x5048, add_quirk_sd,
+		  MMC_QUIRK_BLK_NO_CMD23),
+
+	/*
 	 * Some MMC cards need longer data read timeout than indicated in CSD.
 	 */
 	MMC_FIXUP(CID_NAME_ANY, CID_MANFID_MICRON, 0x200, add_quirk_mmc,

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

* [PATCH 4.14 022/178] ceph: drop negative child dentries before try pruning inodes alias
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (20 preceding siblings ...)
  2017-12-18 15:47 ` [PATCH 4.14 021/178] mmc: core: apply NO_CMD23 quirk to some specific cards Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 023/178] usb: xhci: fix TDS for MTK xHCI1.1 Greg Kroah-Hartman
                   ` (140 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Yan, Zheng, Jeff Layton, Ilya Dryomov

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

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

From: Yan, Zheng <zyan@redhat.com>

commit 040d786032bf59002d374b86d75b04d97624005c upstream.

Negative child dentry holds reference on inode's alias, it makes
d_prune_aliases() do nothing.

Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
Reviewed-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/ceph/mds_client.c |   42 ++++++++++++++++++++++++++++++++++++++----
 1 file changed, 38 insertions(+), 4 deletions(-)

--- a/fs/ceph/mds_client.c
+++ b/fs/ceph/mds_client.c
@@ -1428,6 +1428,29 @@ static int __close_session(struct ceph_m
 	return request_close_session(mdsc, session);
 }
 
+static bool drop_negative_children(struct dentry *dentry)
+{
+	struct dentry *child;
+	bool all_negative = true;
+
+	if (!d_is_dir(dentry))
+		goto out;
+
+	spin_lock(&dentry->d_lock);
+	list_for_each_entry(child, &dentry->d_subdirs, d_child) {
+		if (d_really_is_positive(child)) {
+			all_negative = false;
+			break;
+		}
+	}
+	spin_unlock(&dentry->d_lock);
+
+	if (all_negative)
+		shrink_dcache_parent(dentry);
+out:
+	return all_negative;
+}
+
 /*
  * Trim old(er) caps.
  *
@@ -1473,16 +1496,27 @@ static int trim_caps_cb(struct inode *in
 	if ((used | wanted) & ~oissued & mine)
 		goto out;   /* we need these caps */
 
-	session->s_trim_caps--;
 	if (oissued) {
 		/* we aren't the only cap.. just remove us */
 		__ceph_remove_cap(cap, true);
+		session->s_trim_caps--;
 	} else {
+		struct dentry *dentry;
 		/* try dropping referring dentries */
 		spin_unlock(&ci->i_ceph_lock);
-		d_prune_aliases(inode);
-		dout("trim_caps_cb %p cap %p  pruned, count now %d\n",
-		     inode, cap, atomic_read(&inode->i_count));
+		dentry = d_find_any_alias(inode);
+		if (dentry && drop_negative_children(dentry)) {
+			int count;
+			dput(dentry);
+			d_prune_aliases(inode);
+			count = atomic_read(&inode->i_count);
+			if (count == 1)
+				session->s_trim_caps--;
+			dout("trim_caps_cb %p cap %p pruned, count now %d\n",
+			     inode, cap, count);
+		} else {
+			dput(dentry);
+		}
 		return 0;
 	}
 

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

* [PATCH 4.14 023/178] usb: xhci: fix TDS for MTK xHCI1.1
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (21 preceding siblings ...)
  2017-12-18 15:47 ` [PATCH 4.14 022/178] ceph: drop negative child dentries before try pruning inodes alias Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 024/178] xhci: Dont add a virt_dev to the devs array before its fully allocated Greg Kroah-Hartman
                   ` (139 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Chunfeng Yun, Mathias Nyman

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

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

From: Chunfeng Yun <chunfeng.yun@mediatek.com>

commit 72b663a99c074a8d073e7ecdae446cfb024ef551 upstream.

For MTK's xHCI 1.0 or latter, TD size is the number of max
packet sized packets remaining in the TD, not including
this TRB (following spec).

For MTK's xHCI 0.96 and older, TD size is the number of max
packet sized packets remaining in the TD, including this TRB
(not following spec).

Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/host/xhci-ring.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
@@ -3121,7 +3121,7 @@ static u32 xhci_td_remainder(struct xhci
 {
 	u32 maxp, total_packet_count;
 
-	/* MTK xHCI is mostly 0.97 but contains some features from 1.0 */
+	/* MTK xHCI 0.96 contains some features from 1.0 */
 	if (xhci->hci_version < 0x100 && !(xhci->quirks & XHCI_MTK_HOST))
 		return ((td_total_len - transferred) >> 10);
 
@@ -3130,8 +3130,8 @@ static u32 xhci_td_remainder(struct xhci
 	    trb_buff_len == td_total_len)
 		return 0;
 
-	/* for MTK xHCI, TD size doesn't include this TRB */
-	if (xhci->quirks & XHCI_MTK_HOST)
+	/* for MTK xHCI 0.96, TD size include this TRB, but not in 1.x */
+	if ((xhci->quirks & XHCI_MTK_HOST) && (xhci->hci_version < 0x100))
 		trb_buff_len = 0;
 
 	maxp = usb_endpoint_maxp(&urb->ep->desc);

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

* [PATCH 4.14 024/178] xhci: Dont add a virt_dev to the devs array before its fully allocated
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (22 preceding siblings ...)
  2017-12-18 15:47 ` [PATCH 4.14 023/178] usb: xhci: fix TDS for MTK xHCI1.1 Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 025/178] IB/core: Bound check alternate path port number Greg Kroah-Hartman
                   ` (138 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Mathias Nyman

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

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

From: Mathias Nyman <mathias.nyman@linux.intel.com>

commit 5d9b70f7d52eb14bb37861c663bae44de9521c35 upstream.

Avoid null pointer dereference if some function is walking through the
devs array accessing members of a new virt_dev that is mid allocation.

Add the virt_dev to xhci->devs[i] _after_ the virt_device and all its
members are properly allocated.

issue found by KASAN: null-ptr-deref in xhci_find_slot_id_by_port

"Quick analysis suggests that xhci_alloc_virt_device() is not mutex
protected. If so, there is a time frame where xhci->devs[slot_id] is set
but not fully initialized. Specifically, xhci->devs[i]->udev can be NULL."

Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/host/xhci-mem.c |   15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

--- a/drivers/usb/host/xhci-mem.c
+++ b/drivers/usb/host/xhci-mem.c
@@ -983,10 +983,9 @@ int xhci_alloc_virt_device(struct xhci_h
 		return 0;
 	}
 
-	xhci->devs[slot_id] = kzalloc(sizeof(*xhci->devs[slot_id]), flags);
-	if (!xhci->devs[slot_id])
+	dev = kzalloc(sizeof(*dev), flags);
+	if (!dev)
 		return 0;
-	dev = xhci->devs[slot_id];
 
 	/* Allocate the (output) device context that will be used in the HC. */
 	dev->out_ctx = xhci_alloc_container_ctx(xhci, XHCI_CTX_TYPE_DEVICE, flags);
@@ -1027,9 +1026,17 @@ int xhci_alloc_virt_device(struct xhci_h
 
 	trace_xhci_alloc_virt_device(dev);
 
+	xhci->devs[slot_id] = dev;
+
 	return 1;
 fail:
-	xhci_free_virt_device(xhci, slot_id);
+
+	if (dev->in_ctx)
+		xhci_free_container_ctx(xhci, dev->in_ctx);
+	if (dev->out_ctx)
+		xhci_free_container_ctx(xhci, dev->out_ctx);
+	kfree(dev);
+
 	return 0;
 }
 

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

* [PATCH 4.14 025/178] IB/core: Bound check alternate path port number
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (23 preceding siblings ...)
  2017-12-18 15:47 ` [PATCH 4.14 024/178] xhci: Dont add a virt_dev to the devs array before its fully allocated Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 026/178] IB/core: Dont enforce PKey security on SMI MADs Greg Kroah-Hartman
                   ` (137 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Daniel Jurgens, Parav Pandit,
	Leon Romanovsky, Doug Ledford

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

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

From: Daniel Jurgens <danielj@mellanox.com>

commit 4cae8ff136782d77b108cb3a5ba53e60597ba3a6 upstream.

The alternate port number is used as an array index in the IB
security implementation, invalid values can result in a kernel panic.

Fixes: d291f1a65232 ("IB/core: Enforce PKey security on QPs")
Signed-off-by: Daniel Jurgens <danielj@mellanox.com>
Reviewed-by: Parav Pandit <parav@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/infiniband/core/uverbs_cmd.c |    6 ++++++
 1 file changed, 6 insertions(+)

--- a/drivers/infiniband/core/uverbs_cmd.c
+++ b/drivers/infiniband/core/uverbs_cmd.c
@@ -1982,6 +1982,12 @@ static int modify_qp(struct ib_uverbs_fi
 		goto release_qp;
 	}
 
+	if ((cmd->base.attr_mask & IB_QP_ALT_PATH) &&
+	    !rdma_is_port_valid(qp->device, cmd->base.alt_port_num)) {
+		ret = -EINVAL;
+		goto release_qp;
+	}
+
 	attr->qp_state		  = cmd->base.qp_state;
 	attr->cur_qp_state	  = cmd->base.cur_qp_state;
 	attr->path_mtu		  = cmd->base.path_mtu;

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

* [PATCH 4.14 026/178] IB/core: Dont enforce PKey security on SMI MADs
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (24 preceding siblings ...)
  2017-12-18 15:47 ` [PATCH 4.14 025/178] IB/core: Bound check alternate path port number Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 027/178] nfs: dont wait on commit in nfs_commit_inode() if there were no commit requests Greg Kroah-Hartman
                   ` (136 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Chris Blake, Daniel Jurgens,
	Parav Pandit, Leon Romanovsky, Doug Ledford

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

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

From: Daniel Jurgens <danielj@mellanox.com>

commit 0fbe8f575b15585eec3326e43708fbbc024e8486 upstream.

Per the infiniband spec an SMI MAD can have any PKey. Checking the pkey
on SMI MADs is not necessary, and it seems that some older adapters
using the mthca driver don't follow the convention of using the default
PKey, resulting in false denials, or errors querying the PKey cache.

SMI MAD security is still enforced, only agents allowed to manage the
subnet are able to receive or send SMI MADs.

Reported-by: Chris Blake <chrisrblake93@gmail.com>
Fixes: 47a2b338fe63 ("IB/core: Enforce security on management datagrams")
Signed-off-by: Daniel Jurgens <danielj@mellanox.com>
Reviewed-by: Parav Pandit <parav@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/infiniband/core/security.c |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

--- a/drivers/infiniband/core/security.c
+++ b/drivers/infiniband/core/security.c
@@ -739,8 +739,11 @@ int ib_mad_enforce_security(struct ib_ma
 	if (!rdma_protocol_ib(map->agent.device, map->agent.port_num))
 		return 0;
 
-	if (map->agent.qp->qp_type == IB_QPT_SMI && !map->agent.smp_allowed)
-		return -EACCES;
+	if (map->agent.qp->qp_type == IB_QPT_SMI) {
+		if (!map->agent.smp_allowed)
+			return -EACCES;
+		return 0;
+	}
 
 	return ib_security_pkey_access(map->agent.device,
 				       map->agent.port_num,

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

* [PATCH 4.14 027/178] nfs: dont wait on commit in nfs_commit_inode() if there were no commit requests
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (25 preceding siblings ...)
  2017-12-18 15:47 ` [PATCH 4.14 026/178] IB/core: Dont enforce PKey security on SMI MADs Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 028/178] arm64: mm: Fix pte_mkclean, pte_mkdirty semantics Greg Kroah-Hartman
                   ` (135 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Scott Mayhew, Anna Schumaker

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

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

From: Scott Mayhew <smayhew@redhat.com>

commit dc4fd9ab01ab379ae5af522b3efd4187a7c30a31 upstream.

If there were no commit requests, then nfs_commit_inode() should not
wait on the commit or mark the inode dirty, otherwise the following
BUG_ON can be triggered:

[ 1917.130762] kernel BUG at fs/inode.c:578!
[ 1917.130766] Oops: Exception in kernel mode, sig: 5 [#1]
[ 1917.130768] SMP NR_CPUS=2048 NUMA pSeries
[ 1917.130772] Modules linked in: iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi blocklayoutdriver rpcsec_gss_krb5 auth_rpcgss nfsv4 dns_resolver nfs lockd grace fscache sunrpc sg nx_crypto pseries_rng ip_tables xfs libcrc32c sd_mod crc_t10dif crct10dif_generic crct10dif_common ibmvscsi scsi_transport_srp ibmveth scsi_tgt dm_mirror dm_region_hash dm_log dm_mod
[ 1917.130805] CPU: 2 PID: 14923 Comm: umount.nfs4 Tainted: G               ------------ T 3.10.0-768.el7.ppc64 #1
[ 1917.130810] task: c0000005ecd88040 ti: c00000004cea0000 task.ti: c00000004cea0000
[ 1917.130813] NIP: c000000000354178 LR: c000000000354160 CTR: c00000000012db80
[ 1917.130816] REGS: c00000004cea3720 TRAP: 0700   Tainted: G               ------------ T  (3.10.0-768.el7.ppc64)
[ 1917.130820] MSR: 8000000100029032 <SF,EE,ME,IR,DR,RI>  CR: 22002822  XER: 20000000
[ 1917.130828] CFAR: c00000000011f594 SOFTE: 1
GPR00: c000000000354160 c00000004cea39a0 c0000000014c4700 c0000000018cc750
GPR04: 000000000000c750 80c0000000000000 0600000000000000 04eeb76bea749a03
GPR08: 0000000000000034 c0000000018cc758 0000000000000001 d000000005e619e8
GPR12: c00000000012db80 c000000007b31200 0000000000000000 0000000000000000
GPR16: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
GPR20: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
GPR24: 0000000000000000 c000000000dfc3ec 0000000000000000 c0000005eefc02c0
GPR28: d0000000079dbd50 c0000005b94a02c0 c0000005b94a0250 c0000005b94a01c8
[ 1917.130867] NIP [c000000000354178] .evict+0x1c8/0x350
[ 1917.130871] LR [c000000000354160] .evict+0x1b0/0x350
[ 1917.130873] Call Trace:
[ 1917.130876] [c00000004cea39a0] [c000000000354160] .evict+0x1b0/0x350 (unreliable)
[ 1917.130880] [c00000004cea3a30] [c0000000003558cc] .evict_inodes+0x13c/0x270
[ 1917.130884] [c00000004cea3af0] [c000000000327d20] .kill_anon_super+0x70/0x1e0
[ 1917.130896] [c00000004cea3b80] [d000000005e43e30] .nfs_kill_super+0x20/0x60 [nfs]
[ 1917.130900] [c00000004cea3c00] [c000000000328a20] .deactivate_locked_super+0xa0/0x1b0
[ 1917.130903] [c00000004cea3c80] [c00000000035ba54] .cleanup_mnt+0xd4/0x180
[ 1917.130907] [c00000004cea3d10] [c000000000119034] .task_work_run+0x114/0x150
[ 1917.130912] [c00000004cea3db0] [c00000000001ba6c] .do_notify_resume+0xcc/0x100
[ 1917.130916] [c00000004cea3e30] [c00000000000a7b0] .ret_from_except_lite+0x5c/0x60
[ 1917.130919] Instruction dump:
[ 1917.130921] 7fc3f378 486734b5 60000000 387f00a0 38800003 4bdcb365 60000000 e95f00a0
[ 1917.130927] 694a0060 7d4a0074 794ad182 694a0001 <0b0a0000> 892d02a4 2f890000 40de0134

Signed-off-by: Scott Mayhew <smayhew@redhat.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/nfs/write.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/fs/nfs/write.c
+++ b/fs/nfs/write.c
@@ -1889,6 +1889,8 @@ int nfs_commit_inode(struct inode *inode
 	if (res)
 		error = nfs_generic_commit_list(inode, &head, how, &cinfo);
 	nfs_commit_end(cinfo.mds);
+	if (res == 0)
+		return res;
 	if (error < 0)
 		goto out_error;
 	if (!may_wait)

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

* [PATCH 4.14 028/178] arm64: mm: Fix pte_mkclean, pte_mkdirty semantics
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (26 preceding siblings ...)
  2017-12-18 15:47 ` [PATCH 4.14 027/178] nfs: dont wait on commit in nfs_commit_inode() if there were no commit requests Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 029/178] arm64: Initialise high_memory global variable earlier Greg Kroah-Hartman
                   ` (134 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Bhupinder Thakur, Catalin Marinas,
	Steve Capper, Will Deacon

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

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

From: Steve Capper <steve.capper@arm.com>

commit 8781bcbc5e69d7da69e84c7044ca0284848d5d01 upstream.

On systems with hardware dirty bit management, the ltp madvise09 unit
test fails due to dirty bit information being lost and pages being
incorrectly freed.

This was bisected to:
	arm64: Ignore hardware dirty bit updates in ptep_set_wrprotect()

Reverting this commit leads to a separate problem, that the unit test
retains pages that should have been dropped due to the function
madvise_free_pte_range(.) not cleaning pte's properly.

Currently pte_mkclean only clears the software dirty bit, thus the
following code sequence can appear:

	pte = pte_mkclean(pte);
	if (pte_dirty(pte))
		// this condition can return true with HW DBM!

This patch also adjusts pte_mkclean to set PTE_RDONLY thus effectively
clearing both the SW and HW dirty information.

In order for this to function on systems without HW DBM, we need to
also adjust pte_mkdirty to remove the read only bit from writable pte's
to avoid infinite fault loops.

Fixes: 64c26841b349 ("arm64: Ignore hardware dirty bit updates in ptep_set_wrprotect()")
Reported-by: Bhupinder Thakur <bhupinder.thakur@linaro.org>
Tested-by: Bhupinder Thakur <bhupinder.thakur@linaro.org>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Steve Capper <steve.capper@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/arm64/include/asm/pgtable.h |   33 ++++++++++++++++++---------------
 1 file changed, 18 insertions(+), 15 deletions(-)

--- a/arch/arm64/include/asm/pgtable.h
+++ b/arch/arm64/include/asm/pgtable.h
@@ -149,12 +149,20 @@ static inline pte_t pte_mkwrite(pte_t pt
 
 static inline pte_t pte_mkclean(pte_t pte)
 {
-	return clear_pte_bit(pte, __pgprot(PTE_DIRTY));
+	pte = clear_pte_bit(pte, __pgprot(PTE_DIRTY));
+	pte = set_pte_bit(pte, __pgprot(PTE_RDONLY));
+
+	return pte;
 }
 
 static inline pte_t pte_mkdirty(pte_t pte)
 {
-	return set_pte_bit(pte, __pgprot(PTE_DIRTY));
+	pte = set_pte_bit(pte, __pgprot(PTE_DIRTY));
+
+	if (pte_write(pte))
+		pte = clear_pte_bit(pte, __pgprot(PTE_RDONLY));
+
+	return pte;
 }
 
 static inline pte_t pte_mkold(pte_t pte)
@@ -642,28 +650,23 @@ static inline pmd_t pmdp_huge_get_and_cl
 #endif /* CONFIG_TRANSPARENT_HUGEPAGE */
 
 /*
- * ptep_set_wrprotect - mark read-only while preserving the hardware update of
- * the Access Flag.
+ * ptep_set_wrprotect - mark read-only while trasferring potential hardware
+ * dirty status (PTE_DBM && !PTE_RDONLY) to the software PTE_DIRTY bit.
  */
 #define __HAVE_ARCH_PTEP_SET_WRPROTECT
 static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long address, pte_t *ptep)
 {
 	pte_t old_pte, pte;
 
-	/*
-	 * ptep_set_wrprotect() is only called on CoW mappings which are
-	 * private (!VM_SHARED) with the pte either read-only (!PTE_WRITE &&
-	 * PTE_RDONLY) or writable and software-dirty (PTE_WRITE &&
-	 * !PTE_RDONLY && PTE_DIRTY); see is_cow_mapping() and
-	 * protection_map[]. There is no race with the hardware update of the
-	 * dirty state: clearing of PTE_RDONLY when PTE_WRITE (a.k.a. PTE_DBM)
-	 * is set.
-	 */
-	VM_WARN_ONCE(pte_write(*ptep) && !pte_dirty(*ptep),
-		     "%s: potential race with hardware DBM", __func__);
 	pte = READ_ONCE(*ptep);
 	do {
 		old_pte = pte;
+		/*
+		 * If hardware-dirty (PTE_WRITE/DBM bit set and PTE_RDONLY
+		 * clear), set the PTE_DIRTY bit.
+		 */
+		if (pte_hw_dirty(pte))
+			pte = pte_mkdirty(pte);
 		pte = pte_wrprotect(pte);
 		pte_val(pte) = cmpxchg_relaxed(&pte_val(*ptep),
 					       pte_val(old_pte), pte_val(pte));

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

* [PATCH 4.14 029/178] arm64: Initialise high_memory global variable earlier
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (27 preceding siblings ...)
  2017-12-18 15:47 ` [PATCH 4.14 028/178] arm64: mm: Fix pte_mkclean, pte_mkdirty semantics Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 030/178] arm64: fix CONFIG_DEBUG_WX address reporting Greg Kroah-Hartman
                   ` (133 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Steve Capper, Will Deacon

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

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

From: Steve Capper <steve.capper@arm.com>

commit f24e5834a2c3f6c5f814a417f858226f0a010ade upstream.

The high_memory global variable is used by
cma_declare_contiguous(.) before it is defined.

We don't notice this as we compute __pa(high_memory - 1), and it looks
like we're processing a VA from the direct linear map.

This problem becomes apparent when we flip the kernel virtual address
space and the linear map is moved to the bottom of the kernel VA space.

This patch moves the initialisation of high_memory before it used.

Fixes: f7426b983a6a ("mm: cma: adjust address limit to avoid hitting low/high memory boundary")
Signed-off-by: Steve Capper <steve.capper@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/arm64/mm/init.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/arch/arm64/mm/init.c
+++ b/arch/arm64/mm/init.c
@@ -476,6 +476,8 @@ void __init arm64_memblock_init(void)
 
 	reserve_elfcorehdr();
 
+	high_memory = __va(memblock_end_of_DRAM() - 1) + 1;
+
 	dma_contiguous_reserve(arm64_dma_phys_limit);
 
 	memblock_allow_resize();
@@ -502,7 +504,6 @@ void __init bootmem_init(void)
 	sparse_init();
 	zone_sizes_init(min, max);
 
-	high_memory = __va((max << PAGE_SHIFT) - 1) + 1;
 	memblock_dump_all();
 }
 

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

* [PATCH 4.14 030/178] arm64: fix CONFIG_DEBUG_WX address reporting
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (28 preceding siblings ...)
  2017-12-18 15:47 ` [PATCH 4.14 029/178] arm64: Initialise high_memory global variable earlier Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 031/178] scsi: core: Fix a scsi_show_rq() NULL pointer dereference Greg Kroah-Hartman
                   ` (132 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Mark Rutland, Kees Cook,
	Laura Abbott, Timur Tabi, Will Deacon

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

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

From: Mark Rutland <mark.rutland@arm.com>

commit 1d08a044cf12aee37dfd54837558e3295287b343 upstream.

In ptdump_check_wx(), we pass walk_pgd() a start address of 0 (rather
than VA_START) for the init_mm. This means that any reported W&X
addresses are offset by VA_START, which is clearly wrong and can make
them appear like userspace addresses.

Fix this by telling the ptdump code that we're walking init_mm starting
at VA_START. We don't need to update the addr_markers, since these are
still valid bounds regardless.

Fixes: 1404d6f13e47 ("arm64: dump: Add checking for writable and exectuable pages")
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: Laura Abbott <labbott@redhat.com>
Reported-by: Timur Tabi <timur@codeaurora.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/arm64/mm/dump.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/arch/arm64/mm/dump.c
+++ b/arch/arm64/mm/dump.c
@@ -389,7 +389,7 @@ void ptdump_check_wx(void)
 		.check_wx = true,
 	};
 
-	walk_pgd(&st, &init_mm, 0);
+	walk_pgd(&st, &init_mm, VA_START);
 	note_page(&st, 0, 0, 0);
 	if (st.wx_pages || st.uxn_pages)
 		pr_warn("Checked W+X mappings: FAILED, %lu W+X pages found, %lu non-UXN pages found\n",

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

* [PATCH 4.14 031/178] scsi: core: Fix a scsi_show_rq() NULL pointer dereference
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (29 preceding siblings ...)
  2017-12-18 15:47 ` [PATCH 4.14 030/178] arm64: fix CONFIG_DEBUG_WX address reporting Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 032/178] scsi: libsas: fix length error in sas_smp_handler() Greg Kroah-Hartman
                   ` (131 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Ming Lei, Bart Van Assche,
	James E.J. Bottomley, Martin K. Petersen, Christoph Hellwig,
	Hannes Reinecke, Johannes Thumshirn

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

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

From: Bart Van Assche <bart.vanassche@wdc.com>

commit 14e3062fb18532175af4d1c4073597999f7a2248 upstream.

Avoid that scsi_show_rq() triggers a NULL pointer dereference if called
after sd_uninit_command(). Swap the NULL pointer assignment and the
mempool_free() call in sd_uninit_command() to make it less likely that
scsi_show_rq() triggers a use-after-free. Note: even with these changes
scsi_show_rq() can trigger a use-after-free but that's a lesser evil
than e.g. suppressing debug information for T10 PI Type 2 commands
completely. This patch fixes the following oops:

BUG: unable to handle kernel NULL pointer dereference at (null)
IP: scsi_format_opcode_name+0x1a/0x1c0
CPU: 1 PID: 1881 Comm: cat Not tainted 4.14.0-rc2.blk_mq_io_hang+ #516
Call Trace:
 __scsi_format_command+0x27/0xc0
 scsi_show_rq+0x5c/0xc0
 __blk_mq_debugfs_rq_show+0x116/0x130
 blk_mq_debugfs_rq_show+0xe/0x10
 seq_read+0xfe/0x3b0
 full_proxy_read+0x54/0x90
 __vfs_read+0x37/0x160
 vfs_read+0x96/0x130
 SyS_read+0x55/0xc0
 entry_SYSCALL_64_fastpath+0x1a/0xa5

[mkp: added Type 2]

Fixes: 0eebd005dd07 ("scsi: Implement blk_mq_ops.show_rq()")
Reported-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
Cc: James E.J. Bottomley <jejb@linux.vnet.ibm.com>
Cc: Martin K. Petersen <martin.petersen@oracle.com>
Cc: Ming Lei <ming.lei@redhat.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Hannes Reinecke <hare@suse.com>
Cc: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/scsi/scsi_debugfs.c |    6 ++++--
 drivers/scsi/sd.c           |    4 +++-
 2 files changed, 7 insertions(+), 3 deletions(-)

--- a/drivers/scsi/scsi_debugfs.c
+++ b/drivers/scsi/scsi_debugfs.c
@@ -8,9 +8,11 @@ void scsi_show_rq(struct seq_file *m, st
 {
 	struct scsi_cmnd *cmd = container_of(scsi_req(rq), typeof(*cmd), req);
 	int msecs = jiffies_to_msecs(jiffies - cmd->jiffies_at_alloc);
-	char buf[80];
+	const u8 *const cdb = READ_ONCE(cmd->cmnd);
+	char buf[80] = "(?)";
 
-	__scsi_format_command(buf, sizeof(buf), cmd->cmnd, cmd->cmd_len);
+	if (cdb)
+		__scsi_format_command(buf, sizeof(buf), cdb, cmd->cmd_len);
 	seq_printf(m, ", .cmd=%s, .retries=%d, allocated %d.%03d s ago", buf,
 		   cmd->retries, msecs / 1000, msecs % 1000);
 }
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -1284,6 +1284,7 @@ static int sd_init_command(struct scsi_c
 static void sd_uninit_command(struct scsi_cmnd *SCpnt)
 {
 	struct request *rq = SCpnt->request;
+	u8 *cmnd;
 
 	if (SCpnt->flags & SCMD_ZONE_WRITE_LOCK)
 		sd_zbc_write_unlock_zone(SCpnt);
@@ -1292,9 +1293,10 @@ static void sd_uninit_command(struct scs
 		__free_page(rq->special_vec.bv_page);
 
 	if (SCpnt->cmnd != scsi_req(rq)->cmd) {
-		mempool_free(SCpnt->cmnd, sd_cdb_pool);
+		cmnd = SCpnt->cmnd;
 		SCpnt->cmnd = NULL;
 		SCpnt->cmd_len = 0;
+		mempool_free(cmnd, sd_cdb_pool);
 	}
 }
 

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

* [PATCH 4.14 032/178] scsi: libsas: fix length error in sas_smp_handler()
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (30 preceding siblings ...)
  2017-12-18 15:47 ` [PATCH 4.14 031/178] scsi: core: Fix a scsi_show_rq() NULL pointer dereference Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 033/178] sched/rt: Do not pull from current CPU if only one CPU to pull Greg Kroah-Hartman
                   ` (130 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Jason Yan, chenqilin,
	Christoph Hellwig, Martin K. Petersen

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

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

From: Jason Yan <yanaijie@huawei.com>

commit 621f6401fdeefe96dfe9eab4b167c7c39f552bb0 upstream.

The return value of smp_execute_task_sg() is the untransferred residual,
but bsg_job_done() requires the length of payload received. This makes
SMP passthrough commands from userland by sg ioctl to libsas get a wrong
response. The userland tools such as smp_utils failed because of these
wrong responses:

~#smp_discover /dev/bsg/expander-2\:13
response too short, len=0
~#smp_discover /dev/bsg/expander-2\:134
response too short, len=0

Fix this by passing the actual received length to bsg_job_done(). And if
smp_execute_task_sg() returns 0, this means received length is exactly
the buffer length.

[mkp: typo]

Fixes: 651a01364994 ("scsi: scsi_transport_sas: switch to bsg-lib for SMP passthrough")
Signed-off-by: Jason Yan <yanaijie@huawei.com>
Reported-by: chenqilin <chenqilin2@huawei.com>
Tested-by: chenqilin <chenqilin2@huawei.com>
CC: Christoph Hellwig <hch@lst.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/scsi/libsas/sas_expander.c |   10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

--- a/drivers/scsi/libsas/sas_expander.c
+++ b/drivers/scsi/libsas/sas_expander.c
@@ -2145,7 +2145,7 @@ void sas_smp_handler(struct bsg_job *job
 		struct sas_rphy *rphy)
 {
 	struct domain_device *dev;
-	unsigned int reslen = 0;
+	unsigned int rcvlen = 0;
 	int ret = -EINVAL;
 
 	/* no rphy means no smp target support (ie aic94xx host) */
@@ -2179,12 +2179,12 @@ void sas_smp_handler(struct bsg_job *job
 
 	ret = smp_execute_task_sg(dev, job->request_payload.sg_list,
 			job->reply_payload.sg_list);
-	if (ret > 0) {
-		/* positive number is the untransferred residual */
-		reslen = ret;
+	if (ret >= 0) {
+		/* bsg_job_done() requires the length received  */
+		rcvlen = job->reply_payload.payload_len - ret;
 		ret = 0;
 	}
 
 out:
-	bsg_job_done(job, ret, reslen);
+	bsg_job_done(job, ret, rcvlen);
 }

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

* [PATCH 4.14 033/178] sched/rt: Do not pull from current CPU if only one CPU to pull
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (31 preceding siblings ...)
  2017-12-18 15:47 ` [PATCH 4.14 032/178] scsi: libsas: fix length error in sas_smp_handler() Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 034/178] dm: fix various targets to dm_register_target after module __init resources created Greg Kroah-Hartman
                   ` (129 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Daniel Wagner,
	Steven Rostedt (VMware),
	Peter Zijlstra, Linus Torvalds, Sebastian Andrzej Siewior,
	Thomas Gleixner, linux-rt-users, Ingo Molnar

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

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

From: Steven Rostedt <rostedt@goodmis.org>

commit f73c52a5bcd1710994e53fbccc378c42b97a06b6 upstream.

Daniel Wagner reported a crash on the BeagleBone Black SoC.

This is a single CPU architecture, and does not have a functional
arch_send_call_function_single_ipi() implementation which can crash
the kernel if that is called.

As it only has one CPU, it shouldn't be called, but if the kernel is
compiled for SMP, the push/pull RT scheduling logic now calls it for
irq_work if the one CPU is overloaded, it can use that function to call
itself and crash the kernel.

Ideally, we should disable the SCHED_FEAT(RT_PUSH_IPI) if the system
only has a single CPU. But SCHED_FEAT is a constant if sched debugging
is turned off. Another fix can also be used, and this should also help
with normal SMP machines. That is, do not initiate the pull code if
there's only one RT overloaded CPU, and that CPU happens to be the
current CPU that is scheduling in a lower priority task.

Even on a system with many CPUs, if there's many RT tasks waiting to
run on a single CPU, and that CPU schedules in another RT task of lower
priority, it will initiate the PULL logic in case there's a higher
priority RT task on another CPU that is waiting to run. But if there is
no other CPU with waiting RT tasks, it will initiate the RT pull logic
on itself (as it still has RT tasks waiting to run). This is a wasted
effort.

Not only does this help with SMP code where the current CPU is the only
one with RT overloaded tasks, it should also solve the issue that
Daniel encountered, because it will prevent the PULL logic from
executing, as there's only one CPU on the system, and the check added
here will cause it to exit the RT pull code.

Reported-by: Daniel Wagner <wagi@monom.org>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Acked-by: Peter Zijlstra <peterz@infradead.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-rt-users <linux-rt-users@vger.kernel.org>
Fixes: 4bdced5c9 ("sched/rt: Simplify the IPI based RT balancing logic")
Link: http://lkml.kernel.org/r/20171202130454.4cbbfe8d@vmware.local.home
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 kernel/sched/rt.c |    8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

--- a/kernel/sched/rt.c
+++ b/kernel/sched/rt.c
@@ -2034,8 +2034,9 @@ static void pull_rt_task(struct rq *this
 	bool resched = false;
 	struct task_struct *p;
 	struct rq *src_rq;
+	int rt_overload_count = rt_overloaded(this_rq);
 
-	if (likely(!rt_overloaded(this_rq)))
+	if (likely(!rt_overload_count))
 		return;
 
 	/*
@@ -2044,6 +2045,11 @@ static void pull_rt_task(struct rq *this
 	 */
 	smp_rmb();
 
+	/* If we are the only overloaded CPU do nothing */
+	if (rt_overload_count == 1 &&
+	    cpumask_test_cpu(this_rq->cpu, this_rq->rd->rto_mask))
+		return;
+
 #ifdef HAVE_RT_PUSH_IPI
 	if (sched_feat(RT_PUSH_IPI)) {
 		tell_cpu_to_push(this_rq);

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

* [PATCH 4.14 034/178] dm: fix various targets to dm_register_target after module __init resources created
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (32 preceding siblings ...)
  2017-12-18 15:47 ` [PATCH 4.14 033/178] sched/rt: Do not pull from current CPU if only one CPU to pull Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 035/178] SUNRPC: Fix a race in the receive code path Greg Kroah-Hartman
                   ` (128 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, monty, Mike Snitzer

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

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

From: monty_pavel@sina.com <monty_pavel@sina.com>

commit 7e6358d244e4706fe612a77b9c36519a33600ac0 upstream.

A NULL pointer is seen if two concurrent "vgchange -ay -K <vg name>"
processes race to load the dm-thin-pool module:

 PID: 25992 TASK: ffff883cd7d23500 CPU: 4 COMMAND: "vgchange"
  #0 [ffff883cd743d600] machine_kexec at ffffffff81038fa9
  0000001 [ffff883cd743d660] crash_kexec at ffffffff810c5992
  0000002 [ffff883cd743d730] oops_end at ffffffff81515c90
  0000003 [ffff883cd743d760] no_context at ffffffff81049f1b
  0000004 [ffff883cd743d7b0] __bad_area_nosemaphore at ffffffff8104a1a5
  0000005 [ffff883cd743d800] bad_area at ffffffff8104a2ce
  0000006 [ffff883cd743d830] __do_page_fault at ffffffff8104aa6f
  0000007 [ffff883cd743d950] do_page_fault at ffffffff81517bae
  0000008 [ffff883cd743d980] page_fault at ffffffff81514f95
     [exception RIP: kmem_cache_alloc+108]
     RIP: ffffffff8116ef3c RSP: ffff883cd743da38 RFLAGS: 00010046
     RAX: 0000000000000004 RBX: ffffffff81121b90 RCX: ffff881bf1e78cc0
     RDX: 0000000000000000 RSI: 00000000000000d0 RDI: 0000000000000000
     RBP: ffff883cd743da68 R8: ffff881bf1a4eb00 R9: 0000000080042000
     R10: 0000000000002000 R11: 0000000000000000 R12: 00000000000000d0
     R13: 0000000000000000 R14: 00000000000000d0 R15: 0000000000000246
     ORIG_RAX: ffffffffffffffff CS: 0010 SS: 0018
  0000009 [ffff883cd743da70] mempool_alloc_slab at ffffffff81121ba5
 0000010 [ffff883cd743da80] mempool_create_node at ffffffff81122083
 0000011 [ffff883cd743dad0] mempool_create at ffffffff811220f4
 0000012 [ffff883cd743dae0] pool_ctr at ffffffffa08de049 [dm_thin_pool]
 0000013 [ffff883cd743dbd0] dm_table_add_target at ffffffffa0005f2f [dm_mod]
 0000014 [ffff883cd743dc30] table_load at ffffffffa0008ba9 [dm_mod]
 0000015 [ffff883cd743dc90] ctl_ioctl at ffffffffa0009dc4 [dm_mod]

The race results in a NULL pointer because:

Process A (vgchange -ay -K):
 	a. send DM_LIST_VERSIONS_CMD ioctl;
 	b. pool_target not registered;
 	c. modprobe dm_thin_pool and wait until end.

Process B (vgchange -ay -K):
 	a. send DM_LIST_VERSIONS_CMD ioctl;
 	b. pool_target registered;
 	c. table_load->dm_table_add_target->pool_ctr;
 	d. _new_mapping_cache is NULL and panic.
Note:
 	1. process A and process B are two concurrent processes.
 	2. pool_target can be detected by process B but
 	_new_mapping_cache initialization has not ended.

To fix dm-thin-pool, and other targets (cache, multipath, and snapshot)
with the same problem, simply dm_register_target() after all resources
created during module init (as labelled with __init) are finished.

Signed-off-by: monty <monty_pavel@sina.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/md/dm-cache-target.c |   12 +++++-----
 drivers/md/dm-mpath.c        |   18 ++++++++--------
 drivers/md/dm-snap.c         |   48 +++++++++++++++++++++----------------------
 drivers/md/dm-thin.c         |   22 ++++++++-----------
 4 files changed, 49 insertions(+), 51 deletions(-)

--- a/drivers/md/dm-cache-target.c
+++ b/drivers/md/dm-cache-target.c
@@ -3554,18 +3554,18 @@ static int __init dm_cache_init(void)
 {
 	int r;
 
-	r = dm_register_target(&cache_target);
-	if (r) {
-		DMERR("cache target registration failed: %d", r);
-		return r;
-	}
-
 	migration_cache = KMEM_CACHE(dm_cache_migration, 0);
 	if (!migration_cache) {
 		dm_unregister_target(&cache_target);
 		return -ENOMEM;
 	}
 
+	r = dm_register_target(&cache_target);
+	if (r) {
+		DMERR("cache target registration failed: %d", r);
+		return r;
+	}
+
 	return 0;
 }
 
--- a/drivers/md/dm-mpath.c
+++ b/drivers/md/dm-mpath.c
@@ -1965,13 +1965,6 @@ static int __init dm_multipath_init(void
 {
 	int r;
 
-	r = dm_register_target(&multipath_target);
-	if (r < 0) {
-		DMERR("request-based register failed %d", r);
-		r = -EINVAL;
-		goto bad_register_target;
-	}
-
 	kmultipathd = alloc_workqueue("kmpathd", WQ_MEM_RECLAIM, 0);
 	if (!kmultipathd) {
 		DMERR("failed to create workqueue kmpathd");
@@ -1993,13 +1986,20 @@ static int __init dm_multipath_init(void
 		goto bad_alloc_kmpath_handlerd;
 	}
 
+	r = dm_register_target(&multipath_target);
+	if (r < 0) {
+		DMERR("request-based register failed %d", r);
+		r = -EINVAL;
+		goto bad_register_target;
+	}
+
 	return 0;
 
+bad_register_target:
+	destroy_workqueue(kmpath_handlerd);
 bad_alloc_kmpath_handlerd:
 	destroy_workqueue(kmultipathd);
 bad_alloc_kmultipathd:
-	dm_unregister_target(&multipath_target);
-bad_register_target:
 	return r;
 }
 
--- a/drivers/md/dm-snap.c
+++ b/drivers/md/dm-snap.c
@@ -2411,24 +2411,6 @@ static int __init dm_snapshot_init(void)
 		return r;
 	}
 
-	r = dm_register_target(&snapshot_target);
-	if (r < 0) {
-		DMERR("snapshot target register failed %d", r);
-		goto bad_register_snapshot_target;
-	}
-
-	r = dm_register_target(&origin_target);
-	if (r < 0) {
-		DMERR("Origin target register failed %d", r);
-		goto bad_register_origin_target;
-	}
-
-	r = dm_register_target(&merge_target);
-	if (r < 0) {
-		DMERR("Merge target register failed %d", r);
-		goto bad_register_merge_target;
-	}
-
 	r = init_origin_hash();
 	if (r) {
 		DMERR("init_origin_hash failed.");
@@ -2449,19 +2431,37 @@ static int __init dm_snapshot_init(void)
 		goto bad_pending_cache;
 	}
 
+	r = dm_register_target(&snapshot_target);
+	if (r < 0) {
+		DMERR("snapshot target register failed %d", r);
+		goto bad_register_snapshot_target;
+	}
+
+	r = dm_register_target(&origin_target);
+	if (r < 0) {
+		DMERR("Origin target register failed %d", r);
+		goto bad_register_origin_target;
+	}
+
+	r = dm_register_target(&merge_target);
+	if (r < 0) {
+		DMERR("Merge target register failed %d", r);
+		goto bad_register_merge_target;
+	}
+
 	return 0;
 
-bad_pending_cache:
-	kmem_cache_destroy(exception_cache);
-bad_exception_cache:
-	exit_origin_hash();
-bad_origin_hash:
-	dm_unregister_target(&merge_target);
 bad_register_merge_target:
 	dm_unregister_target(&origin_target);
 bad_register_origin_target:
 	dm_unregister_target(&snapshot_target);
 bad_register_snapshot_target:
+	kmem_cache_destroy(pending_cache);
+bad_pending_cache:
+	kmem_cache_destroy(exception_cache);
+bad_exception_cache:
+	exit_origin_hash();
+bad_origin_hash:
 	dm_exception_store_exit();
 
 	return r;
--- a/drivers/md/dm-thin.c
+++ b/drivers/md/dm-thin.c
@@ -4355,30 +4355,28 @@ static struct target_type thin_target =
 
 static int __init dm_thin_init(void)
 {
-	int r;
+	int r = -ENOMEM;
 
 	pool_table_init();
 
+	_new_mapping_cache = KMEM_CACHE(dm_thin_new_mapping, 0);
+	if (!_new_mapping_cache)
+		return r;
+
 	r = dm_register_target(&thin_target);
 	if (r)
-		return r;
+		goto bad_new_mapping_cache;
 
 	r = dm_register_target(&pool_target);
 	if (r)
-		goto bad_pool_target;
-
-	r = -ENOMEM;
-
-	_new_mapping_cache = KMEM_CACHE(dm_thin_new_mapping, 0);
-	if (!_new_mapping_cache)
-		goto bad_new_mapping_cache;
+		goto bad_thin_target;
 
 	return 0;
 
-bad_new_mapping_cache:
-	dm_unregister_target(&pool_target);
-bad_pool_target:
+bad_thin_target:
 	dm_unregister_target(&thin_target);
+bad_new_mapping_cache:
+	kmem_cache_destroy(_new_mapping_cache);
 
 	return r;
 }

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

* [PATCH 4.14 035/178] SUNRPC: Fix a race in the receive code path
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (33 preceding siblings ...)
  2017-12-18 15:47 ` [PATCH 4.14 034/178] dm: fix various targets to dm_register_target after module __init resources created Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 036/178] iw_cxgb4: only insert drain cqes if wq is flushed Greg Kroah-Hartman
                   ` (127 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Chuck Lever, Trond Myklebust, Anna Schumaker

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

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

From: Trond Myklebust <trond.myklebust@primarydata.com>

commit 90d91b0cd371193d9dbfa9beacab8ab9a4cb75e0 upstream.

We must ensure that the call to rpc_sleep_on() in xprt_transmit() cannot
race with the call to xprt_complete_rqst().

Reported-by: Chuck Lever <chuck.lever@oracle.com>
Link: https://bugzilla.linux-nfs.org/show_bug.cgi?id=317
Fixes: ce7c252a8c74 ("SUNRPC: Add a separate spinlock to protect..")
Reviewed-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 net/sunrpc/xprt.c |   28 +++++++++++++++++++---------
 1 file changed, 19 insertions(+), 9 deletions(-)

--- a/net/sunrpc/xprt.c
+++ b/net/sunrpc/xprt.c
@@ -1001,6 +1001,7 @@ void xprt_transmit(struct rpc_task *task
 {
 	struct rpc_rqst	*req = task->tk_rqstp;
 	struct rpc_xprt	*xprt = req->rq_xprt;
+	unsigned int connect_cookie;
 	int status, numreqs;
 
 	dprintk("RPC: %5u xprt_transmit(%u)\n", task->tk_pid, req->rq_slen);
@@ -1024,6 +1025,7 @@ void xprt_transmit(struct rpc_task *task
 	} else if (!req->rq_bytes_sent)
 		return;
 
+	connect_cookie = xprt->connect_cookie;
 	req->rq_xtime = ktime_get();
 	status = xprt->ops->send_request(task);
 	trace_xprt_transmit(xprt, req->rq_xid, status);
@@ -1047,20 +1049,28 @@ void xprt_transmit(struct rpc_task *task
 	xprt->stat.bklog_u += xprt->backlog.qlen;
 	xprt->stat.sending_u += xprt->sending.qlen;
 	xprt->stat.pending_u += xprt->pending.qlen;
+	spin_unlock_bh(&xprt->transport_lock);
 
-	/* Don't race with disconnect */
-	if (!xprt_connected(xprt))
-		task->tk_status = -ENOTCONN;
-	else {
+	req->rq_connect_cookie = connect_cookie;
+	if (rpc_reply_expected(task) && !READ_ONCE(req->rq_reply_bytes_recvd)) {
 		/*
-		 * Sleep on the pending queue since
-		 * we're expecting a reply.
+		 * Sleep on the pending queue if we're expecting a reply.
+		 * The spinlock ensures atomicity between the test of
+		 * req->rq_reply_bytes_recvd, and the call to rpc_sleep_on().
 		 */
-		if (!req->rq_reply_bytes_recvd && rpc_reply_expected(task))
+		spin_lock(&xprt->recv_lock);
+		if (!req->rq_reply_bytes_recvd) {
 			rpc_sleep_on(&xprt->pending, task, xprt_timer);
-		req->rq_connect_cookie = xprt->connect_cookie;
+			/*
+			 * Send an extra queue wakeup call if the
+			 * connection was dropped in case the call to
+			 * rpc_sleep_on() raced.
+			 */
+			if (!xprt_connected(xprt))
+				xprt_wake_pending_tasks(xprt, -ENOTCONN);
+		}
+		spin_unlock(&xprt->recv_lock);
 	}
-	spin_unlock_bh(&xprt->transport_lock);
 }
 
 static void xprt_add_backlog(struct rpc_xprt *xprt, struct rpc_task *task)

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

* [PATCH 4.14 036/178] iw_cxgb4: only insert drain cqes if wq is flushed
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (34 preceding siblings ...)
  2017-12-18 15:47 ` [PATCH 4.14 035/178] SUNRPC: Fix a race in the receive code path Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:47   ` Greg Kroah-Hartman
                   ` (126 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Steve Wise, Jason Gunthorpe

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

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

From: Steve Wise <swise@opengridcomputing.com>

commit c058ecf6e455fac7346d46197a02398ead90851f upstream.

Only insert our special drain CQEs to support ib_drain_sq/rq() after
the wq is flushed. Otherwise, existing but not yet polled CQEs can be
returned out of order to the user application.  This can happen when the
QP has exited RTS but not yet flushed the QP, which can happen during
a normal close (vs abortive close).

In addition never count the drain CQEs when determining how many CQEs
need to be synthesized during the flush operation.  This latter issue
should never happen if the QP is properly flushed before inserting the
drain CQE, but I wanted to avoid corrupting the CQ state.  So we handle
it and log a warning once.

Fixes: 4fe7c2962e11 ("iw_cxgb4: refactor sq/rq drain logic")
Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/infiniband/hw/cxgb4/cq.c |    5 +++++
 drivers/infiniband/hw/cxgb4/qp.c |   14 ++++++++++++--
 2 files changed, 17 insertions(+), 2 deletions(-)

--- a/drivers/infiniband/hw/cxgb4/cq.c
+++ b/drivers/infiniband/hw/cxgb4/cq.c
@@ -410,6 +410,11 @@ next_cqe:
 
 static int cqe_completes_wr(struct t4_cqe *cqe, struct t4_wq *wq)
 {
+	if (CQE_OPCODE(cqe) == C4IW_DRAIN_OPCODE) {
+		WARN_ONCE(1, "Unexpected DRAIN CQE qp id %u!\n", wq->sq.qid);
+		return 0;
+	}
+
 	if (CQE_OPCODE(cqe) == FW_RI_TERMINATE)
 		return 0;
 
--- a/drivers/infiniband/hw/cxgb4/qp.c
+++ b/drivers/infiniband/hw/cxgb4/qp.c
@@ -868,7 +868,12 @@ int c4iw_post_send(struct ib_qp *ibqp, s
 
 	qhp = to_c4iw_qp(ibqp);
 	spin_lock_irqsave(&qhp->lock, flag);
-	if (t4_wq_in_error(&qhp->wq)) {
+
+	/*
+	 * If the qp has been flushed, then just insert a special
+	 * drain cqe.
+	 */
+	if (qhp->wq.flushed) {
 		spin_unlock_irqrestore(&qhp->lock, flag);
 		complete_sq_drain_wr(qhp, wr);
 		return err;
@@ -1012,7 +1017,12 @@ int c4iw_post_receive(struct ib_qp *ibqp
 
 	qhp = to_c4iw_qp(ibqp);
 	spin_lock_irqsave(&qhp->lock, flag);
-	if (t4_wq_in_error(&qhp->wq)) {
+
+	/*
+	 * If the qp has been flushed, then just insert a special
+	 * drain cqe.
+	 */
+	if (qhp->wq.flushed) {
 		spin_unlock_irqrestore(&qhp->lock, flag);
 		complete_rq_drain_wr(qhp, wr);
 		return err;

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

* [PATCH 4.14 037/178] x86/boot/compressed/64: Detect and handle 5-level paging at boot-time
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
@ 2017-12-18 15:47   ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 002/178] crypto: algif_aead - fix reference counting of null skcipher Greg Kroah-Hartman
                     ` (161 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Kirill A. Shutemov, Thomas Gleixner,
	Andi Kleen, Andy Lutomirski, linux-mm, Cyrill Gorcunov,
	Borislav Petkov, Linus Torvalds

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

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

From: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>

commit 08529078d8d9adf689bf39cc38d53979a0869970 upstream.

Prerequisite for fixing the current problem of instantaneous reboots when a
5-level paging kernel is booted on 4-level paging hardware.

At the same time this change prepares the decompression code to boot-time
switching between 4- and 5-level paging.

[ tglx: Folded the GCC < 5 fix. ]

Fixes: 77ef56e4f0fb ("x86: Enable 5-level paging support via CONFIG_X86_5LEVEL=y")
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: linux-mm@kvack.org
Cc: Cyrill Gorcunov <gorcunov@openvz.org>
Cc: Borislav Petkov <bp@suse.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: https://lkml.kernel.org/r/20171204124059.63515-2-kirill.shutemov@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/x86/boot/compressed/Makefile     |    1 +
 arch/x86/boot/compressed/head_64.S    |   16 ++++++++++++----
 arch/x86/boot/compressed/pgtable_64.c |   28 ++++++++++++++++++++++++++++
 3 files changed, 41 insertions(+), 4 deletions(-)

--- a/arch/x86/boot/compressed/Makefile
+++ b/arch/x86/boot/compressed/Makefile
@@ -78,6 +78,7 @@ vmlinux-objs-$(CONFIG_EARLY_PRINTK) += $
 vmlinux-objs-$(CONFIG_RANDOMIZE_BASE) += $(obj)/kaslr.o
 ifdef CONFIG_X86_64
 	vmlinux-objs-$(CONFIG_RANDOMIZE_BASE) += $(obj)/pagetable.o
+	vmlinux-objs-y += $(obj)/pgtable_64.o
 endif
 
 $(obj)/eboot.o: KBUILD_CFLAGS += -fshort-wchar -mno-red-zone
--- a/arch/x86/boot/compressed/head_64.S
+++ b/arch/x86/boot/compressed/head_64.S
@@ -289,10 +289,18 @@ ENTRY(startup_64)
 	leaq	boot_stack_end(%rbx), %rsp
 
 #ifdef CONFIG_X86_5LEVEL
-	/* Check if 5-level paging has already enabled */
-	movq	%cr4, %rax
-	testl	$X86_CR4_LA57, %eax
-	jnz	lvl5
+	/*
+	 * Check if we need to enable 5-level paging.
+	 * RSI holds real mode data and need to be preserved across
+	 * a function call.
+	 */
+	pushq	%rsi
+	call	l5_paging_required
+	popq	%rsi
+
+	/* If l5_paging_required() returned zero, we're done here. */
+	cmpq	$0, %rax
+	je	lvl5
 
 	/*
 	 * At this point we are in long mode with 4-level paging enabled,
--- /dev/null
+++ b/arch/x86/boot/compressed/pgtable_64.c
@@ -0,0 +1,28 @@
+#include <asm/processor.h>
+
+/*
+ * __force_order is used by special_insns.h asm code to force instruction
+ * serialization.
+ *
+ * It is not referenced from the code, but GCC < 5 with -fPIE would fail
+ * due to an undefined symbol. Define it to make these ancient GCCs work.
+ */
+unsigned long __force_order;
+
+int l5_paging_required(void)
+{
+	/* Check if leaf 7 is supported. */
+
+	if (native_cpuid_eax(0) < 7)
+		return 0;
+
+	/* Check if la57 is supported. */
+	if (!(native_cpuid_ecx(7) & (1 << (X86_FEATURE_LA57 & 31))))
+		return 0;
+
+	/* Check if 5-level paging has already been enabled. */
+	if (native_read_cr4() & X86_CR4_LA57)
+		return 0;
+
+	return 1;
+}

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

* [PATCH 4.14 037/178] x86/boot/compressed/64: Detect and handle 5-level paging at boot-time
@ 2017-12-18 15:47   ` Greg Kroah-Hartman
  0 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Kirill A. Shutemov, Thomas Gleixner,
	Andi Kleen, Andy Lutomirski, linux-mm, Cyrill Gorcunov,
	Borislav Petkov, Linus Torvalds

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

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

From: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>

commit 08529078d8d9adf689bf39cc38d53979a0869970 upstream.

Prerequisite for fixing the current problem of instantaneous reboots when a
5-level paging kernel is booted on 4-level paging hardware.

At the same time this change prepares the decompression code to boot-time
switching between 4- and 5-level paging.

[ tglx: Folded the GCC < 5 fix. ]

Fixes: 77ef56e4f0fb ("x86: Enable 5-level paging support via CONFIG_X86_5LEVEL=y")
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: linux-mm@kvack.org
Cc: Cyrill Gorcunov <gorcunov@openvz.org>
Cc: Borislav Petkov <bp@suse.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: https://lkml.kernel.org/r/20171204124059.63515-2-kirill.shutemov@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/x86/boot/compressed/Makefile     |    1 +
 arch/x86/boot/compressed/head_64.S    |   16 ++++++++++++----
 arch/x86/boot/compressed/pgtable_64.c |   28 ++++++++++++++++++++++++++++
 3 files changed, 41 insertions(+), 4 deletions(-)

--- a/arch/x86/boot/compressed/Makefile
+++ b/arch/x86/boot/compressed/Makefile
@@ -78,6 +78,7 @@ vmlinux-objs-$(CONFIG_EARLY_PRINTK) += $
 vmlinux-objs-$(CONFIG_RANDOMIZE_BASE) += $(obj)/kaslr.o
 ifdef CONFIG_X86_64
 	vmlinux-objs-$(CONFIG_RANDOMIZE_BASE) += $(obj)/pagetable.o
+	vmlinux-objs-y += $(obj)/pgtable_64.o
 endif
 
 $(obj)/eboot.o: KBUILD_CFLAGS += -fshort-wchar -mno-red-zone
--- a/arch/x86/boot/compressed/head_64.S
+++ b/arch/x86/boot/compressed/head_64.S
@@ -289,10 +289,18 @@ ENTRY(startup_64)
 	leaq	boot_stack_end(%rbx), %rsp
 
 #ifdef CONFIG_X86_5LEVEL
-	/* Check if 5-level paging has already enabled */
-	movq	%cr4, %rax
-	testl	$X86_CR4_LA57, %eax
-	jnz	lvl5
+	/*
+	 * Check if we need to enable 5-level paging.
+	 * RSI holds real mode data and need to be preserved across
+	 * a function call.
+	 */
+	pushq	%rsi
+	call	l5_paging_required
+	popq	%rsi
+
+	/* If l5_paging_required() returned zero, we're done here. */
+	cmpq	$0, %rax
+	je	lvl5
 
 	/*
 	 * At this point we are in long mode with 4-level paging enabled,
--- /dev/null
+++ b/arch/x86/boot/compressed/pgtable_64.c
@@ -0,0 +1,28 @@
+#include <asm/processor.h>
+
+/*
+ * __force_order is used by special_insns.h asm code to force instruction
+ * serialization.
+ *
+ * It is not referenced from the code, but GCC < 5 with -fPIE would fail
+ * due to an undefined symbol. Define it to make these ancient GCCs work.
+ */
+unsigned long __force_order;
+
+int l5_paging_required(void)
+{
+	/* Check if leaf 7 is supported. */
+
+	if (native_cpuid_eax(0) < 7)
+		return 0;
+
+	/* Check if la57 is supported. */
+	if (!(native_cpuid_ecx(7) & (1 << (X86_FEATURE_LA57 & 31))))
+		return 0;
+
+	/* Check if 5-level paging has already been enabled. */
+	if (native_read_cr4() & X86_CR4_LA57)
+		return 0;
+
+	return 1;
+}


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

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

* [PATCH 4.14 038/178] x86/boot/compressed/64: Print error if 5-level paging is not supported
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
@ 2017-12-18 15:47   ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 002/178] crypto: algif_aead - fix reference counting of null skcipher Greg Kroah-Hartman
                     ` (161 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Borislav Petkov, Kirill A. Shutemov,
	Thomas Gleixner, Andi Kleen, Andy Lutomirski, linux-mm,
	Cyrill Gorcunov, Linus Torvalds

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

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

From: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>

commit 6d7e0ba2d2be9e50cccba213baf07e0e183c1b24 upstream.

If the machine does not support the paging mode for which the kernel was
compiled, the boot process cannot continue.

It's not possible to let the kernel detect the mismatch as it does not even
reach the point where cpu features can be evaluted due to a triple fault in
the KASLR setup.

Instead of instantaneous silent reboot, emit an error message which gives
the user the information why the boot fails.

Fixes: 77ef56e4f0fb ("x86: Enable 5-level paging support via CONFIG_X86_5LEVEL=y")
Reported-by: Borislav Petkov <bp@suse.de>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Borislav Petkov <bp@suse.de>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: linux-mm@kvack.org
Cc: Cyrill Gorcunov <gorcunov@openvz.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: https://lkml.kernel.org/r/20171204124059.63515-3-kirill.shutemov@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/x86/boot/compressed/misc.c |   16 ++++++++++++++++
 1 file changed, 16 insertions(+)

--- a/arch/x86/boot/compressed/misc.c
+++ b/arch/x86/boot/compressed/misc.c
@@ -169,6 +169,16 @@ void __puthex(unsigned long value)
 	}
 }
 
+static bool l5_supported(void)
+{
+	/* Check if leaf 7 is supported. */
+	if (native_cpuid_eax(0) < 7)
+		return 0;
+
+	/* Check if la57 is supported. */
+	return native_cpuid_ecx(7) & (1 << (X86_FEATURE_LA57 & 31));
+}
+
 #if CONFIG_X86_NEED_RELOCS
 static void handle_relocations(void *output, unsigned long output_len,
 			       unsigned long virt_addr)
@@ -362,6 +372,12 @@ asmlinkage __visible void *extract_kerne
 	console_init();
 	debug_putstr("early console in extract_kernel\n");
 
+	if (IS_ENABLED(CONFIG_X86_5LEVEL) && !l5_supported()) {
+		error("This linux kernel as configured requires 5-level paging\n"
+			"This CPU does not support the required 'cr4.la57' feature\n"
+			"Unable to boot - please use a kernel appropriate for your CPU\n");
+	}
+
 	free_mem_ptr     = heap;	/* Heap */
 	free_mem_end_ptr = heap + BOOT_HEAP_SIZE;
 

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

* [PATCH 4.14 038/178] x86/boot/compressed/64: Print error if 5-level paging is not supported
@ 2017-12-18 15:47   ` Greg Kroah-Hartman
  0 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Borislav Petkov, Kirill A. Shutemov,
	Thomas Gleixner, Andi Kleen, Andy Lutomirski, linux-mm,
	Cyrill Gorcunov, Linus Torvalds

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

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

From: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>

commit 6d7e0ba2d2be9e50cccba213baf07e0e183c1b24 upstream.

If the machine does not support the paging mode for which the kernel was
compiled, the boot process cannot continue.

It's not possible to let the kernel detect the mismatch as it does not even
reach the point where cpu features can be evaluted due to a triple fault in
the KASLR setup.

Instead of instantaneous silent reboot, emit an error message which gives
the user the information why the boot fails.

Fixes: 77ef56e4f0fb ("x86: Enable 5-level paging support via CONFIG_X86_5LEVEL=y")
Reported-by: Borislav Petkov <bp@suse.de>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Borislav Petkov <bp@suse.de>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: linux-mm@kvack.org
Cc: Cyrill Gorcunov <gorcunov@openvz.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: https://lkml.kernel.org/r/20171204124059.63515-3-kirill.shutemov@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/x86/boot/compressed/misc.c |   16 ++++++++++++++++
 1 file changed, 16 insertions(+)

--- a/arch/x86/boot/compressed/misc.c
+++ b/arch/x86/boot/compressed/misc.c
@@ -169,6 +169,16 @@ void __puthex(unsigned long value)
 	}
 }
 
+static bool l5_supported(void)
+{
+	/* Check if leaf 7 is supported. */
+	if (native_cpuid_eax(0) < 7)
+		return 0;
+
+	/* Check if la57 is supported. */
+	return native_cpuid_ecx(7) & (1 << (X86_FEATURE_LA57 & 31));
+}
+
 #if CONFIG_X86_NEED_RELOCS
 static void handle_relocations(void *output, unsigned long output_len,
 			       unsigned long virt_addr)
@@ -362,6 +372,12 @@ asmlinkage __visible void *extract_kerne
 	console_init();
 	debug_putstr("early console in extract_kernel\n");
 
+	if (IS_ENABLED(CONFIG_X86_5LEVEL) && !l5_supported()) {
+		error("This linux kernel as configured requires 5-level paging\n"
+			"This CPU does not support the required 'cr4.la57' feature\n"
+			"Unable to boot - please use a kernel appropriate for your CPU\n");
+	}
+
 	free_mem_ptr     = heap;	/* Heap */
 	free_mem_end_ptr = heap + BOOT_HEAP_SIZE;
 


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

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

* [PATCH 4.14 039/178] eeprom: at24: change nvmem stride to 1
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (37 preceding siblings ...)
  2017-12-18 15:47   ` Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 040/178] posix-timer: Properly check sigevent->sigev_notify Greg Kroah-Hartman
                   ` (123 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, David Lechner, Bartosz Golaszewski

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

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

From: David Lechner <david@lechnology.com>

commit 7f6d2ecd3d7acaf205ea7b3e96f9ffc55b92298b upstream.

Trying to read the MAC address from an eeprom that has an offset that
is not a multiple of 4 causes an error currently.

Fix it by changing the nvmem stride to 1.

Signed-off-by: David Lechner <david@lechnology.com>
[Bartosz: tweaked the commit message]
Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/misc/eeprom/at24.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/misc/eeprom/at24.c
+++ b/drivers/misc/eeprom/at24.c
@@ -776,7 +776,7 @@ static int at24_probe(struct i2c_client
 	at24->nvmem_config.reg_read = at24_read;
 	at24->nvmem_config.reg_write = at24_write;
 	at24->nvmem_config.priv = at24;
-	at24->nvmem_config.stride = 4;
+	at24->nvmem_config.stride = 1;
 	at24->nvmem_config.word_size = 1;
 	at24->nvmem_config.size = chip.byte_len;
 

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

* [PATCH 4.14 040/178] posix-timer: Properly check sigevent->sigev_notify
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (38 preceding siblings ...)
  2017-12-18 15:47 ` [PATCH 4.14 039/178] eeprom: at24: change nvmem stride to 1 Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 041/178] dmaengine: dmatest: move callback wait queue to thread context Greg Kroah-Hartman
                   ` (122 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Eric Biggers, Dmitry Vyukov,
	Alexey Dobriyan, Thomas Gleixner, John Stultz

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

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

From: Thomas Gleixner <tglx@linutronix.de>

commit cef31d9af908243421258f1df35a4a644604efbe upstream.

timer_create() specifies via sigevent->sigev_notify the signal delivery for
the new timer. The valid modes are SIGEV_NONE, SIGEV_SIGNAL, SIGEV_THREAD
and (SIGEV_SIGNAL | SIGEV_THREAD_ID).

The sanity check in good_sigevent() is only checking the valid combination
for the SIGEV_THREAD_ID bit, i.e. SIGEV_SIGNAL, but if SIGEV_THREAD_ID is
not set it accepts any random value.

This has no real effects on the posix timer and signal delivery code, but
it affects show_timer() which handles the output of /proc/$PID/timers. That
function uses a string array to pretty print sigev_notify. The access to
that array has no bound checks, so random sigev_notify cause access beyond
the array bounds.

Add proper checks for the valid notify modes and remove the SIGEV_THREAD_ID
masking from various code pathes as SIGEV_NONE can never be set in
combination with SIGEV_THREAD_ID.

Reported-by: Eric Biggers <ebiggers3@gmail.com>
Reported-by: Dmitry Vyukov <dvyukov@google.com>
Reported-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: John Stultz <john.stultz@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 kernel/time/posix-timers.c |   29 +++++++++++++++++------------
 1 file changed, 17 insertions(+), 12 deletions(-)

--- a/kernel/time/posix-timers.c
+++ b/kernel/time/posix-timers.c
@@ -434,17 +434,22 @@ static struct pid *good_sigevent(sigeven
 {
 	struct task_struct *rtn = current->group_leader;
 
-	if ((event->sigev_notify & SIGEV_THREAD_ID ) &&
-		(!(rtn = find_task_by_vpid(event->sigev_notify_thread_id)) ||
-		 !same_thread_group(rtn, current) ||
-		 (event->sigev_notify & ~SIGEV_THREAD_ID) != SIGEV_SIGNAL))
+	switch (event->sigev_notify) {
+	case SIGEV_SIGNAL | SIGEV_THREAD_ID:
+		rtn = find_task_by_vpid(event->sigev_notify_thread_id);
+		if (!rtn || !same_thread_group(rtn, current))
+			return NULL;
+		/* FALLTHRU */
+	case SIGEV_SIGNAL:
+	case SIGEV_THREAD:
+		if (event->sigev_signo <= 0 || event->sigev_signo > SIGRTMAX)
+			return NULL;
+		/* FALLTHRU */
+	case SIGEV_NONE:
+		return task_pid(rtn);
+	default:
 		return NULL;
-
-	if (((event->sigev_notify & ~SIGEV_THREAD_ID) != SIGEV_NONE) &&
-	    ((event->sigev_signo <= 0) || (event->sigev_signo > SIGRTMAX)))
-		return NULL;
-
-	return task_pid(rtn);
+	}
 }
 
 static struct k_itimer * alloc_posix_timer(void)
@@ -669,7 +674,7 @@ void common_timer_get(struct k_itimer *t
 	struct timespec64 ts64;
 	bool sig_none;
 
-	sig_none = (timr->it_sigev_notify & ~SIGEV_THREAD_ID) == SIGEV_NONE;
+	sig_none = timr->it_sigev_notify == SIGEV_NONE;
 	iv = timr->it_interval;
 
 	/* interval timer ? */
@@ -856,7 +861,7 @@ int common_timer_set(struct k_itimer *ti
 
 	timr->it_interval = timespec64_to_ktime(new_setting->it_interval);
 	expires = timespec64_to_ktime(new_setting->it_value);
-	sigev_none = (timr->it_sigev_notify & ~SIGEV_THREAD_ID) == SIGEV_NONE;
+	sigev_none = timr->it_sigev_notify == SIGEV_NONE;
 
 	kc->timer_arm(timr, expires, flags & TIMER_ABSTIME, sigev_none);
 	timr->it_active = !sigev_none;

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

* [PATCH 4.14 041/178] dmaengine: dmatest: move callback wait queue to thread context
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (39 preceding siblings ...)
  2017-12-18 15:47 ` [PATCH 4.14 040/178] posix-timer: Properly check sigevent->sigev_notify Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 043/178] ext4: support fast symlinks from ext3 file systems Greg Kroah-Hartman
                   ` (121 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Sinan Kaya, Shunyong Yang,
	Adam Wallis, Vinod Koul

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

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

From: Adam Wallis <awallis@codeaurora.org>

commit 6f6a23a213be51728502b88741ba6a10cda2441d upstream.

Commit adfa543e7314 ("dmatest: don't use set_freezable_with_signal()")
introduced a bug (that is in fact documented by the patch commit text)
that leaves behind a dangling pointer. Since the done_wait structure is
allocated on the stack, future invocations to the DMATEST can produce
undesirable results (e.g., corrupted spinlocks).

Commit a9df21e34b42 ("dmaengine: dmatest: warn user when dma test times
out") attempted to WARN the user that the stack was likely corrupted but
did not fix the actual issue.

This patch fixes the issue by pushing the wait queue and callback
structs into the the thread structure. If a failure occurs due to time,
dmaengine_terminate_all will force the callback to safely call
wake_up_all() without possibility of using a freed pointer.

Bug: https://bugzilla.kernel.org/show_bug.cgi?id=197605
Fixes: adfa543e7314 ("dmatest: don't use set_freezable_with_signal()")
Reviewed-by: Sinan Kaya <okaya@codeaurora.org>
Suggested-by: Shunyong Yang <shunyong.yang@hxt-semitech.com>
Signed-off-by: Adam Wallis <awallis@codeaurora.org>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/dma/dmatest.c |   55 ++++++++++++++++++++++++++++----------------------
 1 file changed, 31 insertions(+), 24 deletions(-)

--- a/drivers/dma/dmatest.c
+++ b/drivers/dma/dmatest.c
@@ -155,6 +155,12 @@ MODULE_PARM_DESC(run, "Run the test (def
 #define PATTERN_COUNT_MASK	0x1f
 #define PATTERN_MEMSET_IDX	0x01
 
+/* poor man's completion - we want to use wait_event_freezable() on it */
+struct dmatest_done {
+	bool			done;
+	wait_queue_head_t	*wait;
+};
+
 struct dmatest_thread {
 	struct list_head	node;
 	struct dmatest_info	*info;
@@ -165,6 +171,8 @@ struct dmatest_thread {
 	u8			**dsts;
 	u8			**udsts;
 	enum dma_transaction_type type;
+	wait_queue_head_t done_wait;
+	struct dmatest_done test_done;
 	bool			done;
 };
 
@@ -342,18 +350,25 @@ static unsigned int dmatest_verify(u8 **
 	return error_count;
 }
 
-/* poor man's completion - we want to use wait_event_freezable() on it */
-struct dmatest_done {
-	bool			done;
-	wait_queue_head_t	*wait;
-};
 
 static void dmatest_callback(void *arg)
 {
 	struct dmatest_done *done = arg;
-
-	done->done = true;
-	wake_up_all(done->wait);
+	struct dmatest_thread *thread =
+		container_of(arg, struct dmatest_thread, done_wait);
+	if (!thread->done) {
+		done->done = true;
+		wake_up_all(done->wait);
+	} else {
+		/*
+		 * If thread->done, it means that this callback occurred
+		 * after the parent thread has cleaned up. This can
+		 * happen in the case that driver doesn't implement
+		 * the terminate_all() functionality and a dma operation
+		 * did not occur within the timeout period
+		 */
+		WARN(1, "dmatest: Kernel memory may be corrupted!!\n");
+	}
 }
 
 static unsigned int min_odd(unsigned int x, unsigned int y)
@@ -424,9 +439,8 @@ static unsigned long long dmatest_KBs(s6
  */
 static int dmatest_func(void *data)
 {
-	DECLARE_WAIT_QUEUE_HEAD_ONSTACK(done_wait);
 	struct dmatest_thread	*thread = data;
-	struct dmatest_done	done = { .wait = &done_wait };
+	struct dmatest_done	*done = &thread->test_done;
 	struct dmatest_info	*info;
 	struct dmatest_params	*params;
 	struct dma_chan		*chan;
@@ -673,9 +687,9 @@ static int dmatest_func(void *data)
 			continue;
 		}
 
-		done.done = false;
+		done->done = false;
 		tx->callback = dmatest_callback;
-		tx->callback_param = &done;
+		tx->callback_param = done;
 		cookie = tx->tx_submit(tx);
 
 		if (dma_submit_error(cookie)) {
@@ -688,21 +702,12 @@ static int dmatest_func(void *data)
 		}
 		dma_async_issue_pending(chan);
 
-		wait_event_freezable_timeout(done_wait, done.done,
+		wait_event_freezable_timeout(thread->done_wait, done->done,
 					     msecs_to_jiffies(params->timeout));
 
 		status = dma_async_is_tx_complete(chan, cookie, NULL, NULL);
 
-		if (!done.done) {
-			/*
-			 * We're leaving the timed out dma operation with
-			 * dangling pointer to done_wait.  To make this
-			 * correct, we'll need to allocate wait_done for
-			 * each test iteration and perform "who's gonna
-			 * free it this time?" dancing.  For now, just
-			 * leave it dangling.
-			 */
-			WARN(1, "dmatest: Kernel stack may be corrupted!!\n");
+		if (!done->done) {
 			dmaengine_unmap_put(um);
 			result("test timed out", total_tests, src_off, dst_off,
 			       len, 0);
@@ -789,7 +794,7 @@ err_thread_type:
 		dmatest_KBs(runtime, total_len), ret);
 
 	/* terminate all transfers on specified channels */
-	if (ret)
+	if (ret || failed_tests)
 		dmaengine_terminate_all(chan);
 
 	thread->done = true;
@@ -849,6 +854,8 @@ static int dmatest_add_threads(struct dm
 		thread->info = info;
 		thread->chan = dtc->chan;
 		thread->type = type;
+		thread->test_done.wait = &thread->done_wait;
+		init_waitqueue_head(&thread->done_wait);
 		smp_wmb();
 		thread->task = kthread_create(dmatest_func, thread, "%s-%s%u",
 				dma_chan_name(chan), op, i);

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

* [PATCH 4.14 043/178] ext4: support fast symlinks from ext3 file systems
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (40 preceding siblings ...)
  2017-12-18 15:47 ` [PATCH 4.14 041/178] dmaengine: dmatest: move callback wait queue to thread context Greg Kroah-Hartman
@ 2017-12-18 15:47 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 044/178] ext4: fix fdatasync(2) after fallocate(2) operation Greg Kroah-Hartman
                   ` (120 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:47 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Andi Kleen, Theodore Tso, Andreas Dilger

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

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

From: Andi Kleen <ak@linux.intel.com>

commit fc82228a5e3860502dbf3bfa4a9570cb7093cf7f upstream.

407cd7fb83c0 (ext4: change fast symlink test to not rely on i_blocks)
broke ~10 years old ext3 file systems created by 2.6.17. Any ELF
executable fails because the /lib/ld-linux.so.2 fast symlink
cannot be read anymore.

The patch assumed fast symlinks were created in a specific way,
but that's not true on these really old file systems.

The new behavior is apparently needed only with the large EA inode
feature.

Revert to the old behavior if the large EA inode feature is not set.

This makes my old VM boot again.

Fixes: 407cd7fb83c0 (ext4: change fast symlink test to not rely on i_blocks)
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Andreas Dilger <adilger@dilger.ca>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/ext4/inode.c |    9 +++++++++
 1 file changed, 9 insertions(+)

--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -149,6 +149,15 @@ static int ext4_meta_trans_blocks(struct
  */
 int ext4_inode_is_fast_symlink(struct inode *inode)
 {
+	if (!(EXT4_I(inode)->i_flags & EXT4_EA_INODE_FL)) {
+		int ea_blocks = EXT4_I(inode)->i_file_acl ?
+				EXT4_CLUSTER_SIZE(inode->i_sb) >> 9 : 0;
+
+		if (ext4_has_inline_data(inode))
+			return 0;
+
+		return (S_ISLNK(inode->i_mode) && inode->i_blocks - ea_blocks == 0);
+	}
 	return S_ISLNK(inode->i_mode) && inode->i_size &&
 	       (inode->i_size < EXT4_N_BLOCKS * 4);
 }

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

* [PATCH 4.14 044/178] ext4: fix fdatasync(2) after fallocate(2) operation
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (41 preceding siblings ...)
  2017-12-18 15:47 ` [PATCH 4.14 043/178] ext4: support fast symlinks from ext3 file systems Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 045/178] ext4: add missing error check in __ext4_new_inode() Greg Kroah-Hartman
                   ` (119 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Eryu Guan, Theodore Tso

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

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

From: Eryu Guan <eguan@redhat.com>

commit c894aa97577e47d3066b27b32499ecf899bfa8b0 upstream.

Currently, fallocate(2) with KEEP_SIZE followed by a fdatasync(2)
then crash, we'll see wrong allocated block number (stat -c %b), the
blocks allocated beyond EOF are all lost. fstests generic/468
exposes this bug.

Commit 67a7d5f561f4 ("ext4: fix fdatasync(2) after extent
manipulation operations") fixed all the other extent manipulation
operation paths such as hole punch, zero range, collapse range etc.,
but forgot the fallocate case.

So similarly, fix it by recording the correct journal tid in ext4
inode in fallocate(2) path, so that ext4_sync_file() will wait for
the right tid to be committed on fdatasync(2).

This addresses the test failure in xfstests test generic/468.

Signed-off-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/ext4/extents.c |    1 +
 1 file changed, 1 insertion(+)

--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -4722,6 +4722,7 @@ retry:
 						    EXT4_INODE_EOFBLOCKS);
 		}
 		ext4_mark_inode_dirty(handle, inode);
+		ext4_update_inode_fsync_trans(handle, inode, 1);
 		ret2 = ext4_journal_stop(handle);
 		if (ret2)
 			break;

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

* [PATCH 4.14 045/178] ext4: add missing error check in __ext4_new_inode()
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (42 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 044/178] ext4: fix fdatasync(2) after fallocate(2) operation Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 046/178] ext4: fix crash when a directorys i_size is too small Greg Kroah-Hartman
                   ` (118 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Theodore Tso

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

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

From: Theodore Ts'o <tytso@mit.edu>

commit 996fc4477a0ea28226b30d175f053fb6f9a4fa36 upstream.

It's possible for ext4_get_acl() to return an ERR_PTR.  So we need to
add a check for this case in __ext4_new_inode().  Otherwise on an
error we can end up oops the kernel.

This was getting triggered by xfstests generic/388, which is a test
which exercises the shutdown code path.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/ext4/ialloc.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/fs/ext4/ialloc.c
+++ b/fs/ext4/ialloc.c
@@ -816,6 +816,8 @@ struct inode *__ext4_new_inode(handle_t
 #ifdef CONFIG_EXT4_FS_POSIX_ACL
 		struct posix_acl *p = get_acl(dir, ACL_TYPE_DEFAULT);
 
+		if (IS_ERR(p))
+			return ERR_CAST(p);
 		if (p) {
 			int acl_size = p->a_count * sizeof(ext4_acl_entry);
 

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

* [PATCH 4.14 046/178] ext4: fix crash when a directorys i_size is too small
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (43 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 045/178] ext4: add missing error check in __ext4_new_inode() Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 047/178] IB/mlx4: Fix RSSs QPC attributes assignments Greg Kroah-Hartman
                   ` (117 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Abdul Haleem, Chandan Rajendra

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

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

From: Chandan Rajendra <chandan@linux.vnet.ibm.com>

commit 9d5afec6b8bd46d6ed821aa1579634437f58ef1f upstream.

On a ppc64 machine, when mounting a fuzzed ext2 image (generated by
fsfuzzer) the following call trace is seen,

VFS: brelse: Trying to free free buffer
WARNING: CPU: 1 PID: 6913 at /root/repos/linux/fs/buffer.c:1165 .__brelse.part.6+0x24/0x40
.__brelse.part.6+0x20/0x40 (unreliable)
.ext4_find_entry+0x384/0x4f0
.ext4_lookup+0x84/0x250
.lookup_slow+0xdc/0x230
.walk_component+0x268/0x400
.path_lookupat+0xec/0x2d0
.filename_lookup+0x9c/0x1d0
.vfs_statx+0x98/0x140
.SyS_newfstatat+0x48/0x80
system_call+0x58/0x6c

This happens because the directory that ext4_find_entry() looks up has
inode->i_size that is less than the block size of the filesystem. This
causes 'nblocks' to have a value of zero. ext4_bread_batch() ends up not
reading any of the directory file's blocks. This renders the entries in
bh_use[] array to continue to have garbage data. buffer_uptodate() on
bh_use[0] can then return a zero value upon which brelse() function is
invoked.

This commit fixes the bug by returning -ENOENT when the directory file
has no associated blocks.

Reported-by: Abdul Haleem <abdhalee@linux.vnet.ibm.com>
Signed-off-by: Chandan Rajendra <chandan@linux.vnet.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/ext4/namei.c |    4 ++++
 1 file changed, 4 insertions(+)

--- a/fs/ext4/namei.c
+++ b/fs/ext4/namei.c
@@ -1399,6 +1399,10 @@ static struct buffer_head * ext4_find_en
 			       "falling back\n"));
 	}
 	nblocks = dir->i_size >> EXT4_BLOCK_SIZE_BITS(sb);
+	if (!nblocks) {
+		ret = NULL;
+		goto cleanup_and_exit;
+	}
 	start = EXT4_I(dir)->i_dir_start_lookup;
 	if (start >= nblocks)
 		start = 0;

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

* [PATCH 4.14 047/178] IB/mlx4: Fix RSSs QPC attributes assignments
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (44 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 046/178] ext4: fix crash when a directorys i_size is too small Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 049/178] sfc: dont warn on successful change of MAC Greg Kroah-Hartman
                   ` (116 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Guy Levi, Yishai Hadas,
	Leon Romanovsky, Doug Ledford, Sasha Levin

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

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

From: Guy Levi <guyle@mellanox.com>


[ Upstream commit 108809a0571cd1e1b317c5c083a371e163e1f8f9 ]

In the modify QP handler the base_qpn_udp field in the RSS QPC is
overwrite later by irrelevant value assignment. Hence, ingress packets
which gets to the RSS QP will be steered then to a garbage QPN.

The patch fixes this by skipping the above assignment when a RSS QP is
modified, also, the RSS context's attributes assignments are relocated
just before the context is posted to avoid future issues like this.

Additionally, this patch takes the opportunity to change the code to be
disciplined to the device's manual and assigns the RSS QP context just at
RESET to INIT transition.

Fixes:3078f5f1bd8b ("IB/mlx4: Add support for RSS QP")
Signed-off-by: Guy Levi <guyle@mellanox.com>
Reviewed-by: Yishai Hadas <yishaih@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/infiniband/hw/mlx4/qp.c |   16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

--- a/drivers/infiniband/hw/mlx4/qp.c
+++ b/drivers/infiniband/hw/mlx4/qp.c
@@ -2182,11 +2182,6 @@ static int __mlx4_ib_modify_qp(void *src
 	context->flags = cpu_to_be32((to_mlx4_state(new_state) << 28) |
 				     (to_mlx4_st(dev, qp->mlx4_ib_qp_type) << 16));
 
-	if (rwq_ind_tbl) {
-		fill_qp_rss_context(context, qp);
-		context->flags |= cpu_to_be32(1 << MLX4_RSS_QPC_FLAG_OFFSET);
-	}
-
 	if (!(attr_mask & IB_QP_PATH_MIG_STATE))
 		context->flags |= cpu_to_be32(MLX4_QP_PM_MIGRATED << 11);
 	else {
@@ -2387,6 +2382,7 @@ static int __mlx4_ib_modify_qp(void *src
 	context->pd = cpu_to_be32(pd->pdn);
 
 	if (!rwq_ind_tbl) {
+		context->params1 = cpu_to_be32(MLX4_IB_ACK_REQ_FREQ << 28);
 		get_cqs(qp, src_type, &send_cq, &recv_cq);
 	} else { /* Set dummy CQs to be compatible with HV and PRM */
 		send_cq = to_mcq(rwq_ind_tbl->ind_tbl[0]->cq);
@@ -2394,7 +2390,6 @@ static int __mlx4_ib_modify_qp(void *src
 	}
 	context->cqn_send = cpu_to_be32(send_cq->mcq.cqn);
 	context->cqn_recv = cpu_to_be32(recv_cq->mcq.cqn);
-	context->params1  = cpu_to_be32(MLX4_IB_ACK_REQ_FREQ << 28);
 
 	/* Set "fast registration enabled" for all kernel QPs */
 	if (!ibuobject)
@@ -2513,7 +2508,7 @@ static int __mlx4_ib_modify_qp(void *src
 					MLX4_IB_LINK_TYPE_ETH;
 		if (dev->dev->caps.tunnel_offload_mode ==  MLX4_TUNNEL_OFFLOAD_MODE_VXLAN) {
 			/* set QP to receive both tunneled & non-tunneled packets */
-			if (!(context->flags & cpu_to_be32(1 << MLX4_RSS_QPC_FLAG_OFFSET)))
+			if (!rwq_ind_tbl)
 				context->srqn = cpu_to_be32(7 << 28);
 		}
 	}
@@ -2562,6 +2557,13 @@ static int __mlx4_ib_modify_qp(void *src
 		}
 	}
 
+	if (rwq_ind_tbl	&&
+	    cur_state == IB_QPS_RESET &&
+	    new_state == IB_QPS_INIT) {
+		fill_qp_rss_context(context, qp);
+		context->flags |= cpu_to_be32(1 << MLX4_RSS_QPC_FLAG_OFFSET);
+	}
+
 	err = mlx4_qp_modify(dev->dev, &qp->mtt, to_mlx4_state(cur_state),
 			     to_mlx4_state(new_state), context, optpar,
 			     sqd_event, &qp->mqp);

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

* [PATCH 4.14 049/178] sfc: dont warn on successful change of MAC
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (45 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 047/178] IB/mlx4: Fix RSSs QPC attributes assignments Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 050/178] fbdev: controlfb: Add missing modes to fix out of bounds access Greg Kroah-Hartman
                   ` (115 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Bert Kenward, David S. Miller, Sasha Levin

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

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

From: Robert Stonehouse <rstonehouse@solarflare.com>


[ Upstream commit cbad52e92ad7f01f0be4ca58bde59462dc1afe3a ]

Fixes: 535a61777f44e ("sfc: suppress handled MCDI failures when changing the MAC address")
Signed-off-by: Bert Kenward <bkenward@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/net/ethernet/sfc/ef10.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/net/ethernet/sfc/ef10.c
+++ b/drivers/net/ethernet/sfc/ef10.c
@@ -5726,7 +5726,7 @@ static int efx_ef10_set_mac_address(stru
 		 * MCFW do not support VFs.
 		 */
 		rc = efx_ef10_vport_set_mac_address(efx);
-	} else {
+	} else if (rc) {
 		efx_mcdi_display_error(efx, MC_CMD_VADAPTOR_SET_MAC,
 				       sizeof(inbuf), NULL, 0, rc);
 	}

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

* [PATCH 4.14 050/178] fbdev: controlfb: Add missing modes to fix out of bounds access
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (46 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 049/178] sfc: dont warn on successful change of MAC Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 051/178] video: udlfb: Fix read EDID timeout Greg Kroah-Hartman
                   ` (114 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Dan Carpenter, Geert Uytterhoeven,
	Benjamin Herrenschmidt, Bartlomiej Zolnierkiewicz, Sasha Levin

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

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

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


[ Upstream commit ac831a379d34109451b3c41a44a20ee10ecb615f ]

Dan's static analysis says:

    drivers/video/fbdev/controlfb.c:560 control_setup()
    error: buffer overflow 'control_mac_modes' 20 <= 21

Indeed, control_mac_modes[] has only 20 elements, while VMODE_MAX is 22,
which may lead to an out of bounds read when parsing vmode commandline
options.

The bug was introduced in v2.4.5.6, when 2 new modes were added to
macmodes.h, but control_mac_modes[] wasn't updated:

https://kernel.opensuse.org/cgit/kernel/diff/include/video/macmodes.h?h=v2.5.2&id=29f279c764808560eaceb88fef36cbc35c529aad

Augment control_mac_modes[] with the two new video modes to fix this.

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Dan Carpenter <dan.carpenter@oracle.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/video/fbdev/controlfb.h |    2 ++
 1 file changed, 2 insertions(+)

--- a/drivers/video/fbdev/controlfb.h
+++ b/drivers/video/fbdev/controlfb.h
@@ -141,5 +141,7 @@ static struct max_cmodes control_mac_mod
 	{{ 1, 2}},	/* 1152x870, 75Hz */
 	{{ 0, 1}},	/* 1280x960, 75Hz */
 	{{ 0, 1}},	/* 1280x1024, 75Hz */
+	{{ 1, 2}},	/* 1152x768, 60Hz */
+	{{ 0, 1}},	/* 1600x1024, 60Hz */
 };
 

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

* [PATCH 4.14 051/178] video: udlfb: Fix read EDID timeout
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (47 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 050/178] fbdev: controlfb: Add missing modes to fix out of bounds access Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 052/178] video: fbdev: au1200fb: Release some resources if a memory allocation fails Greg Kroah-Hartman
                   ` (113 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Ladislav Michl, Bernie Thompson,
	Bartlomiej Zolnierkiewicz, Sasha Levin

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

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

From: Ladislav Michl <ladis@linux-mips.org>


[ Upstream commit c98769475575c8a585f5b3952f4b5f90266f699b ]

While usb_control_msg function expects timeout in miliseconds, a value
of HZ is used. Replace it with USB_CTRL_GET_TIMEOUT and also fix error
message which looks like:
udlfb: Read EDID byte 78 failed err ffffff92
as error is either negative errno or number of bytes transferred use %d
format specifier.

Returned EDID is in second byte, so return error when less than two bytes
are received.

Fixes: 18dffdf8913a ("staging: udlfb: enhance EDID and mode handling support")
Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
Cc: Bernie Thompson <bernie@plugable.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/video/fbdev/udlfb.c |   10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

--- a/drivers/video/fbdev/udlfb.c
+++ b/drivers/video/fbdev/udlfb.c
@@ -769,11 +769,11 @@ static int dlfb_get_edid(struct dlfb_dat
 
 	for (i = 0; i < len; i++) {
 		ret = usb_control_msg(dev->udev,
-				    usb_rcvctrlpipe(dev->udev, 0), (0x02),
-				    (0x80 | (0x02 << 5)), i << 8, 0xA1, rbuf, 2,
-				    HZ);
-		if (ret < 1) {
-			pr_err("Read EDID byte %d failed err %x\n", i, ret);
+				      usb_rcvctrlpipe(dev->udev, 0), 0x02,
+				      (0x80 | (0x02 << 5)), i << 8, 0xA1,
+				      rbuf, 2, USB_CTRL_GET_TIMEOUT);
+		if (ret < 2) {
+			pr_err("Read EDID byte %d failed: %d\n", i, ret);
 			i--;
 			break;
 		}

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

* [PATCH 4.14 052/178] video: fbdev: au1200fb: Release some resources if a memory allocation fails
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (48 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 051/178] video: udlfb: Fix read EDID timeout Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 053/178] video: fbdev: au1200fb: Return an error code " Greg Kroah-Hartman
                   ` (112 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Christophe JAILLET, Tejun Heo,
	Bartlomiej Zolnierkiewicz, Sasha Levin

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

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

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


[ Upstream commit 451f130602619a17c8883dd0b71b11624faffd51 ]

We should go through the error handling code instead of returning -ENOMEM
directly.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Cc: Tejun Heo <tj@kernel.org>
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/video/fbdev/au1200fb.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/drivers/video/fbdev/au1200fb.c
+++ b/drivers/video/fbdev/au1200fb.c
@@ -1701,7 +1701,8 @@ static int au1200fb_drv_probe(struct pla
 		if (!fbdev->fb_mem) {
 			print_err("fail to allocate frambuffer (size: %dK))",
 				  fbdev->fb_len / 1024);
-			return -ENOMEM;
+			ret = -ENOMEM;
+			goto failed;
 		}
 
 		/*

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

* [PATCH 4.14 053/178] video: fbdev: au1200fb: Return an error code if a memory allocation fails
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (49 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 052/178] video: fbdev: au1200fb: Release some resources if a memory allocation fails Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 054/178] rtc: pcf8563: fix output clock rate Greg Kroah-Hartman
                   ` (111 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Christophe JAILLET, Tejun Heo,
	Bartlomiej Zolnierkiewicz, Sasha Levin

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

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

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


[ Upstream commit 8cae353e6b01ac3f18097f631cdbceb5ff28c7f3 ]

'ret' is known to be 0 at this point.
In case of memory allocation error in 'framebuffer_alloc()', return
-ENOMEM instead.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Cc: Tejun Heo <tj@kernel.org>
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/video/fbdev/au1200fb.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

--- a/drivers/video/fbdev/au1200fb.c
+++ b/drivers/video/fbdev/au1200fb.c
@@ -1681,8 +1681,10 @@ static int au1200fb_drv_probe(struct pla
 
 		fbi = framebuffer_alloc(sizeof(struct au1200fb_device),
 					&dev->dev);
-		if (!fbi)
+		if (!fbi) {
+			ret = -ENOMEM;
 			goto failed;
+		}
 
 		_au1200fb_infos[plane] = fbi;
 		fbdev = fbi->par;

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

* [PATCH 4.14 054/178] rtc: pcf8563: fix output clock rate
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (50 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 053/178] video: fbdev: au1200fb: Return an error code " Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 055/178] scsi: aacraid: use timespec64 instead of timeval Greg Kroah-Hartman
                   ` (110 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Philipp Zabel, Alexandre Belloni,
	Sasha Levin

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

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

From: Philipp Zabel <p.zabel@pengutronix.de>


[ Upstream commit a3350f9c57ffad569c40f7320b89da1f3061c5bb ]

The pcf8563_clkout_recalc_rate function erroneously ignores the
frequency index read from the CLKO register and always returns
32768 Hz.

Fixes: a39a6405d5f9 ("rtc: pcf8563: add CLKOUT to common clock framework")
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/rtc/rtc-pcf8563.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/rtc/rtc-pcf8563.c
+++ b/drivers/rtc/rtc-pcf8563.c
@@ -422,7 +422,7 @@ static unsigned long pcf8563_clkout_reca
 		return 0;
 
 	buf &= PCF8563_REG_CLKO_F_MASK;
-	return clkout_rates[ret];
+	return clkout_rates[buf];
 }
 
 static long pcf8563_clkout_round_rate(struct clk_hw *hw, unsigned long rate,

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

* [PATCH 4.14 055/178] scsi: aacraid: use timespec64 instead of timeval
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (51 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 054/178] rtc: pcf8563: fix output clock rate Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 057/178] PM / s2idle: Clear the events_check_enabled flag Greg Kroah-Hartman
                   ` (109 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Arnd Bergmann, Dave Carroll,
	Martin K. Petersen, Sasha Levin

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

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

From: Arnd Bergmann <arnd@arndb.de>


[ Upstream commit 820f188659122602ab217dd80cfa32b3ac0c55c0 ]

aacraid passes the current time to the firmware in one of two ways,
either as year/month/day/... or as 32-bit unsigned seconds.

The first one is broken on 32-bit architectures as it cannot go past
year 2038. Using timespec64 here makes it behave properly on both 32-bit
and 64-bit architectures, and avoids relying on signed integer overflow
to pass times into the second interface.

The interface used in aac_send_hosttime() however is still problematic
in year 2106 when 32-bit seconds overflow. Hopefully we don't have to
worry about aacraid by that time.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Dave Carroll <david.carroll@microsemi.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/scsi/aacraid/commsup.c |   26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

--- a/drivers/scsi/aacraid/commsup.c
+++ b/drivers/scsi/aacraid/commsup.c
@@ -2383,19 +2383,19 @@ fib_free_out:
 	goto out;
 }
 
-int aac_send_safw_hostttime(struct aac_dev *dev, struct timeval *now)
+int aac_send_safw_hostttime(struct aac_dev *dev, struct timespec64 *now)
 {
 	struct tm cur_tm;
 	char wellness_str[] = "<HW>TD\010\0\0\0\0\0\0\0\0\0DW\0\0ZZ";
 	u32 datasize = sizeof(wellness_str);
-	unsigned long local_time;
+	time64_t local_time;
 	int ret = -ENODEV;
 
 	if (!dev->sa_firmware)
 		goto out;
 
-	local_time = (u32)(now->tv_sec - (sys_tz.tz_minuteswest * 60));
-	time_to_tm(local_time, 0, &cur_tm);
+	local_time = (now->tv_sec - (sys_tz.tz_minuteswest * 60));
+	time64_to_tm(local_time, 0, &cur_tm);
 	cur_tm.tm_mon += 1;
 	cur_tm.tm_year += 1900;
 	wellness_str[8] = bin2bcd(cur_tm.tm_hour);
@@ -2412,7 +2412,7 @@ out:
 	return ret;
 }
 
-int aac_send_hosttime(struct aac_dev *dev, struct timeval *now)
+int aac_send_hosttime(struct aac_dev *dev, struct timespec64 *now)
 {
 	int ret = -ENOMEM;
 	struct fib *fibptr;
@@ -2424,7 +2424,7 @@ int aac_send_hosttime(struct aac_dev *de
 
 	aac_fib_init(fibptr);
 	info = (__le32 *)fib_data(fibptr);
-	*info = cpu_to_le32(now->tv_sec);
+	*info = cpu_to_le32(now->tv_sec); /* overflow in y2106 */
 	ret = aac_fib_send(SendHostTime, fibptr, sizeof(*info), FsaNormal,
 					1, 1, NULL, NULL);
 
@@ -2496,7 +2496,7 @@ int aac_command_thread(void *data)
 		}
 		if (!time_before(next_check_jiffies,next_jiffies)
 		 && ((difference = next_jiffies - jiffies) <= 0)) {
-			struct timeval now;
+			struct timespec64 now;
 			int ret;
 
 			/* Don't even try to talk to adapter if its sick */
@@ -2506,15 +2506,15 @@ int aac_command_thread(void *data)
 			next_check_jiffies = jiffies
 					   + ((long)(unsigned)check_interval)
 					   * HZ;
-			do_gettimeofday(&now);
+			ktime_get_real_ts64(&now);
 
 			/* Synchronize our watches */
-			if (((1000000 - (1000000 / HZ)) > now.tv_usec)
-			 && (now.tv_usec > (1000000 / HZ)))
-				difference = (((1000000 - now.tv_usec) * HZ)
-				  + 500000) / 1000000;
+			if (((NSEC_PER_SEC - (NSEC_PER_SEC / HZ)) > now.tv_nsec)
+			 && (now.tv_nsec > (NSEC_PER_SEC / HZ)))
+				difference = (((NSEC_PER_SEC - now.tv_nsec) * HZ)
+				  + NSEC_PER_SEC / 2) / NSEC_PER_SEC;
 			else {
-				if (now.tv_usec > 500000)
+				if (now.tv_nsec > NSEC_PER_SEC / 2)
 					++now.tv_sec;
 
 				if (dev->sa_firmware)

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

* [PATCH 4.14 057/178] PM / s2idle: Clear the events_check_enabled flag
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (52 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 055/178] scsi: aacraid: use timespec64 instead of timeval Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 058/178] ASoC: Intel: Skylake: Fix uuid_module memory leak in failure case Greg Kroah-Hartman
                   ` (108 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Rajat Jain, Pavel Machek,
	Rafael J. Wysocki, Sasha Levin

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

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

From: Rajat Jain <rajatja@google.com>


[ Upstream commit 95b982b45122c57da2ee0b46cce70775e1d987af ]

Problem: This flag does not get cleared currently in the suspend or
resume path in the following cases:

 * In case some driver's suspend routine returns an error.
 * Successful s2idle case
 * etc?

Why is this a problem: What happens is that the next suspend attempt
could fail even though the user did not enable the flag by writing to
/sys/power/wakeup_count. This is 1 use case how the issue can be seen
(but similar use case with driver suspend failure can be thought of):

 1. Read /sys/power/wakeup_count
 2. echo count > /sys/power/wakeup_count
 3. echo freeze > /sys/power/wakeup_count
 4. Let the system suspend, and wakeup the system using some wake source
    that calls pm_wakeup_event() e.g. power button or something.
 5. Note that the combined wakeup count would be incremented due
    to the pm_wakeup_event() in the resume path.
 6. After resuming the events_check_enabled flag is still set.

At this point if the user attempts to freeze again (without writing to
/sys/power/wakeup_count), the suspend would fail even though there has
been no wake event since the past resume.

Address that by clearing the flag just before a resume is completed,
so that it is always cleared for the corner cases mentioned above.

Signed-off-by: Rajat Jain <rajatja@google.com>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 kernel/power/suspend.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/kernel/power/suspend.c
+++ b/kernel/power/suspend.c
@@ -437,7 +437,6 @@ static int suspend_enter(suspend_state_t
 			error = suspend_ops->enter(state);
 			trace_suspend_resume(TPS("machine_suspend"),
 				state, false);
-			events_check_enabled = false;
 		} else if (*wakeup) {
 			error = -EBUSY;
 		}
@@ -582,6 +581,7 @@ static int enter_state(suspend_state_t s
 	pm_restore_gfp_mask();
 
  Finish:
+	events_check_enabled = false;
 	pm_pr_dbg("Finishing wakeup.\n");
 	suspend_finish();
  Unlock:

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

* [PATCH 4.14 058/178] ASoC: Intel: Skylake: Fix uuid_module memory leak in failure case
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (53 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 057/178] PM / s2idle: Clear the events_check_enabled flag Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 059/178] dmaengine: ti-dma-crossbar: Correct am335x/am43xx mux value type Greg Kroah-Hartman
                   ` (107 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Pankaj Bharadiya, Guneshwor Singh,
	Vinod Koul, Mark Brown, Sasha Levin

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

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

From: Pankaj Bharadiya <pankaj.laxminarayan.bharadiya@intel.com>


[ Upstream commit f8e066521192c7debe59127d90abbe2773577e25 ]

In the loop that adds the uuid_module to the uuid_list list, allocated
memory is not properly freed in the error path free uuid_list whenever
any of the memory allocation in the loop fails to avoid memory leak.

Signed-off-by: Pankaj Bharadiya <pankaj.laxminarayan.bharadiya@intel.com>
Signed-off-by: Guneshwor Singh <guneshwor.o.singh@intel.com>
Acked-By: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 sound/soc/intel/skylake/skl-sst-utils.c |   15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

--- a/sound/soc/intel/skylake/skl-sst-utils.c
+++ b/sound/soc/intel/skylake/skl-sst-utils.c
@@ -251,6 +251,7 @@ int snd_skl_parse_uuids(struct sst_dsp *
 	struct uuid_module *module;
 	struct firmware stripped_fw;
 	unsigned int safe_file;
+	int ret = 0;
 
 	/* Get the FW pointer to derive ADSP header */
 	stripped_fw.data = fw->data;
@@ -299,8 +300,10 @@ int snd_skl_parse_uuids(struct sst_dsp *
 
 	for (i = 0; i < num_entry; i++, mod_entry++) {
 		module = kzalloc(sizeof(*module), GFP_KERNEL);
-		if (!module)
-			return -ENOMEM;
+		if (!module) {
+			ret = -ENOMEM;
+			goto free_uuid_list;
+		}
 
 		uuid_bin = (uuid_le *)mod_entry->uuid.id;
 		memcpy(&module->uuid, uuid_bin, sizeof(module->uuid));
@@ -311,8 +314,8 @@ int snd_skl_parse_uuids(struct sst_dsp *
 		size = sizeof(int) * mod_entry->instance_max_count;
 		module->instance_id = devm_kzalloc(ctx->dev, size, GFP_KERNEL);
 		if (!module->instance_id) {
-			kfree(module);
-			return -ENOMEM;
+			ret = -ENOMEM;
+			goto free_uuid_list;
 		}
 
 		list_add_tail(&module->list, &skl->uuid_list);
@@ -323,6 +326,10 @@ int snd_skl_parse_uuids(struct sst_dsp *
 	}
 
 	return 0;
+
+free_uuid_list:
+	skl_freeup_uuid_list(skl);
+	return ret;
 }
 
 void skl_freeup_uuid_list(struct skl_sst *ctx)

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

* [PATCH 4.14 059/178] dmaengine: ti-dma-crossbar: Correct am335x/am43xx mux value type
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (54 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 058/178] ASoC: Intel: Skylake: Fix uuid_module memory leak in failure case Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 060/178] mlxsw: spectrum: Fix error return code in mlxsw_sp_port_create() Greg Kroah-Hartman
                   ` (106 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Peter Ujfalusi, Vinod Koul, Sasha Levin

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

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

From: Peter Ujfalusi <peter.ujfalusi@ti.com>


[ Upstream commit 288e7560e4d3e259aa28f8f58a8dfe63627a1bf6 ]

The used 0x1f mask is only valid for am335x family of SoC, different family
using this type of crossbar might have different number of electable
events. In case of am43xx family 0x3f mask should have been used for
example.
Instead of trying to handle each family's mask, just use u8 type to store
the mux value since the event offsets are aligned to byte offset.

Fixes: 42dbdcc6bf965 ("dmaengine: ti-dma-crossbar: Add support for crossbar on AM33xx/AM43xx")
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/dma/ti-dma-crossbar.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

--- a/drivers/dma/ti-dma-crossbar.c
+++ b/drivers/dma/ti-dma-crossbar.c
@@ -49,12 +49,12 @@ struct ti_am335x_xbar_data {
 
 struct ti_am335x_xbar_map {
 	u16 dma_line;
-	u16 mux_val;
+	u8 mux_val;
 };
 
-static inline void ti_am335x_xbar_write(void __iomem *iomem, int event, u16 val)
+static inline void ti_am335x_xbar_write(void __iomem *iomem, int event, u8 val)
 {
-	writeb_relaxed(val & 0x1f, iomem + event);
+	writeb_relaxed(val, iomem + event);
 }
 
 static void ti_am335x_xbar_free(struct device *dev, void *route_data)
@@ -105,7 +105,7 @@ static void *ti_am335x_xbar_route_alloca
 	}
 
 	map->dma_line = (u16)dma_spec->args[0];
-	map->mux_val = (u16)dma_spec->args[2];
+	map->mux_val = (u8)dma_spec->args[2];
 
 	dma_spec->args[2] = 0;
 	dma_spec->args_count = 2;

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

* [PATCH 4.14 060/178] mlxsw: spectrum: Fix error return code in mlxsw_sp_port_create()
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (55 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 059/178] dmaengine: ti-dma-crossbar: Correct am335x/am43xx mux value type Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 061/178] PCI/PME: Handle invalid data when reading Root Status Greg Kroah-Hartman
                   ` (105 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Wei Yongjun, Ido Schimmel,
	David S. Miller, Sasha Levin

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

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

From: Wei Yongjun <weiyongjun1@huawei.com>


[ Upstream commit d86fd113ebbb37726ef7c7cc6fd6d5ce377455d6 ]

Fix to return a negative error code from the VID  create error handling
case instead of 0, as done elsewhere in this function.

Fixes: c57529e1d5d8 ("mlxsw: spectrum: Replace vPorts with Port-VLAN")
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Reviewed-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/net/ethernet/mellanox/mlxsw/spectrum.c |    1 +
 1 file changed, 1 insertion(+)

--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
@@ -2974,6 +2974,7 @@ static int mlxsw_sp_port_create(struct m
 	if (IS_ERR(mlxsw_sp_port_vlan)) {
 		dev_err(mlxsw_sp->bus_info->dev, "Port %d: Failed to create VID 1\n",
 			mlxsw_sp_port->local_port);
+		err = PTR_ERR(mlxsw_sp_port_vlan);
 		goto err_port_vlan_get;
 	}
 

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

* [PATCH 4.14 061/178] PCI/PME: Handle invalid data when reading Root Status
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (56 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 060/178] mlxsw: spectrum: Fix error return code in mlxsw_sp_port_create() Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 062/178] powerpc/powernv/cpufreq: Fix the frequency read by /proc/cpuinfo Greg Kroah-Hartman
                   ` (104 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Qiang Zheng, Bjorn Helgaas, Sasha Levin

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

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

From: Qiang <zhengqiang10@huawei.com>


[ Upstream commit 3ad3f8ce50914288731a3018b27ee44ab803e170 ]

PCIe PME and native hotplug share the same interrupt number, so hotplug
interrupts are also processed by PME.  In some cases, e.g., a Link Down
interrupt, a device may be present but unreachable, so when we try to
read its Root Status register, the read fails and we get all ones data
(0xffffffff).

Previously, we interpreted that data as PCI_EXP_RTSTA_PME being set, i.e.,
"some device has asserted PME," so we scheduled pcie_pme_work_fn().  This
caused an infinite loop because pcie_pme_work_fn() tried to handle PME
requests until PCI_EXP_RTSTA_PME is cleared, but with the link down,
PCI_EXP_RTSTA_PME can't be cleared.

Check for the invalid 0xffffffff data everywhere we read the Root Status
register.

1469d17dd341 ("PCI: pciehp: Handle invalid data when reading from
non-existent devices") added similar checks in the hotplug driver.

Signed-off-by: Qiang Zheng <zhengqiang10@huawei.com>
[bhelgaas: changelog, also check in pcie_pme_work_fn(), use "~0" to follow
other similar checks]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>

Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/pci/pcie/pme.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

--- a/drivers/pci/pcie/pme.c
+++ b/drivers/pci/pcie/pme.c
@@ -226,6 +226,9 @@ static void pcie_pme_work_fn(struct work
 			break;
 
 		pcie_capability_read_dword(port, PCI_EXP_RTSTA, &rtsta);
+		if (rtsta == (u32) ~0)
+			break;
+
 		if (rtsta & PCI_EXP_RTSTA_PME) {
 			/*
 			 * Clear PME status of the port.  If there are other
@@ -273,7 +276,7 @@ static irqreturn_t pcie_pme_irq(int irq,
 	spin_lock_irqsave(&data->lock, flags);
 	pcie_capability_read_dword(port, PCI_EXP_RTSTA, &rtsta);
 
-	if (!(rtsta & PCI_EXP_RTSTA_PME)) {
+	if (rtsta == (u32) ~0 || !(rtsta & PCI_EXP_RTSTA_PME)) {
 		spin_unlock_irqrestore(&data->lock, flags);
 		return IRQ_NONE;
 	}

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

* [PATCH 4.14 062/178] powerpc/powernv/cpufreq: Fix the frequency read by /proc/cpuinfo
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (57 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 061/178] PCI/PME: Handle invalid data when reading Root Status Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 063/178] PCI: Do not allocate more buses than available in parent Greg Kroah-Hartman
                   ` (103 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Shriya, Michael Ellerman, Sasha Levin

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

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

From: Shriya <shriyak@linux.vnet.ibm.com>


[ Upstream commit cd77b5ce208c153260ed7882d8910f2395bfaabd ]

The call to /proc/cpuinfo in turn calls cpufreq_quick_get() which
returns the last frequency requested by the kernel, but may not
reflect the actual frequency the processor is running at. This patch
makes a call to cpufreq_get() instead which returns the current
frequency reported by the hardware.

Fixes: fb5153d05a7d ("powerpc: powernv: Implement ppc_md.get_proc_freq()")
Signed-off-by: Shriya <shriyak@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 arch/powerpc/platforms/powernv/setup.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/arch/powerpc/platforms/powernv/setup.c
+++ b/arch/powerpc/platforms/powernv/setup.c
@@ -319,7 +319,7 @@ static unsigned long pnv_get_proc_freq(u
 {
 	unsigned long ret_freq;
 
-	ret_freq = cpufreq_quick_get(cpu) * 1000ul;
+	ret_freq = cpufreq_get(cpu) * 1000ul;
 
 	/*
 	 * If the backend cpufreq driver does not exist,

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

* [PATCH 4.14 063/178] PCI: Do not allocate more buses than available in parent
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (58 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 062/178] powerpc/powernv/cpufreq: Fix the frequency read by /proc/cpuinfo Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 064/178] iommu/mediatek: Fix driver name Greg Kroah-Hartman
                   ` (102 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Mika Westerberg, Bjorn Helgaas, Sasha Levin

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

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

From: Mika Westerberg <mika.westerberg@linux.intel.com>


[ Upstream commit a20c7f36bd3d20d245616ae223bb9d05dfb6f050 ]

One can ask more buses to be reserved for hotplug bridges by passing
pci=hpbussize=N in the kernel command line.  If the parent bus does not
have enough bus space available we incorrectly create child bus with the
requested number of subordinate buses.

In the example below hpbussize is set to one more than we have available
buses in the root port:

  pci 0000:07:00.0: [8086:1578] type 01 class 0x060400
  pci 0000:07:00.0: scanning [bus 00-00] behind bridge, pass 0
  pci 0000:07:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
  pci 0000:07:00.0: scanning [bus 00-00] behind bridge, pass 1
  pci_bus 0000:08: busn_res: can not insert [bus 08-ff] under [bus 07-3f] (conflicts with (null) [bus 07-3f])
  pci_bus 0000:08: scanning bus
  ...
  pci_bus 0000:0a: bus scan returning with max=40
  pci_bus 0000:0a: busn_res: [bus 0a-ff] end is updated to 40
  pci_bus 0000:0a: [bus 0a-40] partially hidden behind bridge 0000:07 [bus 07-3f]
  pci_bus 0000:08: bus scan returning with max=40
  pci_bus 0000:08: busn_res: [bus 08-ff] end is updated to 40

Instead of allowing this, limit the subordinate number to be less than or
equal the maximum subordinate number allocated for the parent bus (if it
has any).

Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
[bhelgaas: remove irrelevant dmesg messages]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>

Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/pci/probe.c |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -1076,7 +1076,8 @@ int pci_scan_bridge(struct pci_bus *bus,
 			child = pci_add_new_bus(bus, dev, max+1);
 			if (!child)
 				goto out;
-			pci_bus_insert_busn_res(child, max+1, 0xff);
+			pci_bus_insert_busn_res(child, max+1,
+						bus->busn_res.end);
 		}
 		max++;
 		buses = (buses & 0xff000000)
@@ -2433,6 +2434,10 @@ unsigned int pci_scan_child_bus(struct p
 	if (bus->self && bus->self->is_hotplug_bridge && pci_hotplug_bus_size) {
 		if (max - bus->busn_res.start < pci_hotplug_bus_size - 1)
 			max = bus->busn_res.start + pci_hotplug_bus_size - 1;
+
+		/* Do not allocate more buses than we have room left */
+		if (max > bus->busn_res.end)
+			max = bus->busn_res.end;
 	}
 
 	/*

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

* [PATCH 4.14 064/178] iommu/mediatek: Fix driver name
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (59 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 063/178] PCI: Do not allocate more buses than available in parent Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 066/178] netfilter: ipvs: Fix inappropriate output of procfs Greg Kroah-Hartman
                   ` (101 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Matthias Brugger, Alex Williamson,
	Sasha Levin

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

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

From: Matthias Brugger <matthias.bgg@gmail.com>


[ Upstream commit 395df08d2e1de238a9c8c33fdcd0e2160efd63a9 ]

There exist two Mediatek iommu drivers for the two different
generations of the device. But both drivers have the same name
"mtk-iommu". This breaks the registration of the second driver:

Error: Driver 'mtk-iommu' is already registered, aborting...

Fix this by changing the name for first generation to
"mtk-iommu-v1".

Fixes: b17336c55d89 ("iommu/mediatek: add support for mtk iommu generation one HW")
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/iommu/mtk_iommu_v1.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/iommu/mtk_iommu_v1.c
+++ b/drivers/iommu/mtk_iommu_v1.c
@@ -708,7 +708,7 @@ static struct platform_driver mtk_iommu_
 	.probe	= mtk_iommu_probe,
 	.remove	= mtk_iommu_remove,
 	.driver	= {
-		.name = "mtk-iommu",
+		.name = "mtk-iommu-v1",
 		.of_match_table = mtk_iommu_of_ids,
 		.pm = &mtk_iommu_pm_ops,
 	}

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

* [PATCH 4.14 066/178] netfilter: ipvs: Fix inappropriate output of procfs
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (60 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 064/178] iommu/mediatek: Fix driver name Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 067/178] powerpc/opal: Fix EBUSY bug in acquiring tokens Greg Kroah-Hartman
                   ` (100 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, KUWAZAWA Takuya, Julian Anastasov,
	Pablo Neira Ayuso, Sasha Levin

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

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

From: KUWAZAWA Takuya <albatross0@gmail.com>


[ Upstream commit c5504f724c86ee925e7ffb80aa342cfd57959b13 ]

Information about ipvs in different network namespace can be seen via procfs.

How to reproduce:

  # ip netns add ns01
  # ip netns add ns02
  # ip netns exec ns01 ip a add dev lo 127.0.0.1/8
  # ip netns exec ns02 ip a add dev lo 127.0.0.1/8
  # ip netns exec ns01 ipvsadm -A -t 10.1.1.1:80
  # ip netns exec ns02 ipvsadm -A -t 10.1.1.2:80

The ipvsadm displays information about its own network namespace only.

  # ip netns exec ns01 ipvsadm -Ln
  IP Virtual Server version 1.2.1 (size=4096)
  Prot LocalAddress:Port Scheduler Flags
    -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
  TCP  10.1.1.1:80 wlc

  # ip netns exec ns02 ipvsadm -Ln
  IP Virtual Server version 1.2.1 (size=4096)
  Prot LocalAddress:Port Scheduler Flags
    -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
  TCP  10.1.1.2:80 wlc

But I can see information about other network namespace via procfs.

  # ip netns exec ns01 cat /proc/net/ip_vs
  IP Virtual Server version 1.2.1 (size=4096)
  Prot LocalAddress:Port Scheduler Flags
    -> RemoteAddress:Port Forward Weight ActiveConn InActConn
  TCP  0A010101:0050 wlc
  TCP  0A010102:0050 wlc

  # ip netns exec ns02 cat /proc/net/ip_vs
  IP Virtual Server version 1.2.1 (size=4096)
  Prot LocalAddress:Port Scheduler Flags
    -> RemoteAddress:Port Forward Weight ActiveConn InActConn
  TCP  0A010102:0050 wlc

Signed-off-by: KUWAZAWA Takuya <albatross0@gmail.com>
Acked-by: Julian Anastasov <ja@ssi.bg>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/netfilter/ipvs/ip_vs_ctl.c |    4 ++++
 1 file changed, 4 insertions(+)

--- a/net/netfilter/ipvs/ip_vs_ctl.c
+++ b/net/netfilter/ipvs/ip_vs_ctl.c
@@ -2034,12 +2034,16 @@ static int ip_vs_info_seq_show(struct se
 		seq_puts(seq,
 			 "  -> RemoteAddress:Port Forward Weight ActiveConn InActConn\n");
 	} else {
+		struct net *net = seq_file_net(seq);
+		struct netns_ipvs *ipvs = net_ipvs(net);
 		const struct ip_vs_service *svc = v;
 		const struct ip_vs_iter *iter = seq->private;
 		const struct ip_vs_dest *dest;
 		struct ip_vs_scheduler *sched = rcu_dereference(svc->scheduler);
 		char *sched_name = sched ? sched->name : "none";
 
+		if (svc->ipvs != ipvs)
+			return 0;
 		if (iter->table == ip_vs_svc_table) {
 #ifdef CONFIG_IP_VS_IPV6
 			if (svc->af == AF_INET6)

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

* [PATCH 4.14 067/178] powerpc/opal: Fix EBUSY bug in acquiring tokens
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (61 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 066/178] netfilter: ipvs: Fix inappropriate output of procfs Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 068/178] powerpc/ipic: Fix status get and status clear Greg Kroah-Hartman
                   ` (99 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, William A. Kennington III,
	Michael Ellerman, Sasha Levin

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

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

From: "William A. Kennington III" <wak@google.com>


[ Upstream commit 71e24d7731a2903b1ae2bba2b2971c654d9c2aa6 ]

The current code checks the completion map to look for the first token
that is complete. In some cases, a completion can come in but the
token can still be on lease to the caller processing the completion.
If this completed but unreleased token is the first token found in the
bitmap by another tasks trying to acquire a token, then the
__test_and_set_bit call will fail since the token will still be on
lease. The acquisition will then fail with an EBUSY.

This patch reorganizes the acquisition code to look at the
opal_async_token_map for an unleased token. If the token has no lease
it must have no outstanding completions so we should never see an
EBUSY, unless we have leased out too many tokens. Since
opal_async_get_token_inrerruptible is protected by a semaphore, we
will practically never see EBUSY anymore.

Fixes: 8d7248232208 ("powerpc/powernv: Infrastructure to support OPAL async completion")
Signed-off-by: William A. Kennington III <wak@google.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 arch/powerpc/platforms/powernv/opal-async.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

--- a/arch/powerpc/platforms/powernv/opal-async.c
+++ b/arch/powerpc/platforms/powernv/opal-async.c
@@ -39,18 +39,18 @@ int __opal_async_get_token(void)
 	int token;
 
 	spin_lock_irqsave(&opal_async_comp_lock, flags);
-	token = find_first_bit(opal_async_complete_map, opal_max_async_tokens);
+	token = find_first_zero_bit(opal_async_token_map, opal_max_async_tokens);
 	if (token >= opal_max_async_tokens) {
 		token = -EBUSY;
 		goto out;
 	}
 
-	if (__test_and_set_bit(token, opal_async_token_map)) {
+	if (!__test_and_clear_bit(token, opal_async_complete_map)) {
 		token = -EBUSY;
 		goto out;
 	}
 
-	__clear_bit(token, opal_async_complete_map);
+	__set_bit(token, opal_async_token_map);
 
 out:
 	spin_unlock_irqrestore(&opal_async_comp_lock, flags);

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

* [PATCH 4.14 068/178] powerpc/ipic: Fix status get and status clear
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (62 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 067/178] powerpc/opal: Fix EBUSY bug in acquiring tokens Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 069/178] powerpc/pseries/vio: Dispose of virq mapping on vdevice unregister Greg Kroah-Hartman
                   ` (98 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Christophe Leroy, Michael Ellerman,
	Sasha Levin

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

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

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


[ Upstream commit 6b148a7ce72a7f87c81cbcde48af014abc0516a9 ]

IPIC Status is provided by register IPIC_SERSR and not by IPIC_SERMR
which is the mask register.

Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 arch/powerpc/sysdev/ipic.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/arch/powerpc/sysdev/ipic.c
+++ b/arch/powerpc/sysdev/ipic.c
@@ -846,12 +846,12 @@ void ipic_disable_mcp(enum ipic_mcp_irq
 
 u32 ipic_get_mcp_status(void)
 {
-	return ipic_read(primary_ipic->regs, IPIC_SERMR);
+	return ipic_read(primary_ipic->regs, IPIC_SERSR);
 }
 
 void ipic_clear_mcp_status(u32 mask)
 {
-	ipic_write(primary_ipic->regs, IPIC_SERMR, mask);
+	ipic_write(primary_ipic->regs, IPIC_SERSR, mask);
 }
 
 /* Return an interrupt vector or 0 if no interrupt is pending. */

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

* [PATCH 4.14 069/178] powerpc/pseries/vio: Dispose of virq mapping on vdevice unregister
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (63 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 068/178] powerpc/ipic: Fix status get and status clear Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48   ` Greg Kroah-Hartman
                   ` (97 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Tyrel Datwyler, Michael Ellerman,
	Sasha Levin

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

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

From: Tyrel Datwyler <tyreld@linux.vnet.ibm.com>


[ Upstream commit b8f89fea599d91e674497aad572613eb63181f31 ]

When a vdevice is DLPAR removed from the system the vio subsystem
doesn't bother unmapping the virq from the irq_domain. As a result we
have a virq mapped to a hardware irq that is no longer valid for the
irq_domain. A side effect is that we are left with /proc/irq/<irq#>
affinity entries, and attempts to modify the smp_affinity of the irq
will fail.

In the following observed example the kernel log is spammed by
ics_rtas_set_affinity errors after the removal of a VSCSI adapter.
This is a result of irqbalance trying to adjust the affinity every 10
seconds.

  rpadlpar_io: slot U8408.E8E.10A7ACV-V5-C25 removed
  ics_rtas_set_affinity: ibm,set-xive irq=655385 returns -3
  ics_rtas_set_affinity: ibm,set-xive irq=655385 returns -3

This patch fixes the issue by calling irq_dispose_mapping() on the
virq of the viodev on unregister.

Fixes: f2ab6219969f ("powerpc/pseries: Add PFO support to the VIO bus")
Signed-off-by: Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 arch/powerpc/platforms/pseries/vio.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/arch/powerpc/platforms/pseries/vio.c
+++ b/arch/powerpc/platforms/pseries/vio.c
@@ -1592,6 +1592,8 @@ ATTRIBUTE_GROUPS(vio_dev);
 void vio_unregister_device(struct vio_dev *viodev)
 {
 	device_unregister(&viodev->dev);
+	if (viodev->family == VDEVICE)
+		irq_dispose_mapping(viodev->irq);
 }
 EXPORT_SYMBOL(vio_unregister_device);
 

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

* [PATCH 4.14 070/178] platform/x86: intel_punit_ipc: Fix resource ioremap warning
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
@ 2017-12-18 15:48   ` Greg Kroah-Hartman
  2017-12-18 15:47 ` [PATCH 4.14 002/178] crypto: algif_aead - fix reference counting of null skcipher Greg Kroah-Hartman
                     ` (161 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Kuppuswamy Sathyanarayanan,
	Andy Shevchenko, Sasha Levin

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

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

From: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>


[ Upstream commit 6cc8cbbc8868033f279b63e98b26b75eaa0006ab ]

For PUNIT device, ISPDRIVER_IPC and GTDDRIVER_IPC resources are not
mandatory. So when PMC IPC driver creates a PUNIT device, if these
resources are not available then it creates dummy resource entries for
these missing resources. But during PUNIT device probe, doing ioremap on
these dummy resources generates following warning messages.

intel_punit_ipc: can't request region for resource [mem 0x00000000]
intel_punit_ipc: can't request region for resource [mem 0x00000000]
intel_punit_ipc: can't request region for resource [mem 0x00000000]
intel_punit_ipc: can't request region for resource [mem 0x00000000]

This patch fixes this issue by adding extra check for resource size
before performing ioremap operation.

Signed-off-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/platform/x86/intel_punit_ipc.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

--- a/drivers/platform/x86/intel_punit_ipc.c
+++ b/drivers/platform/x86/intel_punit_ipc.c
@@ -252,28 +252,28 @@ static int intel_punit_get_bars(struct p
 	 * - GTDRIVER_IPC BASE_IFACE
 	 */
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 2);
-	if (res) {
+	if (res && resource_size(res) > 1) {
 		addr = devm_ioremap_resource(&pdev->dev, res);
 		if (!IS_ERR(addr))
 			punit_ipcdev->base[ISPDRIVER_IPC][BASE_DATA] = addr;
 	}
 
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 3);
-	if (res) {
+	if (res && resource_size(res) > 1) {
 		addr = devm_ioremap_resource(&pdev->dev, res);
 		if (!IS_ERR(addr))
 			punit_ipcdev->base[ISPDRIVER_IPC][BASE_IFACE] = addr;
 	}
 
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 4);
-	if (res) {
+	if (res && resource_size(res) > 1) {
 		addr = devm_ioremap_resource(&pdev->dev, res);
 		if (!IS_ERR(addr))
 			punit_ipcdev->base[GTDRIVER_IPC][BASE_DATA] = addr;
 	}
 
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 5);
-	if (res) {
+	if (res && resource_size(res) > 1) {
 		addr = devm_ioremap_resource(&pdev->dev, res);
 		if (!IS_ERR(addr))
 			punit_ipcdev->base[GTDRIVER_IPC][BASE_IFACE] = addr;

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

* [PATCH 4.14 070/178] platform/x86: intel_punit_ipc: Fix resource ioremap warning
@ 2017-12-18 15:48   ` Greg Kroah-Hartman
  0 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Kuppuswamy Sathyanarayanan,
	Andy Shevchenko, Sasha Levin

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

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

From: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>


[ Upstream commit 6cc8cbbc8868033f279b63e98b26b75eaa0006ab ]

For PUNIT device, ISPDRIVER_IPC and GTDDRIVER_IPC resources are not
mandatory. So when PMC IPC driver creates a PUNIT device, if these
resources are not available then it creates dummy resource entries for
these missing resources. But during PUNIT device probe, doing ioremap on
these dummy resources generates following warning messages.

intel_punit_ipc: can't request region for resource [mem 0x00000000]
intel_punit_ipc: can't request region for resource [mem 0x00000000]
intel_punit_ipc: can't request region for resource [mem 0x00000000]
intel_punit_ipc: can't request region for resource [mem 0x00000000]

This patch fixes this issue by adding extra check for resource size
before performing ioremap operation.

Signed-off-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/platform/x86/intel_punit_ipc.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

--- a/drivers/platform/x86/intel_punit_ipc.c
+++ b/drivers/platform/x86/intel_punit_ipc.c
@@ -252,28 +252,28 @@ static int intel_punit_get_bars(struct p
 	 * - GTDRIVER_IPC BASE_IFACE
 	 */
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 2);
-	if (res) {
+	if (res && resource_size(res) > 1) {
 		addr = devm_ioremap_resource(&pdev->dev, res);
 		if (!IS_ERR(addr))
 			punit_ipcdev->base[ISPDRIVER_IPC][BASE_DATA] = addr;
 	}
 
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 3);
-	if (res) {
+	if (res && resource_size(res) > 1) {
 		addr = devm_ioremap_resource(&pdev->dev, res);
 		if (!IS_ERR(addr))
 			punit_ipcdev->base[ISPDRIVER_IPC][BASE_IFACE] = addr;
 	}
 
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 4);
-	if (res) {
+	if (res && resource_size(res) > 1) {
 		addr = devm_ioremap_resource(&pdev->dev, res);
 		if (!IS_ERR(addr))
 			punit_ipcdev->base[GTDRIVER_IPC][BASE_DATA] = addr;
 	}
 
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 5);
-	if (res) {
+	if (res && resource_size(res) > 1) {
 		addr = devm_ioremap_resource(&pdev->dev, res);
 		if (!IS_ERR(addr))
 			punit_ipcdev->base[GTDRIVER_IPC][BASE_IFACE] = addr;

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

* [PATCH 4.14 071/178] platform/x86: sony-laptop: Fix error handling in sony_nc_setup_rfkill()
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (65 preceding siblings ...)
  2017-12-18 15:48   ` Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 072/178] target/iscsi: Detect conn_cmd_list corruption early Greg Kroah-Hartman
                   ` (95 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Andy Shevchenko, Markus Elfring,
	Andy Shevchenko, Sasha Levin

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

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

From: Markus Elfring <elfring@users.sourceforge.net>


[ Upstream commit f6c8a317ab208aee223776327c06f23342492d54 ]

Source code review for a specific software refactoring showed the need
for another correction because the error code "-1" was returned so far
if a call of the function "sony_call_snc_handle" failed here.
Thus assign the return value from these two function calls also to
the variable "err" and provide it in case of a failure.

Fixes: d6f15ed876b83a1a0eba1d0473eef58acc95444a ("sony-laptop: use soft rfkill status stored in hw")
Suggested-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Link: https://lkml.org/lkml/2017/10/31/463
Link: https://lkml.kernel.org/r/<CAHp75VcMkXCioCzmLE0+BTmkqc5RSOx9yPO0ectVHMrMvewgwg@mail.gmail.com>
Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/platform/x86/sony-laptop.c |   14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

--- a/drivers/platform/x86/sony-laptop.c
+++ b/drivers/platform/x86/sony-laptop.c
@@ -1660,17 +1660,19 @@ static int sony_nc_setup_rfkill(struct a
 	if (!rfk)
 		return -ENOMEM;
 
-	if (sony_call_snc_handle(sony_rfkill_handle, 0x200, &result) < 0) {
+	err = sony_call_snc_handle(sony_rfkill_handle, 0x200, &result);
+	if (err < 0) {
 		rfkill_destroy(rfk);
-		return -1;
+		return err;
 	}
 	hwblock = !(result & 0x1);
 
-	if (sony_call_snc_handle(sony_rfkill_handle,
-				sony_rfkill_address[nc_type],
-				&result) < 0) {
+	err = sony_call_snc_handle(sony_rfkill_handle,
+				   sony_rfkill_address[nc_type],
+				   &result);
+	if (err < 0) {
 		rfkill_destroy(rfk);
-		return -1;
+		return err;
 	}
 	swblock = !(result & 0x2);
 

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

* [PATCH 4.14 072/178] target/iscsi: Detect conn_cmd_list corruption early
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (66 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 071/178] platform/x86: sony-laptop: Fix error handling in sony_nc_setup_rfkill() Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 073/178] target/iscsi: Fix a race condition in iscsit_add_reject_from_cmd() Greg Kroah-Hartman
                   ` (94 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Bart Van Assche, Christoph Hellwig,
	Mike Christie, Hannes Reinecke, Nicholas Bellinger, Sasha Levin

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

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

From: Bart Van Assche <bart.vanassche@wdc.com>


[ Upstream commit 6eaf69e4ec075f5af236c0c89f75639a195db904 ]

Certain behavior of the initiator can cause the target driver to
send both a reject and a SCSI response. If that happens two
target_put_sess_cmd() calls will occur without the command having
been removed from conn_cmd_list. In other words, conn_cmd_list
will get corrupted once the freed memory is reused. Although the
Linux kernel can detect list corruption if list debugging is
enabled, in this case the context in which list corruption is
detected is not related to the context that caused list corruption.
Hence add WARN_ON() statements that report the context that is
causing list corruption.

Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Mike Christie <mchristi@redhat.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/target/iscsi/iscsi_target_util.c |    4 ++++
 1 file changed, 4 insertions(+)

--- a/drivers/target/iscsi/iscsi_target_util.c
+++ b/drivers/target/iscsi/iscsi_target_util.c
@@ -694,6 +694,8 @@ void iscsit_release_cmd(struct iscsi_cmd
 	struct iscsi_session *sess;
 	struct se_cmd *se_cmd = &cmd->se_cmd;
 
+	WARN_ON(!list_empty(&cmd->i_conn_node));
+
 	if (cmd->conn)
 		sess = cmd->conn->sess;
 	else
@@ -716,6 +718,8 @@ void __iscsit_free_cmd(struct iscsi_cmd
 {
 	struct iscsi_conn *conn = cmd->conn;
 
+	WARN_ON(!list_empty(&cmd->i_conn_node));
+
 	if (cmd->data_direction == DMA_TO_DEVICE) {
 		iscsit_stop_dataout_timer(cmd);
 		iscsit_free_r2ts_from_list(cmd);

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

* [PATCH 4.14 073/178] target/iscsi: Fix a race condition in iscsit_add_reject_from_cmd()
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (67 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 072/178] target/iscsi: Detect conn_cmd_list corruption early Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 074/178] iscsi-target: fix memory leak in lio_target_tiqn_addtpg() Greg Kroah-Hartman
                   ` (93 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Bart Van Assche, Christoph Hellwig,
	Mike Christie, Hannes Reinecke, Nicholas Bellinger, Sasha Levin

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

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

From: Bart Van Assche <bart.vanassche@wdc.com>


[ Upstream commit cfe2b621bb18d86e93271febf8c6e37622da2d14 ]

Avoid that cmd->se_cmd.se_tfo is read after a command has already been
freed.

Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Mike Christie <mchristi@redhat.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/target/iscsi/iscsi_target.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/drivers/target/iscsi/iscsi_target.c
+++ b/drivers/target/iscsi/iscsi_target.c
@@ -834,6 +834,7 @@ static int iscsit_add_reject_from_cmd(
 	unsigned char *buf)
 {
 	struct iscsi_conn *conn;
+	const bool do_put = cmd->se_cmd.se_tfo != NULL;
 
 	if (!cmd->conn) {
 		pr_err("cmd->conn is NULL for ITT: 0x%08x\n",
@@ -864,7 +865,7 @@ static int iscsit_add_reject_from_cmd(
 	 * Perform the kref_put now if se_cmd has already been setup by
 	 * scsit_setup_scsi_cmd()
 	 */
-	if (cmd->se_cmd.se_tfo != NULL) {
+	if (do_put) {
 		pr_debug("iscsi reject: calling target_put_sess_cmd >>>>>>\n");
 		target_put_sess_cmd(&cmd->se_cmd);
 	}

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

* [PATCH 4.14 074/178] iscsi-target: fix memory leak in lio_target_tiqn_addtpg()
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (68 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 073/178] target/iscsi: Fix a race condition in iscsit_add_reject_from_cmd() Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 075/178] target:fix condition return in core_pr_dump_initiator_port() Greg Kroah-Hartman
                   ` (92 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, tangwenji, Nicholas Bellinger, Sasha Levin

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

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

From: tangwenji <tang.wenji@zte.com.cn>


[ Upstream commit 12d5a43b2dffb6cd28062b4e19024f7982393288 ]

tpg must free when call core_tpg_register() return fail

Signed-off-by: tangwenji <tang.wenji@zte.com.cn>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/target/iscsi/iscsi_target_configfs.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/drivers/target/iscsi/iscsi_target_configfs.c
+++ b/drivers/target/iscsi/iscsi_target_configfs.c
@@ -1123,7 +1123,7 @@ static struct se_portal_group *lio_targe
 
 	ret = core_tpg_register(wwn, &tpg->tpg_se_tpg, SCSI_PROTOCOL_ISCSI);
 	if (ret < 0)
-		return NULL;
+		goto free_out;
 
 	ret = iscsit_tpg_add_portal_group(tiqn, tpg);
 	if (ret != 0)
@@ -1135,6 +1135,7 @@ static struct se_portal_group *lio_targe
 	return &tpg->tpg_se_tpg;
 out:
 	core_tpg_deregister(&tpg->tpg_se_tpg);
+free_out:
 	kfree(tpg);
 	return NULL;
 }

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

* [PATCH 4.14 075/178] target:fix condition return in core_pr_dump_initiator_port()
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (69 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 074/178] iscsi-target: fix memory leak in lio_target_tiqn_addtpg() Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 076/178] target/file: Do not return error for UNMAP if length is zero Greg Kroah-Hartman
                   ` (91 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, tangwenji, Nicholas Bellinger, Sasha Levin

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

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

From: tangwenji <tang.wenji@zte.com.cn>


[ Upstream commit 24528f089d0a444070aa4f715ace537e8d6bf168 ]

When is pr_reg->isid_present_at_reg is false,this function should return.

This fixes a regression originally introduced by:

  commit d2843c173ee53cf4c12e7dfedc069a5bc76f0ac5
  Author: Andy Grover <agrover@redhat.com>
  Date:   Thu May 16 10:40:55 2013 -0700

      target: Alter core_pr_dump_initiator_port for ease of use

Signed-off-by: tangwenji <tang.wenji@zte.com.cn>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/target/target_core_pr.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

--- a/drivers/target/target_core_pr.c
+++ b/drivers/target/target_core_pr.c
@@ -58,8 +58,10 @@ void core_pr_dump_initiator_port(
 	char *buf,
 	u32 size)
 {
-	if (!pr_reg->isid_present_at_reg)
+	if (!pr_reg->isid_present_at_reg) {
 		buf[0] = '\0';
+		return;
+	}
 
 	snprintf(buf, size, ",i,0x%s", pr_reg->pr_reg_isid);
 }

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

* [PATCH 4.14 076/178] target/file: Do not return error for UNMAP if length is zero
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (70 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 075/178] target:fix condition return in core_pr_dump_initiator_port() Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 077/178] badblocks: fix wrong return value in badblocks_set if badblocks are disabled Greg Kroah-Hartman
                   ` (90 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Jiang Yi, Nicholas Bellinger, Sasha Levin

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

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

From: Jiang Yi <jiangyilism@gmail.com>


[ Upstream commit 594e25e73440863981032d76c9b1e33409ceff6e ]

The function fd_execute_unmap() in target_core_file.c calles

ret = file->f_op->fallocate(file, mode, pos, len);

Some filesystems implement fallocate() to return error if
length is zero (e.g. btrfs) but according to SCSI Block
Commands spec UNMAP should return success for zero length.

Signed-off-by: Jiang Yi <jiangyilism@gmail.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/target/target_core_file.c |    4 ++++
 1 file changed, 4 insertions(+)

--- a/drivers/target/target_core_file.c
+++ b/drivers/target/target_core_file.c
@@ -482,6 +482,10 @@ fd_execute_unmap(struct se_cmd *cmd, sec
 	struct inode *inode = file->f_mapping->host;
 	int ret;
 
+	if (!nolb) {
+		return 0;
+	}
+
 	if (cmd->se_dev->dev_attrib.pi_prot_type) {
 		ret = fd_do_prot_unmap(cmd, lba, nolb);
 		if (ret)

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

* [PATCH 4.14 077/178] badblocks: fix wrong return value in badblocks_set if badblocks are disabled
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (71 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 076/178] target/file: Do not return error for UNMAP if length is zero Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 078/178] iommu/amd: Limit the IOVA page range to the specified addresses Greg Kroah-Hartman
                   ` (89 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Liu Bo, Guoqing Jiang, Shaohua Li,
	Sasha Levin

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

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

From: Liu Bo <bo.li.liu@oracle.com>


[ Upstream commit 39b4954c0a1556f8f7f1fdcf59a227117fcd8a0b ]

MD's rdev_set_badblocks() expects that badblocks_set() returns 1 if
badblocks are disabled, otherwise, rdev_set_badblocks() will record
superblock changes and return success in that case and md will fail to
report an IO error which it should.

This bug has existed since badblocks were introduced in commit
9e0e252a048b ("badblocks: Add core badblock management code").

Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
Acked-by: Guoqing Jiang <gqjiang@suse.com>
Signed-off-by: Shaohua Li <shli@fb.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 block/badblocks.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/block/badblocks.c
+++ b/block/badblocks.c
@@ -178,7 +178,7 @@ int badblocks_set(struct badblocks *bb,
 
 	if (bb->shift < 0)
 		/* badblocks are disabled */
-		return 0;
+		return 1;
 
 	if (bb->shift) {
 		/* round the start down, and the end up */

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

* [PATCH 4.14 078/178] iommu/amd: Limit the IOVA page range to the specified addresses
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (72 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 077/178] badblocks: fix wrong return value in badblocks_set if badblocks are disabled Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 079/178] xfs: truncate pagecache before writeback in xfs_setattr_size() Greg Kroah-Hartman
                   ` (88 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Gary R Hook, Alex Williamson, Sasha Levin

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

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

From: Gary R Hook <gary.hook@amd.com>


[ Upstream commit b92b4fb5c14257c0e7eae291ecc1f7b1962e1699 ]

The extent of pages specified when applying a reserved region should
include up to the last page of the range, but not the page following
the range.

Signed-off-by: Gary R Hook <gary.hook@amd.com>
Fixes: 8d54d6c8b8f3 ('iommu/amd: Implement apply_dm_region call-back')
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/iommu/amd_iommu.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/iommu/amd_iommu.c
+++ b/drivers/iommu/amd_iommu.c
@@ -3155,7 +3155,7 @@ static void amd_iommu_apply_resv_region(
 	unsigned long start, end;
 
 	start = IOVA_PFN(region->start);
-	end   = IOVA_PFN(region->start + region->length);
+	end   = IOVA_PFN(region->start + region->length - 1);
 
 	WARN_ON_ONCE(reserve_iova(&dma_dom->iovad, start, end) == NULL);
 }

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

* [PATCH 4.14 079/178] xfs: truncate pagecache before writeback in xfs_setattr_size()
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (73 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 078/178] iommu/amd: Limit the IOVA page range to the specified addresses Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 080/178] arm-ccn: perf: Prevent module unload while PMU is in use Greg Kroah-Hartman
                   ` (87 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Dave Chinner, Eryu Guan,
	Brian Foster, Darrick J. Wong, Sasha Levin

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

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

From: Eryu Guan <eguan@redhat.com>


[ Upstream commit 350976ae21873b0d36584ea005076356431b8f79 ]

On truncate down, if new size is not block size aligned, we zero the
rest of block to avoid exposing stale data to user, and
iomap_truncate_page() skips zeroing if the range is already in
unwritten state or a hole. Then we writeback from on-disk i_size to
the new size if this range hasn't been written to disk yet, and
truncate page cache beyond new EOF and set in-core i_size.

The problem is that we could write data between di_size and newsize
before removing the page cache beyond newsize, as the extents may
still be in unwritten state right after a buffer write. As such, the
page of data that newsize lies in has not been zeroed by page cache
invalidation before it is written, and xfs_do_writepage() hasn't
triggered it's "zero data beyond EOF" case because we haven't
updated in-core i_size yet. Then a subsequent mmap read could see
non-zeros past EOF.

I occasionally see this in fsx runs in fstests generic/112, a
simplified fsx operation sequence is like (assuming 4k block size
xfs):

  fallocate 0x0 0x1000 0x0 keep_size
  write 0x0 0x1000 0x0
  truncate 0x0 0x800 0x1000
  punch_hole 0x0 0x800 0x800
  mapread 0x0 0x800 0x800

where fallocate allocates unwritten extent but doesn't update
i_size, buffer write populates the page cache and extent is still
unwritten, truncate skips zeroing page past new EOF and writes the
page to disk, punch_hole invalidates the page cache, at last mapread
reads the block back and sees non-zero beyond EOF.

Fix it by moving truncate_setsize() to before writeback so the page
cache invalidation zeros the partial page at the new EOF. This also
triggers "zero data beyond EOF" in xfs_do_writepage() at writeback
time, because newsize has been set and page straddles the newsize.

Also fixed the wrong 'end' param of filemap_write_and_wait_range()
call while we're at it, the 'end' is inclusive and should be
'newsize - 1'.

Suggested-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
Acked-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 fs/xfs/xfs_iops.c |   36 ++++++++++++++++++++----------------
 1 file changed, 20 insertions(+), 16 deletions(-)

--- a/fs/xfs/xfs_iops.c
+++ b/fs/xfs/xfs_iops.c
@@ -886,22 +886,6 @@ xfs_setattr_size(
 		return error;
 
 	/*
-	 * We are going to log the inode size change in this transaction so
-	 * any previous writes that are beyond the on disk EOF and the new
-	 * EOF that have not been written out need to be written here.  If we
-	 * do not write the data out, we expose ourselves to the null files
-	 * problem. Note that this includes any block zeroing we did above;
-	 * otherwise those blocks may not be zeroed after a crash.
-	 */
-	if (did_zeroing ||
-	    (newsize > ip->i_d.di_size && oldsize != ip->i_d.di_size)) {
-		error = filemap_write_and_wait_range(VFS_I(ip)->i_mapping,
-						      ip->i_d.di_size, newsize);
-		if (error)
-			return error;
-	}
-
-	/*
 	 * We've already locked out new page faults, so now we can safely remove
 	 * pages from the page cache knowing they won't get refaulted until we
 	 * drop the XFS_MMAP_EXCL lock after the extent manipulations are
@@ -917,9 +901,29 @@ xfs_setattr_size(
 	 * user visible changes). There's not much we can do about this, except
 	 * to hope that the caller sees ENOMEM and retries the truncate
 	 * operation.
+	 *
+	 * And we update in-core i_size and truncate page cache beyond newsize
+	 * before writeback the [di_size, newsize] range, so we're guaranteed
+	 * not to write stale data past the new EOF on truncate down.
 	 */
 	truncate_setsize(inode, newsize);
 
+	/*
+	 * We are going to log the inode size change in this transaction so
+	 * any previous writes that are beyond the on disk EOF and the new
+	 * EOF that have not been written out need to be written here.  If we
+	 * do not write the data out, we expose ourselves to the null files
+	 * problem. Note that this includes any block zeroing we did above;
+	 * otherwise those blocks may not be zeroed after a crash.
+	 */
+	if (did_zeroing ||
+	    (newsize > ip->i_d.di_size && oldsize != ip->i_d.di_size)) {
+		error = filemap_write_and_wait_range(VFS_I(ip)->i_mapping,
+						ip->i_d.di_size, newsize - 1);
+		if (error)
+			return error;
+	}
+
 	error = xfs_trans_alloc(mp, &M_RES(mp)->tr_itruncate, 0, 0, 0, &tp);
 	if (error)
 		return error;

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

* [PATCH 4.14 080/178] arm-ccn: perf: Prevent module unload while PMU is in use
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (74 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 079/178] xfs: truncate pagecache before writeback in xfs_setattr_size() Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 081/178] crypto: tcrypt - fix buffer lengths in test_aead_speed() Greg Kroah-Hartman
                   ` (86 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Pawel Moll, Will Deacon,
	Mark Rutland, Suzuki K Poulose, Sasha Levin

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

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

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


[ Upstream commit c7f5828bf77dcbd61d51f4736c1d5aa35663fbb4 ]

When the PMU driver is built as a module, the perf expects the
pmu->module to be valid, so that the driver is prevented from
being unloaded while it is in use. Fix the CCN pmu driver to
fill in this field.

Fixes: a33b0daab73a0 ("bus: ARM CCN PMU driver")
Cc: Pawel Moll <pawel.moll@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Acked-by: Mark Rutland <mark.rutland@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 <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/bus/arm-ccn.c |    1 +
 1 file changed, 1 insertion(+)

--- a/drivers/bus/arm-ccn.c
+++ b/drivers/bus/arm-ccn.c
@@ -1280,6 +1280,7 @@ static int arm_ccn_pmu_init(struct arm_c
 
 	/* Perf driver registration */
 	ccn->dt.pmu = (struct pmu) {
+		.module = THIS_MODULE,
 		.attr_groups = arm_ccn_pmu_attr_groups,
 		.task_ctx_nr = perf_invalid_context,
 		.event_init = arm_ccn_pmu_event_init,

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

* [PATCH 4.14 081/178] crypto: tcrypt - fix buffer lengths in test_aead_speed()
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (75 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 080/178] arm-ccn: perf: Prevent module unload while PMU is in use Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 082/178] mm: Handle 0 flags in _calc_vm_trans() macro Greg Kroah-Hartman
                   ` (85 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Robert Baronescu, Herbert Xu, Sasha Levin

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

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

From: Robert Baronescu <robert.baronescu@nxp.com>


[ Upstream commit 7aacbfcb331ceff3ac43096d563a1f93ed46e35e ]

Fix the way the length of the buffers used for
encryption / decryption are computed.
For e.g. in case of encryption, input buffer does not contain
an authentication tag.

Signed-off-by: Robert Baronescu <robert.baronescu@nxp.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 crypto/tcrypt.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

--- a/crypto/tcrypt.c
+++ b/crypto/tcrypt.c
@@ -340,7 +340,7 @@ static void test_aead_speed(const char *
 			}
 
 			sg_init_aead(sg, xbuf,
-				    *b_size + (enc ? authsize : 0));
+				    *b_size + (enc ? 0 : authsize));
 
 			sg_init_aead(sgout, xoutbuf,
 				    *b_size + (enc ? authsize : 0));
@@ -348,7 +348,9 @@ static void test_aead_speed(const char *
 			sg_set_buf(&sg[0], assoc, aad_size);
 			sg_set_buf(&sgout[0], assoc, aad_size);
 
-			aead_request_set_crypt(req, sg, sgout, *b_size, iv);
+			aead_request_set_crypt(req, sg, sgout,
+					       *b_size + (enc ? 0 : authsize),
+					       iv);
 			aead_request_set_ad(req, aad_size);
 
 			if (secs)

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

* [PATCH 4.14 082/178] mm: Handle 0 flags in _calc_vm_trans() macro
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (76 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 081/178] crypto: tcrypt - fix buffer lengths in test_aead_speed() Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 083/178] net: hns3: fix for getting advertised_caps in hns3_get_link_ksettings Greg Kroah-Hartman
                   ` (84 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Jan Kara, Dan Williams, Sasha Levin

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

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

From: Jan Kara <jack@suse.cz>


[ Upstream commit 592e254502041f953e84d091eae2c68cba04c10b ]

_calc_vm_trans() does not handle the situation when some of the passed
flags are 0 (which can happen if these VM flags do not make sense for
the architecture). Improve the _calc_vm_trans() macro to return 0 in
such situation. Since all passed flags are constant, this does not add
any runtime overhead.

Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 include/linux/mman.h |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/include/linux/mman.h
+++ b/include/linux/mman.h
@@ -64,8 +64,9 @@ static inline bool arch_validate_prot(un
  * ("bit1" and "bit2" must be single bits)
  */
 #define _calc_vm_trans(x, bit1, bit2) \
+  ((!(bit1) || !(bit2)) ? 0 : \
   ((bit1) <= (bit2) ? ((x) & (bit1)) * ((bit2) / (bit1)) \
-   : ((x) & (bit1)) / ((bit1) / (bit2)))
+   : ((x) & (bit1)) / ((bit1) / (bit2))))
 
 /*
  * Combine the mmap "prot" argument into "vm_flags" used internally.

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

* [PATCH 4.14 083/178] net: hns3: fix for getting advertised_caps in hns3_get_link_ksettings
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (77 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 082/178] mm: Handle 0 flags in _calc_vm_trans() macro Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 084/178] net: hns3: Fix a misuse to devm_free_irq Greg Kroah-Hartman
                   ` (83 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Fuyun Liang, Lipeng, David S. Miller,
	Sasha Levin

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

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

From: Fuyun Liang <liangfuyun1@huawei.com>


[ Upstream commit 2b39cabb2a283cea0c3d96d9370575371726164f ]

This patch fixes a bug for ethtool's get_link_ksettings().
The advertising for autoneg is always added to advertised_caps
whether autoneg is enable or disable. This patch fixes it.

Fixes: 496d03e (net: hns3: Add Ethtool support to HNS3 driver)
Signed-off-by: Fuyun Liang <liangfuyun1@huawei.com>
Signed-off-by: Lipeng <lipeng321@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/net/ethernet/hisilicon/hns3/hns3pf/hns3_ethtool.c |    3 +++
 1 file changed, 3 insertions(+)

--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hns3_ethtool.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hns3_ethtool.c
@@ -375,6 +375,9 @@ static int hns3_get_link_ksettings(struc
 			break;
 		}
 
+		if (!cmd->base.autoneg)
+			advertised_caps &= ~HNS3_LM_AUTONEG_BIT;
+
 		/* now, map driver link modes to ethtool link modes */
 		hns3_driv_to_eth_caps(supported_caps, cmd, false);
 		hns3_driv_to_eth_caps(advertised_caps, cmd, true);

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

* [PATCH 4.14 084/178] net: hns3: Fix a misuse to devm_free_irq
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (78 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 083/178] net: hns3: fix for getting advertised_caps in hns3_get_link_ksettings Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 085/178] staging: rtl8188eu: Revert part of "staging: rtl8188eu: fix comments with lines over 80 characters" Greg Kroah-Hartman
                   ` (82 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, qumingguang, Lipeng, Yunsheng Lin,
	David S. Miller, Sasha Levin

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

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

From: qumingguang <qumingguang@huawei.com>


[ Upstream commit ae064e6123f89f90af7e4ea190cc0c612643ca93 ]

we should use free_irq to free the nic irq during the unloading time.
because we use request_irq to apply it when nic up. It will crash if
up net device after reset the port. This patch fixes the issue.

Signed-off-by: qumingguang <qumingguang@huawei.com>
Signed-off-by: Lipeng <lipeng321@huawei.com>
Signed-off-by: Yunsheng Lin <linyunsheng@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/net/ethernet/hisilicon/hns3/hns3pf/hns3_enet.c |    5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hns3_enet.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hns3_enet.c
@@ -2460,9 +2460,8 @@ static int hns3_nic_uninit_vector_data(s
 			(void)irq_set_affinity_hint(
 				priv->tqp_vector[i].vector_irq,
 						    NULL);
-			devm_free_irq(&pdev->dev,
-				      priv->tqp_vector[i].vector_irq,
-				      &priv->tqp_vector[i]);
+			free_irq(priv->tqp_vector[i].vector_irq,
+				 &priv->tqp_vector[i]);
 		}
 
 		priv->ring_data[i].ring->irq_init_flag = HNS3_VECTOR_NOT_INITED;

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

* [PATCH 4.14 085/178] staging: rtl8188eu: Revert part of "staging: rtl8188eu: fix comments with lines over 80 characters"
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (79 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 084/178] net: hns3: Fix a misuse to devm_free_irq Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 086/178] clk: mediatek: add the option for determining PLL source clock Greg Kroah-Hartman
                   ` (81 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Juliana Rodrigues, Hans de Goede,
	Sasha Levin

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

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

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


[ Upstream commit 4004a9870bbefdb6644c3d2033f5315920a3b669 ]

Commit 74e1e498e84e ("staging: rtl8188eu: fix comments with lines over 80
characters") not only changed comments but also changed an if check:

-if (pmlmepriv->cur_network.join_res != true) {
+if (!(pmlmepriv->cur_network.join_res)) {

This is not equivalent as join_res is an int and can have values such
as -2 and -3.

Note for the next time, please only make one type of changes in a single
clean-up commit.

Fixes: 74e1e498e84e ("staging: rtl8188eu: fix comments with lines over 80 ...")
Cc: Juliana Rodrigues <juliana.orod@gmail.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/staging/rtl8188eu/core/rtw_ap.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/staging/rtl8188eu/core/rtw_ap.c
+++ b/drivers/staging/rtl8188eu/core/rtw_ap.c
@@ -754,7 +754,7 @@ static void start_bss_network(struct ada
 	}
 
 	/* setting only at  first time */
-	if (!(pmlmepriv->cur_network.join_res)) {
+	if (pmlmepriv->cur_network.join_res != true) {
 		/* WEP Key will be set before this function, do not
 		 * clear CAM.
 		 */

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

* [PATCH 4.14 086/178] clk: mediatek: add the option for determining PLL source clock
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (80 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 085/178] staging: rtl8188eu: Revert part of "staging: rtl8188eu: fix comments with lines over 80 characters" Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 087/178] clk: imx: imx7d: Fix parent clock for OCRAM_CLK Greg Kroah-Hartman
                   ` (80 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Chen Zhong, Sean Wang, Stephen Boyd,
	Sasha Levin

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

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

From: Chen Zhong <chen.zhong@mediatek.com>


[ Upstream commit c955bf3998efa3355790a4d8c82874582f1bc727 ]

Since the previous setup always sets the PLL using crystal 26MHz, this
doesn't always happen in every MediaTek platform. So the patch added
flexibility for assigning extra member for determining the PLL source
clock.

Signed-off-by: Chen Zhong <chen.zhong@mediatek.com>
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/clk/mediatek/clk-mtk.h |    1 +
 drivers/clk/mediatek/clk-pll.c |    5 ++++-
 2 files changed, 5 insertions(+), 1 deletion(-)

--- a/drivers/clk/mediatek/clk-mtk.h
+++ b/drivers/clk/mediatek/clk-mtk.h
@@ -216,6 +216,7 @@ struct mtk_pll_data {
 	uint32_t pcw_reg;
 	int pcw_shift;
 	const struct mtk_pll_div_table *div_table;
+	const char *parent_name;
 };
 
 void mtk_clk_register_plls(struct device_node *node,
--- a/drivers/clk/mediatek/clk-pll.c
+++ b/drivers/clk/mediatek/clk-pll.c
@@ -303,7 +303,10 @@ static struct clk *mtk_clk_register_pll(
 	init.name = data->name;
 	init.flags = (data->flags & PLL_AO) ? CLK_IS_CRITICAL : 0;
 	init.ops = &mtk_pll_ops;
-	init.parent_names = &parent_name;
+	if (data->parent_name)
+		init.parent_names = &data->parent_name;
+	else
+		init.parent_names = &parent_name;
 	init.num_parents = 1;
 
 	clk = clk_register(NULL, &pll->hw);

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

* [PATCH 4.14 087/178] clk: imx: imx7d: Fix parent clock for OCRAM_CLK
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (81 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 086/178] clk: mediatek: add the option for determining PLL source clock Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 089/178] media: camss-vfe: always initialize reg at vfe_set_xbar_cfg() Greg Kroah-Hartman
                   ` (79 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Adriana Reus, Stephen Boyd, Sasha Levin

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

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

From: Adriana Reus <adriana.reus@nxp.com>


[ Upstream commit edc5a8e754aba9c6eaeddd18cb1e72462f99b16c ]

The parent of OCRAM_CLK should be axi_main_root_clk
and not axi_post_div.

before:

    axi_src                     1       1       332307692       0 0
      axi_cg                    1       1       332307692       0 0
        axi_pre_div             1       1       332307692       0 0
          axi_post_div          1       1       332307692       0 0
            ocram_clk           0       0       332307692       0 0
            main_axi_root_clk   1       1       332307692       0 0

after:

    axi_src                     1       1       332307692       0 0
      axi_cg                    1       1       332307692       0 0
        axi_pre_div             1       1       332307692       0 0
          axi_post_div          1       1       332307692       0 0
            main_axi_root_clk   1       1       332307692       0 0
              ocram_clk         0       0       332307692       0 0

Reference Doc: i.MX 7D Reference Manual - Chap 5, p 516
(https://www.nxp.com/docs/en/reference-manual/IMX7DRM.pdf)

Fixes: 8f6d8094b215 ("ARM: imx: add imx7d clk tree support")
Signed-off-by: Adriana Reus <adriana.reus@nxp.com>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/clk/imx/clk-imx7d.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/clk/imx/clk-imx7d.c
+++ b/drivers/clk/imx/clk-imx7d.c
@@ -797,7 +797,7 @@ static void __init imx7d_clocks_init(str
 	clks[IMX7D_MAIN_AXI_ROOT_CLK] = imx_clk_gate4("main_axi_root_clk", "axi_post_div", base + 0x4040, 0);
 	clks[IMX7D_DISP_AXI_ROOT_CLK] = imx_clk_gate4("disp_axi_root_clk", "disp_axi_post_div", base + 0x4050, 0);
 	clks[IMX7D_ENET_AXI_ROOT_CLK] = imx_clk_gate4("enet_axi_root_clk", "enet_axi_post_div", base + 0x4060, 0);
-	clks[IMX7D_OCRAM_CLK] = imx_clk_gate4("ocram_clk", "axi_post_div", base + 0x4110, 0);
+	clks[IMX7D_OCRAM_CLK] = imx_clk_gate4("ocram_clk", "main_axi_root_clk", base + 0x4110, 0);
 	clks[IMX7D_OCRAM_S_CLK] = imx_clk_gate4("ocram_s_clk", "ahb_root_clk", base + 0x4120, 0);
 	clks[IMX7D_DRAM_ROOT_CLK] = imx_clk_gate4("dram_root_clk", "dram_post_div", base + 0x4130, 0);
 	clks[IMX7D_DRAM_PHYM_ROOT_CLK] = imx_clk_gate4("dram_phym_root_clk", "dram_phym_cg", base + 0x4130, 0);

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

* [PATCH 4.14 089/178] media: camss-vfe: always initialize reg at vfe_set_xbar_cfg()
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (82 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 087/178] clk: imx: imx7d: Fix parent clock for OCRAM_CLK Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 090/178] clk: hi6220: mark clock cs_atb_syspll as critical Greg Kroah-Hartman
                   ` (78 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Mauro Carvalho Chehab, Todor Tomov,
	Sasha Levin

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

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

From: Mauro Carvalho Chehab <mchehab@s-opensource.com>


[ Upstream commit 9917fbcfa20ab987d6381fd0365665e5c1402d75 ]

if output->wm_num is bigger than 2, the value for reg is
not initialized, as warned by smatch:
	drivers/media/platform/qcom/camss-8x16/camss-vfe.c:633 vfe_set_xbar_cfg() error: uninitialized symbol 'reg'.
	drivers/media/platform/qcom/camss-8x16/camss-vfe.c:637 vfe_set_xbar_cfg() error: uninitialized symbol 'reg'.

That shouldn't happen in practice, so add a logic that will
break the loop if i > 1, fixing the warnings.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Acked-by: Todor Tomov <todor.tomov@linaro.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/media/platform/qcom/camss-8x16/camss-vfe.c |    3 +++
 1 file changed, 3 insertions(+)

--- a/drivers/media/platform/qcom/camss-8x16/camss-vfe.c
+++ b/drivers/media/platform/qcom/camss-8x16/camss-vfe.c
@@ -622,6 +622,9 @@ static void vfe_set_xbar_cfg(struct vfe_
 			reg = VFE_0_BUS_XBAR_CFG_x_M_PAIR_STREAM_EN;
 			if (p == V4L2_PIX_FMT_NV12 || p == V4L2_PIX_FMT_NV16)
 				reg |= VFE_0_BUS_XBAR_CFG_x_M_PAIR_STREAM_SWAP_INTER_INTRA;
+		} else {
+			/* On current devices output->wm_num is always <= 2 */
+			break;
 		}
 
 		if (output->wm_idx[i] % 2 == 1)

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

* [PATCH 4.14 090/178] clk: hi6220: mark clock cs_atb_syspll as critical
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (83 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 089/178] media: camss-vfe: always initialize reg at vfe_set_xbar_cfg() Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 091/178] blk-mq-sched: dispatch from scheduler IFF progress is made in ->dispatch Greg Kroah-Hartman
                   ` (77 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Guodong Xu, Zhangfei Gao,
	Haojian Zhuang, Leo Yan, Michael Turquette, Sasha Levin

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

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

From: Leo Yan <leo.yan@linaro.org>


[ Upstream commit d2a3671ebe6479483a12f94fcca63c058d95ad64 ]

Clock cs_atb_syspll is pll used for coresight trace bus; when clock
cs_atb_syspll is disabled and operates its child clock node cs_atb
results in system hang. So mark clock cs_atb_syspll as critical to
keep it enabled.

Cc: Guodong Xu <guodong.xu@linaro.org>
Cc: Zhangfei Gao <zhangfei.gao@linaro.org>
Cc: Haojian Zhuang <haojian.zhuang@linaro.org>
Signed-off-by: Leo Yan <leo.yan@linaro.org>
Signed-off-by: Michael Turquette <mturquette@baylibre.com>
Link: lkml.kernel.org/r/1504226835-2115-2-git-send-email-leo.yan@linaro.org
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/clk/hisilicon/clk-hi6220.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/clk/hisilicon/clk-hi6220.c
+++ b/drivers/clk/hisilicon/clk-hi6220.c
@@ -145,7 +145,7 @@ static struct hisi_gate_clock hi6220_sep
 	{ HI6220_BBPPLL_SEL,    "bbppll_sel",    "pll0_bbp_gate",  CLK_SET_RATE_PARENT|CLK_IGNORE_UNUSED, 0x270, 9,  0, },
 	{ HI6220_MEDIA_PLL_SRC, "media_pll_src", "pll_media_gate", CLK_SET_RATE_PARENT|CLK_IGNORE_UNUSED, 0x270, 10, 0, },
 	{ HI6220_MMC2_SEL,      "mmc2_sel",      "mmc2_mux1",      CLK_SET_RATE_PARENT|CLK_IGNORE_UNUSED, 0x270, 11, 0, },
-	{ HI6220_CS_ATB_SYSPLL, "cs_atb_syspll", "syspll",         CLK_SET_RATE_PARENT|CLK_IGNORE_UNUSED, 0x270, 12, 0, },
+	{ HI6220_CS_ATB_SYSPLL, "cs_atb_syspll", "syspll",         CLK_SET_RATE_PARENT|CLK_IS_CRITICAL,   0x270, 12, 0, },
 };
 
 static struct hisi_mux_clock hi6220_mux_clks_sys[] __initdata = {

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

* [PATCH 4.14 091/178] blk-mq-sched: dispatch from scheduler IFF progress is made in ->dispatch
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (84 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 090/178] clk: hi6220: mark clock cs_atb_syspll as critical Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 092/178] clk: tegra: Use readl_relaxed_poll_timeout_atomic() in tegra210_clock_init() Greg Kroah-Hartman
                   ` (76 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Omar Sandoval, Bart Van Assche,
	Christoph Hellwig, Ming Lei, Jens Axboe, Sasha Levin

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

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

From: Ming Lei <ming.lei@redhat.com>


[ Upstream commit 5e3d02bbafad38975099b5848f5ebadedcf7bb7e ]

When the hw queue is busy, we shouldn't take requests from the scheduler
queue any more, otherwise it is difficult to do IO merge.

This patch fixes the awful IO performance on some SCSI devices(lpfc,
qla2xxx, ...) when mq-deadline/kyber is used by not taking requests if
hw queue is busy.

Reviewed-by: Omar Sandoval <osandov@fb.com>
Reviewed-by: Bart Van Assche <bart.vanassche@wdc.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 block/blk-mq-sched.c |   12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

--- a/block/blk-mq-sched.c
+++ b/block/blk-mq-sched.c
@@ -94,7 +94,7 @@ void blk_mq_sched_dispatch_requests(stru
 	struct request_queue *q = hctx->queue;
 	struct elevator_queue *e = q->elevator;
 	const bool has_sched_dispatch = e && e->type->ops.mq.dispatch_request;
-	bool did_work = false;
+	bool do_sched_dispatch = true;
 	LIST_HEAD(rq_list);
 
 	/* RCU or SRCU read lock is needed before checking quiesced flag */
@@ -125,18 +125,18 @@ void blk_mq_sched_dispatch_requests(stru
 	 */
 	if (!list_empty(&rq_list)) {
 		blk_mq_sched_mark_restart_hctx(hctx);
-		did_work = blk_mq_dispatch_rq_list(q, &rq_list);
+		do_sched_dispatch = blk_mq_dispatch_rq_list(q, &rq_list);
 	} else if (!has_sched_dispatch) {
 		blk_mq_flush_busy_ctxs(hctx, &rq_list);
 		blk_mq_dispatch_rq_list(q, &rq_list);
 	}
 
 	/*
-	 * We want to dispatch from the scheduler if we had no work left
-	 * on the dispatch list, OR if we did have work but weren't able
-	 * to make progress.
+	 * We want to dispatch from the scheduler if there was nothing
+	 * on the dispatch list or we were able to dispatch from the
+	 * dispatch list.
 	 */
-	if (!did_work && has_sched_dispatch) {
+	if (do_sched_dispatch && has_sched_dispatch) {
 		do {
 			struct request *rq;
 

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

* [PATCH 4.14 092/178] clk: tegra: Use readl_relaxed_poll_timeout_atomic() in tegra210_clock_init()
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (85 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 091/178] blk-mq-sched: dispatch from scheduler IFF progress is made in ->dispatch Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 094/178] ppp: Destroy the mutex when cleanup Greg Kroah-Hartman
                   ` (75 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Nicolin Chen, Peter De Schrijver,
	Thierry Reding, Sasha Levin

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

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

From: Nicolin Chen <nicoleotsuka@gmail.com>


[ Upstream commit 22ef01a203d27fee8b7694020b7e722db7efd2a7 ]

Below is the call trace of tegra210_init_pllu() function:
  start_kernel()
  -> time_init()
  --> of_clk_init()
  ---> tegra210_clock_init()
  ----> tegra210_pll_init()
  -----> tegra210_init_pllu()

Because the preemption is disabled in the start_kernel before calling
time_init, tegra210_init_pllu is actually in an atomic context while
it includes a readl_relaxed_poll_timeout that might sleep.

So this patch just changes this readl_relaxed_poll_timeout() to its
atomic version.

Signed-off-by: Nicolin Chen <nicoleotsuka@gmail.com>
Acked-By: Peter De Schrijver <pdeschrijver@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/clk/tegra/clk-tegra210.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/drivers/clk/tegra/clk-tegra210.c
+++ b/drivers/clk/tegra/clk-tegra210.c
@@ -2566,8 +2566,8 @@ static int tegra210_enable_pllu(void)
 	reg |= PLL_ENABLE;
 	writel(reg, clk_base + PLLU_BASE);
 
-	readl_relaxed_poll_timeout(clk_base + PLLU_BASE, reg,
-				   reg & PLL_BASE_LOCK, 2, 1000);
+	readl_relaxed_poll_timeout_atomic(clk_base + PLLU_BASE, reg,
+					  reg & PLL_BASE_LOCK, 2, 1000);
 	if (!(reg & PLL_BASE_LOCK)) {
 		pr_err("Timed out waiting for PLL_U to lock\n");
 		return -ETIMEDOUT;

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

* [PATCH 4.14 094/178] ppp: Destroy the mutex when cleanup
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (86 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 092/178] clk: tegra: Use readl_relaxed_poll_timeout_atomic() in tegra210_clock_init() Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 095/178] ASoC: rsnd: rsnd_ssi_run_mods() needs to care ssi_parent_mod Greg Kroah-Hartman
                   ` (74 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Gao Feng, Guillaume Nault,
	David S. Miller, Sasha Levin

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

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

From: Gao Feng <gfree.wind@vip.163.com>


[ Upstream commit f02b2320b27c16b644691267ee3b5c110846f49e ]

The mutex_destroy only makes sense when enable DEBUG_MUTEX. For the
good readbility, it's better to invoke it in exit func when the init
func invokes mutex_init.

Signed-off-by: Gao Feng <gfree.wind@vip.163.com>
Acked-by: Guillaume Nault <g.nault@alphalink.fr>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/net/ppp/ppp_generic.c |    1 +
 1 file changed, 1 insertion(+)

--- a/drivers/net/ppp/ppp_generic.c
+++ b/drivers/net/ppp/ppp_generic.c
@@ -959,6 +959,7 @@ static __net_exit void ppp_exit_net(stru
 	unregister_netdevice_many(&list);
 	rtnl_unlock();
 
+	mutex_destroy(&pn->all_ppp_mutex);
 	idr_destroy(&pn->units_idr);
 }
 

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

* [PATCH 4.14 095/178] ASoC: rsnd: rsnd_ssi_run_mods() needs to care ssi_parent_mod
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (87 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 094/178] ppp: Destroy the mutex when cleanup Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 097/178] misc: pci_endpoint_test: Fix failure path return values in probe Greg Kroah-Hartman
                   ` (73 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Kuninori Morimoto, Mark Brown, Sasha Levin

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

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

From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>


[ Upstream commit 21781e87881f9c420871b1d1f3f29d4cd7bffb10 ]

SSI parent mod might be NULL. ssi_parent_mod() needs to care
about it. Otherwise, it uses negative shift.
This patch fixes it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 sound/soc/sh/rcar/ssi.c |   11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

--- a/sound/soc/sh/rcar/ssi.c
+++ b/sound/soc/sh/rcar/ssi.c
@@ -198,10 +198,15 @@ static u32 rsnd_ssi_run_mods(struct rsnd
 {
 	struct rsnd_mod *ssi_mod = rsnd_io_to_mod_ssi(io);
 	struct rsnd_mod *ssi_parent_mod = rsnd_io_to_mod_ssip(io);
+	u32 mods;
 
-	return rsnd_ssi_multi_slaves_runtime(io) |
-		1 << rsnd_mod_id(ssi_mod) |
-		1 << rsnd_mod_id(ssi_parent_mod);
+	mods = rsnd_ssi_multi_slaves_runtime(io) |
+		1 << rsnd_mod_id(ssi_mod);
+
+	if (ssi_parent_mod)
+		mods |= 1 << rsnd_mod_id(ssi_parent_mod);
+
+	return mods;
 }
 
 u32 rsnd_ssi_multi_slaves_runtime(struct rsnd_dai_stream *io)

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

* [PATCH 4.14 097/178] misc: pci_endpoint_test: Fix failure path return values in probe
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (88 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 095/178] ASoC: rsnd: rsnd_ssi_run_mods() needs to care ssi_parent_mod Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 098/178] misc: pci_endpoint_test: Avoid triggering a BUG() Greg Kroah-Hartman
                   ` (72 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Kishon Vijay Abraham I,
	Bjorn Helgaas, Sasha Levin

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

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

From: Kishon Vijay Abraham I <kishon@ti.com>


[ Upstream commit 80068c93688f6143100859c4856f895801c1a1d9 ]

Return value of pci_endpoint_test_probe is not set properly in a couple of
failure cases. Fix it here.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/misc/pci_endpoint_test.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/drivers/misc/pci_endpoint_test.c
+++ b/drivers/misc/pci_endpoint_test.c
@@ -533,6 +533,7 @@ static int pci_endpoint_test_probe(struc
 
 	test->base = test->bar[test_reg_bar];
 	if (!test->base) {
+		err = -ENOMEM;
 		dev_err(dev, "Cannot perform PCI test without BAR%d\n",
 			test_reg_bar);
 		goto err_iounmap;
@@ -542,6 +543,7 @@ static int pci_endpoint_test_probe(struc
 
 	id = ida_simple_get(&pci_endpoint_test_ida, 0, 0, GFP_KERNEL);
 	if (id < 0) {
+		err = id;
 		dev_err(dev, "unable to get id\n");
 		goto err_iounmap;
 	}

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

* [PATCH 4.14 098/178] misc: pci_endpoint_test: Avoid triggering a BUG()
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (89 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 097/178] misc: pci_endpoint_test: Fix failure path return values in probe Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 099/178] scsi: scsi_debug: write_same: fix error report Greg Kroah-Hartman
                   ` (71 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Dan Carpenter, Sasha Levin

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

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

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


[ Upstream commit 846df244ebefbc9f7b91e9ae7a5e5a2e69fb4772 ]

If you call ida_simple_remove(&pci_endpoint_test_ida, id) with a
negative "id" then it triggers an immediate BUG_ON().  Let's not allow
that.

Fixes: 2c156ac71c6b ("misc: Add host side PCI driver for PCI test function device")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/misc/pci_endpoint_test.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/drivers/misc/pci_endpoint_test.c
+++ b/drivers/misc/pci_endpoint_test.c
@@ -590,6 +590,8 @@ static void pci_endpoint_test_remove(str
 
 	if (sscanf(misc_device->name, DRV_MODULE_NAME ".%d", &id) != 1)
 		return;
+	if (id < 0)
+		return;
 
 	misc_deregister(&test->miscdev);
 	ida_simple_remove(&pci_endpoint_test_ida, id);

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

* [PATCH 4.14 099/178] scsi: scsi_debug: write_same: fix error report
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (90 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 098/178] misc: pci_endpoint_test: Avoid triggering a BUG() Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 100/178] GFS2: Take inode off order_write list when setting jdata flag Greg Kroah-Hartman
                   ` (70 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Douglas Gilbert, Martin K. Petersen,
	Sasha Levin

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

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

From: Douglas Gilbert <dgilbert@interlog.com>


[ Upstream commit e33d7c56450b0a5c7290cbf9e1581fab5174f552 ]

The scsi_debug driver incorrectly suggests there is an error with the
SCSI WRITE SAME command when the number_of_logical_blocks is greater
than 1. It will also suggest there is an error when NDOB
(no data-out buffer) is set and the number_of_logical_blocks is
greater than 0. Both are valid, fix.

Signed-off-by: Douglas Gilbert <dgilbert@interlog.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/scsi/scsi_debug.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

--- a/drivers/scsi/scsi_debug.c
+++ b/drivers/scsi/scsi_debug.c
@@ -3001,11 +3001,11 @@ static int resp_write_same(struct scsi_c
 	if (-1 == ret) {
 		write_unlock_irqrestore(&atomic_rw, iflags);
 		return DID_ERROR << 16;
-	} else if (sdebug_verbose && (ret < (num * sdebug_sector_size)))
+	} else if (sdebug_verbose && !ndob && (ret < sdebug_sector_size))
 		sdev_printk(KERN_INFO, scp->device,
-			    "%s: %s: cdb indicated=%u, IO sent=%d bytes\n",
+			    "%s: %s: lb size=%u, IO sent=%d bytes\n",
 			    my_name, "write same",
-			    num * sdebug_sector_size, ret);
+			    sdebug_sector_size, ret);
 
 	/* Copy first sector to remaining blocks */
 	for (i = 1 ; i < num ; i++)

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

* [PATCH 4.14 100/178] GFS2: Take inode off order_write list when setting jdata flag
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (91 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 099/178] scsi: scsi_debug: write_same: fix error report Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 101/178] media: usbtv: fix brightness and contrast controls Greg Kroah-Hartman
                   ` (69 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Bob Peterson, Andreas Gruenbacher,
	Abhijith Das, Sasha Levin

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

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

From: Bob Peterson <rpeterso@redhat.com>


[ Upstream commit cc555b09d8c3817aeebda43a14ab67049a5653f7 ]

This patch fixes a deadlock caused when the jdata flag is set for
inodes that are already on the ordered write list. Since it is
on the ordered write list, log_flush calls gfs2_ordered_write which
calls filemap_fdatawrite. But since the inode had the jdata flag
set, that calls gfs2_jdata_writepages, which tries to start a new
transaction. A new transaction cannot be started because it tries
to acquire the log_flush rwsem which is already locked by the log
flush operation.

The bottom line is: We cannot switch an inode from ordered to jdata
until we eliminate any ordered data pages (via log flush) or any
log_flush operation afterward will create the circular dependency
above. So we need to flush the log before setting the diskflags to
switch the file mode, then we need to remove the inode from the
ordered writes list.

Before this patch, the log flush was done for jdata->ordered, but
that's wrong. If we're going from jdata to ordered, we don't need
to call gfs2_log_flush because the call to filemap_fdatawrite will
do it for us:

   filemap_fdatawrite() -> __filemap_fdatawrite_range()
      __filemap_fdatawrite_range() -> do_writepages()
         do_writepages() -> gfs2_jdata_writepages()
            gfs2_jdata_writepages() -> gfs2_log_flush()

This patch modifies function do_gfs2_set_flags so that if a file
has its jdata flag set, and it's already on the ordered write list,
the log will be flushed and it will be removed from the list
before setting the flag.

Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
Acked-by: Abhijith Das <adas@redhat.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 fs/gfs2/file.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

--- a/fs/gfs2/file.c
+++ b/fs/gfs2/file.c
@@ -256,7 +256,7 @@ static int do_gfs2_set_flags(struct file
 			goto out;
 	}
 	if ((flags ^ new_flags) & GFS2_DIF_JDATA) {
-		if (flags & GFS2_DIF_JDATA)
+		if (new_flags & GFS2_DIF_JDATA)
 			gfs2_log_flush(sdp, ip->i_gl, NORMAL_FLUSH);
 		error = filemap_fdatawrite(inode->i_mapping);
 		if (error)
@@ -264,6 +264,8 @@ static int do_gfs2_set_flags(struct file
 		error = filemap_fdatawait(inode->i_mapping);
 		if (error)
 			goto out;
+		if (new_flags & GFS2_DIF_JDATA)
+			gfs2_ordered_del_inode(ip);
 	}
 	error = gfs2_trans_begin(sdp, RES_DINODE, 0);
 	if (error)

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

* [PATCH 4.14 101/178] media: usbtv: fix brightness and contrast controls
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (92 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 100/178] GFS2: Take inode off order_write list when setting jdata flag Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 102/178] rpmsg: glink: Initialize the "intent_req_comp" completion variable Greg Kroah-Hartman
                   ` (68 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Adam Sampson, Lubomir Rintel,
	Hans Verkuil, Mauro Carvalho Chehab, Sasha Levin

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

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

From: Adam Sampson <ats@offog.org>


[ Upstream commit b3168c87c0492661badc3e908f977d79e7738a41 ]

Because the brightness and contrast controls share a register,
usbtv_s_ctrl needs to read the existing values for both controls before
inserting the new value. However, the code accidentally wrote to the
registers (from an uninitialised stack array), rather than reading them.

The user-visible effect of this was that adjusting the brightness would
also set the contrast to a random value, and vice versa -- so it wasn't
possible to correctly adjust the brightness of usbtv's video output.

Tested with an "EasyDAY" UTV007 device.

Fixes: c53a846c48f2 ("usbtv: add video controls")

Signed-off-by: Adam Sampson <ats@offog.org>
Reviewed-by: Lubomir Rintel <lkundrak@v3.sk>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/media/usb/usbtv/usbtv-video.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/drivers/media/usb/usbtv/usbtv-video.c
+++ b/drivers/media/usb/usbtv/usbtv-video.c
@@ -718,8 +718,8 @@ static int usbtv_s_ctrl(struct v4l2_ctrl
 	 */
 	if (ctrl->id == V4L2_CID_BRIGHTNESS || ctrl->id == V4L2_CID_CONTRAST) {
 		ret = usb_control_msg(usbtv->udev,
-			usb_sndctrlpipe(usbtv->udev, 0), USBTV_CONTROL_REG,
-			USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
+			usb_rcvctrlpipe(usbtv->udev, 0), USBTV_CONTROL_REG,
+			USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
 			0, USBTV_BASE + 0x0244, (void *)data, 3, 0);
 		if (ret < 0)
 			goto error;

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

* [PATCH 4.14 102/178] rpmsg: glink: Initialize the "intent_req_comp" completion variable
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (93 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 101/178] media: usbtv: fix brightness and contrast controls Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:48 ` [PATCH 4.14 103/178] bcache: explicitly destroy mutex while exiting Greg Kroah-Hartman
                   ` (67 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Arun Kumar Neelakantam,
	Bjorn Andersson, Sasha Levin

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

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

From: Arun Kumar Neelakantam <aneela@codeaurora.org>


[ Upstream commit 2394facb17bcace4b3c19b50202177a5d8903b64 ]

The "intent_req_comp" variable is used without initialization which
results in NULL pointer dereference in qcom_glink_request_intent().

we need to initialize the completion variable before using it.

Fixes: 27b9c5b66b23 ("rpmsg: glink: Request for intents when unavailable")
Signed-off-by: Arun Kumar Neelakantam <aneela@codeaurora.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/rpmsg/qcom_glink_native.c |    1 +
 1 file changed, 1 insertion(+)

--- a/drivers/rpmsg/qcom_glink_native.c
+++ b/drivers/rpmsg/qcom_glink_native.c
@@ -227,6 +227,7 @@ static struct glink_channel *qcom_glink_
 
 	init_completion(&channel->open_req);
 	init_completion(&channel->open_ack);
+	init_completion(&channel->intent_req_comp);
 
 	INIT_LIST_HEAD(&channel->done_intents);
 	INIT_WORK(&channel->intent_work, qcom_glink_rx_done_work);

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

* [PATCH 4.14 103/178] bcache: explicitly destroy mutex while exiting
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (94 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 102/178] rpmsg: glink: Initialize the "intent_req_comp" completion variable Greg Kroah-Hartman
@ 2017-12-18 15:48 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 104/178] bcache: fix wrong cache_misses statistics Greg Kroah-Hartman
                   ` (66 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Liang Chen, Michael Lyle, Coly Li,
	Eric Wheeler, Jens Axboe, Sasha Levin

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

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

From: Liang Chen <liangchen.linux@gmail.com>


[ Upstream commit 330a4db89d39a6b43f36da16824eaa7a7509d34d ]

mutex_destroy does nothing most of time, but it's better to call
it to make the code future proof and it also has some meaning
for like mutex debug.

As Coly pointed out in a previous review, bcache_exit() may not be
able to handle all the references properly if userspace registers
cache and backing devices right before bch_debug_init runs and
bch_debug_init failes later. So not exposing userspace interface
until everything is ready to avoid that issue.

Signed-off-by: Liang Chen <liangchen.linux@gmail.com>
Reviewed-by: Michael Lyle <mlyle@lyle.org>
Reviewed-by: Coly Li <colyli@suse.de>
Reviewed-by: Eric Wheeler <bcache@linux.ewheeler.net>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/md/bcache/super.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

--- a/drivers/md/bcache/super.c
+++ b/drivers/md/bcache/super.c
@@ -2085,6 +2085,7 @@ static void bcache_exit(void)
 	if (bcache_major)
 		unregister_blkdev(bcache_major, "bcache");
 	unregister_reboot_notifier(&reboot);
+	mutex_destroy(&bch_register_lock);
 }
 
 static int __init bcache_init(void)
@@ -2103,14 +2104,15 @@ static int __init bcache_init(void)
 	bcache_major = register_blkdev(0, "bcache");
 	if (bcache_major < 0) {
 		unregister_reboot_notifier(&reboot);
+		mutex_destroy(&bch_register_lock);
 		return bcache_major;
 	}
 
 	if (!(bcache_wq = alloc_workqueue("bcache", WQ_MEM_RECLAIM, 0)) ||
 	    !(bcache_kobj = kobject_create_and_add("bcache", fs_kobj)) ||
-	    sysfs_create_files(bcache_kobj, files) ||
 	    bch_request_init() ||
-	    bch_debug_init(bcache_kobj))
+	    bch_debug_init(bcache_kobj) ||
+	    sysfs_create_files(bcache_kobj, files))
 		goto err;
 
 	return 0;

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

* [PATCH 4.14 104/178] bcache: fix wrong cache_misses statistics
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (95 preceding siblings ...)
  2017-12-18 15:48 ` [PATCH 4.14 103/178] bcache: explicitly destroy mutex while exiting Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 105/178] Ib/hfi1: Return actual operational VLs in port info query Greg Kroah-Hartman
                   ` (65 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, tang.junhui, Michael Lyle, Coly Li,
	Jens Axboe, Sasha Levin

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

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

From: "tang.junhui" <tang.junhui@zte.com.cn>


[ Upstream commit c157313791a999646901b3e3c6888514ebc36d62 ]

Currently, Cache missed IOs are identified by s->cache_miss, but actually,
there are many situations that missed IOs are not assigned a value for
s->cache_miss in cached_dev_cache_miss(), for example, a bypassed IO
(s->iop.bypass = 1), or the cache_bio allocate failed. In these situations,
it will go to out_put or out_submit, and s->cache_miss is null, which leads
bch_mark_cache_accounting() to treat this IO as a hit IO.

[ML: applied by 3-way merge]

Signed-off-by: tang.junhui <tang.junhui@zte.com.cn>
Reviewed-by: Michael Lyle <mlyle@lyle.org>
Reviewed-by: Coly Li <colyli@suse.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/md/bcache/request.c |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

--- a/drivers/md/bcache/request.c
+++ b/drivers/md/bcache/request.c
@@ -463,6 +463,7 @@ struct search {
 	unsigned		recoverable:1;
 	unsigned		write:1;
 	unsigned		read_dirty_data:1;
+	unsigned		cache_missed:1;
 
 	unsigned long		start_time;
 
@@ -649,6 +650,7 @@ static inline struct search *search_allo
 
 	s->orig_bio		= bio;
 	s->cache_miss		= NULL;
+	s->cache_missed		= 0;
 	s->d			= d;
 	s->recoverable		= 1;
 	s->write		= op_is_write(bio_op(bio));
@@ -767,7 +769,7 @@ static void cached_dev_read_done_bh(stru
 	struct cached_dev *dc = container_of(s->d, struct cached_dev, disk);
 
 	bch_mark_cache_accounting(s->iop.c, s->d,
-				  !s->cache_miss, s->iop.bypass);
+				  !s->cache_missed, s->iop.bypass);
 	trace_bcache_read(s->orig_bio, !s->cache_miss, s->iop.bypass);
 
 	if (s->iop.status)
@@ -786,6 +788,8 @@ static int cached_dev_cache_miss(struct
 	struct cached_dev *dc = container_of(s->d, struct cached_dev, disk);
 	struct bio *miss, *cache_bio;
 
+	s->cache_missed = 1;
+
 	if (s->cache_miss || s->iop.bypass) {
 		miss = bio_next_split(bio, sectors, GFP_NOIO, s->d->bio_split);
 		ret = miss == bio ? MAP_DONE : MAP_CONTINUE;

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

* [PATCH 4.14 105/178] Ib/hfi1: Return actual operational VLs in port info query
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (96 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 104/178] bcache: fix wrong cache_misses statistics Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 107/178] arm64: prevent regressions in compressed kernel image size when upgrading to binutils 2.27 Greg Kroah-Hartman
                   ` (64 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Mike Marciniszyn, Dennis Dalessandro,
	Patel Jay P, Doug Ledford, Sasha Levin

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

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

From: Patel Jay P <jay.p.patel@intel.com>


[ Upstream commit 00f9203119dd2774564407c7a67b17d81916298b ]

__subn_get_opa_portinfo stores value returned by hfi1_get_ib_cfg() as
operational vls. hfi1_get_ib_cfg() returns vls_operational field in
hfi1_pportdata. The problem with this is that the value is always equal
to vls_supported field in hfi1_pportdata.

The logic to calculate operational_vls is to set value passed by FM
(in  __subn_set_opa_portinfo routine). If no value is passed then
default value is stored in operational_vls.

Field actual_vls_operational is calculated on the basis of buffer
control table. Hence, modifying hfi1_get_ib_cfg() to return
actual_operational_vls when used with HFI1_IB_CFG_OP_VLS parameter

Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Patel Jay P <jay.p.patel@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/infiniband/hw/hfi1/chip.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/infiniband/hw/hfi1/chip.c
+++ b/drivers/infiniband/hw/hfi1/chip.c
@@ -9952,7 +9952,7 @@ int hfi1_get_ib_cfg(struct hfi1_pportdat
 		goto unimplemented;
 
 	case HFI1_IB_CFG_OP_VLS:
-		val = ppd->vls_operational;
+		val = ppd->actual_vls_operational;
 		break;
 	case HFI1_IB_CFG_VL_HIGH_CAP: /* VL arb high priority table size */
 		val = VL_ARB_HIGH_PRIO_TABLE_SIZE;

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

* [PATCH 4.14 107/178] arm64: prevent regressions in compressed kernel image size when upgrading to binutils 2.27
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (97 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 105/178] Ib/hfi1: Return actual operational VLs in port info query Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 109/178] btrfs: Explicitly handle btrfs_update_root failure Greg Kroah-Hartman
                   ` (63 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Gopinath Elanchezhian,
	Sindhuri Pentyala, Wei Wang, Ard Biesheuvel, Rahul Chaudhry,
	Siqi Lin, Stephen Hines, Nick Desaulniers, Will Deacon,
	Sasha Levin

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

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

From: Nick Desaulniers <ndesaulniers@google.com>


[ Upstream commit fd9dde6abcb9bfe6c6bee48834e157999f113971 ]

Upon upgrading to binutils 2.27, we found that our lz4 and gzip
compressed kernel images were significantly larger, resulting is 10ms
boot time regressions.

As noted by Rahul:
"aarch64 binaries uses RELA relocations, where each relocation entry
includes an addend value. This is similar to x86_64.  On x86_64, the
addend values are also stored at the relocation offset for relative
relocations. This is an optimization: in the case where code does not
need to be relocated, the loader can simply skip processing relative
relocations.  In binutils-2.25, both bfd and gold linkers did this for
x86_64, but only the gold linker did this for aarch64.  The kernel build
here is using the bfd linker, which stored zeroes at the relocation
offsets for relative relocations.  Since a set of zeroes compresses
better than a set of non-zero addend values, this behavior was resulting
in much better lz4 compression.

The bfd linker in binutils-2.27 is now storing the actual addend values
at the relocation offsets. The behavior is now consistent with what it
does for x86_64 and what gold linker does for both architectures.  The
change happened in this upstream commit:
https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=1f56df9d0d5ad89806c24e71f296576d82344613
Since a bunch of zeroes got replaced by non-zero addend values, we see
the side effect of lz4 compressed image being a bit bigger.

To get the old behavior from the bfd linker, "--no-apply-dynamic-relocs"
flag can be used:
$ LDFLAGS="--no-apply-dynamic-relocs" make
With this flag, the compressed image size is back to what it was with
binutils-2.25.

If the kernel is using ASLR, there aren't additional runtime costs to
--no-apply-dynamic-relocs, as the relocations will need to be applied
again anyway after the kernel is relocated to a random address.

If the kernel is not using ASLR, then presumably the current default
behavior of the linker is better. Since the static linker performed the
dynamic relocs, and the kernel is not moved to a different address at
load time, it can skip applying the relocations all over again."

Some measurements:

$ ld -v
GNU ld (binutils-2.25-f3d35cf6) 2.25.51.20141117
                    ^
$ ls -l vmlinux
-rwxr-x--- 1 ndesaulniers eng 300652760 Oct 26 11:57 vmlinux
$ ls -l Image.lz4-dtb
-rw-r----- 1 ndesaulniers eng 16932627 Oct 26 11:57 Image.lz4-dtb

$ ld -v
GNU ld (binutils-2.27-53dd00a1) 2.27.0.20170315
                    ^
pre patch:
$ ls -l vmlinux
-rwxr-x--- 1 ndesaulniers eng 300376208 Oct 26 11:43 vmlinux
$ ls -l Image.lz4-dtb
-rw-r----- 1 ndesaulniers eng 18159474 Oct 26 11:43 Image.lz4-dtb

post patch:
$ ls -l vmlinux
-rwxr-x--- 1 ndesaulniers eng 300376208 Oct 26 12:06 vmlinux
$ ls -l Image.lz4-dtb
-rw-r----- 1 ndesaulniers eng 16932466 Oct 26 12:06 Image.lz4-dtb

By Siqi's measurement w/ gzip:
binutils 2.27 with this patch (with --no-apply-dynamic-relocs):
Image 41535488
Image.gz 13404067

binutils 2.27 without this patch (without --no-apply-dynamic-relocs):
Image 41535488
Image.gz 14125516

Any compression scheme should be able to get better results from the
longer runs of zeros, not just GZIP and LZ4.

10ms boot time savings isn't anything to get excited about, but users of
arm64+compression+bfd-2.27 should not have to pay a penalty for no
runtime improvement.

Reported-by: Gopinath Elanchezhian <gelanchezhian@google.com>
Reported-by: Sindhuri Pentyala <spentyala@google.com>
Reported-by: Wei Wang <wvw@google.com>
Suggested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Suggested-by: Rahul Chaudhry <rahulchaudhry@google.com>
Suggested-by: Siqi Lin <siqilin@google.com>
Suggested-by: Stephen Hines <srhines@google.com>
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
[will: added comment to Makefile]
Signed-off-by: Will Deacon <will.deacon@arm.com>

Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 arch/arm64/Makefile |    8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

--- a/arch/arm64/Makefile
+++ b/arch/arm64/Makefile
@@ -14,8 +14,12 @@ LDFLAGS_vmlinux	:=-p --no-undefined -X
 CPPFLAGS_vmlinux.lds = -DTEXT_OFFSET=$(TEXT_OFFSET)
 GZFLAGS		:=-9
 
-ifneq ($(CONFIG_RELOCATABLE),)
-LDFLAGS_vmlinux		+= -pie -shared -Bsymbolic
+ifeq ($(CONFIG_RELOCATABLE), y)
+# Pass --no-apply-dynamic-relocs to restore pre-binutils-2.27 behaviour
+# for relative relocs, since this leads to better Image compression
+# with the relocation offsets always being zero.
+LDFLAGS_vmlinux		+= -pie -shared -Bsymbolic \
+			$(call ld-option, --no-apply-dynamic-relocs)
 endif
 
 ifeq ($(CONFIG_ARM64_ERRATUM_843419),y)

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

* [PATCH 4.14 109/178] btrfs: Explicitly handle btrfs_update_root failure
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (98 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 107/178] arm64: prevent regressions in compressed kernel image size when upgrading to binutils 2.27 Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 110/178] btrfs: undo writable superblocke when sprouting fails Greg Kroah-Hartman
                   ` (62 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Nikolay Borisov, David Sterba, Sasha Levin

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

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

From: Nikolay Borisov <nborisov@suse.com>


[ Upstream commit 9417ebc8a676487c6ec8825f92fb28f7dbeb5f4b ]

btrfs_udpate_root can fail and it aborts the transaction, the correct
way to handle an aborted transaction is to explicitly end with
btrfs_end_transaction.  Even now the code is correct since
btrfs_commit_transaction would handle an aborted transaction but this is
more of an implementation detail. So let's be explicit in handling
failure in btrfs_update_root.

Furthermore btrfs_commit_transaction can also fail and by ignoring it's
return value we could have left the in-memory copy of the root item in
an inconsistent state. So capture the error value which allows us to
correctly revert the RO/RW flags in case of commit failure.

Signed-off-by: Nikolay Borisov <nborisov@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 fs/btrfs/ioctl.c |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

--- a/fs/btrfs/ioctl.c
+++ b/fs/btrfs/ioctl.c
@@ -1842,8 +1842,13 @@ static noinline int btrfs_ioctl_subvol_s
 
 	ret = btrfs_update_root(trans, fs_info->tree_root,
 				&root->root_key, &root->root_item);
+	if (ret < 0) {
+		btrfs_end_transaction(trans);
+		goto out_reset;
+	}
+
+	ret = btrfs_commit_transaction(trans);
 
-	btrfs_commit_transaction(trans);
 out_reset:
 	if (ret)
 		btrfs_set_root_flags(&root->root_item, root_flags);

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

* [PATCH 4.14 110/178] btrfs: undo writable superblocke when sprouting fails
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (99 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 109/178] btrfs: Explicitly handle btrfs_update_root failure Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 111/178] btrfs: avoid null pointer dereference on fs_info when calling btrfs_crit Greg Kroah-Hartman
                   ` (61 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Anand Jain, Nikolay Borisov,
	David Sterba, Sasha Levin

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

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

From: Anand Jain <anand.jain@oracle.com>


[ Upstream commit 0af2c4bf5a012a40a2f9230458087d7f068339d0 ]

When new device is being added to seed FS, seed FS is marked writable,
but when we fail to bring in the new device, we missed to undo the
writable part. This patch fixes it.

Signed-off-by: Anand Jain <anand.jain@oracle.com>
Reviewed-by: Nikolay Borisov <nborisov@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 fs/btrfs/volumes.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/fs/btrfs/volumes.c
+++ b/fs/btrfs/volumes.c
@@ -2501,6 +2501,8 @@ int btrfs_init_new_device(struct btrfs_f
 	return ret;
 
 error_trans:
+	if (seeding_dev)
+		sb->s_flags |= MS_RDONLY;
 	btrfs_end_transaction(trans);
 	rcu_string_free(device->name);
 	btrfs_sysfs_rm_device_link(fs_info->fs_devices, device);

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

* [PATCH 4.14 111/178] btrfs: avoid null pointer dereference on fs_info when calling btrfs_crit
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (100 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 110/178] btrfs: undo writable superblocke when sprouting fails Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 112/178] btrfs: tests: Fix a memory leak in error handling path in run_test() Greg Kroah-Hartman
                   ` (60 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Colin Ian King, David Sterba, Sasha Levin

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

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

From: Colin Ian King <colin.king@canonical.com>


[ Upstream commit 3993b112dac968612b0b213ed59cb30f50b0015b ]

There are checks on fs_info in __btrfs_panic to avoid dereferencing a
null fs_info, however, there is a call to btrfs_crit that may also
dereference a null fs_info. Fix this by adding a check to see if fs_info
is null and only print the s_id if fs_info is non-null.

Detected by CoverityScan CID#401973 ("Dereference after null check")

Fixes: efe120a067c8 ("Btrfs: convert printk to btrfs_ and fix BTRFS prefix")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 fs/btrfs/super.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -202,7 +202,6 @@ static struct ratelimit_state printk_lim
 
 void btrfs_printk(const struct btrfs_fs_info *fs_info, const char *fmt, ...)
 {
-	struct super_block *sb = fs_info->sb;
 	char lvl[PRINTK_MAX_SINGLE_HEADER_LEN + 1] = "\0";
 	struct va_format vaf;
 	va_list args;
@@ -228,7 +227,8 @@ void btrfs_printk(const struct btrfs_fs_
 	vaf.va = &args;
 
 	if (__ratelimit(ratelimit))
-		printk("%sBTRFS %s (device %s): %pV\n", lvl, type, sb->s_id, &vaf);
+		printk("%sBTRFS %s (device %s): %pV\n", lvl, type,
+			fs_info ? fs_info->sb->s_id : "<unknown>", &vaf);
 
 	va_end(args);
 }

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

* [PATCH 4.14 112/178] btrfs: tests: Fix a memory leak in error handling path in run_test()
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (101 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 111/178] btrfs: avoid null pointer dereference on fs_info when calling btrfs_crit Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 113/178] qtnfmac: modify full Tx queue error reporting Greg Kroah-Hartman
                   ` (59 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Christophe JAILLET, Qu Wenruo,
	David Sterba, Sasha Levin

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

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

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


[ Upstream commit 9ca2e97fa3c3216200afe35a3b111ec51cc796d2 ]

If 'btrfs_alloc_path()' fails, we must free the resources already
allocated, as done in the other error handling paths in this function.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Reviewed-by: Qu Wenruo <quwenruo.btrfs@gmx.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 fs/btrfs/tests/free-space-tree-tests.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/fs/btrfs/tests/free-space-tree-tests.c
+++ b/fs/btrfs/tests/free-space-tree-tests.c
@@ -500,7 +500,8 @@ static int run_test(test_func_t test_fun
 	path = btrfs_alloc_path();
 	if (!path) {
 		test_msg("Couldn't allocate path\n");
-		return -ENOMEM;
+		ret = -ENOMEM;
+		goto out;
 	}
 
 	ret = add_block_group_free_space(&trans, root->fs_info, cache);

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

* [PATCH 4.14 113/178] qtnfmac: modify full Tx queue error reporting
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (102 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 112/178] btrfs: tests: Fix a memory leak in error handling path in run_test() Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 115/178] ARM64: dts: meson-gxbb-odroidc2: fix usb1 power supply Greg Kroah-Hartman
                   ` (58 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Sergey Matyukevich, Kalle Valo, Sasha Levin

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

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

From: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com>


[ Upstream commit e9931f984dd1e80adb3b5e095ef175fe383bc92d ]

Under heavy load it is normal that h/w Tx queue is almost full all the time
and reclaim should be done before transmitting next packet. Warning still
should be reported as well as s/w Tx queues should be stopped in the
case when reclaim failed.

Signed-off-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c
+++ b/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c
@@ -643,11 +643,11 @@ static int qtnf_tx_queue_ready(struct qt
 {
 	if (!CIRC_SPACE(priv->tx_bd_w_index, priv->tx_bd_r_index,
 			priv->tx_bd_num)) {
-		pr_err_ratelimited("reclaim full Tx queue\n");
 		qtnf_pcie_data_tx_reclaim(priv);
 
 		if (!CIRC_SPACE(priv->tx_bd_w_index, priv->tx_bd_r_index,
 				priv->tx_bd_num)) {
+			pr_warn_ratelimited("reclaim full Tx queue\n");
 			priv->tx_full_count++;
 			return 0;
 		}

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

* [PATCH 4.14 115/178] ARM64: dts: meson-gxbb-odroidc2: fix usb1 power supply
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (103 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 113/178] qtnfmac: modify full Tx queue error reporting Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 116/178] Bluetooth: btusb: Add new NFA344A entry Greg Kroah-Hartman
                   ` (57 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Neil Armstrong, Kevin Hilman, Sasha Levin

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

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

From: Neil Armstrong <narmstrong@baylibre.com>


[ Upstream commit e841ec956e539f4002f5e9fe9f9e904dcca12d5d ]

Looking at the schematics, the USB Power Supply is shared between the
two USB interfaces,
If the usb0 fails to initialize, the second one won't have power.

Fixes: 5a0803bd5ae2 ("ARM64: dts: meson-gxbb-odroidc2: Enable USB Nodes")
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts |    1 +
 1 file changed, 1 insertion(+)

--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
@@ -301,6 +301,7 @@
 
 &usb1_phy {
 	status = "okay";
+	phy-supply = <&usb_otg_pwr>;
 };
 
 &usb0 {

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

* [PATCH 4.14 116/178] Bluetooth: btusb: Add new NFA344A entry.
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (104 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 115/178] ARM64: dts: meson-gxbb-odroidc2: fix usb1 power supply Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 117/178] samples/bpf: adjust rlimit RLIMIT_MEMLOCK for xdp1 Greg Kroah-Hartman
                   ` (56 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Bartosz Chronowski, Marcel Holtmann,
	Sasha Levin

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

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

From: Bartosz Chronowski <ext.bartosz.chronowski@tieto.com>


[ Upstream commit 858ff38af77fc660092e82474ecc6ac135ed29fe ]

This change allows proper low power mode entry in suspend.

/sys/kernel/debug/usb/devices entry:
T:  Bus=01 Lev=01 Prnt=01 Port=05 Cnt=03 Dev#=  3 Spd=12   MxCh= 0
D:  Ver= 2.01 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=0489 ProdID=e09f Rev= 0.01
C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=1ms
E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
I:  If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E:  Ad=83(I) Atr=01(Isoc) MxPS=   9 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
I:  If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E:  Ad=83(I) Atr=01(Isoc) MxPS=  17 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
I:  If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E:  Ad=83(I) Atr=01(Isoc) MxPS=  25 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=  25 Ivl=1ms
I:  If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E:  Ad=83(I) Atr=01(Isoc) MxPS=  33 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=  33 Ivl=1ms
I:  If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E:  Ad=83(I) Atr=01(Isoc) MxPS=  49 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=  49 Ivl=1ms

Signed-off-by: Bartosz Chronowski <ext.bartosz.chronowski@tieto.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/bluetooth/btusb.c |    1 +
 1 file changed, 1 insertion(+)

--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -272,6 +272,7 @@ static const struct usb_device_id blackl
 	{ USB_DEVICE(0x0cf3, 0xe301), .driver_info = BTUSB_QCA_ROME },
 	{ USB_DEVICE(0x0cf3, 0xe360), .driver_info = BTUSB_QCA_ROME },
 	{ USB_DEVICE(0x0489, 0xe092), .driver_info = BTUSB_QCA_ROME },
+	{ USB_DEVICE(0x0489, 0xe09f), .driver_info = BTUSB_QCA_ROME },
 	{ USB_DEVICE(0x0489, 0xe0a2), .driver_info = BTUSB_QCA_ROME },
 	{ USB_DEVICE(0x04ca, 0x3011), .driver_info = BTUSB_QCA_ROME },
 	{ USB_DEVICE(0x04ca, 0x3016), .driver_info = BTUSB_QCA_ROME },

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

* [PATCH 4.14 117/178] samples/bpf: adjust rlimit RLIMIT_MEMLOCK for xdp1
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (105 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 116/178] Bluetooth: btusb: Add new NFA344A entry Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 118/178] liquidio: fix kernel panic in VF driver Greg Kroah-Hartman
                   ` (55 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Tushar Dave, Alexei Starovoitov,
	David S. Miller, Sasha Levin

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

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

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


[ Upstream commit 6dfca831c03ef654b1f7bff1b8d487d330e9f76b ]

Default rlimit RLIMIT_MEMLOCK is 64KB, causes bpf map failure.
e.g.
[root@lab bpf]#./xdp1 -N $(</sys/class/net/eth2/ifindex)
failed to create a map: 1 Operation not permitted

Fix it.

Signed-off-by: Tushar Dave <tushar.n.dave@oracle.com>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 samples/bpf/xdp1_user.c |    8 ++++++++
 1 file changed, 8 insertions(+)

--- a/samples/bpf/xdp1_user.c
+++ b/samples/bpf/xdp1_user.c
@@ -14,6 +14,7 @@
 #include <string.h>
 #include <unistd.h>
 #include <libgen.h>
+#include <sys/resource.h>
 
 #include "bpf_load.h"
 #include "bpf_util.h"
@@ -69,6 +70,7 @@ static void usage(const char *prog)
 
 int main(int argc, char **argv)
 {
+	struct rlimit r = {RLIM_INFINITY, RLIM_INFINITY};
 	const char *optstr = "SN";
 	char filename[256];
 	int opt;
@@ -91,6 +93,12 @@ int main(int argc, char **argv)
 		usage(basename(argv[0]));
 		return 1;
 	}
+
+	if (setrlimit(RLIMIT_MEMLOCK, &r)) {
+		perror("setrlimit(RLIMIT_MEMLOCK)");
+		return 1;
+	}
+
 	ifindex = strtoul(argv[optind], NULL, 0);
 
 	snprintf(filename, sizeof(filename), "%s_kern.o", argv[0]);

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

* [PATCH 4.14 118/178] liquidio: fix kernel panic in VF driver
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (106 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 117/178] samples/bpf: adjust rlimit RLIMIT_MEMLOCK for xdp1 Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 119/178] platform/x86: hp_accel: Add quirk for HP ProBook 440 G4 Greg Kroah-Hartman
                   ` (54 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Felix Manlunas, Raghu Vatsavayi,
	David S. Miller, Sasha Levin

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

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

From: Felix Manlunas <felix.manlunas@cavium.com>


[ Upstream commit aa28667cfbe4ff6f14454dda210b1f2e485f99b5 ]

Doing ifconfig down on VF driver in the middle of receiving line rate
traffic causes a kernel panic:

    LiquidIO_VF 0000:02:00.3: should not come here should not get rx when poll mode = 0 for vf
    BUG: unable to handle kernel NULL pointer dereference at           (null)
    .
    .
    .
    Call Trace:
     <IRQ>
     ? tasklet_action+0x102/0x120
     __do_softirq+0x91/0x292
     irq_exit+0xb6/0xc0
     do_IRQ+0x4f/0xd0
     common_interrupt+0x93/0x93
     </IRQ>
    RIP: 0010:cpuidle_enter_state+0x142/0x2f0
    RSP: 0018:ffffffffa6403e20 EFLAGS: 00000246 ORIG_RAX: ffffffffffffff59
    RAX: 0000000000000000 RBX: 0000000000000003 RCX: 000000000000001f
    RDX: 0000000000000000 RSI: 000000002ab7519f RDI: 0000000000000000
    RBP: ffffffffa6403e58 R08: 0000000000000084 R09: 0000000000000018
    R10: ffffffffa6403df0 R11: 00000000000003c7 R12: 0000000000000003
    R13: ffffd27ebd806800 R14: ffffffffa64d40d8 R15: 0000007be072823f
     cpuidle_enter+0x17/0x20
     call_cpuidle+0x23/0x40
     do_idle+0x18c/0x1f0
     cpu_startup_entry+0x64/0x70
     rest_init+0xa5/0xb0
     start_kernel+0x45e/0x46b
     x86_64_start_reservations+0x24/0x26
     x86_64_start_kernel+0x6f/0x72
     secondary_startup_64+0xa5/0xa5
    Code:  Bad RIP value.
    RIP:           (null) RSP: ffff9246ed003f28
    CR2: 0000000000000000
    ---[ end trace 92731e80f31b7d7d ]---
    Kernel panic - not syncing: Fatal exception in interrupt
    Kernel Offset: 0x24000000 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffffbfffffff)
    ---[ end Kernel panic - not syncing: Fatal exception in interrupt

Reason is:  in the function assigned to net_device_ops->ndo_stop, the steps
for bringing down the interface are done in the wrong order.  The step that
notifies the NIC firmware to stop forwarding packets to host is done too
late.  Fix it by moving that step to the beginning.

Signed-off-by: Felix Manlunas <felix.manlunas@cavium.com>
Signed-off-by: Raghu Vatsavayi <raghu.vatsavayi@cavium.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/net/ethernet/cavium/liquidio/lio_vf_main.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

--- a/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
+++ b/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
@@ -1289,6 +1289,9 @@ static int liquidio_stop(struct net_devi
 	struct octeon_device *oct = lio->oct_dev;
 	struct napi_struct *napi, *n;
 
+	/* tell Octeon to stop forwarding packets to host */
+	send_rx_ctrl_cmd(lio, 0);
+
 	if (oct->props[lio->ifidx].napi_enabled) {
 		list_for_each_entry_safe(napi, n, &netdev->napi_list, dev_list)
 			napi_disable(napi);
@@ -1306,9 +1309,6 @@ static int liquidio_stop(struct net_devi
 	netif_carrier_off(netdev);
 	lio->link_changes++;
 
-	/* tell Octeon to stop forwarding packets to host */
-	send_rx_ctrl_cmd(lio, 0);
-
 	ifstate_reset(lio, LIO_IFSTATE_RUNNING);
 
 	txqs_stop(netdev);

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

* [PATCH 4.14 119/178] platform/x86: hp_accel: Add quirk for HP ProBook 440 G4
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (107 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 118/178] liquidio: fix kernel panic in VF driver Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 120/178] nvme: use kref_get_unless_zero in nvme_find_get_ns Greg Kroah-Hartman
                   ` (53 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Osama Khan, Andy Shevchenko, Sasha Levin

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

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

From: Osama Khan <osama.khan@ericsson.com>


[ Upstream commit 163ca80013aafb6dc9cb295de3db7aeab9ab43f8 ]

Added support for HP ProBook 440 G4 laptops by including the accelerometer
orientation quirk for that device. Testing was performed based on the
axis orientation guidelines here:
https://www.kernel.org/doc/Documentation/misc-devices/lis3lv02d
which states "If the left side is elevated, X increases (becomes positive)".

When tested, on lifting the left edge, x values became increasingly negative
thus indicating an inverted x-axis on the installed lis3lv02d chip.
This was compensated by adding an entry for this device in hp_accel.c
specifying the quirk as x_inverted. The patch was tested on a
ProBook 440 G4 device and x-axis as well as y and z-axis values are now
generated as per spec.

Signed-off-by: Osama Khan <osama.khan@ericsson.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/platform/x86/hp_accel.c |    1 +
 1 file changed, 1 insertion(+)

--- a/drivers/platform/x86/hp_accel.c
+++ b/drivers/platform/x86/hp_accel.c
@@ -240,6 +240,7 @@ static const struct dmi_system_id lis3lv
 	AXIS_DMI_MATCH("HDX18", "HP HDX 18", x_inverted),
 	AXIS_DMI_MATCH("HPB432x", "HP ProBook 432", xy_rotated_left),
 	AXIS_DMI_MATCH("HPB440G3", "HP ProBook 440 G3", x_inverted_usd),
+	AXIS_DMI_MATCH("HPB440G4", "HP ProBook 440 G4", x_inverted),
 	AXIS_DMI_MATCH("HPB442x", "HP ProBook 442", xy_rotated_left),
 	AXIS_DMI_MATCH("HPB452x", "HP ProBook 452", y_inverted),
 	AXIS_DMI_MATCH("HPB522x", "HP ProBook 522", xy_swap),

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

* [PATCH 4.14 120/178] nvme: use kref_get_unless_zero in nvme_find_get_ns
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (108 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 119/178] platform/x86: hp_accel: Add quirk for HP ProBook 440 G4 Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 121/178] l2tp: cleanup l2tp_tunnel_delete calls Greg Kroah-Hartman
                   ` (52 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Christoph Hellwig, Sagi Grimberg,
	Hannes Reinecke, Johannes Thumshirn, Sasha Levin

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

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

From: Christoph Hellwig <hch@lst.de>


[ Upstream commit 2dd4122854f697afc777582d18548dded03ce5dd ]

For kref_get_unless_zero to protect against lookup vs free races we need
to use it in all places where we aren't guaranteed to already hold a
reference.  There is no such guarantee in nvme_find_get_ns, so switch to
kref_get_unless_zero in this function.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/nvme/host/core.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/drivers/nvme/host/core.c
+++ b/drivers/nvme/host/core.c
@@ -2299,7 +2299,8 @@ static struct nvme_ns *nvme_find_get_ns(
 	mutex_lock(&ctrl->namespaces_mutex);
 	list_for_each_entry(ns, &ctrl->namespaces, list) {
 		if (ns->ns_id == nsid) {
-			kref_get(&ns->kref);
+			if (!kref_get_unless_zero(&ns->kref))
+				continue;
 			ret = ns;
 			break;
 		}

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

* [PATCH 4.14 121/178] l2tp: cleanup l2tp_tunnel_delete calls
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (109 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 120/178] nvme: use kref_get_unless_zero in nvme_find_get_ns Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 122/178] xfs: fix log block underflow during recovery cycle verification Greg Kroah-Hartman
                   ` (51 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Jiri Slaby, Sabrina Dubroca,
	Guillaume Nault, David S. Miller, netdev, Sasha Levin

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

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

From: Jiri Slaby <jslaby@suse.cz>


[ Upstream commit 4dc12ffeaeac939097a3f55c881d3dc3523dff0c ]

l2tp_tunnel_delete does not return anything since commit 62b982eeb458
("l2tp: fix race condition in l2tp_tunnel_delete").  But call sites of
l2tp_tunnel_delete still do casts to void to avoid unused return value
warnings.

Kill these now useless casts.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Cc: Sabrina Dubroca <sd@queasysnail.net>
Cc: Guillaume Nault <g.nault@alphalink.fr>
Cc: David S. Miller <davem@davemloft.net>
Cc: netdev@vger.kernel.org
Acked-by: Guillaume Nault <g.nault@alphalink.fr>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/l2tp/l2tp_core.c    |    2 +-
 net/l2tp/l2tp_netlink.c |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

--- a/net/l2tp/l2tp_core.c
+++ b/net/l2tp/l2tp_core.c
@@ -1891,7 +1891,7 @@ static __net_exit void l2tp_exit_net(str
 
 	rcu_read_lock_bh();
 	list_for_each_entry_rcu(tunnel, &pn->l2tp_tunnel_list, list) {
-		(void)l2tp_tunnel_delete(tunnel);
+		l2tp_tunnel_delete(tunnel);
 	}
 	rcu_read_unlock_bh();
 
--- a/net/l2tp/l2tp_netlink.c
+++ b/net/l2tp/l2tp_netlink.c
@@ -282,7 +282,7 @@ static int l2tp_nl_cmd_tunnel_delete(str
 	l2tp_tunnel_notify(&l2tp_nl_family, info,
 			   tunnel, L2TP_CMD_TUNNEL_DELETE);
 
-	(void) l2tp_tunnel_delete(tunnel);
+	l2tp_tunnel_delete(tunnel);
 
 	l2tp_tunnel_dec_refcount(tunnel);
 

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

* [PATCH 4.14 122/178] xfs: fix log block underflow during recovery cycle verification
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (110 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 121/178] l2tp: cleanup l2tp_tunnel_delete calls Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 123/178] xfs: return a distinct error code value for IGET_INCORE cache misses Greg Kroah-Hartman
                   ` (50 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Zorro Lang, Brian Foster,
	Darrick J. Wong, Sasha Levin

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

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

From: Brian Foster <bfoster@redhat.com>


[ Upstream commit 9f2a4505800607e537e9dd9dea4f55c4b0c30c7a ]

It is possible for mkfs to format very small filesystems with too
small of an internal log with respect to the various minimum size
and block count requirements. If this occurs when the log happens to
be smaller than the scan window used for cycle verification and the
scan wraps the end of the log, the start_blk calculation in
xlog_find_head() underflows and leads to an attempt to scan an
invalid range of log blocks. This results in log recovery failure
and a failed mount.

Since there may be filesystems out in the wild with this kind of
geometry, we cannot simply refuse to mount. Instead, cap the scan
window for cycle verification to the size of the physical log. This
ensures that the cycle verification proceeds as expected when the
scan wraps the end of the log.

Reported-by: Zorro Lang <zlang@redhat.com>
Signed-off-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 fs/xfs/xfs_log_recover.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/fs/xfs/xfs_log_recover.c
+++ b/fs/xfs/xfs_log_recover.c
@@ -753,7 +753,7 @@ xlog_find_head(
 	 * in the in-core log.  The following number can be made tighter if
 	 * we actually look at the block size of the filesystem.
 	 */
-	num_scan_bblks = XLOG_TOTAL_REC_SHIFT(log);
+	num_scan_bblks = min_t(int, log_bbnum, XLOG_TOTAL_REC_SHIFT(log));
 	if (head_blk >= num_scan_bblks) {
 		/*
 		 * We are guaranteed that the entire check can be performed

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

* [PATCH 4.14 123/178] xfs: return a distinct error code value for IGET_INCORE cache misses
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (111 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 122/178] xfs: fix log block underflow during recovery cycle verification Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 124/178] xfs: fix incorrect extent state in xfs_bmap_add_extent_unwritten_real Greg Kroah-Hartman
                   ` (49 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Darrick J. Wong, Brian Foster,
	Dave Chinner, Sasha Levin

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

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

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


[ Upstream commit ed438b476b611c67089760037139f93ea8ed41d5 ]

For an XFS_IGET_INCORE iget operation, if the inode isn't in the cache,
return ENODATA so that we don't confuse it with the pre-existing ENOENT
cases (inode is in cache, but freed).

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 fs/xfs/xfs_icache.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/fs/xfs/xfs_icache.c
+++ b/fs/xfs/xfs_icache.c
@@ -610,7 +610,7 @@ again:
 	} else {
 		rcu_read_unlock();
 		if (flags & XFS_IGET_INCORE) {
-			error = -ENOENT;
+			error = -ENODATA;
 			goto out_error_or_again;
 		}
 		XFS_STATS_INC(mp, xs_ig_missed);

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

* [PATCH 4.14 124/178] xfs: fix incorrect extent state in xfs_bmap_add_extent_unwritten_real
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (112 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 123/178] xfs: return a distinct error code value for IGET_INCORE cache misses Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 125/178] net: dsa: lan9303: Do not disable switch fabric port 0 at .probe Greg Kroah-Hartman
                   ` (48 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Christoph Hellwig, Brian Foster,
	Darrick J. Wong, Sasha Levin

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

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

From: Christoph Hellwig <hch@lst.de>


[ Upstream commit 5e422f5e4fd71d18bc6b851eeb3864477b3d842e ]

There was one spot in xfs_bmap_add_extent_unwritten_real that didn't use the
passed in new extent state but always converted to normal, leading to wrong
behavior when converting from normal to unwritten.

Only found by code inspection, it seems like this code path to move partial
extent from written to unwritten while merging it with the next extent is
rarely exercised.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 fs/xfs/libxfs/xfs_bmap.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/fs/xfs/libxfs/xfs_bmap.c
+++ b/fs/xfs/libxfs/xfs_bmap.c
@@ -2560,7 +2560,7 @@ xfs_bmap_add_extent_unwritten_real(
 					&i)))
 				goto done;
 			XFS_WANT_CORRUPTED_GOTO(mp, i == 0, done);
-			cur->bc_rec.b.br_state = XFS_EXT_NORM;
+			cur->bc_rec.b.br_state = new->br_state;
 			if ((error = xfs_btree_insert(cur, &i)))
 				goto done;
 			XFS_WANT_CORRUPTED_GOTO(mp, i == 1, done);

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

* [PATCH 4.14 125/178] net: dsa: lan9303: Do not disable switch fabric port 0 at .probe
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (113 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 124/178] xfs: fix incorrect extent state in xfs_bmap_add_extent_unwritten_real Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 126/178] net: hns3: fix a bug in hclge_uninit_client_instance Greg Kroah-Hartman
                   ` (47 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Egil Hjelmeland, Andrew Lunn,
	David S. Miller, Sasha Levin

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

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

From: Egil Hjelmeland <privat@egil-hjelmeland.no>


[ Upstream commit 3c91b0c1de8d013490bbc41ce9ee8810ea5baddd ]

Make the LAN9303 work when lan9303_probe() is called twice.

For some unknown reason the LAN9303 switch fail to forward data when switch
fabric port 0 TX is disabled during probe. (Write of LAN9303_MAC_TX_CFG_0
in lan9303_disable_processing_port().)

In that situation the switch fabric seem to receive frames, because the ALR
is learning addresses. But no frames are transmitted on any of the ports.

In our system lan9303_probe() is called twice, first time
dsa_register_switch() return -EPROBE_DEFER. As an experiment, modified the
code to skip writing LAN9303_MAC_TX_CFG_0, port 0 during the first probe.
Then the switch works as expected.

Resolve the problem by not calling lan9303_disable_processing_port() on
port 0 during probe. Ports 1 and 2 are still disabled.

Although unsatisfying that the exact failure mechanism is not known,
the patch should not cause any harm.

Signed-off-by: Egil Hjelmeland <privat@egil-hjelmeland.no>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/net/dsa/lan9303-core.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/net/dsa/lan9303-core.c
+++ b/drivers/net/dsa/lan9303-core.c
@@ -569,7 +569,7 @@ static int lan9303_disable_processing(st
 {
 	int p;
 
-	for (p = 0; p < LAN9303_NUM_PORTS; p++) {
+	for (p = 1; p < LAN9303_NUM_PORTS; p++) {
 		int ret = lan9303_disable_processing_port(chip, p);
 
 		if (ret)

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

* [PATCH 4.14 126/178] net: hns3: fix a bug in hclge_uninit_client_instance
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (114 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 125/178] net: dsa: lan9303: Do not disable switch fabric port 0 at .probe Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 127/178] net: hns3: add nic_client check when initialize roce base information Greg Kroah-Hartman
                   ` (46 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Lipeng, David S. Miller, Sasha Levin

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

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

From: Lipeng <lipeng321@huawei.com>


[ Upstream commit a17dcf3f0124698d1120da71574bf4c339e5a368 ]

HNS3 driver initialize hdev->roce_client and vport->roce.client in
hclge_init_client_instance, and need set hdev->roce_client and
vport->roce.client NULL.

If do not set them NULL when uninit, it will fail in the scene:
insmod hns3.ko, hns-roce.ko, hns-roce-hw-v3.ko successfully, but
rmmod hns3.ko after rmmod hns-roce-hw-v2.ko and hns-roce.ko.
This patch fixes the issue.

Fixes: 46a3df9 (net: hns3: Add HNS3 Acceleration Engine & Compatibility Layer Support)

Signed-off-by: Lipeng <lipeng321@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c |   10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
@@ -4007,13 +4007,19 @@ static void hclge_uninit_client_instance
 
 	for (i = 0; i < hdev->num_vmdq_vport + 1; i++) {
 		vport = &hdev->vport[i];
-		if (hdev->roce_client)
+		if (hdev->roce_client) {
 			hdev->roce_client->ops->uninit_instance(&vport->roce,
 								0);
+			hdev->roce_client = NULL;
+			vport->roce.client = NULL;
+		}
 		if (client->type == HNAE3_CLIENT_ROCE)
 			return;
-		if (client->ops->uninit_instance)
+		if (client->ops->uninit_instance) {
 			client->ops->uninit_instance(&vport->nic, 0);
+			hdev->nic_client = NULL;
+			vport->nic.client = NULL;
+		}
 	}
 }
 

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

* [PATCH 4.14 127/178] net: hns3: add nic_client check when initialize roce base information
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (115 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 126/178] net: hns3: fix a bug in hclge_uninit_client_instance Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 128/178] net: hns3: fix the bug of hns3_set_txbd_baseinfo Greg Kroah-Hartman
                   ` (45 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Lipeng, David S. Miller, Sasha Levin

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

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

From: Lipeng <lipeng321@huawei.com>


[ Upstream commit 3a46f34d20d453f09defb76b11a567647939c0aa ]

Roce driver works base on HNS3 driver.If insmod Roce driver before
NIC driver there is a error because do not check nic_client. This patch
adds nic_client check when initialize roce base information.

Fixes: 46a3df9 (net: hns3: Add HNS3 Acceleration Engine & Compatibility Layer Support)

Signed-off-by: Lipeng <lipeng321@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
@@ -3981,7 +3981,7 @@ static int hclge_init_client_instance(st
 				vport->roce.client = client;
 			}
 
-			if (hdev->roce_client) {
+			if (hdev->roce_client && hdev->nic_client) {
 				ret = hclge_init_roce_base_info(vport);
 				if (ret)
 					goto err;

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

* [PATCH 4.14 128/178] net: hns3: fix the bug of hns3_set_txbd_baseinfo
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (116 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 127/178] net: hns3: add nic_client check when initialize roce base information Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 129/178] RDMA/cxgb4: Declare stag as __be32 Greg Kroah-Hartman
                   ` (44 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Lipeng, David S. Miller, Sasha Levin

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

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

From: Lipeng <lipeng321@huawei.com>


[ Upstream commit 7036d26f328f12a323069eb16d965055b4cb3795 ]

The SC bits of TX BD mean switch control. For this area, value 0
indicates no switch control, the packet is routed according to the
forwarding table. Value 1 indicates that the packet is transmitted
to the network bypassing the forwarding table.

As HNS3 driver need support VF later, VF conmunicate with its own
PF need forwarding table. This patch sets SC bits of TX BD 0 and use
forwarding table.

Fixes: 76ad4f0 (net: hns3: Add support of HNS3 Ethernet Driver for hip08 SoC)

Signed-off-by: Lipeng <lipeng321@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/net/ethernet/hisilicon/hns3/hns3pf/hns3_enet.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hns3_enet.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hns3_enet.c
@@ -721,7 +721,7 @@ static void hns3_set_txbd_baseinfo(u16 *
 		       HNS3_TXD_BDTYPE_M, 0);
 	hnae_set_bit(*bdtp_fe_sc_vld_ra_ri, HNS3_TXD_FE_B, !!frag_end);
 	hnae_set_bit(*bdtp_fe_sc_vld_ra_ri, HNS3_TXD_VLD_B, 1);
-	hnae_set_field(*bdtp_fe_sc_vld_ra_ri, HNS3_TXD_SC_M, HNS3_TXD_SC_S, 1);
+	hnae_set_field(*bdtp_fe_sc_vld_ra_ri, HNS3_TXD_SC_M, HNS3_TXD_SC_S, 0);
 }
 
 static int hns3_fill_desc(struct hns3_enet_ring *ring, void *priv,

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

* [PATCH 4.14 129/178] RDMA/cxgb4: Declare stag as __be32
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (117 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 128/178] net: hns3: fix the bug of hns3_set_txbd_baseinfo Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 130/178] PCI: Detach driver before procfs & sysfs teardown on device remove Greg Kroah-Hartman
                   ` (43 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Steve Wise, Leon Romanovsky,
	Doug Ledford, Sasha Levin

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

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

From: Leon Romanovsky <leon@kernel.org>


[ Upstream commit 35fb2a88ed4b77356fa679a8525c869a3594e287 ]

The scqe.stag is actually __b32, fix it.

  drivers/infiniband/hw/cxgb4/cq.c:754:52: warning: cast to restricted __be32

Cc: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Reviewed-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/infiniband/hw/cxgb4/t4.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/infiniband/hw/cxgb4/t4.h
+++ b/drivers/infiniband/hw/cxgb4/t4.h
@@ -171,7 +171,7 @@ struct t4_cqe {
 			__be32 msn;
 		} rcqe;
 		struct {
-			u32 stag;
+			__be32 stag;
 			u16 nada2;
 			u16 cidx;
 		} scqe;

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

* [PATCH 4.14 130/178] PCI: Detach driver before procfs & sysfs teardown on device remove
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (118 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 129/178] RDMA/cxgb4: Declare stag as __be32 Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 131/178] scsi: hisi_sas: fix the risk of freeing slot twice Greg Kroah-Hartman
                   ` (42 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Alex Williamson, Bjorn Helgaas, Sasha Levin

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

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

From: Alex Williamson <alex.williamson@redhat.com>


[ Upstream commit 16b6c8bb687cc3bec914de09061fcb8411951fda ]

When removing a device, for example a VF being removed due to SR-IOV
teardown, a "soft" hot-unplug via 'echo 1 > remove' in sysfs, or an actual
hot-unplug, we first remove the procfs and sysfs attributes for the device
before attempting to release the device from any driver bound to it.
Unbinding the driver from the device can take time.  The device might need
to write out data or it might be actively in use.  If it's in use by
userspace through a vfio driver, the unbind might block until the user
releases the device.  This leads to a potentially non-trivial amount of
time where the device exists, but we've torn down the interfaces that
userspace uses to examine devices, for instance lspci might generate this
sort of error:

  pcilib: Cannot open /sys/bus/pci/devices/0000:01:0a.3/config
  lspci: Unable to read the standard configuration space header of device 0000:01:0a.3

We don't seem to have any dependence on this teardown ordering in the
kernel, so let's unbind the driver first, which is also more symmetric with
the instantiation of the device in pci_bus_add_device().

Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/pci/remove.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/pci/remove.c
+++ b/drivers/pci/remove.c
@@ -19,9 +19,9 @@ static void pci_stop_dev(struct pci_dev
 	pci_pme_active(dev, false);
 
 	if (dev->is_added) {
+		device_release_driver(&dev->dev);
 		pci_proc_detach_device(dev);
 		pci_remove_sysfs_dev_files(dev);
-		device_release_driver(&dev->dev);
 		dev->is_added = 0;
 	}
 

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

* [PATCH 4.14 131/178] scsi: hisi_sas: fix the risk of freeing slot twice
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (119 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 130/178] PCI: Detach driver before procfs & sysfs teardown on device remove Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 132/178] scsi: hpsa: cleanup sas_phy structures in sysfs when unloading Greg Kroah-Hartman
                   ` (41 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Xiaofei Tan, John Garry,
	Martin K. Petersen, Sasha Levin

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

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

From: Xiaofei Tan <tanxiaofei@huawei.com>


[ Upstream commit 6ba0fbc35aa9f3bc8c12be3b4047055c9ce2ac92 ]

The function hisi_sas_slot_task_free() is used to free the slot and do
tidy-up of LLDD resources. The LLDD generally should know the state of
a slot and decide when to free it, and it should only be done once.

For some scenarios, we really don't know the state, like when TMF
timeout. In this case, we check task->lldd_task before calling
hisi_sas_slot_task_free().

However, we may miss some scenarios when we should also check
task->lldd_task, and it is not SMP safe to check task->lldd_task as we
don't protect it within spin lock.

This patch is to fix this risk of freeing slot twice, as follows:

  1. Check task->lldd_task in the hisi_sas_slot_task_free(), and give
     up freeing of this time if task->lldd_task is NULL.

  2. Set slot->buf to NULL after it is freed.

Signed-off-by: Xiaofei Tan <tanxiaofei@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 <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/scsi/hisi_sas/hisi_sas_main.c |    9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

--- a/drivers/scsi/hisi_sas/hisi_sas_main.c
+++ b/drivers/scsi/hisi_sas/hisi_sas_main.c
@@ -185,13 +185,16 @@ void hisi_sas_slot_task_free(struct hisi
 		struct domain_device *device = task->dev;
 		struct hisi_sas_device *sas_dev = device->lldd_dev;
 
+		if (!task->lldd_task)
+			return;
+
+		task->lldd_task = NULL;
+
 		if (!sas_protocol_ata(task->task_proto))
 			if (slot->n_elem)
 				dma_unmap_sg(dev, task->scatter, slot->n_elem,
 					     task->data_dir);
 
-		task->lldd_task = NULL;
-
 		if (sas_dev)
 			atomic64_dec(&sas_dev->running_req);
 	}
@@ -199,8 +202,8 @@ void hisi_sas_slot_task_free(struct hisi
 	if (slot->buf)
 		dma_pool_free(hisi_hba->buffer_pool, slot->buf, slot->buf_dma);
 
-
 	list_del_init(&slot->entry);
+	slot->buf = NULL;
 	slot->task = NULL;
 	slot->port = NULL;
 	hisi_sas_slot_index_free(hisi_hba, slot->idx);

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

* [PATCH 4.14 132/178] scsi: hpsa: cleanup sas_phy structures in sysfs when unloading
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (120 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 131/178] scsi: hisi_sas: fix the risk of freeing slot twice Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 133/178] scsi: hpsa: destroy sas transport properties before scsi_host Greg Kroah-Hartman
                   ` (40 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Don Brace, Martin Wilck,
	Martin K. Petersen, Sasha Levin

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

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

From: Martin Wilck <mwilck@suse.de>


[ Upstream commit 55ca38b4255bb336c2d35990bdb2b368e19b435a ]

I am resubmitting this patch on behalf of Martin Wilck with his
permission.

The original patch can be found here:
https://www.spinics.net/lists/linux-scsi/msg102083.html

This patch did not help until Hannes's
commit 9441284fbc39 ("scsi-fixup-kernel-warning-during-rmmod")
was applied to the kernel.

--------------------------------------
Original patch description from Martin:
--------------------------------------

When the hpsa module is unloaded using rmmod, dangling
symlinks remain under /sys/class/sas_phy. Fix this by
calling sas_phy_delete() rather than sas_phy_free (which,
according to comments, should not be called for PHYs that
have been set up successfully, anyway).

Tested-by: Don Brace <don.brace@microsemi.com>
Reviewed-by: Don Brace <don.brace@microsemi.com>
Signed-off-by: Martin Wilck <mwilck@suse.de>
Signed-off-by: Don Brace <don.brace@microsemi.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/scsi/hpsa.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/scsi/hpsa.c
+++ b/drivers/scsi/hpsa.c
@@ -9207,9 +9207,9 @@ static void hpsa_free_sas_phy(struct hps
 	struct sas_phy *phy = hpsa_sas_phy->phy;
 
 	sas_port_delete_phy(hpsa_sas_phy->parent_port->port, phy);
-	sas_phy_free(phy);
 	if (hpsa_sas_phy->added_to_port)
 		list_del(&hpsa_sas_phy->phy_list_entry);
+	sas_phy_delete(phy);
 	kfree(hpsa_sas_phy);
 }
 

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

* [PATCH 4.14 133/178] scsi: hpsa: destroy sas transport properties before scsi_host
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (121 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 132/178] scsi: hpsa: cleanup sas_phy structures in sysfs when unloading Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 134/178] mfd: mxs-lradc: Fix error handling in mxs_lradc_probe() Greg Kroah-Hartman
                   ` (39 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Don Brace, Martin Wilck,
	Martin K. Petersen, Sasha Levin

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

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

From: Martin Wilck <mwilck@suse.de>


[ Upstream commit dfb2e6f46b3074eb85203d8f0888b71ec1c2e37a ]

This patch cleans up a lot of warnings when unloading the driver.

A current example of the stack trace starts with:
    [  142.570715] sysfs group 'power' not found for kobject 'port-5:0'
There can be hundreds of these messages during a driver unload.

I am resubmitting this patch on behalf of Martin Wilck with his
permission.

His original patch can be found here:
https://www.spinics.net/lists/linux-scsi/msg102085.html

This patch did not help until Hannes's
commit 9441284fbc39 ("scsi-fixup-kernel-warning-during-rmmod")
was applied to the kernel.

---------------------------
Original patch description:
---------------------------

Unloading the hpsa driver causes warnings

[ 1063.793652] WARNING: CPU: 1 PID: 4850 at ../fs/sysfs/group.c:237 device_del+0x54/0x240()
[ 1063.793659] sysfs group ffffffff81cf21a0 not found for kobject 'port-2:0'

with two different stacks:
1)
[ 1063.793774]  [<ffffffff81448af4>] device_del+0x54/0x240
[ 1063.793780]  [<ffffffff8145178a>] transport_remove_classdev+0x4a/0x60
[ 1063.793784]  [<ffffffff81451216>] attribute_container_device_trigger+0xa6/0xb0
[ 1063.793802]  [<ffffffffa0105d46>] sas_port_delete+0x126/0x160 [scsi_transport_sas]
[ 1063.793819]  [<ffffffffa036ebcc>] hpsa_free_sas_port+0x3c/0x70 [hpsa]

2)
[ 1063.797103]  [<ffffffff81448af4>] device_del+0x54/0x240
[ 1063.797118]  [<ffffffffa0105d4e>] sas_port_delete+0x12e/0x160 [scsi_transport_sas]
[ 1063.797134]  [<ffffffffa036ebcc>] hpsa_free_sas_port+0x3c/0x70 [hpsa]

This is caused by the fact that host device hostX is deleted before the
SAS transport devices hostX/port-a:b.

This patch fixes this by reverting the order of device deletions.

Tested-by: Don Brace <don.brace@microsemi.com>
Reviewed-by: Don Brace <don.brace@microsemi.com>
Signed-off-by: Martin Wilck <mwilck@suse.de>
Signed-off-by: Don Brace <don.brace@microsemi.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/scsi/hpsa.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/drivers/scsi/hpsa.c
+++ b/drivers/scsi/hpsa.c
@@ -8684,6 +8684,8 @@ static void hpsa_remove_one(struct pci_d
 	destroy_workqueue(h->rescan_ctlr_wq);
 	destroy_workqueue(h->resubmit_wq);
 
+	hpsa_delete_sas_host(h);
+
 	/*
 	 * Call before disabling interrupts.
 	 * scsi_remove_host can trigger I/O operations especially
@@ -8718,8 +8720,6 @@ static void hpsa_remove_one(struct pci_d
 	h->lockup_detected = NULL;			/* init_one 2 */
 	/* (void) pci_disable_pcie_error_reporting(pdev); */	/* init_one 1 */
 
-	hpsa_delete_sas_host(h);
-
 	kfree(h);					/* init_one 1 */
 }
 

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

* [PATCH 4.14 134/178] mfd: mxs-lradc: Fix error handling in mxs_lradc_probe()
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (122 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 133/178] scsi: hpsa: destroy sas transport properties before scsi_host Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 135/178] net: hns3: fix the TX/RX ring.queue_index in hns3_ring_get_cfg Greg Kroah-Hartman
                   ` (38 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Alexey Khoroshilov, Lee Jones, Sasha Levin

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

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

From: Alexey Khoroshilov <khoroshilov@ispras.ru>


[ Upstream commit 362741a21a5c4b9ee31e75ce28d63c6d238a745c ]

There is the only path, where mxs_lradc_probe() leaves clk undisabled,
since it does return instead of goto err_clk.

Found by Linux Driver Verification project (linuxtesting.org).

Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/mfd/mxs-lradc.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

--- a/drivers/mfd/mxs-lradc.c
+++ b/drivers/mfd/mxs-lradc.c
@@ -196,8 +196,10 @@ static int mxs_lradc_probe(struct platfo
 	platform_set_drvdata(pdev, lradc);
 
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	if (!res)
-		return -ENOMEM;
+	if (!res) {
+		ret = -ENOMEM;
+		goto err_clk;
+	}
 
 	switch (lradc->soc) {
 	case IMX23_LRADC:

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

* [PATCH 4.14 135/178] net: hns3: fix the TX/RX ring.queue_index in hns3_ring_get_cfg
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (123 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 134/178] mfd: mxs-lradc: Fix error handling in mxs_lradc_probe() Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 136/178] net: hns3: fix the bug when map buffer fail Greg Kroah-Hartman
                   ` (37 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Lipeng, David S. Miller, Sasha Levin

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

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

From: Lipeng <lipeng321@huawei.com>


[ Upstream commit 66b447301ac710ee237dba8b653244018fbb6168 ]

The interface hns3_ring_get_cfg only update TX ring queue_index,
but do not update RX ring queue_index. This patch fixes it.

Fixes: 76ad4f0 (net: hns3: Add support of HNS3 Ethernet Driver for hip08 SoC)

Signed-off-by: Lipeng <lipeng321@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/net/ethernet/hisilicon/hns3/hns3pf/hns3_enet.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hns3_enet.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hns3_enet.c
@@ -2488,16 +2488,16 @@ static int hns3_ring_get_cfg(struct hnae
 
 	if (ring_type == HNAE3_RING_TYPE_TX) {
 		ring_data[q->tqp_index].ring = ring;
+		ring_data[q->tqp_index].queue_index = q->tqp_index;
 		ring->io_base = (u8 __iomem *)q->io_base + HNS3_TX_REG_OFFSET;
 	} else {
 		ring_data[q->tqp_index + queue_num].ring = ring;
+		ring_data[q->tqp_index + queue_num].queue_index = q->tqp_index;
 		ring->io_base = q->io_base;
 	}
 
 	hnae_set_bit(ring->flag, HNAE3_RING_TYPE_B, ring_type);
 
-	ring_data[q->tqp_index].queue_index = q->tqp_index;
-
 	ring->tqp = q;
 	ring->desc = NULL;
 	ring->desc_cb = NULL;

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

* [PATCH 4.14 136/178] net: hns3: fix the bug when map buffer fail
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (124 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 135/178] net: hns3: fix the TX/RX ring.queue_index in hns3_ring_get_cfg Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 137/178] net: hns3: fix a bug when alloc new buffer Greg Kroah-Hartman
                   ` (36 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Lipeng, David S. Miller, Sasha Levin

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

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

From: Lipeng <lipeng321@huawei.com>


[ Upstream commit 564883bb4dc1a4f3cba6344e77743175694b0761 ]

If one buffer had been recieved to stack, driver will alloc a new buffer,
map the buffer to device and replace the old buffer. When map fail, should
only free the new alloced buffer, but not free all buffers in the ring.

Fixes: 76ad4f0 (net: hns3: Add support of HNS3 Ethernet Driver for hip08 SoC)

Signed-off-by: Lipeng <lipeng321@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/net/ethernet/hisilicon/hns3/hns3pf/hns3_enet.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hns3_enet.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hns3_enet.c
@@ -1546,7 +1546,7 @@ static int hns3_reserve_buffer_map(struc
 	return 0;
 
 out_with_buf:
-	hns3_free_buffers(ring);
+	hns3_free_buffer(ring, cb);
 out:
 	return ret;
 }

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

* [PATCH 4.14 137/178] net: hns3: fix a bug when alloc new buffer
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (125 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 136/178] net: hns3: fix the bug when map buffer fail Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 138/178] serdev: ttyport: enforce tty-driver open() requirement Greg Kroah-Hartman
                   ` (35 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Lipeng, David S. Miller, Sasha Levin

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

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

From: Lipeng <lipeng321@huawei.com>


[ Upstream commit b9077428ec5569aacb2952d8a2ffb51c8988d3c2 ]

When alloce new buffer to HW, should unmap the old buffer first.
This old code map the old buffer but not unmap the old buffer,
this patch fixes it.

Fixes: 76ad4f0 (net: hns3: Add support of HNS3 Ethernet Driver for hip08 SoC)

Signed-off-by: Lipeng <lipeng321@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/net/ethernet/hisilicon/hns3/hns3pf/hns3_enet.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hns3_enet.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hns3_enet.c
@@ -1586,7 +1586,7 @@ out_buffer_fail:
 static void hns3_replace_buffer(struct hns3_enet_ring *ring, int i,
 				struct hns3_desc_cb *res_cb)
 {
-	hns3_map_buffer(ring, &ring->desc_cb[i]);
+	hns3_unmap_buffer(ring, &ring->desc_cb[i]);
 	ring->desc_cb[i] = *res_cb;
 	ring->desc[i].addr = cpu_to_le64(ring->desc_cb[i].dma);
 }

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

* [PATCH 4.14 138/178] serdev: ttyport: enforce tty-driver open() requirement
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (126 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 137/178] net: hns3: fix a bug when alloc new buffer Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 139/178] powerpc/perf/hv-24x7: Fix incorrect comparison in memord Greg Kroah-Hartman
                   ` (34 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Johan Hovold, Rob Herring, Sasha Levin

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

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

From: Johan Hovold <johan@kernel.org>


[ Upstream commit dee7d0f3b200c67c6ee96bd37c6e8fa52690ab56 ]

The tty-driver open routine is mandatory, but the serdev
tty-port-controller implementation did not treat it as such and would
instead fall back to calling tty_port_open() directly.

Signed-off-by: Johan Hovold <johan@kernel.org>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/tty/serdev/serdev-ttyport.c |   14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

--- a/drivers/tty/serdev/serdev-ttyport.c
+++ b/drivers/tty/serdev/serdev-ttyport.c
@@ -120,10 +120,10 @@ static int ttyport_open(struct serdev_co
 		return PTR_ERR(tty);
 	serport->tty = tty;
 
-	if (tty->ops->open)
-		tty->ops->open(serport->tty, NULL);
-	else
-		tty_port_open(serport->port, tty, NULL);
+	if (!tty->ops->open)
+		goto err_unlock;
+
+	tty->ops->open(serport->tty, NULL);
 
 	/* Bring the UART into a known 8 bits no parity hw fc state */
 	ktermios = tty->termios;
@@ -140,6 +140,12 @@ static int ttyport_open(struct serdev_co
 
 	tty_unlock(serport->tty);
 	return 0;
+
+err_unlock:
+	tty_unlock(tty);
+	tty_release_struct(tty, serport->tty_idx);
+
+	return -ENODEV;
 }
 
 static void ttyport_close(struct serdev_controller *ctrl)

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

* [PATCH 4.14 139/178] powerpc/perf/hv-24x7: Fix incorrect comparison in memord
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (127 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 138/178] serdev: ttyport: enforce tty-driver open() requirement Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 140/178] powerpc/xmon: Check before calling xive functions Greg Kroah-Hartman
                   ` (33 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, David Binderman, Michael Ellerman,
	Sasha Levin

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

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

From: Michael Ellerman <mpe@ellerman.id.au>


[ Upstream commit 05c14c03138532a3cb2aa29c2960445c8753343b ]

In the hv-24x7 code there is a function memord() which tries to
implement a sort function return -1, 0, 1. However one of the
conditions is incorrect, such that it can never be true, because we
will have already returned.

I don't believe there is a bug in practice though, because the
comparisons are an optimisation prior to calling memcmp().

Fix it by swapping the second comparision, so it can be true.

Reported-by: David Binderman <dcb314@hotmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 arch/powerpc/perf/hv-24x7.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/arch/powerpc/perf/hv-24x7.c
+++ b/arch/powerpc/perf/hv-24x7.c
@@ -540,7 +540,7 @@ static int memord(const void *d1, size_t
 {
 	if (s1 < s2)
 		return 1;
-	if (s2 > s1)
+	if (s1 > s2)
 		return -1;
 
 	return memcmp(d1, d2, s1);

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

* [PATCH 4.14 140/178] powerpc/xmon: Check before calling xive functions
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (128 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 139/178] powerpc/perf/hv-24x7: Fix incorrect comparison in memord Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 141/178] soc: mediatek: pwrap: fix compiler errors Greg Kroah-Hartman
                   ` (32 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Guilherme G. Piccoli, Breno Leitao,
	Michael Ellerman, Sasha Levin

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

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

From: Breno Leitao <leitao@debian.org>


[ Upstream commit 402e172a2ce76210f2fe921cf419d12103851344 ]

Currently xmon could call XIVE functions from OPAL even if the XIVE is
disabled or does not exist in the system, as in POWER8 machines. This
causes the following exception:

 1:mon> dx
 cpu 0x1: Vector: 700 (Program Check) at [c000000423c93450]
     pc: c00000000009cfa4: opal_xive_dump+0x50/0x68
     lr: c0000000000997b8: opal_return+0x0/0x50

This patch simply checks if XIVE is enabled before calling XIVE
functions.

Fixes: 243e25112d06 ("powerpc/xive: Native exploitation of the XIVE interrupt controller")
Suggested-by: Guilherme G. Piccoli <gpiccoli@linux.vnet.ibm.com>
Signed-off-by: Breno Leitao <leitao@debian.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 arch/powerpc/xmon/xmon.c |    5 +++++
 1 file changed, 5 insertions(+)

--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -2475,6 +2475,11 @@ static void dump_xives(void)
 	unsigned long num;
 	int c;
 
+	if (!xive_enabled()) {
+		printf("Xive disabled on this system\n");
+		return;
+	}
+
 	c = inchar();
 	if (c == 'a') {
 		dump_all_xives();

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

* [PATCH 4.14 141/178] soc: mediatek: pwrap: fix compiler errors
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (129 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 140/178] powerpc/xmon: Check before calling xive functions Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 142/178] ipv4: ipv4_default_advmss() should use route mtu Greg Kroah-Hartman
                   ` (31 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Matthias Brugger, Sasha Levin

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

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

From: Matthias Brugger <matthias.bgg@gmail.com>


[ Upstream commit fb2c1934f30577756e55e24e8870b45c78da3bc2 ]

When compiling using sparse, we got the following error:
drivers/soc/mediatek/mtk-pmic-wrap.c:686:25: error: dubious one-bit signed bitfield

Changing the data type to unsigned fixes this.

Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/soc/mediatek/mtk-pmic-wrap.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/soc/mediatek/mtk-pmic-wrap.c
+++ b/drivers/soc/mediatek/mtk-pmic-wrap.c
@@ -522,7 +522,7 @@ struct pmic_wrapper_type {
 	u32 int_en_all;
 	u32 spi_w;
 	u32 wdt_src;
-	int has_bridge:1;
+	unsigned int has_bridge:1;
 	int (*init_reg_clock)(struct pmic_wrapper *wrp);
 	int (*init_soc_specific)(struct pmic_wrapper *wrp);
 };

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

* [PATCH 4.14 142/178] ipv4: ipv4_default_advmss() should use route mtu
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (130 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 141/178] soc: mediatek: pwrap: fix compiler errors Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 144/178] tty fix oops when rmmod 8250 Greg Kroah-Hartman
                   ` (30 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Eric Dumazet, David S. Miller, Sasha Levin

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

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

From: Eric Dumazet <edumazet@google.com>


[ Upstream commit 164a5e7ad531e181334a3d3f03d0d5ad20d6faea ]

ipv4_default_advmss() incorrectly uses the device MTU instead
of the route provided one. IPv6 has the proper behavior,
lets harmonize the two protocols.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/ipv4/route.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/net/ipv4/route.c
+++ b/net/ipv4/route.c
@@ -1254,7 +1254,7 @@ static void set_class_tag(struct rtable
 static unsigned int ipv4_default_advmss(const struct dst_entry *dst)
 {
 	unsigned int header_size = sizeof(struct tcphdr) + sizeof(struct iphdr);
-	unsigned int advmss = max_t(unsigned int, dst->dev->mtu - header_size,
+	unsigned int advmss = max_t(unsigned int, ipv4_mtu(dst) - header_size,
 				    ip_rt_min_advmss);
 
 	return min(advmss, IPV4_MAX_PMTU - header_size);

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

* [PATCH 4.14 144/178] tty fix oops when rmmod 8250
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (131 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 142/178] ipv4: ipv4_default_advmss() should use route mtu Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 145/178] dev/dax: fix uninitialized variable build warning Greg Kroah-Hartman
                   ` (29 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, nixiaoming, Sasha Levin

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

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

From: nixiaoming <nixiaoming@huawei.com>


[ Upstream commit c79dde629d2027ca80329c62854a7635e623d527 ]

After rmmod 8250.ko
tty_kref_put starts kwork (release_one_tty) to release proc interface
oops when accessing driver->driver_name in proc_tty_unregister_driver

Use jprobe, found driver->driver_name point to 8250.ko
static static struct uart_driver serial8250_reg
.driver_name= serial,

Use name in proc_dir_entry instead of driver->driver_name to fix oops

test on linux 4.1.12:

BUG: unable to handle kernel paging request at ffffffffa01979de
IP: [<ffffffff81310f40>] strchr+0x0/0x30
PGD 1a0d067 PUD 1a0e063 PMD 851c1f067 PTE 0
Oops: 0000 [#1] PREEMPT SMP
Modules linked in: ... ...  [last unloaded: 8250]
CPU: 7 PID: 116 Comm: kworker/7:1 Tainted: G           O    4.1.12 #1
Hardware name: Insyde RiverForest/Type2 - Board Product Name1, BIOS NE5KV904 12/21/2015
Workqueue: events release_one_tty
task: ffff88085b684960 ti: ffff880852884000 task.ti: ffff880852884000
RIP: 0010:[<ffffffff81310f40>]  [<ffffffff81310f40>] strchr+0x0/0x30
RSP: 0018:ffff880852887c90  EFLAGS: 00010282
RAX: ffffffff81a5eca0 RBX: ffffffffa01979de RCX: 0000000000000004
RDX: ffff880852887d10 RSI: 000000000000002f RDI: ffffffffa01979de
RBP: ffff880852887cd8 R08: 0000000000000000 R09: ffff88085f5d94d0
R10: 0000000000000195 R11: 0000000000000000 R12: ffffffffa01979de
R13: ffff880852887d00 R14: ffffffffa01979de R15: ffff88085f02e840
FS:  0000000000000000(0000) GS:ffff88085f5c0000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: ffffffffa01979de CR3: 0000000001a0c000 CR4: 00000000001406e0
Stack:
 ffffffff812349b1 ffff880852887cb8 ffff880852887d10 ffff88085f5cd6c2
 ffff880852800a80 ffffffffa01979de ffff880852800a84 0000000000000010
 ffff88085bb28bd8 ffff880852887d38 ffffffff812354f0 ffff880852887d08
Call Trace:
 [<ffffffff812349b1>] ? __xlate_proc_name+0x71/0xd0
 [<ffffffff812354f0>] remove_proc_entry+0x40/0x180
 [<ffffffff815f6811>] ? _raw_spin_lock_irqsave+0x41/0x60
 [<ffffffff813be520>] ? destruct_tty_driver+0x60/0xe0
 [<ffffffff81237c68>] proc_tty_unregister_driver+0x28/0x40
 [<ffffffff813be548>] destruct_tty_driver+0x88/0xe0
 [<ffffffff813be5bd>] tty_driver_kref_put+0x1d/0x20
 [<ffffffff813becca>] release_one_tty+0x5a/0xd0
 [<ffffffff81074159>] process_one_work+0x139/0x420
 [<ffffffff810745a1>] worker_thread+0x121/0x450
 [<ffffffff81074480>] ? process_scheduled_works+0x40/0x40
 [<ffffffff8107a16c>] kthread+0xec/0x110
 [<ffffffff81080000>] ? tg_rt_schedulable+0x210/0x220
 [<ffffffff8107a080>] ? kthread_freezable_should_stop+0x80/0x80
 [<ffffffff815f7292>] ret_from_fork+0x42/0x70
 [<ffffffff8107a080>] ? kthread_freezable_should_stop+0x80/0x80

Signed-off-by: nixiaoming <nixiaoming@huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 fs/proc/proc_tty.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/fs/proc/proc_tty.c
+++ b/fs/proc/proc_tty.c
@@ -15,6 +15,7 @@
 #include <linux/tty.h>
 #include <linux/seq_file.h>
 #include <linux/bitops.h>
+#include "internal.h"
 
 /*
  * The /proc/tty directory inodes...
@@ -165,7 +166,7 @@ void proc_tty_unregister_driver(struct t
 	if (!ent)
 		return;
 		
-	remove_proc_entry(driver->driver_name, proc_tty_driver);
+	remove_proc_entry(ent->name, proc_tty_driver);
 	
 	driver->proc_entry = NULL;
 }

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

* [PATCH 4.14 145/178] dev/dax: fix uninitialized variable build warning
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (132 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 144/178] tty fix oops when rmmod 8250 Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 146/178] pinctrl: adi2: Fix Kconfig build problem Greg Kroah-Hartman
                   ` (28 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Ross Zwisler, Dan Williams, Sasha Levin

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

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

From: Ross Zwisler <ross.zwisler@linux.intel.com>


[ Upstream commit 0a3ff78699d1817e711441715d22665475466036 ]

Fix this build warning:

warning: 'phys' may be used uninitialized in this function
[-Wuninitialized]

As reported here:

https://lkml.org/lkml/2017/10/16/152
http://kisskb.ellerman.id.au/kisskb/buildresult/13181373/log/

Signed-off-by: Ross Zwisler <ross.zwisler@linux.intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/dax/device.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/drivers/dax/device.c
+++ b/drivers/dax/device.c
@@ -222,7 +222,8 @@ __weak phys_addr_t dax_pgoff_to_phys(str
 		unsigned long size)
 {
 	struct resource *res;
-	phys_addr_t phys;
+	/* gcc-4.6.3-nolibc for i386 complains that this is uninitialized */
+	phys_addr_t uninitialized_var(phys);
 	int i;
 
 	for (i = 0; i < dev_dax->num_resources; i++) {

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

* [PATCH 4.14 146/178] pinctrl: adi2: Fix Kconfig build problem
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (133 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 145/178] dev/dax: fix uninitialized variable build warning Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 147/178] raid5: Set R5_Expanded on parity devices as well as data Greg Kroah-Hartman
                   ` (27 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Steven Miao, Huanhuan Feng,
	Linus Walleij, Sasha Levin

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

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

From: Linus Walleij <linus.walleij@linaro.org>


[ Upstream commit 1c363531dd814dc4fe10865722bf6b0f72ce4673 ]

The build robot is complaining on Blackfin:

drivers/pinctrl/pinctrl-adi2.c: In function 'port_setup':
>> drivers/pinctrl/pinctrl-adi2.c:221:21: error: dereferencing
   pointer to incomplete type 'struct gpio_port_t'
      writew(readw(&regs->port_fer) & ~BIT(offset),
                        ^~
drivers/pinctrl/pinctrl-adi2.c: In function 'adi_gpio_ack_irq':
>> drivers/pinctrl/pinctrl-adi2.c:266:18: error: dereferencing
pointer to incomplete type 'struct bfin_pint_regs'
      if (readl(&regs->invert_set) & pintbit)
                     ^~
It seems the driver need to include <asm/gpio.h> and <asm/irq.h>
to compile.

The Blackfin architecture was re-defining the Kconfig
PINCTRL symbol which is not OK, so replaced this with
PINCTRL_BLACKFIN_ADI2 which selects PINCTRL and PINCTRL_ADI2
just like most arches do.

Further, the old GPIO driver symbol GPIO_ADI was possible to
select at the same time as selecting PINCTRL. This was not
working because the arch-local <asm/gpio.h> header contains
an explicit #ifndef PINCTRL clause making compilation break
if you combine them. The same is true for DEBUG_MMRS.

Make sure the ADI2 pinctrl driver is not selected at the same
time as the old GPIO implementation. (This should be converted
to use gpiolib or pincontrol and move to drivers/...) Also make
sure the old GPIO_ADI driver or DEBUG_MMRS is not selected at
the same time as the new PINCTRL implementation, and only make
PINCTRL_ADI2 selectable for the Blackfin families that actually
have it.

This way it is still possible to add e.g. I2C-based pin
control expanders on the Blackfin.

Cc: Steven Miao <realmz6@gmail.com>
Cc: Huanhuan Feng <huanhuan.feng@analog.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 arch/blackfin/Kconfig       |    7 +++++--
 arch/blackfin/Kconfig.debug |    1 +
 drivers/pinctrl/Kconfig     |    3 ++-
 3 files changed, 8 insertions(+), 3 deletions(-)

--- a/arch/blackfin/Kconfig
+++ b/arch/blackfin/Kconfig
@@ -321,11 +321,14 @@ config BF53x
 
 config GPIO_ADI
 	def_bool y
+	depends on !PINCTRL
 	depends on (BF51x || BF52x || BF53x || BF538 || BF539 || BF561)
 
-config PINCTRL
+config PINCTRL_BLACKFIN_ADI2
 	def_bool y
-	depends on BF54x || BF60x
+	depends on (BF54x || BF60x)
+	select PINCTRL
+	select PINCTRL_ADI2
 
 config MEM_MT48LC64M4A2FB_7E
 	bool
--- a/arch/blackfin/Kconfig.debug
+++ b/arch/blackfin/Kconfig.debug
@@ -18,6 +18,7 @@ config DEBUG_VERBOSE
 
 config DEBUG_MMRS
 	tristate "Generate Blackfin MMR tree"
+	depends on !PINCTRL
 	select DEBUG_FS
 	help
 	  Create a tree of Blackfin MMRs via the debugfs tree.  If
--- a/drivers/pinctrl/Kconfig
+++ b/drivers/pinctrl/Kconfig
@@ -33,7 +33,8 @@ config DEBUG_PINCTRL
 
 config PINCTRL_ADI2
 	bool "ADI pin controller driver"
-	depends on BLACKFIN
+	depends on (BF54x || BF60x)
+	depends on !GPIO_ADI
 	select PINMUX
 	select IRQ_DOMAIN
 	help

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

* [PATCH 4.14 147/178] raid5: Set R5_Expanded on parity devices as well as data.
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (134 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 146/178] pinctrl: adi2: Fix Kconfig build problem Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 148/178] scsi: scsi_devinfo: Add REPORTLUN2 to EMC SYMMETRIX blacklist entry Greg Kroah-Hartman
                   ` (26 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Curt, NeilBrown, Shaohua Li, Sasha Levin

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

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

From: NeilBrown <neilb@suse.com>


[ Upstream commit 235b6003fb28f0dd8e7ed8fbdb088bb548291766 ]

When reshaping a fully degraded raid5/raid6 to a larger
nubmer of devices, the new device(s) are not in-sync
and so that can make the newly grown stripe appear to be
"failed".
To avoid this, we set the R5_Expanded flag to say "Even though
this device is not fully in-sync, this block is safe so
don't treat the device as failed for this stripe".
This flag is set for data devices, not not for parity devices.

Consequently, if you have a RAID6 with two devices that are partly
recovered and a spare, and start a reshape to include the spare,
then when the reshape gets past the point where the recovery was
up to, it will think the stripes are failed and will get into
an infinite loop, failing to make progress.

So when contructing parity on an EXPAND_READY stripe,
set R5_Expanded.

Reported-by: Curt <lightspd@gmail.com>
Signed-off-by: NeilBrown <neilb@suse.com>
Signed-off-by: Shaohua Li <shli@fb.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/md/raid5.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

--- a/drivers/md/raid5.c
+++ b/drivers/md/raid5.c
@@ -1818,8 +1818,11 @@ static void ops_complete_reconstruct(voi
 		struct r5dev *dev = &sh->dev[i];
 
 		if (dev->written || i == pd_idx || i == qd_idx) {
-			if (!discard && !test_bit(R5_SkipCopy, &dev->flags))
+			if (!discard && !test_bit(R5_SkipCopy, &dev->flags)) {
 				set_bit(R5_UPTODATE, &dev->flags);
+				if (test_bit(STRIPE_EXPAND_READY, &sh->state))
+					set_bit(R5_Expanded, &dev->flags);
+			}
 			if (fua)
 				set_bit(R5_WantFUA, &dev->flags);
 			if (sync)

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

* [PATCH 4.14 148/178] scsi: scsi_devinfo: Add REPORTLUN2 to EMC SYMMETRIX blacklist entry
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (135 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 147/178] raid5: Set R5_Expanded on parity devices as well as data Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 149/178] IB/core: Fix use workqueue without WQ_MEM_RECLAIM Greg Kroah-Hartman
                   ` (25 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Kurt Garloff, Hannes Reinecke,
	Martin K. Petersen, Sasha Levin

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

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

From: Kurt Garloff <garloff@suse.de>


[ Upstream commit 909cf3e16a5274fe2127cf3cea5c8dba77b2c412 ]

All EMC SYMMETRIX support REPORT_LUNS, even if configured to report
SCSI-2 for whatever reason.

Signed-off-by: Kurt Garloff <garloff@suse.de>
Signed-off-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/scsi/scsi_devinfo.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/scsi/scsi_devinfo.c
+++ b/drivers/scsi/scsi_devinfo.c
@@ -161,7 +161,7 @@ static struct {
 	{"DGC", "RAID", NULL, BLIST_SPARSELUN},	/* Dell PV 650F, storage on LUN 0 */
 	{"DGC", "DISK", NULL, BLIST_SPARSELUN},	/* Dell PV 650F, no storage on LUN 0 */
 	{"EMC",  "Invista", "*", BLIST_SPARSELUN | BLIST_LARGELUN},
-	{"EMC", "SYMMETRIX", NULL, BLIST_SPARSELUN | BLIST_LARGELUN | BLIST_FORCELUN},
+	{"EMC", "SYMMETRIX", NULL, BLIST_SPARSELUN | BLIST_LARGELUN | BLIST_REPORTLUN2},
 	{"EMULEX", "MD21/S2     ESDI", NULL, BLIST_SINGLELUN},
 	{"easyRAID", "16P", NULL, BLIST_NOREPORTLUN},
 	{"easyRAID", "X6P", NULL, BLIST_NOREPORTLUN},

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

* [PATCH 4.14 149/178] IB/core: Fix use workqueue without WQ_MEM_RECLAIM
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (136 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 148/178] scsi: scsi_devinfo: Add REPORTLUN2 to EMC SYMMETRIX blacklist entry Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 150/178] IB/core: Fix calculation of maximum RoCE MTU Greg Kroah-Hartman
                   ` (24 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Parav Pandit, Daniel Jurgens,
	Leon Romanovsky, Doug Ledford, Sasha Levin

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

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

From: Parav Pandit <parav@mellanox.com>


[ Upstream commit 39baf10310e6669564a485b55267fae70a4e44ae ]

The IB/core provides address resolution service and invokes callback
handler when address resolve request completes of requester in worker
thread context.

Such caller might allocate or free memory in callback handler
depending on the completion status to make further progress or to
terminate a connection. Most ULPs resolve route which involves
allocating route entry and path record elements in callback event handler.

It has been noticed that WQ_MEM_RECLAIM flag should not be used for
workers that tend to allocate memory in this [1] thread discussion.

In order to mitigate this situation, WQ_MEM_RECLAIM flag was dropped for
other such WQs in this [2] patch.

Similar problem might arise with address resolution path, though its not
yet noticed. The ib_addr workqueue is not memory reclaim path due to its
nature of invoking callback that might allocate memory or don't free any
memory under memory pressure.

[1] https://www.spinics.net/lists/linux-rdma/msg53239.html
[2] https://www.spinics.net/lists/linux-rdma/msg53416.html

Fixes: f54816261c2b ("IB/addr: Remove deprecated create_singlethread_workqueue")
Fixes: 5fff41e1f89d ("IB/core: Fix race condition in resolving IP to MAC")
Signed-off-by: Parav Pandit <parav@mellanox.com>
Reviewed-by: Daniel Jurgens <danielj@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/infiniband/core/addr.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/infiniband/core/addr.c
+++ b/drivers/infiniband/core/addr.c
@@ -852,7 +852,7 @@ static struct notifier_block nb = {
 
 int addr_init(void)
 {
-	addr_wq = alloc_ordered_workqueue("ib_addr", WQ_MEM_RECLAIM);
+	addr_wq = alloc_ordered_workqueue("ib_addr", 0);
 	if (!addr_wq)
 		return -ENOMEM;
 

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

* [PATCH 4.14 150/178] IB/core: Fix calculation of maximum RoCE MTU
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (137 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 149/178] IB/core: Fix use workqueue without WQ_MEM_RECLAIM Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 151/178] vt6655: Fix a possible sleep-in-atomic bug in vt6655_suspend Greg Kroah-Hartman
                   ` (23 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Parav Pandit, Daniel Jurgens,
	Roland Dreier, Leon Romanovsky, Doug Ledford, Sasha Levin

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

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

From: Parav Pandit <parav@mellanox.com>


[ Upstream commit 99260132fde7bddc6e0132ce53da94d1c9ccabcb ]

The original code only took into consideration the largest header
possible after the IB_BTH_BYTES.  This was incorrect, as the largest
possible header size is the largest possible combination of headers we
might run into.  The new code accounts for all possible headers in the
largest possible combination and subtracts that from the MTU to make
sure that all packets will fit on the wire.

Link: https://www.spinics.net/lists/linux-rdma/msg54558.html
Fixes: 3c86aa70bf67 ("RDMA/cm: Add RDMA CM support for IBoE devices")
Signed-off-by: Parav Pandit <parav@mellanox.com>
Reviewed-by: Daniel Jurgens <danielj@mellanox.com>
Reported-by: Roland Dreier <roland@purestorage.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 include/rdma/ib_addr.h |    7 ++++---
 include/rdma/ib_pack.h |   19 +++++++++++--------
 2 files changed, 15 insertions(+), 11 deletions(-)

--- a/include/rdma/ib_addr.h
+++ b/include/rdma/ib_addr.h
@@ -245,10 +245,11 @@ static inline void rdma_addr_set_dgid(st
 static inline enum ib_mtu iboe_get_mtu(int mtu)
 {
 	/*
-	 * reduce IB headers from effective IBoE MTU. 28 stands for
-	 * atomic header which is the biggest possible header after BTH
+	 * Reduce IB headers from effective IBoE MTU.
 	 */
-	mtu = mtu - IB_GRH_BYTES - IB_BTH_BYTES - 28;
+	mtu = mtu - (IB_GRH_BYTES + IB_UDP_BYTES + IB_BTH_BYTES +
+		     IB_EXT_XRC_BYTES + IB_EXT_ATOMICETH_BYTES +
+		     IB_ICRC_BYTES);
 
 	if (mtu >= ib_mtu_enum_to_int(IB_MTU_4096))
 		return IB_MTU_4096;
--- a/include/rdma/ib_pack.h
+++ b/include/rdma/ib_pack.h
@@ -37,14 +37,17 @@
 #include <uapi/linux/if_ether.h>
 
 enum {
-	IB_LRH_BYTES  = 8,
-	IB_ETH_BYTES  = 14,
-	IB_VLAN_BYTES = 4,
-	IB_GRH_BYTES  = 40,
-	IB_IP4_BYTES  = 20,
-	IB_UDP_BYTES  = 8,
-	IB_BTH_BYTES  = 12,
-	IB_DETH_BYTES = 8
+	IB_LRH_BYTES		= 8,
+	IB_ETH_BYTES		= 14,
+	IB_VLAN_BYTES		= 4,
+	IB_GRH_BYTES		= 40,
+	IB_IP4_BYTES		= 20,
+	IB_UDP_BYTES		= 8,
+	IB_BTH_BYTES		= 12,
+	IB_DETH_BYTES		= 8,
+	IB_EXT_ATOMICETH_BYTES	= 28,
+	IB_EXT_XRC_BYTES	= 4,
+	IB_ICRC_BYTES		= 4
 };
 
 struct ib_field {

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

* [PATCH 4.14 151/178] vt6655: Fix a possible sleep-in-atomic bug in vt6655_suspend
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (138 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 150/178] IB/core: Fix calculation of maximum RoCE MTU Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 152/178] IB/hfi1: Mask out A bit from psn trace Greg Kroah-Hartman
                   ` (22 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Jia-Ju Bai, Sasha Levin

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

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

From: Jia-Ju Bai <baijiaju1990@163.com>


[ Upstream commit 42c8eb3f6e15367981b274cb79ee4657e2c6949d ]

The driver may sleep under a spinlock, and the function call path is:
vt6655_suspend (acquire the spinlock)
  pci_set_power_state
    __pci_start_power_transition (drivers/pci/pci.c)
      msleep --> may sleep

To fix it, pci_set_power_state is called without having a spinlock.

This bug is found by my static analysis tool and my code review.

Signed-off-by: Jia-Ju Bai <baijiaju1990@163.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/staging/vt6655/device_main.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/drivers/staging/vt6655/device_main.c
+++ b/drivers/staging/vt6655/device_main.c
@@ -1693,10 +1693,11 @@ static int vt6655_suspend(struct pci_dev
 	MACbShutdown(priv);
 
 	pci_disable_device(pcid);
-	pci_set_power_state(pcid, pci_choose_state(pcid, state));
 
 	spin_unlock_irqrestore(&priv->lock, flags);
 
+	pci_set_power_state(pcid, pci_choose_state(pcid, state));
+
 	return 0;
 }
 

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

* [PATCH 4.14 152/178] IB/hfi1: Mask out A bit from psn trace
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (139 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 151/178] vt6655: Fix a possible sleep-in-atomic bug in vt6655_suspend Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 153/178] rtl8188eu: Fix a possible sleep-in-atomic bug in rtw_createbss_cmd Greg Kroah-Hartman
                   ` (21 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Mike Marciniszyn, Don Hiatt,
	Dennis Dalessandro, Doug Ledford, Sasha Levin

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

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

From: Don Hiatt <don.hiatt@intel.com>


[ Upstream commit d0a2f454713a42447ee4007582c0e43c47bcf230 ]

The trace logic prior to the fixes below used to mask the
A bit from the psn. It now mistakenly displays the A bit,
which is already displayed separately.

Fix by adding the appropriate mask to the psn tracing.

Fixes: 228d2af1b723 ("IB/hfi1: Separate input/output header tracing")
Fixes: 863cf89d472f ("IB/hfi1: Add 16B trace support")
Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Don Hiatt <don.hiatt@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/infiniband/hw/hfi1/trace.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/drivers/infiniband/hw/hfi1/trace.c
+++ b/drivers/infiniband/hw/hfi1/trace.c
@@ -154,7 +154,7 @@ void hfi1_trace_parse_9b_bth(struct ib_o
 	*opcode = ib_bth_get_opcode(ohdr);
 	*tver = ib_bth_get_tver(ohdr);
 	*pkey = ib_bth_get_pkey(ohdr);
-	*psn = ib_bth_get_psn(ohdr);
+	*psn = mask_psn(ib_bth_get_psn(ohdr));
 	*qpn = ib_bth_get_qpn(ohdr);
 }
 
@@ -169,7 +169,7 @@ void hfi1_trace_parse_16b_bth(struct ib_
 	*pad = ib_bth_get_pad(ohdr);
 	*se = ib_bth_get_se(ohdr);
 	*tver = ib_bth_get_tver(ohdr);
-	*psn = ib_bth_get_psn(ohdr);
+	*psn = mask_psn(ib_bth_get_psn(ohdr));
 	*qpn = ib_bth_get_qpn(ohdr);
 }
 

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

* [PATCH 4.14 153/178] rtl8188eu: Fix a possible sleep-in-atomic bug in rtw_createbss_cmd
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (140 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 152/178] IB/hfi1: Mask out A bit from psn trace Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 154/178] rtl8188eu: Fix a possible sleep-in-atomic bug in rtw_disassoc_cmd Greg Kroah-Hartman
                   ` (20 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Jia-Ju Bai, Sasha Levin

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

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

From: Jia-Ju Bai <baijiaju1990@163.com>


[ Upstream commit 2bf9806d4228f7a6195f8e03eda0479d2a93b411 ]

The driver may sleep under a spinlock, and the function call path is:
rtw_surveydone_event_callback(acquire the spinlock)
  rtw_createbss_cmd
    kzalloc(GFP_KERNEL) --> may sleep

To fix it, GFP_KERNEL is replaced with GFP_ATOMIC.
This bug is found by my static analysis tool and my code review.

Signed-off-by: Jia-Ju Bai <baijiaju1990@163.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/staging/rtl8188eu/core/rtw_cmd.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/staging/rtl8188eu/core/rtw_cmd.c
+++ b/drivers/staging/rtl8188eu/core/rtw_cmd.c
@@ -333,7 +333,7 @@ u8 rtw_createbss_cmd(struct adapter  *pa
 	else
 		RT_TRACE(_module_rtl871x_cmd_c_, _drv_info_, (" createbss for SSid:%s\n", pmlmepriv->assoc_ssid.Ssid));
 
-	pcmd = kzalloc(sizeof(struct cmd_obj), GFP_KERNEL);
+	pcmd = kzalloc(sizeof(struct cmd_obj), GFP_ATOMIC);
 	if (!pcmd) {
 		res = _FAIL;
 		goto exit;

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

* [PATCH 4.14 154/178] rtl8188eu: Fix a possible sleep-in-atomic bug in rtw_disassoc_cmd
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (141 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 153/178] rtl8188eu: Fix a possible sleep-in-atomic bug in rtw_createbss_cmd Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 155/178] ipmi_si: fix memory leak on new_smi Greg Kroah-Hartman
                   ` (19 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Jia-Ju Bai, Sasha Levin

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

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

From: Jia-Ju Bai <baijiaju1990@163.com>


[ Upstream commit 08880f8e08cbd814e870e9d3ab9530abc1bce226 ]

The driver may sleep under a spinlock, and the function call path is:
rtw_set_802_11_bssid(acquire the spinlock)
  rtw_disassoc_cmd
    kzalloc(GFP_KERNEL) --> may sleep

To fix it, GFP_KERNEL is replaced with GFP_ATOMIC.
This bug is found by my static analysis tool and my code review.

Signed-off-by: Jia-Ju Bai <baijiaju1990@163.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/staging/rtl8188eu/core/rtw_cmd.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/staging/rtl8188eu/core/rtw_cmd.c
+++ b/drivers/staging/rtl8188eu/core/rtw_cmd.c
@@ -508,7 +508,7 @@ u8 rtw_disassoc_cmd(struct adapter *pada
 
 	if (enqueue) {
 		/* need enqueue, prepare cmd_obj and enqueue */
-		cmdobj = kzalloc(sizeof(*cmdobj), GFP_KERNEL);
+		cmdobj = kzalloc(sizeof(*cmdobj), GFP_ATOMIC);
 		if (!cmdobj) {
 			res = _FAIL;
 			kfree(param);

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

* [PATCH 4.14 155/178] ipmi_si: fix memory leak on new_smi
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (142 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 154/178] rtl8188eu: Fix a possible sleep-in-atomic bug in rtw_disassoc_cmd Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 156/178] nullb: fix error return code in null_init() Greg Kroah-Hartman
                   ` (18 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Colin Ian King, Corey Minyard, Sasha Levin

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

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

From: Colin Ian King <colin.king@canonical.com>


[ Upstream commit c0a32fe13cd323ca9420500b16fd69589c9ba91e ]

The error exit path omits kfree'ing the allocated new_smi, causing a memory
leak.  Fix this by kfree'ing new_smi.

Detected by CoverityScan, CID#14582571 ("Resource Leak")

Fixes: 7e030d6dff71 ("ipmi: Prefer ACPI system interfaces over SMBIOS ones")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Corey Minyard <cminyard@mvista.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/char/ipmi/ipmi_si_intf.c |    1 +
 1 file changed, 1 insertion(+)

--- a/drivers/char/ipmi/ipmi_si_intf.c
+++ b/drivers/char/ipmi/ipmi_si_intf.c
@@ -3469,6 +3469,7 @@ static int add_smi(struct smi_info *new_
 				 ipmi_addr_src_to_str(new_smi->addr_source),
 				 si_to_str[new_smi->si_type]);
 			rv = -EBUSY;
+			kfree(new_smi);
 			goto out_err;
 		}
 	}

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

* [PATCH 4.14 156/178] nullb: fix error return code in null_init()
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (143 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 155/178] ipmi_si: fix memory leak on new_smi Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 157/178] scsi: sd: change manage_start_stop to bool in sysfs interface Greg Kroah-Hartman
                   ` (17 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Wei Yongjun, Jens Axboe, Sasha Levin

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

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

From: Wei Yongjun <weiyongjun1@huawei.com>


[ Upstream commit 30c516d750396c5f3ec9cb04c9e025c25e91495e ]

Fix to return error code -ENOMEM from the null_alloc_dev() error
handling case instead of 0, as done elsewhere in this function.

Fixes: 2984c8684f96 ("nullb: factor disk parameters")
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/block/null_blk.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

--- a/drivers/block/null_blk.c
+++ b/drivers/block/null_blk.c
@@ -1985,8 +1985,10 @@ static int __init null_init(void)
 
 	for (i = 0; i < nr_devices; i++) {
 		dev = null_alloc_dev();
-		if (!dev)
+		if (!dev) {
+			ret = -ENOMEM;
 			goto err_dev;
+		}
 		ret = null_add_dev(dev);
 		if (ret) {
 			null_free_dev(dev);

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

* [PATCH 4.14 157/178] scsi: sd: change manage_start_stop to bool in sysfs interface
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (144 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 156/178] nullb: fix error return code in null_init() Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 158/178] scsi: sd: change allow_restart " Greg Kroah-Hartman
                   ` (16 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, weiping zhang, Martin K. Petersen,
	Sasha Levin

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

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

From: weiping zhang <zhangweiping@didichuxing.com>


[ Upstream commit 623401ee33e42cee64d333877892be8db02951eb ]

/sys/class/scsi_disk/0:2:0:0/manage_start_stop can be changed to 0
unexpectly by writing an invalid string.

Signed-off-by: weiping zhang <zhangweiping@didichuxing.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/scsi/sd.c |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -231,11 +231,15 @@ manage_start_stop_store(struct device *d
 {
 	struct scsi_disk *sdkp = to_scsi_disk(dev);
 	struct scsi_device *sdp = sdkp->device;
+	bool v;
 
 	if (!capable(CAP_SYS_ADMIN))
 		return -EACCES;
 
-	sdp->manage_start_stop = simple_strtoul(buf, NULL, 10);
+	if (kstrtobool(buf, &v))
+		return -EINVAL;
+
+	sdp->manage_start_stop = v;
 
 	return count;
 }

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

* [PATCH 4.14 158/178] scsi: sd: change allow_restart to bool in sysfs interface
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (145 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 157/178] scsi: sd: change manage_start_stop to bool in sysfs interface Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 159/178] scsi: bfa: integer overflow in debugfs Greg Kroah-Hartman
                   ` (15 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, weiping zhang, Martin K. Petersen,
	Sasha Levin

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

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

From: weiping zhang <zhangweiping@didichuxing.com>


[ Upstream commit 658e9a6dc1126f21fa417cd213e1cdbff8be0ba2 ]

/sys/class/scsi_disk/0:2:0:0/allow_restart can be changed to 0
unexpectedly by writing an invalid string such as the following:

echo asdf > /sys/class/scsi_disk/0:2:0:0/allow_restart

Signed-off-by: weiping zhang <zhangweiping@didichuxing.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/scsi/sd.c |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -257,6 +257,7 @@ static ssize_t
 allow_restart_store(struct device *dev, struct device_attribute *attr,
 		    const char *buf, size_t count)
 {
+	bool v;
 	struct scsi_disk *sdkp = to_scsi_disk(dev);
 	struct scsi_device *sdp = sdkp->device;
 
@@ -266,7 +267,10 @@ allow_restart_store(struct device *dev,
 	if (sdp->type != TYPE_DISK && sdp->type != TYPE_ZBC)
 		return -EINVAL;
 
-	sdp->allow_restart = simple_strtoul(buf, NULL, 10);
+	if (kstrtobool(buf, &v))
+		return -EINVAL;
+
+	sdp->allow_restart = v;
 
 	return count;
 }

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

* [PATCH 4.14 159/178] scsi: bfa: integer overflow in debugfs
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (146 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 158/178] scsi: sd: change allow_restart " Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 160/178] raid5-ppl: check recovery_offset when performing ppl recovery Greg Kroah-Hartman
                   ` (14 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Dan Carpenter, Martin K. Petersen,
	Sasha Levin

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

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

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


[ Upstream commit 3e351275655d3c84dc28abf170def9786db5176d ]

We could allocate less memory than intended because we do:

	bfad->regdata = kzalloc(len << 2, GFP_KERNEL);

The shift can overflow leading to a crash.  This is debugfs code so the
impact is very small.  I fixed the network version of this in March with
commit 13e2d5187f6b ("bna: integer overflow bug in debugfs").

Fixes: ab2a9ba189e8 ("[SCSI] bfa: add debugfs support")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/scsi/bfa/bfad_debugfs.c |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

--- a/drivers/scsi/bfa/bfad_debugfs.c
+++ b/drivers/scsi/bfa/bfad_debugfs.c
@@ -255,7 +255,8 @@ bfad_debugfs_write_regrd(struct file *fi
 	struct bfad_s *bfad = port->bfad;
 	struct bfa_s *bfa = &bfad->bfa;
 	struct bfa_ioc_s *ioc = &bfa->ioc;
-	int addr, len, rc, i;
+	int addr, rc, i;
+	u32 len;
 	u32 *regbuf;
 	void __iomem *rb, *reg_addr;
 	unsigned long flags;
@@ -266,7 +267,7 @@ bfad_debugfs_write_regrd(struct file *fi
 		return PTR_ERR(kern_buf);
 
 	rc = sscanf(kern_buf, "%x:%x", &addr, &len);
-	if (rc < 2) {
+	if (rc < 2 || len > (UINT_MAX >> 2)) {
 		printk(KERN_INFO
 			"bfad[%d]: %s failed to read user buf\n",
 			bfad->inst_no, __func__);

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

* [PATCH 4.14 160/178] raid5-ppl: check recovery_offset when performing ppl recovery
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (147 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 159/178] scsi: bfa: integer overflow in debugfs Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 161/178] md-cluster: fix wrong condition check in raid1_write_request Greg Kroah-Hartman
                   ` (13 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Artur Paszkiewicz, Shaohua Li, Sasha Levin

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

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

From: Artur Paszkiewicz <artur.paszkiewicz@intel.com>


[ Upstream commit 07719ff767dcd8cc42050f185d332052f3816546 ]

If starting an array that is undergoing rebuild, make ppl recovery honor
the recovery_offset of a member disk and don't read data that is not yet
in-sync.

Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
Signed-off-by: Shaohua Li <shli@fb.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/md/raid5-ppl.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/drivers/md/raid5-ppl.c
+++ b/drivers/md/raid5-ppl.c
@@ -758,7 +758,8 @@ static int ppl_recover_entry(struct ppl_
 				 (unsigned long long)sector);
 
 			rdev = conf->disks[dd_idx].rdev;
-			if (!rdev) {
+			if (!rdev || (!test_bit(In_sync, &rdev->flags) &&
+				      sector >= rdev->recovery_offset)) {
 				pr_debug("%s:%*s data member disk %d missing\n",
 					 __func__, indent, "", dd_idx);
 				update_parity = false;

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

* [PATCH 4.14 161/178] md-cluster: fix wrong condition check in raid1_write_request
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (148 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 160/178] raid5-ppl: check recovery_offset when performing ppl recovery Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 162/178] xprtrdma: Dont defer fencing an async RPCs chunks Greg Kroah-Hartman
                   ` (12 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Guoqing Jiang, Shaohua Li, Sasha Levin

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

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

From: Guoqing Jiang <gqjiang@suse.com>


[ Upstream commit 385f4d7f946b08f36f68b0a28e95a319925b6b62 ]

The check used here is to avoid conflict between write and
resync, however we used the wrong logic, it should be the
inverse of the checking inside "if".

Fixes: 589a1c4 ("Suspend writes in RAID1 if within range")
Signed-off-by: Guoqing Jiang <gqjiang@suse.com>
Signed-off-by: Shaohua Li <shli@fb.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/md/raid1.c |   10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

--- a/drivers/md/raid1.c
+++ b/drivers/md/raid1.c
@@ -1309,12 +1309,12 @@ static void raid1_write_request(struct m
 			sigset_t full, old;
 			prepare_to_wait(&conf->wait_barrier,
 					&w, TASK_INTERRUPTIBLE);
-			if (bio_end_sector(bio) <= mddev->suspend_lo ||
-			    bio->bi_iter.bi_sector >= mddev->suspend_hi ||
-			    (mddev_is_clustered(mddev) &&
+			if ((bio_end_sector(bio) <= mddev->suspend_lo ||
+			     bio->bi_iter.bi_sector >= mddev->suspend_hi) &&
+			    (!mddev_is_clustered(mddev) ||
 			     !md_cluster_ops->area_resyncing(mddev, WRITE,
-				     bio->bi_iter.bi_sector,
-				     bio_end_sector(bio))))
+							bio->bi_iter.bi_sector,
+							bio_end_sector(bio))))
 				break;
 			sigfillset(&full);
 			sigprocmask(SIG_BLOCK, &full, &old);

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

* [PATCH 4.14 162/178] xprtrdma: Dont defer fencing an async RPCs chunks
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (149 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 161/178] md-cluster: fix wrong condition check in raid1_write_request Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:49 ` [PATCH 4.14 163/178] udf: Avoid overflow when session starts at large offset Greg Kroah-Hartman
                   ` (11 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Chuck Lever, Anna Schumaker, Sasha Levin

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

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

From: Chuck Lever <chuck.lever@oracle.com>


[ Upstream commit 8f66b1a529047a972cb9602a919c53a95f3d7a2b ]

In current kernels, waiting in xprt_release appears to be safe to
do. I had erroneously believed that for ASYNC RPCs, waiting of any
kind in xprt_release->xprt_rdma_free would result in deadlock. I've
done injection testing and consulted with Trond to confirm that
waiting in the RPC release path is safe.

For the very few times where RPC resources haven't yet been released
earlier by the reply handler, it is safe to wait synchronously in
xprt_rdma_free for invalidation rather than defering it to MR
recovery.

Note: When the QP is error state, posting a LocalInvalidate should
flush and mark the MR as bad. There is no way the remote HCA can
access that MR via a QP in error state, so it is effectively already
inaccessible and thus safe for the Upper Layer to access. The next
time the MR is used it should be recognized and cleaned up properly
by frwr_op_map.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/sunrpc/xprtrdma/transport.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/net/sunrpc/xprtrdma/transport.c
+++ b/net/sunrpc/xprtrdma/transport.c
@@ -686,7 +686,7 @@ xprt_rdma_free(struct rpc_task *task)
 	dprintk("RPC:       %s: called on 0x%p\n", __func__, req->rl_reply);
 
 	if (!list_empty(&req->rl_registered))
-		ia->ri_ops->ro_unmap_safe(r_xprt, req, !RPC_IS_ASYNC(task));
+		ia->ri_ops->ro_unmap_sync(r_xprt, &req->rl_registered);
 	rpcrdma_unmap_sges(ia, req);
 	rpcrdma_buffer_put(req);
 }

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

* [PATCH 4.14 163/178] udf: Avoid overflow when session starts at large offset
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (150 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 162/178] xprtrdma: Dont defer fencing an async RPCs chunks Greg Kroah-Hartman
@ 2017-12-18 15:49 ` Greg Kroah-Hartman
  2017-12-18 15:50 ` [PATCH 4.14 164/178] macvlan: Only deliver one copy of the frame to the macvlan interface Greg Kroah-Hartman
                   ` (10 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Cezary Sliwa, Jan Kara, Sasha Levin

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

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

From: Jan Kara <jack@suse.cz>


[ Upstream commit abdc0eb06964fe1d2fea6dd1391b734d0590365d ]

When session starts beyond offset 2^31 the arithmetics in
udf_check_vsd() would overflow. Make sure the computation is done in
large enough type.

Reported-by: Cezary Sliwa <sliwa@ifpan.edu.pl>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 fs/udf/super.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/fs/udf/super.c
+++ b/fs/udf/super.c
@@ -703,7 +703,7 @@ static loff_t udf_check_vsd(struct super
 	else
 		sectorsize = sb->s_blocksize;
 
-	sector += (sbi->s_session << sb->s_blocksize_bits);
+	sector += (((loff_t)sbi->s_session) << sb->s_blocksize_bits);
 
 	udf_debug("Starting at sector %u (%ld byte sectors)\n",
 		  (unsigned int)(sector >> sb->s_blocksize_bits),

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

* [PATCH 4.14 164/178] macvlan: Only deliver one copy of the frame to the macvlan interface
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (151 preceding siblings ...)
  2017-12-18 15:49 ` [PATCH 4.14 163/178] udf: Avoid overflow when session starts at large offset Greg Kroah-Hartman
@ 2017-12-18 15:50 ` Greg Kroah-Hartman
  2017-12-18 15:50 ` [PATCH 4.14 165/178] IB/core: Fix endianness annotation in rdma_is_multicast_addr() Greg Kroah-Hartman
                   ` (9 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:50 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Alexander Duyck, David S. Miller,
	Sasha Levin

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

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

From: Alexander Duyck <alexander.h.duyck@intel.com>


[ Upstream commit dd6b9c2c332b40f142740d1b11fb77c653ff98ea ]

This patch intoduces a slight adjustment for macvlan to address the fact
that in source mode I was seeing two copies of any packet addressed to the
macvlan interface being delivered where there should have been only one.

The issue appears to be that one copy was delivered based on the source MAC
address and then the second copy was being delivered based on the
destination MAC address. To fix it I am just treating a unicast address
match as though it is not a match since source based macvlan isn't supposed
to be matching based on the destination MAC anyway.

Fixes: 79cf79abce71 ("macvlan: add source mode")
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/net/macvlan.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/net/macvlan.c
+++ b/drivers/net/macvlan.c
@@ -480,7 +480,7 @@ static rx_handler_result_t macvlan_handl
 					      struct macvlan_dev, list);
 	else
 		vlan = macvlan_hash_lookup(port, eth->h_dest);
-	if (vlan == NULL)
+	if (!vlan || vlan->mode == MACVLAN_MODE_SOURCE)
 		return RX_HANDLER_PASS;
 
 	dev = vlan->dev;

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

* [PATCH 4.14 165/178] IB/core: Fix endianness annotation in rdma_is_multicast_addr()
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (152 preceding siblings ...)
  2017-12-18 15:50 ` [PATCH 4.14 164/178] macvlan: Only deliver one copy of the frame to the macvlan interface Greg Kroah-Hartman
@ 2017-12-18 15:50 ` Greg Kroah-Hartman
  2017-12-18 15:50 ` [PATCH 4.14 166/178] RDMA/cma: Avoid triggering undefined behavior Greg Kroah-Hartman
                   ` (8 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:50 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Bart Van Assche, Leon Romanovsky,
	Doug Ledford, Sasha Levin

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

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

From: Bart Van Assche <bart.vanassche@wdc.com>


[ Upstream commit 1c3aea2bc8f0b2e5b57375ead40457ff75a3a2ec ]

Since ipv4_addr is a big endian 32-bit number, annotate it as such.

Fixes: commit be1d325a3358 ("IB/core: Set RoCEv2 MGID according to spec")
Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
Reviewed-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 include/rdma/ib_addr.h |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/include/rdma/ib_addr.h
+++ b/include/rdma/ib_addr.h
@@ -306,12 +306,12 @@ static inline void rdma_get_ll_mac(struc
 
 static inline int rdma_is_multicast_addr(struct in6_addr *addr)
 {
-	u32 ipv4_addr;
+	__be32 ipv4_addr;
 
 	if (addr->s6_addr[0] == 0xff)
 		return 1;
 
-	memcpy(&ipv4_addr, addr->s6_addr + 12, 4);
+	ipv4_addr = addr->s6_addr32[3];
 	return (ipv6_addr_v4mapped(addr) && ipv4_is_multicast(ipv4_addr));
 }
 

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

* [PATCH 4.14 166/178] RDMA/cma: Avoid triggering undefined behavior
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (153 preceding siblings ...)
  2017-12-18 15:50 ` [PATCH 4.14 165/178] IB/core: Fix endianness annotation in rdma_is_multicast_addr() Greg Kroah-Hartman
@ 2017-12-18 15:50 ` Greg Kroah-Hartman
  2017-12-18 15:50 ` [PATCH 4.14 167/178] IB/ipoib: Grab rtnl lock on heavy flush when calling ndo_open/stop Greg Kroah-Hartman
                   ` (7 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:50 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Bart Van Assche, Sean Hefty,
	Doug Ledford, Sasha Levin

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

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

From: Bart Van Assche <bart.vanassche@wdc.com>


[ Upstream commit c0b64f58e8d49570aa9ee55d880f92c20ff0166b ]

According to the C standard the behavior of computations with
integer operands is as follows:
* A computation involving unsigned operands can never overflow,
  because a result that cannot be represented by the resulting
  unsigned integer type is reduced modulo the number that is one
  greater than the largest value that can be represented by the
  resulting type.
* The behavior for signed integer underflow and overflow is
  undefined.

Hence only use unsigned integers when checking for integer
overflow.

This patch is what I came up with after having analyzed the
following smatch warnings:

drivers/infiniband/core/cma.c:3448: cma_resolve_ib_udp() warn: signed overflow undefined. 'offset + conn_param->private_data_len < conn_param->private_data_len'
drivers/infiniband/core/cma.c:3505: cma_connect_ib() warn: signed overflow undefined. 'offset + conn_param->private_data_len < conn_param->private_data_len'

Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
Acked-by: Sean Hefty <sean.hefty@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/infiniband/core/cma.c |   11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -1540,7 +1540,7 @@ static struct rdma_id_private *cma_id_fr
 	return id_priv;
 }
 
-static inline int cma_user_data_offset(struct rdma_id_private *id_priv)
+static inline u8 cma_user_data_offset(struct rdma_id_private *id_priv)
 {
 	return cma_family(id_priv) == AF_IB ? 0 : sizeof(struct cma_hdr);
 }
@@ -1942,7 +1942,8 @@ static int cma_req_handler(struct ib_cm_
 	struct rdma_id_private *listen_id, *conn_id = NULL;
 	struct rdma_cm_event event;
 	struct net_device *net_dev;
-	int offset, ret;
+	u8 offset;
+	int ret;
 
 	listen_id = cma_id_from_event(cm_id, ib_event, &net_dev);
 	if (IS_ERR(listen_id))
@@ -3440,7 +3441,8 @@ static int cma_resolve_ib_udp(struct rdm
 	struct ib_cm_sidr_req_param req;
 	struct ib_cm_id	*id;
 	void *private_data;
-	int offset, ret;
+	u8 offset;
+	int ret;
 
 	memset(&req, 0, sizeof req);
 	offset = cma_user_data_offset(id_priv);
@@ -3497,7 +3499,8 @@ static int cma_connect_ib(struct rdma_id
 	struct rdma_route *route;
 	void *private_data;
 	struct ib_cm_id	*id;
-	int offset, ret;
+	u8 offset;
+	int ret;
 
 	memset(&req, 0, sizeof req);
 	offset = cma_user_data_offset(id_priv);

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

* [PATCH 4.14 167/178] IB/ipoib: Grab rtnl lock on heavy flush when calling ndo_open/stop
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (154 preceding siblings ...)
  2017-12-18 15:50 ` [PATCH 4.14 166/178] RDMA/cma: Avoid triggering undefined behavior Greg Kroah-Hartman
@ 2017-12-18 15:50 ` Greg Kroah-Hartman
  2017-12-18 15:50 ` [PATCH 4.14 168/178] icmp: dont fail on fragment reassembly time exceeded Greg Kroah-Hartman
                   ` (6 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:50 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Alex Vesker, Sasha Levin

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

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

From: Alex Vesker <valex@mellanox.com>


[ Upstream commit b4b678b06f6eef18bff44a338c01870234db0bc9 ]

When ndo_open and ndo_stop are called RTNL lock should be held.
In this specific case ipoib_ib_dev_open calls the offloaded ndo_open
which re-sets the number of TX queue assuming RTNL lock is held.
Since RTNL lock is not held, RTNL assert will fail.

Signed-off-by: Alex Vesker <valex@mellanox.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/infiniband/ulp/ipoib/ipoib_ib.c |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

--- a/drivers/infiniband/ulp/ipoib/ipoib_ib.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_ib.c
@@ -1203,10 +1203,15 @@ static void __ipoib_ib_dev_flush(struct
 		ipoib_ib_dev_down(dev);
 
 	if (level == IPOIB_FLUSH_HEAVY) {
+		rtnl_lock();
 		if (test_bit(IPOIB_FLAG_INITIALIZED, &priv->flags))
 			ipoib_ib_dev_stop(dev);
-		if (ipoib_ib_dev_open(dev) != 0)
+
+		result = ipoib_ib_dev_open(dev);
+		rtnl_unlock();
+		if (result)
 			return;
+
 		if (netif_queue_stopped(dev))
 			netif_start_queue(dev);
 	}

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

* [PATCH 4.14 168/178] icmp: dont fail on fragment reassembly time exceeded
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (155 preceding siblings ...)
  2017-12-18 15:50 ` [PATCH 4.14 167/178] IB/ipoib: Grab rtnl lock on heavy flush when calling ndo_open/stop Greg Kroah-Hartman
@ 2017-12-18 15:50 ` Greg Kroah-Hartman
  2017-12-18 15:50 ` [PATCH 4.14 176/178] ath10k: fix core PCI suspend when WoWLAN is supported but disabled Greg Kroah-Hartman
                   ` (5 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:50 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Matteo Croce, David S. Miller, Sasha Levin

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

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

From: Matteo Croce <mcroce@redhat.com>


[ Upstream commit 258bbb1b0e594ad5f5652cb526b3c63e6a7fad3d ]

The ICMP implementation currently replies to an ICMP time exceeded message
(type 11) with an ICMP host unreachable message (type 3, code 1).

However, time exceeded messages can either represent "time to live exceeded
in transit" (code 0) or "fragment reassembly time exceeded" (code 1).

Unconditionally replying to "fragment reassembly time exceeded" with
host unreachable messages might cause unjustified connection resets
which are now easily triggered as UFO has been removed, because, in turn,
sending large buffers triggers IP fragmentation.

The issue can be easily reproduced by running a lot of UDP streams
which is likely to trigger IP fragmentation:

  # start netserver in the test namespace
  ip netns add test
  ip netns exec test netserver

  # create a VETH pair
  ip link add name veth0 type veth peer name veth0 netns test
  ip link set veth0 up
  ip -n test link set veth0 up

  for i in $(seq 20 29); do
      # assign addresses to both ends
      ip addr add dev veth0 192.168.$i.1/24
      ip -n test addr add dev veth0 192.168.$i.2/24

      # start the traffic
      netperf -L 192.168.$i.1 -H 192.168.$i.2 -t UDP_STREAM -l 0 &
  done

  # wait
  send_data: data send error: No route to host (errno 113)
  netperf: send_omni: send_data failed: No route to host

We need to differentiate instead: if fragment reassembly time exceeded
is reported, we need to silently drop the packet,
if time to live exceeded is reported, maintain the current behaviour.
In both cases increment the related error count "icmpInTimeExcds".

While at it, fix a typo in a comment, and convert the if statement
into a switch to mate it more readable.

Signed-off-by: Matteo Croce <mcroce@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/ipv4/icmp.c |   15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

--- a/net/ipv4/icmp.c
+++ b/net/ipv4/icmp.c
@@ -782,7 +782,7 @@ static bool icmp_tag_validation(int prot
 }
 
 /*
- *	Handle ICMP_DEST_UNREACH, ICMP_TIME_EXCEED, ICMP_QUENCH, and
+ *	Handle ICMP_DEST_UNREACH, ICMP_TIME_EXCEEDED, ICMP_QUENCH, and
  *	ICMP_PARAMETERPROB.
  */
 
@@ -810,7 +810,8 @@ static bool icmp_unreach(struct sk_buff
 	if (iph->ihl < 5) /* Mangled header, drop. */
 		goto out_err;
 
-	if (icmph->type == ICMP_DEST_UNREACH) {
+	switch (icmph->type) {
+	case ICMP_DEST_UNREACH:
 		switch (icmph->code & 15) {
 		case ICMP_NET_UNREACH:
 		case ICMP_HOST_UNREACH:
@@ -846,8 +847,16 @@ static bool icmp_unreach(struct sk_buff
 		}
 		if (icmph->code > NR_ICMP_UNREACH)
 			goto out;
-	} else if (icmph->type == ICMP_PARAMETERPROB)
+		break;
+	case ICMP_PARAMETERPROB:
 		info = ntohl(icmph->un.gateway) >> 24;
+		break;
+	case ICMP_TIME_EXCEEDED:
+		__ICMP_INC_STATS(net, ICMP_MIB_INTIMEEXCDS);
+		if (icmph->code == ICMP_EXC_FRAGTIME)
+			goto out;
+		break;
+	}
 
 	/*
 	 *	Throw it at our lower layers

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

* [PATCH 4.14 176/178] ath10k: fix core PCI suspend when WoWLAN is supported but disabled
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (156 preceding siblings ...)
  2017-12-18 15:50 ` [PATCH 4.14 168/178] icmp: dont fail on fragment reassembly time exceeded Greg Kroah-Hartman
@ 2017-12-18 15:50 ` Greg Kroah-Hartman
  2017-12-18 15:50 ` [PATCH 4.14 177/178] ath10k: fix build errors with !CONFIG_PM Greg Kroah-Hartman
                   ` (4 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:50 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Brian Norris, Ryan Hsu, Kalle Valo,
	Michal Kazior, Sasha Levin

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

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

From: Brian Norris <briannorris@chromium.org>


[ Upstream commit 96378bd2c6cda5f04d0f6da2cd35d4670a982c38 ]

For devices where the FW supports WoWLAN but user-space has not
configured it, we don't do any PCI-specific suspend/resume operations,
because mac80211 doesn't call drv_suspend() when !wowlan. This has
particularly bad effects for some platforms, because we don't stop the
power-save timer, and if this timer goes off after the PCI controller
has suspended the link, Bad Things will happen.

Commit 32faa3f0ee50 ("ath10k: add the PCI PM core suspend/resume ops")
got some of this right, in that it understood there was a problem on
non-WoWLAN firmware. But it forgot the $subject case.

Fix this by moving all the PCI driver suspend/resume logic exclusively
into the driver PM hooks. This shouldn't affect WoWLAN support much
(this just gets executed later on).

I would just as well kill the entirety of ath10k_hif_suspend(), as it's
not even implemented on the USB or SDIO drivers. I expect that we don't
need the callback, except to return "supported" (i.e., 0) or "not
supported" (i.e., -EOPNOTSUPP).

Fixes: 32faa3f0ee50 ("ath10k: add the PCI PM core suspend/resume ops")
Fixes: 77258d409ce4 ("ath10k: enable pci soc powersaving")
Signed-off-by: Brian Norris <briannorris@chromium.org>
Cc: Ryan Hsu <ryanhsu@qti.qualcomm.com>
Cc: Kalle Valo <kvalo@qca.qualcomm.com>
Cc: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/net/wireless/ath/ath10k/pci.c |   24 ++++++++++++++----------
 1 file changed, 14 insertions(+), 10 deletions(-)

--- a/drivers/net/wireless/ath/ath10k/pci.c
+++ b/drivers/net/wireless/ath/ath10k/pci.c
@@ -2581,6 +2581,12 @@ void ath10k_pci_hif_power_down(struct at
 
 static int ath10k_pci_hif_suspend(struct ath10k *ar)
 {
+	/* Nothing to do; the important stuff is in the driver suspend. */
+	return 0;
+}
+
+static int ath10k_pci_suspend(struct ath10k *ar)
+{
 	/* The grace timer can still be counting down and ar->ps_awake be true.
 	 * It is known that the device may be asleep after resuming regardless
 	 * of the SoC powersave state before suspending. Hence make sure the
@@ -2593,6 +2599,12 @@ static int ath10k_pci_hif_suspend(struct
 
 static int ath10k_pci_hif_resume(struct ath10k *ar)
 {
+	/* Nothing to do; the important stuff is in the driver resume. */
+	return 0;
+}
+
+static int ath10k_pci_resume(struct ath10k *ar)
+{
 	struct ath10k_pci *ar_pci = ath10k_pci_priv(ar);
 	struct pci_dev *pdev = ar_pci->pdev;
 	u32 val;
@@ -3401,11 +3413,7 @@ static __maybe_unused int ath10k_pci_pm_
 	struct ath10k *ar = dev_get_drvdata(dev);
 	int ret;
 
-	if (test_bit(ATH10K_FW_FEATURE_WOWLAN_SUPPORT,
-		     ar->running_fw->fw_file.fw_features))
-		return 0;
-
-	ret = ath10k_hif_suspend(ar);
+	ret = ath10k_pci_suspend(ar);
 	if (ret)
 		ath10k_warn(ar, "failed to suspend hif: %d\n", ret);
 
@@ -3417,11 +3425,7 @@ static __maybe_unused int ath10k_pci_pm_
 	struct ath10k *ar = dev_get_drvdata(dev);
 	int ret;
 
-	if (test_bit(ATH10K_FW_FEATURE_WOWLAN_SUPPORT,
-		     ar->running_fw->fw_file.fw_features))
-		return 0;
-
-	ret = ath10k_hif_resume(ar);
+	ret = ath10k_pci_resume(ar);
 	if (ret)
 		ath10k_warn(ar, "failed to resume hif: %d\n", ret);
 

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

* [PATCH 4.14 177/178] ath10k: fix build errors with !CONFIG_PM
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (157 preceding siblings ...)
  2017-12-18 15:50 ` [PATCH 4.14 176/178] ath10k: fix core PCI suspend when WoWLAN is supported but disabled Greg Kroah-Hartman
@ 2017-12-18 15:50 ` Greg Kroah-Hartman
  2017-12-18 15:50 ` [PATCH 4.14 178/178] usb: musb: da8xx: fix babble condition handling Greg Kroah-Hartman
                   ` (3 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:50 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Brian Norris, Kalle Valo, Sasha Levin

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

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

From: Brian Norris <briannorris@chromium.org>


[ Upstream commit 20665a9076d48e9abd9a2db13d307f58f7ef6647 ]

Build errors have been reported with CONFIG_PM=n:

drivers/net/wireless/ath/ath10k/pci.c:3416:8: error: implicit
declaration of function 'ath10k_pci_suspend'
[-Werror=implicit-function-declaration]

drivers/net/wireless/ath/ath10k/pci.c:3428:8: error: implicit
declaration of function 'ath10k_pci_resume'
[-Werror=implicit-function-declaration]

These are caused by the combination of the following two commits:

6af1de2e4ec4 ("ath10k: mark PM functions as __maybe_unused")
96378bd2c6cd ("ath10k: fix core PCI suspend when WoWLAN is supported but
disabled")

Both build fine on their own.

But now that ath10k_pci_pm_{suspend,resume}() is compiled
unconditionally, we should also compile ath10k_pci_{suspend,resume}()
unconditionally.

And drop the #ifdef around ath10k_pci_hif_{suspend,resume}() too; they
are trivial (empty), so we're not saving much space by compiling them
out. And the alternatives would be to sprinkle more __maybe_unused, or
spread the #ifdef's further.

Build tested with the following combinations:
CONFIG_PM=y && CONFIG_PM_SLEEP=y
CONFIG_PM=y && CONFIG_PM_SLEEP=n
CONFIG_PM=n

Fixes: 96378bd2c6cd ("ath10k: fix core PCI suspend when WoWLAN is supported but disabled")
Fixes: 096ad2a15fd8 ("Merge branch 'ath-next'")
Signed-off-by: Brian Norris <briannorris@chromium.org>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/net/wireless/ath/ath10k/pci.c |    5 -----
 1 file changed, 5 deletions(-)

--- a/drivers/net/wireless/ath/ath10k/pci.c
+++ b/drivers/net/wireless/ath/ath10k/pci.c
@@ -2577,8 +2577,6 @@ void ath10k_pci_hif_power_down(struct at
 	 */
 }
 
-#ifdef CONFIG_PM
-
 static int ath10k_pci_hif_suspend(struct ath10k *ar)
 {
 	/* Nothing to do; the important stuff is in the driver suspend. */
@@ -2627,7 +2625,6 @@ static int ath10k_pci_resume(struct ath1
 
 	return ret;
 }
-#endif
 
 static bool ath10k_pci_validate_cal(void *data, size_t size)
 {
@@ -2782,10 +2779,8 @@ static const struct ath10k_hif_ops ath10
 	.power_down		= ath10k_pci_hif_power_down,
 	.read32			= ath10k_pci_read32,
 	.write32		= ath10k_pci_write32,
-#ifdef CONFIG_PM
 	.suspend		= ath10k_pci_hif_suspend,
 	.resume			= ath10k_pci_hif_resume,
-#endif
 	.fetch_cal_eeprom	= ath10k_pci_hif_fetch_cal_eeprom,
 };
 

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

* [PATCH 4.14 178/178] usb: musb: da8xx: fix babble condition handling
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (158 preceding siblings ...)
  2017-12-18 15:50 ` [PATCH 4.14 177/178] ath10k: fix build errors with !CONFIG_PM Greg Kroah-Hartman
@ 2017-12-18 15:50 ` Greg Kroah-Hartman
  2017-12-18 20:25 ` [PATCH 4.14 000/178] 4.14.8-stable review Shuah Khan
                   ` (2 subsequent siblings)
  162 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-18 15:50 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman, stable, Bin Liu

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

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

From: Bin Liu <b-liu@ti.com>

commit bd3486ded7a0c313a6575343e6c2b21d14476645 upstream.

When babble condition happens, the musb controller might automatically
turns off VBUS. On DA8xx platform, the controller generates drvvbus
interrupt for turning off VBUS along with the babble interrupt.

In this case, we should handle the babble interrupt first and recover
from the babble condition.

This change ignores the drvvbus interrupt if babble interrupt is also
generated at the same time, so the babble recovery routine works
properly.

Signed-off-by: Bin Liu <b-liu@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/musb/da8xx.c |   10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

--- a/drivers/usb/musb/da8xx.c
+++ b/drivers/usb/musb/da8xx.c
@@ -305,7 +305,15 @@ static irqreturn_t da8xx_musb_interrupt(
 			musb->xceiv->otg->state = OTG_STATE_A_WAIT_VRISE;
 			portstate(musb->port1_status |= USB_PORT_STAT_POWER);
 			del_timer(&otg_workaround);
-		} else {
+		} else if (!(musb->int_usb & MUSB_INTR_BABBLE)){
+			/*
+			 * When babble condition happens, drvvbus interrupt
+			 * is also generated. Ignore this drvvbus interrupt
+			 * and let babble interrupt handler recovers the
+			 * controller; otherwise, the host-mode flag is lost
+			 * due to the MUSB_DEV_MODE() call below and babble
+			 * recovery logic will not called.
+			 */
 			musb->is_active = 0;
 			MUSB_DEV_MODE(musb);
 			otg->default_a = 0;

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

* Re: [PATCH 4.14 000/178] 4.14.8-stable review
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (159 preceding siblings ...)
  2017-12-18 15:50 ` [PATCH 4.14 178/178] usb: musb: da8xx: fix babble condition handling Greg Kroah-Hartman
@ 2017-12-18 20:25 ` Shuah Khan
  2017-12-19  7:34   ` Greg Kroah-Hartman
  2017-12-19 14:37 ` Guenter Roeck
  2017-12-19 17:21 ` Naresh Kamboju
  162 siblings, 1 reply; 170+ messages in thread
From: Shuah Khan @ 2017-12-18 20:25 UTC (permalink / raw)
  To: Greg Kroah-Hartman, linux-kernel
  Cc: torvalds, akpm, linux, patches, ben.hutchings, lkft-triage,
	stable, Shuah Khan

On 12/18/2017 08:47 AM, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 4.14.8 release.
> There are 178 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 Wed Dec 20 15:28:30 UTC 2017.
> Anything received after that time might be too late.
> 
> The whole patch series can be found in one patch at:
> 	kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.14.8-rc1.gz
> or in the git tree and branch at:
>   git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.14.y
> and the diffstat can be found below.
> 
> thanks,
> 
> greg k-h
> 

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

thanks,
-- Shuah

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

* Re: [PATCH 4.14 000/178] 4.14.8-stable review
  2017-12-18 20:25 ` [PATCH 4.14 000/178] 4.14.8-stable review Shuah Khan
@ 2017-12-19  7:34   ` Greg Kroah-Hartman
  0 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-19  7:34 UTC (permalink / raw)
  To: Shuah Khan
  Cc: linux-kernel, torvalds, akpm, linux, patches, ben.hutchings,
	lkft-triage, stable

On Mon, Dec 18, 2017 at 01:25:06PM -0700, Shuah Khan wrote:
> On 12/18/2017 08:47 AM, Greg Kroah-Hartman wrote:
> > This is the start of the stable review cycle for the 4.14.8 release.
> > There are 178 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 Wed Dec 20 15:28:30 UTC 2017.
> > Anything received after that time might be too late.
> > 
> > The whole patch series can be found in one patch at:
> > 	kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.14.8-rc1.gz
> > or in the git tree and branch at:
> >   git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.14.y
> > and the diffstat can be found below.
> > 
> > thanks,
> > 
> > greg k-h
> > 
> 
> Compiled and booted on my test system. No dmesg regressions.

Thanks for testing all of these and letting me know.

greg k-h

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

* Re: [PATCH 4.14 000/178] 4.14.8-stable review
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (160 preceding siblings ...)
  2017-12-18 20:25 ` [PATCH 4.14 000/178] 4.14.8-stable review Shuah Khan
@ 2017-12-19 14:37 ` Guenter Roeck
  2017-12-19 14:50   ` Greg Kroah-Hartman
  2017-12-19 17:21 ` Naresh Kamboju
  162 siblings, 1 reply; 170+ messages in thread
From: Guenter Roeck @ 2017-12-19 14:37 UTC (permalink / raw)
  To: Greg Kroah-Hartman, linux-kernel
  Cc: torvalds, akpm, shuahkh, patches, ben.hutchings, lkft-triage, stable

On 12/18/2017 07:47 AM, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 4.14.8 release.
> There are 178 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 Wed Dec 20 15:28:30 UTC 2017.
> Anything received after that time might be too late.
> 

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

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

Guenter

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

* Re: [PATCH 4.14 000/178] 4.14.8-stable review
  2017-12-19 14:37 ` Guenter Roeck
@ 2017-12-19 14:50   ` Greg Kroah-Hartman
  0 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-19 14:50 UTC (permalink / raw)
  To: Guenter Roeck
  Cc: linux-kernel, torvalds, akpm, shuahkh, patches, ben.hutchings,
	lkft-triage, stable

On Tue, Dec 19, 2017 at 06:37:10AM -0800, Guenter Roeck wrote:
> On 12/18/2017 07:47 AM, Greg Kroah-Hartman wrote:
> > This is the start of the stable review cycle for the 4.14.8 release.
> > There are 178 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 Wed Dec 20 15:28:30 UTC 2017.
> > Anything received after that time might be too late.
> > 
> 
> Build results:
> 	total: 145 pass: 145 fail: 0
> Qemu test results:
> 	total: 126 pass: 126 fail: 0
> 
> Details are available at http://kerneltests.org/builders.

Great, thanks for testing all of these and letting me know.

greg k-h

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

* Re: [PATCH 4.14 000/178] 4.14.8-stable review
  2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
                   ` (161 preceding siblings ...)
  2017-12-19 14:37 ` Guenter Roeck
@ 2017-12-19 17:21 ` Naresh Kamboju
  2017-12-19 18:03   ` Greg Kroah-Hartman
  162 siblings, 1 reply; 170+ messages in thread
From: Naresh Kamboju @ 2017-12-19 17:21 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: linux-kernel, Ben Hutchings, Shuah Khan, lkft-triage, patches,
	linux- stable, akpm, torvalds, Guenter Roeck, Tom Gall

On 18 December 2017 at 21:17, Greg Kroah-Hartman
<gregkh@linuxfoundation.org> wrote:
> This is the start of the stable review cycle for the 4.14.8 release.
> There are 178 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 Wed Dec 20 15:28:30 UTC 2017.
> Anything received after that time might be too late.
>
> The whole patch series can be found in one patch at:
>         kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.14.8-rc1.gz
> or in the git tree and branch at:
>   git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.14.y
> and the diffstat can be found below.
>
> thanks,
>
> greg k-h

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

Summary
------------------------------------------------------------------------
kernel: 4.14.8-rc1
git repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
git branch: linux-4.14.y
git commit: 884120c34be79ce6038c265c252c33fb860939d4
git describe: v4.14.7-179-g884120c34be7
Test details: https://qa-reports.linaro.org/lkft/linux-stable-rc-4.14-oe/build/v4.14.7-179-g884120c34be7

No regressions (compared to build v4.14.7)

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

hi6220-hikey - arm64
* boot - pass: 20,
* kselftest - pass: 46, skip: 16
* libhugetlbfs - pass: 90, skip: 1
* ltp-cap_bounds-tests - pass: 2,
* ltp-containers-tests - pass: 64,
* ltp-fcntl-locktests-tests - pass: 2,
* ltp-filecaps-tests - pass: 2,
* ltp-fs-tests - pass: 60,
* ltp-fs_bind-tests - pass: 2,
* ltp-fs_perms_simple-tests - pass: 19,
* ltp-fsx-tests - pass: 2,
* ltp-hugetlb-tests - pass: 21, skip: 1
* ltp-io-tests - pass: 3,
* ltp-ipc-tests - pass: 9,
* ltp-math-tests - pass: 11,
* ltp-nptl-tests - pass: 2,
* ltp-pty-tests - pass: 4,
* ltp-sched-tests - pass: 14,
* ltp-securebits-tests - pass: 4,
* ltp-syscalls-tests - pass: 983, skip: 121
* ltp-timers-tests - pass: 12,

juno-r2 - arm64
* boot - pass: 20,
* kselftest - pass: 45, skip: 17
* libhugetlbfs - pass: 90, skip: 1
* ltp-cap_bounds-tests - pass: 2,
* ltp-containers-tests - pass: 64,
* ltp-fcntl-locktests-tests - pass: 2,
* ltp-filecaps-tests - pass: 2,
* ltp-fs-tests - pass: 60,
* ltp-fs_bind-tests - pass: 2,
* ltp-fs_perms_simple-tests - pass: 19,
* ltp-fsx-tests - pass: 2,
* ltp-hugetlb-tests - pass: 22,
* ltp-io-tests - pass: 3,
* ltp-ipc-tests - pass: 9,
* ltp-math-tests - pass: 11,
* ltp-nptl-tests - pass: 2,
* ltp-pty-tests - pass: 4,
* ltp-sched-tests - pass: 14,
* ltp-securebits-tests - pass: 4,
* ltp-syscalls-tests - pass: 985, skip: 121
* ltp-timers-tests - pass: 12,

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

x86_64
* boot - pass: 20,
* kselftest - pass: 58, skip: 17
* libhugetlbfs - pass: 90, skip: 1
* ltp-cap_bounds-tests - pass: 1,
* ltp-containers-tests - pass: 64,
* ltp-fcntl-locktests-tests - pass: 2,
* ltp-filecaps-tests - pass: 2,
* ltp-fs-tests - pass: 61, skip: 1
* ltp-fs_bind-tests - pass: 2,
* ltp-fs_perms_simple-tests - pass: 18,
* ltp-fsx-tests - pass: 2,
* ltp-hugetlb-tests - pass: 22,
* ltp-io-tests - pass: 3,
* ltp-ipc-tests - pass: 9,
* ltp-math-tests - pass: 11,
* ltp-nptl-tests - pass: 2,
* ltp-pty-tests - pass: 4,
* ltp-sched-tests - pass: 9, skip: 1
* ltp-securebits-tests - pass: 4,
* ltp-syscalls-tests - pass: 957, skip: 163
* ltp-timers-tests - pass: 12,

Documentation - https://collaborate.linaro.org/display/LKFT/Email+Reports
Tested-by: Naresh Kamboju <naresh.kamboju@linaro.org>

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

* Re: [PATCH 4.14 000/178] 4.14.8-stable review
  2017-12-19 17:21 ` Naresh Kamboju
@ 2017-12-19 18:03   ` Greg Kroah-Hartman
  0 siblings, 0 replies; 170+ messages in thread
From: Greg Kroah-Hartman @ 2017-12-19 18:03 UTC (permalink / raw)
  To: Naresh Kamboju
  Cc: linux-kernel, Ben Hutchings, Shuah Khan, lkft-triage, patches,
	linux- stable, akpm, torvalds, Guenter Roeck, Tom Gall

On Tue, Dec 19, 2017 at 10:51:23PM +0530, Naresh Kamboju wrote:
> On 18 December 2017 at 21:17, Greg Kroah-Hartman
> <gregkh@linuxfoundation.org> wrote:
> > This is the start of the stable review cycle for the 4.14.8 release.
> > There are 178 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 Wed Dec 20 15:28:30 UTC 2017.
> > Anything received after that time might be too late.
> >
> > The whole patch series can be found in one patch at:
> >         kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.14.8-rc1.gz
> > or in the git tree and branch at:
> >   git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.14.y
> > and the diffstat can be found below.
> >
> > thanks,
> >
> > greg k-h
> 
> Results from Linaro’s test farm.
> No regressions on arm64, arm and x86_64.

Wonderful, thanks for testing all of these and letting me know.

greg k-h

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

end of thread, other threads:[~2017-12-19 18:03 UTC | newest]

Thread overview: 170+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-12-18 15:47 [PATCH 4.14 000/178] 4.14.8-stable review Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 001/178] mfd: fsl-imx25: Clean up irq settings during removal Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 002/178] crypto: algif_aead - fix reference counting of null skcipher Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 003/178] crypto: rsa - fix buffer overread when stripping leading zeroes Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 004/178] crypto: hmac - require that the underlying hash algorithm is unkeyed Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 005/178] crypto: salsa20 - fix blkcipher_walk API usage Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 006/178] crypto: af_alg - fix NULL pointer dereference in Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 007/178] cifs: fix NULL deref in SMB2_read Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 008/178] string.h: workaround for increased stack usage Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 009/178] autofs: fix careless error in recent commit Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 010/178] kernel: make groups_sort calling a responsibility group_info allocators Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 011/178] mm, oom_reaper: fix memory corruption Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 012/178] tracing: Allocate mask_str buffer dynamically Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 013/178] USB: uas and storage: Add US_FL_BROKEN_FUA for another JMicron JMS567 ID Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 014/178] USB: core: prevent malicious bNumInterfaces overflow Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 015/178] ovl: Pass ovl_get_nlink() parameters in right order Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 016/178] ovl: update ctx->pos on impure dir iteration Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 017/178] usbip: fix stub_rx: get_pipe() to validate endpoint number Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 018/178] usbip: fix stub_rx: harden CMD_SUBMIT path to handle malicious input Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 019/178] usbip: prevent vhci_hcd driver from leaking a socket pointer address Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 020/178] usbip: fix stub_send_ret_submit() vulnerability to null transfer_buffer Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 021/178] mmc: core: apply NO_CMD23 quirk to some specific cards Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 022/178] ceph: drop negative child dentries before try pruning inodes alias Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 023/178] usb: xhci: fix TDS for MTK xHCI1.1 Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 024/178] xhci: Dont add a virt_dev to the devs array before its fully allocated Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 025/178] IB/core: Bound check alternate path port number Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 026/178] IB/core: Dont enforce PKey security on SMI MADs Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 027/178] nfs: dont wait on commit in nfs_commit_inode() if there were no commit requests Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 028/178] arm64: mm: Fix pte_mkclean, pte_mkdirty semantics Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 029/178] arm64: Initialise high_memory global variable earlier Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 030/178] arm64: fix CONFIG_DEBUG_WX address reporting Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 031/178] scsi: core: Fix a scsi_show_rq() NULL pointer dereference Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 032/178] scsi: libsas: fix length error in sas_smp_handler() Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 033/178] sched/rt: Do not pull from current CPU if only one CPU to pull Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 034/178] dm: fix various targets to dm_register_target after module __init resources created Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 035/178] SUNRPC: Fix a race in the receive code path Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 036/178] iw_cxgb4: only insert drain cqes if wq is flushed Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 037/178] x86/boot/compressed/64: Detect and handle 5-level paging at boot-time Greg Kroah-Hartman
2017-12-18 15:47   ` Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 038/178] x86/boot/compressed/64: Print error if 5-level paging is not supported Greg Kroah-Hartman
2017-12-18 15:47   ` Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 039/178] eeprom: at24: change nvmem stride to 1 Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 040/178] posix-timer: Properly check sigevent->sigev_notify Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 041/178] dmaengine: dmatest: move callback wait queue to thread context Greg Kroah-Hartman
2017-12-18 15:47 ` [PATCH 4.14 043/178] ext4: support fast symlinks from ext3 file systems Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 044/178] ext4: fix fdatasync(2) after fallocate(2) operation Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 045/178] ext4: add missing error check in __ext4_new_inode() Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 046/178] ext4: fix crash when a directorys i_size is too small Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 047/178] IB/mlx4: Fix RSSs QPC attributes assignments Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 049/178] sfc: dont warn on successful change of MAC Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 050/178] fbdev: controlfb: Add missing modes to fix out of bounds access Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 051/178] video: udlfb: Fix read EDID timeout Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 052/178] video: fbdev: au1200fb: Release some resources if a memory allocation fails Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 053/178] video: fbdev: au1200fb: Return an error code " Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 054/178] rtc: pcf8563: fix output clock rate Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 055/178] scsi: aacraid: use timespec64 instead of timeval Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 057/178] PM / s2idle: Clear the events_check_enabled flag Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 058/178] ASoC: Intel: Skylake: Fix uuid_module memory leak in failure case Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 059/178] dmaengine: ti-dma-crossbar: Correct am335x/am43xx mux value type Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 060/178] mlxsw: spectrum: Fix error return code in mlxsw_sp_port_create() Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 061/178] PCI/PME: Handle invalid data when reading Root Status Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 062/178] powerpc/powernv/cpufreq: Fix the frequency read by /proc/cpuinfo Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 063/178] PCI: Do not allocate more buses than available in parent Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 064/178] iommu/mediatek: Fix driver name Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 066/178] netfilter: ipvs: Fix inappropriate output of procfs Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 067/178] powerpc/opal: Fix EBUSY bug in acquiring tokens Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 068/178] powerpc/ipic: Fix status get and status clear Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 069/178] powerpc/pseries/vio: Dispose of virq mapping on vdevice unregister Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 070/178] platform/x86: intel_punit_ipc: Fix resource ioremap warning Greg Kroah-Hartman
2017-12-18 15:48   ` Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 071/178] platform/x86: sony-laptop: Fix error handling in sony_nc_setup_rfkill() Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 072/178] target/iscsi: Detect conn_cmd_list corruption early Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 073/178] target/iscsi: Fix a race condition in iscsit_add_reject_from_cmd() Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 074/178] iscsi-target: fix memory leak in lio_target_tiqn_addtpg() Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 075/178] target:fix condition return in core_pr_dump_initiator_port() Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 076/178] target/file: Do not return error for UNMAP if length is zero Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 077/178] badblocks: fix wrong return value in badblocks_set if badblocks are disabled Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 078/178] iommu/amd: Limit the IOVA page range to the specified addresses Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 079/178] xfs: truncate pagecache before writeback in xfs_setattr_size() Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 080/178] arm-ccn: perf: Prevent module unload while PMU is in use Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 081/178] crypto: tcrypt - fix buffer lengths in test_aead_speed() Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 082/178] mm: Handle 0 flags in _calc_vm_trans() macro Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 083/178] net: hns3: fix for getting advertised_caps in hns3_get_link_ksettings Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 084/178] net: hns3: Fix a misuse to devm_free_irq Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 085/178] staging: rtl8188eu: Revert part of "staging: rtl8188eu: fix comments with lines over 80 characters" Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 086/178] clk: mediatek: add the option for determining PLL source clock Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 087/178] clk: imx: imx7d: Fix parent clock for OCRAM_CLK Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 089/178] media: camss-vfe: always initialize reg at vfe_set_xbar_cfg() Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 090/178] clk: hi6220: mark clock cs_atb_syspll as critical Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 091/178] blk-mq-sched: dispatch from scheduler IFF progress is made in ->dispatch Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 092/178] clk: tegra: Use readl_relaxed_poll_timeout_atomic() in tegra210_clock_init() Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 094/178] ppp: Destroy the mutex when cleanup Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 095/178] ASoC: rsnd: rsnd_ssi_run_mods() needs to care ssi_parent_mod Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 097/178] misc: pci_endpoint_test: Fix failure path return values in probe Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 098/178] misc: pci_endpoint_test: Avoid triggering a BUG() Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 099/178] scsi: scsi_debug: write_same: fix error report Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 100/178] GFS2: Take inode off order_write list when setting jdata flag Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 101/178] media: usbtv: fix brightness and contrast controls Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 102/178] rpmsg: glink: Initialize the "intent_req_comp" completion variable Greg Kroah-Hartman
2017-12-18 15:48 ` [PATCH 4.14 103/178] bcache: explicitly destroy mutex while exiting Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 104/178] bcache: fix wrong cache_misses statistics Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 105/178] Ib/hfi1: Return actual operational VLs in port info query Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 107/178] arm64: prevent regressions in compressed kernel image size when upgrading to binutils 2.27 Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 109/178] btrfs: Explicitly handle btrfs_update_root failure Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 110/178] btrfs: undo writable superblocke when sprouting fails Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 111/178] btrfs: avoid null pointer dereference on fs_info when calling btrfs_crit Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 112/178] btrfs: tests: Fix a memory leak in error handling path in run_test() Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 113/178] qtnfmac: modify full Tx queue error reporting Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 115/178] ARM64: dts: meson-gxbb-odroidc2: fix usb1 power supply Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 116/178] Bluetooth: btusb: Add new NFA344A entry Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 117/178] samples/bpf: adjust rlimit RLIMIT_MEMLOCK for xdp1 Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 118/178] liquidio: fix kernel panic in VF driver Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 119/178] platform/x86: hp_accel: Add quirk for HP ProBook 440 G4 Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 120/178] nvme: use kref_get_unless_zero in nvme_find_get_ns Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 121/178] l2tp: cleanup l2tp_tunnel_delete calls Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 122/178] xfs: fix log block underflow during recovery cycle verification Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 123/178] xfs: return a distinct error code value for IGET_INCORE cache misses Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 124/178] xfs: fix incorrect extent state in xfs_bmap_add_extent_unwritten_real Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 125/178] net: dsa: lan9303: Do not disable switch fabric port 0 at .probe Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 126/178] net: hns3: fix a bug in hclge_uninit_client_instance Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 127/178] net: hns3: add nic_client check when initialize roce base information Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 128/178] net: hns3: fix the bug of hns3_set_txbd_baseinfo Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 129/178] RDMA/cxgb4: Declare stag as __be32 Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 130/178] PCI: Detach driver before procfs & sysfs teardown on device remove Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 131/178] scsi: hisi_sas: fix the risk of freeing slot twice Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 132/178] scsi: hpsa: cleanup sas_phy structures in sysfs when unloading Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 133/178] scsi: hpsa: destroy sas transport properties before scsi_host Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 134/178] mfd: mxs-lradc: Fix error handling in mxs_lradc_probe() Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 135/178] net: hns3: fix the TX/RX ring.queue_index in hns3_ring_get_cfg Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 136/178] net: hns3: fix the bug when map buffer fail Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 137/178] net: hns3: fix a bug when alloc new buffer Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 138/178] serdev: ttyport: enforce tty-driver open() requirement Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 139/178] powerpc/perf/hv-24x7: Fix incorrect comparison in memord Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 140/178] powerpc/xmon: Check before calling xive functions Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 141/178] soc: mediatek: pwrap: fix compiler errors Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 142/178] ipv4: ipv4_default_advmss() should use route mtu Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 144/178] tty fix oops when rmmod 8250 Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 145/178] dev/dax: fix uninitialized variable build warning Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 146/178] pinctrl: adi2: Fix Kconfig build problem Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 147/178] raid5: Set R5_Expanded on parity devices as well as data Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 148/178] scsi: scsi_devinfo: Add REPORTLUN2 to EMC SYMMETRIX blacklist entry Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 149/178] IB/core: Fix use workqueue without WQ_MEM_RECLAIM Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 150/178] IB/core: Fix calculation of maximum RoCE MTU Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 151/178] vt6655: Fix a possible sleep-in-atomic bug in vt6655_suspend Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 152/178] IB/hfi1: Mask out A bit from psn trace Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 153/178] rtl8188eu: Fix a possible sleep-in-atomic bug in rtw_createbss_cmd Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 154/178] rtl8188eu: Fix a possible sleep-in-atomic bug in rtw_disassoc_cmd Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 155/178] ipmi_si: fix memory leak on new_smi Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 156/178] nullb: fix error return code in null_init() Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 157/178] scsi: sd: change manage_start_stop to bool in sysfs interface Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 158/178] scsi: sd: change allow_restart " Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 159/178] scsi: bfa: integer overflow in debugfs Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 160/178] raid5-ppl: check recovery_offset when performing ppl recovery Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 161/178] md-cluster: fix wrong condition check in raid1_write_request Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 162/178] xprtrdma: Dont defer fencing an async RPCs chunks Greg Kroah-Hartman
2017-12-18 15:49 ` [PATCH 4.14 163/178] udf: Avoid overflow when session starts at large offset Greg Kroah-Hartman
2017-12-18 15:50 ` [PATCH 4.14 164/178] macvlan: Only deliver one copy of the frame to the macvlan interface Greg Kroah-Hartman
2017-12-18 15:50 ` [PATCH 4.14 165/178] IB/core: Fix endianness annotation in rdma_is_multicast_addr() Greg Kroah-Hartman
2017-12-18 15:50 ` [PATCH 4.14 166/178] RDMA/cma: Avoid triggering undefined behavior Greg Kroah-Hartman
2017-12-18 15:50 ` [PATCH 4.14 167/178] IB/ipoib: Grab rtnl lock on heavy flush when calling ndo_open/stop Greg Kroah-Hartman
2017-12-18 15:50 ` [PATCH 4.14 168/178] icmp: dont fail on fragment reassembly time exceeded Greg Kroah-Hartman
2017-12-18 15:50 ` [PATCH 4.14 176/178] ath10k: fix core PCI suspend when WoWLAN is supported but disabled Greg Kroah-Hartman
2017-12-18 15:50 ` [PATCH 4.14 177/178] ath10k: fix build errors with !CONFIG_PM Greg Kroah-Hartman
2017-12-18 15:50 ` [PATCH 4.14 178/178] usb: musb: da8xx: fix babble condition handling Greg Kroah-Hartman
2017-12-18 20:25 ` [PATCH 4.14 000/178] 4.14.8-stable review Shuah Khan
2017-12-19  7:34   ` Greg Kroah-Hartman
2017-12-19 14:37 ` Guenter Roeck
2017-12-19 14:50   ` Greg Kroah-Hartman
2017-12-19 17:21 ` Naresh Kamboju
2017-12-19 18:03   ` Greg Kroah-Hartman

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.