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


Groups > linux.kernel > #1375159 > unrolled thread

[PATCH 4.4 000/210] 4.4.7-stable review

Started byGreg Kroah-Hartman <gregkh@linuxfoundation.org>
First post2016-04-10 22:10 +0200
Last post2016-04-11 19:30 +0200
Articles 20 on this page of 55 — 4 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH 4.4 000/210] 4.4.7-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:10 +0200
    [PATCH 4.4 025/210] EDAC/sb_edac: Fix computation of channel address Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:10 +0200
    [PATCH 4.4 043/210] scsi: storvsc: fix SRB_STATUS_ABORTED handling Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:10 +0200
    [PATCH 4.4 006/210] mmc: sh_mmcif: Correct TX DMA channel allocation Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:10 +0200
    [PATCH 4.4 007/210] x86/microcode/intel: Make early loader look for builtin microcode too Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:10 +0200
    [PATCH 4.4 026/210] EDAC, amd64_edac: Shift wrapping issue in f1x_get_norm_dct_addr() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:10 +0200
    [PATCH 4.4 016/210] KVM: VMX: avoid guest hang on invalid invvpid instruction Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:10 +0200
    [PATCH 4.4 094/210] staging: comedi: ni_mio_common: fix the ni_write[blw]() functions Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:10 +0200
    [PATCH 4.4 009/210] x86/entry/compat: Keep TS_COMPAT set during signal delivery Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:10 +0200
    [PATCH 4.4 096/210] net: irda: Fix use-after-free in irtty_open() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:10 +0200
    [PATCH 4.4 092/210] staging: comedi: ni_tiocmd: change mistaken use of start_src for start_arg Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:10 +0200
    [PATCH 4.4 085/210] tpm_crb: tpm2_shutdown() must be called before tpm_chip_unregister() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:10 +0200
    [PATCH 4.4 024/210] sched/preempt, sh: kmap_coherent relies on disabled preemption Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:10 +0200
    [PATCH 4.4 042/210] sd: Fix discard granularity when LBPRZ=1 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:10 +0200
    [PATCH 4.4 077/210] crypto: ccp - memset request context to zero during import Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:10 +0200
    [PATCH 4.4 053/210] usb: hub: fix a typo in hub_port_init() leading to wrong logic Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:10 +0200
    [PATCH 4.4 008/210] x86/microcode: Untangle from BLK_DEV_INITRD Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:10 +0200
    [PATCH 4.4 051/210] dm: fix rq_end_stats() NULL pointer in dm_requeue_original_request() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:10 +0200
    [PATCH 4.4 048/210] dm: fix excessive dm-mq context switching Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:10 +0200
    [PATCH 4.4 076/210] crypto: ccp - Dont assume export/import areas are aligned Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:10 +0200
    [PATCH 4.4 029/210] s390/pci: enforce fmb page boundary rule Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:10 +0200
    [PATCH 4.4 091/210] HID: fix hid_ignore_special_drivers module parameter Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:10 +0200
    [PATCH 4.4 022/210] Thermal: Ignore invalid trip points Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:10 +0200
    [PATCH 4.4 090/210] HID: multitouch: force retrieving of Win8 signature blob Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:10 +0200
    [PATCH 4.4 047/210] dm snapshot: disallow the COW and origin devices from being identical Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:10 +0200
    [PATCH 4.4 044/210] be2iscsi: set the boot_kset pointer to NULL in case of failure Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:10 +0200
    [PATCH 4.4 018/210] perf/core: Fix perf_sched_count derailment Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:20 +0200
    [PATCH 4.4 001/210] s390/cpumf: Fix lpp detection Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:20 +0200
    [PATCH 4.4 011/210] x86/PCI: Mark Broadwell-EP Home Agent & PCU as having non-compliant BARs Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:20 +0200
    [PATCH 4.4 019/210] perf tools: Dont stop PMU parsing on alias parse error Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:20 +0200
    [PATCH 4.4 014/210] KVM: fix spin_lock_init order on x86 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:20 +0200
    [PATCH 4.4 017/210] KVM: VMX: fix nested vpid for old KVM guests Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:20 +0200
    [PATCH 4.4 021/210] perf tools: Fix python extension build Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:20 +0200
    [PATCH 4.4 012/210] KVM: x86: fix missed hardware breakpoints Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:20 +0200
    [PATCH 4.4 004/210] ASoC: samsung: pass DMA channels as pointers Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:20 +0200
    [PATCH 4.4 010/210] perf/x86/intel: Add definition for PT PMI bit Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:20 +0200
    [PATCH 4.4 015/210] KVM: VMX: avoid guest hang on invalid invept instruction Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:20 +0200
    [PATCH 4.4 005/210] mmc: sh_mmcif: rework dma channel handling Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:20 +0200
    [PATCH 4.4 020/210] perf tools: Fix checking asprintf return value Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:20 +0200
    [PATCH 4.4 002/210] regulator: core: avoid unused variable warning Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:20 +0200
    [PATCH 4.4 028/210] s390/cpumf: add missing lpp magic initialization Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:40 +0200
    [PATCH 4.4 182/210] clk: rockchip: add hclk_cpubus to the list of rk3188 critical clocks Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:40 +0200
    [PATCH 4.4 170/210] kbuild/mkspec: fix grub2 installkernel issue Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:40 +0200
    [PATCH 4.4 069/210] ALSA: usb-audio: Minor code cleanup in create_fixed_stream_quirk() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:40 +0200
    [PATCH 4.4 073/210] Bluetooth: btusb: Add a new AR3012 ID 13d3:3472 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:40 +0200
    [PATCH 4.4 188/210] iser-target: Rework connection termination Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:40 +0200
    [PATCH 4.4 178/210] clk: rockchip: rk3368: fix cpuclk mux bit of big cpu-cluster Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:40 +0200
    [PATCH 4.4 037/210] x86/mm: TLB_REMOTE_SEND_IPI should count pages Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:50 +0200
    Re: [PATCH 4.4 159/210] drm/radeon: disable runtime pm on PX laptops  without dGPU power control Michel Dänzer <michel@daenzer.net> - 2016-04-11 04:40 +0200
      Re: [PATCH 4.4 159/210] drm/radeon: disable runtime pm on PX laptops  without dGPU power control Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-12 16:20 +0200
        Re: [PATCH 4.4 159/210] drm/radeon: disable runtime pm on PX laptops  without dGPU power control Michel Dänzer <michel@daenzer.net> - 2016-04-13 06:00 +0200
        Re: [PATCH 4.4 159/210] drm/radeon: disable runtime pm on PX laptops  without dGPU power control Michel Dänzer <michel@daenzer.net> - 2016-04-14 04:50 +0200
          Re: [PATCH 4.4 159/210] drm/radeon: disable runtime pm on PX laptops  without dGPU power control Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-14 16:30 +0200
    Re: [PATCH 4.4 000/210] 4.4.7-stable review Guenter Roeck <linux@roeck-us.net> - 2016-04-11 05:20 +0200
    Re: [PATCH 4.4 000/210] 4.4.7-stable review shuahkh <shuahkh@osg.sisa.samsung.com> - 2016-04-11 19:30 +0200

Page 1 of 3  [1] 2 3  Next page →


#1375159 — [PATCH 4.4 000/210] 4.4.7-stable review

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-04-10 22:10 +0200
Subject[PATCH 4.4 000/210] 4.4.7-stable review
Message-ID<rmsKu-Wx-25@gated-at.bofh.it>
This is the start of the stable review cycle for the 4.4.7 release.
There are 210 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 Tue Apr 12 18:34:54 UTC 2016.
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.4.7-rc1.gz
and the diffstat can be found below.

thanks,

greg k-h

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

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

Andi Kleen <ak@linux.intel.com>
    perf/x86/intel: Fix PEBS data source interpretation on Nehalem/Westmere

Jiri Olsa <jolsa@redhat.com>
    perf/x86/intel: Use PAGE_SIZE for PEBS buffer size on Core2

Kan Liang <kan.liang@intel.com>
    perf/x86/intel: Fix PEBS warning by only restoring active PMU in pmi

Stephane Eranian <eranian@google.com>
    perf/x86/pebs: Add workaround for broken OVFL status on HSW+

Thomas Gleixner <tglx@linutronix.de>
    sched/cputime: Fix steal time accounting vs. CPU hotplug

Hannes Reinecke <hare@suse.de>
    scsi_common: do not clobber fixed sense information

Lukas Wunner <lukas@wunner.de>
    PM / sleep: Clear pm_suspend_global_flags upon hibernate

Len Brown <len.brown@intel.com>
    intel_idle: prevent SKL-H boot failure when C8+C9+C10 enabled

Aaro Koskinen <aaro.koskinen@iki.fi>
    mtd: onenand: fix deadlock in onenand_block_markbad

Vlastimil Babka <vbabka@suse.cz>
    mm/page_alloc: prevent merging between isolated and other pageblocks

Joseph Qi <joseph.qi@huawei.com>
    ocfs2/dlm: fix BUG in dlm_move_lockres_to_recovery_list

Joseph Qi <joseph.qi@huawei.com>
    ocfs2/dlm: fix race between convert and recovery

Vladis Dronov <vdronov@redhat.com>
    Input: ati_remote2 - fix crashes on detecting device with invalid descriptor

Oliver Neukum <oneukum@suse.com>
    Input: ims-pcu - sanity check against missing interfaces

Benjamin Tissoires <benjamin.tissoires@redhat.com>
    Input: synaptics - handle spurious release of trackstick buttons, again

Tejun Heo <tj@kernel.org>
    writeback, cgroup: fix use of the wrong bdi_writeback which mismatches the inode

Tejun Heo <tj@kernel.org>
    writeback, cgroup: fix premature wb_put() in locked_inode_to_wb_and_lock_list()

Lukas Wunner <lukas@wunner.de>
    ACPI / PM: Runtime resume devices when waking from hibernate

Ludovic Desroches <ludovic.desroches@atmel.com>
    ARM: dts: at91: sama5d4 Xplained: don't disable hsmci regulator

Ludovic Desroches <ludovic.desroches@atmel.com>
    ARM: dts: at91: sama5d3 Xplained: don't disable hsmci regulator

J. Bruce Fields <bfields@redhat.com>
    nfsd: fix deadlock secinfo+readdir compound

J. Bruce Fields <bfields@redhat.com>
    nfsd4: fix bad bounds checking

Jenny Derzhavetz <jennyf@mellanox.com>
    iser-target: Rework connection termination

Jenny Derzhavetz <jennyf@mellanox.com>
    iser-target: Separate flows for np listeners and connections cma events

Jenny Derzhavetz <jennyf@mellanox.com>
    iser-target: Add new state ISER_CONN_BOUND to isert_conn

Jenny Derzhavetz <jennyf@mellanox.com>
    iser-target: Fix identification of login rx descriptor type

Himanshu Madhani <himanshu.madhani@qlogic.com>
    target: Fix target_release_cmd_kref shutdown comp leak

Eric Anholt <eric@anholt.net>
    clk: bcm2835: Fix setting of PLL divider clock rates

Alexander Kochetkov <al.kochet@gmail.com>
    clk: rockchip: add hclk_cpubus to the list of rk3188 critical clocks

Heiko Stuebner <heiko@sntech.de>
    clk: rockchip: rk3368: fix hdmi_cec gate-register

Heiko Stuebner <heiko@sntech.de>
    clk: rockchip: rk3368: fix parents of video encoder/decoder

Heiko Stuebner <heiko@sntech.de>
    clk: rockchip: rk3368: fix cpuclk core dividers

Heiko Stuebner <heiko@sntech.de>
    clk: rockchip: rk3368: fix cpuclk mux bit of big cpu-cluster

Adrian Hunter <adrian.hunter@intel.com>
    mmc: sdhci: Fix override of timeout clk wrt max_busy_timeout

Russell King <rmk+kernel@arm.linux.org.uk>
    mmc: sdhci: fix data timeout (part 2)

Russell King <rmk+kernel@arm.linux.org.uk>
    mmc: sdhci: fix data timeout (part 1)

Magnus Damm <damm+renesas@opensource.se>
    mmc: mmc_spi: Add Card Detect comments and fix CD GPIO case

Shawn Lin <shawn.lin@rock-chips.com>
    mmc: block: fix ABI regression of mmc_blk_ioctl

