Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1597151 > unrolled thread

[PATCH 4.9 000/153] 4.9.14-stable review

Started byGreg Kroah-Hartman <gregkh@linuxfoundation.org>
First post2017-03-10 12:40 +0100
Last post2017-03-10 20:20 +0100
Articles 17 — 3 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH 4.9 000/153] 4.9.14-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 12:40 +0100
    [PATCH 4.9 010/153] MIPS: Calculate microMIPS ra properly when unwinding the stack Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 12:40 +0100
    [PATCH 4.9 005/153] MIPS: Lantiq: Keep ethernet enabled during boot Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 12:40 +0100
    [PATCH 4.9 004/153] MIPS: OCTEON: Fix copy_from_user fault handling for large buffers Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 12:40 +0100
    [PATCH 4.9 012/153] mmc: sdhci-acpi: support deferred probe Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 12:40 +0100
    [PATCH 4.9 031/153] hwmon: (it87) Do not overwrite bit 2..6 of pwm control registers Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 12:40 +0100
    [PATCH 4.9 020/153] spi: s3c64xx: fix inconsistency between binding and driver Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 12:40 +0100
    [PATCH 4.9 011/153] MIPS: Handle microMIPS jumps in the same way as MIPS32/MIPS64 jumps Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 12:40 +0100
    [PATCH 4.9 036/153] coresight: STM: Balance enable/disable Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 12:40 +0100
    [PATCH 4.9 009/153] MIPS: Fix is_jump_ins() handling of 16b microMIPS instructions Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 12:40 +0100
    [PATCH 4.9 008/153] MIPS: Fix get_frame_info() handling of microMIPS function size Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 12:40 +0100
    [PATCH 4.9 002/153] MIPS: Fix special case in 64 bit IP checksumming. Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 12:40 +0100
    [PATCH 4.9 019/153] ext4: fix deadlock between inline_data and ext4_expand_extra_isize_ea() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 12:40 +0100
    [PATCH 4.9 014/153] [media] uvcvideo: Fix a wrong macro Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 12:40 +0100
    [PATCH 4.9 151/153] ceph: update readpages osd request according to size of pages Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-03-10 16:00 +0100
    Re: [PATCH 4.9 000/153] 4.9.14-stable review Guenter Roeck <linux@roeck-us.net> - 2017-03-10 19:40 +0100
    Re: [PATCH 4.9 000/153] 4.9.14-stable review Shuah Khan <shuahkh@osg.samsung.com> - 2017-03-10 20:20 +0100

#1597151 — [PATCH 4.9 000/153] 4.9.14-stable review

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-03-10 12:40 +0100
Subject[PATCH 4.9 000/153] 4.9.14-stable review
Message-ID<tjoSl-1MV-7@gated-at.bofh.it>
This is the start of the stable review cycle for the 4.9.14 release.
There are 153 patches in this series, all will be posted as a response
to this one.  If anyone has any issues with these being applied, please
let me know.

Responses should be made by Sun Mar 12 08:39:14 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.9.14-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.9.y
and the diffstat can be found below.

thanks,

greg k-h

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

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

Florian Westphal <fw@strlen.de>
    netfilter: conntrack: refine gc worker heuristics, redux

Florian Westphal <fw@strlen.de>
    netfilter: conntrack: remove GC_MAX_EVICTS break

Yan, Zheng <zyan@redhat.com>
    ceph: update readpages osd request according to size of pages

James Smart <jsmart2021@gmail.com>
    scsi: lpfc: Correct WQ creation for pagesize

Ralf Baechle <ralf@linux-mips.org>
    MIPS: IP22: Fix build error due to binutils 2.25 uselessnes.

Ralf Baechle <ralf@linux-mips.org>
    MIPS: IP22: Reformat inline assembler code to modern standards.

Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
    powerpc/mm/hash: Always clear UPRT and Host Radix bits when setting up CPU

Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
    powerpc/mm: Add MMU_FTR_KERNEL_RO to possible feature mask

Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com>
    powerpc/xmon: Fix data-breakpoint

Chuck Lever <chuck.lever@oracle.com>
    xprtrdma: Reduce required number of send SGEs

Chuck Lever <chuck.lever@oracle.com>
    xprtrdma: Disable pad optimization by default

Chuck Lever <chuck.lever@oracle.com>
    xprtrdma: Per-connection pad optimization

Chuck Lever <chuck.lever@oracle.com>
    xprtrdma: Fix Read chunk padding

Magnus Lilja <lilja.magnus@gmail.com>
    dmaengine: ipu: Make sure the interrupt routine checks all interrupts.

Mark Marshall <mark.marshall@omicronenergy.com>
    mtd: nand: ifc: Fix location of eccstat registers for IFC V1.0

Rafał Miłecki <rafal@milecki.pl>
    bcma: use (get|put)_device when probing/removing device driver

colyli@suse.de <colyli@suse.de>
    md linear: fix a race between linear_add() and linear_congested()

Maxime Ripard <maxime.ripard@free-electrons.com>
    rtc: sun6i: Switch to the external oscillator

Maxime Ripard <maxime.ripard@free-electrons.com>
    rtc: sun6i: Add some locking

Maxime Ripard <maxime.ripard@free-electrons.com>
    rtc: sun6i: Disable the build as a module

Jaegeuk Kim <jaegeuk@kernel.org>
    f2fs: avoid to issue redundant discard commands

Hou Pengyang <houpengyang@huawei.com>
    f2fs: add ovp valid_blocks check for bg gc victim to fg_gc

Jaegeuk Kim <jaegeuk@kernel.org>
    f2fs: fix multiple f2fs_add_link() calls having same name

Yunlei He <heyunlei@huawei.com>
    f2fs: fix a problem of using memory after free

Weston Andros Adamson <dros@primarydata.com>
    NFSv4: fix getacl ERANGE for some ACL buffer sizes

J. Bruce Fields <bfields@redhat.com>
    NFSv4: fix getacl head length estimation

Trond Myklebust <trond.myklebust@primarydata.com>
    pNFS/flexfiles: If the layout is invalid, it must be updated before retrying

Trond Myklebust <trond.myklebust@primarydata.com>
    NFSv4: Fix reboot recovery in copy offload

Trond Myklebust <trond.myklebust@primarydata.com>
    NFSv4: Fix memory and state leak in _nfs4_open_and_get_state

Christoph Hellwig <hch@lst.de>
    nfsd: special case truncates some more

Christoph Hellwig <hch@lst.de>
    nfsd: minor nfsd_setattr cleanup

Stefano Babic <sbabic@denx.de>
    VME: restore bus_remove function causing incomplete module unload

Larry Finger <Larry.Finger@lwfinger.net>
    rtlwifi: rtl8192c-common: Fix "BUG: KASAN:

Ping-Ke Shih <pkshih@realtek.com>
    rtlwifi: Fix alignment issues

Bjorn Andersson <bjorn.andersson@linaro.org>
    remoteproc: qcom: mdt_loader: Don't overwrite firmware object

Andrew Price <anprice@redhat.com>
    gfs2: Add missing rcu locking for glock lookup

Steve Wise <swise@opengridcomputing.com>
    rdma_cm: fail iwarp accepts w/o connection params

Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
    RDMA/core: Fix incorrect structure packing for booleans

K. Y. Srinivasan <kys@microsoft.com>
    Drivers: hv: util: Backup: Fix a rescind processing issue

K. Y. Srinivasan <kys@microsoft.com>
    Drivers: hv: util: Fcopy: Fix a rescind processing issue

K. Y. Srinivasan <kys@microsoft.com>
    Drivers: hv: util: kvp: Fix a rescind processing issue

K. Y. Srinivasan <kys@microsoft.com>
    Drivers: hv: vmbus: Fix a rescind handling bug

K. Y. Srinivasan <kys@microsoft.com>
    Drivers: hv: vmbus: Prevent sending data on a rescinded channel

Vitaly Kuznetsov <vkuznets@redhat.com>
    hv: don't reset hv_context.tsc_page on crash

Vitaly Kuznetsov <vkuznets@redhat.com>
    hv: init percpu_list in hv_synic_alloc()

Vitaly Kuznetsov <vkuznets@redhat.com>
    hv: allocate synic pages for all present CPUs

Krzysztof Opasiak <kopasiak90@gmail.com>
    usb: gadget: f_hid: Use spinlock instead of mutex

Krzysztof Opasiak <kopasiak90@gmail.com>
    usb: gadget: f_hid: fix: Prevent accessing released memory

Krzysztof Opasiak <kopasiak90@gmail.com>
    usb: gadget: f_hid: fix: Free out requests

Magnus Lilja <lilja.magnus@gmail.com>
    usb: gadget: udc: fsl: Add missing complete function.

Krzysztof Opasiak <k.opasiak@samsung.com>
    usb: gadget: udc-core: Rescan pending list on driver unbind

William wu <william.wu@rock-chips.com>
    usb: host: xhci: plat: check hcc_params after add hcd

Felipe Balbi <felipe.balbi@linux.intel.com>
    usb: dwc3: gadget: skip Set/Clear Halt when invalid

Alexandre Bailon <abailon@baylibre.com>
    usb: musb: da8xx: Remove CPPI 3.0 quirk and methods

Maciej S. Szmigiero <mail@maciej.szmigiero.name>
    w1: ds2490: USB transfer buffers need to be DMAable

Maciej S. Szmigiero <mail@maciej.szmigiero.name>
    w1: don't leak refcount on slave attach failure in w1_attach_slave_device()

Marc Kleine-Budde <mkl@pengutronix.de>
    can: usb_8dev: Fix memory leak of priv->cmd_msg_buffer

Ethan Zonca <e@ethanzonca.com>
    can: gs_usb: Don't use stack memory for USB transfers

Peter Rosin <peda@axentia.se>
    iio: pressure: mpl3115: do not rely on structure field ordering

Peter Rosin <peda@axentia.se>
    iio: pressure: mpl115: do not rely on structure field ordering

Shanker Donthineni <shankerd@codeaurora.org>
    KVM: arm/arm64: vgic: Stop injecting the MSI occurrence twice

Mark Rutland <mark.rutland@arm.com>
    arm64: fix erroneous __raw_read_system_reg() cases

Robin Murphy <robin.murphy@arm.com>
    arm64: dma-mapping: Fix dma_mapping_error() when bypassing SWIOTLB

Marc Zyngier <marc.zyngier@arm.com>
    arm/arm64: KVM: Enforce unconditional flush to PoC when mapping to stage-2

Dave Hansen <dave.hansen@linux.intel.com>
    x86/pkeys: Check against max pkey to avoid overflows

Miklos Szeredi <mszeredi@redhat.com>
    fuse: add missing FR_FORCE

Laura Abbott <labbott@redhat.com>
    crypto: testmgr - Pad aes_ccm_enc_tv_template vector

Krister Johansen <kjlx@templeofstupid.com>
    perf callchain: Reference count maps

Vitaly Kuznetsov <vkuznets@redhat.com>
    Drivers: hv: vmbus: Raise retry/wait limits in vmbus_post_msg()

Ley Foon Tan <ley.foon.tan@intel.com>
    PCI: altera: Fix TLP_CFG_DW0 for TLP write

Gavin Shan <gwshan@linux.vnet.ibm.com>
    pci/hotplug/pnv-php: Disable MSI and PCI device properly

Dexuan Cui <decui@microsoft.com>
    PCI: hv: Fix wslot_to_devfn() to fix warnings on device removal

Christian Lamparter <chunkeey@googlemail.com>
    ath9k: use correct OTP register offsets for the AR9340 and AR9550

Felix Fietkau <nbd@nbd.name>
    ath9k: fix race condition in enabling/disabling IRQs

