VAG power control is improved to fit the manual [1]. This patchset fixes as
minimum one bug: if customer muxes Headphone to Line-In right after boot,
the VAG power remains off that leads to poor sound quality from line-in.
I.e. after boot:
- Connect sound source to Line-In jack;
- Connect headphone to HP jack;
- Run following commands:
$ amixer set 'Headphone' 80%
$ amixer set 'Headphone Mux' LINE_IN
Also this series includes fixes of non-important bugs in sgtl5000 codec
driver.
[1] https://www.nxp.com/docs/en/data-sheet/SGTL5000.pdf
Changes in v5:
- Add explicit stable tag
- Improve commit message
- Add explicit stable tag
Changes in v4:
- CC the patch to kernel-stable
- Code optimization, simplify function signature
(thanks to Cezary Rojewski <cezary.rojewski(a)intel.com> for an idea)
- CC the patch to kernel-stable
- Add a Fixes tag
Changes in v3:
- Add the reference to NXP SGTL5000 data sheet to commit message
- Add the reference to NXP SGTL5000 data sheet to commit message
- Fix multi-line comment format
Changes in v2:
- Fix patch formatting
- Fix patch formatting
- Fix patch formatting
- Fix patch formatting
- Fix patch formatting
- Fix patch formatting
Oleksandr Suvorov (6):
ASoC: Define a set of DAPM pre/post-up events
ASoC: sgtl5000: Improve VAG power and mute control
ASoC: sgtl5000: Fix definition of VAG Ramp Control
ASoC: sgtl5000: add ADC mute control
ASoC: sgtl5000: Fix of unmute outputs on probe
ASoC: sgtl5000: Fix charge pump source assignment
include/sound/soc-dapm.h | 2 +
sound/soc/codecs/sgtl5000.c | 240 ++++++++++++++++++++++++++++++------
sound/soc/codecs/sgtl5000.h | 2 +-
3 files changed, 203 insertions(+), 41 deletions(-)
--
2.20.1
On Fri, Jul 19, 2019 at 12:45:23AM +0000, Sasha Levin wrote:
> v5.1.18: Failed to apply! Possible dependencies:
> Unable to calculate
>
> v4.19.59: Failed to apply! Possible dependencies:
<snip>
> How should we proceed with this patch?
I'll provide backported version of the patch for 4.19 and 5.1
after it will be merged to Linus' tree.
Stanislaw
This is the start of the stable review cycle for the 4.14.134 release.
There are 80 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 Sat 20 Jul 2019 02:59:27 AM UTC.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.14.134-r…
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.14.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Linux 4.14.134-rc1
Dave Airlie <airlied(a)redhat.com>
drm/udl: move to embedding drm device inside udl device.
Dave Airlie <airlied(a)redhat.com>
drm/udl: introduce a macro to convert dev to udl.
Haren Myneni <haren(a)linux.vnet.ibm.com>
crypto/NX: Set receive window credits to max number of CRBs in RxFIFO
Julian Wiedmann <jwi(a)linux.ibm.com>
s390/qdio: don't touch the dsci in tiqdio_add_input_queues()
Julian Wiedmann <jwi(a)linux.ibm.com>
s390/qdio: (re-)initialize tiqdio list entries
Heiko Carstens <heiko.carstens(a)de.ibm.com>
s390: fix stfle zero padding
Arnd Bergmann <arnd(a)arndb.de>
ARC: hide unused function unw_hdr_alloc
Vinod Koul <vkoul(a)kernel.org>
linux/kernel.h: fix overflow for DIV_ROUND_UP_ULL
Eiichi Tsukata <devel(a)etsukata.com>
cpu/hotplug: Fix out-of-bounds read when setting fail state
Kirill A. Shutemov <kirill(a)shutemov.name>
x86/boot/64: Fix crash if kernel image crosses page table boundary
Milan Broz <gmazyland(a)gmail.com>
dm verity: use message limit for data block corruption message
Sébastien Szymanski <sebastien.szymanski(a)armadeus.com>
ARM: dts: imx6ul: fix PWM[1-4] interrupts
Sergej Benilov <sergej.benilov(a)googlemail.com>
sis900: fix TX completion
Takashi Iwai <tiwai(a)suse.de>
ppp: mppe: Add softdep to arc4
Petr Oros <poros(a)redhat.com>
be2net: fix link failure after ethtool offline test
Arnd Bergmann <arnd(a)arndb.de>
ARM: omap2: remove incorrect __init annotation
Peter Zijlstra <peterz(a)infradead.org>
perf/core: Fix perf_sample_regs_user() mm check
Hans de Goede <hdegoede(a)redhat.com>
efi/bgrt: Drop BGRT status field reserved bits check
Tony Lindgren <tony(a)atomide.com>
clk: ti: clkctrl: Fix returning uninitialized data
Sean Young <sean(a)mess.org>
MIPS: Remove superfluous check for __linux__
Vishnu DASA <vdasa(a)vmware.com>
VMCI: Fix integer overflow in VMCI handle arrays
Christian Lamparter <chunkeey(a)gmail.com>
carl9170: fix misuse of device driver API
Todd Kjos <tkjos(a)android.com>
binder: fix memory leak in error path
Ian Abbott <abbotti(a)mev.co.uk>
staging: comedi: amplc_pci230: fix null pointer deref on interrupt
Ian Abbott <abbotti(a)mev.co.uk>
staging: comedi: dt282x: fix a null pointer deref on interrupt
Yoshihiro Shimoda <yoshihiro.shimoda.uh(a)renesas.com>
usb: renesas_usbhs: add a workaround for a race condition of workqueue
Kiruthika Varadarajan <Kiruthika.Varadarajan(a)harman.com>
usb: gadget: ether: Fix race between gether_disconnect and rx_submit
Alan Stern <stern(a)rowland.harvard.edu>
p54usb: Fix race between disconnect and firmware loading
Oliver Barta <o.barta89(a)gmail.com>
Revert "serial: 8250: Don't service RX FIFO if interrupts are disabled"
Jörgen Storvist <jorgen.storvist(a)gmail.com>
USB: serial: option: add support for GosunCn ME3630 RNDIS mode
Andreas Fritiofson <andreas.fritiofson(a)unjo.com>
USB: serial: ftdi_sio: add ID for isodebug v1
Brian Norris <briannorris(a)chromium.org>
mwifiex: Don't abort on small, spec-compliant vendor IEs
Takashi Iwai <tiwai(a)suse.de>
mwifiex: Fix heap overflow in mwifiex_uap_parse_tail_ies()
Takashi Iwai <tiwai(a)suse.de>
mwifiex: Abort at too short BSS descriptor element
Tim Chen <tim.c.chen(a)linux.intel.com>
Documentation: Add section about CPU vulnerabilities for Spectre
Dianzhang Chen <dianzhangchen0(a)gmail.com>
x86/tls: Fix possible spectre-v1 in do_get_thread_area()
Dianzhang Chen <dianzhangchen0(a)gmail.com>
x86/ptrace: Fix possible spectre-v1 in ptrace_get_debugreg()
Douglas Anderson <dianders(a)chromium.org>
block, bfq: NULL out the bic when it's no longer valid
Kailang Yang <kailang(a)realtek.com>
ALSA: hda/realtek - Headphone Mic can't record after S3
Steven J. Magnani <steve.magnani(a)digidescorp.com>
udf: Fix incorrect final NOT_ALLOCATED (hole) extent length
Hongjie Fang <hongjiefang(a)asrmicro.com>
fscrypt: don't set policy for a dead directory
Lin Yi <teroincn(a)163.com>
net :sunrpc :clnt :Fix xps refcount imbalance on the error path
Rasmus Villemoes <rasmus.villemoes(a)prevas.dk>
net: dsa: mv88e6xxx: fix shift of FID bits in mv88e6185_g1_vtu_loadpurge()
yangerkun <yangerkun(a)huawei.com>
quota: fix a problem about transfer quota
Colin Ian King <colin.king(a)canonical.com>
net: lio_core: fix potential sign-extension overflow on large shift
Xin Long <lucien.xin(a)gmail.com>
ip6_tunnel: allow not to count pkts on tstats by passing dev as NULL
Dan Carpenter <dan.carpenter(a)oracle.com>
drm: return -EFAULT if copy_to_user() fails
Mauro S. M. Rodrigues <maurosr(a)linux.vnet.ibm.com>
bnx2x: Check if transceiver implements DDM before access
Mariusz Tkaczyk <mariusz.tkaczyk(a)intel.com>
md: fix for divide error in status_resync
Reinhard Speyerer <rspmn(a)arcor.de>
qmi_wwan: extend permitted QMAP mux_id value range
Reinhard Speyerer <rspmn(a)arcor.de>
qmi_wwan: avoid RCU stalls on device disconnect when in QMAP mode
Reinhard Speyerer <rspmn(a)arcor.de>
qmi_wwan: add support for QMAP padding in the RX path
Yibo Zhao <yiboz(a)codeaurora.org>
mac80211: only warn once on chanctx_conf being NULL
Bartosz Golaszewski <bgolaszewski(a)baylibre.com>
ARM: davinci: da8xx: specify dma_coherent_mask for lcdc
Bartosz Golaszewski <bgolaszewski(a)baylibre.com>
ARM: davinci: da850-evm: call regulator_has_full_constraints()
Ido Schimmel <idosch(a)mellanox.com>
mlxsw: spectrum: Disallow prio-tagged packets when PVID is removed
Dave Martin <Dave.Martin(a)arm.com>
KVM: arm/arm64: vgic: Fix kvm_device leak in vgic_its_destroy
Anson Huang <anson.huang(a)nxp.com>
Input: imx_keypad - make sure keyboard can always wake up system
Teresa Remmet <t.remmet(a)phytec.de>
ARM: dts: am335x phytec boards: Fix cd-gpios active level
Thomas Falcon <tlfalcon(a)linux.ibm.com>
ibmvnic: Refresh device multicast list after reset
YueHaibing <yuehaibing(a)huawei.com>
can: af_can: Fix error path of can_init()
Eugen Hristev <eugen.hristev(a)microchip.com>
can: m_can: implement errata "Needless activation of MRAF irq"
Sean Nyekjaer <sean(a)geanix.com>
can: mcp251x: add support for mcp25625
Sean Nyekjaer <sean(a)geanix.com>
dt-bindings: can: mcp251x: add mcp25625 support
Guillaume Nault <gnault(a)redhat.com>
netfilter: ipv6: nf_defrag: accept duplicate fragments again
Guillaume Nault <gnault(a)redhat.com>
netfilter: ipv6: nf_defrag: fix leakage of unqueued fragments
Jia-Ju Bai <baijiaju1990(a)gmail.com>
iwlwifi: Fix double-free problems in iwl_req_fw_callback()
Takashi Iwai <tiwai(a)suse.de>
mwifiex: Fix possible buffer overflows at parsing bss descriptor
Pradeep Kumar Chitrapu <pradeepc(a)codeaurora.org>
mac80211: free peer keys before vif down in mesh
Thomas Pedersen <thomas(a)eero.com>
mac80211: mesh: fix RCU warning
Melissa Wen <melissa.srw(a)gmail.com>
staging:iio:ad7150: fix threshold mode config bit
John Fastabend <john.fastabend(a)gmail.com>
bpf: sockmap, fix use after free from sleep in psock backlog workqueue
Chang-Hsien Tsai <luke.tw(a)gmail.com>
samples, bpf: fix to change the buffer size for read()
Aaron Ma <aaron.ma(a)canonical.com>
Input: elantech - enable middle button support on 2 ThinkPads
Christophe Leroy <christophe.leroy(a)c-s.fr>
crypto: talitos - rename alternative AEAD algos.
James Morse <james.morse(a)arm.com>
drivers: base: cacheinfo: Ensure cpu hotplug work is done before Intel RDT
Masahiro Yamada <yamada.masahiro(a)socionext.com>
nilfs2: do not use unexported cpu_to_le32()/le32_to_cpu() in uapi header
Cole Rogers <colerogers(a)disroot.org>
Input: synaptics - enable SMBUS on T480 thinkpad trackpad
Konstantin Khlebnikov <khlebnikov(a)yandex-team.ru>
e1000e: start network tx queue only when link is up
Konstantin Khlebnikov <khlebnikov(a)yandex-team.ru>
Revert "e1000e: fix cyclic resets at link up with active tx"
-------------
Diffstat:
Documentation/ABI/testing/sysfs-class-net-qmi | 4 +-
Documentation/admin-guide/hw-vuln/index.rst | 1 +
Documentation/admin-guide/hw-vuln/spectre.rst | 697 +++++++++++++++++++++
.../bindings/net/can/microchip,mcp251x.txt | 1 +
Documentation/userspace-api/spec_ctrl.rst | 2 +
Makefile | 4 +-
arch/arc/kernel/unwind.c | 9 +-
arch/arm/boot/dts/am335x-pcm-953.dtsi | 2 +-
arch/arm/boot/dts/am335x-wega.dtsi | 2 +-
arch/arm/boot/dts/imx6ul.dtsi | 8 +-
arch/arm/mach-davinci/board-da850-evm.c | 2 +
arch/arm/mach-davinci/devices-da8xx.c | 3 +
arch/arm/mach-omap2/prm3xxx.c | 2 +-
arch/mips/include/uapi/asm/sgidefs.h | 8 -
arch/s390/include/asm/facility.h | 21 +-
arch/x86/kernel/head64.c | 17 +-
arch/x86/kernel/ptrace.c | 5 +-
arch/x86/kernel/tls.c | 9 +-
block/bfq-iosched.c | 1 +
drivers/android/binder.c | 4 +-
drivers/base/cacheinfo.c | 3 +-
drivers/clk/ti/clkctrl.c | 7 +-
drivers/crypto/nx/nx-842-powernv.c | 8 +-
drivers/crypto/talitos.c | 16 +-
drivers/firmware/efi/efi-bgrt.c | 5 -
drivers/gpu/drm/drm_bufs.c | 5 +-
drivers/gpu/drm/drm_ioc32.c | 5 +-
drivers/gpu/drm/udl/udl_drv.c | 56 +-
drivers/gpu/drm/udl/udl_drv.h | 9 +-
drivers/gpu/drm/udl/udl_fb.c | 12 +-
drivers/gpu/drm/udl/udl_main.c | 35 +-
drivers/input/keyboard/imx_keypad.c | 18 +-
drivers/input/mouse/elantech.c | 2 +
drivers/input/mouse/synaptics.c | 1 +
drivers/md/dm-verity-target.c | 4 +-
drivers/md/md.c | 36 +-
drivers/misc/vmw_vmci/vmci_context.c | 80 +--
drivers/misc/vmw_vmci/vmci_handle_array.c | 38 +-
drivers/misc/vmw_vmci/vmci_handle_array.h | 29 +-
drivers/net/can/m_can/m_can.c | 21 +
drivers/net/can/spi/Kconfig | 5 +-
drivers/net/can/spi/mcp251x.c | 25 +-
drivers/net/dsa/mv88e6xxx/global1_vtu.c | 2 +-
.../net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c | 3 +-
drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.h | 1 +
drivers/net/ethernet/cavium/liquidio/lio_core.c | 2 +-
drivers/net/ethernet/emulex/benet/be_ethtool.c | 28 +-
drivers/net/ethernet/ibm/ibmvnic.c | 3 +
drivers/net/ethernet/intel/e1000e/netdev.c | 21 +-
drivers/net/ethernet/mellanox/mlxsw/reg.h | 2 +-
drivers/net/ethernet/sis/sis900.c | 16 +-
drivers/net/ppp/ppp_mppe.c | 1 +
drivers/net/usb/qmi_wwan.c | 27 +-
drivers/net/wireless/ath/carl9170/usb.c | 39 +-
drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 1 -
drivers/net/wireless/intersil/p54/p54usb.c | 43 +-
drivers/net/wireless/marvell/mwifiex/fw.h | 12 +-
drivers/net/wireless/marvell/mwifiex/ie.c | 45 +-
drivers/net/wireless/marvell/mwifiex/scan.c | 31 +-
drivers/net/wireless/marvell/mwifiex/sta_ioctl.c | 4 +-
drivers/net/wireless/marvell/mwifiex/wmm.c | 2 +-
drivers/s390/cio/qdio_setup.c | 2 +
drivers/s390/cio/qdio_thinint.c | 5 +-
drivers/staging/comedi/drivers/amplc_pci230.c | 3 +-
drivers/staging/comedi/drivers/dt282x.c | 3 +-
drivers/staging/iio/cdc/ad7150.c | 19 +-
drivers/tty/serial/8250/8250_port.c | 3 +-
drivers/usb/gadget/function/u_ether.c | 6 +-
drivers/usb/renesas_usbhs/fifo.c | 34 +-
drivers/usb/serial/ftdi_sio.c | 1 +
drivers/usb/serial/ftdi_sio_ids.h | 6 +
drivers/usb/serial/option.c | 1 +
fs/crypto/policy.c | 2 +
fs/quota/dquot.c | 4 +-
fs/udf/inode.c | 93 ++-
include/linux/cpuhotplug.h | 1 +
include/linux/kernel.h | 3 +-
include/linux/vmw_vmci_defs.h | 11 +-
include/net/ip6_tunnel.h | 9 +-
include/uapi/linux/nilfs2_ondisk.h | 24 +-
kernel/cpu.c | 3 +
kernel/events/core.c | 2 +-
net/can/af_can.c | 24 +-
net/core/skbuff.c | 1 +
net/ipv6/netfilter/nf_conntrack_reasm.c | 22 +-
net/mac80211/ieee80211_i.h | 2 +-
net/mac80211/mesh.c | 6 +-
net/sunrpc/clnt.c | 1 +
samples/bpf/bpf_load.c | 2 +-
sound/pci/hda/patch_realtek.c | 2 +-
virt/kvm/arm/vgic/vgic-its.c | 1 +
91 files changed, 1393 insertions(+), 408 deletions(-)
This is the start of the stable review cycle for the 5.1.19 release.
There are 54 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 Sat 20 Jul 2019 02:59:27 AM UTC.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.1.19-rc1…
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.1.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Linux 5.1.19-rc1
Jiri Slaby <jslaby(a)suse.cz>
x86/entry/32: Fix ENDPROC of common_spurious
Haren Myneni <haren(a)linux.vnet.ibm.com>
crypto/NX: Set receive window credits to max number of CRBs in RxFIFO
Christophe Leroy <christophe.leroy(a)c-s.fr>
crypto: talitos - fix hash on SEC1.
Christophe Leroy <christophe.leroy(a)c-s.fr>
crypto: talitos - move struct talitos_edesc into talitos.h
Julian Wiedmann <jwi(a)linux.ibm.com>
s390/qdio: don't touch the dsci in tiqdio_add_input_queues()
Julian Wiedmann <jwi(a)linux.ibm.com>
s390/qdio: (re-)initialize tiqdio list entries
Heiko Carstens <heiko.carstens(a)de.ibm.com>
s390: fix stfle zero padding
Arnd Bergmann <arnd(a)arndb.de>
ARC: hide unused function unw_hdr_alloc
Thomas Gleixner <tglx(a)linutronix.de>
x86/irq: Seperate unused system vectors from spurious entry again
Thomas Gleixner <tglx(a)linutronix.de>
x86/irq: Handle spurious interrupt after shutdown gracefully
Thomas Gleixner <tglx(a)linutronix.de>
x86/ioapic: Implement irq_get_irqchip_state() callback
Thomas Gleixner <tglx(a)linutronix.de>
genirq: Add optional hardware synchronization for shutdown
Thomas Gleixner <tglx(a)linutronix.de>
genirq: Fix misleading synchronize_irq() documentation
Thomas Gleixner <tglx(a)linutronix.de>
genirq: Delay deactivation in free_irq()
Vinod Koul <vkoul(a)kernel.org>
linux/kernel.h: fix overflow for DIV_ROUND_UP_ULL
Andrea Arcangeli <aarcange(a)redhat.com>
fork,memcg: alloc_thread_stack_node needs to set tsk->stack
Yafang Shao <laoar.shao(a)gmail.com>
mm/oom_kill.c: fix uninitialized oc->constraint
Nicolas Boichat <drinkcat(a)chromium.org>
pinctrl: mediatek: Update cur_mask in mask/mask ops
Eiichi Tsukata <devel(a)etsukata.com>
cpu/hotplug: Fix out-of-bounds read when setting fail state
Nicolas Boichat <drinkcat(a)chromium.org>
pinctrl: mediatek: Ignore interrupts that are wake only during resume
Kai-Heng Feng <kai.heng.feng(a)canonical.com>
HID: multitouch: Add pointstick support for ALPS Touchpad
Kyle Godbey <me(a)kyle.ee>
HID: uclogic: Add support for Huion HS64 tablet
Oleksandr Natalenko <oleksandr(a)redhat.com>
HID: chicony: add another quirk for PixArt mouse
Kirill A. Shutemov <kirill(a)shutemov.name>
x86/boot/64: Add missing fixup_pointer() for next_early_pgt access
Kirill A. Shutemov <kirill(a)shutemov.name>
x86/boot/64: Fix crash if kernel image crosses page table boundary
Milan Broz <gmazyland(a)gmail.com>
dm verity: use message limit for data block corruption message
Jerome Marchand <jmarchan(a)redhat.com>
dm table: don't copy from a NULL pointer in realloc_argv()
Alexandre Belloni <alexandre.belloni(a)bootlin.com>
pinctrl: ocelot: fix pinmuxing for pins after 31
Alexandre Belloni <alexandre.belloni(a)bootlin.com>
pinctrl: ocelot: fix gpio direction for pins after 31
Phil Reid <preid(a)electromag.com.au>
pinctrl: mcp23s08: Fix add_data and irqchip_add_nested call order
Sébastien Szymanski <sebastien.szymanski(a)armadeus.com>
ARM: dts: imx6ul: fix PWM[1-4] interrupts
Sergej Benilov <sergej.benilov(a)googlemail.com>
sis900: fix TX completion
Takashi Iwai <tiwai(a)suse.de>
ppp: mppe: Add softdep to arc4
Petr Oros <poros(a)redhat.com>
be2net: fix link failure after ethtool offline test
Colin Ian King <colin.king(a)canonical.com>
x86/apic: Fix integer overflow on 10 bit left shift of cpu_khz
Qian Cai <cai(a)lca.pw>
x86/efi: fix a -Wtype-limits compilation warning
David Howells <dhowells(a)redhat.com>
afs: Fix uninitialised spinlock afs_volume::cb_break_lock
Arnd Bergmann <arnd(a)arndb.de>
ARM: omap2: remove incorrect __init annotation
Linus Walleij <linus.walleij(a)linaro.org>
ARM: dts: gemini Fix up DNS-313 compatible string
Peter Zijlstra <peterz(a)infradead.org>
perf/core: Fix perf_sample_regs_user() mm check
Michael Ellerman <mpe(a)ellerman.id.au>
selftests/powerpc: Add test of fork with mapping above 512TB
Ran Wang <ran.wang_1(a)nxp.com>
arm64: dts: ls1028a: Fix CPU idle fail.
Hans de Goede <hdegoede(a)redhat.com>
efi/bgrt: Drop BGRT status field reserved bits check
Tony Lindgren <tony(a)atomide.com>
clk: ti: clkctrl: Fix returning uninitialized data
Heyi Guo <guoheyi(a)huawei.com>
irqchip/gic-v3-its: Fix command queue pointer comparison bug
Guo Ren <ren_guo(a)c-sky.com>
irqchip/irq-csky-mpintc: Support auto irq deliver to all cpus
Martin Blumenstingl <martin.blumenstingl(a)googlemail.com>
ARM: dts: meson8b: fix the operating voltage of the Mali GPU
Martin Blumenstingl <martin.blumenstingl(a)googlemail.com>
ARM: dts: meson8: fix GPU interrupts and drop an undocumented property
Sven Van Asbroeck <thesven73(a)gmail.com>
firmware: improve LSM/IMA security behaviour
James Morse <james.morse(a)arm.com>
drivers: base: cacheinfo: Ensure cpu hotplug work is done before Intel RDT
Masahiro Yamada <yamada.masahiro(a)socionext.com>
nilfs2: do not use unexported cpu_to_le32()/le32_to_cpu() in uapi header
Cole Rogers <colerogers(a)disroot.org>
Input: synaptics - enable SMBUS on T480 thinkpad trackpad
Konstantin Khlebnikov <khlebnikov(a)yandex-team.ru>
e1000e: start network tx queue only when link is up
Konstantin Khlebnikov <khlebnikov(a)yandex-team.ru>
Revert "e1000e: fix cyclic resets at link up with active tx"
-------------
Diffstat:
Makefile | 4 +-
arch/arc/kernel/unwind.c | 9 +-
arch/arm/boot/dts/gemini-dlink-dns-313.dts | 2 +-
arch/arm/boot/dts/imx6ul.dtsi | 8 +-
arch/arm/boot/dts/meson8.dtsi | 5 +-
arch/arm/boot/dts/meson8b.dtsi | 10 +--
arch/arm/mach-omap2/prm3xxx.c | 2 +-
arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi | 18 ++--
arch/s390/include/asm/facility.h | 21 +++--
arch/x86/entry/entry_32.S | 24 ++++++
arch/x86/entry/entry_64.S | 30 ++++++-
arch/x86/include/asm/hw_irq.h | 5 +-
arch/x86/kernel/apic/apic.c | 36 +++++---
arch/x86/kernel/apic/io_apic.c | 46 ++++++++++
arch/x86/kernel/apic/vector.c | 4 +-
arch/x86/kernel/head64.c | 20 +++--
arch/x86/kernel/idt.c | 3 +-
arch/x86/kernel/irq.c | 2 +-
arch/x86/platform/efi/quirks.c | 2 +-
drivers/base/cacheinfo.c | 3 +-
drivers/base/firmware_loader/fallback.c | 2 +-
drivers/clk/ti/clkctrl.c | 7 +-
drivers/crypto/nx/nx-842-powernv.c | 8 +-
drivers/crypto/talitos.c | 99 +++++++++-------------
drivers/crypto/talitos.h | 30 +++++++
drivers/firmware/efi/efi-bgrt.c | 5 --
drivers/hid/hid-ids.h | 3 +
drivers/hid/hid-multitouch.c | 4 +
drivers/hid/hid-quirks.c | 1 +
drivers/hid/hid-uclogic-core.c | 2 +
drivers/hid/hid-uclogic-params.c | 2 +
drivers/input/mouse/synaptics.c | 1 +
drivers/irqchip/irq-csky-mpintc.c | 15 +++-
drivers/irqchip/irq-gic-v3-its.c | 35 +++++---
drivers/md/dm-table.c | 2 +-
drivers/md/dm-verity-target.c | 4 +-
drivers/net/ethernet/emulex/benet/be_ethtool.c | 28 ++++--
drivers/net/ethernet/intel/e1000e/netdev.c | 21 +++--
drivers/net/ethernet/sis/sis900.c | 16 ++--
drivers/net/ppp/ppp_mppe.c | 1 +
drivers/pinctrl/mediatek/mtk-eint.c | 34 ++++----
drivers/pinctrl/pinctrl-mcp23s08.c | 8 +-
drivers/pinctrl/pinctrl-ocelot.c | 18 ++--
drivers/s390/cio/qdio_setup.c | 2 +
drivers/s390/cio/qdio_thinint.c | 5 +-
fs/afs/callback.c | 4 +-
fs/afs/internal.h | 2 +-
fs/afs/volume.c | 1 +
include/linux/cpuhotplug.h | 1 +
include/linux/kernel.h | 3 +-
include/uapi/linux/nilfs2_ondisk.h | 24 +++---
kernel/cpu.c | 3 +
kernel/events/core.c | 2 +-
kernel/fork.c | 6 +-
kernel/irq/autoprobe.c | 6 +-
kernel/irq/chip.c | 6 ++
kernel/irq/cpuhotplug.c | 2 +-
kernel/irq/internals.h | 5 ++
kernel/irq/manage.c | 90 +++++++++++++++-----
mm/oom_kill.c | 12 ++-
tools/testing/selftests/powerpc/mm/.gitignore | 3 +-
tools/testing/selftests/powerpc/mm/Makefile | 4 +-
.../powerpc/mm/large_vm_fork_separation.c | 87 +++++++++++++++++++
63 files changed, 610 insertions(+), 258 deletions(-)
This is the start of the stable review cycle for the 4.9.186 release.
There are 54 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 Sat 20 Jul 2019 02:59:27 AM UTC.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.9.186-rc…
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(a)linuxfoundation.org>
Linux 4.9.186-rc1
Julian Wiedmann <jwi(a)linux.ibm.com>
s390/qdio: don't touch the dsci in tiqdio_add_input_queues()
Julian Wiedmann <jwi(a)linux.ibm.com>
s390/qdio: (re-)initialize tiqdio list entries
Heiko Carstens <heiko.carstens(a)de.ibm.com>
s390: fix stfle zero padding
Arnd Bergmann <arnd(a)arndb.de>
ARC: hide unused function unw_hdr_alloc
Milan Broz <gmazyland(a)gmail.com>
dm verity: use message limit for data block corruption message
Sébastien Szymanski <sebastien.szymanski(a)armadeus.com>
ARM: dts: imx6ul: fix PWM[1-4] interrupts
Sergej Benilov <sergej.benilov(a)googlemail.com>
sis900: fix TX completion
Takashi Iwai <tiwai(a)suse.de>
ppp: mppe: Add softdep to arc4
Petr Oros <poros(a)redhat.com>
be2net: fix link failure after ethtool offline test
Arnd Bergmann <arnd(a)arndb.de>
ARM: omap2: remove incorrect __init annotation
Peter Zijlstra <peterz(a)infradead.org>
perf/core: Fix perf_sample_regs_user() mm check
Mark Rutland <mark.rutland(a)arm.com>
arm64: crypto: remove accidentally backported files
Masahiro Yamada <yamada.masahiro(a)socionext.com>
nilfs2: do not use unexported cpu_to_le32()/le32_to_cpu() in uapi header
Konstantin Khlebnikov <khlebnikov(a)yandex-team.ru>
e1000e: start network tx queue only when link is up
Konstantin Khlebnikov <khlebnikov(a)yandex-team.ru>
Revert "e1000e: fix cyclic resets at link up with active tx"
Sean Young <sean(a)mess.org>
MIPS: Remove superfluous check for __linux__
Vishnu DASA <vdasa(a)vmware.com>
VMCI: Fix integer overflow in VMCI handle arrays
Christian Lamparter <chunkeey(a)gmail.com>
carl9170: fix misuse of device driver API
Ian Abbott <abbotti(a)mev.co.uk>
staging: comedi: amplc_pci230: fix null pointer deref on interrupt
Ian Abbott <abbotti(a)mev.co.uk>
staging: comedi: dt282x: fix a null pointer deref on interrupt
Yoshihiro Shimoda <yoshihiro.shimoda.uh(a)renesas.com>
usb: renesas_usbhs: add a workaround for a race condition of workqueue
Kiruthika Varadarajan <Kiruthika.Varadarajan(a)harman.com>
usb: gadget: ether: Fix race between gether_disconnect and rx_submit
Alan Stern <stern(a)rowland.harvard.edu>
p54usb: Fix race between disconnect and firmware loading
Oliver Barta <o.barta89(a)gmail.com>
Revert "serial: 8250: Don't service RX FIFO if interrupts are disabled"
Jörgen Storvist <jorgen.storvist(a)gmail.com>
USB: serial: option: add support for GosunCn ME3630 RNDIS mode
Andreas Fritiofson <andreas.fritiofson(a)unjo.com>
USB: serial: ftdi_sio: add ID for isodebug v1
Brian Norris <briannorris(a)chromium.org>
mwifiex: Don't abort on small, spec-compliant vendor IEs
Hongjie Fang <hongjiefang(a)asrmicro.com>
fscrypt: don't set policy for a dead directory
Takashi Iwai <tiwai(a)suse.de>
mwifiex: Fix heap overflow in mwifiex_uap_parse_tail_ies()
Takashi Iwai <tiwai(a)suse.de>
mwifiex: Abort at too short BSS descriptor element
Dianzhang Chen <dianzhangchen0(a)gmail.com>
x86/tls: Fix possible spectre-v1 in do_get_thread_area()
Dianzhang Chen <dianzhangchen0(a)gmail.com>
x86/ptrace: Fix possible spectre-v1 in ptrace_get_debugreg()
Steven J. Magnani <steve.magnani(a)digidescorp.com>
udf: Fix incorrect final NOT_ALLOCATED (hole) extent length
Lin Yi <teroincn(a)163.com>
net :sunrpc :clnt :Fix xps refcount imbalance on the error path
Xin Long <lucien.xin(a)gmail.com>
ip6_tunnel: allow not to count pkts on tstats by passing dev as NULL
Mauro S. M. Rodrigues <maurosr(a)linux.vnet.ibm.com>
bnx2x: Check if transceiver implements DDM before access
Mariusz Tkaczyk <mariusz.tkaczyk(a)intel.com>
md: fix for divide error in status_resync
Yibo Zhao <yiboz(a)codeaurora.org>
mac80211: only warn once on chanctx_conf being NULL
Bartosz Golaszewski <bgolaszewski(a)baylibre.com>
ARM: davinci: da8xx: specify dma_coherent_mask for lcdc
Bartosz Golaszewski <bgolaszewski(a)baylibre.com>
ARM: davinci: da850-evm: call regulator_has_full_constraints()
Ido Schimmel <idosch(a)mellanox.com>
mlxsw: spectrum: Disallow prio-tagged packets when PVID is removed
Dave Martin <Dave.Martin(a)arm.com>
KVM: arm/arm64: vgic: Fix kvm_device leak in vgic_its_destroy
Anson Huang <anson.huang(a)nxp.com>
Input: imx_keypad - make sure keyboard can always wake up system
Sean Nyekjaer <sean(a)geanix.com>
can: mcp251x: add support for mcp25625
Sean Nyekjaer <sean(a)geanix.com>
dt-bindings: can: mcp251x: add mcp25625 support
Guillaume Nault <gnault(a)redhat.com>
netfilter: ipv6: nf_defrag: accept duplicate fragments again
Guillaume Nault <gnault(a)redhat.com>
netfilter: ipv6: nf_defrag: fix leakage of unqueued fragments
Takashi Iwai <tiwai(a)suse.de>
mwifiex: Fix possible buffer overflows at parsing bss descriptor
Pradeep Kumar Chitrapu <pradeepc(a)codeaurora.org>
mac80211: free peer keys before vif down in mesh
Thomas Pedersen <thomas(a)eero.com>
mac80211: mesh: fix RCU warning
Melissa Wen <melissa.srw(a)gmail.com>
staging:iio:ad7150: fix threshold mode config bit
Chang-Hsien Tsai <luke.tw(a)gmail.com>
samples, bpf: fix to change the buffer size for read()
Aaron Ma <aaron.ma(a)canonical.com>
Input: elantech - enable middle button support on 2 ThinkPads
Christophe Leroy <christophe.leroy(a)c-s.fr>
crypto: talitos - rename alternative AEAD algos.
-------------
Diffstat:
.../bindings/net/can/microchip,mcp251x.txt | 1 +
Makefile | 4 +-
arch/arc/kernel/unwind.c | 9 +-
arch/arm/boot/dts/imx6ul.dtsi | 8 +-
arch/arm/mach-davinci/board-da850-evm.c | 2 +
arch/arm/mach-davinci/devices-da8xx.c | 3 +
arch/arm/mach-omap2/prm3xxx.c | 2 +-
arch/arm64/crypto/sha256-core.S | 2061 --------------------
arch/arm64/crypto/sha512-core.S | 1085 -----------
arch/mips/include/uapi/asm/sgidefs.h | 8 -
arch/s390/include/asm/facility.h | 21 +-
arch/x86/kernel/ptrace.c | 5 +-
arch/x86/kernel/tls.c | 9 +-
drivers/crypto/talitos.c | 16 +-
drivers/input/keyboard/imx_keypad.c | 18 +-
drivers/input/mouse/elantech.c | 2 +
drivers/md/dm-verity-target.c | 4 +-
drivers/md/md.c | 36 +-
drivers/misc/vmw_vmci/vmci_context.c | 80 +-
drivers/misc/vmw_vmci/vmci_handle_array.c | 38 +-
drivers/misc/vmw_vmci/vmci_handle_array.h | 29 +-
drivers/net/can/spi/Kconfig | 5 +-
drivers/net/can/spi/mcp251x.c | 25 +-
.../net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c | 3 +-
drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.h | 1 +
drivers/net/ethernet/emulex/benet/be_ethtool.c | 28 +-
drivers/net/ethernet/intel/e1000e/netdev.c | 21 +-
drivers/net/ethernet/mellanox/mlxsw/reg.h | 2 +-
drivers/net/ethernet/sis/sis900.c | 16 +-
drivers/net/ppp/ppp_mppe.c | 1 +
drivers/net/wireless/ath/carl9170/usb.c | 39 +-
drivers/net/wireless/intersil/p54/p54usb.c | 43 +-
drivers/net/wireless/marvell/mwifiex/fw.h | 12 +-
drivers/net/wireless/marvell/mwifiex/ie.c | 45 +-
drivers/net/wireless/marvell/mwifiex/scan.c | 31 +-
drivers/net/wireless/marvell/mwifiex/sta_ioctl.c | 4 +-
drivers/net/wireless/marvell/mwifiex/wmm.c | 2 +-
drivers/s390/cio/qdio_setup.c | 2 +
drivers/s390/cio/qdio_thinint.c | 5 +-
drivers/staging/comedi/drivers/amplc_pci230.c | 3 +-
drivers/staging/comedi/drivers/dt282x.c | 3 +-
drivers/staging/iio/cdc/ad7150.c | 19 +-
drivers/tty/serial/8250/8250_port.c | 3 +-
drivers/usb/gadget/function/u_ether.c | 6 +-
drivers/usb/renesas_usbhs/fifo.c | 34 +-
drivers/usb/serial/ftdi_sio.c | 1 +
drivers/usb/serial/ftdi_sio_ids.h | 6 +
drivers/usb/serial/option.c | 1 +
fs/crypto/policy.c | 2 +
fs/udf/inode.c | 93 +-
include/linux/vmw_vmci_defs.h | 11 +-
include/net/ip6_tunnel.h | 9 +-
include/uapi/linux/nilfs2_ondisk.h | 24 +-
kernel/events/core.c | 2 +-
net/ipv6/netfilter/nf_conntrack_reasm.c | 22 +-
net/mac80211/ieee80211_i.h | 2 +-
net/mac80211/mesh.c | 6 +-
net/sunrpc/clnt.c | 1 +
samples/bpf/bpf_load.c | 2 +-
virt/kvm/arm/vgic/vgic-its.c | 1 +
60 files changed, 516 insertions(+), 3461 deletions(-)
This is the start of the stable review cycle for the 4.4.186 release.
There are 40 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 Sat 20 Jul 2019 02:59:27 AM UTC.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.4.186-rc…
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.4.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Linux 4.4.186-rc1
Paolo Bonzini <pbonzini(a)redhat.com>
KVM: x86: protect KVM_CREATE_PIT/KVM_CREATE_PIT2 with kvm->lock
Julian Wiedmann <jwi(a)linux.ibm.com>
s390/qdio: don't touch the dsci in tiqdio_add_input_queues()
Julian Wiedmann <jwi(a)linux.ibm.com>
s390/qdio: (re-)initialize tiqdio list entries
Heiko Carstens <heiko.carstens(a)de.ibm.com>
s390: fix stfle zero padding
Arnd Bergmann <arnd(a)arndb.de>
ARC: hide unused function unw_hdr_alloc
Paolo Bonzini <pbonzini(a)redhat.com>
kvm: x86: avoid warning on repeated KVM_SET_TSS_ADDR
Milan Broz <gmazyland(a)gmail.com>
dm verity: use message limit for data block corruption message
Sergej Benilov <sergej.benilov(a)googlemail.com>
sis900: fix TX completion
Takashi Iwai <tiwai(a)suse.de>
ppp: mppe: Add softdep to arc4
Petr Oros <poros(a)redhat.com>
be2net: fix link failure after ethtool offline test
Arnd Bergmann <arnd(a)arndb.de>
ARM: omap2: remove incorrect __init annotation
Peter Zijlstra <peterz(a)infradead.org>
perf/core: Fix perf_sample_regs_user() mm check
Konstantin Khlebnikov <khlebnikov(a)yandex-team.ru>
e1000e: start network tx queue only when link is up
Sean Young <sean(a)mess.org>
MIPS: Remove superfluous check for __linux__
Vishnu DASA <vdasa(a)vmware.com>
VMCI: Fix integer overflow in VMCI handle arrays
Christian Lamparter <chunkeey(a)gmail.com>
carl9170: fix misuse of device driver API
Ian Abbott <abbotti(a)mev.co.uk>
staging: comedi: amplc_pci230: fix null pointer deref on interrupt
Ian Abbott <abbotti(a)mev.co.uk>
staging: comedi: dt282x: fix a null pointer deref on interrupt
Yoshihiro Shimoda <yoshihiro.shimoda.uh(a)renesas.com>
usb: renesas_usbhs: add a workaround for a race condition of workqueue
Kiruthika Varadarajan <Kiruthika.Varadarajan(a)harman.com>
usb: gadget: ether: Fix race between gether_disconnect and rx_submit
Jörgen Storvist <jorgen.storvist(a)gmail.com>
USB: serial: option: add support for GosunCn ME3630 RNDIS mode
Andreas Fritiofson <andreas.fritiofson(a)unjo.com>
USB: serial: ftdi_sio: add ID for isodebug v1
Brian Norris <briannorris(a)chromium.org>
mwifiex: Don't abort on small, spec-compliant vendor IEs
Hongjie Fang <hongjiefang(a)asrmicro.com>
fscrypt: don't set policy for a dead directory
Takashi Iwai <tiwai(a)suse.de>
mwifiex: Fix heap overflow in mwifiex_uap_parse_tail_ies()
Takashi Iwai <tiwai(a)suse.de>
mwifiex: Abort at too short BSS descriptor element
Dianzhang Chen <dianzhangchen0(a)gmail.com>
x86/tls: Fix possible spectre-v1 in do_get_thread_area()
Dianzhang Chen <dianzhangchen0(a)gmail.com>
x86/ptrace: Fix possible spectre-v1 in ptrace_get_debugreg()
Steven J. Magnani <steve.magnani(a)digidescorp.com>
udf: Fix incorrect final NOT_ALLOCATED (hole) extent length
Mauro S. M. Rodrigues <maurosr(a)linux.vnet.ibm.com>
bnx2x: Check if transceiver implements DDM before access
Mariusz Tkaczyk <mariusz.tkaczyk(a)intel.com>
md: fix for divide error in status_resync
Bartosz Golaszewski <bgolaszewski(a)baylibre.com>
ARM: davinci: da8xx: specify dma_coherent_mask for lcdc
Bartosz Golaszewski <bgolaszewski(a)baylibre.com>
ARM: davinci: da850-evm: call regulator_has_full_constraints()
Anson Huang <anson.huang(a)nxp.com>
Input: imx_keypad - make sure keyboard can always wake up system
Sean Nyekjaer <sean(a)geanix.com>
can: mcp251x: add support for mcp25625
Sean Nyekjaer <sean(a)geanix.com>
dt-bindings: can: mcp251x: add mcp25625 support
Takashi Iwai <tiwai(a)suse.de>
mwifiex: Fix possible buffer overflows at parsing bss descriptor
Thomas Pedersen <thomas(a)eero.com>
mac80211: mesh: fix RCU warning
Chang-Hsien Tsai <luke.tw(a)gmail.com>
samples, bpf: fix to change the buffer size for read()
Aaron Ma <aaron.ma(a)canonical.com>
Input: elantech - enable middle button support on 2 ThinkPads
-------------
Diffstat:
.../bindings/net/can/microchip,mcp251x.txt | 1 +
Makefile | 4 +-
arch/arc/kernel/unwind.c | 9 +--
arch/arm/mach-davinci/board-da850-evm.c | 2 +
arch/arm/mach-davinci/devices-da8xx.c | 3 +
arch/arm/mach-omap2/prm3xxx.c | 2 +-
arch/mips/include/uapi/asm/sgidefs.h | 8 --
arch/s390/include/asm/facility.h | 21 +++--
arch/x86/kernel/ptrace.c | 5 +-
arch/x86/kernel/tls.c | 9 ++-
arch/x86/kvm/i8254.c | 5 +-
arch/x86/kvm/x86.c | 6 +-
drivers/input/keyboard/imx_keypad.c | 18 ++++-
drivers/input/mouse/elantech.c | 2 +
drivers/md/dm-verity.c | 4 +-
drivers/md/md.c | 36 +++++----
drivers/misc/vmw_vmci/vmci_context.c | 80 +++++++++++--------
drivers/misc/vmw_vmci/vmci_handle_array.c | 38 ++++++---
drivers/misc/vmw_vmci/vmci_handle_array.h | 29 ++++---
drivers/net/can/spi/Kconfig | 5 +-
drivers/net/can/spi/mcp251x.c | 25 +++---
.../net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c | 3 +-
drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.h | 1 +
drivers/net/ethernet/emulex/benet/be_ethtool.c | 28 +++++--
drivers/net/ethernet/intel/e1000e/netdev.c | 6 +-
drivers/net/ethernet/sis/sis900.c | 16 ++--
drivers/net/ppp/ppp_mppe.c | 1 +
drivers/net/wireless/ath/carl9170/usb.c | 39 ++++-----
drivers/net/wireless/mwifiex/fw.h | 12 ++-
drivers/net/wireless/mwifiex/ie.c | 45 +++++++----
drivers/net/wireless/mwifiex/scan.c | 31 +++++++-
drivers/net/wireless/mwifiex/sta_ioctl.c | 4 +-
drivers/net/wireless/mwifiex/wmm.c | 2 +-
drivers/s390/cio/qdio_setup.c | 2 +
drivers/s390/cio/qdio_thinint.c | 5 +-
drivers/staging/comedi/drivers/amplc_pci230.c | 3 +-
drivers/staging/comedi/drivers/dt282x.c | 3 +-
drivers/usb/gadget/function/u_ether.c | 6 +-
drivers/usb/renesas_usbhs/fifo.c | 34 +++++---
drivers/usb/serial/ftdi_sio.c | 1 +
drivers/usb/serial/ftdi_sio_ids.h | 6 ++
drivers/usb/serial/option.c | 1 +
fs/ext4/crypto_policy.c | 2 +
fs/f2fs/crypto_policy.c | 2 +
fs/udf/inode.c | 93 ++++++++++++++--------
include/linux/vmw_vmci_defs.h | 11 ++-
kernel/events/core.c | 2 +-
net/mac80211/mesh.c | 5 +-
samples/bpf/bpf_load.c | 2 +-
49 files changed, 438 insertions(+), 240 deletions(-)
From: Dan Williams <dan.j.williams(a)intel.com>
Subject: libnvdimm/pfn: fix fsdax-mode namespace info-block zero-fields
At namespace creation time there is the potential for the "expected to be
zero" fields of a 'pfn' info-block to be filled with indeterminate data.
While the kernel buffer is zeroed on allocation it is immediately
overwritten by nd_pfn_validate() filling it with the current contents of
the on-media info-block location. For fields like, 'flags' and the
'padding' it potentially means that future implementations can not rely on
those fields being zero.
In preparation to stop using the 'start_pad' and 'end_trunc' fields for
section alignment, arrange for fields that are not explicitly initialized
to be guaranteed zero. Bump the minor version to indicate it is safe to
assume the 'padding' and 'flags' are zero. Otherwise, this corruption is
expected to benign since all other critical fields are explicitly
initialized.
Note The cc: stable is about spreading this new policy to as many kernels
as possible not fixing an issue in those kernels. It is not until the
change titled "libnvdimm/pfn: Stop padding pmem namespaces to section
alignment" where this improper initialization becomes a problem. So if
someone decides to backport "libnvdimm/pfn: Stop padding pmem namespaces
to section alignment" (which is not tagged for stable), make sure this
pre-requisite is flagged.
Link: http://lkml.kernel.org/r/156092356065.979959.6681003754765958296.stgit@dwil…
Fixes: 32ab0a3f5170 ("libnvdimm, pmem: 'struct page' for pmem")
Signed-off-by: Dan Williams <dan.j.williams(a)intel.com>
Tested-by: Aneesh Kumar K.V <aneesh.kumar(a)linux.ibm.com> [ppc64]
Cc: <stable(a)vger.kernel.org>
Cc: David Hildenbrand <david(a)redhat.com>
Cc: Jane Chu <jane.chu(a)oracle.com>
Cc: Jeff Moyer <jmoyer(a)redhat.com>
Cc: Jérôme Glisse <jglisse(a)redhat.com>
Cc: Jonathan Corbet <corbet(a)lwn.net>
Cc: Logan Gunthorpe <logang(a)deltatee.com>
Cc: Michal Hocko <mhocko(a)suse.com>
Cc: Mike Rapoport <rppt(a)linux.ibm.com>
Cc: Oscar Salvador <osalvador(a)suse.de>
Cc: Pavel Tatashin <pasha.tatashin(a)soleen.com>
Cc: Toshi Kani <toshi.kani(a)hpe.com>
Cc: Vlastimil Babka <vbabka(a)suse.cz>
Cc: Wei Yang <richardw.yang(a)linux.intel.com>
Cc: Jason Gunthorpe <jgg(a)mellanox.com>
Cc: Christoph Hellwig <hch(a)lst.de>
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
drivers/nvdimm/dax_devs.c | 2 +-
drivers/nvdimm/pfn.h | 1 +
drivers/nvdimm/pfn_devs.c | 18 +++++++++++++++---
3 files changed, 17 insertions(+), 4 deletions(-)
--- a/drivers/nvdimm/dax_devs.c~libnvdimm-pfn-fix-fsdax-mode-namespace-info-block-zero-fields
+++ a/drivers/nvdimm/dax_devs.c
@@ -118,7 +118,7 @@ int nd_dax_probe(struct device *dev, str
nvdimm_bus_unlock(&ndns->dev);
if (!dax_dev)
return -ENOMEM;
- pfn_sb = devm_kzalloc(dev, sizeof(*pfn_sb), GFP_KERNEL);
+ pfn_sb = devm_kmalloc(dev, sizeof(*pfn_sb), GFP_KERNEL);
nd_pfn->pfn_sb = pfn_sb;
rc = nd_pfn_validate(nd_pfn, DAX_SIG);
dev_dbg(dev, "dax: %s\n", rc == 0 ? dev_name(dax_dev) : "<none>");
--- a/drivers/nvdimm/pfn_devs.c~libnvdimm-pfn-fix-fsdax-mode-namespace-info-block-zero-fields
+++ a/drivers/nvdimm/pfn_devs.c
@@ -412,6 +412,15 @@ static int nd_pfn_clear_memmap_errors(st
return 0;
}
+/**
+ * nd_pfn_validate - read and validate info-block
+ * @nd_pfn: fsdax namespace runtime state / properties
+ * @sig: 'devdax' or 'fsdax' signature
+ *
+ * Upon return the info-block buffer contents (->pfn_sb) are
+ * indeterminate when validation fails, and a coherent info-block
+ * otherwise.
+ */
int nd_pfn_validate(struct nd_pfn *nd_pfn, const char *sig)
{
u64 checksum, offset;
@@ -557,7 +566,7 @@ int nd_pfn_probe(struct device *dev, str
nvdimm_bus_unlock(&ndns->dev);
if (!pfn_dev)
return -ENOMEM;
- pfn_sb = devm_kzalloc(dev, sizeof(*pfn_sb), GFP_KERNEL);
+ pfn_sb = devm_kmalloc(dev, sizeof(*pfn_sb), GFP_KERNEL);
nd_pfn = to_nd_pfn(pfn_dev);
nd_pfn->pfn_sb = pfn_sb;
rc = nd_pfn_validate(nd_pfn, PFN_SIG);
@@ -693,7 +702,7 @@ static int nd_pfn_init(struct nd_pfn *nd
u64 checksum;
int rc;
- pfn_sb = devm_kzalloc(&nd_pfn->dev, sizeof(*pfn_sb), GFP_KERNEL);
+ pfn_sb = devm_kmalloc(&nd_pfn->dev, sizeof(*pfn_sb), GFP_KERNEL);
if (!pfn_sb)
return -ENOMEM;
@@ -702,11 +711,14 @@ static int nd_pfn_init(struct nd_pfn *nd
sig = DAX_SIG;
else
sig = PFN_SIG;
+
rc = nd_pfn_validate(nd_pfn, sig);
if (rc != -ENODEV)
return rc;
/* no info block, do init */;
+ memset(pfn_sb, 0, sizeof(*pfn_sb));
+
nd_region = to_nd_region(nd_pfn->dev.parent);
if (nd_region->ro) {
dev_info(&nd_pfn->dev,
@@ -759,7 +771,7 @@ static int nd_pfn_init(struct nd_pfn *nd
memcpy(pfn_sb->uuid, nd_pfn->uuid, 16);
memcpy(pfn_sb->parent_uuid, nd_dev_to_uuid(&ndns->dev), 16);
pfn_sb->version_major = cpu_to_le16(1);
- pfn_sb->version_minor = cpu_to_le16(2);
+ pfn_sb->version_minor = cpu_to_le16(3);
pfn_sb->start_pad = cpu_to_le32(start_pad);
pfn_sb->end_trunc = cpu_to_le32(end_trunc);
pfn_sb->align = cpu_to_le32(nd_pfn->align);
--- a/drivers/nvdimm/pfn.h~libnvdimm-pfn-fix-fsdax-mode-namespace-info-block-zero-fields
+++ a/drivers/nvdimm/pfn.h
@@ -28,6 +28,7 @@ struct nd_pfn_sb {
__le32 end_trunc;
/* minor-version-2 record the base alignment of the mapping */
__le32 align;
+ /* minor-version-3 guarantee the padding and flags are zero */
u8 padding[4000];
__le64 checksum;
};
_