John Dahlstrom <jodarom@SDF.ORG>
    ideapad-laptop: Add ideapad Y700 (15) to the no_hw_rfkill DMI list

Guenter Roeck <linux@roeck-us.net>
    MAINTAINERS: Update mailing list and web page for hwmon subsystem

Jiri Kosina <jkosina@suse.cz>
    kbuild/mkspec: fix grub2 installkernel issue

Jan Beulich <JBeulich@suse.com>
    scripts/kconfig: allow building with make 3.80 again

Julia Lawall <Julia.Lawall@lip6.fr>
    scripts/coccinelle: modernize &

Peter Zijlstra <peterz@infradead.org>
    bitops: Do not default to __clear_bit() for __clear_bit_unlock()

Steven Rostedt (Red Hat) <rostedt@goodmis.org>
    tracing: Fix trace_printk() to print when not using bprintk()

Steven Rostedt (Red Hat) <rostedt@goodmis.org>
    tracing: Fix crash from reading trace_pipe with sendfile

Steven Rostedt (Red Hat) <rostedt@goodmis.org>
    tracing: Have preempt(irqs)off trace preempt disabled functions

Alex Estrin <alex.estrin@intel.com>
    IB/ipoib: fix for rare multicast join race condition

Ken Wang <Qingqing.Wang@amd.com>
    drm/amdgpu: include the right version of gmc header files for iceland

Alex Deucher <alexander.deucher@amd.com>
    drm/amdgpu: disable runtime pm on PX laptops without dGPU power control

Mario Kleiner <mario.kleiner.de@gmail.com>
    drm/radeon: Don't drop DP 2.7 Ghz link setup on some cards.

Alex Deucher <alexander.deucher@amd.com>
    drm/radeon: disable runtime pm on PX laptops without dGPU power control

Matti Gottlieb <matti.gottlieb@intel.com>
    iwlwifi: mvm: Fix paging memory leak

Gabriel Krisman Bertazi <krisman@linux.vnet.ibm.com>
    ipr: Fix regression when loading firmware

Insu Yun <wuninsu@gmail.com>
    ipr: Fix out-of-bounds null overwrite

Aurelien Jacquiot <a-jacquiot@ti.com>
    rapidio/rionet: fix deadlock on SMP

Jann Horn <jann@thejh.net>
    fs/coredump: prevent fsuid=0 dumps into user-controlled directories

Jan Kiszka <jan.kiszka@siemens.com>
    scripts/gdb: account for changes in module data structure

Seth Forshee <seth.forshee@canonical.com>
    fuse: Add reference counting for fuse_io_priv

Robert Doebbelin <robert@quobyte.com>
    fuse: do not use iocb after it may have been freed

Ming Lei <ming.lei@canonical.com>
    md: multipath: don't hardcopy bio in .make_request path

NeilBrown <neilb@suse.com>
    md/raid5: preserve STRIPE_PREREAD_ACTIVE in break_stripe_batch_list

Shaohua Li <shli@fb.com>
    raid10: include bio_end_io_list in nr_queued to prevent freeze_array hang

Shaohua Li <shli@fb.com>
    RAID5: revert e9e4c377e2f563 to fix a livelock

Shaohua Li <shli@fb.com>
    RAID5: check_reshape() shouldn't call mddev_suspend

Jes Sorensen <Jes.Sorensen@redhat.com>
    md/raid5: Compare apples to apples (or sectors to sectors)

Nate Dailey <nate.dailey@stratus.com>
    raid1: include bio_end_io_list in nr_queued to prevent freeze_array hang

Mateusz Guzik <mguzik@redhat.com>
    xfs: fix two memory leaks in xfs_attr_list.c error paths

Nikolay Borisov <kernel@kyup.com>
    quota: Fix possible GPF due to uninitialised pointers

Vineet Gupta <vgupta@synopsys.com>
    ARC: bitops: Remove non relevant comments

Lada Trimasova <ltrimas@synopsys.com>
    ARC: [BE] readl()/writel() to work in Big Endian CPU configuration

Max Filippov <jcmvbkbc@gmail.com>
    xtensa: clear all DBREAKC registers on start

Max Filippov <jcmvbkbc@gmail.com>
    xtensa: fix preemption in {clear,copy}_user_highpage

Max Filippov <jcmvbkbc@gmail.com>
    xtensa: ISS: don't hang if stdin EOF is reached

Rabin Vincent <rabin@rab.in>
    splice: handle zero nr_pages in splice_to_pipe()

Dmitry V. Levin <ldv@altlinux.org>
    vfs: show_vfsstat: do not ignore errors from show_devname method

Vinayak Menon <vinmenon@codeaurora.org>
    of: alloc anywhere from memblock if range not specified

Dmitri Epshtein <dima@marvell.com>
    net: mvneta: enable change MAC address when interface is up

Tejun Heo <tj@kernel.org>
    cgroup: ignore css_sets associated with dead cgroups during migration

Johan Hedberg <johan.hedberg@intel.com>
    Bluetooth: Fix potential buffer overflow with Add Advertising

Dmitry Tunin <hanipouspilot@gmail.com>
    Bluetooth: Add new AR3012 ID 0489:e095

Michael S. Tsirkin <mst@redhat.com>
    watchdog: rc32434_wdt: fix ioctl error handling

Joshua Hunt <johunt@akamai.com>
    watchdog: don't run proc_watchdog_update if new value is same as old

Luis R. Rodriguez <mcgrof@kernel.org>
    ia64: define ioremap_uc()

Johannes Weiner <hannes@cmpxchg.org>
    mm: memcontrol: reclaim and OOM kill when shrinking memory.max below usage

Johannes Weiner <hannes@cmpxchg.org>
    mm: memcontrol: reclaim when shrinking memory.high below usage

Eric Wheeler <git@linux.ewheeler.net>
    bcache: fix cache_set_flush() NULL pointer dereference on OOM

Eric Wheeler <git@linux.ewheeler.net>
    bcache: fix race of writeback thread starting before complete initialization

Eric Wheeler <git@linux.ewheeler.net>
    bcache: cleaned up error handling around register_cache()

Bart Van Assche <bart.vanassche@sandisk.com>
    IB/srpt: Simplify srpt_handle_tsk_mgmt()

Bart Van Assche <bart.vanassche@sandisk.com>
    brd: Fix discard request processing

OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
    jbd2: fix FS corruption possibility in jbd2_journal_destroy() on umount path

Kamal Mostafa <kamal@canonical.com>
    tools/hv: Use include/uapi with __EXPORTED_HEADERS__

Takashi Iwai <tiwai@suse.de>
    ALSA: hda - Fix unconditional GPIO toggle via automute

Hui Wang <hui.wang@canonical.com>
    ALSA: hda - fix the mic mute button and led problem for a Lenovo AIO

Takashi Iwai <tiwai@suse.de>
    ALSA: hda - Don't handle ELD notify from invalid port

Vittorio Gambaletta (VittGam) <linuxbugs@vittgam.net>
    ALSA: intel8x0: Add clock quirk entry for AD1981B on IBM ThinkPad X41.

Takashi Iwai <tiwai@suse.de>
    ALSA: pcm: Avoid "BUG:" string for warnings again

Takashi Iwai <tiwai@suse.de>
    ALSA: hda - Apply reboot D3 fix for CX20724 codec, too

Asai Thambi SP <asamymuthupa@micron.com>
    mtip32xx: Cleanup queued requests after surprise removal

Asai Thambi SP <asamymuthupa@micron.com>
    mtip32xx: Implement timeout handler

Asai Thambi SP <asamymuthupa@micron.com>
    mtip32xx: Handle FTL rebuild failure state during device initialization

Asai Thambi SP <asamymuthupa@micron.com>
    mtip32xx: Handle safe removal during IO

Asai Thambi SP <asamymuthupa@micron.com>
    mtip32xx: Fix for rmmod crash when drive is in FTL rebuild

Asai Thambi SP <asamymuthupa@micron.com>
    mtip32xx: Print exact time when an internal command is interrupted

Asai Thambi SP <asamymuthupa@micron.com>
    mtip32xx: Remove unwanted code from taskfile error handler

Asai Thambi SP <asamymuthupa@micron.com>
    mtip32xx: Fix broken service thread handling

Asai Thambi SP <asamymuthupa@micron.com>
    mtip32xx: Avoid issuing standby immediate cmd during FTL rebuild

Tiffany Lin <tiffany.lin@mediatek.com>
    media: v4l2-compat-ioctl32: fix missing length copy in put_v4l2_buffer32

Philipp Zabel <p.zabel@pengutronix.de>
    coda: fix first encoded frame payload

Hans de Goede <hdegoede@redhat.com>
    bttv: Width must be a multiple of 16 when capturing planar formats

Hans Verkuil <hverkuil@xs4all.nl>
    adv7511: TX_EDID_PRESENT is still 1 after a disconnect

Hans de Goede <hdegoede@redhat.com>
    saa7134: Fix bytesperline not being set correctly for planar formats

Sebastian Frias <sf84@laposte.net>
    8250: use callbacks to access UART_DLL/UART_DLM

Peter Hurley <peter@hurleysoftware.com>
    net: irda: Fix use-after-free in irtty_open()

Peter Hurley <peter@hurleysoftware.com>
    tty: Fix GPF in flush_to_ldisc(), part 2

H Hartley Sweeten <hsweeten@visionengravers.com>
    staging: comedi: ni_mio_common: fix the ni_write[blw]() functions

Vladimir Zapolskiy <vz@mleia.com>
    staging: android: ion_test: fix check of platform_device_register_simple() error code

Spencer E. Olson <olsonse@umich.edu>
    staging: comedi: ni_tiocmd: change mistaken use of start_src for start_arg

Benjamin Tissoires <benjamin.tissoires@redhat.com>
    HID: fix hid_ignore_special_drivers module parameter

Benjamin Tissoires <benjamin.tissoires@redhat.com>
    HID: multitouch: force retrieving of Win8 signature blob

Dmitry Torokhov <dtor@chromium.org>
    HID: i2c-hid: fix OOB write in i2c_hid_set_or_send_report()

Grazvydas Ignotas <notasas@gmail.com>
    HID: logitech: fix Dual Action gamepad support

Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
    tpm: fix the cleanup of struct tpm_chip

Harald Hoyer <harald@redhat.com>
    tpm_eventlog.c: fix binary_bios_measurements

Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
    tpm_crb: tpm2_shutdown() must be called before tpm_chip_unregister()

Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
    tpm: fix the rollback in tpm_chip_register()

Alexander Usyskin <alexander.usyskin@intel.com>
    mei: bus: check if the device is enabled before data transfer

David Howells <dhowells@redhat.com>
    X.509: Fix leap year handling again

Boris BREZILLON <boris.brezillon@free-electrons.com>
    crypto: marvell/cesa - forward devm_ioremap_resource() error code

Vladimir Zapolskiy <vz@mleia.com>
    crypto: ux500 - fix checks of error code returned by devm_ioremap_resource()

Vladimir Zapolskiy <vz@mleia.com>
    crypto: atmel - fix checks of error code returned by devm_ioremap_resource()

Dan Carpenter <dan.carpenter@oracle.com>
    crypto: keywrap - memzero the correct memory

Tom Lendacky <thomas.lendacky@amd.com>
    crypto: ccp - memset request context to zero during import

Tom Lendacky <thomas.lendacky@amd.com>
    crypto: ccp - Don't assume export/import areas are aligned

Tom Lendacky <thomas.lendacky@amd.com>
    crypto: ccp - Limit the amount of information exported

Tom Lendacky <thomas.lendacky@amd.com>
    crypto: ccp - Add hash state import and export support

Dmitry Tunin <hanipouspilot@gmail.com>
    Bluetooth: btusb: Add a new AR3012 ID 13d3:3472

Dmitry Tunin <hanipouspilot@gmail.com>
    Bluetooth: btusb: Add a new AR3012 ID 04ca:3014

Dmitry Tunin <hanipouspilot@gmail.com>
    Bluetooth: btusb: Add new AR3012 ID 13d3:3395

Vladis Dronov <vdronov@redhat.com>
    ALSA: usb-audio: Fix double-free in error paths after snd_usb_add_audio_stream() call

Takashi Iwai <tiwai@suse.de>
    ALSA: usb-audio: Minor code cleanup in create_fixed_stream_quirk()