Felix Fietkau <nbd@nbd.name>
    ath5k: drop bogus warning on drv_set_key with unsupported cipher

Tamizh chelvam <c_traja@qti.qualcomm.com>
    ath10k: fix boot failure in UTF mode/testmode

Alexander Usyskin <alexander.usyskin@intel.com>
    mei: remove support for broken parallel read

Mathias Svensson <idolf@google.com>
    samples/seccomp: fix 64-bit comparison macros

Theodore Ts'o <tytso@mit.edu>
    ext4: return EROFS if device is r/o and journal replay is needed

Theodore Ts'o <tytso@mit.edu>
    ext4: preserve the needs_recovery flag when the journal is aborted

Theodore Ts'o <tytso@mit.edu>
    ext4: fix inline data error paths

Eric Biggers <ebiggers@google.com>
    ext4: fix use-after-iput when fscrypt contexts are inconsistent

Jan Kara <jack@suse.cz>
    ext4: fix data corruption in data=journal mode

Jan Kara <jack@suse.cz>
    ext4: trim allocation requests to group size

Roman Pen <roman.penyaev@profitbricks.com>
    ext4: do not polute the extents cache while shifting extents

Roman Pen <roman.penyaev@profitbricks.com>
    ext4: Include forgotten start block on fallocate insert range

Omar Sandoval <osandov@fb.com>
    loop: fix LO_FLAGS_PARTSCAN hang

Ming Lei <tom.leiming@gmail.com>
    block/loop: fix race between I/O and set_status

Theodore Ts'o <tytso@mit.edu>
    jbd2: don't leak modified metadata buffers on an aborted journal

Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
    Fix: Disable sys_membarrier when nohz_full is enabled

Alexandre Belloni <alexandre.belloni@free-electrons.com>
    power: reset: at91-poweroff: timely shutdown LPDDR memories

Hannes Reinecke <hare@suse.de>
    scsi: use 'scsi_device_from_queue()' for scsi_dh

Raghava Aditya Renukunta <RaghavaAditya.Renukunta@microsemi.com>
    scsi: aacraid: Reorder Adapter status check

Long Li <longli@microsoft.com>
    scsi: storvsc: properly set residual data length on errors

Long Li <longli@microsoft.com>
    scsi: storvsc: properly handle SRB_ERROR when sense message is present

Long Li <longli@microsoft.com>
    scsi: storvsc: use tagged SRB requests if supported by the device

Heinz Mauelshagen <heinzm@redhat.com>
    dm raid: fix data corruption on reshape request

Mike Snitzer <snitzer@redhat.com>
    dm round robin: revert "use percpu 'repeat_count' and 'current_path'"

Mikulas Patocka <mpatocka@redhat.com>
    dm stats: fix a leaked s->histogram_boundaries array

Joe Thornber <ejt@redhat.com>
    dm cache: fix corruption seen when using cache > 2TB

Chanwoo Choi <cw00.choi@samsung.com>
    PM / devfreq: Fix wrong trans_stat of passive devfreq device

Chanwoo Choi <cw00.choi@samsung.com>
    PM / devfreq: Fix available_governor sysfs

Mimi Zohar <zohar@linux.vnet.ibm.com>
    ima: fix ima_d_path() possible race with rename

Davidlohr Bueso <dave@stgolabs.net>
    ipc/shm: Fix shmat mmap nil-page protection

Stas Sergeev <stsp@list.ru>
    sigaltstack: support SS_AUTODISARM for CONFIG_COMPAT

Michal Hocko <mhocko@suse.com>
    mm, vmscan: consider eligible zones in get_scan_count

Michal Hocko <mhocko@suse.com>
    mm, vmscan: cleanup lru size claculations

Yisheng Xie <xieyisheng1@huawei.com>
    mm balloon: umount balloon_mnt when removing vb device

Minchan Kim <minchan@kernel.org>
    mm: do not access page->mapping directly on page_endio

Vinayak Menon <vinmenon@codeaurora.org>
    mm: vmpressure: fix sending wrong events on underflow

Gavin Shan <gwshan@linux.vnet.ibm.com>
    mm/page_alloc: fix nodes for reclaim in fast path

Dan Williams <dan.j.williams@intel.com>
    mm, devm_memremap_pages: hold device_hotplug lock over mem_hotplug_{begin, done}

Pavel Shilovsky <pshilov@microsoft.com>
    CIFS: Fix splice read for non-cached files

Ashok Raj <ashok.raj@intel.com>
    iommu/vt-d: Tylersburg isoch identity map check is done too late.

CQ Tang <cq.tang@intel.com>
    iommu/vt-d: Fix some macros that are incorrectly specified in intel-iommu

Wei Yongjun <weiyongjun1@huawei.com>
    tpm_tis: fix the error handling of init_tis()

Leonard Crestez <leonard.crestez@nxp.com>
    regulator: Fix regulator_summary for deviceless consumers

Suzuki K Poulose <suzuki.poulose@arm.com>
    coresight: STM: Balance enable/disable

Arnd Bergmann <arnd@arndb.de>
    staging: rtl: fix possible NULL pointer dereference

Oleg Drokin <green@linuxhacker.ru>
    staging/lustre/lnet: Fix allocation size for sv_cpt_data

Johan Hovold <johan@kernel.org>
    staging: greybus: loopback: fix broken udelay

Guenter Roeck <linux@roeck-us.net>
    hwmon: (it87) Ensure that pwm control cache is current before updating values

Guenter Roeck <linux@roeck-us.net>
    hwmon: (it87) Do not overwrite bit 2..6 of pwm control registers

Hui Wang <hui.wang@canonical.com>
    ALSA: hda - Fix micmute hotkey problem for a lenovo AIO machine

Takashi Iwai <tiwai@suse.de>
    ALSA: hda - Add subwoofer support for Dell Inspiron 17 7000 Gaming

Takashi Iwai <tiwai@suse.de>
    ALSA: seq: Fix link corruption by event error handling

Takashi Iwai <tiwai@suse.de>
    ALSA: ctxfi: Fallback DMA mask to 32bit

Takashi Iwai <tiwai@suse.de>
    ALSA: timer: Reject user params with too small ticks

Jaroslav Kysela <perex@perex.cz>
    ALSA: hda - fix Lewisburg audio issue

Kai-Heng Feng <kai.heng.feng@canonical.com>
    ALSA: hda/realtek - Cannot adjust speaker's volume on a Dell AIO

Alexandre Belloni <alexandre.belloni@free-electrons.com>
    ARM: dts: at91: Enable DMA on sama5d2_xplained console

Alexandre Belloni <alexandre.belloni@free-electrons.com>
    ARM: dts: at91: Enable DMA on sama5d4_xplained console

Alexandre Belloni <alexandre.belloni@free-electrons.com>
    ARM: at91: define LPDDR types

Andi Shyti <andi.shyti@samsung.com>
    spi: s3c64xx: fix inconsistency between binding and driver

Theodore Ts'o <tytso@mit.edu>
    ext4: fix deadlock between inline_data and ext4_expand_extra_isize_ea()

Sakari Ailus <sakari.ailus@linux.intel.com>
    media: Properly pass through media entity types in entity enumeration

Sean Young <sean@mess.org>
    lirc_dev: LIRC_{G,S}ET_REC_MODE do not work

Antti Palosaari <crope@iki.fi>
    cxd2820r: fix gpio null pointer dereference

Randy Dunlap <rdunlap@infradead.org>
    media: fix dm1105.c build error

Guennadi Liakhovetski <g.liakhovetski@gmx.de>
    uvcvideo: Fix a wrong macro

Nicolas Iooss <nicolas.iooss_linux@m4x.org>
    am437x-vpfe: always assign bpp variable

Zhang Rui <rui.zhang@intel.com>
    mmc: sdhci-acpi: support deferred probe

Paul Burton <paul.burton@imgtec.com>
    MIPS: Handle microMIPS jumps in the same way as MIPS32/MIPS64 jumps

Paul Burton <paul.burton@imgtec.com>
    MIPS: Calculate microMIPS ra properly when unwinding the stack

Paul Burton <paul.burton@imgtec.com>
    MIPS: Fix is_jump_ins() handling of 16b microMIPS instructions

Paul Burton <paul.burton@imgtec.com>
    MIPS: Fix get_frame_info() handling of microMIPS function size

Paul Burton <paul.burton@imgtec.com>
    MIPS: Prevent unaligned accesses during stack unwinding

Paul Burton <paul.burton@imgtec.com>
    MIPS: Clear ISA bit correctly in get_frame_info()

Felix Fietkau <nbd@nbd.name>
    MIPS: Lantiq: Keep ethernet enabled during boot

James Cowgill <James.Cowgill@imgtec.com>
    MIPS: OCTEON: Fix copy_from_user fault handling for large buffers

Mirko Parthey <mirko.parthey@web.de>
    MIPS: BCM47XX: Fix button inversion for Asus WL-500W

Ralf Baechle <ralf@linux-mips.org>
    MIPS: Fix special case in 64 bit IP checksumming.

Purna Chandra Mandal <purna.mandal@microchip.com>
    MIPS: pic32mzda: Fix linker error for pic32_get_pbclk()


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