Victor Clément <victor.clement@openmailbox.org>
    ALSA: usb-audio: add Microsoft HD-5001 to quirks

Takashi Iwai <tiwai@suse.de>
    ALSA: usb-audio: Add sanity checks for endpoint accesses

Takashi Iwai <tiwai@suse.de>
    ALSA: usb-audio: Fix NULL dereference in create_fixed_stream_quirk()

Josh Boyer <jwboyer@fedoraproject.org>
    Input: powermate - fix oops with malicious USB descriptors

Hans de Goede <hdegoede@redhat.com>
    pwc: Add USB id for Philips Spc880nc webcam

Bjørn Mork <bjorn@mork.no>
    USB: option: add "D-Link DWM-221 B1" device id

Josh Boyer <jwboyer@fedoraproject.org>
    USB: serial: ftdi_sio: Add support for ICP DAS I-756xU devices

Martyn Welch <martyn.welch@collabora.co.uk>
    USB: serial: cp210x: Adding GE Healthcare Device ID

Oliver Neukum <oneukum@suse.com>
    USB: cypress_m8: add endpoint sanity check

Oliver Neukum <oneukum@suse.com>
    USB: digi_acceleport: do sanity checking for the number of ports

Oliver Neukum <oneukum@suse.com>
    USB: mct_u232: add sanity checking in probe

Oliver Neukum <oneukum@suse.com>
    USB: usb_driver_claim_interface: add sanity checking

Josh Boyer <jwboyer@fedoraproject.org>
    USB: iowarrior: fix oops with malicious USB descriptors

Oliver Neukum <oneukum@suse.com>
    USB: cdc-acm: more sanity checking

Hans de Goede <hdegoede@redhat.com>
    USB: uas: Reduce can_queue to MAX_CMNDS

Oliver Neukum <oneukum@suse.com>
    usb: hub: fix a typo in hub_port_init() leading to wrong logic

Oliver Neukum <oneukum@suse.com>
    usb: retry reset if a device times out

Bryn M. Reeves <bmr@redhat.com>
    dm: fix rq_end_stats() NULL pointer in dm_requeue_original_request()

Joe Thornber <ejt@redhat.com>
    dm cache: make sure every metadata function checks fail_io

Joe Thornber <ejt@redhat.com>
    dm thin metadata: don't issue prefetches if a transaction abort has failed

Mike Snitzer <snitzer@redhat.com>
    dm: fix excessive dm-mq context switching

DingXiang <dingxiang@huawei.com>
    dm snapshot: disallow the COW and origin devices from being identical

Jerry Hoemann <jerry.hoemann@hpe.com>
    libnvdimm: Fix security issue with DSM IOCTL.

Alan <gnomes@lxorguk.ukuu.org.uk>
    aic7xxx: Fix queue depth handling

Maurizio Lombardi <mlombard@redhat.com>
    be2iscsi: set the boot_kset pointer to NULL in case of failure

Vitaly Kuznetsov <vkuznets@redhat.com>
    scsi: storvsc: fix SRB_STATUS_ABORTED handling

Martin K. Petersen <martin.petersen@oracle.com>
    sd: Fix discard granularity when LBPRZ=1

Raghava Aditya Renukunta <raghavaaditya.renukunta@pmcs.com>
    aacraid: Set correct msix count for EEH recovery

Raghava Aditya Renukunta <raghavaaditya.renukunta@pmcs.com>
    aacraid: Fix memory leak in aac_fib_map_free

Raghava Aditya Renukunta <raghavaaditya.renukunta@pmcs.com>
    aacraid: Fix RRQ overload

Douglas Gilbert <dgilbert@interlog.com>
    sg: fix dxferp in from_to case

Nadav Amit <namit@vmware.com>
    x86/mm: TLB_REMOTE_SEND_IPI should count pages

Andy Lutomirski <luto@kernel.org>
    x86/iopl: Fix iopl capability check on Xen PV

Andy Lutomirski <luto@kernel.org>
    x86/iopl/64: Properly context-switch IOPL on Xen PV

Dave Jones <davej@codemonkey.org.uk>
    x86/apic: Fix suspicious RCU usage in smp_trace_call_function_interrupt()

Thomas Gleixner <tglx@linutronix.de>
    x86/irq: Cure live lock in fixup_irqs()

Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    PCI: ACPI: IA64: fix IO port generic range check

Bjorn Helgaas <bhelgaas@google.com>
    PCI: Disable IO/MEM decoding for devices with non-compliant BARs

Phil Elwell <phil@raspberrypi.org>
    pinctrl-bcm2835: Fix cut-and-paste error in "pull" parsing

Sebastian Ott <sebott@linux.vnet.ibm.com>
    s390/pci: enforce fmb page boundary rule

Heiko Carstens <heiko.carstens@de.ibm.com>
    s390/cpumf: add missing lpp magic initialization

Martin Schwidefsky <schwidefsky@de.ibm.com>
    s390: fix floating pointer register corruption (again)

Dan Carpenter <dan.carpenter@oracle.com>
    EDAC, amd64_edac: Shift wrapping issue in f1x_get_norm_dct_addr()

Tony Luck <tony.luck@intel.com>
    EDAC/sb_edac: Fix computation of channel address

David Hildenbrand <dahi@linux.vnet.ibm.com>
    sched/preempt, sh: kmap_coherent relies on disabled preemption

Chris Friesen <cbf123@mail.usask.ca>
    sched/cputime: Fix steal_account_process_tick() to always return jiffies

Zhang Rui <rui.zhang@intel.com>
    Thermal: Ignore invalid trip points

Jiri Olsa <jolsa@redhat.com>
    perf tools: Fix python extension build

Wang Nan <wangnan0@huawei.com>
    perf tools: Fix checking asprintf return value

Andi Kleen <ak@linux.intel.com>
    perf tools: Dont stop PMU parsing on alias parse error

Alexander Shishkin <alexander.shishkin@linux.intel.com>
    perf/core: Fix perf_sched_count derailment

Paolo Bonzini <pbonzini@redhat.com>
    KVM: VMX: fix nested vpid for old KVM guests

Paolo Bonzini <pbonzini@redhat.com>
    KVM: VMX: avoid guest hang on invalid invvpid instruction

Paolo Bonzini <pbonzini@redhat.com>
    KVM: VMX: avoid guest hang on invalid invept instruction

Paolo Bonzini <pbonzini@redhat.com>
    KVM: fix spin_lock_init order on x86

Radim Krčmář <rkrcmar@redhat.com>
    KVM: i8254: change PIT discard tick policy

Paolo Bonzini <pbonzini@redhat.com>
    KVM: x86: fix missed hardware breakpoints

Bjorn Helgaas <bhelgaas@google.com>
    x86/PCI: Mark Broadwell-EP Home Agent & PCU as having non-compliant BARs

Stephane Eranian <eranian@google.com>
    perf/x86/intel: Add definition for PT PMI bit

Andy Lutomirski <luto@kernel.org>
    x86/entry/compat: Keep TS_COMPAT set during signal delivery

Borislav Petkov <bp@suse.de>
    x86/microcode: Untangle from BLK_DEV_INITRD

Borislav Petkov <bp@suse.de>
    x86/microcode/intel: Make early loader look for builtin microcode too

Chris Paterson <chris.paterson2@renesas.com>
    mmc: sh_mmcif: Correct TX DMA channel allocation

Arnd Bergmann <arnd@arndb.de>
    mmc: sh_mmcif: rework dma channel handling

Arnd Bergmann <arnd@arndb.de>
    ASoC: samsung: pass DMA channels as pointers

Thierry Reding <treding@nvidia.com>
    regulator: core: Fix nested locking of supplies

Arnd Bergmann <arnd@arndb.de>
    regulator: core: avoid unused variable warning

Christian Borntraeger <borntraeger@de.ibm.com>
    s390/cpumf: Fix lpp detection


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