Diffstat:

 Makefile                                           |   4 +-
 arch/arm/boot/dts/at91-sama5d2_xplained.dts        |   2 +
 arch/arm/boot/dts/at91-sama5d4_xplained.dts        |   2 +
 arch/arm/include/asm/kvm_mmu.h                     |   9 +-
 arch/arm64/include/asm/kvm_mmu.h                   |   3 +-
 arch/arm64/kernel/cpufeature.c                     |   6 +-
 arch/arm64/mm/dma-mapping.c                        |   9 +-
 arch/mips/bcm47xx/buttons.c                        |  10 +-
 arch/mips/cavium-octeon/octeon-memcpy.S            |  20 +--
 arch/mips/include/asm/checksum.h                   |   2 +
 arch/mips/kernel/process.c                         | 151 +++++++++++++--------
 arch/mips/lantiq/xway/sysctrl.c                    |   8 +-
 arch/mips/mm/sc-ip22.c                             |  54 +++++---
 arch/mips/pic32/pic32mzda/Makefile                 |   5 +-
 arch/powerpc/include/asm/mmu.h                     |   1 +
 arch/powerpc/kernel/cpu_setup_power.S              |   4 +
 arch/powerpc/kernel/hw_breakpoint.c                |   4 +-
 arch/x86/include/asm/pkeys.h                       |  15 +-
 crypto/testmgr.h                                   |   2 +-
 drivers/bcma/main.c                                |   4 +
 drivers/block/loop.c                               |  32 +++--
 drivers/char/tpm/tpm_tis.c                         |   2 +-
 drivers/devfreq/devfreq.c                          |  34 ++++-
 drivers/devfreq/governor.h                         |   2 +
 drivers/devfreq/governor_passive.c                 |   6 +
 drivers/dma/ipu/ipu_irq.c                          |   2 +-
 drivers/hv/channel.c                               |  35 +++--
 drivers/hv/channel_mgmt.c                          |  35 ++++-
 drivers/hv/connection.c                            |  17 ++-
 drivers/hv/hv.c                                    |  13 +-
 drivers/hv/hv_fcopy.c                              |   4 +
 drivers/hv/hv_kvp.c                                |   4 +
 drivers/hv/hv_snapshot.c                           |   4 +
 drivers/hv/hyperv_vmbus.h                          |   2 +-
 drivers/hv/ring_buffer.c                           |   7 +
 drivers/hwmon/it87.c                               |  39 ++++--
 drivers/hwtracing/coresight/coresight-stm.c        |   2 +-
 drivers/iio/pressure/mpl115.c                      |   1 +
 drivers/iio/pressure/mpl3115.c                     |   4 +-
 drivers/infiniband/core/cma.c                      |   3 +
 drivers/iommu/intel-iommu.c                        |   3 +-
 drivers/md/dm-cache-target.c                       |   6 +-
 drivers/md/dm-raid.c                               |  12 +-
 drivers/md/dm-round-robin.c                        |  67 ++-------
 drivers/md/dm-stats.c                              |   1 +
 drivers/md/linear.c                                |  39 +++++-
 drivers/md/linear.h                                |   1 +
 drivers/media/dvb-frontends/cxd2820r_core.c        |   2 +-
 drivers/media/media-device.c                       |   2 +-
 drivers/media/pci/dm1105/Kconfig                   |   2 +-
 drivers/media/platform/am437x/am437x-vpfe.c        |   2 +-
 drivers/media/rc/lirc_dev.c                        |   4 +-
 drivers/media/usb/uvc/uvc_queue.c                  |   2 +-
 drivers/misc/mei/main.c                            |  48 ++++---
 drivers/mmc/host/sdhci-acpi.c                      |   5 +-
 drivers/mtd/nand/fsl_ifc_nand.c                    |   8 +-
 drivers/net/can/usb/gs_usb.c                       |  40 ++++--
 drivers/net/can/usb/usb_8dev.c                     |   9 +-
 drivers/net/wireless/ath/ath10k/core.c             |  14 +-
 drivers/net/wireless/ath/ath5k/mac80211-ops.c      |   3 +-
 drivers/net/wireless/ath/ath9k/ar9003_eeprom.h     |   4 +-
 drivers/net/wireless/ath/ath9k/ath9k.h             |   1 +
 drivers/net/wireless/ath/ath9k/init.c              |   1 +
 drivers/net/wireless/ath/ath9k/mac.c               |  44 ++++--
 drivers/net/wireless/ath/ath9k/mac.h               |   1 +
 drivers/net/wireless/ath/ath9k/main.c              |  27 ++--
 drivers/net/wireless/realtek/rtlwifi/pci.h         |   4 +-
 .../net/wireless/realtek/rtlwifi/rtl8192ee/hw.c    |   2 +-
 .../net/wireless/realtek/rtlwifi/rtl8821ae/hw.c    |   2 +-
 drivers/net/wireless/realtek/rtlwifi/usb.h         |   3 +-
 drivers/pci/host/pci-hyperv.c                      |   8 +-
 drivers/pci/host/pcie-altera.c                     |  10 +-
 drivers/pci/hotplug/pnv_php.c                      |  22 +--
 drivers/power/reset/Kconfig                        |   2 +-
 drivers/power/reset/at91-poweroff.c                |  54 +++++++-
 drivers/power/reset/at91-sama5d2_shdwc.c           |  49 ++++++-
 drivers/regulator/core.c                           |   5 +-
 drivers/remoteproc/qcom_mdt_loader.c               |   7 +-
 drivers/rtc/Kconfig                                |   2 +-
 drivers/rtc/rtc-sun6i.c                            |  30 ++--
 drivers/scsi/aacraid/src.c                         |  21 ++-
 drivers/scsi/lpfc/lpfc_hw4.h                       |   2 +
 drivers/scsi/lpfc/lpfc_sli.c                       |   9 +-
 drivers/scsi/scsi_dh.c                             |  22 +--
 drivers/scsi/scsi_lib.c                            |  23 ++++
 drivers/scsi/storvsc_drv.c                         |  32 ++++-
 drivers/spi/spi-s3c64xx.c                          |   2 +-
 drivers/staging/greybus/loopback.c                 |   9 +-
 drivers/staging/lustre/lnet/selftest/rpc.c         |   2 +-
 drivers/staging/rtl8188eu/core/rtw_recv.c          |   3 +
 drivers/staging/rtl8712/rtl871x_recv.c             |   7 +-
 drivers/usb/dwc3/gadget.c                          |   5 +
 drivers/usb/gadget/function/f_hid.c                | 101 ++++++++++----
 drivers/usb/gadget/udc/core.c                      |  45 ++++--
 drivers/usb/gadget/udc/fsl_udc_core.c              |  10 +-
 drivers/usb/host/xhci-plat.c                       |   6 +-
 drivers/usb/musb/da8xx.c                           |   6 +-
 drivers/virtio/virtio_balloon.c                    |   4 +
 drivers/vme/vme.c                                  |  15 ++
 drivers/w1/masters/ds2490.c                        | 142 +++++++++++--------
 drivers/w1/w1.c                                    |   1 +
 fs/ceph/addr.c                                     |   1 +
 fs/cifs/file.c                                     |  10 +-
 fs/ext4/extents.c                                  |  27 ++--
 fs/ext4/inline.c                                   |  75 +++++-----
 fs/ext4/inode.c                                    |  39 ++++--
 fs/ext4/mballoc.c                                  |   7 +
 fs/ext4/namei.c                                    |   6 +-
 fs/ext4/super.c                                    |   9 +-
 fs/ext4/xattr.c                                    |  30 ++--
 fs/ext4/xattr.h                                    |  32 +++++
 fs/f2fs/dir.c                                      |  34 ++++-
 fs/f2fs/extent_cache.c                             |   5 +-
 fs/f2fs/f2fs.h                                     |   4 +
 fs/f2fs/gc.c                                       |  22 ++-
 fs/f2fs/segment.c                                  |   2 +
 fs/f2fs/segment.h                                  |   9 ++
 fs/fuse/file.c                                     |   1 +
 fs/gfs2/glock.c                                    |   5 +
 fs/jbd2/transaction.c                              |   4 +-
 fs/nfs/flexfilelayout/flexfilelayout.c             |  13 +-
 fs/nfs/nfs42proc.c                                 |  63 +++++----
 fs/nfs/nfs4proc.c                                  |  10 +-
 fs/nfs/nfs4xdr.c                                   |   2 +-
 fs/nfsd/vfs.c                                      |  59 +++++---
 include/linux/compat.h                             |   4 +-
 include/linux/devfreq.h                            |   3 +
 include/linux/fsl_ifc.h                            |   8 +-
 include/linux/hyperv.h                             |   1 +
 include/linux/intel-iommu.h                        |  14 +-
 include/linux/mmzone.h                             |   2 +-
 include/rdma/ib_sa.h                               |   6 +-
 include/scsi/scsi_device.h                         |   1 +
 include/soc/at91/at91sam9_ddrsdr.h                 |   3 +
 ipc/shm.c                                          |  13 +-
 kernel/membarrier.c                                |   4 +
 kernel/memremap.c                                  |   6 +
 kernel/signal.c                                    |  11 +-
 mm/filemap.c                                       |   7 +-
 mm/page_alloc.c                                    |   2 +-
 mm/vmpressure.c                                    |  10 +-
 mm/vmscan.c                                        |  81 ++++++-----
 mm/workingset.c                                    |   2 +-
 net/ceph/osd_client.c                              |   3 +-
 net/netfilter/nf_conntrack_core.c                  |  44 +++---
 net/sunrpc/xprtrdma/rpc_rdma.c                     |  62 ++++++---
 net/sunrpc/xprtrdma/transport.c                    |   2 +-
 net/sunrpc/xprtrdma/verbs.c                        |  15 +-
 net/sunrpc/xprtrdma/xprt_rdma.h                    |   3 +
 samples/seccomp/bpf-helper.h                       | 125 +++++++++--------
 security/integrity/ima/ima.h                       |   2 +-
 security/integrity/ima/ima_api.c                   |  20 ++-
 security/integrity/ima/ima_main.c                  |   8 +-
 sound/core/seq/seq_fifo.c                          |   3 +
 sound/core/timer.c                                 |  18 ++-
 sound/pci/ctxfi/cthw20k1.c                         |  19 +--
 sound/pci/ctxfi/cthw20k2.c                         |  19 +--
 sound/pci/hda/hda_intel.c                          |   4 +-
 sound/pci/hda/patch_realtek.c                      |   8 ++
 tools/perf/util/callchain.c                        |  11 +-
 tools/perf/util/callchain.h                        |   6 +
 tools/perf/util/hist.c                             |   7 +
 virt/kvm/arm/vgic/vgic-irqfd.c                     |   3 +
 163 files changed, 1740 insertions(+), 867 deletions(-)

[toc] | [next] | [standalone]


#1597153 — [PATCH 4.9 010/153] MIPS: Calculate microMIPS ra properly when unwinding the stack

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-03-10 12:40 +0100
Subject[PATCH 4.9 010/153] MIPS: Calculate microMIPS ra properly when unwinding the stack
Message-ID<tjr3P-3kY-13@gated-at.bofh.it>
In reply to#1597151
4.9-stable review patch.  If anyone has any objections, please let me know.

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

From: Paul Burton <paul.burton@imgtec.com>

commit bb9bc4689b9c635714fbcd5d335bad9934a7ebfc upstream.

get_frame_info() calculates the offset of the return address within a
stack frame simply by dividing a the bottom 16 bits of the instruction,
treated as a signed integer, by the size of a long. Whilst this works
for MIPS32 & MIPS64 ISAs where the sw or sd instructions are used, it's
incorrect for microMIPS where encodings differ. The result is that we
typically completely fail to unwind the stack on microMIPS.

Fix this by adjusting is_ra_save_ins() to calculate the return address
offset, and take into account the various different encodings there in
the same place as we consider whether an instruction is storing the
ra/$31 register.

With this we are now able to unwind the stack for kernels targetting the
microMIPS ISA, for example we can produce:

    Call Trace:
    [<80109e1f>] show_stack+0x63/0x7c
    [<8011ea17>] __warn+0x9b/0xac
    [<8011ea45>] warn_slowpath_fmt+0x1d/0x20
    [<8013fe53>] register_console+0x43/0x314
    [<8067c58d>] of_setup_earlycon+0x1dd/0x1ec
    [<8067f63f>] early_init_dt_scan_chosen_stdout+0xe7/0xf8
    [<8066c115>] do_early_param+0x75/0xac
    [<801302f9>] parse_args+0x1dd/0x308
    [<8066c459>] parse_early_options+0x25/0x28
    [<8066c48b>] parse_early_param+0x2f/0x38
    [<8066e8cf>] setup_arch+0x113/0x488
    [<8066c4f3>] start_kernel+0x57/0x328
    ---[ end trace 0000000000000000 ]---

Whereas previously we only produced:

    Call Trace:
    [<80109e1f>] show_stack+0x63/0x7c
    ---[ end trace 0000000000000000 ]---

Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Fixes: 34c2f668d0f6 ("MIPS: microMIPS: Add unaligned access support.")
Cc: Leonid Yegoshin <leonid.yegoshin@imgtec.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/14532/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/mips/kernel/process.c |   85 +++++++++++++++++++++++++++++++++------------
 1 file changed, 64 insertions(+), 21 deletions(-)

--- a/arch/mips/kernel/process.c
+++ b/arch/mips/kernel/process.c
@@ -195,7 +195,7 @@ struct mips_frame_info {
 #define J_TARGET(pc,target)	\
 		(((unsigned long)(pc) & 0xf0000000) | ((target) << 2))
 
-static inline int is_ra_save_ins(union mips_instruction *ip)
+static inline int is_ra_save_ins(union mips_instruction *ip, int *poff)
 {
 #ifdef CONFIG_CPU_MICROMIPS
 	/*
@@ -208,25 +208,70 @@ static inline int is_ra_save_ins(union m
 	 * microMIPS is way more fun...
 	 */
 	if (mm_insn_16bit(ip->halfword[1])) {
-		return (ip->mm16_r5_format.opcode == mm_swsp16_op &&
-			ip->mm16_r5_format.rt == 31) ||
-		       (ip->mm16_m_format.opcode == mm_pool16c_op &&
-			ip->mm16_m_format.func == mm_swm16_op);
-	}
-	else {
-		return (ip->mm_m_format.opcode == mm_pool32b_op &&
-			ip->mm_m_format.rd > 9 &&
-			ip->mm_m_format.base == 29 &&
-			ip->mm_m_format.func == mm_swm32_func) ||
-		       (ip->i_format.opcode == mm_sw32_op &&
-			ip->i_format.rs == 29 &&
-			ip->i_format.rt == 31);
+		switch (ip->mm16_r5_format.opcode) {
+		case mm_swsp16_op:
+			if (ip->mm16_r5_format.rt != 31)
+				return 0;
+
+			*poff = ip->mm16_r5_format.simmediate;
+			*poff = (*poff << 2) / sizeof(ulong);
+			return 1;
+
+		case mm_pool16c_op:
+			switch (ip->mm16_m_format.func) {
+			case mm_swm16_op:
+				*poff = ip->mm16_m_format.imm;
+				*poff += 1 + ip->mm16_m_format.rlist;
+				*poff = (*poff << 2) / sizeof(ulong);
+				return 1;
+
+			default:
+				return 0;
+			}
+
+		default:
+			return 0;
+		}
+	}
+
+	switch (ip->i_format.opcode) {
+	case mm_sw32_op:
+		if (ip->i_format.rs != 29)
+			return 0;
+		if (ip->i_format.rt != 31)
+			return 0;
+
+		*poff = ip->i_format.simmediate / sizeof(ulong);
+		return 1;
+
+	case mm_pool32b_op:
+		switch (ip->mm_m_format.func) {
+		case mm_swm32_func:
+			if (ip->mm_m_format.rd < 0x10)
+				return 0;
+			if (ip->mm_m_format.base != 29)
+				return 0;
+
+			*poff = ip->mm_m_format.simmediate;
+			*poff += (ip->mm_m_format.rd & 0xf) * sizeof(u32);
+			*poff /= sizeof(ulong);
+			return 1;
+		default:
+			return 0;
+		}
+
+	default:
+		return 0;
 	}
 #else
 	/* sw / sd $ra, offset($sp) */
-	return (ip->i_format.opcode == sw_op || ip->i_format.opcode == sd_op) &&
-		ip->i_format.rs == 29 &&
-		ip->i_format.rt == 31;
+	if ((ip->i_format.opcode == sw_op || ip->i_format.opcode == sd_op) &&
+		ip->i_format.rs == 29 && ip->i_format.rt == 31) {
+		*poff = ip->i_format.simmediate / sizeof(ulong);
+		return 1;
+	}
+
+	return 0;
 #endif
 }
 
@@ -349,11 +394,9 @@ static int get_frame_info(struct mips_fr
 			}
 			continue;
 		}
-		if (info->pc_offset == -1 && is_ra_save_ins(&insn)) {
-			info->pc_offset =
-				ip->i_format.simmediate / sizeof(long);
+		if (info->pc_offset == -1 &&
+		    is_ra_save_ins(&insn, &info->pc_offset))
 			break;
-		}
 	}
 	if (info->frame_size && info->pc_offset >= 0) /* nested */
 		return 0;

[toc] | [prev] | [next] | [standalone]


#1597154 — [PATCH 4.9 005/153] MIPS: Lantiq: Keep ethernet enabled during boot

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-03-10 12:40 +0100
Subject[PATCH 4.9 005/153] MIPS: Lantiq: Keep ethernet enabled during boot
Message-ID<tjr3P-3kY-11@gated-at.bofh.it>
In reply to#1597151
4.9-stable review patch.  If anyone has any objections, please let me know.

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

From: Felix Fietkau <nbd@nbd.name>

commit 774f0c6419bb8f9d83901d33582c7fe3ba6a6cb3 upstream.

Disabling ethernet during reboot (only to enable it again when the
ethernet driver attaches) can put the chip into a faulty state where it
corrupts the header of all incoming packets.

This happens if packets arrive during the time window where the core is
disabled, and it can be easily reproduced by rebooting while sending a
flood ping to the broadcast address.

Fixes: 95135bfa7ead ("MIPS: Lantiq: Deactivate most of the devices by default")
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Acked-by: John Crispin <john@phrozen.org>
Cc: hauke.mehrtens@lantiq.com
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/15078/
Signed-off-by: James Hogan <james.hogan@imgtec.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/mips/lantiq/xway/sysctrl.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

--- a/arch/mips/lantiq/xway/sysctrl.c
+++ b/arch/mips/lantiq/xway/sysctrl.c
@@ -545,7 +545,7 @@ void __init ltq_soc_init(void)
 		clkdev_add_pmu("1a800000.pcie", "msi", 1, 1, PMU1_PCIE2_MSI);
 		clkdev_add_pmu("1a800000.pcie", "pdi", 1, 1, PMU1_PCIE2_PDI);
 		clkdev_add_pmu("1a800000.pcie", "ctl", 1, 1, PMU1_PCIE2_CTL);
-		clkdev_add_pmu("1e108000.eth", NULL, 1, 0, PMU_SWITCH | PMU_PPE_DP);
+		clkdev_add_pmu("1e108000.eth", NULL, 0, 0, PMU_SWITCH | PMU_PPE_DP);
 		clkdev_add_pmu("1da00000.usif", "NULL", 1, 0, PMU_USIF);
 		clkdev_add_pmu("1e103100.deu", NULL, 1, 0, PMU_DEU);
 	} else if (of_machine_is_compatible("lantiq,ar10")) {
@@ -553,7 +553,7 @@ void __init ltq_soc_init(void)
 				  ltq_ar10_fpi_hz(), ltq_ar10_pp32_hz());
 		clkdev_add_pmu("1e101000.usb", "ctl", 1, 0, PMU_USB0);
 		clkdev_add_pmu("1e106000.usb", "ctl", 1, 0, PMU_USB1);