Diffstat:

 MAINTAINERS                                       |  96 ++++----
 Makefile                                          |   4 +-
 arch/arc/include/asm/bitops.h                     |  15 --
 arch/arc/include/asm/io.h                         |  18 +-
 arch/arm/boot/dts/at91-sama5d3_xplained.dts       |   1 +
 arch/arm/boot/dts/at91-sama5d4_xplained.dts       |   1 +
 arch/arm/mach-s3c64xx/dev-audio.c                 |  41 ++--
 arch/arm/mach-s3c64xx/include/mach/dma.h          |  52 ++---
 arch/arm/plat-samsung/devs.c                      |  11 +-
 arch/ia64/include/asm/io.h                        |   1 +
 arch/s390/include/asm/pci.h                       |   2 +-
 arch/s390/kernel/entry.S                          | 106 +--------
 arch/s390/kernel/head64.S                         |   2 +-
 arch/s390/kernel/setup.c                          |   1 +
 arch/s390/pci/pci.c                               |   5 +-
 arch/sh/mm/kmap.c                                 |   2 +
 arch/um/drivers/mconsole_kern.c                   |   2 +-
 arch/x86/Kconfig                                  |  27 +--
 arch/x86/entry/common.c                           |  23 +-
 arch/x86/include/asm/apic.h                       |   2 +-
 arch/x86/include/asm/hw_irq.h                     |   1 +
 arch/x86/include/asm/microcode.h                  |  26 +++
 arch/x86/include/asm/perf_event.h                 |   1 +
 arch/x86/include/asm/xen/hypervisor.h             |   2 +
 arch/x86/kernel/apic/vector.c                     |  88 +++++--
 arch/x86/kernel/cpu/microcode/intel.c             |  38 +--
 arch/x86/kernel/cpu/perf_event.c                  |  13 ++
 arch/x86/kernel/cpu/perf_event.h                  |   3 +
 arch/x86/kernel/cpu/perf_event_intel.c            |  27 ++-
 arch/x86/kernel/cpu/perf_event_intel_ds.c         |  24 +-
 arch/x86/kernel/cpu/perf_event_knc.c              |   4 +-
 arch/x86/kernel/ioport.c                          |  12 +-
 arch/x86/kernel/process_64.c                      |  12 +
 arch/x86/kvm/i8254.c                              |  12 +-
 arch/x86/kvm/vmx.c                                |  16 +-
 arch/x86/kvm/x86.c                                |   1 +
 arch/x86/mm/tlb.c                                 |  12 +-
 arch/x86/pci/fixup.c                              |   7 +
 arch/x86/xen/enlighten.c                          |   2 +-
 arch/xtensa/kernel/head.S                         |   2 +-
 arch/xtensa/mm/cache.c                            |   8 +-
 arch/xtensa/platforms/iss/console.c               |  10 +-
 block/blk-core.c                                  |   2 +-
 crypto/asymmetric_keys/x509_cert_parser.c         |   8 +-
 crypto/keywrap.c                                  |   4 +-
 drivers/acpi/resource.c                           |  14 +-
 drivers/acpi/sleep.c                              |   1 +
 drivers/block/brd.c                               |   2 +-
 drivers/block/mtip32xx/mtip32xx.c                 | 267 +++++++++++++++++-----
 drivers/block/mtip32xx/mtip32xx.h                 |  11 +-
 drivers/bluetooth/ath3k.c                         |   8 +
 drivers/bluetooth/btusb.c                         |   4 +
 drivers/char/tpm/tpm-chip.c                       |  14 +-
 drivers/char/tpm/tpm_crb.c                        |   4 +-
 drivers/char/tpm/tpm_eventlog.c                   |  14 +-
 drivers/clk/bcm/clk-bcm2835.c                     |  12 +-
 drivers/clk/rockchip/clk-rk3188.c                 |   1 +
 drivers/clk/rockchip/clk-rk3368.c                 |  48 ++--
 drivers/crypto/atmel-aes.c                        |   4 +-
 drivers/crypto/atmel-sha.c                        |   4 +-
 drivers/crypto/atmel-tdes.c                       |   4 +-
 drivers/crypto/ccp/ccp-crypto-aes-cmac.c          |  36 +++
 drivers/crypto/ccp/ccp-crypto-sha.c               |  40 ++++
 drivers/crypto/ccp/ccp-crypto.h                   |  22 ++
 drivers/crypto/marvell/cesa.c                     |   2 +-
 drivers/crypto/ux500/cryp/cryp_core.c             |   4 +-
 drivers/crypto/ux500/hash/hash_core.c             |   4 +-
 drivers/edac/amd64_edac.c                         |   2 +-
 drivers/edac/sb_edac.c                            |  26 +--
 drivers/gpu/drm/amd/amdgpu/amdgpu_atpx_handler.c  |   8 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c        |   8 +-
 drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c            |   4 +-
 drivers/gpu/drm/radeon/atombios_encoders.c        |   6 +-
 drivers/gpu/drm/radeon/radeon_atpx_handler.c      |   8 +-
 drivers/gpu/drm/radeon/radeon_device.c            |   8 +-
 drivers/hid/hid-core.c                            |   8 +-
 drivers/hid/hid-multitouch.c                      |   5 +
 drivers/hid/i2c-hid/i2c-hid.c                     |  16 +-
 drivers/idle/intel_idle.c                         | 108 +++++++--
 drivers/infiniband/ulp/ipoib/ipoib_multicast.c    |  24 +-
 drivers/infiniband/ulp/isert/ib_isert.c           | 122 +++++-----
 drivers/infiniband/ulp/isert/ib_isert.h           |   2 +-
 drivers/infiniband/ulp/srpt/ib_srpt.c             |  59 +----
 drivers/input/misc/ati_remote2.c                  |  36 ++-
 drivers/input/misc/ims-pcu.c                      |   4 +
 drivers/input/misc/powermate.c                    |   3 +
 drivers/input/mouse/synaptics.c                   |   5 +-
 drivers/md/bcache/super.c                         |  46 ++--
 drivers/md/dm-cache-metadata.c                    |  98 ++++----
 drivers/md/dm-cache-metadata.h                    |   4 +-
 drivers/md/dm-cache-target.c                      |  12 +-
 drivers/md/dm-snap.c                              |   9 +
 drivers/md/dm-table.c                             |  36 ++-
 drivers/md/dm-thin-metadata.c                     |   5 +-
 drivers/md/dm.c                                   |  15 +-
 drivers/md/multipath.c                            |   4 +-
 drivers/md/raid1.c                                |   7 +-
 drivers/md/raid10.c                               |   7 +-
 drivers/md/raid5.c                                |  51 +++--
 drivers/md/raid5.h                                |   4 +-
 drivers/media/i2c/adv7511.c                       |  21 +-
 drivers/media/pci/bt8xx/bttv-driver.c             |  26 ++-
 drivers/media/pci/saa7134/saa7134-video.c         |  18 +-
 drivers/media/platform/coda/coda-bit.c            |   2 +-
 drivers/media/usb/pwc/pwc-if.c                    |   6 +
 drivers/media/v4l2-core/v4l2-compat-ioctl32.c     |  21 +-
 drivers/misc/mei/bus.c                            |   9 +
 drivers/mmc/card/block.c                          |  24 +-
 drivers/mmc/host/mmc_spi.c                        |   6 +
 drivers/mmc/host/sdhci.c                          |  23 +-
 drivers/mmc/host/sh_mmcif.c                       |  84 +++----
 drivers/mtd/onenand/onenand_base.c                |   3 +-
 drivers/net/ethernet/marvell/mvneta.c             |   2 +-
 drivers/net/irda/irtty-sir.c                      |  10 -
 drivers/net/rionet.c                              |   4 +-
 drivers/net/wireless/iwlwifi/mvm/fw.c             |   4 +-
 drivers/net/wireless/iwlwifi/mvm/mvm.h            |   3 +
 drivers/net/wireless/iwlwifi/mvm/ops.c            |   2 +
 drivers/nvdimm/bus.c                              |   8 +-
 drivers/of/of_reserved_mem.c                      |   4 +-
 drivers/pci/probe.c                               |  14 ++
 drivers/pinctrl/bcm/pinctrl-bcm2835.c             |   2 +-
 drivers/platform/x86/ideapad-laptop.c             |  14 ++
 drivers/regulator/core.c                          |  22 +-
 drivers/scsi/aacraid/aacraid.h                    |   2 +
 drivers/scsi/aacraid/commsup.c                    |  37 ++-
 drivers/scsi/aacraid/linit.c                      |  12 +-
 drivers/scsi/aacraid/src.c                        |  30 +--
 drivers/scsi/aic7xxx/aic7xxx_osm.c                |   1 +
 drivers/scsi/be2iscsi/be_main.c                   |   1 +
 drivers/scsi/ipr.c                                |  10 +-
 drivers/scsi/scsi_common.c                        |  12 +-
 drivers/scsi/sd.c                                 |   2 +-
 drivers/scsi/sg.c                                 |   3 +-
 drivers/scsi/storvsc_drv.c                        |   5 +-
 drivers/staging/android/ion/ion_test.c            |   4 +-
 drivers/staging/comedi/drivers/ni_mio_common.c    |  12 +-
 drivers/staging/comedi/drivers/ni_tiocmd.c        |   2 +-
 drivers/target/target_core_transport.c            |   2 -
 drivers/thermal/thermal_core.c                    |  13 +-
 drivers/tty/serial/8250/8250_port.c               |  18 +-
 drivers/usb/class/cdc-acm.c                       |   3 +
 drivers/usb/core/driver.c                         |   6 +-
 drivers/usb/core/hub.c                            |  16 +-
 drivers/usb/misc/iowarrior.c                      |   6 +
 drivers/usb/serial/cp210x.c                       |   1 +
 drivers/usb/serial/cypress_m8.c                   |  11 +-
 drivers/usb/serial/digi_acceleport.c              |  19 ++
 drivers/usb/serial/ftdi_sio.c                     |   4 +
 drivers/usb/serial/ftdi_sio_ids.h                 |   8 +
 drivers/usb/serial/mct_u232.c                     |   9 +-
 drivers/usb/serial/option.c                       |   2 +
 drivers/usb/storage/uas.c                         |   2 +-
 drivers/watchdog/rc32434_wdt.c                    |   2 +-
 fs/coredump.c                                     |  30 ++-
 fs/fhandle.c                                      |   2 +-
 fs/fs-writeback.c                                 |  37 +--
 fs/fuse/cuse.c                                    |   4 +-
 fs/fuse/file.c                                    |  33 ++-
 fs/fuse/fuse_i.h                                  |   9 +
 fs/jbd2/journal.c                                 |  17 +-
 fs/nfsd/nfs4proc.c                                |   1 +
 fs/nfsd/nfs4xdr.c                                 |  13 +-
 fs/ocfs2/dlm/dlmconvert.c                         |  24 +-
 fs/ocfs2/dlm/dlmrecovery.c                        |   1 -
 fs/open.c                                         |   6 +-
 fs/proc_namespace.c                               |   2 +
 fs/quota/dquot.c                                  |   3 +-
 fs/splice.c                                       |   3 +
 fs/xfs/xfs_attr_list.c                            |  19 +-
 include/asm-generic/bitops/lock.h                 |  14 +-
 include/linux/cgroup-defs.h                       |   3 +
 include/linux/device-mapper.h                     |   2 +
 include/linux/fs.h                                |   2 +-
 include/linux/kernel.h                            |   6 +-
 include/linux/pci.h                               |   1 +
 include/linux/platform_data/asoc-s3c.h            |   4 +
 include/linux/thermal.h                           |   2 +
 include/linux/tty.h                               |   2 +-
 kernel/cgroup.c                                   |  20 +-
 kernel/events/core.c                              |   7 +-
 kernel/power/hibernate.c                          |   1 +
 kernel/sched/core.c                               |   1 +
 kernel/sched/cputime.c                            |  14 +-
 kernel/sched/sched.h                              |  13 ++
 kernel/sysctl_binary.c                            |   2 +-
 kernel/trace/trace.c                              |   5 +-
 kernel/trace/trace_irqsoff.c                      |   8 +-
 kernel/trace/trace_printk.c                       |   3 +
 kernel/watchdog.c                                 |   9 +-
 mm/memcontrol.c                                   |  44 +++-
 mm/page_alloc.c                                   |  46 ++--
 net/bluetooth/mgmt.c                              |   4 +
 scripts/coccinelle/iterators/use_after_iter.cocci |   2 +-
 scripts/gdb/linux/modules.py                      |   5 +-
 scripts/gdb/linux/symbols.py                      |   2 +-
 scripts/kconfig/Makefile                          |   4 +-
 scripts/package/mkspec                            |   8 +-
 sound/core/pcm_lib.c                              |   2 +-
 sound/pci/hda/patch_cirrus.c                      |   8 +-
 sound/pci/hda/patch_conexant.c                    |   7 +-
 sound/pci/hda/patch_hdmi.c                        |   4 +
 sound/pci/hda/patch_realtek.c                     |   1 +
 sound/pci/intel8x0.c                              |   1 +
 sound/soc/samsung/ac97.c                          |  26 +--
 sound/soc/samsung/dma.h                           |   2 +-
 sound/soc/samsung/dmaengine.c                     |   4 +-
 sound/soc/samsung/i2s.c                           |  26 +--
 sound/soc/samsung/pcm.c                           |  20 +-
 sound/soc/samsung/s3c2412-i2s.c                   |   4 +-
 sound/soc/samsung/s3c24xx-i2s.c                   |   4 +-
 sound/soc/samsung/spdif.c                         |  10 +-
 sound/usb/clock.c                                 |   2 +
 sound/usb/endpoint.c                              |   3 +
 sound/usb/mixer_quirks.c                          |   4 +
 sound/usb/pcm.c                                   |   2 +
 sound/usb/quirks.c                                |  27 ++-
 sound/usb/stream.c                                |   6 +-
 tools/hv/Makefile                                 |   2 +
 tools/perf/util/parse-events.c                    |   6 +-
 tools/perf/util/pmu.c                             |  15 +-
 tools/perf/util/setup.py                          |   4 +
 virt/kvm/kvm_main.c                               |  21 +-
 223 files changed, 2112 insertions(+), 1151 deletions(-)

[toc] | [next] | [standalone]


#1375160 — [PATCH 4.4 025/210] EDAC/sb_edac: Fix computation of channel address

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-04-10 22:10 +0200
Subject[PATCH 4.4 025/210] EDAC/sb_edac: Fix computation of channel address
Message-ID<rmtQe-22e-21@gated-at.bofh.it>
In reply to#1375159
4.4-stable review patch.  If anyone has any objections, please let me know.

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

From: Tony Luck <tony.luck@intel.com>

commit eb1af3b71f9d83e45f2fd2fd649356e98e1c582c upstream.

Large memory Haswell-EX systems with multiple DIMMs per channel were
sometimes reporting the wrong DIMM.

Found three problems:

 1) Debug printouts for socket and channel interleave were not interpreting
    the register fields correctly. The socket interleave field is a 2^X
    value (0=1, 1=2, 2=4, 3=8). The channel interleave is X+1 (0=1, 1=2,
    2=3. 3=4).

 2) Actual use of the socket interleave value didn't interpret as 2^X

 3) Conversion of address to channel address was complicated, and wrong.

Signed-off-by: Tony Luck <tony.luck@intel.com>
Acked-by: Aristeu Rozanski <arozansk@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-edac@vger.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/edac/sb_edac.c |   26 ++++++++++----------------
 1 file changed, 10 insertions(+), 16 deletions(-)