-		clkdev_add_pmu("1e108000.eth", NULL, 1, 0, PMU_SWITCH |
+		clkdev_add_pmu("1e108000.eth", NULL, 0, 0, PMU_SWITCH |
 			       PMU_PPE_DP | PMU_PPE_TC);
 		clkdev_add_pmu("1da00000.usif", "NULL", 1, 0, PMU_USIF);
 		clkdev_add_pmu("1f203000.rcu", "gphy", 1, 0, PMU_GPHY);
@@ -575,11 +575,11 @@ void __init ltq_soc_init(void)
 		clkdev_add_pmu(NULL, "ahb", 1, 0, PMU_AHBM | PMU_AHBS);
 
 		clkdev_add_pmu("1da00000.usif", "NULL", 1, 0, PMU_USIF);
-		clkdev_add_pmu("1e108000.eth", NULL, 1, 0,
+		clkdev_add_pmu("1e108000.eth", NULL, 0, 0,
 				PMU_SWITCH | PMU_PPE_DPLUS | PMU_PPE_DPLUM |
 				PMU_PPE_EMA | PMU_PPE_TC | PMU_PPE_SLL01 |
 				PMU_PPE_QSB | PMU_PPE_TOP);
-		clkdev_add_pmu("1f203000.rcu", "gphy", 1, 0, PMU_GPHY);
+		clkdev_add_pmu("1f203000.rcu", "gphy", 0, 0, PMU_GPHY);
 		clkdev_add_pmu("1e103000.sdio", NULL, 1, 0, PMU_SDIO);
 		clkdev_add_pmu("1e103100.deu", NULL, 1, 0, PMU_DEU);
 		clkdev_add_pmu("1e116000.mei", "dfe", 1, 0, PMU_DFE);

[toc] | [prev] | [next] | [standalone]


#1597158 — [PATCH 4.9 004/153] MIPS: OCTEON: Fix copy_from_user fault handling for large buffers

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-03-10 12:40 +0100
Subject[PATCH 4.9 004/153] MIPS: OCTEON: Fix copy_from_user fault handling for large buffers
Message-ID<tjr3Q-3kY-21@gated-at.bofh.it>
In reply to#1597151
4.9-stable review patch.  If anyone has any objections, please let me know.

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

From: James Cowgill <James.Cowgill@imgtec.com>

commit 884b426917e4b3c85f33b382c792a94305dfdd62 upstream.

If copy_from_user is called with a large buffer (>= 128 bytes) and the
userspace buffer refers partially to unreadable memory, then it is
possible for Octeon's copy_from_user to report the wrong number of bytes
have been copied. In the case where the buffer size is an exact multiple
of 128 and the fault occurs in the last 64 bytes, copy_from_user will
report that all the bytes were copied successfully but leave some
garbage in the destination buffer.

The bug is in the main __copy_user_common loop in octeon-memcpy.S where
in the middle of the loop, src and dst are incremented by 128 bytes. The
l_exc_copy fault handler is used after this but that assumes that
"src < THREAD_BUADDR($28)". This is not the case if src has already been
incremented.

Fix by adding an extra fault handler which rewinds the src and dst
pointers 128 bytes before falling though to l_exc_copy.

Thanks to the pwritev test from the strace test suite for originally
highlighting this bug!

Fixes: 5b3b16880f40 ("MIPS: Add Cavium OCTEON processor support ...")
Signed-off-by: James Cowgill <James.Cowgill@imgtec.com>
Acked-by: David Daney <david.daney@cavium.com>
Reviewed-by: James Hogan <james.hogan@imgtec.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/14978/
Signed-off-by: James Hogan <james.hogan@imgtec.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/mips/cavium-octeon/octeon-memcpy.S |   20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

--- a/arch/mips/cavium-octeon/octeon-memcpy.S
+++ b/arch/mips/cavium-octeon/octeon-memcpy.S
@@ -208,18 +208,18 @@ EXC(	STORE	t2, UNIT(6)(dst),	s_exc_p10u)
 	ADD	src, src, 16*NBYTES
 EXC(	STORE	t3, UNIT(7)(dst),	s_exc_p9u)
 	ADD	dst, dst, 16*NBYTES
-EXC(	LOAD	t0, UNIT(-8)(src),	l_exc_copy)
-EXC(	LOAD	t1, UNIT(-7)(src),	l_exc_copy)
-EXC(	LOAD	t2, UNIT(-6)(src),	l_exc_copy)
-EXC(	LOAD	t3, UNIT(-5)(src),	l_exc_copy)
+EXC(	LOAD	t0, UNIT(-8)(src),	l_exc_copy_rewind16)
+EXC(	LOAD	t1, UNIT(-7)(src),	l_exc_copy_rewind16)
+EXC(	LOAD	t2, UNIT(-6)(src),	l_exc_copy_rewind16)
+EXC(	LOAD	t3, UNIT(-5)(src),	l_exc_copy_rewind16)
 EXC(	STORE	t0, UNIT(-8)(dst),	s_exc_p8u)
 EXC(	STORE	t1, UNIT(-7)(dst),	s_exc_p7u)
 EXC(	STORE	t2, UNIT(-6)(dst),	s_exc_p6u)
 EXC(	STORE	t3, UNIT(-5)(dst),	s_exc_p5u)
-EXC(	LOAD	t0, UNIT(-4)(src),	l_exc_copy)
-EXC(	LOAD	t1, UNIT(-3)(src),	l_exc_copy)
-EXC(	LOAD	t2, UNIT(-2)(src),	l_exc_copy)
-EXC(	LOAD	t3, UNIT(-1)(src),	l_exc_copy)
+EXC(	LOAD	t0, UNIT(-4)(src),	l_exc_copy_rewind16)
+EXC(	LOAD	t1, UNIT(-3)(src),	l_exc_copy_rewind16)
+EXC(	LOAD	t2, UNIT(-2)(src),	l_exc_copy_rewind16)
+EXC(	LOAD	t3, UNIT(-1)(src),	l_exc_copy_rewind16)
 EXC(	STORE	t0, UNIT(-4)(dst),	s_exc_p4u)
 EXC(	STORE	t1, UNIT(-3)(dst),	s_exc_p3u)
 EXC(	STORE	t2, UNIT(-2)(dst),	s_exc_p2u)
@@ -383,6 +383,10 @@ done:
 	 nop
 	END(memcpy)
 
+l_exc_copy_rewind16:
+	/* Rewind src and dst by 16*NBYTES for l_exc_copy */
+	SUB	src, src, 16*NBYTES
+	SUB	dst, dst, 16*NBYTES
 l_exc_copy:
 	/*
 	 * Copy bytes from src until faulting load address (or until a

[toc] | [prev] | [next] | [standalone]


#1597160 — [PATCH 4.9 012/153] mmc: sdhci-acpi: support deferred probe

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-03-10 12:40 +0100
Subject[PATCH 4.9 012/153] mmc: sdhci-acpi: support deferred probe
Message-ID<tjr3Q-3kY-27@gated-at.bofh.it>
In reply to#1597151
4.9-stable review patch.  If anyone has any objections, please let me know.

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

From: Zhang Rui <rui.zhang@intel.com>

commit e28d6f048799acb0014491e6b74e580d84bd7916 upstream.

With commit 67bf5156edc4 ("gpio / ACPI: fix returned error from
acpi_dev_gpio_irq_get()"), mmc_gpiod_request_cd() returns -EPROBE_DEFER if
GPIO is not ready when sdhci-acpi driver is probed, and sdhci-acpi driver
should be probed again later in this case.

This fixes an order issue when both GPIO and sdhci-acpi drivers are built
as modules.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=177101
Tested-by: Jonas Aaberg <cja@gmx.net>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/mmc/host/sdhci-acpi.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

--- a/drivers/mmc/host/sdhci-acpi.c
+++ b/drivers/mmc/host/sdhci-acpi.c
@@ -466,7 +466,10 @@ static int sdhci_acpi_probe(struct platf
 	if (sdhci_acpi_flag(c, SDHCI_ACPI_SD_CD)) {
 		bool v = sdhci_acpi_flag(c, SDHCI_ACPI_SD_CD_OVERRIDE_LEVEL);
 
-		if (mmc_gpiod_request_cd(host->mmc, NULL, 0, v, 0, NULL)) {
+		err = mmc_gpiod_request_cd(host->mmc, NULL, 0, v, 0, NULL);
+		if (err) {
+			if (err == -EPROBE_DEFER)
+				goto err_free;
 			dev_warn(dev, "failed to setup card detect gpio\n");
 			c->use_runtime_pm = false;
 		}

[toc] | [prev] | [next] | [standalone]


#1597161 — [PATCH 4.9 031/153] hwmon: (it87) Do not overwrite bit 2..6 of pwm control registers

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-03-10 12:40 +0100
Subject[PATCH 4.9 031/153] hwmon: (it87) Do not overwrite bit 2..6 of pwm control registers
Message-ID<tjr3Q-3kY-31@gated-at.bofh.it>
In reply to#1597151
4.9-stable review patch.  If anyone has any objections, please let me know.

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

From: Guenter Roeck <linux@roeck-us.net>

commit 4c7b8ca1ae5ed9e27014732c8a918ba11a86cf09 upstream.

In IT8620E, after setting pwm control to manual, it was observed that
pwm values for fan 4..6 have reversed results (writing 0 results in fans
running at full speed, writing 255 results in fans turned off).

With the new PWM control, pwm polarity for pwm control 4..6 is specified
in its pwm control registers. Those registers are overwritten when setting
the pwm mode or the temperature mapping. Do not touch bit 2..6 of pwm
control registers on register writes to fix the problem.

Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/hwmon/it87.c |   37 ++++++++++++++++++++++++-------------
 1 file changed, 24 insertions(+), 13 deletions(-)

--- a/drivers/hwmon/it87.c
+++ b/drivers/hwmon/it87.c
@@ -1300,25 +1300,35 @@ static ssize_t set_pwm_enable(struct dev
 			it87_write_value(data, IT87_REG_FAN_MAIN_CTRL,
 					 data->fan_main_ctrl);
 		} else {
+			u8 ctrl;
+
 			/* No on/off mode, set maximum pwm value */
 			data->pwm_duty[nr] = pwm_to_reg(data, 0xff);
 			it87_write_value(data, IT87_REG_PWM_DUTY[nr],
 					 data->pwm_duty[nr]);
 			/* and set manual mode */
-			data->pwm_ctrl[nr] = has_newer_autopwm(data) ?
-					     data->pwm_temp_map[nr] :
-					     data->pwm_duty[nr];
-			it87_write_value(data, IT87_REG_PWM[nr],
-					 data->pwm_ctrl[nr]);
+			if (has_newer_autopwm(data)) {
+				ctrl = (data->pwm_ctrl[nr] & 0x7c) |
+					data->pwm_temp_map[nr];
+			} else {
+				ctrl = data->pwm_duty[nr];
+			}
+			data->pwm_ctrl[nr] = ctrl;
+			it87_write_value(data, IT87_REG_PWM[nr], ctrl);
 		}
 	} else {
-		if (val == 1)				/* Manual mode */
-			data->pwm_ctrl[nr] = has_newer_autopwm(data) ?
-					     data->pwm_temp_map[nr] :
-					     data->pwm_duty[nr];
-		else					/* Automatic mode */
-			data->pwm_ctrl[nr] = 0x80 | data->pwm_temp_map[nr];
-		it87_write_value(data, IT87_REG_PWM[nr], data->pwm_ctrl[nr]);
+		u8 ctrl;
+
+		if (has_newer_autopwm(data)) {
+			ctrl = (data->pwm_ctrl[nr] & 0x7c) |
+				data->pwm_temp_map[nr];
+			if (val != 1)
+				ctrl |= 0x80;
+		} else {
+			ctrl = (val == 1 ? data->pwm_duty[nr] : 0x80);
+		}
+		data->pwm_ctrl[nr] = ctrl;
+		it87_write_value(data, IT87_REG_PWM[nr], ctrl);
 
 		if (data->type != it8603 && nr < 3) {
 			/* set SmartGuardian mode */
@@ -1462,7 +1472,8 @@ static ssize_t set_pwm_temp_map(struct d
 	 * otherwise, just store it for later use.
 	 */
 	if (data->pwm_ctrl[nr] & 0x80) {
-		data->pwm_ctrl[nr] = 0x80 | data->pwm_temp_map[nr];
+		data->pwm_ctrl[nr] = (data->pwm_ctrl[nr] & 0xfc) |
+						data->pwm_temp_map[nr];
 		it87_write_value(data, IT87_REG_PWM[nr], data->pwm_ctrl[nr]);
 	}
 	mutex_unlock(&data->update_lock);

[toc] | [prev] | [next] | [standalone]


#1597162 — [PATCH 4.9 020/153] spi: s3c64xx: fix inconsistency between binding and driver

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-03-10 12:40 +0100
Subject[PATCH 4.9 020/153] spi: s3c64xx: fix inconsistency between binding and driver
Message-ID<tjr3Q-3kY-33@gated-at.bofh.it>
In reply to#1597151
4.9-stable review patch.  If anyone has any objections, please let me know.

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

From: Andi Shyti <andi.shyti@samsung.com>

commit 379f831a927817c130a62e3ca0082ae685557324 upstream.

Commit a92e7c3d82a1 ("spi: s3c64xx: consider the case when the CS
line is not connected") introduced an inconsistency between the
binding, where the disconnected CS line was marked as
'no-cs-readback', and the driver.

The driver is erroneously checking for that attribute with
property name of 'broken-cs'.

Check for 'no-cs-readback' in the driver as well.

Fixes: a92e7c3d82a1 ("spi: s3c64xx: consider the case when the CS line is not connected")
Signed-off-by: Andi Shyti <andi.shyti@samsung.com>
Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/spi/spi-s3c64xx.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/spi/spi-s3c64xx.c
+++ b/drivers/spi/spi-s3c64xx.c
@@ -1003,7 +1003,7 @@ static struct s3c64xx_spi_info *s3c64xx_
 		sci->num_cs = temp;
 	}
 
-	sci->no_cs = of_property_read_bool(dev->of_node, "broken-cs");
+	sci->no_cs = of_property_read_bool(dev->of_node, "no-cs-readback");
 
 	return sci;
 }

[toc] | [prev] | [next] | [standalone]


#1597163 — [PATCH 4.9 011/153] MIPS: Handle microMIPS jumps in the same way as MIPS32/MIPS64 jumps

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-03-10 12:40 +0100
Subject[PATCH 4.9 011/153] MIPS: Handle microMIPS jumps in the same way as MIPS32/MIPS64 jumps
Message-ID<tjr3Q-3kY-35@gated-at.bofh.it>
In reply to#1597151
4.9-stable review patch.  If anyone has any objections, please let me know.

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

From: Paul Burton <paul.burton@imgtec.com>

commit 096a0de427ea333f56f0ee00328cff2a2731bcf1 upstream.

is_jump_ins() checks for plain jump ("j") instructions since commit
e7438c4b893e ("MIPS: Fix sibling call handling in get_frame_info") but
that commit didn't make the same change to the microMIPS code, leaving
it inconsistent with the MIPS32/MIPS64 code. Handle the microMIPS
encoding of the jump instruction too such that it behaves consistently.

Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Fixes: e7438c4b893e ("MIPS: Fix sibling call handling in get_frame_info")
Cc: Tony Wu <tung7970@gmail.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/14533/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/mips/kernel/process.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/arch/mips/kernel/process.c
+++ b/arch/mips/kernel/process.c
@@ -293,6 +293,8 @@ static inline int is_jump_ins(union mips
 		return 0;
 	}
 
+	if (ip->j_format.opcode == mm_j32_op)
+		return 1;
 	if (ip->j_format.opcode == mm_jal32_op)
 		return 1;
 	if (ip->r_format.opcode != mm_pool32a_op ||

[toc] | [prev] | [next] | [standalone]


#1597166 — [PATCH 4.9 036/153] coresight: STM: Balance enable/disable

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-03-10 12:40 +0100
Subject[PATCH 4.9 036/153] coresight: STM: Balance enable/disable
Message-ID<tjr3Q-3kY-43@gated-at.bofh.it>
In reply to#1597151
4.9-stable review patch.  If anyone has any objections, please let me know.

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

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

commit 4474f4c40a9c607c7317e686b23619b7b768004f upstream.

The stm is automatically enabled when an application sets the policy
via ->link() call back by using coresight_enable(), which keeps the
refcount of the current users of the STM. However, the unlink() callback
issues stm_disable() directly, which leaves the STM turned off, without
the coresight layer knowing about it. This prevents any further uses
of the STM hardware as the coresight layer still thinks the STM is
turned on and doesn't enable the hardware when required. Even manually
enabling the STM via sysfs can't really enable the hw.

e.g,

 $ echo 1 > $CS_DEVS/$ETR/enable_sink
 $ mkdir -p $CONFIG_FS/stp-policy/$source.0/stm_test/
 $ echo 32768 65535 > $CONFIG_FS/stp-policy/$source.0/stm_test/channels
 $ echo 64 > $CS_DEVS/$source/traceid
 $ ./stm_app
 Sending 64000 byte blocks of pattern 0 at 0us intervals
 Success to map channel(32768~32783) to 0xffffa95fa000
 Sending on channel 32768
 $ dd if=/dev/$ETR of=~/trace.bin.1
 597+1 records in
 597+1 records out
 305920 bytes (306 kB) copied, 0.399952 s, 765 kB/s
 $ ./stm_app
 Sending 64000 byte blocks of pattern 0 at 0us intervals
 Success to map channel(32768~32783) to 0xffff7e9e2000
 Sending on channel 32768
 $ dd if=/dev/$ETR of=~/trace.bin.2
 0+0 records in
 0+0 records out
 0 bytes (0 B) copied, 0.0232083 s, 0.0 kB/s

 Note that we don't get any data from the ETR for the second session.

 Also dmesg shows :

 [   77.520458] coresight-tmc 20800000.etr: TMC-ETR enabled
 [   77.537097] coresight-replicator etr_replicator@20890000: REPLICATOR enabled
 [   77.558828] coresight-replicator main_replicator@208a0000: REPLICATOR enabled
 [   77.581068] coresight-funnel 208c0000.main_funnel: FUNNEL inport 0 enabled
 [   77.602217] coresight-tmc 20840000.etf: TMC-ETF enabled
 [   77.618422] coresight-stm 20860000.stm: STM tracing enabled
 [  139.554252] coresight-stm 20860000.stm: STM tracing disabled
  # End of first tracing session
 [  146.351135] coresight-tmc 20800000.etr: TMC read start
 [  146.514486] coresight-tmc 20800000.etr: TMC read end
  # Note that the STM is not turned on via stm_generic_link()->coresight_enable()
  # and hence none of the components are turned on.
 [  152.479080] coresight-tmc 20800000.etr: TMC read start
 [  152.542632] coresight-tmc 20800000.etr: TMC read end

This patch fixes the problem by balancing the unlink operation by using
the coresight_disable(), keeping the coresight layer in sync with the
hardware state and thus allowing normal usage of the STM component.

Fixes: commit 237483aa5cf43 ("coresight: stm: adding driver for CoreSight STM component")
Cc: Pratik Patel <pratikp@codeaurora.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Acked-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Reviewed-by: Chunyan Zhang <zhang.chunyan@linaro.org>
Reported-by: Robert Walker <robert.walker@arm.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/hwtracing/coresight/coresight-stm.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/hwtracing/coresight/coresight-stm.c
+++ b/drivers/hwtracing/coresight/coresight-stm.c
@@ -356,7 +356,7 @@ static void stm_generic_unlink(struct st
 	if (!drvdata || !drvdata->csdev)
 		return;
 
-	stm_disable(drvdata->csdev, NULL);
+	coresight_disable(drvdata->csdev);
 }
 
 static phys_addr_t

[toc] | [prev] | [next] | [standalone]


#1597167 — [PATCH 4.9 009/153] MIPS: Fix is_jump_ins() handling of 16b microMIPS instructions

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-03-10 12:40 +0100
Subject[PATCH 4.9 009/153] MIPS: Fix is_jump_ins() handling of 16b microMIPS instructions
Message-ID<tjr3R-3kY-45@gated-at.bofh.it>
In reply to#1597151
4.9-stable review patch.  If anyone has any objections, please let me know.

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

From: Paul Burton <paul.burton@imgtec.com>

commit 67c75057709a6d85c681c78b9b2f9b71191f01a2 upstream.

is_jump_ins() checks 16b instruction fields without verifying that the
instruction is indeed 16b, as is done by is_ra_save_ins() &
is_sp_move_ins(). Add the appropriate check.

Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Fixes: 34c2f668d0f6 ("MIPS: microMIPS: Add unaligned access support.")
Cc: Leonid Yegoshin <leonid.yegoshin@imgtec.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/14531/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/mips/kernel/process.c |   11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

--- a/arch/mips/kernel/process.c
+++ b/arch/mips/kernel/process.c
@@ -241,9 +241,14 @@ static inline int is_jump_ins(union mips
 	 *
 	 * microMIPS is kind of more fun...
 	 */
-	if ((ip->mm16_r5_format.opcode == mm_pool16c_op &&
-	    (ip->mm16_r5_format.rt & mm_jr16_op) == mm_jr16_op) ||
-	    ip->j_format.opcode == mm_jal32_op)
+	if (mm_insn_16bit(ip->halfword[1])) {
+		if ((ip->mm16_r5_format.opcode == mm_pool16c_op &&
+		    (ip->mm16_r5_format.rt & mm_jr16_op) == mm_jr16_op))
+			return 1;
+		return 0;
+	}
+
+	if (ip->j_format.opcode == mm_jal32_op)
 		return 1;
 	if (ip->r_format.opcode != mm_pool32a_op ||
 			ip->r_format.func != mm_pool32axf_op)

[toc] | [prev] | [next] | [standalone]


#1597168 — [PATCH 4.9 008/153] MIPS: Fix get_frame_info() handling of microMIPS function size

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-03-10 12:40 +0100
Subject[PATCH 4.9 008/153] MIPS: Fix get_frame_info() handling of microMIPS function size
Message-ID<tjr3Q-3kY-39@gated-at.bofh.it>
In reply to#1597151
4.9-stable review patch.  If anyone has any objections, please let me know.

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

From: Paul Burton <paul.burton@imgtec.com>

commit b6c7a324df37bf05ef7a2c1580683cf10d082d97 upstream.

get_frame_info() is meant to iterate over up to the first 128
instructions within a function, but for microMIPS kernels it will not
reach that many instructions unless the function is 512 bytes long since
we calculate the maximum number of instructions to check by dividing the
function length by the 4 byte size of a union mips_instruction. In
microMIPS kernels this won't do since instructions are variable length.

Fix this by instead checking whether the pointer to the current
instruction has reached the end of the function, and use max_insns as a
simple constant to check the number of iterations against.

Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Fixes: 34c2f668d0f6 ("MIPS: microMIPS: Add unaligned access support.")
Cc: Leonid Yegoshin <leonid.yegoshin@imgtec.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/14530/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/mips/kernel/process.c |   12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

--- a/arch/mips/kernel/process.c
+++ b/arch/mips/kernel/process.c
@@ -293,9 +293,9 @@ static inline int is_sp_move_ins(union m
 static int get_frame_info(struct mips_frame_info *info)
 {
 	bool is_mmips = IS_ENABLED(CONFIG_CPU_MICROMIPS);
-	union mips_instruction insn, *ip;
-	unsigned max_insns = info->func_size / sizeof(union mips_instruction);
-	unsigned i;
+	union mips_instruction insn, *ip, *ip_end;
+	const unsigned int max_insns = 128;
+	unsigned int i;
 
 	info->pc_offset = -1;
 	info->frame_size = 0;
@@ -304,11 +304,9 @@ static int get_frame_info(struct mips_fr
 	if (!ip)
 		goto err;
 
-	if (max_insns == 0)
-		max_insns = 128U;	/* unknown function size */
-	max_insns = min(128U, max_insns);
+	ip_end = (void *)ip + info->func_size;
 
-	for (i = 0; i < max_insns; i++, ip++) {
+	for (i = 0; i < max_insns && ip < ip_end; i++, ip++) {
 		if (is_mmips && mm_insn_16bit(ip->halfword[0])) {
 			insn.halfword[0] = 0;
 			insn.halfword[1] = ip->halfword[0];

[toc] | [prev] | [next] | [standalone]


#1597169 — [PATCH 4.9 002/153] MIPS: Fix special case in 64 bit IP checksumming.

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-03-10 12:40 +0100
Subject[PATCH 4.9 002/153] MIPS: Fix special case in 64 bit IP checksumming.
Message-ID<tjr3R-3kY-47@gated-at.bofh.it>
In reply to#1597151
4.9-stable review patch.  If anyone has any objections, please let me know.

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

From: Ralf Baechle <ralf@linux-mips.org>

commit 66fd848cadaa6be974a8c780fbeb328f0af4d3bd upstream.

For certain arguments such as saddr = 0xc0a8fd60, daddr = 0xc0a8fda1,
len = 80, proto = 17, sum = 0x7eae049d there will be a carry when
folding the intermediate 64 bit checksum to 32 bit but the code doesn't
add the carry back to the one's complement sum, thus an incorrect result
will be generated.

Reported-by: Mark Zhang <bomb.zhang@gmail.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Reviewed-by: James Hogan <james.hogan@imgtec.com>
Signed-off-by: James Hogan <james.hogan@imgtec.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/mips/include/asm/checksum.h |    2 ++
 1 file changed, 2 insertions(+)

--- a/arch/mips/include/asm/checksum.h
+++ b/arch/mips/include/asm/checksum.h
@@ -186,7 +186,9 @@ static inline __wsum csum_tcpudp_nofold(
 	"	daddu	%0, %4		\n"
 	"	dsll32	$1, %0, 0	\n"
 	"	daddu	%0, $1		\n"
+	"	sltu	$1, %0, $1	\n"
 	"	dsra32	%0, %0, 0	\n"
+	"	addu	%0, $1		\n"
 #endif
 	"	.set	pop"
 	: "=r" (sum)

[toc] | [prev] | [next] | [standalone]


#1597171 — [PATCH 4.9 019/153] ext4: fix deadlock between inline_data and ext4_expand_extra_isize_ea()

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-03-10 12:40 +0100
Subject[PATCH 4.9 019/153] ext4: fix deadlock between inline_data and ext4_expand_extra_isize_ea()
Message-ID<tjr3R-3kY-49@gated-at.bofh.it>
In reply to#1597151
4.9-stable review patch.  If anyone has any objections, please let me know.

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

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

commit c755e251357a0cee0679081f08c3f4ba797a8009 upstream.

The xattr_sem deadlock problems fixed in commit 2e81a4eeedca: "ext4:
avoid deadlock when expanding inode size" didn't include the use of
xattr_sem in fs/ext4/inline.c.  With the addition of project quota
which added a new extra inode field, this exposed deadlocks in the
inline_data code similar to the ones fixed by 2e81a4eeedca.

The deadlock can be reproduced via:

   dmesg -n 7
   mke2fs -t ext4 -O inline_data -Fq -I 256 /dev/vdc 32768
   mount -t ext4 -o debug_want_extra_isize=24 /dev/vdc /vdc
   mkdir /vdc/a
   umount /vdc
   mount -t ext4 /dev/vdc /vdc
   echo foo > /vdc/a/foo

and looks like this:

[   11.158815]
[   11.160276] =============================================
[   11.161960] [ INFO: possible recursive locking detected ]
[   11.161960] 4.10.0-rc3-00015-g011b30a8a3cf #160 Tainted: G        W
[   11.161960] ---------------------------------------------
[   11.161960] bash/2519 is trying to acquire lock:
[   11.161960]  (&ei->xattr_sem){++++..}, at: [<c1225a4b>] ext4_expand_extra_isize_ea+0x3d/0x4cd
[   11.161960]
[   11.161960] but task is already holding lock:
[   11.161960]  (&ei->xattr_sem){++++..}, at: [<c1227941>] ext4_try_add_inline_entry+0x3a/0x152
[   11.161960]
[   11.161960] other info that might help us debug this:
[   11.161960]  Possible unsafe locking scenario:
[   11.161960]
[   11.161960]        CPU0
[   11.161960]        ----
[   11.161960]   lock(&ei->xattr_sem);
[   11.161960]   lock(&ei->xattr_sem);
[   11.161960]
[   11.161960]  *** DEADLOCK ***
[   11.161960]
[   11.161960]  May be due to missing lock nesting notation
[   11.161960]
[   11.161960] 4 locks held by bash/2519:
[   11.161960]  #0:  (sb_writers#3){.+.+.+}, at: [<c11a2414>] mnt_want_write+0x1e/0x3e
[   11.161960]  #1:  (&type->i_mutex_dir_key){++++++}, at: [<c119508b>] path_openat+0x338/0x67a
[   11.161960]  #2:  (jbd2_handle){++++..}, at: [<c123314a>] start_this_handle+0x582/0x622
[   11.161960]  #3:  (&ei->xattr_sem){++++..}, at: [<c1227941>] ext4_try_add_inline_entry+0x3a/0x152
[   11.161960]
[   11.161960] stack backtrace:
[   11.161960] CPU: 0 PID: 2519 Comm: bash Tainted: G        W       4.10.0-rc3-00015-g011b30a8a3cf #160
[   11.161960] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.1-1 04/01/2014
[   11.161960] Call Trace:
[   11.161960]  dump_stack+0x72/0xa3
[   11.161960]  __lock_acquire+0xb7c/0xcb9
[   11.161960]  ? kvm_clock_read+0x1f/0x29
[   11.161960]  ? __lock_is_held+0x36/0x66
[   11.161960]  ? __lock_is_held+0x36/0x66
[   11.161960]  lock_acquire+0x106/0x18a
[   11.161960]  ? ext4_expand_extra_isize_ea+0x3d/0x4cd
[   11.161960]  down_write+0x39/0x72
[   11.161960]  ? ext4_expand_extra_isize_ea+0x3d/0x4cd
[   11.161960]  ext4_expand_extra_isize_ea+0x3d/0x4cd
[   11.161960]  ? _raw_read_unlock+0x22/0x2c
[   11.161960]  ? jbd2_journal_extend+0x1e2/0x262
[   11.161960]  ? __ext4_journal_get_write_access+0x3d/0x60
[   11.161960]  ext4_mark_inode_dirty+0x17d/0x26d
[   11.161960]  ? ext4_add_dirent_to_inline.isra.12+0xa5/0xb2
[   11.161960]  ext4_add_dirent_to_inline.isra.12+0xa5/0xb2
[   11.161960]  ext4_try_add_inline_entry+0x69/0x152
[   11.161960]  ext4_add_entry+0xa3/0x848
[   11.161960]  ? __brelse+0x14/0x2f
[   11.161960]  ? _raw_spin_unlock_irqrestore+0x44/0x4f
[   11.161960]  ext4_add_nondir+0x17/0x5b
[   11.161960]  ext4_create+0xcf/0x133
[   11.161960]  ? ext4_mknod+0x12f/0x12f
[   11.161960]  lookup_open+0x39e/0x3fb
[   11.161960]  ? __wake_up+0x1a/0x40
[   11.161960]  ? lock_acquire+0x11e/0x18a
[   11.161960]  path_openat+0x35c/0x67a
[   11.161960]  ? sched_clock_cpu+0xd7/0xf2
[   11.161960]  do_filp_open+0x36/0x7c
[   11.161960]  ? _raw_spin_unlock+0x22/0x2c
[   11.161960]  ? __alloc_fd+0x169/0x173
[   11.161960]  do_sys_open+0x59/0xcc
[   11.161960]  SyS_open+0x1d/0x1f
[   11.161960]  do_int80_syscall_32+0x4f/0x61
[   11.161960]  entry_INT80_32+0x2f/0x2f
[   11.161960] EIP: 0xb76ad469
[   11.161960] EFLAGS: 00000286 CPU: 0
[   11.161960] EAX: ffffffda EBX: 08168ac8 ECX: 00008241 EDX: 000001b6
[   11.161960] ESI: b75e46bc EDI: b7755000 EBP: bfbdb108 ESP: bfbdafc0
[   11.161960]  DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 007b

Reported-by: George Spelvin <linux@sciencehorizons.net>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/ext4/inline.c |   66 +++++++++++++++++++++++++------------------------------
 fs/ext4/xattr.c  |   30 ++++++++++---------------
 fs/ext4/xattr.h  |   32 ++++++++++++++++++++++++++
 3 files changed, 74 insertions(+), 54 deletions(-)

--- a/fs/ext4/inline.c
+++ b/fs/ext4/inline.c
@@ -376,7 +376,7 @@ out:
 static int ext4_prepare_inline_data(handle_t *handle, struct inode *inode,
 				    unsigned int len)
 {
-	int ret, size;
+	int ret, size, no_expand;
 	struct ext4_inode_info *ei = EXT4_I(inode);
 
 	if (!ext4_test_inode_state(inode, EXT4_STATE_MAY_INLINE_DATA))
@@ -386,15 +386,14 @@ static int ext4_prepare_inline_data(hand
 	if (size < len)
 		return -ENOSPC;
 
-	down_write(&EXT4_I(inode)->xattr_sem);
+	ext4_write_lock_xattr(inode, &no_expand);
 
 	if (ei->i_inline_off)
 		ret = ext4_update_inline_data(handle, inode, len);
 	else
 		ret = ext4_create_inline_data(handle, inode, len);
 
-	up_write(&EXT4_I(inode)->xattr_sem);
-
+	ext4_write_unlock_xattr(inode, &no_expand);
 	return ret;
 }
 
@@ -523,7 +522,7 @@ static int ext4_convert_inline_data_to_e
 					      struct inode *inode,
 					      unsigned flags)
 {
-	int ret, needed_blocks;
+	int ret, needed_blocks, no_expand;
 	handle_t *handle = NULL;
 	int retries = 0, sem_held = 0;
 	struct page *page = NULL;
@@ -563,7 +562,7 @@ retry:
 		goto out;
 	}
 
-	down_write(&EXT4_I(inode)->xattr_sem);
+	ext4_write_lock_xattr(inode, &no_expand);
 	sem_held = 1;
 	/* If some one has already done this for us, just exit. */
 	if (!ext4_has_inline_data(inode)) {
@@ -600,7 +599,7 @@ retry:
 		put_page(page);
 		page = NULL;
 		ext4_orphan_add(handle, inode);
-		up_write(&EXT4_I(inode)->xattr_sem);
+		ext4_write_unlock_xattr(inode, &no_expand);
 		sem_held = 0;
 		ext4_journal_stop(handle);
 		handle = NULL;
@@ -626,7 +625,7 @@ out:
 		put_page(page);
 	}
 	if (sem_held)
-		up_write(&EXT4_I(inode)->xattr_sem);
+		ext4_write_unlock_xattr(inode, &no_expand);
 	if (handle)
 		ext4_journal_stop(handle);
 	brelse(iloc.bh);
@@ -719,7 +718,7 @@ convert:
 int ext4_write_inline_data_end(struct inode *inode, loff_t pos, unsigned len,
 			       unsigned copied, struct page *page)
 {
-	int ret;
+	int ret, no_expand;
 	void *kaddr;
 	struct ext4_iloc iloc;
 
@@ -737,7 +736,7 @@ int ext4_write_inline_data_end(struct in
 		goto out;
 	}
 
-	down_write(&EXT4_I(inode)->xattr_sem);
+	ext4_write_lock_xattr(inode, &no_expand);
 	BUG_ON(!ext4_has_inline_data(inode));
 
 	kaddr = kmap_atomic(page);
@@ -747,7 +746,7 @@ int ext4_write_inline_data_end(struct in
 	/* clear page dirty so that writepages wouldn't work for us. */
 	ClearPageDirty(page);
 
-	up_write(&EXT4_I(inode)->xattr_sem);
+	ext4_write_unlock_xattr(inode, &no_expand);
 	brelse(iloc.bh);
 out:
 	return copied;
@@ -758,7 +757,7 @@ ext4_journalled_write_inline_data(struct
 				  unsigned len,
 				  struct page *page)
 {
-	int ret;
+	int ret, no_expand;
 	void *kaddr;
 	struct ext4_iloc iloc;
 
@@ -768,11 +767,11 @@ ext4_journalled_write_inline_data(struct
 		return NULL;
 	}
 
-	down_write(&EXT4_I(inode)->xattr_sem);
+	ext4_write_lock_xattr(inode, &no_expand);
 	kaddr = kmap_atomic(page);
 	ext4_write_inline_data(inode, &iloc, kaddr, 0, len);
 	kunmap_atomic(kaddr);
-	up_write(&EXT4_I(inode)->xattr_sem);
+	ext4_write_unlock_xattr(inode, &no_expand);
 
 	return iloc.bh;
 }
@@ -1249,7 +1248,7 @@ out:
 int ext4_try_add_inline_entry(handle_t *handle, struct ext4_filename *fname,
 			      struct inode *dir, struct inode *inode)
 {
-	int ret, inline_size;
+	int ret, inline_size, no_expand;
 	void *inline_start;
 	struct ext4_iloc iloc;
 
@@ -1257,7 +1256,7 @@ int ext4_try_add_inline_entry(handle_t *
 	if (ret)
 		return ret;
 
-	down_write(&EXT4_I(dir)->xattr_sem);
+	ext4_write_lock_xattr(dir, &no_expand);
 	if (!ext4_has_inline_data(dir))
 		goto out;
 
@@ -1303,7 +1302,7 @@ int ext4_try_add_inline_entry(handle_t *
 
 out:
 	ext4_mark_inode_dirty(handle, dir);
-	up_write(&EXT4_I(dir)->xattr_sem);
+	ext4_write_unlock_xattr(dir, &no_expand);
 	brelse(iloc.bh);
 	return ret;
 }
@@ -1663,7 +1662,7 @@ int ext4_delete_inline_entry(handle_t *h
 			     struct buffer_head *bh,
 			     int *has_inline_data)
 {
-	int err, inline_size;
+	int err, inline_size, no_expand;
 	struct ext4_iloc iloc;
 	void *inline_start;
 
@@ -1671,7 +1670,7 @@ int ext4_delete_inline_entry(handle_t *h
 	if (err)
 		return err;
 
-	down_write(&EXT4_I(dir)->xattr_sem);
+	ext4_write_lock_xattr(dir, &no_expand);
 	if (!ext4_has_inline_data(dir)) {
 		*has_inline_data = 0;
 		goto out;
@@ -1705,7 +1704,7 @@ int ext4_delete_inline_entry(handle_t *h
 
 	ext4_show_inline_dir(dir, iloc.bh, inline_start, inline_size);
 out:
-	up_write(&EXT4_I(dir)->xattr_sem);
+	ext4_write_unlock_xattr(dir, &no_expand);
 	brelse(iloc.bh);
 	if (err != -ENOENT)
 		ext4_std_error(dir->i_sb, err);
@@ -1804,11 +1803,11 @@ out:
 
 int ext4_destroy_inline_data(handle_t *handle, struct inode *inode)
 {
-	int ret;
+	int ret, no_expand;
 
-	down_write(&EXT4_I(inode)->xattr_sem);
+	ext4_write_lock_xattr(inode, &no_expand);
 	ret = ext4_destroy_inline_data_nolock(handle, inode);
-	up_write(&EXT4_I(inode)->xattr_sem);
+	ext4_write_unlock_xattr(inode, &no_expand);
 
 	return ret;
 }
@@ -1893,7 +1892,7 @@ out:
 void ext4_inline_data_truncate(struct inode *inode, int *has_inline)
 {
 	handle_t *handle;
-	int inline_size, value_len, needed_blocks;
+	int inline_size, value_len, needed_blocks, no_expand;
 	size_t i_size;
 	void *value = NULL;
 	struct ext4_xattr_ibody_find is = {
@@ -1910,7 +1909,7 @@ void ext4_inline_data_truncate(struct in
 	if (IS_ERR(handle))
 		return;
 
-	down_write(&EXT4_I(inode)->xattr_sem);
+	ext4_write_lock_xattr(inode, &no_expand);
 	if (!ext4_has_inline_data(inode)) {
 		*has_inline = 0;
 		ext4_journal_stop(handle);
@@ -1968,7 +1967,7 @@ out_error:
 	up_write(&EXT4_I(inode)->i_data_sem);
 out:
 	brelse(is.iloc.bh);
-	up_write(&EXT4_I(inode)->xattr_sem);
+	ext4_write_unlock_xattr(inode, &no_expand);
 	kfree(value);
 	if (inode->i_nlink)
 		ext4_orphan_del(handle, inode);
@@ -1984,7 +1983,7 @@ out:
 
 int ext4_convert_inline_data(struct inode *inode)
 {
-	int error, needed_blocks;
+	int error, needed_blocks, no_expand;
 	handle_t *handle;
 	struct ext4_iloc iloc;
 
@@ -2006,15 +2005,10 @@ int ext4_convert_inline_data(struct inod
 		goto out_free;
 	}
 
-	down_write(&EXT4_I(inode)->xattr_sem);
-	if (!ext4_has_inline_data(inode)) {
-		up_write(&EXT4_I(inode)->xattr_sem);
-		goto out;
-	}
-
-	error = ext4_convert_inline_data_nolock(handle, inode, &iloc);
-	up_write(&EXT4_I(inode)->xattr_sem);
-out:
+	ext4_write_lock_xattr(inode, &no_expand);
+	if (ext4_has_inline_data(inode))
+		error = ext4_convert_inline_data_nolock(handle, inode, &iloc);
+	ext4_write_unlock_xattr(inode, &no_expand);
 	ext4_journal_stop(handle);
 out_free:
 	brelse(iloc.bh);
--- a/fs/ext4/xattr.c
+++ b/fs/ext4/xattr.c
@@ -1174,16 +1174,14 @@ ext4_xattr_set_handle(handle_t *handle,
 	struct ext4_xattr_block_find bs = {
 		.s = { .not_found = -ENODATA, },
 	};
-	unsigned long no_expand;
+	int no_expand;
 	int error;
 
 	if (!name)
 		return -EINVAL;
 	if (strlen(name) > 255)
 		return -ERANGE;
-	down_write(&EXT4_I(inode)->xattr_sem);
-	no_expand = ext4_test_inode_state(inode, EXT4_STATE_NO_EXPAND);
-	ext4_set_inode_state(inode, EXT4_STATE_NO_EXPAND);
+	ext4_write_lock_xattr(inode, &no_expand);
 
 	error = ext4_reserve_inode_write(handle, inode, &is.iloc);
 	if (error)
@@ -1251,7 +1249,7 @@ ext4_xattr_set_handle(handle_t *handle,
 		ext4_xattr_update_super_block(handle, inode->i_sb);
 		inode->i_ctime = ext4_current_time(inode);
 		if (!value)
-			ext4_clear_inode_state(inode, EXT4_STATE_NO_EXPAND);
+			no_expand = 0;
 		error = ext4_mark_iloc_dirty(handle, inode, &is.iloc);
 		/*
 		 * The bh is consumed by ext4_mark_iloc_dirty, even with
@@ -1265,9 +1263,7 @@ ext4_xattr_set_handle(handle_t *handle,
 cleanup:
 	brelse(is.iloc.bh);
 	brelse(bs.bh);
-	if (no_expand == 0)
-		ext4_clear_inode_state(inode, EXT4_STATE_NO_EXPAND);
-	up_write(&EXT4_I(inode)->xattr_sem);
+	ext4_write_unlock_xattr(inode, &no_expand);
 	return error;
 }
 
@@ -1484,12 +1480,11 @@ int ext4_expand_extra_isize_ea(struct in
 	int error = 0, tried_min_extra_isize = 0;
 	int s_min_extra_isize = le16_to_cpu(EXT4_SB(inode->i_sb)->s_es->s_min_extra_isize);
 	int isize_diff;	/* How much do we need to grow i_extra_isize */
+	int no_expand;
+
+	if (ext4_write_trylock_xattr(inode, &no_expand) == 0)
+		return 0;
 
-	down_write(&EXT4_I(inode)->xattr_sem);
-	/*
-	 * Set EXT4_STATE_NO_EXPAND to avoid recursion when marking inode dirty
-	 */
-	ext4_set_inode_state(inode, EXT4_STATE_NO_EXPAND);
 retry:
 	isize_diff = new_extra_isize - EXT4_I(inode)->i_extra_isize;
 	if (EXT4_I(inode)->i_extra_isize >= new_extra_isize)
@@ -1571,17 +1566,16 @@ shift:
 	EXT4_I(inode)->i_extra_isize = new_extra_isize;
 	brelse(bh);
 out:
-	ext4_clear_inode_state(inode, EXT4_STATE_NO_EXPAND);
-	up_write(&EXT4_I(inode)->xattr_sem);
+	ext4_write_unlock_xattr(inode, &no_expand);
 	return 0;
 
 cleanup:
 	brelse(bh);
 	/*
-	 * We deliberately leave EXT4_STATE_NO_EXPAND set here since inode
-	 * size expansion failed.
+	 * Inode size expansion failed; don't try again
 	 */
-	up_write(&EXT4_I(inode)->xattr_sem);
+	no_expand = 1;
+	ext4_write_unlock_xattr(inode, &no_expand);
 	return error;
 }
 
--- a/fs/ext4/xattr.h
+++ b/fs/ext4/xattr.h
@@ -102,6 +102,38 @@ extern const struct xattr_handler ext4_x
 
 #define EXT4_XATTR_NAME_ENCRYPTION_CONTEXT "c"
 
+/*
+ * The EXT4_STATE_NO_EXPAND is overloaded and used for two purposes.
+ * The first is to signal that there the inline xattrs and data are
+ * taking up so much space that we might as well not keep trying to
+ * expand it.  The second is that xattr_sem is taken for writing, so
+ * we shouldn't try to recurse into the inode expansion.  For this
+ * second case, we need to make sure that we take save and restore the
+ * NO_EXPAND state flag appropriately.
+ */
+static inline void ext4_write_lock_xattr(struct inode *inode, int *save)
+{
+	down_write(&EXT4_I(inode)->xattr_sem);
+	*save = ext4_test_inode_state(inode, EXT4_STATE_NO_EXPAND);
+	ext4_set_inode_state(inode, EXT4_STATE_NO_EXPAND);
+}
+
+static inline int ext4_write_trylock_xattr(struct inode *inode, int *save)
+{
+	if (down_write_trylock(&EXT4_I(inode)->xattr_sem) == 0)
+		return 0;
+	*save = ext4_test_inode_state(inode, EXT4_STATE_NO_EXPAND);
+	ext4_set_inode_state(inode, EXT4_STATE_NO_EXPAND);
+	return 1;
+}
+
+static inline void ext4_write_unlock_xattr(struct inode *inode, int *save)
+{
+	if (*save == 0)
+		ext4_clear_inode_state(inode, EXT4_STATE_NO_EXPAND);
+	up_write(&EXT4_I(inode)->xattr_sem);
+}
+
 extern ssize_t ext4_listxattr(struct dentry *, char *, size_t);
 
 extern int ext4_xattr_get(struct inode *, int, const char *, void *, size_t);

[toc] | [prev] | [next] | [standalone]


#1597173 — [PATCH 4.9 014/153] [media] uvcvideo: Fix a wrong macro

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-03-10 12:40 +0100
Subject[PATCH 4.9 014/153] [media] uvcvideo: Fix a wrong macro
Message-ID<tjr3P-3kY-17@gated-at.bofh.it>
In reply to#1597151
4.9-stable review patch.  If anyone has any objections, please let me know.

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

From: Guennadi Liakhovetski <g.liakhovetski@gmx.de>

commit 17c341ec0115837a610b2da15e32546e26068234 upstream.

Don't mix up UVC_BUF_STATE_* and VB2_BUF_STATE_* codes.

Fixes: 6998b6fb4b1c ("[media] uvcvideo: Use videobuf2-vmalloc")

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@intel.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/media/usb/uvc/uvc_queue.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/media/usb/uvc/uvc_queue.c
+++ b/drivers/media/usb/uvc/uvc_queue.c
@@ -412,7 +412,7 @@ struct uvc_buffer *uvc_queue_next_buffer
 		nextbuf = NULL;
 	spin_unlock_irqrestore(&queue->irqlock, flags);
 
-	buf->state = buf->error ? VB2_BUF_STATE_ERROR : UVC_BUF_STATE_DONE;
+	buf->state = buf->error ? UVC_BUF_STATE_ERROR : UVC_BUF_STATE_DONE;
 	vb2_set_plane_payload(&buf->buf.vb2_buf, 0, buf->bytesused);
 	vb2_buffer_done(&buf->buf.vb2_buf, VB2_BUF_STATE_DONE);
 

[toc] | [prev] | [next] | [standalone]


#1597899 — [PATCH 4.9 151/153] ceph: update readpages osd request according to size of pages

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-03-10 16:00 +0100
Subject[PATCH 4.9 151/153] ceph: update readpages osd request according to size of pages
Message-ID<tjubn-5v7-11@gated-at.bofh.it>
In reply to#1597151
4.9-stable review patch.  If anyone has any objections, please let me know.

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

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

commit d641df819db8b80198fd85d9de91137e8a823b07 upstream.

add_to_page_cache_lru() can fails, so the actual pages to read
can be smaller than the initial size of osd request. We need to
update osd request size in that case.

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

---
 fs/ceph/addr.c        |    1 +
 net/ceph/osd_client.c |    3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)

--- a/fs/ceph/addr.c
+++ b/fs/ceph/addr.c
@@ -363,6 +363,7 @@ static int start_read(struct inode *inod
 			nr_pages = i;
 			if (nr_pages > 0) {
 				len = nr_pages << PAGE_SHIFT;
+				osd_req_op_extent_update(req, 0, len);
 				break;
 			}
 			goto out_pages;
--- a/net/ceph/osd_client.c
+++ b/net/ceph/osd_client.c
@@ -672,7 +672,8 @@ void osd_req_op_extent_update(struct cep
 	BUG_ON(length > previous);
 
 	op->extent.length = length;
-	op->indata_len -= previous - length;
+	if (op->op == CEPH_OSD_OP_WRITE || op->op == CEPH_OSD_OP_WRITEFULL)
+		op->indata_len -= previous - length;
 }
 EXPORT_SYMBOL(osd_req_op_extent_update);
 

[toc] | [prev] | [next] | [standalone]


#1598018

FromGuenter Roeck <linux@roeck-us.net>
Date2017-03-10 19:40 +0100
Message-ID<tjxCi-7Rw-25@gated-at.bofh.it>
In reply to#1597151
On Fri, Mar 10, 2017 at 10:07:13AM +0100, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 4.9.14 release.
> There are 153 patches in this series, all will be posted as a response
> to this one.  If anyone has any issues with these being applied, please
> let me know.
> 
> Responses should be made by Sun Mar 12 08:39:14 UTC 2017.
> Anything received after that time might be too late.
> 
Build results:
	total: 149 pass: 149 fail: 0
Qemu test results:
	total: 122 pass: 122 fail: 0

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

Guenter

[toc] | [prev] | [next] | [standalone]


#1598041

FromShuah Khan <shuahkh@osg.samsung.com>
Date2017-03-10 20:20 +0100
Message-ID<tjyeZ-8mN-5@gated-at.bofh.it>
In reply to#1597151
On 03/10/2017 02:07 AM, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 4.9.14 release.
> There are 153 patches in this series, all will be posted as a response
> to this one.  If anyone has any issues with these being applied, please
> let me know.
> 
> Responses should be made by Sun Mar 12 08:39:14 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.9.14-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.9.y
> and the diffstat can be found below.
> 
> thanks,
> 
> greg k-h
> 

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

thanks,
-- Shuah

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web