--- a/drivers/edac/sb_edac.c
+++ b/drivers/edac/sb_edac.c
@@ -1117,8 +1117,8 @@ static void get_memory_layout(const stru
 		edac_dbg(0, "TAD#%d: up to %u.%03u GB (0x%016Lx), socket interleave %d, memory interleave %d, TGT: %d, %d, %d, %d, reg=0x%08x\n",
 			 n_tads, gb, (mb*1000)/1024,
 			 ((u64)tmp_mb) << 20L,
-			 (u32)TAD_SOCK(reg),
-			 (u32)TAD_CH(reg),
+			 (u32)(1 << TAD_SOCK(reg)),
+			 (u32)TAD_CH(reg) + 1,
 			 (u32)TAD_TGT0(reg),
 			 (u32)TAD_TGT1(reg),
 			 (u32)TAD_TGT2(reg),
@@ -1396,7 +1396,7 @@ static int get_memory_error_data(struct
 	}
 
 	ch_way = TAD_CH(reg) + 1;
-	sck_way = TAD_SOCK(reg) + 1;
+	sck_way = 1 << TAD_SOCK(reg);
 
 	if (ch_way == 3)
 		idx = addr >> 6;
@@ -1453,7 +1453,7 @@ static int get_memory_error_data(struct
 		 n_tads,
 		 addr,
 		 limit,
-		 (u32)TAD_SOCK(reg),
+		 sck_way,
 		 ch_way,
 		 offset,
 		 idx,
@@ -1468,18 +1468,12 @@ static int get_memory_error_data(struct
 			offset, addr);
 		return -EINVAL;
 	}
-	addr -= offset;
-	/* Store the low bits [0:6] of the addr */
-	ch_addr = addr & 0x7f;
-	/* Remove socket wayness and remove 6 bits */
-	addr >>= 6;
-	addr = div_u64(addr, sck_xch);
-#if 0
-	/* Divide by channel way */
-	addr = addr / ch_way;
-#endif
-	/* Recover the last 6 bits */
-	ch_addr |= addr << 6;
+
+	ch_addr = addr - offset;
+	ch_addr >>= (6 + shiftup);
+	ch_addr /= ch_way * sck_way;
+	ch_addr <<= (6 + shiftup);
+	ch_addr |= addr & ((1 << (6 + shiftup)) - 1);
 
 	/*
 	 * Step 3) Decode rank

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


#1375161 — [PATCH 4.4 043/210] scsi: storvsc: fix SRB_STATUS_ABORTED handling

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-04-10 22:10 +0200
Subject[PATCH 4.4 043/210] scsi: storvsc: fix SRB_STATUS_ABORTED handling
Message-ID<rmtQf-22e-23@gated-at.bofh.it>
In reply to#1375159
4.4-stable review patch.  If anyone has any objections, please let me know.

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

From: Vitaly Kuznetsov <vkuznets@redhat.com>

commit ff06c5ffbcb4ffa542fb80c897be977956fafecc upstream.

Commit 3209f9d780d1 ("scsi: storvsc: Fix a bug in the handling of SRB
status flags") filtered SRB_STATUS_AUTOSENSE_VALID out effectively making
the (SRB_STATUS_ABORTED | SRB_STATUS_AUTOSENSE_VALID) case a dead code. The
logic from this branch (e.g. storvsc_device_scan() call) is still required,
fix the check.

Fixes: 3209f9d780d1 ("scsi: storvsc: Fix a bug in the handling of SRB status flags")
Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Acked-by: K. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/scsi/storvsc_drv.c |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

--- a/drivers/scsi/storvsc_drv.c
+++ b/drivers/scsi/storvsc_drv.c
@@ -889,8 +889,9 @@ static void storvsc_handle_error(struct
 		do_work = true;
 		process_err_fn = storvsc_remove_lun;
 		break;
-	case (SRB_STATUS_ABORTED | SRB_STATUS_AUTOSENSE_VALID):
-		if ((asc == 0x2a) && (ascq == 0x9)) {
+	case SRB_STATUS_ABORTED:
+		if (vm_srb->srb_status & SRB_STATUS_AUTOSENSE_VALID &&
+		    (asc == 0x2a) && (ascq == 0x9)) {
 			do_work = true;
 			process_err_fn = storvsc_device_scan;
 			/*

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


#1375162 — [PATCH 4.4 006/210] mmc: sh_mmcif: Correct TX DMA channel allocation

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-04-10 22:10 +0200
Subject[PATCH 4.4 006/210] mmc: sh_mmcif: Correct TX DMA channel allocation
Message-ID<rmtQe-22e-19@gated-at.bofh.it>
In reply to#1375159
4.4-stable review patch.  If anyone has any objections, please let me know.

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

From: Chris Paterson <chris.paterson2@renesas.com>

commit a32ef81c9889c9554a3c4b465c4ee7b2d26c6b10 upstream.

Commit 27cbd7e815a8 ("mmc: sh_mmcif: rework dma channel handling")
introduced a typo causing the TX DMA channel allocation to be overwritten
by the requested RX DMA channel.

Fixes: 27cbd7e815a8 ("mmc: sh_mmcif: rework dma channel handling")
Signed-off-by: Chris Paterson <chris.paterson2@renesas.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/mmc/host/sh_mmcif.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/mmc/host/sh_mmcif.c
+++ b/drivers/mmc/host/sh_mmcif.c
@@ -445,7 +445,7 @@ static void sh_mmcif_request_dma(struct
 							pdata->slave_id_rx);
 	} else {
 		host->chan_tx = dma_request_slave_channel(dev, "tx");
-		host->chan_tx = dma_request_slave_channel(dev, "rx");
+		host->chan_rx = dma_request_slave_channel(dev, "rx");
 	}
 	dev_dbg(dev, "%s: got channel TX %p RX %p\n", __func__, host->chan_tx,
 		host->chan_rx);

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


#1375163 — [PATCH 4.4 007/210] x86/microcode/intel: Make early loader look for builtin microcode too

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-04-10 22:10 +0200
Subject[PATCH 4.4 007/210] x86/microcode/intel: Make early loader look for builtin microcode too
Message-ID<rmtQf-22e-29@gated-at.bofh.it>
In reply to#1375159
4.4-stable review patch.  If anyone has any objections, please let me know.

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

From: Borislav Petkov <bp@suse.de>

commit 264285ac01673e70557c43ecee338ce97c4c0672 upstream.

Set the initrd @start depending on the presence of an initrd. Otherwise,
builtin microcode loading doesn't work as the start is wrong and we're
using it to compute offset to the microcode blobs.

Tested-by: Thomas Voegtle <tv@lio96.de>
Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/1454499225-21544-3-git-send-email-bp@alien8.de
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/x86/kernel/cpu/microcode/intel.c |   24 ++++++++++++++++--------
 1 file changed, 16 insertions(+), 8 deletions(-)

--- a/arch/x86/kernel/cpu/microcode/intel.c
+++ b/arch/x86/kernel/cpu/microcode/intel.c
@@ -555,10 +555,14 @@ scan_microcode(struct mc_saved_data *mc_
 	cd.data = NULL;
 	cd.size = 0;
 
-	cd = find_cpio_data(p, (void *)start, size, &offset);
-	if (!cd.data) {
+	/* try built-in microcode if no initrd */
+	if (!size) {
 		if (!load_builtin_intel_microcode(&cd))
 			return UCODE_ERROR;
+	} else {
+		cd = find_cpio_data(p, (void *)start, size, &offset);
+		if (!cd.data)
+			return UCODE_ERROR;
 	}
 
 	return get_matching_model_microcode(0, start, cd.data, cd.size,
@@ -732,16 +736,20 @@ void __init load_ucode_intel_bsp(void)
 	struct boot_params *p;
 
 	p	= (struct boot_params *)__pa_nodebug(&boot_params);
-	start	= p->hdr.ramdisk_image;
 	size	= p->hdr.ramdisk_size;
 
-	_load_ucode_intel_bsp(
-			(struct mc_saved_data *)__pa_nodebug(&mc_saved_data),
-			(unsigned long *)__pa_nodebug(&mc_saved_in_initrd),
-			start, size);
+	/*
+	 * Set start only if we have an initrd image. We cannot use initrd_start
+	 * because it is not set that early yet.
+	 */
+	start	= (size ? p->hdr.ramdisk_image : 0);
+
+	_load_ucode_intel_bsp((struct mc_saved_data *)__pa_nodebug(&mc_saved_data),
+			      (unsigned long *)__pa_nodebug(&mc_saved_in_initrd),
+			      start, size);
 #else
-	start	= boot_params.hdr.ramdisk_image + PAGE_OFFSET;
 	size	= boot_params.hdr.ramdisk_size;
+	start	= (size ? boot_params.hdr.ramdisk_image + PAGE_OFFSET : 0);
 
 	_load_ucode_intel_bsp(&mc_saved_data, mc_saved_in_initrd, start, size);
 #endif

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


#1375164 — [PATCH 4.4 026/210] EDAC, amd64_edac: Shift wrapping issue in f1x_get_norm_dct_addr()

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-04-10 22:10 +0200
Subject[PATCH 4.4 026/210] EDAC, amd64_edac: Shift wrapping issue in f1x_get_norm_dct_addr()
Message-ID<rmtQf-22e-31@gated-at.bofh.it>
In reply to#1375159
4.4-stable review patch.  If anyone has any objections, please let me know.

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

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

commit 6f3508f61c814ee852c199988a62bd954c50dfc1 upstream.

dct_sel_base_off is declared as a u64 but we're only using the lower 32
bits because of a shift wrapping bug. This can possibly truncate the
upper 16 bits of DctSelBaseOffset[47:26], causing us to misdecode the CS
row.

Fixes: c8e518d5673d ('amd64_edac: Sanitize f10_get_base_addr_offset')
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Cc: Aravind Gopalakrishnan <Aravind.Gopalakrishnan@amd.com>
Cc: linux-edac <linux-edac@vger.kernel.org>
Link: http://lkml.kernel.org/r/20160120095451.GB19898@mwanda
Signed-off-by: Borislav Petkov <bp@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

--- a/drivers/edac/amd64_edac.c
+++ b/drivers/edac/amd64_edac.c
@@ -1452,7 +1452,7 @@ static u64 f1x_get_norm_dct_addr(struct
 	u64 chan_off;
 	u64 dram_base		= get_dram_base(pvt, range);
 	u64 hole_off		= f10_dhar_offset(pvt);
-	u64 dct_sel_base_off	= (pvt->dct_sel_hi & 0xFFFFFC00) << 16;
+	u64 dct_sel_base_off	= (u64)(pvt->dct_sel_hi & 0xFFFFFC00) << 16;
 
 	if (hi_rng) {
 		/*

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


#1375165 — [PATCH 4.4 016/210] KVM: VMX: avoid guest hang on invalid invvpid instruction

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-04-10 22:10 +0200
Subject[PATCH 4.4 016/210] KVM: VMX: avoid guest hang on invalid invvpid instruction
Message-ID<rmtQf-22e-27@gated-at.bofh.it>
In reply to#1375159
4.4-stable review patch.  If anyone has any objections, please let me know.

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

From: Paolo Bonzini <pbonzini@redhat.com>

commit f6870ee9e53430f2a318ccf0dd5e66bb46194e43 upstream.

A guest executing an invalid invvpid instruction would hang
because the instruction pointer was not updated.

Reported-by: jmontleo@redhat.com
Tested-by: jmontleo@redhat.com
Fixes: 99b83ac893b84ed1a62ad6d1f2b6cc32026b9e85
Reviewed-by: David Matlack <dmatlack@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/x86/kvm/vmx.c |    1 +
 1 file changed, 1 insertion(+)

--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -7399,6 +7399,7 @@ static int handle_invvpid(struct kvm_vcp
 	if (!(types & (1UL << type))) {
 		nested_vmx_failValid(vcpu,
 			VMXERR_INVALID_OPERAND_TO_INVEPT_INVVPID);
+		skip_emulated_instruction(vcpu);
 		return 1;
 	}
 

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


#1375166 — [PATCH 4.4 094/210] staging: comedi: ni_mio_common: fix the ni_write[blw]() functions

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-04-10 22:10 +0200
Subject[PATCH 4.4 094/210] staging: comedi: ni_mio_common: fix the ni_write[blw]() functions
Message-ID<rmtQf-22e-33@gated-at.bofh.it>
In reply to#1375159
4.4-stable review patch.  If anyone has any objections, please let me know.

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

From: H Hartley Sweeten <hsweeten@visionengravers.com>

commit bd3a3cd6c27b117fb9a43a38c8072c95332beecc upstream.

Memory mapped io (dev->mmio) should not also be writing to the ioport
(dev->iobase) registers. Add the missing 'else' to these functions.

Fixes: 0953ee4acca0 ("staging: comedi: ni_mio_common: checkpatch.pl cleanup (else not useful)")
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/staging/comedi/drivers/ni_mio_common.c |   12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

--- a/drivers/staging/comedi/drivers/ni_mio_common.c
+++ b/drivers/staging/comedi/drivers/ni_mio_common.c
@@ -246,24 +246,24 @@ static void ni_writel(struct comedi_devi
 {
 	if (dev->mmio)
 		writel(data, dev->mmio + reg);
-
-	outl(data, dev->iobase + reg);
+	else
+		outl(data, dev->iobase + reg);
 }
 
 static void ni_writew(struct comedi_device *dev, uint16_t data, int reg)
 {
 	if (dev->mmio)
 		writew(data, dev->mmio + reg);
-
-	outw(data, dev->iobase + reg);
+	else
+		outw(data, dev->iobase + reg);
 }
 
 static void ni_writeb(struct comedi_device *dev, uint8_t data, int reg)
 {
 	if (dev->mmio)
 		writeb(data, dev->mmio + reg);
-
-	outb(data, dev->iobase + reg);
+	else
+		outb(data, dev->iobase + reg);
 }
 
 static uint32_t ni_readl(struct comedi_device *dev, int reg)

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


#1375167 — [PATCH 4.4 009/210] x86/entry/compat: Keep TS_COMPAT set during signal delivery

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-04-10 22:10 +0200
Subject[PATCH 4.4 009/210] x86/entry/compat: Keep TS_COMPAT set during signal delivery
Message-ID<rmtQf-22e-39@gated-at.bofh.it>
In reply to#1375159
4.4-stable review patch.  If anyone has any objections, please let me know.

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

From: Andy Lutomirski <luto@kernel.org>

commit 4e79e182b419172e35936a47f098509092d69817 upstream.

Signal delivery needs to know the sign of an interrupted syscall's
return value in order to detect -ERESTART variants.  Normally this
works independently of bitness because syscalls internally return
long.  Under ptrace, however, this can break, and syscall_get_error
is supposed to sign-extend regs->ax if needed.

We were clearing TS_COMPAT too early, though, and this prevented
sign extension, which subtly broke syscall restart under ptrace.

Reported-by: Robert O'Callahan <robert@ocallahan.org>
Signed-off-by: Andy Lutomirski <luto@kernel.org>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Shuah Khan <shuahkh@osg.samsung.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Fixes: c5c46f59e4e7 ("x86/entry: Add new, comprehensible entry and exit handlers written in C")
Link: http://lkml.kernel.org/r/cbce3cf545522f64eb37f5478cb59746230db3b5.1455142412.git.luto@kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/x86/entry/common.c |   23 +++++++++++++----------
 1 file changed, 13 insertions(+), 10 deletions(-)

--- a/arch/x86/entry/common.c
+++ b/arch/x86/entry/common.c
@@ -268,6 +268,7 @@ static void exit_to_usermode_loop(struct
 /* Called with IRQs disabled. */
 __visible inline void prepare_exit_to_usermode(struct pt_regs *regs)
 {
+	struct thread_info *ti = pt_regs_to_thread_info(regs);
 	u32 cached_flags;
 
 	if (IS_ENABLED(CONFIG_PROVE_LOCKING) && WARN_ON(!irqs_disabled()))
@@ -275,12 +276,22 @@ __visible inline void prepare_exit_to_us
 
 	lockdep_sys_exit();
 
-	cached_flags =
-		READ_ONCE(pt_regs_to_thread_info(regs)->flags);
+	cached_flags = READ_ONCE(ti->flags);
 
 	if (unlikely(cached_flags & EXIT_TO_USERMODE_LOOP_FLAGS))
 		exit_to_usermode_loop(regs, cached_flags);
 
+#ifdef CONFIG_COMPAT
+	/*
+	 * Compat syscalls set TS_COMPAT.  Make sure we clear it before
+	 * returning to user mode.  We need to clear it *after* signal
+	 * handling, because syscall restart has a fixup for compat
+	 * syscalls.  The fixup is exercised by the ptrace_syscall_32
+	 * selftest.
+	 */
+	ti->status &= ~TS_COMPAT;
+#endif
+
 	user_enter();
 }
 
@@ -332,14 +343,6 @@ __visible inline void syscall_return_slo
 	if (unlikely(cached_flags & SYSCALL_EXIT_WORK_FLAGS))
 		syscall_slow_exit_work(regs, cached_flags);
 
-#ifdef CONFIG_COMPAT
-	/*
-	 * Compat syscalls set TS_COMPAT.  Make sure we clear it before
-	 * returning to user mode.
-	 */
-	ti->status &= ~TS_COMPAT;
-#endif
-
 	local_irq_disable();
 	prepare_exit_to_usermode(regs);
 }

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


#1375169 — [PATCH 4.4 096/210] net: irda: Fix use-after-free in irtty_open()

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-04-10 22:10 +0200
Subject[PATCH 4.4 096/210] net: irda: Fix use-after-free in irtty_open()
Message-ID<rmtQf-22e-41@gated-at.bofh.it>
In reply to#1375159
4.4-stable review patch.  If anyone has any objections, please let me know.

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

From: Peter Hurley <peter@hurleysoftware.com>

commit 401879c57f01cbf2da204ad2e8db910525c6dbea upstream.

The N_IRDA line discipline may access the previous line discipline's closed
and already-fre private data on open [1].

The tty->disc_data field _never_ refers to valid data on entry to the
line discipline's open() method. Rather, the ldisc is expected to
initialize that field for its own use for the lifetime of the instance
(ie. from open() to close() only).

[1]
    ==================================================================
    BUG: KASAN: use-after-free in irtty_open+0x422/0x550 at addr ffff8800331dd068
    Read of size 4 by task a.out/13960
    =============================================================================
    BUG kmalloc-512 (Tainted: G    B          ): kasan: bad access detected
    -----------------------------------------------------------------------------
    ...
    Call Trace:
     [<ffffffff815fa2ae>] __asan_report_load4_noabort+0x3e/0x40 mm/kasan/report.c:279
     [<ffffffff836938a2>] irtty_open+0x422/0x550 drivers/net/irda/irtty-sir.c:436
     [<ffffffff829f1b80>] tty_ldisc_open.isra.2+0x60/0xa0 drivers/tty/tty_ldisc.c:447
     [<ffffffff829f21c0>] tty_set_ldisc+0x1a0/0x940 drivers/tty/tty_ldisc.c:567
     [<     inline     >] tiocsetd drivers/tty/tty_io.c:2650
     [<ffffffff829da49e>] tty_ioctl+0xace/0x1fd0 drivers/tty/tty_io.c:2883
     [<     inline     >] vfs_ioctl fs/ioctl.c:43
     [<ffffffff816708ac>] do_vfs_ioctl+0x57c/0xe60 fs/ioctl.c:607
     [<     inline     >] SYSC_ioctl fs/ioctl.c:622
     [<ffffffff81671204>] SyS_ioctl+0x74/0x80 fs/ioctl.c:613
     [<ffffffff852a7876>] entry_SYSCALL_64_fastpath+0x16/0x7a

Reported-and-tested-by: Dmitry Vyukov <dvyukov@google.com>
Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/net/irda/irtty-sir.c |   10 ----------
 1 file changed, 10 deletions(-)

--- a/drivers/net/irda/irtty-sir.c
+++ b/drivers/net/irda/irtty-sir.c
@@ -430,16 +430,6 @@ static int irtty_open(struct tty_struct
 
 	/* Module stuff handled via irda_ldisc.owner - Jean II */
 
-	/* First make sure we're not already connected. */
-	if (tty->disc_data != NULL) {
-		priv = tty->disc_data;
-		if (priv && priv->magic == IRTTY_MAGIC) {
-			ret = -EEXIST;
-			goto out;
-		}
-		tty->disc_data = NULL;		/* ### */
-	}
-
 	/* stop the underlying  driver */
 	irtty_stop_receiver(tty, TRUE);
 	if (tty->ops->stop)

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


#1375170 — [PATCH 4.4 092/210] staging: comedi: ni_tiocmd: change mistaken use of start_src for start_arg

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-04-10 22:10 +0200
Subject[PATCH 4.4 092/210] staging: comedi: ni_tiocmd: change mistaken use of start_src for start_arg
Message-ID<rmtQf-22e-37@gated-at.bofh.it>
In reply to#1375159
4.4-stable review patch.  If anyone has any objections, please let me know.

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

From: Spencer E. Olson <olsonse@umich.edu>

commit 1fd24a4702d2af0ea4d5845126cf57d4d1796216 upstream.

This fixes a bug in function ni_tio_input_inttrig().  The trigger number
should be compared to cmd->start_arg, not cmd->start_src.

Fixes: 6a760394d7eb ("staging: comedi: ni_tiocmd: clarify the cmd->start_arg validation and use")
Signed-off-by: Spencer E. Olson <olsonse@umich.edu>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/staging/comedi/drivers/ni_tiocmd.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/staging/comedi/drivers/ni_tiocmd.c
+++ b/drivers/staging/comedi/drivers/ni_tiocmd.c
@@ -92,7 +92,7 @@ static int ni_tio_input_inttrig(struct c
 	unsigned long flags;
 	int ret = 0;
 
-	if (trig_num != cmd->start_src)
+	if (trig_num != cmd->start_arg)
 		return -EINVAL;
 
 	spin_lock_irqsave(&counter->lock, flags);

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


#1375171 — [PATCH 4.4 085/210] tpm_crb: tpm2_shutdown() must be called before tpm_chip_unregister()

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-04-10 22:10 +0200
Subject[PATCH 4.4 085/210] tpm_crb: tpm2_shutdown() must be called before tpm_chip_unregister()
Message-ID<rmtQf-22e-43@gated-at.bofh.it>
In reply to#1375159
4.4-stable review patch.  If anyone has any objections, please let me know.

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

From: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>

commit 99cda8cb4639de81cde785b5bab9bc52e916e594 upstream.

Wrong call order.

Reported-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Fixes: 74d6b3ceaa17
Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/char/tpm/tpm_crb.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/drivers/char/tpm/tpm_crb.c
+++ b/drivers/char/tpm/tpm_crb.c
@@ -310,11 +310,11 @@ static int crb_acpi_remove(struct acpi_d
 	struct device *dev = &device->dev;
 	struct tpm_chip *chip = dev_get_drvdata(dev);
 
-	tpm_chip_unregister(chip);
-
 	if (chip->flags & TPM_CHIP_FLAG_TPM2)
 		tpm2_shutdown(chip, TPM2_SU_CLEAR);
 
+	tpm_chip_unregister(chip);
+
 	return 0;
 }
 

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


#1375172 — [PATCH 4.4 024/210] sched/preempt, sh: kmap_coherent relies on disabled preemption

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-04-10 22:10 +0200
Subject[PATCH 4.4 024/210] sched/preempt, sh: kmap_coherent relies on disabled preemption
Message-ID<rmtQf-22e-45@gated-at.bofh.it>
In reply to#1375159
4.4-stable review patch.  If anyone has any objections, please let me know.

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

From: David Hildenbrand <dahi@linux.vnet.ibm.com>

commit b15d53d009558d14c4f394a6d1fa2039c7f45c43 upstream.

kmap_coherent needs disabled preemption to not schedule in the critical
section, just like kmap_coherent on mips and kmap_atomic in general.

Fixes: 8222dbe21e79 "sched/preempt, mm/fault: Decouple preemption from the page fault logic"
Reported-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
Tested-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Rich Felker <dalias@libc.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/sh/mm/kmap.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/arch/sh/mm/kmap.c
+++ b/arch/sh/mm/kmap.c
@@ -36,6 +36,7 @@ void *kmap_coherent(struct page *page, u
 
 	BUG_ON(!test_bit(PG_dcache_clean, &page->flags));
 
+	preempt_disable();
 	pagefault_disable();
 
 	idx = FIX_CMAP_END -
@@ -64,4 +65,5 @@ void kunmap_coherent(void *kvaddr)
 	}
 
 	pagefault_enable();
+	preempt_enable();
 }

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


#1375173 — [PATCH 4.4 042/210] sd: Fix discard granularity when LBPRZ=1

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-04-10 22:10 +0200
Subject[PATCH 4.4 042/210] sd: Fix discard granularity when LBPRZ=1
Message-ID<rmtQf-22e-47@gated-at.bofh.it>
In reply to#1375159
4.4-stable review patch.  If anyone has any objections, please let me know.

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

From: Martin K. Petersen <martin.petersen@oracle.com>

commit 6540a65da90c09590897310e31993b1f6e28485a upstream.

Commit 397737223c59 ("sd: Make discard granularity match logical block
size when LBPRZ=1") accidentally set the granularity to one byte instead
of one logical block on devices that provide deterministic zeroes after
UNMAP.

Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Reported-by: Mike Snitzer <snitzer@redhat.com>
Reviewed-by: Ewan Milne <emilne@redhat.com>
Reviewed-by: Bart Van Assche <bart.vanassche@sandisk.com>
Fixes: 397737223c59e89dca7305feb6528caef8fbef84
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -648,7 +648,7 @@ static void sd_config_discard(struct scs
 	 */
 	if (sdkp->lbprz) {
 		q->limits.discard_alignment = 0;
-		q->limits.discard_granularity = 1;
+		q->limits.discard_granularity = logical_block_size;
 	} else {
 		q->limits.discard_alignment = sdkp->unmap_alignment *
 			logical_block_size;

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


#1375174 — [PATCH 4.4 077/210] crypto: ccp - memset request context to zero during import

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-04-10 22:10 +0200
Subject[PATCH 4.4 077/210] crypto: ccp - memset request context to zero during import
Message-ID<rmtQf-22e-49@gated-at.bofh.it>
In reply to#1375159
4.4-stable review patch.  If anyone has any objections, please let me know.

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

From: Tom Lendacky <thomas.lendacky@amd.com>

commit ce0ae266feaf35930394bd770c69778e4ef03ba9 upstream.

Since a crypto_ahash_import() can be called against a request context
that has not had a crypto_ahash_init() performed, the request context
needs to be cleared to insure there is no random data present. If not,
the random data can result in a kernel oops during crypto_ahash_update().

Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/crypto/ccp/ccp-crypto-aes-cmac.c |    1 +
 drivers/crypto/ccp/ccp-crypto-sha.c      |    1 +
 2 files changed, 2 insertions(+)

--- a/drivers/crypto/ccp/ccp-crypto-aes-cmac.c
+++ b/drivers/crypto/ccp/ccp-crypto-aes-cmac.c
@@ -244,6 +244,7 @@ static int ccp_aes_cmac_import(struct ah
 	/* 'in' may not be aligned so memcpy to local variable */
 	memcpy(&state, in, sizeof(state));
 
+	memset(rctx, 0, sizeof(*rctx));
 	rctx->null_msg = state.null_msg;
 	memcpy(rctx->iv, state.iv, sizeof(rctx->iv));
 	rctx->buf_count = state.buf_count;
--- a/drivers/crypto/ccp/ccp-crypto-sha.c
+++ b/drivers/crypto/ccp/ccp-crypto-sha.c
@@ -233,6 +233,7 @@ static int ccp_sha_import(struct ahash_r
 	/* 'in' may not be aligned so memcpy to local variable */
 	memcpy(&state, in, sizeof(state));
 
+	memset(rctx, 0, sizeof(*rctx));
 	rctx->type = state.type;
 	rctx->msg_bits = state.msg_bits;
 	rctx->first = state.first;

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


#1375175 — [PATCH 4.4 053/210] usb: hub: fix a typo in hub_port_init() leading to wrong logic

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-04-10 22:10 +0200
Subject[PATCH 4.4 053/210] usb: hub: fix a typo in hub_port_init() leading to wrong logic
Message-ID<rmtQg-22e-51@gated-at.bofh.it>
In reply to#1375159
4.4-stable review patch.  If anyone has any objections, please let me know.

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

From: Oliver Neukum <oneukum@suse.com>

commit 0d5ce778c43bf888328231bcdce05d5c860655aa upstream.

A typo of j for i led to a logic bug. To rule out future
confusion, the variable names are made meaningful.

Signed-off-by: Oliver Neukum <ONeukum@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/core/hub.c |   10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -4277,7 +4277,7 @@ hub_port_init(struct usb_hub *hub, struc
 {
 	struct usb_device	*hdev = hub->hdev;
 	struct usb_hcd		*hcd = bus_to_hcd(hdev->bus);
-	int			i, j, retval;
+	int			retries, operations, retval, i;
 	unsigned		delay = HUB_SHORT_RESET_TIME;
 	enum usb_device_speed	oldspeed = udev->speed;
 	const char		*speed;
@@ -4379,7 +4379,7 @@ hub_port_init(struct usb_hub *hub, struc
 	 * first 8 bytes of the device descriptor to get the ep0 maxpacket
 	 * value.
 	 */
-	for (i = 0; i < GET_DESCRIPTOR_TRIES; (++i, msleep(100))) {
+	for (retries = 0; retries < GET_DESCRIPTOR_TRIES; (++retries, msleep(100))) {
 		bool did_new_scheme = false;
 
 		if (use_new_scheme(udev, retry_counter)) {
@@ -4406,7 +4406,7 @@ hub_port_init(struct usb_hub *hub, struc
 			 * 255 is for WUSB devices, we actually need to use
 			 * 512 (WUSB1.0[4.8.1]).
 			 */
-			for (j = 0; j < 3; ++j) {
+			for (operations = 0; operations < 3; ++operations) {
 				buf->bMaxPacketSize0 = 0;
 				r = usb_control_msg(udev, usb_rcvaddr0pipe(),
 					USB_REQ_GET_DESCRIPTOR, USB_DIR_IN,
@@ -4432,7 +4432,7 @@ hub_port_init(struct usb_hub *hub, struc
 				 * reset. But only on the first attempt,
 				 * lest we get into a time out/reset loop
 				 */
-				if (r == 0  || (r == -ETIMEDOUT && j == 0))
+				if (r == 0  || (r == -ETIMEDOUT && retries == 0))
 					break;
 			}
 			udev->descriptor.bMaxPacketSize0 =
@@ -4464,7 +4464,7 @@ hub_port_init(struct usb_hub *hub, struc
 		 * authorization will assign the final address.
 		 */
 		if (udev->wusb == 0) {
-			for (j = 0; j < SET_ADDRESS_TRIES; ++j) {
+			for (operations = 0; operations < SET_ADDRESS_TRIES; ++operations) {
 				retval = hub_set_address(udev, devnum);
 				if (retval >= 0)
 					break;

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


#1375176 — [PATCH 4.4 008/210] x86/microcode: Untangle from BLK_DEV_INITRD

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-04-10 22:10 +0200
Subject[PATCH 4.4 008/210] x86/microcode: Untangle from BLK_DEV_INITRD
Message-ID<rmtQg-22e-55@gated-at.bofh.it>
In reply to#1375159
4.4-stable review patch.  If anyone has any objections, please let me know.

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

From: Borislav Petkov <bp@suse.de>

commit 5f9c01aa7c49a2d74474d6d879a797b8badf29e6 upstream.

Thomas Voegtle reported that doing oldconfig with a .config which has
CONFIG_MICROCODE enabled but BLK_DEV_INITRD disabled prevents the
microcode loading mechanism from being built.

So untangle it from the BLK_DEV_INITRD dependency so that oldconfig
doesn't turn it off and add an explanatory text to its Kconfig help what
the supported methods for supplying microcode are.

Reported-by: Thomas Voegtle <tv@lio96.de>
Tested-by: Thomas Voegtle <tv@lio96.de>
Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/1454499225-21544-2-git-send-email-bp@alien8.de
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/x86/Kconfig                      |   23 ++++++++++++-----------
 arch/x86/include/asm/microcode.h      |   26 ++++++++++++++++++++++++++
 arch/x86/kernel/cpu/microcode/intel.c |   14 ++++----------
 3 files changed, 42 insertions(+), 21 deletions(-)

--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -1126,22 +1126,23 @@ config MICROCODE
 	bool "CPU microcode loading support"
 	default y
 	depends on CPU_SUP_AMD || CPU_SUP_INTEL
-	depends on BLK_DEV_INITRD
 	select FW_LOADER
 	---help---
-
 	  If you say Y here, you will be able to update the microcode on
-	  certain Intel and AMD processors. The Intel support is for the
-	  IA32 family, e.g. Pentium Pro, Pentium II, Pentium III, Pentium 4,
-	  Xeon etc. The AMD support is for families 0x10 and later. You will
-	  obviously need the actual microcode binary data itself which is not
-	  shipped with the Linux kernel.
+	  Intel and AMD processors. The Intel support is for the IA32 family,
+	  e.g. Pentium Pro, Pentium II, Pentium III, Pentium 4, Xeon etc. The
+	  AMD support is for families 0x10 and later. You will obviously need
+	  the actual microcode binary data itself which is not shipped with
+	  the Linux kernel.
 
-	  This option selects the general module only, you need to select
-	  at least one vendor specific module as well.
+	  The preferred method to load microcode from a detached initrd is described
+	  in Documentation/x86/early-microcode.txt. For that you need to enable
+	  CONFIG_BLK_DEV_INITRD in order for the loader to be able to scan the
+	  initrd for microcode blobs.
 
-	  To compile this driver as a module, choose M here: the module
-	  will be called microcode.
+	  In addition, you can build-in the microcode into the kernel. For that you
+	  need to enable FIRMWARE_IN_KERNEL and add the vendor-supplied microcode
+	  to the CONFIG_EXTRA_FIRMWARE config option.
 
 config MICROCODE_INTEL
 	bool "Intel microcode loading support"
--- a/arch/x86/include/asm/microcode.h
+++ b/arch/x86/include/asm/microcode.h
@@ -2,6 +2,7 @@
 #define _ASM_X86_MICROCODE_H
 
 #include <linux/earlycpio.h>
+#include <linux/initrd.h>
 
 #define native_rdmsr(msr, val1, val2)			\
 do {							\
@@ -168,4 +169,29 @@ static inline void reload_early_microcod
 static inline bool
 get_builtin_firmware(struct cpio_data *cd, const char *name)	{ return false; }
 #endif
+
+static inline unsigned long get_initrd_start(void)
+{
+#ifdef CONFIG_BLK_DEV_INITRD
+	return initrd_start;
+#else
+	return 0;
+#endif
+}
+
+static inline unsigned long get_initrd_start_addr(void)
+{
+#ifdef CONFIG_BLK_DEV_INITRD
+#ifdef CONFIG_X86_32
+	unsigned long *initrd_start_p = (unsigned long *)__pa_nodebug(&initrd_start);
+
+	return (unsigned long)__pa_nodebug(*initrd_start_p);
+#else
+	return get_initrd_start();
+#endif
+#else /* CONFIG_BLK_DEV_INITRD */
+	return 0;
+#endif
+}
+
 #endif /* _ASM_X86_MICROCODE_H */
--- a/arch/x86/kernel/cpu/microcode/intel.c
+++ b/arch/x86/kernel/cpu/microcode/intel.c
@@ -698,7 +698,7 @@ int __init save_microcode_in_initrd_inte
 	if (count == 0)
 		return ret;
 
-	copy_initrd_ptrs(mc_saved, mc_saved_in_initrd, initrd_start, count);
+	copy_initrd_ptrs(mc_saved, mc_saved_in_initrd, get_initrd_start(), count);
 	ret = save_microcode(&mc_saved_data, mc_saved, count);
 	if (ret)
 		pr_err("Cannot save microcode patches from initrd.\n");
@@ -760,20 +760,14 @@ void load_ucode_intel_ap(void)
 	struct mc_saved_data *mc_saved_data_p;
 	struct ucode_cpu_info uci;
 	unsigned long *mc_saved_in_initrd_p;
-	unsigned long initrd_start_addr;
 	enum ucode_state ret;
 #ifdef CONFIG_X86_32
-	unsigned long *initrd_start_p;
 
-	mc_saved_in_initrd_p =
-		(unsigned long *)__pa_nodebug(mc_saved_in_initrd);
+	mc_saved_in_initrd_p = (unsigned long *)__pa_nodebug(mc_saved_in_initrd);
 	mc_saved_data_p = (struct mc_saved_data *)__pa_nodebug(&mc_saved_data);
-	initrd_start_p = (unsigned long *)__pa_nodebug(&initrd_start);
-	initrd_start_addr = (unsigned long)__pa_nodebug(*initrd_start_p);
 #else
-	mc_saved_data_p = &mc_saved_data;
 	mc_saved_in_initrd_p = mc_saved_in_initrd;
-	initrd_start_addr = initrd_start;
+	mc_saved_data_p = &mc_saved_data;
 #endif
 
 	/*
@@ -785,7 +779,7 @@ void load_ucode_intel_ap(void)
 
 	collect_cpu_info_early(&uci);
 	ret = load_microcode(mc_saved_data_p, mc_saved_in_initrd_p,
-			     initrd_start_addr, &uci);
+			     get_initrd_start_addr(), &uci);
 
 	if (ret != UCODE_OK)
 		return;

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


#1375177 — [PATCH 4.4 051/210] dm: fix rq_end_stats() NULL pointer in dm_requeue_original_request()

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-04-10 22:10 +0200
Subject[PATCH 4.4 051/210] dm: fix rq_end_stats() NULL pointer in dm_requeue_original_request()
Message-ID<rmtQg-22e-53@gated-at.bofh.it>
In reply to#1375159
4.4-stable review patch.  If anyone has any objections, please let me know.

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

From: Bryn M. Reeves <bmr@redhat.com>

commit 98dbc9c6c61698792e3a66f32f3bf066201d42d7 upstream.

An "old" (.request_fn) DM 'struct request' stores a pointer to the
associated 'struct dm_rq_target_io' in rq->special.

dm_requeue_original_request(), previously named
dm_requeue_unmapped_original_request(), called dm_unprep_request() to
reset rq->special to NULL.  But rq_end_stats() would go on to hit a NULL
pointer deference because its call to tio_from_request() returned NULL.

Fix this by calling rq_end_stats() _before_ dm_unprep_request()

Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Fixes: e262f34741 ("dm stats: add support for request-based DM devices")
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -1210,9 +1210,9 @@ static void dm_requeue_original_request(
 {
 	int rw = rq_data_dir(rq);
 
+	rq_end_stats(md, rq);
 	dm_unprep_request(rq);
 
-	rq_end_stats(md, rq);
 	if (!rq->q->mq_ops)
 		old_requeue_request(rq);
 	else {

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


#1375178 — [PATCH 4.4 048/210] dm: fix excessive dm-mq context switching

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-04-10 22:10 +0200
Subject[PATCH 4.4 048/210] dm: fix excessive dm-mq context switching
Message-ID<rmtQg-22e-57@gated-at.bofh.it>
In reply to#1375159
4.4-stable review patch.  If anyone has any objections, please let me know.

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

From: Mike Snitzer <snitzer@redhat.com>

commit 6acfe68bac7e6f16dc312157b1fa6e2368985013 upstream.

Request-based DM's blk-mq support (dm-mq) was reported to be 50% slower
than if an underlying null_blk device were used directly.  One of the
reasons for this drop in performance is that blk_insert_clone_request()
was calling blk_mq_insert_request() with @async=true.  This forced the
use of kblockd_schedule_delayed_work_on() to run the blk-mq hw queues
which ushered in ping-ponging between process context (fio in this case)
and kblockd's kworker to submit the cloned request.  The ftrace
function_graph tracer showed:

  kworker-2013  =>   fio-12190
  fio-12190    =>  kworker-2013
  ...
  kworker-2013  =>   fio-12190
  fio-12190    =>  kworker-2013
  ...

Fixing blk_insert_clone_request()'s blk_mq_insert_request() call to
_not_ use kblockd to submit the cloned requests isn't enough to
eliminate the observed context switches.

In addition to this dm-mq specific blk-core fix, there are 2 DM core
fixes to dm-mq that (when paired with the blk-core fix) completely
eliminate the observed context switching:

1)  don't blk_mq_run_hw_queues in blk-mq request completion

    Motivated by desire to reduce overhead of dm-mq, punting to kblockd
    just increases context switches.

    In my testing against a really fast null_blk device there was no benefit
    to running blk_mq_run_hw_queues() on completion (and no other blk-mq
    driver does this).  So hopefully this change doesn't induce the need for
    yet another revert like commit 621739b00e16ca2d !

2)  use blk_mq_complete_request() in dm_complete_request()

    blk_complete_request() doesn't offer the traditional q->mq_ops vs
    .request_fn branching pattern that other historic block interfaces
    do (e.g. blk_get_request).  Using blk_mq_complete_request() for
    blk-mq requests is important for performance.  It should be noted
    that, like blk_complete_request(), blk_mq_complete_request() doesn't
    natively handle partial completions -- but the request-based
    DM-multipath target does provide the required partial completion
    support by dm.c:end_clone_bio() triggering requeueing of the request
    via dm-mpath.c:multipath_end_io()'s return of DM_ENDIO_REQUEUE.

dm-mq fix #2 is _much_ more important than #1 for eliminating the
context switches.
Before: cpu          : usr=15.10%, sys=59.39%, ctx=7905181, majf=0, minf=475
After:  cpu          : usr=20.60%, sys=79.35%, ctx=2008, majf=0, minf=472

With these changes multithreaded async read IOPs improved from ~950K
to ~1350K for this dm-mq stacked on null_blk test-case.  The raw read
IOPs of the underlying null_blk device for the same workload is ~1950K.

Fixes: 7fb4898e0 ("block: add blk-mq support to blk_insert_cloned_request()")
Fixes: bfebd1cdb ("dm: add full blk-mq support to request-based DM")
Reported-by: Sagi Grimberg <sagig@dev.mellanox.co.il>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Acked-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 block/blk-core.c |    2 +-
 drivers/md/dm.c  |   13 ++++++-------
 2 files changed, 7 insertions(+), 8 deletions(-)

--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -2189,7 +2189,7 @@ int blk_insert_cloned_request(struct req
 	if (q->mq_ops) {
 		if (blk_queue_io_stat(q))
 			blk_account_io_start(rq, true);
-		blk_mq_insert_request(rq, false, true, true);
+		blk_mq_insert_request(rq, false, true, false);
 		return 0;
 	}
 
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -1109,12 +1109,8 @@ static void rq_completed(struct mapped_d
 	 * back into ->request_fn() could deadlock attempting to grab the
 	 * queue lock again.
 	 */
-	if (run_queue) {
-		if (md->queue->mq_ops)
-			blk_mq_run_hw_queues(md->queue, true);
-		else
-			blk_run_queue_async(md->queue);
-	}
+	if (!md->queue->mq_ops && run_queue)
+		blk_run_queue_async(md->queue);
 
 	/*
 	 * dm_put() must be at the end of this function. See the comment above
@@ -1336,7 +1332,10 @@ static void dm_complete_request(struct r
 	struct dm_rq_target_io *tio = tio_from_request(rq);
 
 	tio->error = error;
-	blk_complete_request(rq);
+	if (!rq->q->mq_ops)
+		blk_complete_request(rq);
+	else
+		blk_mq_complete_request(rq, error);
 }
 
 /*

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


#1375179 — [PATCH 4.4 076/210] crypto: ccp - Dont assume export/import areas are aligned

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-04-10 22:10 +0200
Subject[PATCH 4.4 076/210] crypto: ccp - Dont assume export/import areas are aligned
Message-ID<rmtQh-22e-65@gated-at.bofh.it>
In reply to#1375159
4.4-stable review patch.  If anyone has any objections, please let me know.

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

From: Tom Lendacky <thomas.lendacky@amd.com>

commit b31dde2a5cb1bf764282abf934266b7193c2bc7c upstream.

Use a local variable for the exported and imported state so that
alignment is not an issue. On export, set a local variable from the
request context and then memcpy the contents of the local variable to
the export memory area. On import, memcpy the import memory area into
a local variable and then use the local variable to set the request
context.

Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/crypto/ccp/ccp-crypto-aes-cmac.c |   26 ++++++++++++++---------
 drivers/crypto/ccp/ccp-crypto-sha.c      |   34 ++++++++++++++++++-------------
 2 files changed, 36 insertions(+), 24 deletions(-)

--- a/drivers/crypto/ccp/ccp-crypto-aes-cmac.c
+++ b/drivers/crypto/ccp/ccp-crypto-aes-cmac.c
@@ -223,12 +223,15 @@ static int ccp_aes_cmac_digest(struct ah
 static int ccp_aes_cmac_export(struct ahash_request *req, void *out)
 {
 	struct ccp_aes_cmac_req_ctx *rctx = ahash_request_ctx(req);
-	struct ccp_aes_cmac_exp_ctx *state = out;
+	struct ccp_aes_cmac_exp_ctx state;
 
-	state->null_msg = rctx->null_msg;
-	memcpy(state->iv, rctx->iv, sizeof(state->iv));
-	state->buf_count = rctx->buf_count;
-	memcpy(state->buf, rctx->buf, sizeof(state->buf));
+	state.null_msg = rctx->null_msg;
+	memcpy(state.iv, rctx->iv, sizeof(state.iv));
+	state.buf_count = rctx->buf_count;
+	memcpy(state.buf, rctx->buf, sizeof(state.buf));
+
+	/* 'out' may not be aligned so memcpy from local variable */
+	memcpy(out, &state, sizeof(state));
 
 	return 0;
 }
@@ -236,12 +239,15 @@ static int ccp_aes_cmac_export(struct ah
 static int ccp_aes_cmac_import(struct ahash_request *req, const void *in)
 {
 	struct ccp_aes_cmac_req_ctx *rctx = ahash_request_ctx(req);
-	const struct ccp_aes_cmac_exp_ctx *state = in;
+	struct ccp_aes_cmac_exp_ctx state;
+
+	/* 'in' may not be aligned so memcpy to local variable */
+	memcpy(&state, in, sizeof(state));
 
-	rctx->null_msg = state->null_msg;
-	memcpy(rctx->iv, state->iv, sizeof(rctx->iv));
-	rctx->buf_count = state->buf_count;
-	memcpy(rctx->buf, state->buf, sizeof(rctx->buf));
+	rctx->null_msg = state.null_msg;
+	memcpy(rctx->iv, state.iv, sizeof(rctx->iv));
+	rctx->buf_count = state.buf_count;
+	memcpy(rctx->buf, state.buf, sizeof(rctx->buf));
 
 	return 0;
 }
--- a/drivers/crypto/ccp/ccp-crypto-sha.c
+++ b/drivers/crypto/ccp/ccp-crypto-sha.c
@@ -210,14 +210,17 @@ static int ccp_sha_digest(struct ahash_r
 static int ccp_sha_export(struct ahash_request *req, void *out)
 {
 	struct ccp_sha_req_ctx *rctx = ahash_request_ctx(req);
-	struct ccp_sha_exp_ctx *state = out;
+	struct ccp_sha_exp_ctx state;
 
-	state->type = rctx->type;
-	state->msg_bits = rctx->msg_bits;
-	state->first = rctx->first;
-	memcpy(state->ctx, rctx->ctx, sizeof(state->ctx));
-	state->buf_count = rctx->buf_count;
-	memcpy(state->buf, rctx->buf, sizeof(state->buf));
+	state.type = rctx->type;
+	state.msg_bits = rctx->msg_bits;
+	state.first = rctx->first;
+	memcpy(state.ctx, rctx->ctx, sizeof(state.ctx));
+	state.buf_count = rctx->buf_count;
+	memcpy(state.buf, rctx->buf, sizeof(state.buf));
+
+	/* 'out' may not be aligned so memcpy from local variable */
+	memcpy(out, &state, sizeof(state));
 
 	return 0;
 }
@@ -225,14 +228,17 @@ static int ccp_sha_export(struct ahash_r
 static int ccp_sha_import(struct ahash_request *req, const void *in)
 {
 	struct ccp_sha_req_ctx *rctx = ahash_request_ctx(req);
-	const struct ccp_sha_exp_ctx *state = in;
+	struct ccp_sha_exp_ctx state;
+
+	/* 'in' may not be aligned so memcpy to local variable */
+	memcpy(&state, in, sizeof(state));
 
-	rctx->type = state->type;
-	rctx->msg_bits = state->msg_bits;
-	rctx->first = state->first;
-	memcpy(rctx->ctx, state->ctx, sizeof(rctx->ctx));
-	rctx->buf_count = state->buf_count;
-	memcpy(rctx->buf, state->buf, sizeof(rctx->buf));
+	rctx->type = state.type;
+	rctx->msg_bits = state.msg_bits;
+	rctx->first = state.first;
+	memcpy(rctx->ctx, state.ctx, sizeof(rctx->ctx));
+	rctx->buf_count = state.buf_count;
+	memcpy(rctx->buf, state.buf, sizeof(rctx->buf));
 
 	return 0;
 }

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


Page 1 of 3  [1] 2 3  Next page →

Back to top | Article view | linux.kernel


csiph-web