2020-01-24 12:06:34

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 000/343] 4.14.168-stable review

This is the start of the stable review cycle for the 4.14.168 release.
There are 343 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.

Responses should be made by Sun, 26 Jan 2020 09:26:30 +0000.
Anything received after that time might be too late.

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

thanks,

greg k-h

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

Greg Kroah-Hartman <[email protected]>
Linux 4.14.168-rc1

Finn Thain <[email protected]>
m68k: Call timer_interrupt() with interrupts disabled

Fabrice Gasnier <[email protected]>
serial: stm32: fix clearing interrupt error flags

Max Gurtovoy <[email protected]>
IB/iser: Fix dma_nents type definition

Andre Przywara <[email protected]>
arm64: dts: juno: Fix UART frequency

Sam Bobroff <[email protected]>
drm/radeon: fix bad DMA from INTERRUPT_CNTL2

Chuhong Yuan <[email protected]>
dmaengine: ti: edma: fix missed failure handling

Navid Emamdoost <[email protected]>
affs: fix a memory leak in affs_remount

H. Nikolaus Schaller <[email protected]>
mmc: core: fix wl1251 sdio quirks

H. Nikolaus Schaller <[email protected]>
mmc: sdio: fix wl1251 vendor id

Eric Dumazet <[email protected]>
packet: fix data-race in fanout_flow_is_huge()

Eric Dumazet <[email protected]>
net: neigh: use long type to store jiffies delta

Stephen Hemminger <[email protected]>
hv_netvsc: flag software created hash value

Tiezhu Yang <[email protected]>
MIPS: Loongson: Fix return value of loongson_hwmon_init

Marc Dionne <[email protected]>
afs: Fix large file support

Stefan Wahren <[email protected]>
net: qca_spi: Move reset_count to struct qcaspi

Jakub Kicinski <[email protected]>
net: netem: correct the parent's backlog when corrupted packet was dropped

Jakub Kicinski <[email protected]>
net: netem: fix error path for corrupted GSO frames

Robin Gong <[email protected]>
dmaengine: imx-sdma: fix size check for sdma script_number

Jeffrey Hugo <[email protected]>
drm/msm/dsi: Implement reset correctly

Eric Dumazet <[email protected]>
tcp: annotate lockless access to tcp_memory_pressure

Eric Dumazet <[email protected]>
net: add {READ|WRITE}_ONCE() annotations on ->rskq_accept_head

Eric Dumazet <[email protected]>
net: avoid possible false sharing in sk_leave_memory_pressure()

YueHaibing <[email protected]>
act_mirred: Fix mirred_init_module error handling

Antonio Borneo <[email protected]>
net: stmmac: fix length of PTP clock's name string

Eric Biggers <[email protected]>
llc: fix sk_buff refcounting in llc_conn_state_process()

Eric Biggers <[email protected]>
llc: fix another potential sk_buff leak in llc_ui_sendmsg()

Johannes Berg <[email protected]>
mac80211: accept deauth frames in IBSS mode

Jose Abreu <[email protected]>
net: stmmac: gmac4+: Not all Unicast addresses may be available

Ard Biesheuvel <[email protected]>
nvme: retain split access workaround for capability reads

Dan Carpenter <[email protected]>
net: ethernet: stmmac: Fix signedness bug in ipq806x_gmac_of_parse()

Dan Carpenter <[email protected]>
of: mdio: Fix a signedness bug in of_phy_get_and_connect()

Dan Carpenter <[email protected]>
net: axienet: fix a signedness bug in probe

Dan Carpenter <[email protected]>
net: stmmac: dwmac-meson8b: Fix signedness bug in probe

Dan Carpenter <[email protected]>
net: broadcom/bcmsysport: Fix signedness in bcm_sysport_probe()

Dan Carpenter <[email protected]>
net: hisilicon: Fix signedness bug in hix5hd2_dev_probe()

Dan Carpenter <[email protected]>
net: aquantia: Fix aq_vec_isr_legacy() return value

Filippo Sironi <[email protected]>
iommu/amd: Wait for completion of IOTLB flush in attach_device

Gerd Rausch <[email protected]>
net/rds: Fix 'ib_evt_handler_call' element in 'rds_ib_stat_names'

Håkon Bugge <[email protected]>
RDMA/cma: Fix false error message

Nicolas Boichat <[email protected]>
ath10k: adjust skb length in ath10k_sdio_mbox_rx_packet

Li Jin <[email protected]>
pinctrl: iproc-gpio: Fix incorrect pinconf configurations

Mao Wenan <[email protected]>
net: sonic: replace dev_kfree_skb in sonic_send_packet

Dan Robertson <[email protected]>
hwmon: (shtc1) fix shtc1 and shtw1 id mask

Firo Yang <[email protected]>
ixgbe: sync the first fragment unconditionally

Omar Sandoval <[email protected]>
btrfs: use correct count in btrfs_file_write_iter()

Filipe Manana <[email protected]>
Btrfs: fix inode cache waiters hanging on path allocation failure

Filipe Manana <[email protected]>
Btrfs: fix inode cache waiters hanging on failure to start caching thread

Filipe Manana <[email protected]>
Btrfs: fix hang when loading existing inode cache off disk

Govindarajulu Varadarajan <[email protected]>
scsi: fnic: fix msix interrupt allocation

Mao Wenan <[email protected]>
net: sonic: return NETDEV_TX_OK if failed to map buffer

Andrey Smirnov <[email protected]>
tty: serial: fsl_lpuart: Use appropriate lpuart32_* I/O funcs

Lorenzo Bianconi <[email protected]>
ath9k: dynack: fix possible deadlock in ath_dynack_node_{de}init

Colin Ian King <[email protected]>
iio: dac: ad5380: fix incorrect assignment to val

Colin Ian King <[email protected]>
bcma: fix incorrect update of BCMA_CORE_PCI_MDIO_DATA

Dexuan Cui <[email protected]>
irqdomain: Add the missing assignment of domain->fwnode for named fwnode

Dan Carpenter <[email protected]>
staging: greybus: light: fix a couple double frees

Masami Hiramatsu <[email protected]>
x86, perf: Fix the dependency of the x86 insn decoder selftest

Stephen Boyd <[email protected]>
power: supply: Init device wakeup after device_add()

Guenter Roeck <[email protected]>
hwmon: (lm75) Fix write operations for negative temperatures

Linus Torvalds <[email protected]>
Partially revert "kfifo: fix kfifo_alloc() and kfifo_init()"

Andy Shevchenko <[email protected]>
ahci: Do not export local variable ahci_em_messages

Yong Wu <[email protected]>
iommu/mediatek: Fix iova_to_phys PA start for 4GB mode

Nick Desaulniers <[email protected]>
mips: avoid explicit UB in assignment of mips_io_port_base

Bruno Thomsen <[email protected]>
rtc: pcf2127: bugfix: read rtc disables watchdog

Alexandre Kroupski <[email protected]>
media: atmel: atmel-isi: fix timeout value for stop streaming

Felix Fietkau <[email protected]>
mac80211: minstrel_ht: fix per-group max throughput rate initialization

Andy Shevchenko <[email protected]>
dmaengine: dw: platform: Switch to acpi_dma_controller_register()

Maxime Ripard <[email protected]>
ASoC: sun4i-i2s: RX and TX counter registers are swapped

Eric W. Biederman <[email protected]>
signal: Allow cifs and drbd to receive their terminating signals

Vasundhara Volam <[email protected]>
bnxt_en: Fix handling FRAG_ERR when NVM_INSTALL_UPDATE cmd fails

Gerd Rausch <[email protected]>
net/rds: Add a few missing rds_stat_names entries

YueHaibing <[email protected]>
ASoC: wm8737: Fix copy-paste error in wm8737_snd_controls

YueHaibing <[email protected]>
ASoC: cs4349: Use PM ops 'cs4349_runtime_pm'

YueHaibing <[email protected]>
ASoC: es8328: Fix copy-paste error in es8328_right_line_controls

Colin Ian King <[email protected]>
ext4: set error return correctly when ext4_htree_store_dirent fails

Iuliana Prodan <[email protected]>
crypto: caam - free resources in case caam_rng registration failed

Steve French <[email protected]>
cifs: fix rmmod regression in cifs.ko caused by force_sig changes

Mark Zhang <[email protected]>
net/mlx5: Fix mlx5_ifc_query_lag_out_bits

Fabrice Gasnier <[email protected]>
ARM: dts: stm32: add missing vdda-supply to adc on stm32h743i-eval

Jon Maloy <[email protected]>
tipc: reduce risk of wakeup queue starvation

Johannes Berg <[email protected]>
ALSA: aoa: onyx: always initialize register read value

Arnd Bergmann <[email protected]>
crypto: ccp - Reduce maximum stack usage

Thomas Gleixner <[email protected]>
x86/kgbd: Use NMI_VECTOR not APIC_DM_NMI

Arnd Bergmann <[email protected]>
mic: avoid statically declaring a 'struct device'.

Ruslan Bilovol <[email protected]>
usb: host: xhci-hub: fix extra endianness conversion

Arnd Bergmann <[email protected]>
qed: reduce maximum stack frame size

YueHaibing <[email protected]>
libertas_tf: Use correct channel range in lbtf_geo_init

Rafael J. Wysocki <[email protected]>
PM: sleep: Fix possible overflow in pm_system_cancel_wakeup()

Icenowy Zheng <[email protected]>
clk: sunxi-ng: v3s: add the missing PLL_DDR1

Colin Ian King <[email protected]>
scsi: libfc: fix null pointer dereference on a null lport

Wen Yang <[email protected]>
net: pasemi: fix an use-after-free in pasemi_mac_phy_init()

Xi Wang <[email protected]>
RDMA/hns: Fixs hw access invalid dma memory error

Arnd Bergmann <[email protected]>
devres: allow const resource arguments

David Howells <[email protected]>
rxrpc: Fix uninitialized error code in rxrpc_send_data_packet()

Andy Shevchenko <[email protected]>
mfd: intel-lpss: Release IDA resources

Kevin Mitchell <[email protected]>
iommu/amd: Make iommu_disable safer

Michael Chan <[email protected]>
bnxt_en: Fix ethtool selftest crash under error conditions.

Bryan O'Donoghue <[email protected]>
nvmem: imx-ocotp: Ensure WAIT bits are preserved when setting timing

Nathan Huckleberry <[email protected]>
clk: qcom: Fix -Wunused-const-variable

Andy Shevchenko <[email protected]>
dmaengine: hsu: Revert "set HSU_CH_MTSR to memory width"

Ravi Bangoria <[email protected]>
perf/ioctl: Add check for the sample_period value

Rob Clark <[email protected]>
drm/msm/a3xx: remove TPL1 regs from snapshot

Chen-Yu Tsai <[email protected]>
rtc: pcf8563: Clear event flags and disable interrupts before requesting irq

Chen-Yu Tsai <[email protected]>
rtc: pcf8563: Fix interrupt trigger method

Peter Ujfalusi <[email protected]>
ASoC: ti: davinci-mcasp: Fix slot mask settings when using multiple AXRs

Julian Wiedmann <[email protected]>
net/af_iucv: always register net_device notifier

Jakub Kicinski <[email protected]>
net: netem: fix backlog accounting for corrupted GSO frames

Jeffrey Hugo <[email protected]>
drm/msm/mdp5: Fix mdp5_cfg_init error return

Nathan Lynch <[email protected]>
powerpc/pseries/mobility: rebuild cacheinfo hierarchy post-migration

Nathan Lynch <[email protected]>
powerpc/cacheinfo: add cacheinfo_teardown, cacheinfo_rebuild

Michal Kalderon <[email protected]>
qed: iWARP - Use READ_ONCE and smp_store_release to access ep->state

Eric Auger <[email protected]>
iommu/vt-d: Duplicate iommu_resv_region objects per device list

George Wilkie <[email protected]>
mpls: fix warning with multi-label encap

Colin Ian King <[email protected]>
media: vivid: fix incorrect assignment operation when setting video mode

Florian Fainelli <[email protected]>
cpufreq: brcmstb-avs-cpufreq: Fix types for voltage/frequency

Florian Fainelli <[email protected]>
cpufreq: brcmstb-avs-cpufreq: Fix initial command check

Stephen Hemminger <[email protected]>
netvsc: unshare skb in VF rx handler

Eric Dumazet <[email protected]>
inet: frags: call inet_frags_fini() after unregister_pernet_subsys()

Eric W. Biederman <[email protected]>
signal/cifs: Fix cifs_put_tcp_session to call send_sig instead of force_sig

Lu Baolu <[email protected]>
iommu: Use right function to get group for device

Rafael J. Wysocki <[email protected]>
PCI: PM: Avoid possible suspend-to-idle issue

Nathan Chancellor <[email protected]>
misc: sgi-xp: Properly initialize buf in xpc_get_rsvd_page_pa

Erwan Le Ray <[email protected]>
serial: stm32: fix wakeup source initialization

Erwan Le Ray <[email protected]>
serial: stm32: Add support of TC bit status check

Erwan Le Ray <[email protected]>
serial: stm32: fix transmit_chars when tx is stopped

Erwan Le Ray <[email protected]>
serial: stm32: fix rx error handling

Hook, Gary <[email protected]>
crypto: ccp - Fix 3DES complaint from ccp-crypto module

Hook, Gary <[email protected]>
crypto: ccp - fix AES CFB error exposed by new test vectors

Christophe Leroy <[email protected]>
spi: spi-fsl-spi: call spi_finalize_current_message() at the end

Sagiv Ozeri <[email protected]>
RDMA/qedr: Fix incorrect device rate.

Jerome Brunet <[email protected]>
arm64: dts: meson: libretech-cc: set eMMC as removable

Jon Hunter <[email protected]>
dmaengine: tegra210-adma: Fix crash during probe

Jernej Skrabec <[email protected]>
ARM: dts: sun8i-h3: Fix wifi in Beelink X2 DT

Robert Richter <[email protected]>
EDAC/mc: Fix edac_mc_find() in case no device is found

Matthias Kaehlcke <[email protected]>
thermal: cpu_cooling: Actually trace CPU load in thermal_power_cpu_get_power

Brian Masney <[email protected]>
backlight: lm3630a: Return 0 on success in update_status functions

Dan Carpenter <[email protected]>
kdb: do a sanity check on the cpu in kdb_per_cpu()

Russell King <[email protected]>
ARM: riscpc: fix lack of keyboard interrupts after irq conversion

Bichao Zheng <[email protected]>
pwm: meson: Don't disable PWM when setting duty repeatedly

Martin Blumenstingl <[email protected]>
pwm: meson: Consider 128 a valid pre-divider

Florian Westphal <[email protected]>
netfilter: ebtables: CONFIG_COMPAT: reject trailing data after last rule

Iuliana Prodan <[email protected]>
crypto: caam - fix caam_dump_sg that iterates through scatterlist

Dan Carpenter <[email protected]>
platform/x86: alienware-wmi: printing the wrong error code

Dan Carpenter <[email protected]>
media: davinci/vpbe: array underflow in vpbe_enum_outputs()

Dan Carpenter <[email protected]>
media: omap_vout: potential buffer overflow in vidioc_dqbuf()

YueHaibing <[email protected]>
l2tp: Fix possible NULL pointer dereference

Parav Pandit <[email protected]>
vfio/mdev: Fix aborting mdev child device removal if one fails

Parav Pandit <[email protected]>
vfio/mdev: Avoid release parent reference during error path

David Howells <[email protected]>
afs: Fix the afs.cell and afs.volume xattr handlers

Igor Konopko <[email protected]>
lightnvm: pblk: fix lock order in pblk_rb_tear_down_check

Pan Bian <[email protected]>
mmc: core: fix possible use after free of host

Sameer Pujar <[email protected]>
dmaengine: tegra210-adma: restore channel status

Sameeh Jubran <[email protected]>
net: ena: fix ena_com_fill_hash_function() implementation

Sameeh Jubran <[email protected]>
net: ena: fix incorrect test of supported hash function

Sameeh Jubran <[email protected]>
net: ena: fix: Free napi resources when ena_up() fails

Sameeh Jubran <[email protected]>
net: ena: fix swapped parameters when calling ena_com_indirect_table_fill_entry

Lu Baolu <[email protected]>
iommu/vt-d: Make kernel parameter igfx_off work with vIOMMU

Jack Morgenstein <[email protected]>
IB/mlx5: Add missing XRC options to QP optional params mask

Minas Harutyunyan <[email protected]>
dwc2: gadget: Fix completed transfer size calculation in DDMA

Arnd Bergmann <[email protected]>
usb: gadget: fsl: fix link error against usb-gadget module

Jerome Brunet <[email protected]>
ASoC: fix valid stream condition

Willem de Bruijn <[email protected]>
packet: in recvmsg msg_name return at least sizeof sockaddr_ll

Bart Van Assche <[email protected]>
scsi: qla2xxx: Avoid that qlt_send_resp_ctio() corrupts memory

Bart Van Assche <[email protected]>
scsi: qla2xxx: Fix a format specifier

Hongbo Yao <[email protected]>
irqchip/gic-v3-its: fix some definitions of inner cacheability attributes

Trond Myklebust <[email protected]>
NFS: Don't interrupt file writeout due to fatal errors

Takashi Iwai <[email protected]>
ALSA: usb-audio: Handle the error from snd_usb_mixer_apply_create_quirk()

Alexandru Ardelean <[email protected]>
dmaengine: axi-dmac: Don't check the number of frames for alignment

Dan Carpenter <[email protected]>
6lowpan: Off by one handling ->nexthdr

Akinobu Mita <[email protected]>
media: ov2659: fix unbalanced mutex_lock/unlock

Vladimir Oltean <[email protected]>
ARM: dts: ls1021: Fix SGMII PCS link remaining down after PHY disconnect

Ben Hutchings <[email protected]>
powerpc: vdso: Make vdso32 installation conditional in vdso_install

Kees Cook <[email protected]>
selftests/ipc: Fix msgque compiler warnings

Jie Liu <[email protected]>
tipc: set sysctl_tipc_rmem and named_timeout right range

Colin Ian King <[email protected]>
platform/x86: alienware-wmi: fix kfree on potentially uninitialized pointer

Guenter Roeck <[email protected]>
hwmon: (w83627hf) Use request_muxed_region for Super-IO accesses

Yunsheng Lin <[email protected]>
net: hns3: fix for vport->bw_limit overflow problem

YueHaibing <[email protected]>
ARM: pxa: ssp: Fix "WARNING: invalid free of devm_ allocated data"

Bart Van Assche <[email protected]>
scsi: target/core: Fix a race condition in the LUN lookup code

Bart Van Assche <[email protected]>
scsi: qla2xxx: Unregister chrdev if module initialization fails

YueHaibing <[email protected]>
ehea: Fix a copy-paste err in ehea_init_port_res

Martin Sperl <[email protected]>
spi: bcm2835aux: fix driver to not allow 65535 (=-1) cs-gpios

Dan Carpenter <[email protected]>
soc/fsl/qe: Fix an error code in qe_pin_request()

Sowjanya Komatineni <[email protected]>
spi: tegra114: configure dma burst size to fifo trig level

Sowjanya Komatineni <[email protected]>
spi: tegra114: flush fifos

Sowjanya Komatineni <[email protected]>
spi: tegra114: terminate dma and reset on transfer timeout

Sowjanya Komatineni <[email protected]>
spi: tegra114: fix for unpacked mode transfers

Sowjanya Komatineni <[email protected]>
spi: tegra114: clear packed bit for unpacked mode

YueHaibing <[email protected]>
media: tw5864: Fix possible NULL pointer dereference in tw5864_handle_frame

Arnd Bergmann <[email protected]>
media: davinci-isif: avoid uninitialized variable use

Tony Lindgren <[email protected]>
ARM: OMAP2+: Fix potentially uninitialized return value for _setup_reset()

Maxime Ripard <[email protected]>
arm64: dts: allwinner: a64: Add missing PIO clocks

Finn Thain <[email protected]>
m68k: mac: Fix VIA timer counter accesses

Jon Maloy <[email protected]>
tipc: tipc clang warning

Arnd Bergmann <[email protected]>
jfs: fix bogus variable self-initialization

Axel Lin <[email protected]>
regulator: tps65086: Fix tps65086_ldoa1_ranges for selector 0xB

Nicholas Mc Guire <[email protected]>
media: cx23885: check allocation return

Dan Carpenter <[email protected]>
media: wl128x: Fix an error code in fm_download_firmware()

Dan Carpenter <[email protected]>
media: cx18: update *pos correctly in cx18_read_pos()

Dan Carpenter <[email protected]>
media: ivtv: update *pos correctly in ivtv_read_pos()

Axel Lin <[email protected]>
regulator: lp87565: Fix missing register for LP87565_BUCK_0

Kangjie Lu <[email protected]>
net: sh_eth: fix a missing check of of_get_phy_mode

Dan Carpenter <[email protected]>
xen, cpu_hotplug: Prevent an out of bounds access

Dan Carpenter <[email protected]>
drivers/rapidio/rio_cm.c: fix potential oops in riocm_ch_listen()

Steve Sistare <[email protected]>
scsi: megaraid_sas: reduce module load time

Qian Cai <[email protected]>
x86/mm: Remove unused variable 'cpu'

Guenter Roeck <[email protected]>
nios2: ksyms: Add missing symbol exports

Rashmica Gupta <[email protected]>
powerpc/mm: Check secondary hash page table

Igor Russkikh <[email protected]>
net: aquantia: fixed instack structure overflow

Trond Myklebust <[email protected]>
NFSv4/flexfiles: Fix invalid deref in FF_LAYOUT_DEVID_NODE()

Pablo Neira Ayuso <[email protected]>
netfilter: nft_set_hash: fix lookups with fixed size hash on big endian

Axel Lin <[email protected]>
regulator: wm831x-dcdc: Fix list of wm831x_dcdc_ilim from mA to uA

Vladimir Murzin <[email protected]>
ARM: 8848/1: virt: Align GIC version check with arm64 counterpart

Marek Szyprowski <[email protected]>
ARM: 8847/1: pm: fix HYP/SVC mode mismatch when MCPM is used

Stefan Wahren <[email protected]>
mmc: sdhci-brcmstb: handle mmc_of_parse() errors during probe

Trond Myklebust <[email protected]>
NFS/pnfs: Bulk destroy of layouts needs to be safe w.r.t. umount

Mattias Jacobsson <[email protected]>
platform/x86: wmi: fix potential null pointer dereference

Marek Szyprowski <[email protected]>
clocksource/drivers/exynos_mct: Fix error path in timer resources initialization

Chen-Yu Tsai <[email protected]>
clocksource/drivers/sun5i: Fail gracefully when clock rate is unavailable

Trond Myklebust <[email protected]>
NFS: Fix a soft lockup in the delegation recovery code

Michael Ellerman <[email protected]>
powerpc/64s: Fix logic when handling unknown CPU features

Nathan Chancellor <[email protected]>
staging: rtlwifi: Use proper enum for return in halmac_parse_psd_data_88xx

Eric W. Biederman <[email protected]>
fs/nfs: Fix nfs_parse_devname to not modify it's argument

Takashi Iwai <[email protected]>
ASoC: qcom: Fix of-node refcount unbalance in apq8016_sbc_parse_of()

Colin Ian King <[email protected]>
drm/nouveau/pmu: don't print reply values if exec is false

Colin Ian King <[email protected]>
drm/nouveau/bios/ramcfg: fix missing parentheses when calculating RON

Vinod Koul <[email protected]>
net: dsa: qca8k: Enable delay for RGMII_ID mode

Axel Lin <[email protected]>
regulator: pv88090: Fix array out-of-bounds access

Axel Lin <[email protected]>
regulator: pv88080: Fix array out-of-bounds access

Axel Lin <[email protected]>
regulator: pv88060: Fix array out-of-bounds access

YueHaibing <[email protected]>
cdc-wdm: pass return value of recover_from_urb_loss

Robin Murphy <[email protected]>
dmaengine: mv_xor: Use correct device for DMA API

Nicholas Mc Guire <[email protected]>
staging: r8822be: check kzalloc return or bail

Alexey Kardashevskiy <[email protected]>
KVM: PPC: Release all hardware TCE tables attached to a group

Vadim Pasternak <[email protected]>
hwmon: (pmbus/tps53679) Fix driver info initialization in probe routine

Eric Auger <[email protected]>
vfio_pci: Enable memory accesses before calling pci_map_rom

David Howells <[email protected]>
keys: Timestamp new keys

Ming Lei <[email protected]>
block: don't use bio->bi_vcnt to figure out segment number

Sven Van Asbroeck <[email protected]>
usb: phy: twl6030-usb: fix possible use-after-free on remove

Wen Yang <[email protected]>
PCI: endpoint: functions: Use memcpy_fromio()/memcpy_toio()

Geert Uytterhoeven <[email protected]>
pinctrl: sh-pfc: sh73a0: Fix fsic_spdif pin groups

Geert Uytterhoeven <[email protected]>
pinctrl: sh-pfc: r8a7792: Fix vin1_data18_b pin group

Geert Uytterhoeven <[email protected]>
pinctrl: sh-pfc: r8a7791: Fix scifb2_data_c pin group

Geert Uytterhoeven <[email protected]>
pinctrl: sh-pfc: emev2: Add missing pinmux functions

Dan Carpenter <[email protected]>
drm/etnaviv: potential NULL dereference

Steve Wise <[email protected]>
iw_cxgb4: use tos when finding ipv6 routes

Steve Wise <[email protected]>
iw_cxgb4: use tos when importing the endpoint

YueHaibing <[email protected]>
fbdev: chipsfb: remove set but not used variable 'size'

Colin Ian King <[email protected]>
rtc: pm8xxx: fix unintended sign extension

Colin Ian King <[email protected]>
rtc: 88pm80x: fix unintended sign extension

Colin Ian King <[email protected]>
rtc: 88pm860x: fix unintended sign extension

Uwe Kleine-König <[email protected]>
rtc: ds1307: rx8130: Fix alarm handling

Moritz Fischer <[email protected]>
net: phy: fixed_phy: Fix fixed_phy not checking GPIO

Michael Kao <[email protected]>
thermal: mediatek: fix register index error

Colin Ian King <[email protected]>
rtc: ds1672: fix unintended sign extension

Colin Ian King <[email protected]>
staging: most: cdev: add missing check for cdev_add failure

Sara Sharon <[email protected]>
iwlwifi: mvm: fix RSS config command

Vladimir Zapolskiy <[email protected]>
ARM: dts: lpc32xx: phy3250: fix SD card regulator voltage

Vladimir Zapolskiy <[email protected]>
ARM: dts: lpc32xx: fix ARM PrimeCell LCD controller clocks property

Vladimir Zapolskiy <[email protected]>
ARM: dts: lpc32xx: fix ARM PrimeCell LCD controller variant

Vladimir Zapolskiy <[email protected]>
ARM: dts: lpc32xx: reparent keypad controller to SIC1

Vladimir Zapolskiy <[email protected]>
ARM: dts: lpc32xx: add required clocks property to keypad device node

Rafael J. Wysocki <[email protected]>
driver core: Do not resume suppliers under device_links_write_lock()

Corentin Labbe <[email protected]>
crypto: crypto4xx - Fix wrong ppc4xx_trng_probe()/ppc4xx_trng_remove() arguments

Liu Jian <[email protected]>
driver: uio: fix possible use-after-free in __uio_register_device

Liu Jian <[email protected]>
driver: uio: fix possible memory leak in __uio_register_device

YueHaibing <[email protected]>
tty: ipwireless: Fix potential NULL pointer dereference

Johannes Berg <[email protected]>
iwlwifi: mvm: fix A-MPDU reference assignment

Moni Shoua <[email protected]>
net/mlx5: Take lock with IRQs disabled to avoid deadlock

Mordechay Goodstein <[email protected]>
iwlwifi: mvm: avoid possible access out of array.

Chen-Yu Tsai <[email protected]>
clk: sunxi-ng: sun8i-a23: Enable PLL-MIPI LDOs when ungating it

YueHaibing <[email protected]>
spi/topcliff_pch: Fix potential NULL dereference on allocation error

Eric Wong <[email protected]>
rtc: cmos: ignore bogus century byte

Israel Rukshin <[email protected]>
IB/iser: Pass the correct number of entries for dma mapped SGL

Stefan Agner <[email protected]>
ASoC: imx-sgtl5000: put of nodes if finding codec fails

Eric Biggers <[email protected]>
crypto: tgr192 - fix unaligned memory access

YueHaibing <[email protected]>
crypto: brcm - Fix some set-but-not-used warning

Masahiro Yamada <[email protected]>
kbuild: mark prepare0 as PHONY to fix external module build

Pawe? Chmiel <[email protected]>
media: s5p-jpeg: Correct step and max values for V4L2_CID_JPEG_RESTART_INTERVAL

Dan Carpenter <[email protected]>
drm/etnaviv: NULL vs IS_ERR() buf in etnaviv_core_dump()

Raju Rangoju <[email protected]>
RDMA/iw_cxgb4: Fix the unchecked ep dereference

Charles Keepax <[email protected]>
spi: cadence: Correct initialisation of runtime PM

Loic Poulain <[email protected]>
arm64: dts: apq8016-sbc: Increase load on l11 for SDCARD

YueHaibing <[email protected]>
drm/shmob: Fix return value check in shmob_drm_probe

Gal Pressman <[email protected]>
RDMA/qedr: Fix out of bounds index check in query pkey

Gal Pressman <[email protected]>
RDMA/ocrdma: Fix out of bounds index check in query pkey

Gal Pressman <[email protected]>
IB/usnic: Fix out of bounds index check in query pkey

Jonas Gorski <[email protected]>
MIPS: BCM63XX: drop unused and broken DSP platform device

Yangtao Li <[email protected]>
clk: dove: fix refcount leak in dove_clk_init()

Yangtao Li <[email protected]>
clk: mv98dx3236: fix refcount leak in mv98dx3236_clk_init()

Yangtao Li <[email protected]>
clk: armada-xp: fix refcount leak in axp_clk_init()

Yangtao Li <[email protected]>
clk: kirkwood: fix refcount leak in kirkwood_clk_init()

Yangtao Li <[email protected]>
clk: armada-370: fix refcount leak in a370_clk_init()

Yangtao Li <[email protected]>
clk: vf610: fix refcount leak in vf610_clocks_init()

Yangtao Li <[email protected]>
clk: imx7d: fix refcount leak in imx7d_clocks_init()

Yangtao Li <[email protected]>
clk: imx6sx: fix refcount leak in imx6sx_clocks_init()

Yangtao Li <[email protected]>
clk: imx6q: fix refcount leak in imx6q_clocks_init()

Yangtao Li <[email protected]>
clk: samsung: exynos4: fix refcount leak in exynos4_get_xom()

Yangtao Li <[email protected]>
clk: socfpga: fix refcount leak

Yangtao Li <[email protected]>
clk: qoriq: fix refcount leak in clockgen_init()

Yangtao Li <[email protected]>
clk: highbank: fix refcount leak in hb_clk_init()

Dan Carpenter <[email protected]>
Input: nomadik-ske-keypad - fix a loop timeout test

Petr Machata <[email protected]>
vxlan: changelink: Fix handling of default remotes

Geert Uytterhoeven <[email protected]>
pinctrl: sh-pfc: sh7734: Remove bogus IPSR10 value

Geert Uytterhoeven <[email protected]>
pinctrl: sh-pfc: sh7269: Add missing PCIOR0 field

Geert Uytterhoeven <[email protected]>
pinctrl: sh-pfc: r8a77995: Remove bogus SEL_PWM[0-3]_3 configurations

Geert Uytterhoeven <[email protected]>
pinctrl: sh-pfc: sh7734: Add missing IPSR11 field

Geert Uytterhoeven <[email protected]>
pinctrl: sh-pfc: r8a7794: Remove bogus IPSR9 field

Geert Uytterhoeven <[email protected]>
pinctrl: sh-pfc: sh73a0: Add missing TO pin to tpu4_to3 group

Geert Uytterhoeven <[email protected]>
pinctrl: sh-pfc: r8a7791: Remove bogus marks from vin1_b_data18 group

Geert Uytterhoeven <[email protected]>
pinctrl: sh-pfc: r8a7791: Remove bogus ctrl marks from qspi_data4_b group

Geert Uytterhoeven <[email protected]>
pinctrl: sh-pfc: r8a7740: Add missing LCD0 marks to lcd0_data24_1 group

Geert Uytterhoeven <[email protected]>
pinctrl: sh-pfc: r8a7740: Add missing REF125CK pin to gether_gmii group

Kelvin Cao <[email protected]>
switchtec: Remove immediate status check after submitting MRPC command

Stefan Wahren <[email protected]>
staging: bcm2835-camera: Abort probe if there is no camera

Yuval Shaia <[email protected]>
IB/rxe: Fix incorrect cache cleanup in error flow

Yoshihiro Shimoda <[email protected]>
net: phy: Fix not to call phy_resume() if PHY is not attached

Lyude Paul <[email protected]>
drm/dp_mst: Skip validating ports during destruction, just ref

YueHaibing <[email protected]>
exportfs: fix 'passing zero to ERR_PTR()' warning

Colin Ian King <[email protected]>
pcrypt: use format specifier in kobject_add

Gustavo A. R. Silva <[email protected]>
NTB: ntb_hw_idt: replace IS_ERR_OR_NULL with regular NULL checks

Petr Machata <[email protected]>
mlxsw: reg: QEEC: Add minimum shaper fields

Maxime Ripard <[email protected]>
drm/sun4i: hdmi: Fix double flag assignation

Christophe Leroy <[email protected]>
powerpc/kgdb: add kgdb_arch_set/remove_breakpoint()

Hans de Goede <[email protected]>
pwm: lpss: Release runtime-pm reference from the driver's remove callback

Spencer E. Olson <[email protected]>
staging: comedi: ni_mio_common: protect register write overflow

Nicolas Huaman <[email protected]>
ALSA: usb-audio: update quirk for B&W PX to remove microphone

Linus Walleij <[email protected]>
regulator: fixed: Default enable high on DT regulators

Alex Estrin <[email protected]>
IB/hfi1: Add mtu check for operational data VLs

Zhu Yanjun <[email protected]>
IB/rxe: replace kvfree with vfree

John Garry <[email protected]>
drm/hisilicon: hibmc: Don't overwrite fb helper surface depth

Jitendra Bhivare <[email protected]>
PCI: iproc: Remove PAXC slot check to allow VF support

Jann Horn <[email protected]>
apparmor: don't try to replace stale label in ptrace access check

Anders Roxell <[email protected]>
ALSA: hda: fix unused variable warning

Dan Carpenter <[email protected]>
drm/virtio: fix bounds check in virtio_gpu_cmd_get_capset()

Peter Rosin <[email protected]>
drm/sti: do not remove the drm_bridge that was never added

Jean-Jacques Hiblot <[email protected]>
leds: tlc591xx: update the maximum brightness

Corentin Labbe <[email protected]>
crypto: sun4i-ss - fix big endian issues

Lorenzo Bianconi <[email protected]>
mt7601u: fix bbp version check in mt7601u_wait_bbp_ready

Tung Nguyen <[email protected]>
tipc: fix wrong timeout input for tipc_wait_for_cond()

Ard Biesheuvel <[email protected]>
powerpc/archrandom: fix arch_get_random_seed_int()

Jarkko Nikula <[email protected]>
mfd: intel-lpss: Add default I2C device properties for Gemini Lake

Jan Kara <[email protected]>
xfs: Sanity check flags of Q_XQUOTARM call


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

Diffstat:

Makefile | 8 +-
arch/arm/boot/dts/lpc3250-phy3250.dts | 4 +-
arch/arm/boot/dts/lpc32xx.dtsi | 10 +-
arch/arm/boot/dts/ls1021a-twr.dts | 9 +-
arch/arm/boot/dts/ls1021a.dtsi | 11 +-
arch/arm/boot/dts/stm32h743i-eval.dts | 1 +
arch/arm/boot/dts/sun8i-h3-beelink-x2.dts | 4 +
arch/arm/common/mcpm_entry.c | 2 +-
arch/arm/include/asm/suspend.h | 1 +
arch/arm/kernel/hyp-stub.S | 4 +-
arch/arm/kernel/sleep.S | 12 ++
arch/arm/mach-omap2/omap_hwmod.c | 2 +-
arch/arm/mach-rpc/irq.c | 3 +-
arch/arm/plat-pxa/ssp.c | 6 -
arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 3 +-
.../dts/amlogic/meson-gxl-s905x-libretech-cc.dts | 1 -
arch/arm64/boot/dts/arm/juno-clocks.dtsi | 4 +-
arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi | 2 +
arch/m68k/amiga/cia.c | 9 ++
arch/m68k/atari/ataints.c | 4 +-
arch/m68k/atari/time.c | 15 ++-
arch/m68k/bvme6000/config.c | 20 +--
arch/m68k/hp300/time.c | 10 +-
arch/m68k/mac/via.c | 119 ++++++++++-------
arch/m68k/mvme147/config.c | 18 +--
arch/m68k/mvme16x/config.c | 21 +--
arch/m68k/q40/q40ints.c | 19 +--
arch/m68k/sun3/sun3ints.c | 3 +
arch/m68k/sun3x/time.c | 16 ++-
arch/mips/bcm63xx/Makefile | 6 +-
arch/mips/bcm63xx/boards/board_bcm963xx.c | 20 ---
arch/mips/bcm63xx/dev-dsp.c | 56 --------
arch/mips/include/asm/io.h | 14 +-
.../include/asm/mach-bcm63xx/bcm63xx_dev_dsp.h | 14 --
.../mips/include/asm/mach-bcm63xx/board_bcm963xx.h | 5 -
arch/mips/kernel/setup.c | 2 +-
arch/nios2/kernel/nios2_ksyms.c | 12 ++
arch/powerpc/Makefile | 2 +
arch/powerpc/include/asm/archrandom.h | 2 +-
arch/powerpc/include/asm/kgdb.h | 5 +-
arch/powerpc/kernel/cacheinfo.c | 21 +++
arch/powerpc/kernel/cacheinfo.h | 4 +
arch/powerpc/kernel/dt_cpu_ftrs.c | 17 +--
arch/powerpc/kernel/kgdb.c | 43 ++++--
arch/powerpc/kvm/book3s_64_vio.c | 1 -
arch/powerpc/mm/dump_hashpagetable.c | 2 +-
arch/powerpc/platforms/pseries/mobility.c | 10 ++
arch/x86/Kconfig.debug | 2 +-
arch/x86/kernel/kgdb.c | 2 +-
arch/x86/mm/tlb.c | 3 -
block/blk-merge.c | 8 +-
crypto/pcrypt.c | 2 +-
crypto/tgr192.c | 6 +-
drivers/ata/libahci.c | 1 -
drivers/base/core.c | 20 ++-
drivers/base/power/wakeup.c | 2 +-
drivers/bcma/driver_pci.c | 4 +-
drivers/block/drbd/drbd_main.c | 2 +
drivers/clk/clk-highbank.c | 1 +
drivers/clk/clk-qoriq.c | 1 +
drivers/clk/imx/clk-imx6q.c | 1 +
drivers/clk/imx/clk-imx6sx.c | 1 +
drivers/clk/imx/clk-imx7d.c | 1 +
drivers/clk/imx/clk-vf610.c | 1 +
drivers/clk/mvebu/armada-370.c | 4 +-
drivers/clk/mvebu/armada-xp.c | 4 +-
drivers/clk/mvebu/dove.c | 8 +-
drivers/clk/mvebu/kirkwood.c | 2 +
drivers/clk/mvebu/mv98dx3236.c | 4 +-
drivers/clk/qcom/gcc-msm8996.c | 36 -----
drivers/clk/samsung/clk-exynos4.c | 1 +
drivers/clk/socfpga/clk-pll-a10.c | 1 +
drivers/clk/socfpga/clk-pll.c | 1 +
drivers/clk/sunxi-ng/ccu-sun8i-a23.c | 2 +-
drivers/clk/sunxi-ng/ccu-sun8i-v3s.c | 19 ++-
drivers/clk/sunxi-ng/ccu-sun8i-v3s.h | 6 +-
drivers/clocksource/exynos_mct.c | 14 +-
drivers/clocksource/timer-sun5i.c | 10 ++
drivers/cpufreq/brcmstb-avs-cpufreq.c | 12 +-
drivers/crypto/amcc/crypto4xx_trng.h | 4 +-
drivers/crypto/bcm/cipher.c | 6 +-
drivers/crypto/caam/caamrng.c | 5 +-
drivers/crypto/caam/error.c | 2 +-
drivers/crypto/ccp/ccp-crypto-aes.c | 8 +-
drivers/crypto/ccp/ccp-ops.c | 67 +++++-----
drivers/crypto/sunxi-ss/sun4i-ss-hash.c | 21 +--
drivers/dma/dma-axi-dmac.c | 2 +-
drivers/dma/dw/platform.c | 14 +-
drivers/dma/edma.c | 6 +-
drivers/dma/hsu/hsu.c | 4 +-
drivers/dma/imx-sdma.c | 8 ++
drivers/dma/mv_xor.c | 2 +-
drivers/dma/tegra210-adma.c | 72 ++++++++--
drivers/edac/edac_mc.c | 12 +-
drivers/gpu/drm/drm_dp_mst_topology.c | 15 ++-
drivers/gpu/drm/etnaviv/etnaviv_dump.c | 2 +-
drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c | 2 +-
drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_fbdev.c | 1 -
drivers/gpu/drm/msm/adreno/a3xx_gpu.c | 24 ++--
drivers/gpu/drm/msm/dsi/dsi_host.c | 6 +-
drivers/gpu/drm/msm/mdp/mdp5/mdp5_cfg.c | 2 +-
drivers/gpu/drm/nouveau/nvkm/subdev/fb/gddr3.c | 2 +-
drivers/gpu/drm/nouveau/nvkm/subdev/pmu/memx.c | 4 +-
drivers/gpu/drm/radeon/cik.c | 4 +-
drivers/gpu/drm/radeon/r600.c | 4 +-
drivers/gpu/drm/radeon/si.c | 4 +-
drivers/gpu/drm/shmobile/shmob_drm_drv.c | 4 +-
drivers/gpu/drm/sti/sti_hda.c | 1 -
drivers/gpu/drm/sti/sti_hdmi.c | 1 -
drivers/gpu/drm/sun4i/sun4i_hdmi_tmds_clk.c | 2 +-
drivers/gpu/drm/virtio/virtgpu_vq.c | 5 +-
drivers/hwmon/lm75.c | 2 +-
drivers/hwmon/pmbus/tps53679.c | 9 +-
drivers/hwmon/shtc1.c | 2 +-
drivers/hwmon/w83627hf.c | 42 +++++-
drivers/iio/dac/ad5380.c | 2 +-
drivers/infiniband/core/cma.c | 2 +-
drivers/infiniband/hw/cxgb4/cm.c | 24 ++--
drivers/infiniband/hw/hfi1/chip.c | 26 +++-
drivers/infiniband/hw/hns/hns_roce_qp.c | 1 -
drivers/infiniband/hw/mlx5/qp.c | 21 +++
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 2 +-
drivers/infiniband/hw/qedr/verbs.c | 27 ++--
drivers/infiniband/hw/usnic/usnic_ib_verbs.c | 2 +-
drivers/infiniband/sw/rxe/rxe_cq.c | 4 +-
drivers/infiniband/sw/rxe/rxe_pool.c | 26 ++--
drivers/infiniband/sw/rxe/rxe_qp.c | 5 +-
drivers/infiniband/ulp/iser/iscsi_iser.h | 2 +-
drivers/infiniband/ulp/iser/iser_memory.c | 10 +-
drivers/input/keyboard/nomadik-ske-keypad.c | 2 +-
drivers/iommu/amd_iommu.c | 2 +
drivers/iommu/amd_iommu_init.c | 3 +
drivers/iommu/intel-iommu.c | 39 +++---
drivers/iommu/iommu.c | 6 +-
drivers/iommu/mtk_iommu.c | 26 +++-
drivers/leds/leds-tlc591xx.c | 7 +-
drivers/lightnvm/pblk-rb.c | 2 +-
drivers/media/i2c/ov2659.c | 2 +-
drivers/media/pci/cx18/cx18-fileops.c | 2 +-
drivers/media/pci/cx23885/cx23885-dvb.c | 5 +-
drivers/media/pci/ivtv/ivtv-fileops.c | 2 +-
drivers/media/pci/tw5864/tw5864-video.c | 4 +-
drivers/media/platform/atmel/atmel-isi.c | 2 +-
drivers/media/platform/davinci/isif.c | 9 --
drivers/media/platform/davinci/vpbe.c | 2 +-
drivers/media/platform/omap/omap_vout.c | 15 +--
drivers/media/platform/s5p-jpeg/jpeg-core.c | 2 +-
drivers/media/platform/vivid/vivid-osd.c | 2 +-
drivers/media/radio/wl128x/fmdrv_common.c | 5 +-
drivers/mfd/intel-lpss-pci.c | 28 ++--
drivers/mfd/intel-lpss.c | 1 +
drivers/misc/mic/card/mic_x100.c | 28 ++--
drivers/misc/sgi-xp/xpc_partition.c | 2 +-
drivers/mmc/core/host.c | 2 -
drivers/mmc/core/quirks.h | 7 +
drivers/mmc/host/sdhci-brcmstb.c | 4 +-
drivers/net/dsa/qca8k.c | 12 ++
drivers/net/dsa/qca8k.h | 1 +
drivers/net/ethernet/amazon/ena/ena_com.c | 3 +-
drivers/net/ethernet/amazon/ena/ena_ethtool.c | 4 +-
drivers/net/ethernet/amazon/ena/ena_netdev.c | 1 +
drivers/net/ethernet/aquantia/atlantic/aq_vec.c | 15 +--
.../ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c | 4 +-
.../ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c | 4 +-
drivers/net/ethernet/broadcom/bcmsysport.c | 2 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 18 ++-
drivers/net/ethernet/hisilicon/hix5hd2_gmac.c | 2 +-
.../ethernet/hisilicon/hns3/hns3pf/hclge_main.h | 2 +-
drivers/net/ethernet/ibm/ehea/ehea_main.c | 2 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 16 ++-
drivers/net/ethernet/mellanox/mlx5/core/qp.c | 5 +-
drivers/net/ethernet/mellanox/mlxsw/reg.h | 22 +++-
drivers/net/ethernet/natsemi/sonic.c | 6 +-
drivers/net/ethernet/pasemi/pasemi_mac.c | 2 +-
drivers/net/ethernet/qlogic/qed/qed_iwarp.c | 16 ++-
drivers/net/ethernet/qlogic/qed/qed_l2.c | 34 +++--
drivers/net/ethernet/qualcomm/qca_spi.c | 9 +-
drivers/net/ethernet/qualcomm/qca_spi.h | 1 +
drivers/net/ethernet/renesas/sh_eth.c | 6 +-
.../net/ethernet/stmicro/stmmac/dwmac-ipq806x.c | 2 +-
.../net/ethernet/stmicro/stmmac/dwmac-meson8b.c | 2 +-
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c | 2 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c | 2 +-
drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 2 +-
drivers/net/hyperv/netvsc_drv.c | 13 +-
drivers/net/phy/fixed_phy.c | 6 +-
drivers/net/phy/phy_device.c | 11 +-
drivers/net/vxlan.c | 7 +-
drivers/net/wireless/ath/ath10k/sdio.c | 29 +++--
drivers/net/wireless/ath/ath9k/dynack.c | 8 +-
drivers/net/wireless/intel/iwlwifi/mvm/fw.c | 12 +-
drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c | 2 +-
drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 19 ++-
drivers/net/wireless/marvell/libertas_tf/cmd.c | 2 +-
drivers/net/wireless/mediatek/mt7601u/phy.c | 2 +-
drivers/ntb/hw/idt/ntb_hw_idt.c | 8 +-
drivers/nvme/host/pci.c | 2 +-
drivers/nvmem/imx-ocotp.c | 3 +-
drivers/of/of_mdio.c | 2 +-
drivers/pci/endpoint/functions/pci-epf-test.c | 4 +-
drivers/pci/host/pcie-iproc.c | 8 --
drivers/pci/pci-driver.c | 17 ++-
drivers/pci/switch/switchtec.c | 4 -
drivers/pinctrl/bcm/pinctrl-iproc-gpio.c | 96 +++++++++++---
drivers/pinctrl/sh-pfc/pfc-emev2.c | 20 +++
drivers/pinctrl/sh-pfc/pfc-r8a7740.c | 3 +-
drivers/pinctrl/sh-pfc/pfc-r8a7791.c | 8 +-
drivers/pinctrl/sh-pfc/pfc-r8a7792.c | 1 +
drivers/pinctrl/sh-pfc/pfc-r8a7794.c | 2 +-
drivers/pinctrl/sh-pfc/pfc-r8a77995.c | 8 +-
drivers/pinctrl/sh-pfc/pfc-sh7269.c | 2 +-
drivers/pinctrl/sh-pfc/pfc-sh73a0.c | 4 +-
drivers/pinctrl/sh-pfc/pfc-sh7734.c | 4 +-
drivers/platform/mips/cpu_hwmon.c | 2 +-
drivers/platform/x86/alienware-wmi.c | 19 ++-
drivers/platform/x86/wmi.c | 3 +
drivers/power/supply/power_supply_core.c | 10 +-
drivers/pwm/pwm-lpss.c | 6 +
drivers/pwm/pwm-meson.c | 9 +-
drivers/rapidio/rio_cm.c | 4 +-
drivers/regulator/fixed.c | 11 +-
drivers/regulator/lp87565-regulator.c | 2 +-
drivers/regulator/pv88060-regulator.c | 2 +-
drivers/regulator/pv88080-regulator.c | 2 +-
drivers/regulator/pv88090-regulator.c | 2 +-
drivers/regulator/tps65086-regulator.c | 4 +-
drivers/regulator/wm831x-dcdc.c | 4 +-
drivers/rtc/rtc-88pm80x.c | 21 ++-
drivers/rtc/rtc-88pm860x.c | 21 ++-
drivers/rtc/rtc-ds1307.c | 7 +-
drivers/rtc/rtc-ds1672.c | 3 +-
drivers/rtc/rtc-mc146818-lib.c | 2 +-
drivers/rtc/rtc-pcf2127.c | 32 ++---
drivers/rtc/rtc-pcf8563.c | 13 +-
drivers/rtc/rtc-pm8xxx.c | 6 +-
drivers/scsi/fnic/fnic_isr.c | 4 +-
drivers/scsi/libfc/fc_exch.c | 2 +-
drivers/scsi/megaraid/megaraid_sas_base.c | 4 +-
drivers/scsi/qla2xxx/qla_os.c | 34 +++--
drivers/scsi/qla2xxx/qla_target.c | 14 +-
drivers/soc/fsl/qe/gpio.c | 4 +-
drivers/spi/spi-bcm2835aux.c | 13 +-
drivers/spi/spi-cadence.c | 11 +-
drivers/spi/spi-fsl-spi.c | 2 +-
drivers/spi/spi-tegra114.c | 145 +++++++++++++++------
drivers/spi/spi-topcliff-pch.c | 6 +
drivers/staging/comedi/drivers/ni_mio_common.c | 24 +++-
drivers/staging/greybus/light.c | 12 +-
drivers/staging/most/aim-cdev/cdev.c | 5 +-
.../rtlwifi/halmac/halmac_88xx/halmac_func_88xx.c | 5 +-
.../vc04_services/bcm2835-camera/bcm2835-camera.c | 9 ++
drivers/target/target_core_device.c | 4 +-
drivers/thermal/cpu_cooling.c | 2 +-
drivers/thermal/mtk_thermal.c | 6 +-
drivers/tty/ipwireless/hardware.c | 2 +
drivers/tty/serial/fsl_lpuart.c | 28 ++--
drivers/tty/serial/stm32-usart.c | 123 +++++++++--------
drivers/tty/serial/stm32-usart.h | 10 +-
drivers/uio/uio.c | 10 +-
drivers/usb/class/cdc-wdm.c | 2 +-
drivers/usb/dwc2/gadget.c | 1 +
drivers/usb/host/xhci-hub.c | 2 +-
drivers/usb/phy/Kconfig | 2 +-
drivers/usb/phy/phy-twl6030-usb.c | 2 +-
drivers/vfio/mdev/mdev_core.c | 11 +-
drivers/vfio/pci/vfio_pci.c | 19 ++-
drivers/video/backlight/lm3630a_bl.c | 4 +-
drivers/video/fbdev/chipsfb.c | 3 +-
drivers/xen/cpu_hotplug.c | 2 +-
drivers/xen/pvcalls-back.c | 2 +-
fs/affs/super.c | 6 -
fs/afs/super.c | 1 +
fs/afs/xattr.c | 4 +-
fs/btrfs/file.c | 3 +-
fs/btrfs/inode-map.c | 28 +++-
fs/cifs/connect.c | 3 +-
fs/exportfs/expfs.c | 1 +
fs/ext4/inline.c | 2 +-
fs/jfs/jfs_txnmgr.c | 3 +-
fs/nfs/delegation.c | 20 +--
fs/nfs/delegation.h | 1 +
fs/nfs/flexfilelayout/flexfilelayout.h | 32 +++--
fs/nfs/pnfs.c | 33 +++--
fs/nfs/pnfs.h | 1 +
fs/nfs/super.c | 2 +-
fs/nfs/write.c | 2 +-
fs/xfs/xfs_quotaops.c | 3 +
include/linux/device.h | 3 +-
include/linux/irqchip/arm-gic-v3.h | 12 +-
include/linux/mlx5/mlx5_ifc.h | 2 -
include/linux/mmc/sdio_ids.h | 2 +
include/linux/pci.h | 1 +
include/linux/platform_data/dma-imx-sdma.h | 3 +
include/linux/signal.h | 15 ++-
include/media/davinci/vpbe.h | 2 +-
include/net/request_sock.h | 4 +-
include/net/tcp.h | 2 +-
kernel/debug/kdb/kdb_main.c | 2 +-
kernel/events/core.c | 3 +
kernel/irq/irqdomain.c | 1 +
kernel/signal.c | 5 +
lib/devres.c | 3 +-
lib/kfifo.c | 3 +-
net/6lowpan/nhc.c | 2 +-
net/bridge/netfilter/ebtables.c | 4 +-
net/core/neighbour.c | 4 +-
net/core/sock.c | 4 +-
net/ieee802154/6lowpan/reassembly.c | 2 +-
net/ipv4/inet_connection_sock.c | 2 +-
net/ipv4/tcp.c | 4 +-
net/ipv6/reassembly.c | 2 +-
net/iucv/af_iucv.c | 27 +++-
net/l2tp/l2tp_core.c | 3 +-
net/llc/af_llc.c | 34 +++--
net/llc/llc_conn.c | 35 ++---
net/llc/llc_if.c | 12 +-
net/mac80211/rc80211_minstrel_ht.c | 2 +-
net/mac80211/rx.c | 11 +-
net/mpls/mpls_iptunnel.c | 2 +-
net/netfilter/nft_set_hash.c | 23 +++-
net/packet/af_packet.c | 25 +++-
net/rds/ib_stats.c | 2 +-
net/rds/stats.c | 2 +
net/rxrpc/output.c | 3 +
net/sched/act_mirred.c | 6 +-
net/sched/sch_netem.c | 18 ++-
net/tipc/link.c | 29 +++--
net/tipc/node.c | 7 +-
net/tipc/socket.c | 2 +-
net/tipc/sysctl.c | 8 +-
security/apparmor/include/context.h | 2 +
security/apparmor/lsm.c | 4 +-
security/keys/key.c | 1 +
sound/aoa/codecs/onyx.c | 4 +-
sound/pci/hda/hda_controller.h | 9 +-
sound/soc/codecs/cs4349.c | 1 +
sound/soc/codecs/es8328.c | 2 +-
sound/soc/codecs/wm8737.c | 2 +-
sound/soc/davinci/davinci-mcasp.c | 13 +-
sound/soc/fsl/imx-sgtl5000.c | 3 +-
sound/soc/qcom/apq8016_sbc.c | 21 ++-
sound/soc/soc-pcm.c | 4 +-
sound/soc/sunxi/sun4i-i2s.c | 4 +-
sound/usb/mixer.c | 4 +-
sound/usb/quirks-table.h | 9 +-
tools/testing/selftests/ipc/msgque.c | 11 +-
346 files changed, 2015 insertions(+), 1275 deletions(-)



2020-01-24 12:53:07

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 034/343] pinctrl: sh-pfc: r8a7791: Remove bogus marks from vin1_b_data18 group

From: Geert Uytterhoeven <[email protected]>

[ Upstream commit 0d6256cb880166a4111bebce35790019e56b6e1b ]

The vin1_b_data18_mux[] arrays contains pin marks for the 2 LSB bits of
the color components. The vin1_b_data18_pins[] array rightfully does
not include the corresponding pin numbers, as RGB18 is subset of RGB24,
containing only the 6 MSB bits of each component.

Fixes: 8e32c9671f84acd8 ("pinctrl: sh-pfc: r8a7791: Add VIN pins")
Signed-off-by: Geert Uytterhoeven <[email protected]>
Reviewed-by: Simon Horman <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/pinctrl/sh-pfc/pfc-r8a7791.c | 3 ---
1 file changed, 3 deletions(-)

diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c
index 8600ba82f59c3..d34982ea66bf1 100644
--- a/drivers/pinctrl/sh-pfc/pfc-r8a7791.c
+++ b/drivers/pinctrl/sh-pfc/pfc-r8a7791.c
@@ -4348,17 +4348,14 @@ static const unsigned int vin1_b_data18_pins[] = {
};
static const unsigned int vin1_b_data18_mux[] = {
/* B */
- VI1_DATA0_B_MARK, VI1_DATA1_B_MARK,
VI1_DATA2_B_MARK, VI1_DATA3_B_MARK,
VI1_DATA4_B_MARK, VI1_DATA5_B_MARK,
VI1_DATA6_B_MARK, VI1_DATA7_B_MARK,
/* G */
- VI1_G0_B_MARK, VI1_G1_B_MARK,
VI1_G2_B_MARK, VI1_G3_B_MARK,
VI1_G4_B_MARK, VI1_G5_B_MARK,
VI1_G6_B_MARK, VI1_G7_B_MARK,
/* R */
- VI1_R0_B_MARK, VI1_R1_B_MARK,
VI1_R2_B_MARK, VI1_R3_B_MARK,
VI1_R4_B_MARK, VI1_R5_B_MARK,
VI1_R6_B_MARK, VI1_R7_B_MARK,
--
2.20.1



2020-01-24 12:56:01

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 036/343] pinctrl: sh-pfc: r8a7794: Remove bogus IPSR9 field

From: Geert Uytterhoeven <[email protected]>

[ Upstream commit 6a6c195d98a1a5e70faa87f594d7564af1dd1bed ]

The Peripheral Function Select Register 9 contains 12 fields, but the
variable field descriptor contains a 13th bogus field of 3 bits.

Fixes: 43c4436e2f1890a7 ("pinctrl: sh-pfc: add R8A7794 PFC support")
Signed-off-by: Geert Uytterhoeven <[email protected]>
Reviewed-by: Simon Horman <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/pinctrl/sh-pfc/pfc-r8a7794.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c
index a0ed220071f5f..93bdd3e8fb670 100644
--- a/drivers/pinctrl/sh-pfc/pfc-r8a7794.c
+++ b/drivers/pinctrl/sh-pfc/pfc-r8a7794.c
@@ -4742,7 +4742,7 @@ static const struct pinmux_cfg_reg pinmux_config_regs[] = {
FN_AVB_MDC, FN_SSI_SDATA6_B, 0, 0, }
},
{ PINMUX_CFG_REG_VAR("IPSR9", 0xE6060044, 32,
- 1, 3, 3, 3, 3, 2, 2, 3, 3, 3, 3, 3, 3) {
+ 1, 3, 3, 3, 3, 2, 2, 3, 3, 3, 3, 3) {
/* IP9_31 [1] */
0, 0,
/* IP9_30_28 [3] */
--
2.20.1



2020-01-24 12:56:01

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 029/343] staging: bcm2835-camera: Abort probe if there is no camera

From: Stefan Wahren <[email protected]>

[ Upstream commit 7566f39dfdc11f8a97d5810c6e6295a88f97ef91 ]

Abort the probing of the camera driver in case there isn't a camera
actually connected to the Raspberry Pi. This solution also avoids a
NULL ptr dereference of mmal instance on driver unload.

Fixes: 7b3ad5abf027 ("staging: Import the BCM2835 MMAL-based V4L2 camera driver.")
Signed-off-by: Stefan Wahren <[email protected]>
Reviewed-by: Nicolas Saenz Julienne <[email protected]>
Reviewed-by: Dan Carpenter <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
.../vc04_services/bcm2835-camera/bcm2835-camera.c | 9 +++++++++
1 file changed, 9 insertions(+)

diff --git a/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c b/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c
index 377da037f31c3..b521752d9aa01 100644
--- a/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c
+++ b/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c
@@ -1849,6 +1849,12 @@ static int __init bm2835_mmal_init(void)
num_cameras = get_num_cameras(instance,
resolutions,
MAX_BCM2835_CAMERAS);
+
+ if (num_cameras < 1) {
+ ret = -ENODEV;
+ goto cleanup_mmal;
+ }
+
if (num_cameras > MAX_BCM2835_CAMERAS)
num_cameras = MAX_BCM2835_CAMERAS;

@@ -1948,6 +1954,9 @@ cleanup_gdev:
pr_info("%s: error %d while loading driver\n",
BM2835_MMAL_MODULE_NAME, ret);

+cleanup_mmal:
+ vchiq_mmal_finalise(instance);
+
return ret;
}

--
2.20.1



2020-01-24 12:59:04

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 050/343] clk: vf610: fix refcount leak in vf610_clocks_init()

From: Yangtao Li <[email protected]>

[ Upstream commit 567177024e0313e4f0dcba7ba10c0732e50e655d ]

The of_find_compatible_node() returns a node pointer with refcount
incremented, but there is the lack of use of the of_node_put() when
done. Add the missing of_node_put() to release the refcount.

Signed-off-by: Yangtao Li <[email protected]>
Fixes: 1f2c5fd5f048 ("ARM: imx: add VF610 clock support")
Signed-off-by: Stephen Boyd <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/clk/imx/clk-vf610.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/clk/imx/clk-vf610.c b/drivers/clk/imx/clk-vf610.c
index 6dae54325a91d..a334667c450a1 100644
--- a/drivers/clk/imx/clk-vf610.c
+++ b/drivers/clk/imx/clk-vf610.c
@@ -203,6 +203,7 @@ static void __init vf610_clocks_init(struct device_node *ccm_node)
np = of_find_compatible_node(NULL, NULL, "fsl,vf610-anatop");
anatop_base = of_iomap(np, 0);
BUG_ON(!anatop_base);
+ of_node_put(np);

np = ccm_node;
ccm_base = of_iomap(np, 0);
--
2.20.1



2020-01-24 12:59:04

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 030/343] switchtec: Remove immediate status check after submitting MRPC command

From: Kelvin Cao <[email protected]>

[ Upstream commit 526180408b815aa7b96fd48bd23cdd33ef04e38e ]

After submitting a Firmware Download MRPC command, Switchtec firmware will
delay Management EP BAR MemRd TLP responses by more than 10ms. This is a
firmware limitation. Delayed MemRd completions are a problem for systems
with a low Completion Timeout (CTO).

The current driver checks the MRPC status immediately after submitting an
MRPC command, which results in a delayed MemRd completion that may cause a
Completion Timeout.

Remove the immediate status check and rely on the check after receiving an
interrupt or timing out.

This is only a software workaround to the READ issue and a proper fix of
this should be done in firmware.

Fixes: 080b47def5e5 ("MicroSemi Switchtec management interface driver")
Signed-off-by: Kelvin Cao <[email protected]>
Signed-off-by: Wesley Sheng <[email protected]>
Signed-off-by: Bjorn Helgaas <[email protected]>
Reviewed-by: Logan Gunthorpe <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/pci/switch/switchtec.c | 4 ----
1 file changed, 4 deletions(-)

diff --git a/drivers/pci/switch/switchtec.c b/drivers/pci/switch/switchtec.c
index 0941555b84a52..73dba2739849b 100644
--- a/drivers/pci/switch/switchtec.c
+++ b/drivers/pci/switch/switchtec.c
@@ -399,10 +399,6 @@ static void mrpc_cmd_submit(struct switchtec_dev *stdev)
stuser->data, stuser->data_len);
iowrite32(stuser->cmd, &stdev->mmio_mrpc->cmd);

- stuser->status = ioread32(&stdev->mmio_mrpc->status);
- if (stuser->status != SWITCHTEC_MRPC_STATUS_INPROGRESS)
- mrpc_complete_cmd(stdev);
-
schedule_delayed_work(&stdev->mrpc_timeout,
msecs_to_jiffies(500));
}
--
2.20.1



2020-01-24 13:04:07

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 051/343] clk: armada-370: fix refcount leak in a370_clk_init()

From: Yangtao Li <[email protected]>

[ Upstream commit a3c24050bdf70c958a8d98c2823b66ea761e6a31 ]

The of_find_compatible_node() returns a node pointer with refcount
incremented, but there is the lack of use of the of_node_put() when
done. Add the missing of_node_put() to release the refcount.

Signed-off-by: Yangtao Li <[email protected]>
Reviewed-by: Gregory CLEMENT <[email protected]>
Fixes: 07ad6836fa21 ("clk: mvebu: armada-370: maintain clock init order")
Signed-off-by: Stephen Boyd <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/clk/mvebu/armada-370.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/clk/mvebu/armada-370.c b/drivers/clk/mvebu/armada-370.c
index 2c7c1085f8830..8fdfa97900cd8 100644
--- a/drivers/clk/mvebu/armada-370.c
+++ b/drivers/clk/mvebu/armada-370.c
@@ -177,8 +177,10 @@ static void __init a370_clk_init(struct device_node *np)

mvebu_coreclk_setup(np, &a370_coreclks);

- if (cgnp)
+ if (cgnp) {
mvebu_clk_gating_setup(cgnp, a370_gating_desc);
+ of_node_put(cgnp);
+ }
}
CLK_OF_DECLARE(a370_clk, "marvell,armada-370-core-clock", a370_clk_init);

--
2.20.1



2020-01-24 13:04:43

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 062/343] spi: cadence: Correct initialisation of runtime PM

From: Charles Keepax <[email protected]>

[ Upstream commit 734882a8bf984c2ac8a57d8ac3ee53230bd0bed8 ]

Currently the driver calls pm_runtime_put_autosuspend but without ever
having done a pm_runtime_get, this causes the reference count in the pm
runtime core to become -1. The bad reference count causes the core to
sometimes suspend whilst an active SPI transfer is in progress.

arizona spi0.1: SPI transfer timed out
spi_master spi0: failed to transfer one message from queue

The correct proceedure is to do all the initialisation that requires the
hardware to be powered up before enabling the PM runtime, then enable
the PM runtime having called pm_runtime_set_active to inform it that the
hardware is currently powered up. The core will then power it down at
it's leisure and no explicit pm_runtime_put is required.

Fixes: d36ccd9f7ea4 ("spi: cadence: Runtime pm adaptation")
Signed-off-by: Charles Keepax <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/spi/spi-cadence.c | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/drivers/spi/spi-cadence.c b/drivers/spi/spi-cadence.c
index 02bd1eba045b8..d08ad93d97a15 100644
--- a/drivers/spi/spi-cadence.c
+++ b/drivers/spi/spi-cadence.c
@@ -584,11 +584,6 @@ static int cdns_spi_probe(struct platform_device *pdev)
goto clk_dis_apb;
}

- pm_runtime_use_autosuspend(&pdev->dev);
- pm_runtime_set_autosuspend_delay(&pdev->dev, SPI_AUTOSUSPEND_TIMEOUT);
- pm_runtime_set_active(&pdev->dev);
- pm_runtime_enable(&pdev->dev);
-
ret = of_property_read_u32(pdev->dev.of_node, "num-cs", &num_cs);
if (ret < 0)
master->num_chipselect = CDNS_SPI_DEFAULT_NUM_CS;
@@ -603,8 +598,10 @@ static int cdns_spi_probe(struct platform_device *pdev)
/* SPI controller initializations */
cdns_spi_init_hw(xspi);

- pm_runtime_mark_last_busy(&pdev->dev);
- pm_runtime_put_autosuspend(&pdev->dev);
+ pm_runtime_set_active(&pdev->dev);
+ pm_runtime_enable(&pdev->dev);
+ pm_runtime_use_autosuspend(&pdev->dev);
+ pm_runtime_set_autosuspend_delay(&pdev->dev, SPI_AUTOSUSPEND_TIMEOUT);

irq = platform_get_irq(pdev, 0);
if (irq <= 0) {
--
2.20.1



2020-01-24 13:04:43

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 063/343] RDMA/iw_cxgb4: Fix the unchecked ep dereference

From: Raju Rangoju <[email protected]>

[ Upstream commit 3352976c892301fd576a2e9ff0ac7337b2e2ca48 ]

The patch 944661dd97f4: "RDMA/iw_cxgb4: atomically lookup ep and get a
reference" from May 6, 2016, leads to the following Smatch complaint:

drivers/infiniband/hw/cxgb4/cm.c:2953 terminate()
error: we previously assumed 'ep' could be null (see line 2945)

Fixes: 944661dd97f4 ("RDMA/iw_cxgb4: atomically lookup ep and get a reference")
Reported-by: Dan Carpenter <[email protected]>
Signed-off-by: Raju Rangoju <[email protected]>
Signed-off-by: Jason Gunthorpe <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/infiniband/hw/cxgb4/cm.c | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/drivers/infiniband/hw/cxgb4/cm.c b/drivers/infiniband/hw/cxgb4/cm.c
index bb36cdf82a8d6..3668cc71b47e2 100644
--- a/drivers/infiniband/hw/cxgb4/cm.c
+++ b/drivers/infiniband/hw/cxgb4/cm.c
@@ -2923,15 +2923,18 @@ static int terminate(struct c4iw_dev *dev, struct sk_buff *skb)
ep = get_ep_from_tid(dev, tid);
BUG_ON(!ep);

- if (ep && ep->com.qp) {
- pr_warn("TERM received tid %u qpid %u\n",
- tid, ep->com.qp->wq.sq.qid);
- attrs.next_state = C4IW_QP_STATE_TERMINATE;
- c4iw_modify_qp(ep->com.qp->rhp, ep->com.qp,
- C4IW_QP_ATTR_NEXT_STATE, &attrs, 1);
+ if (ep) {
+ if (ep->com.qp) {
+ pr_warn("TERM received tid %u qpid %u\n", tid,
+ ep->com.qp->wq.sq.qid);
+ attrs.next_state = C4IW_QP_STATE_TERMINATE;
+ c4iw_modify_qp(ep->com.qp->rhp, ep->com.qp,
+ C4IW_QP_ATTR_NEXT_STATE, &attrs, 1);
+ }
+
+ c4iw_put_ep(&ep->com);
} else
pr_warn("TERM received tid %u no ep/qp\n", tid);
- c4iw_put_ep(&ep->com);

return 0;
}
--
2.20.1



2020-01-24 13:04:55

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 083/343] ARM: dts: lpc32xx: reparent keypad controller to SIC1

From: Vladimir Zapolskiy <[email protected]>

[ Upstream commit 489261c45f0ebbc1c2813f337bbdf858267f5033 ]

After switching to a new interrupt controller scheme by separating SIC1
and SIC2 from MIC interrupt controller just one SoC keypad controller
was not taken into account, fix it now:

WARNING: CPU: 0 PID: 1 at kernel/irq/irqdomain.c:524 irq_domain_associate+0x50/0x1b0
error: hwirq 0x36 is too large for interrupt-controller@40008000
...
lpc32xx_keys 40050000.key: failed to get platform irq
lpc32xx_keys: probe of 40050000.key failed with error -22

Fixes: 9b8ad3fb81ae ("ARM: dts: lpc32xx: reparent SIC1 and SIC2 interrupts from MIC")
Signed-off-by: Vladimir Zapolskiy <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
arch/arm/boot/dts/lpc32xx.dtsi | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/lpc32xx.dtsi b/arch/arm/boot/dts/lpc32xx.dtsi
index 2ca881055ef0e..9f9386c926d1e 100644
--- a/arch/arm/boot/dts/lpc32xx.dtsi
+++ b/arch/arm/boot/dts/lpc32xx.dtsi
@@ -463,7 +463,8 @@
compatible = "nxp,lpc3220-key";
reg = <0x40050000 0x1000>;
clocks = <&clk LPC32XX_CLK_KEY>;
- interrupts = <54 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&sic1>;
+ interrupts = <22 IRQ_TYPE_LEVEL_HIGH>;
status = "disabled";
};

--
2.20.1



2020-01-24 13:05:49

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 069/343] ASoC: imx-sgtl5000: put of nodes if finding codec fails

From: Stefan Agner <[email protected]>

[ Upstream commit d9866572486802bc598a3e8576a5231378d190de ]

Make sure to properly put the of node in case finding the codec
fails.

Fixes: 81e8e4926167 ("ASoC: fsl: add sgtl5000 clock support for imx-sgtl5000")
Signed-off-by: Stefan Agner <[email protected]>
Reviewed-by: Daniel Baluta <[email protected]>
Acked-by: Nicolin Chen <[email protected]>
Reviewed-by: Fabio Estevam <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
sound/soc/fsl/imx-sgtl5000.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/sound/soc/fsl/imx-sgtl5000.c b/sound/soc/fsl/imx-sgtl5000.c
index 8e525f7ac08d1..3d99a8579c99f 100644
--- a/sound/soc/fsl/imx-sgtl5000.c
+++ b/sound/soc/fsl/imx-sgtl5000.c
@@ -119,7 +119,8 @@ static int imx_sgtl5000_probe(struct platform_device *pdev)
codec_dev = of_find_i2c_device_by_node(codec_np);
if (!codec_dev) {
dev_err(&pdev->dev, "failed to find codec platform device\n");
- return -EPROBE_DEFER;
+ ret = -EPROBE_DEFER;
+ goto fail;
}

data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL);
--
2.20.1



2020-01-24 13:07:50

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 086/343] ARM: dts: lpc32xx: phy3250: fix SD card regulator voltage

From: Vladimir Zapolskiy <[email protected]>

[ Upstream commit dc141b99fc36cf910a1d8d5ee30f43f2442fd1bd ]

The fixed voltage regulator on Phytec phyCORE-LPC3250 board, which
supplies SD/MMC card's power, has a constant output voltage level
of either 3.15V or 3.3V, the actual value depends on JP4 position,
the power rail is referenced as VCC_SDIO in the board hardware manual.

Fixes: d06670e96267 ("arm: dts: phy3250: add SD fixed regulator")
Signed-off-by: Vladimir Zapolskiy <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
arch/arm/boot/dts/lpc3250-phy3250.dts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm/boot/dts/lpc3250-phy3250.dts b/arch/arm/boot/dts/lpc3250-phy3250.dts
index b7bd3a110a8dd..dd0bdf765599d 100644
--- a/arch/arm/boot/dts/lpc3250-phy3250.dts
+++ b/arch/arm/boot/dts/lpc3250-phy3250.dts
@@ -49,8 +49,8 @@
sd_reg: regulator@2 {
compatible = "regulator-fixed";
regulator-name = "sd_reg";
- regulator-min-microvolt = <1800000>;
- regulator-max-microvolt = <1800000>;
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
gpio = <&gpio 5 5 0>;
enable-active-high;
};
--
2.20.1



2020-01-24 13:10:35

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 064/343] drm/etnaviv: NULL vs IS_ERR() buf in etnaviv_core_dump()

From: Dan Carpenter <[email protected]>

[ Upstream commit f8261c376e7f8cb9024af5a6c54be540c7f9108e ]

The etnaviv_gem_get_pages() never returns NULL. It returns error
pointers on error.

Fixes: a8c21a5451d8 ("drm/etnaviv: add initial etnaviv DRM driver")
Signed-off-by: Dan Carpenter <[email protected]>
Signed-off-by: Lucas Stach <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/gpu/drm/etnaviv/etnaviv_dump.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/etnaviv/etnaviv_dump.c b/drivers/gpu/drm/etnaviv/etnaviv_dump.c
index 2d955d7d7b6d8..e154e6fb64dac 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_dump.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_dump.c
@@ -207,7 +207,7 @@ void etnaviv_core_dump(struct etnaviv_gpu *gpu)
mutex_lock(&obj->lock);
pages = etnaviv_gem_get_pages(obj);
mutex_unlock(&obj->lock);
- if (pages) {
+ if (!IS_ERR(pages)) {
int j;

iter.hdr->data[0] = bomap - bomap_start;
--
2.20.1



2020-01-24 13:16:48

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 097/343] iw_cxgb4: use tos when importing the endpoint

From: Steve Wise <[email protected]>

[ Upstream commit cb3ba0bde881f0cb7e3945d2a266901e2bd18c92 ]

import_ep() is passed the correct tos, but doesn't use it correctly.

Fixes: ac8e4c69a021 ("cxgb4/iw_cxgb4: TOS support")
Signed-off-by: Steve Wise <[email protected]>
Signed-off-by: Jason Gunthorpe <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/infiniband/hw/cxgb4/cm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/infiniband/hw/cxgb4/cm.c b/drivers/infiniband/hw/cxgb4/cm.c
index 3668cc71b47e2..942403e42dd0f 100644
--- a/drivers/infiniband/hw/cxgb4/cm.c
+++ b/drivers/infiniband/hw/cxgb4/cm.c
@@ -2056,7 +2056,7 @@ static int import_ep(struct c4iw_ep *ep, int iptype, __u8 *peer_ip,
} else {
pdev = get_real_dev(n->dev);
ep->l2t = cxgb4_l2t_get(cdev->rdev.lldi.l2t,
- n, pdev, 0);
+ n, pdev, rt_tos2priority(tos));
if (!ep->l2t)
goto out;
ep->mtu = dst_mtu(dst);
--
2.20.1



2020-01-24 13:18:52

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 092/343] rtc: ds1307: rx8130: Fix alarm handling

From: Uwe Kleine-König <[email protected]>

[ Upstream commit 3f929cad943380370b6db31fcb7a38d898d91089 ]

When the EXTENSION.WADA bit is set, register 0x19 contains a bitmap of
week days, not a day of month. As Linux only handles a single alarm
without repetition using day of month is more flexible, so clear this
bit. (Otherwise a value depending on time.tm_wday would have to be
written to register 0x19.)

Also optimize setting the AIE bit to use a single register write instead
of a bulk write of three registers.

Fixes: ee0981be7704 ("rtc: ds1307: Add support for Epson RX8130CE")
Signed-off-by: Uwe Kleine-König <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/rtc/rtc-ds1307.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/rtc/rtc-ds1307.c b/drivers/rtc/rtc-ds1307.c
index e7d9215c9201b..8d45d93b1db67 100644
--- a/drivers/rtc/rtc-ds1307.c
+++ b/drivers/rtc/rtc-ds1307.c
@@ -733,8 +733,8 @@ static int rx8130_set_alarm(struct device *dev, struct rtc_wkalrm *t)
if (ret < 0)
return ret;

- ctl[0] &= ~RX8130_REG_EXTENSION_WADA;
- ctl[1] |= RX8130_REG_FLAG_AF;
+ ctl[0] &= RX8130_REG_EXTENSION_WADA;
+ ctl[1] &= ~RX8130_REG_FLAG_AF;
ctl[2] &= ~RX8130_REG_CONTROL0_AIE;

ret = regmap_bulk_write(ds1307->regmap, RX8130_REG_EXTENSION, ctl,
@@ -757,8 +757,7 @@ static int rx8130_set_alarm(struct device *dev, struct rtc_wkalrm *t)

ctl[2] |= RX8130_REG_CONTROL0_AIE;

- return regmap_bulk_write(ds1307->regmap, RX8130_REG_EXTENSION, ctl,
- sizeof(ctl));
+ return regmap_write(ds1307->regmap, RX8130_REG_CONTROL0, ctl[2]);
}

static int rx8130_alarm_irq_enable(struct device *dev, unsigned int enabled)
--
2.20.1



2020-01-24 13:19:03

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 093/343] rtc: 88pm860x: fix unintended sign extension

From: Colin Ian King <[email protected]>

[ Upstream commit dc9e47160626cdb58d5c39a4f43dcfdb27a5c004 ]

Shifting a u8 by 24 will cause the value to be promoted to an integer. If
the top bit of the u8 is set then the following conversion to an unsigned
long will sign extend the value causing the upper 32 bits to be set in
the result.

Fix this by casting the u8 value to an unsigned long before the shift.

Detected by CoverityScan, CID#144925-144928 ("Unintended sign extension")

Fixes: 008b30408c40 ("mfd: Add rtc support to 88pm860x")
Signed-off-by: Colin Ian King <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/rtc/rtc-88pm860x.c | 21 ++++++++++++++-------
1 file changed, 14 insertions(+), 7 deletions(-)

diff --git a/drivers/rtc/rtc-88pm860x.c b/drivers/rtc/rtc-88pm860x.c
index 166faae3a59cd..7d3e5168fcefc 100644
--- a/drivers/rtc/rtc-88pm860x.c
+++ b/drivers/rtc/rtc-88pm860x.c
@@ -115,11 +115,13 @@ static int pm860x_rtc_read_time(struct device *dev, struct rtc_time *tm)
pm860x_page_bulk_read(info->i2c, REG0_ADDR, 8, buf);
dev_dbg(info->dev, "%x-%x-%x-%x-%x-%x-%x-%x\n", buf[0], buf[1],
buf[2], buf[3], buf[4], buf[5], buf[6], buf[7]);
- base = (buf[1] << 24) | (buf[3] << 16) | (buf[5] << 8) | buf[7];
+ base = ((unsigned long)buf[1] << 24) | (buf[3] << 16) |
+ (buf[5] << 8) | buf[7];

/* load 32-bit read-only counter */
pm860x_bulk_read(info->i2c, PM8607_RTC_COUNTER1, 4, buf);
- data = (buf[3] << 24) | (buf[2] << 16) | (buf[1] << 8) | buf[0];
+ data = ((unsigned long)buf[3] << 24) | (buf[2] << 16) |
+ (buf[1] << 8) | buf[0];
ticks = base + data;
dev_dbg(info->dev, "get base:0x%lx, RO count:0x%lx, ticks:0x%lx\n",
base, data, ticks);
@@ -145,7 +147,8 @@ static int pm860x_rtc_set_time(struct device *dev, struct rtc_time *tm)

/* load 32-bit read-only counter */
pm860x_bulk_read(info->i2c, PM8607_RTC_COUNTER1, 4, buf);
- data = (buf[3] << 24) | (buf[2] << 16) | (buf[1] << 8) | buf[0];
+ data = ((unsigned long)buf[3] << 24) | (buf[2] << 16) |
+ (buf[1] << 8) | buf[0];
base = ticks - data;
dev_dbg(info->dev, "set base:0x%lx, RO count:0x%lx, ticks:0x%lx\n",
base, data, ticks);
@@ -170,10 +173,12 @@ static int pm860x_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm)
pm860x_page_bulk_read(info->i2c, REG0_ADDR, 8, buf);
dev_dbg(info->dev, "%x-%x-%x-%x-%x-%x-%x-%x\n", buf[0], buf[1],
buf[2], buf[3], buf[4], buf[5], buf[6], buf[7]);
- base = (buf[1] << 24) | (buf[3] << 16) | (buf[5] << 8) | buf[7];
+ base = ((unsigned long)buf[1] << 24) | (buf[3] << 16) |
+ (buf[5] << 8) | buf[7];

pm860x_bulk_read(info->i2c, PM8607_RTC_EXPIRE1, 4, buf);
- data = (buf[3] << 24) | (buf[2] << 16) | (buf[1] << 8) | buf[0];
+ data = ((unsigned long)buf[3] << 24) | (buf[2] << 16) |
+ (buf[1] << 8) | buf[0];
ticks = base + data;
dev_dbg(info->dev, "get base:0x%lx, RO count:0x%lx, ticks:0x%lx\n",
base, data, ticks);
@@ -198,11 +203,13 @@ static int pm860x_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alrm)
pm860x_page_bulk_read(info->i2c, REG0_ADDR, 8, buf);
dev_dbg(info->dev, "%x-%x-%x-%x-%x-%x-%x-%x\n", buf[0], buf[1],
buf[2], buf[3], buf[4], buf[5], buf[6], buf[7]);
- base = (buf[1] << 24) | (buf[3] << 16) | (buf[5] << 8) | buf[7];
+ base = ((unsigned long)buf[1] << 24) | (buf[3] << 16) |
+ (buf[5] << 8) | buf[7];

/* load 32-bit read-only counter */
pm860x_bulk_read(info->i2c, PM8607_RTC_COUNTER1, 4, buf);
- data = (buf[3] << 24) | (buf[2] << 16) | (buf[1] << 8) | buf[0];
+ data = ((unsigned long)buf[3] << 24) | (buf[2] << 16) |
+ (buf[1] << 8) | buf[0];
ticks = base + data;
dev_dbg(info->dev, "get base:0x%lx, RO count:0x%lx, ticks:0x%lx\n",
base, data, ticks);
--
2.20.1



2020-01-24 13:19:05

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 113/343] cdc-wdm: pass return value of recover_from_urb_loss

From: YueHaibing <[email protected]>

[ Upstream commit 0742a338f5b3446a26de551ad8273fb41b2787f2 ]

'rv' is the correct return value, pass it upstream instead of 0

Fixes: 17d80d562fd7 ("USB: autosuspend for cdc-wdm")
Signed-off-by: YueHaibing <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/usb/class/cdc-wdm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/class/cdc-wdm.c b/drivers/usb/class/cdc-wdm.c
index a593cdfc897fd..d5d42dccda10a 100644
--- a/drivers/usb/class/cdc-wdm.c
+++ b/drivers/usb/class/cdc-wdm.c
@@ -1085,7 +1085,7 @@ static int wdm_post_reset(struct usb_interface *intf)
rv = recover_from_urb_loss(desc);
mutex_unlock(&desc->wlock);
mutex_unlock(&desc->rlock);
- return 0;
+ return rv;
}

static struct usb_driver wdm_driver = {
--
2.20.1



2020-01-24 13:20:44

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 103/343] pinctrl: sh-pfc: sh73a0: Fix fsic_spdif pin groups

From: Geert Uytterhoeven <[email protected]>

[ Upstream commit 0e6e448bdcf896d001a289a6112a704542d51516 ]

There are two pin groups for the FSIC SPDIF signal, but the FSIC pin
group array lists only one, and it refers to a nonexistent group.

Fixes: 2ecd4154c906b7d6 ("sh-pfc: sh73a0: Add FSI pin groups and functions")
Signed-off-by: Geert Uytterhoeven <[email protected]>
Reviewed-by: Simon Horman <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/pinctrl/sh-pfc/pfc-sh73a0.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/pinctrl/sh-pfc/pfc-sh73a0.c b/drivers/pinctrl/sh-pfc/pfc-sh73a0.c
index f8fbedb46585d..6dca760f9f280 100644
--- a/drivers/pinctrl/sh-pfc/pfc-sh73a0.c
+++ b/drivers/pinctrl/sh-pfc/pfc-sh73a0.c
@@ -3367,7 +3367,8 @@ static const char * const fsic_groups[] = {
"fsic_sclk_out",
"fsic_data_in",
"fsic_data_out",
- "fsic_spdif",
+ "fsic_spdif_0",
+ "fsic_spdif_1",
};

static const char * const fsid_groups[] = {
--
2.20.1



2020-01-24 13:20:44

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 107/343] keys: Timestamp new keys

From: David Howells <[email protected]>

[ Upstream commit 7c1857bdbdf1e4c541e45eab477ee23ed4333ea4 ]

Set the timestamp on new keys rather than leaving it unset.

Fixes: 31d5a79d7f3d ("KEYS: Do LRU discard in full keyrings")
Signed-off-by: David Howells <[email protected]>
Signed-off-by: James Morris <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
security/keys/key.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/security/keys/key.c b/security/keys/key.c
index 87172f99f73e0..17244f5f54c69 100644
--- a/security/keys/key.c
+++ b/security/keys/key.c
@@ -297,6 +297,7 @@ struct key *key_alloc(struct key_type *type, const char *desc,
key->gid = gid;
key->perm = perm;
key->restrict_link = restrict_link;
+ key->last_used_at = ktime_get_real_seconds();

if (!(flags & KEY_ALLOC_NOT_IN_QUOTA))
key->flags |= 1 << KEY_FLAG_IN_QUOTA;
--
2.20.1



2020-01-24 13:20:44

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 106/343] block: dont use bio->bi_vcnt to figure out segment number

From: Ming Lei <[email protected]>

[ Upstream commit 1a67356e9a4829da2935dd338630a550c59c8489 ]

It is wrong to use bio->bi_vcnt to figure out how many segments
there are in the bio even though CLONED flag isn't set on this bio,
because this bio may be splitted or advanced.

So always use bio_segments() in blk_recount_segments(), and it shouldn't
cause any performance loss now because the physical segment number is figured
out in blk_queue_split() and BIO_SEG_VALID is set meantime since
bdced438acd83ad83a6c ("block: setup bi_phys_segments after splitting").

Reviewed-by: Omar Sandoval <[email protected]>
Reviewed-by: Christoph Hellwig <[email protected]>
Fixes: 76d8137a3113 ("blk-merge: recaculate segment if it isn't less than max segments")
Signed-off-by: Ming Lei <[email protected]>
Signed-off-by: Jens Axboe <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
block/blk-merge.c | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)

diff --git a/block/blk-merge.c b/block/blk-merge.c
index f61b50a01bc7a..415b5dafd9e6e 100644
--- a/block/blk-merge.c
+++ b/block/blk-merge.c
@@ -299,13 +299,7 @@ void blk_recalc_rq_segments(struct request *rq)

void blk_recount_segments(struct request_queue *q, struct bio *bio)
{
- unsigned short seg_cnt;
-
- /* estimate segment number by bi_vcnt for non-cloned bio */
- if (bio_flagged(bio, BIO_CLONED))
- seg_cnt = bio_segments(bio);
- else
- seg_cnt = bio->bi_vcnt;
+ unsigned short seg_cnt = bio_segments(bio);

if (test_bit(QUEUE_FLAG_NO_SG_MERGE, &q->queue_flags) &&
(seg_cnt < queue_max_segments(q)))
--
2.20.1



2020-01-24 13:21:01

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 102/343] pinctrl: sh-pfc: r8a7792: Fix vin1_data18_b pin group

From: Geert Uytterhoeven <[email protected]>

[ Upstream commit b9fd50488b4939ce5b3a026d29e752e17c2d1800 ]

The vin1_data18_b pin group itself is present, but it is not listed in
the VIN1 pin group array, and thus cannot be selected.

Fixes: 7dd74bb1f058786e ("pinctrl: sh-pfc: r8a7792: Add VIN pin groups")
Signed-off-by: Geert Uytterhoeven <[email protected]>
Reviewed-by: Simon Horman <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/pinctrl/sh-pfc/pfc-r8a7792.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/pinctrl/sh-pfc/pfc-r8a7792.c b/drivers/pinctrl/sh-pfc/pfc-r8a7792.c
index cc3597f66605a..46c41ca6ea38b 100644
--- a/drivers/pinctrl/sh-pfc/pfc-r8a7792.c
+++ b/drivers/pinctrl/sh-pfc/pfc-r8a7792.c
@@ -1916,6 +1916,7 @@ static const char * const vin1_groups[] = {
"vin1_data8",
"vin1_data24_b",
"vin1_data20_b",
+ "vin1_data18_b",
"vin1_data16_b",
"vin1_sync",
"vin1_field",
--
2.20.1



2020-01-24 13:24:57

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 116/343] regulator: pv88090: Fix array out-of-bounds access

From: Axel Lin <[email protected]>

[ Upstream commit a5455c9159414748bed4678184bf69989a4f7ba3 ]

Fix off-by-one while iterating current_limits array.
The valid index should be 0 ~ n_current_limits -1.

Fixes: c90456e36d9c ("regulator: pv88090: new regulator driver")
Signed-off-by: Axel Lin <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/regulator/pv88090-regulator.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/regulator/pv88090-regulator.c b/drivers/regulator/pv88090-regulator.c
index 7a0c15957bd0b..2302b0df7630f 100644
--- a/drivers/regulator/pv88090-regulator.c
+++ b/drivers/regulator/pv88090-regulator.c
@@ -157,7 +157,7 @@ static int pv88090_set_current_limit(struct regulator_dev *rdev, int min,
int i;

/* search for closest to maximum */
- for (i = info->n_current_limits; i >= 0; i--) {
+ for (i = info->n_current_limits - 1; i >= 0; i--) {
if (min <= info->current_limits[i]
&& max >= info->current_limits[i]) {
return regmap_update_bits(rdev->regmap,
--
2.20.1



2020-01-24 13:25:28

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 148/343] regulator: tps65086: Fix tps65086_ldoa1_ranges for selector 0xB

From: Axel Lin <[email protected]>

[ Upstream commit e69b394703e032e56a140172440ec4f9890b536d ]

selector 0xB (1011) should be 2.6V rather than 2.7V, fit ix.

Table 5-4. LDOA1 Output Voltage Options
VID Bits VOUT VID Bits VOUT VID Bits VOUT VID Bits VOUT
0000 1.35 0100 1.8 1000 2.3 1100 2.85
0001 1.5 0101 1.9 1001 2.4 1101 3.0
0010 1.6 0110 2.0 1010 2.5 1110 3.3
0011 1.7 0111 2.1 1011 2.6 1111 Not Used

Fixes: d2a2e729a666 ("regulator: tps65086: Add regulator driver for the TPS65086 PMIC")
Signed-off-by: Axel Lin <[email protected]>
Acked-by: Andrew F. Davis <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/regulator/tps65086-regulator.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/regulator/tps65086-regulator.c b/drivers/regulator/tps65086-regulator.c
index 45e96e1546900..5a5e9b5bf4bea 100644
--- a/drivers/regulator/tps65086-regulator.c
+++ b/drivers/regulator/tps65086-regulator.c
@@ -90,8 +90,8 @@ static const struct regulator_linear_range tps65086_buck345_25mv_ranges[] = {
static const struct regulator_linear_range tps65086_ldoa1_ranges[] = {
REGULATOR_LINEAR_RANGE(1350000, 0x0, 0x0, 0),
REGULATOR_LINEAR_RANGE(1500000, 0x1, 0x7, 100000),
- REGULATOR_LINEAR_RANGE(2300000, 0x8, 0xA, 100000),
- REGULATOR_LINEAR_RANGE(2700000, 0xB, 0xD, 150000),
+ REGULATOR_LINEAR_RANGE(2300000, 0x8, 0xB, 100000),
+ REGULATOR_LINEAR_RANGE(2850000, 0xC, 0xD, 150000),
REGULATOR_LINEAR_RANGE(3300000, 0xE, 0xE, 0),
};

--
2.20.1



2020-01-24 13:29:04

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 122/343] staging: rtlwifi: Use proper enum for return in halmac_parse_psd_data_88xx

From: Nathan Chancellor <[email protected]>

[ Upstream commit e8edc32d70a4e09160835792eb5d1af71a0eec14 ]

Clang warns:

drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_func_88xx.c:2472:11:
warning: implicit conversion from enumeration type 'enum
halmac_cmd_process_status' to different enumeration type 'enum
halmac_ret_status' [-Wenum-conversion]
return HALMAC_CMD_PROCESS_ERROR;
~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.

Fix this by using the proper enum for allocation failures,
HALMAC_RET_MALLOC_FAIL, which is used in the rest of this file.

Fixes: e4b08e16b7d9 ("staging: r8822be: check kzalloc return or bail")
Link: https://github.com/ClangBuiltLinux/linux/issues/375
Signed-off-by: Nathan Chancellor <[email protected]>
Reviewed-by: Nicholas Mc Guire <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_func_88xx.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_func_88xx.c b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_func_88xx.c
index 15091ee587dbf..65edd14a1147a 100644
--- a/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_func_88xx.c
+++ b/drivers/staging/rtlwifi/halmac/halmac_88xx/halmac_func_88xx.c
@@ -2495,7 +2495,7 @@ halmac_parse_psd_data_88xx(struct halmac_adapter *halmac_adapter, u8 *c2h_buf,
if (!psd_set->data) {
psd_set->data = kzalloc(psd_set->data_size, GFP_KERNEL);
if (!psd_set->data)
- return HALMAC_CMD_PROCESS_ERROR;
+ return HALMAC_RET_MALLOC_FAIL;
}

if (segment_id == 0)
--
2.20.1



2020-01-24 13:29:15

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 117/343] net: dsa: qca8k: Enable delay for RGMII_ID mode

From: Vinod Koul <[email protected]>

[ Upstream commit a968b5e9d5879f9535d6099505f9e14abcafb623 ]

RGMII_ID specifies that we should have internal delay, so resurrect the
delay addition routine but under the RGMII_ID mode.

Fixes: 40269aa9f40a ("net: dsa: qca8k: disable delay for RGMII mode")
Tested-by: Michal Vokáč <[email protected]>
Signed-off-by: Vinod Koul <[email protected]>
Reviewed-by: Andrew Lunn <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/net/dsa/qca8k.c | 12 ++++++++++++
drivers/net/dsa/qca8k.h | 1 +
2 files changed, 13 insertions(+)

diff --git a/drivers/net/dsa/qca8k.c b/drivers/net/dsa/qca8k.c
index 8e49974ffa0ed..8ee59b20b47a3 100644
--- a/drivers/net/dsa/qca8k.c
+++ b/drivers/net/dsa/qca8k.c
@@ -459,6 +459,18 @@ qca8k_set_pad_ctrl(struct qca8k_priv *priv, int port, int mode)
qca8k_write(priv, QCA8K_REG_PORT5_PAD_CTRL,
QCA8K_PORT_PAD_RGMII_RX_DELAY_EN);
break;
+ case PHY_INTERFACE_MODE_RGMII_ID:
+ /* RGMII_ID needs internal delay. This is enabled through
+ * PORT5_PAD_CTRL for all ports, rather than individual port
+ * registers
+ */
+ qca8k_write(priv, reg,
+ QCA8K_PORT_PAD_RGMII_EN |
+ QCA8K_PORT_PAD_RGMII_TX_DELAY(QCA8K_MAX_DELAY) |
+ QCA8K_PORT_PAD_RGMII_RX_DELAY(QCA8K_MAX_DELAY));
+ qca8k_write(priv, QCA8K_REG_PORT5_PAD_CTRL,
+ QCA8K_PORT_PAD_RGMII_RX_DELAY_EN);
+ break;
case PHY_INTERFACE_MODE_SGMII:
qca8k_write(priv, reg, QCA8K_PORT_PAD_SGMII_EN);
break;
diff --git a/drivers/net/dsa/qca8k.h b/drivers/net/dsa/qca8k.h
index 613fe5c50236c..d146e54c8a6c6 100644
--- a/drivers/net/dsa/qca8k.h
+++ b/drivers/net/dsa/qca8k.h
@@ -40,6 +40,7 @@
((0x8 + (x & 0x3)) << 22)
#define QCA8K_PORT_PAD_RGMII_RX_DELAY(x) \
((0x10 + (x & 0x3)) << 20)
+#define QCA8K_MAX_DELAY 3
#define QCA8K_PORT_PAD_RGMII_RX_DELAY_EN BIT(24)
#define QCA8K_PORT_PAD_SGMII_EN BIT(7)
#define QCA8K_REG_MODULE_EN 0x030
--
2.20.1



2020-01-24 13:29:17

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 123/343] powerpc/64s: Fix logic when handling unknown CPU features

From: Michael Ellerman <[email protected]>

[ Upstream commit 8cfaf106918a8c13abb24c641556172afbb9545c ]

In cpufeatures_process_feature(), if a provided CPU feature is unknown and
enable_unknown is false, we erroneously print that the feature is being
enabled and return true, even though no feature has been enabled, and
may also set feature bits based on the last entry in the match table.

Fix this so that we only set feature bits from the match table if we have
actually enabled a feature from that table, and when failing to enable an
unknown feature, always print the "not enabling" message and return false.

Coincidentally, some older gccs (<GCC 7), when invoked with
-fsanitize-coverage=trace-pc, cause a spurious uninitialised variable
warning in this function:

arch/powerpc/kernel/dt_cpu_ftrs.c: In function ‘cpufeatures_process_feature’:
arch/powerpc/kernel/dt_cpu_ftrs.c:686:7: warning: ‘m’ may be used uninitialized in this function [-Wmaybe-uninitialized]
if (m->cpu_ftr_bit_mask)

An upcoming patch will enable support for kcov, which requires this option.
This patch avoids the warning.

Fixes: 5a61ef74f269 ("powerpc/64s: Support new device tree binding for discovering CPU features")
Reported-by: Segher Boessenkool <[email protected]>
Signed-off-by: Michael Ellerman <[email protected]>
[ajd: add commit message]
Signed-off-by: Andrew Donnellan <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
arch/powerpc/kernel/dt_cpu_ftrs.c | 17 +++++++----------
1 file changed, 7 insertions(+), 10 deletions(-)

diff --git a/arch/powerpc/kernel/dt_cpu_ftrs.c b/arch/powerpc/kernel/dt_cpu_ftrs.c
index 2357df60de952..7ed2b1b6643cc 100644
--- a/arch/powerpc/kernel/dt_cpu_ftrs.c
+++ b/arch/powerpc/kernel/dt_cpu_ftrs.c
@@ -705,8 +705,10 @@ static bool __init cpufeatures_process_feature(struct dt_cpu_feature *f)
m = &dt_cpu_feature_match_table[i];
if (!strcmp(f->name, m->name)) {
known = true;
- if (m->enable(f))
+ if (m->enable(f)) {
+ cur_cpu_spec->cpu_features |= m->cpu_ftr_bit_mask;
break;
+ }

pr_info("not enabling: %s (disabled or unsupported by kernel)\n",
f->name);
@@ -714,17 +716,12 @@ static bool __init cpufeatures_process_feature(struct dt_cpu_feature *f)
}
}

- if (!known && enable_unknown) {
- if (!feat_try_enable_unknown(f)) {
- pr_info("not enabling: %s (unknown and unsupported by kernel)\n",
- f->name);
- return false;
- }
+ if (!known && (!enable_unknown || !feat_try_enable_unknown(f))) {
+ pr_info("not enabling: %s (unknown and unsupported by kernel)\n",
+ f->name);
+ return false;
}

- if (m->cpu_ftr_bit_mask)
- cur_cpu_spec->cpu_features |= m->cpu_ftr_bit_mask;
-
if (known)
pr_debug("enabling: %s\n", f->name);
else
--
2.20.1



2020-01-24 13:30:25

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 141/343] xen, cpu_hotplug: Prevent an out of bounds access

From: Dan Carpenter <[email protected]>

[ Upstream commit 201676095dda7e5b31a5e1d116d10fc22985075e ]

The "cpu" variable comes from the sscanf() so Smatch marks it as
untrusted data. We can't pass a higher value than "nr_cpu_ids" to
cpu_possible() or it results in an out of bounds access.

Fixes: d68d82afd4c8 ("xen: implement CPU hotplugging")
Signed-off-by: Dan Carpenter <[email protected]>
Reviewed-by: Juergen Gross <[email protected]>
Signed-off-by: Juergen Gross <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/xen/cpu_hotplug.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/xen/cpu_hotplug.c b/drivers/xen/cpu_hotplug.c
index b1357aa4bc552..f192b6f42da9f 100644
--- a/drivers/xen/cpu_hotplug.c
+++ b/drivers/xen/cpu_hotplug.c
@@ -54,7 +54,7 @@ static int vcpu_online(unsigned int cpu)
}
static void vcpu_hotplug(unsigned int cpu)
{
- if (!cpu_possible(cpu))
+ if (cpu >= nr_cpu_ids || !cpu_possible(cpu))
return;

switch (vcpu_online(cpu)) {
--
2.20.1



2020-01-24 13:31:03

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 129/343] mmc: sdhci-brcmstb: handle mmc_of_parse() errors during probe

From: Stefan Wahren <[email protected]>

[ Upstream commit 1e20186e706da8446f9435f2924cd65ab1397e73 ]

We need to handle mmc_of_parse() errors during probe otherwise the
MMC driver could start without proper initialization (e.g. power sequence).

Fixes: 476bf3d62d5c ("mmc: sdhci-brcmstb: Add driver for Broadcom BRCMSTB SoCs")
Signed-off-by: Stefan Wahren <[email protected]>
Signed-off-by: Ulf Hansson <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/mmc/host/sdhci-brcmstb.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/mmc/host/sdhci-brcmstb.c b/drivers/mmc/host/sdhci-brcmstb.c
index 552bddc5096ce..1cd10356fc14f 100644
--- a/drivers/mmc/host/sdhci-brcmstb.c
+++ b/drivers/mmc/host/sdhci-brcmstb.c
@@ -55,7 +55,9 @@ static int sdhci_brcmstb_probe(struct platform_device *pdev)
}

sdhci_get_of_property(pdev);
- mmc_of_parse(host->mmc);
+ res = mmc_of_parse(host->mmc);
+ if (res)
+ goto err;

/*
* Supply the existing CAPS, but clear the UHS modes. This
--
2.20.1



2020-01-24 13:31:04

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 166/343] ARM: pxa: ssp: Fix "WARNING: invalid free of devm_ allocated data"

From: YueHaibing <[email protected]>

[ Upstream commit 9ee8578d953023cc57e7e736ae48502c707c0210 ]

Since commit 1c459de1e645 ("ARM: pxa: ssp: use devm_ functions")
kfree, iounmap, clk_put etc are not needed anymore in remove path.

Fixes: 1c459de1e645 ("ARM: pxa: ssp: use devm_ functions")
Signed-off-by: YueHaibing <[email protected]>
[ commit message spelling fix ]
Signed-off-by: Robert Jarzmik <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
arch/arm/plat-pxa/ssp.c | 6 ------
1 file changed, 6 deletions(-)

diff --git a/arch/arm/plat-pxa/ssp.c b/arch/arm/plat-pxa/ssp.c
index b92673efffffb..97bd43c16cd87 100644
--- a/arch/arm/plat-pxa/ssp.c
+++ b/arch/arm/plat-pxa/ssp.c
@@ -230,18 +230,12 @@ static int pxa_ssp_probe(struct platform_device *pdev)

static int pxa_ssp_remove(struct platform_device *pdev)
{
- struct resource *res;
struct ssp_device *ssp;

ssp = platform_get_drvdata(pdev);
if (ssp == NULL)
return -ENODEV;

- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- release_mem_region(res->start, resource_size(res));
-
- clk_put(ssp->clk);
-
mutex_lock(&ssp_lock);
list_del(&ssp->node);
mutex_unlock(&ssp_lock);
--
2.20.1



2020-01-24 13:31:54

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 161/343] soc/fsl/qe: Fix an error code in qe_pin_request()

From: Dan Carpenter <[email protected]>

[ Upstream commit 5674a92ca4b7e5a6a19231edd10298d30324cd27 ]

We forgot to set "err" on this error path.

Fixes: 1a2d397a6eb5 ("gpio/powerpc: Eliminate duplication of of_get_named_gpio_flags()")
Signed-off-by: Dan Carpenter <[email protected]>
Signed-off-by: Li Yang <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/soc/fsl/qe/gpio.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/soc/fsl/qe/gpio.c b/drivers/soc/fsl/qe/gpio.c
index 3b27075c21a7f..5cbc5ce5ac159 100644
--- a/drivers/soc/fsl/qe/gpio.c
+++ b/drivers/soc/fsl/qe/gpio.c
@@ -152,8 +152,10 @@ struct qe_pin *qe_pin_request(struct device_node *np, int index)
if (err < 0)
goto err0;
gc = gpio_to_chip(err);
- if (WARN_ON(!gc))
+ if (WARN_ON(!gc)) {
+ err = -ENODEV;
goto err0;
+ }

if (!of_device_is_compatible(gc->of_node, "fsl,mpc8323-qe-pario-bank")) {
pr_debug("%s: tried to get a non-qe pin\n", __func__);
--
2.20.1



2020-01-24 13:32:19

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 158/343] spi: tegra114: terminate dma and reset on transfer timeout

From: Sowjanya Komatineni <[email protected]>

[ Upstream commit 32bd1a9551cae34e6889afa235c7afdfede9aeac ]

Fixes: terminate DMA and perform controller reset on transfer timeout
to clear the FIFO's and errors.

Signed-off-by: Sowjanya Komatineni <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/spi/spi-tegra114.c | 9 +++++++++
1 file changed, 9 insertions(+)

diff --git a/drivers/spi/spi-tegra114.c b/drivers/spi/spi-tegra114.c
index c6674b01e0fd6..4878d5e00c669 100644
--- a/drivers/spi/spi-tegra114.c
+++ b/drivers/spi/spi-tegra114.c
@@ -869,7 +869,16 @@ static int tegra_spi_transfer_one_message(struct spi_master *master,
if (WARN_ON(ret == 0)) {
dev_err(tspi->dev,
"spi transfer timeout, err %d\n", ret);
+ if (tspi->is_curr_dma_xfer &&
+ (tspi->cur_direction & DATA_DIR_TX))
+ dmaengine_terminate_all(tspi->tx_dma_chan);
+ if (tspi->is_curr_dma_xfer &&
+ (tspi->cur_direction & DATA_DIR_RX))
+ dmaengine_terminate_all(tspi->rx_dma_chan);
ret = -EIO;
+ reset_control_assert(tspi->rst);
+ udelay(2);
+ reset_control_deassert(tspi->rst);
goto complete_xfer;
}

--
2.20.1



2020-01-24 13:37:10

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 147/343] media: cx23885: check allocation return

From: Nicholas Mc Guire <[email protected]>

[ Upstream commit a3d7f22ef34ec4206b50ee121384d5c8bebd5591 ]

Checking of kmalloc() seems to have been committed - as
cx23885_dvb_register() is checking for != 0 return, returning
-ENOMEM should be fine here. While at it address the coccicheck
suggestion to move to kmemdup rather than using kmalloc+memcpy.

Fixes: 46b21bbaa8a8 ("[media] Add support for DViCO FusionHDTV DVB-T Dual Express2")

Signed-off-by: Nicholas Mc Guire <[email protected]>
Signed-off-by: Sean Young <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/media/pci/cx23885/cx23885-dvb.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/media/pci/cx23885/cx23885-dvb.c b/drivers/media/pci/cx23885/cx23885-dvb.c
index e795ddeb7fe28..60f122edaefb3 100644
--- a/drivers/media/pci/cx23885/cx23885-dvb.c
+++ b/drivers/media/pci/cx23885/cx23885-dvb.c
@@ -1460,8 +1460,9 @@ static int dvb_register(struct cx23885_tsport *port)
if (fe0->dvb.frontend != NULL) {
struct i2c_adapter *tun_i2c;

- fe0->dvb.frontend->sec_priv = kmalloc(sizeof(dib7000p_ops), GFP_KERNEL);
- memcpy(fe0->dvb.frontend->sec_priv, &dib7000p_ops, sizeof(dib7000p_ops));
+ fe0->dvb.frontend->sec_priv = kmemdup(&dib7000p_ops, sizeof(dib7000p_ops), GFP_KERNEL);
+ if (!fe0->dvb.frontend->sec_priv)
+ return -ENOMEM;
tun_i2c = dib7000p_ops.get_i2c_master(fe0->dvb.frontend, DIBX000_I2C_INTERFACE_TUNER, 1);
if (!dvb_attach(dib0070_attach, fe0->dvb.frontend, tun_i2c, &dib7070p_dib0070_config))
return -ENODEV;
--
2.20.1



2020-01-24 13:37:23

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 149/343] jfs: fix bogus variable self-initialization

From: Arnd Bergmann <[email protected]>

[ Upstream commit a5fdd713d256887b5f012608701149fa939e5645 ]

A statement was originally added in 2006 to shut up a gcc warning,
now but now clang warns about it:

fs/jfs/jfs_txnmgr.c:1932:15: error: variable 'pxd' is uninitialized when used within its own initialization
[-Werror,-Wuninitialized]
pxd_t pxd = pxd; /* truncated extent of xad */
~~~ ^~~

Modern versions of gcc are fine without the silly assignment, so just
drop it. Tested with gcc-4.6 (released 2011), 4.7, 4.8, and 4.9.

Fixes: c9e3ad6021e5 ("JFS: Get rid of "may be used uninitialized" warnings")
Signed-off-by: Arnd Bergmann <[email protected]>
Signed-off-by: Dave Kleikamp <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
fs/jfs/jfs_txnmgr.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/fs/jfs/jfs_txnmgr.c b/fs/jfs/jfs_txnmgr.c
index 4d973524c8879..224ef034004b7 100644
--- a/fs/jfs/jfs_txnmgr.c
+++ b/fs/jfs/jfs_txnmgr.c
@@ -1928,8 +1928,7 @@ static void xtLog(struct jfs_log * log, struct tblock * tblk, struct lrd * lrd,
* header ?
*/
if (tlck->type & tlckTRUNCATE) {
- /* This odd declaration suppresses a bogus gcc warning */
- pxd_t pxd = pxd; /* truncated extent of xad */
+ pxd_t pxd; /* truncated extent of xad */
int twm;

/*
--
2.20.1



2020-01-24 13:41:59

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 156/343] spi: tegra114: clear packed bit for unpacked mode

From: Sowjanya Komatineni <[email protected]>

[ Upstream commit 7b3d10cdf54b8bc1dc0da21faed9789ac4da3684 ]

Fixes: Clear packed bit when not using packed mode.

Packed bit is not cleared when not using packed mode. This results
in transfer timeouts for the unpacked mode transfers followed by the
packed mode transfers.

Signed-off-by: Sowjanya Komatineni <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/spi/spi-tegra114.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/spi/spi-tegra114.c b/drivers/spi/spi-tegra114.c
index 2ad04796ef298..3a6b202dfffe0 100644
--- a/drivers/spi/spi-tegra114.c
+++ b/drivers/spi/spi-tegra114.c
@@ -730,6 +730,8 @@ static int tegra_spi_start_transfer_one(struct spi_device *spi,

if (tspi->is_packed)
command1 |= SPI_PACKED;
+ else
+ command1 &= ~SPI_PACKED;

command1 &= ~(SPI_CS_SEL_MASK | SPI_TX_EN | SPI_RX_EN);
tspi->cur_direction = 0;
--
2.20.1



2020-01-24 13:42:23

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 178/343] NFS: Dont interrupt file writeout due to fatal errors

From: Trond Myklebust <[email protected]>

[ Upstream commit 14bebe3c90b326d2a0df78aed5e9de090c71d878 ]

When flushing out dirty pages, the fact that we may hit fatal errors
is not a reason to stop writeback. Those errors are reported through
fsync(), not through the flush mechanism.

Fixes: a6598813a4c5b ("NFS: Don't write back further requests if there...")
Signed-off-by: Trond Myklebust <[email protected]>
Signed-off-by: Anna Schumaker <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
fs/nfs/write.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/nfs/write.c b/fs/nfs/write.c
index 01b9d9341b541..ed3f5afc4ff7f 100644
--- a/fs/nfs/write.c
+++ b/fs/nfs/write.c
@@ -643,7 +643,7 @@ out:
return ret;
out_launder:
nfs_write_error_remove_page(req);
- return ret;
+ return 0;
}

static int nfs_do_writepage(struct page *page, struct writeback_control *wbc,
--
2.20.1



2020-01-24 13:47:04

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 155/343] media: tw5864: Fix possible NULL pointer dereference in tw5864_handle_frame

From: YueHaibing <[email protected]>

[ Upstream commit 2e7682ebfc750177a4944eeb56e97a3f05734528 ]

'vb' null check should be done before dereferencing it in
tw5864_handle_frame, otherwise a NULL pointer dereference
may occur.

Fixes: 34d1324edd31 ("[media] pci: Add tw5864 driver")

Signed-off-by: YueHaibing <[email protected]>
Signed-off-by: Hans Verkuil <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/media/pci/tw5864/tw5864-video.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/media/pci/tw5864/tw5864-video.c b/drivers/media/pci/tw5864/tw5864-video.c
index e7bd2b8484e3d..ee1230440b397 100644
--- a/drivers/media/pci/tw5864/tw5864-video.c
+++ b/drivers/media/pci/tw5864/tw5864-video.c
@@ -1395,13 +1395,13 @@ static void tw5864_handle_frame(struct tw5864_h264_frame *frame)
input->vb = NULL;
spin_unlock_irqrestore(&input->slock, flags);

- v4l2_buf = to_vb2_v4l2_buffer(&vb->vb.vb2_buf);
-
if (!vb) { /* Gone because of disabling */
dev_dbg(&dev->pci->dev, "vb is empty, dropping frame\n");
return;
}

+ v4l2_buf = to_vb2_v4l2_buffer(&vb->vb.vb2_buf);
+
/*
* Check for space.
* Mind the overhead of startcode emulation prevention.
--
2.20.1



2020-01-24 13:47:16

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 186/343] IB/mlx5: Add missing XRC options to QP optional params mask

From: Jack Morgenstein <[email protected]>

[ Upstream commit 8f4426aa19fcdb9326ac44154a117b1a3a5ae126 ]

The QP transition optional parameters for the various transition for XRC
QPs are identical to those for RC QPs.

Many of the XRC QP transition optional parameter bits are missing from the
QP optional mask table. These omissions caused failures when doing XRC QP
state transitions.

For example, when trying to change the response timer of an XRC receive QP
via the RTS2RTS transition, the new timer value was ignored because
MLX5_QP_OPTPAR_RNR_TIMEOUT bit was missing from the optional params mask
for XRC qps for the RTS2RTS transition.

Fix this by adding the missing XRC optional parameters for all QP
transitions to the opt_mask table.

Fixes: e126ba97dba9 ("mlx5: Add driver for Mellanox Connect-IB adapters")
Fixes: a4774e9095de ("IB/mlx5: Fix opt param mask according to firmware spec")
Signed-off-by: Jack Morgenstein <[email protected]>
Signed-off-by: Leon Romanovsky <[email protected]>
Signed-off-by: Jason Gunthorpe <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/infiniband/hw/mlx5/qp.c | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

diff --git a/drivers/infiniband/hw/mlx5/qp.c b/drivers/infiniband/hw/mlx5/qp.c
index 5a7dcb5afe6e3..84c962820aa2a 100644
--- a/drivers/infiniband/hw/mlx5/qp.c
+++ b/drivers/infiniband/hw/mlx5/qp.c
@@ -2357,6 +2357,11 @@ static enum mlx5_qp_optpar opt_mask[MLX5_QP_NUM_STATE][MLX5_QP_NUM_STATE][MLX5_Q
[MLX5_QP_ST_UD] = MLX5_QP_OPTPAR_PKEY_INDEX |
MLX5_QP_OPTPAR_Q_KEY |
MLX5_QP_OPTPAR_PRI_PORT,
+ [MLX5_QP_ST_XRC] = MLX5_QP_OPTPAR_RRE |
+ MLX5_QP_OPTPAR_RAE |
+ MLX5_QP_OPTPAR_RWE |
+ MLX5_QP_OPTPAR_PKEY_INDEX |
+ MLX5_QP_OPTPAR_PRI_PORT,
},
[MLX5_QP_STATE_RTR] = {
[MLX5_QP_ST_RC] = MLX5_QP_OPTPAR_ALT_ADDR_PATH |
@@ -2390,6 +2395,12 @@ static enum mlx5_qp_optpar opt_mask[MLX5_QP_NUM_STATE][MLX5_QP_NUM_STATE][MLX5_Q
MLX5_QP_OPTPAR_RWE |
MLX5_QP_OPTPAR_PM_STATE,
[MLX5_QP_ST_UD] = MLX5_QP_OPTPAR_Q_KEY,
+ [MLX5_QP_ST_XRC] = MLX5_QP_OPTPAR_ALT_ADDR_PATH |
+ MLX5_QP_OPTPAR_RRE |
+ MLX5_QP_OPTPAR_RAE |
+ MLX5_QP_OPTPAR_RWE |
+ MLX5_QP_OPTPAR_PM_STATE |
+ MLX5_QP_OPTPAR_RNR_TIMEOUT,
},
},
[MLX5_QP_STATE_RTS] = {
@@ -2406,6 +2417,12 @@ static enum mlx5_qp_optpar opt_mask[MLX5_QP_NUM_STATE][MLX5_QP_NUM_STATE][MLX5_Q
[MLX5_QP_ST_UD] = MLX5_QP_OPTPAR_Q_KEY |
MLX5_QP_OPTPAR_SRQN |
MLX5_QP_OPTPAR_CQN_RCV,
+ [MLX5_QP_ST_XRC] = MLX5_QP_OPTPAR_RRE |
+ MLX5_QP_OPTPAR_RAE |
+ MLX5_QP_OPTPAR_RWE |
+ MLX5_QP_OPTPAR_RNR_TIMEOUT |
+ MLX5_QP_OPTPAR_PM_STATE |
+ MLX5_QP_OPTPAR_ALT_ADDR_PATH,
},
},
[MLX5_QP_STATE_SQER] = {
@@ -2417,6 +2434,10 @@ static enum mlx5_qp_optpar opt_mask[MLX5_QP_NUM_STATE][MLX5_QP_NUM_STATE][MLX5_Q
MLX5_QP_OPTPAR_RWE |
MLX5_QP_OPTPAR_RAE |
MLX5_QP_OPTPAR_RRE,
+ [MLX5_QP_ST_XRC] = MLX5_QP_OPTPAR_RNR_TIMEOUT |
+ MLX5_QP_OPTPAR_RWE |
+ MLX5_QP_OPTPAR_RAE |
+ MLX5_QP_OPTPAR_RRE,
},
},
};
--
2.20.1



2020-01-24 13:47:25

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 188/343] net: ena: fix swapped parameters when calling ena_com_indirect_table_fill_entry

From: Sameeh Jubran <[email protected]>

[ Upstream commit 3c6eeff295f01bdf1c6c3addcb0a04c0c6c029e9 ]

second parameter should be the index of the table rather than the value.

Fixes: 1738cd3ed342 ("net: ena: Add a driver for Amazon Elastic Network Adapters (ENA)")
Signed-off-by: Saeed Bshara <[email protected]>
Signed-off-by: Sameeh Jubran <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/net/ethernet/amazon/ena/ena_ethtool.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/amazon/ena/ena_ethtool.c b/drivers/net/ethernet/amazon/ena/ena_ethtool.c
index 967020fb26ee1..a2f02c23fe141 100644
--- a/drivers/net/ethernet/amazon/ena/ena_ethtool.c
+++ b/drivers/net/ethernet/amazon/ena/ena_ethtool.c
@@ -694,8 +694,8 @@ static int ena_set_rxfh(struct net_device *netdev, const u32 *indir,
if (indir) {
for (i = 0; i < ENA_RX_RSS_TABLE_SIZE; i++) {
rc = ena_com_indirect_table_fill_entry(ena_dev,
- ENA_IO_RXQ_IDX(indir[i]),
- i);
+ i,
+ ENA_IO_RXQ_IDX(indir[i]));
if (unlikely(rc)) {
netif_err(adapter, drv, netdev,
"Cannot fill indirect table (index is too large)\n");
--
2.20.1



2020-01-24 13:47:37

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 187/343] iommu/vt-d: Make kernel parameter igfx_off work with vIOMMU

From: Lu Baolu <[email protected]>

[ Upstream commit 5daab58043ee2bca861068e2595564828f3bc663 ]

The kernel parameter igfx_off is used by users to disable
DMA remapping for the Intel integrated graphic device. It
was designed for bare metal cases where a dedicated IOMMU
is used for graphic. This doesn't apply to virtual IOMMU
case where an include-all IOMMU is used. This makes the
kernel parameter work with virtual IOMMU as well.

Cc: Ashok Raj <[email protected]>
Cc: Jacob Pan <[email protected]>
Suggested-by: Kevin Tian <[email protected]>
Fixes: c0771df8d5297 ("intel-iommu: Export a flag indicating that the IOMMU is used for iGFX.")
Signed-off-by: Lu Baolu <[email protected]>
Tested-by: Zhenyu Wang <[email protected]>
Signed-off-by: Joerg Roedel <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/iommu/intel-iommu.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c
index 523d0889c2a4e..4fbd183d973ab 100644
--- a/drivers/iommu/intel-iommu.c
+++ b/drivers/iommu/intel-iommu.c
@@ -3361,9 +3361,12 @@ static int __init init_dmars(void)
iommu_identity_mapping |= IDENTMAP_ALL;

#ifdef CONFIG_INTEL_IOMMU_BROKEN_GFX_WA
- iommu_identity_mapping |= IDENTMAP_GFX;
+ dmar_map_gfx = 0;
#endif

+ if (!dmar_map_gfx)
+ iommu_identity_mapping |= IDENTMAP_GFX;
+
check_tylersburg_isoch();

if (iommu_identity_mapping) {
--
2.20.1



2020-01-24 13:55:18

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 198/343] l2tp: Fix possible NULL pointer dereference

From: YueHaibing <[email protected]>

[ Upstream commit 638a3a1e349ddf5b82f222ff5cb3b4f266e7c278 ]

BUG: unable to handle kernel NULL pointer dereference at 0000000000000128
PGD 0 P4D 0
Oops: 0000 [#1
CPU: 0 PID: 5697 Comm: modprobe Tainted: G W 5.1.0-rc7+ #1
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.9.3-0-ge2fc41e-prebuilt.qemu-project.org 04/01/2014
RIP: 0010:__lock_acquire+0x53/0x10b0
Code: 8b 1c 25 40 5e 01 00 4c 8b 6d 10 45 85 e4 0f 84 bd 06 00 00 44 8b 1d 7c d2 09 02 49 89 fe 41 89 d2 45 85 db 0f 84 47 02 00 00 <48> 81 3f a0 05 70 83 b8 00 00 00 00 44 0f 44 c0 83 fe 01 0f 86 3a
RSP: 0018:ffffc90001c07a28 EFLAGS: 00010002
RAX: 0000000000000000 RBX: ffff88822f038440 RCX: 0000000000000000
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000128
RBP: ffffc90001c07a88 R08: 0000000000000001 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000001 R12: 0000000000000001
R13: 0000000000000000 R14: 0000000000000128 R15: 0000000000000000
FS: 00007fead0811540(0000) GS:ffff888237a00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000000128 CR3: 00000002310da000 CR4: 00000000000006f0
Call Trace:
? __lock_acquire+0x24e/0x10b0
lock_acquire+0xdf/0x230
? flush_workqueue+0x71/0x530
flush_workqueue+0x97/0x530
? flush_workqueue+0x71/0x530
l2tp_exit_net+0x170/0x2b0 [l2tp_core
? l2tp_exit_net+0x93/0x2b0 [l2tp_core
ops_exit_list.isra.6+0x36/0x60
unregister_pernet_operations+0xb8/0x110
unregister_pernet_device+0x25/0x40
l2tp_init+0x55/0x1000 [l2tp_core
? 0xffffffffa018d000
do_one_initcall+0x6c/0x3cc
? do_init_module+0x22/0x1f1
? rcu_read_lock_sched_held+0x97/0xb0
? kmem_cache_alloc_trace+0x325/0x3b0
do_init_module+0x5b/0x1f1
load_module+0x1db1/0x2690
? m_show+0x1d0/0x1d0
__do_sys_finit_module+0xc5/0xd0
__x64_sys_finit_module+0x15/0x20
do_syscall_64+0x6b/0x1d0
entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x7fead031a839
Code: 00 f3 c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 1f f6 2c 00 f7 d8 64 89 01 48
RSP: 002b:00007ffe8d9acca8 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
RAX: ffffffffffffffda RBX: 0000560078398b80 RCX: 00007fead031a839
RDX: 0000000000000000 RSI: 000056007659dc2e RDI: 0000000000000003
RBP: 000056007659dc2e R08: 0000000000000000 R09: 0000560078398b80
R10: 0000000000000003 R11: 0000000000000246 R12: 0000000000000000
R13: 00005600783a04a0 R14: 0000000000040000 R15: 0000560078398b80
Modules linked in: l2tp_core(+) e1000 ip_tables ipv6 [last unloaded: l2tp_core
CR2: 0000000000000128
---[ end trace 8322b2b8bf83f8e1

If alloc_workqueue fails in l2tp_init, l2tp_net_ops
is unregistered on failure path. Then l2tp_exit_net
is called which will flush NULL workqueue, this patch
add a NULL check to fix it.

Fixes: 67e04c29ec0d ("l2tp: unregister l2tp_net_ops on failure path")
Signed-off-by: YueHaibing <[email protected]>
Acked-by: Guillaume Nault <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
net/l2tp/l2tp_core.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/net/l2tp/l2tp_core.c b/net/l2tp/l2tp_core.c
index e494f04819e9c..b9be0360ab94b 100644
--- a/net/l2tp/l2tp_core.c
+++ b/net/l2tp/l2tp_core.c
@@ -1892,7 +1892,8 @@ static __net_exit void l2tp_exit_net(struct net *net)
}
rcu_read_unlock_bh();

- flush_workqueue(l2tp_wq);
+ if (l2tp_wq)
+ flush_workqueue(l2tp_wq);
rcu_barrier();
}

--
2.20.1



2020-01-24 14:05:36

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 213/343] arm64: dts: meson: libretech-cc: set eMMC as removable

From: Jerome Brunet <[email protected]>

[ Upstream commit 9f72e321d5506fe3e162a6308a4a295d7f10bb5d ]

The eMMC on this board is add-on module which is not mandatory. Removing
'non-removable' property should prevent some errors when booting a board
w/o an eMMC module present.

Fixes: 72fb2c852188 ("ARM64: dts: meson-gxl-s905x-libretech-cc: fixup board definition")
Signed-off-by: Jerome Brunet <[email protected]>
Reviewed-by: Martin Blumenstingl<[email protected]>
Signed-off-by: Kevin Hilman <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts | 1 -
1 file changed, 1 deletion(-)

diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts
index e2c71753e3278..407d32f4fe734 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts
@@ -226,7 +226,6 @@
cap-mmc-highspeed;
mmc-ddr-3_3v;
max-frequency = <50000000>;
- non-removable;
disable-wp;

mmc-pwrseq = <&emmc_pwrseq>;
--
2.20.1



2020-01-24 14:12:06

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 212/343] dmaengine: tegra210-adma: Fix crash during probe

From: Jon Hunter <[email protected]>

[ Upstream commit b53611fb1ce9b1786bd18205473e0c1d6bfa8934 ]

Commit f33e7bb3eb92 ("dmaengine: tegra210-adma: restore channel status")
added support to save and restore the DMA channel registers when runtime
suspending the ADMA. This change is causing the kernel to crash when
probing the ADMA, if the device is probed deferred when looking up the
channel interrupts. The crash occurs because not all of the channel base
addresses have been setup at this point and in the clean-up path of the
probe, pm_runtime_suspend() is called invoking its callback which
expects all the channel base addresses to be initialised.

Although this could be fixed by simply checking for a NULL address, on
further review of the driver it seems more appropriate that we only call
pm_runtime_get_sync() after all the channel interrupts and base
addresses have been configured. Therefore, fix this crash by moving the
calls to pm_runtime_enable(), pm_runtime_get_sync() and
tegra_adma_init() after the DMA channels have been initialised.

Fixes: f33e7bb3eb92 ("dmaengine: tegra210-adma: restore channel status")

Signed-off-by: Jon Hunter <[email protected]>
Signed-off-by: Vinod Koul <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/dma/tegra210-adma.c | 26 +++++++++++++-------------
1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/drivers/dma/tegra210-adma.c b/drivers/dma/tegra210-adma.c
index ac2a6b800db3e..4f4733d831a1a 100644
--- a/drivers/dma/tegra210-adma.c
+++ b/drivers/dma/tegra210-adma.c
@@ -744,16 +744,6 @@ static int tegra_adma_probe(struct platform_device *pdev)
return PTR_ERR(tdma->ahub_clk);
}

- pm_runtime_enable(&pdev->dev);
-
- ret = pm_runtime_get_sync(&pdev->dev);
- if (ret < 0)
- goto rpm_disable;
-
- ret = tegra_adma_init(tdma);
- if (ret)
- goto rpm_put;
-
INIT_LIST_HEAD(&tdma->dma_dev.channels);
for (i = 0; i < tdma->nr_channels; i++) {
struct tegra_adma_chan *tdc = &tdma->channels[i];
@@ -771,6 +761,16 @@ static int tegra_adma_probe(struct platform_device *pdev)
tdc->tdma = tdma;
}

+ pm_runtime_enable(&pdev->dev);
+
+ ret = pm_runtime_get_sync(&pdev->dev);
+ if (ret < 0)
+ goto rpm_disable;
+
+ ret = tegra_adma_init(tdma);
+ if (ret)
+ goto rpm_put;
+
dma_cap_set(DMA_SLAVE, tdma->dma_dev.cap_mask);
dma_cap_set(DMA_PRIVATE, tdma->dma_dev.cap_mask);
dma_cap_set(DMA_CYCLIC, tdma->dma_dev.cap_mask);
@@ -812,13 +812,13 @@ static int tegra_adma_probe(struct platform_device *pdev)

dma_remove:
dma_async_device_unregister(&tdma->dma_dev);
-irq_dispose:
- while (--i >= 0)
- irq_dispose_mapping(tdma->channels[i].irq);
rpm_put:
pm_runtime_put_sync(&pdev->dev);
rpm_disable:
pm_runtime_disable(&pdev->dev);
+irq_dispose:
+ while (--i >= 0)
+ irq_dispose_mapping(tdma->channels[i].irq);

return ret;
}
--
2.20.1



2020-01-24 14:12:14

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 205/343] pwm: meson: Dont disable PWM when setting duty repeatedly

From: Bichao Zheng <[email protected]>

[ Upstream commit a279345807e1e0ae79567a52cfdd9d30c9174a3c ]

There is an abnormally low about 20ms,when setting duty repeatedly.
Because setting the duty will disable PWM and then enable. Delete
this operation now.

Fixes: 211ed630753d2f ("pwm: Add support for Meson PWM Controller")
Signed-off-by: Bichao Zheng <[email protected]>
[ Dropped code instead of hiding it behind a comment ]
Signed-off-by: Martin Blumenstingl <[email protected]>
Reviewed-by: Neil Armstrong <[email protected]>
Signed-off-by: Thierry Reding <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/pwm/pwm-meson.c | 5 -----
1 file changed, 5 deletions(-)

diff --git a/drivers/pwm/pwm-meson.c b/drivers/pwm/pwm-meson.c
index 9551f896dd6f3..3d2c36963a4fc 100644
--- a/drivers/pwm/pwm-meson.c
+++ b/drivers/pwm/pwm-meson.c
@@ -325,11 +325,6 @@ static int meson_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
if (state->period != channel->state.period ||
state->duty_cycle != channel->state.duty_cycle ||
state->polarity != channel->state.polarity) {
- if (channel->state.enabled) {
- meson_pwm_disable(meson, pwm->hwpwm);
- channel->state.enabled = false;
- }
-
if (state->polarity != channel->state.polarity) {
if (state->polarity == PWM_POLARITY_NORMAL)
meson->inverter_mask |= BIT(pwm->hwpwm);
--
2.20.1



2020-01-24 14:12:46

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 216/343] crypto: ccp - fix AES CFB error exposed by new test vectors

From: Hook, Gary <[email protected]>

[ Upstream commit c3b359d6567c0b8f413e924feb37cf025067d55a ]

Updated testmgr will exhibit this error message when loading the
ccp-crypto module:

alg: skcipher: cfb-aes-ccp encryption failed with err -22 on test vector 3, cfg="in-place"

Update the CCP crypto driver to correctly treat CFB as a streaming mode
cipher (instead of block mode). Update the configuration for CFB to
specify the block size as a single byte;

Fixes: 2b789435d7f3 ('crypto: ccp - CCP AES crypto API support')

Signed-off-by: Gary R Hook <[email protected]>
Signed-off-by: Herbert Xu <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/crypto/ccp/ccp-crypto-aes.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/crypto/ccp/ccp-crypto-aes.c b/drivers/crypto/ccp/ccp-crypto-aes.c
index 89291c15015cd..3f768699332ba 100644
--- a/drivers/crypto/ccp/ccp-crypto-aes.c
+++ b/drivers/crypto/ccp/ccp-crypto-aes.c
@@ -1,7 +1,8 @@
+// SPDX-License-Identifier: GPL-2.0
/*
* AMD Cryptographic Coprocessor (CCP) AES crypto API support
*
- * Copyright (C) 2013,2016 Advanced Micro Devices, Inc.
+ * Copyright (C) 2013-2019 Advanced Micro Devices, Inc.
*
* Author: Tom Lendacky <[email protected]>
*
@@ -79,8 +80,7 @@ static int ccp_aes_crypt(struct ablkcipher_request *req, bool encrypt)
return -EINVAL;

if (((ctx->u.aes.mode == CCP_AES_MODE_ECB) ||
- (ctx->u.aes.mode == CCP_AES_MODE_CBC) ||
- (ctx->u.aes.mode == CCP_AES_MODE_CFB)) &&
+ (ctx->u.aes.mode == CCP_AES_MODE_CBC)) &&
(req->nbytes & (AES_BLOCK_SIZE - 1)))
return -EINVAL;

@@ -291,7 +291,7 @@ static struct ccp_aes_def aes_algs[] = {
.version = CCP_VERSION(3, 0),
.name = "cfb(aes)",
.driver_name = "cfb-aes-ccp",
- .blocksize = AES_BLOCK_SIZE,
+ .blocksize = 1,
.ivsize = AES_BLOCK_SIZE,
.alg_defaults = &ccp_aes_defaults,
},
--
2.20.1



2020-01-24 14:14:52

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 234/343] powerpc/cacheinfo: add cacheinfo_teardown, cacheinfo_rebuild

From: Nathan Lynch <[email protected]>

[ Upstream commit d4aa219a074a5abaf95a756b9f0d190b5c03a945 ]

Allow external callers to force the cacheinfo code to release all its
references to cache nodes, e.g. before processing device tree updates
post-migration, and to rebuild the hierarchy afterward.

CPU online/offline must be blocked by callers; enforce this.

Fixes: 410bccf97881 ("powerpc/pseries: Partition migration in the kernel")
Signed-off-by: Nathan Lynch <[email protected]>
Reviewed-by: Gautham R. Shenoy <[email protected]>
Signed-off-by: Michael Ellerman <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
arch/powerpc/kernel/cacheinfo.c | 21 +++++++++++++++++++++
arch/powerpc/kernel/cacheinfo.h | 4 ++++
2 files changed, 25 insertions(+)

diff --git a/arch/powerpc/kernel/cacheinfo.c b/arch/powerpc/kernel/cacheinfo.c
index a8f20e5928e13..9edb454301336 100644
--- a/arch/powerpc/kernel/cacheinfo.c
+++ b/arch/powerpc/kernel/cacheinfo.c
@@ -865,4 +865,25 @@ void cacheinfo_cpu_offline(unsigned int cpu_id)
if (cache)
cache_cpu_clear(cache, cpu_id);
}
+
+void cacheinfo_teardown(void)
+{
+ unsigned int cpu;
+
+ lockdep_assert_cpus_held();
+
+ for_each_online_cpu(cpu)
+ cacheinfo_cpu_offline(cpu);
+}
+
+void cacheinfo_rebuild(void)
+{
+ unsigned int cpu;
+
+ lockdep_assert_cpus_held();
+
+ for_each_online_cpu(cpu)
+ cacheinfo_cpu_online(cpu);
+}
+
#endif /* (CONFIG_PPC_PSERIES && CONFIG_SUSPEND) || CONFIG_HOTPLUG_CPU */
diff --git a/arch/powerpc/kernel/cacheinfo.h b/arch/powerpc/kernel/cacheinfo.h
index 955f5e999f1b8..52bd3fc6642da 100644
--- a/arch/powerpc/kernel/cacheinfo.h
+++ b/arch/powerpc/kernel/cacheinfo.h
@@ -6,4 +6,8 @@
extern void cacheinfo_cpu_online(unsigned int cpu_id);
extern void cacheinfo_cpu_offline(unsigned int cpu_id);

+/* Allow migration/suspend to tear down and rebuild the hierarchy. */
+extern void cacheinfo_teardown(void);
+extern void cacheinfo_rebuild(void);
+
#endif /* _PPC_CACHEINFO_H */
--
2.20.1



2020-01-24 14:15:55

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 245/343] clk: qcom: Fix -Wunused-const-variable

From: Nathan Huckleberry <[email protected]>

[ Upstream commit da642427bd7710ec4f4140f693f59aa8521a358c ]

Clang produces the following warning

drivers/clk/qcom/gcc-msm8996.c:133:32: warning: unused variable
'gcc_xo_gpll0_gpll2_gpll3_gpll0_early_div_map' [-Wunused-const-variable]
static const struct
parent_map gcc_xo_gpll0_gpll2_gpll3_gpll0_early_div_map[] =
{ ^drivers/clk/qcom/gcc-msm8996.c:141:27: warning: unused variable
'gcc_xo_gpll0_gpll2_gpll3_gpll0_early_div' [-Wunused-const-variable] static
const char * const gcc_xo_gpll0_gpll2_gpll3_gpll0_early_div[] = { ^
drivers/clk/qcom/gcc-msm8996.c:187:32: warning: unused variable
'gcc_xo_gpll0_gpll2_gpll3_gpll1_gpll4_gpll0_early_div_map'
[-Wunused-const-variable] static const struct parent_map
gcc_xo_gpll0_gpll2_gpll3_gpll1_gpll4_gpll0_early_div_map[] = { ^
drivers/clk/qcom/gcc-msm8996.c:197:27: warning: unused variable
'gcc_xo_gpll0_gpll2_gpll3_gpll1_gpll4_gpll0_early_div'
[-Wunused-const-variable] static const char * const
gcc_xo_gpll0_gpll2_gpll3_gpll1_gpll4_gpll0_early_div[] = {

It looks like these were never used.

Fixes: b1e010c0730a ("clk: qcom: Add MSM8996 Global Clock Control (GCC) driver")
Cc: [email protected]
Link: https://github.com/ClangBuiltLinux/linux/issues/518
Suggested-by: Nathan Chancellor <[email protected]>
Signed-off-by: Nathan Huckleberry <[email protected]>
Reviewed-by: Nathan Chancellor <[email protected]>
Signed-off-by: Stephen Boyd <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/clk/qcom/gcc-msm8996.c | 36 ----------------------------------
1 file changed, 36 deletions(-)

diff --git a/drivers/clk/qcom/gcc-msm8996.c b/drivers/clk/qcom/gcc-msm8996.c
index 7ddec886fcd35..c0b043b1bd248 100644
--- a/drivers/clk/qcom/gcc-msm8996.c
+++ b/drivers/clk/qcom/gcc-msm8996.c
@@ -140,22 +140,6 @@ static const char * const gcc_xo_gpll0_gpll4_gpll0_early_div[] = {
"gpll0_early_div"
};

-static const struct parent_map gcc_xo_gpll0_gpll2_gpll3_gpll0_early_div_map[] = {
- { P_XO, 0 },
- { P_GPLL0, 1 },
- { P_GPLL2, 2 },
- { P_GPLL3, 3 },
- { P_GPLL0_EARLY_DIV, 6 }
-};
-
-static const char * const gcc_xo_gpll0_gpll2_gpll3_gpll0_early_div[] = {
- "xo",
- "gpll0",
- "gpll2",
- "gpll3",
- "gpll0_early_div"
-};
-
static const struct parent_map gcc_xo_gpll0_gpll1_early_div_gpll1_gpll4_gpll0_early_div_map[] = {
{ P_XO, 0 },
{ P_GPLL0, 1 },
@@ -194,26 +178,6 @@ static const char * const gcc_xo_gpll0_gpll2_gpll3_gpll1_gpll2_early_gpll0_early
"gpll0_early_div"
};

-static const struct parent_map gcc_xo_gpll0_gpll2_gpll3_gpll1_gpll4_gpll0_early_div_map[] = {
- { P_XO, 0 },
- { P_GPLL0, 1 },
- { P_GPLL2, 2 },
- { P_GPLL3, 3 },
- { P_GPLL1, 4 },
- { P_GPLL4, 5 },
- { P_GPLL0_EARLY_DIV, 6 }
-};
-
-static const char * const gcc_xo_gpll0_gpll2_gpll3_gpll1_gpll4_gpll0_early_div[] = {
- "xo",
- "gpll0",
- "gpll2",
- "gpll3",
- "gpll1",
- "gpll4",
- "gpll0_early_div"
-};
-
static struct clk_fixed_factor xo = {
.mult = 1,
.div = 1,
--
2.20.1



2020-01-24 14:15:58

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 273/343] net/rds: Add a few missing rds_stat_names entries

From: Gerd Rausch <[email protected]>

[ Upstream commit 55c70ca00c982fbc0df4c4d3e31747fb73f4ddb5 ]

In a previous commit, fields were added to "struct rds_statistics"
but array "rds_stat_names" was not updated accordingly.

Please note the inconsistent naming of the string representations
that is done in the name of compatibility
with the Oracle internal code-base.

s_recv_bytes_added_to_socket -> "recv_bytes_added_to_sock"
s_recv_bytes_removed_from_socket -> "recv_bytes_freed_fromsock"

Fixes: 192a798f5299 ("RDS: add stat for socket recv memory usage")
Signed-off-by: Gerd Rausch <[email protected]>
Acked-by: Santosh Shilimkar <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
net/rds/stats.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/net/rds/stats.c b/net/rds/stats.c
index 73be187d389ed..6bbab4d74c4fe 100644
--- a/net/rds/stats.c
+++ b/net/rds/stats.c
@@ -76,6 +76,8 @@ static const char *const rds_stat_names[] = {
"cong_update_received",
"cong_send_error",
"cong_send_blocked",
+ "recv_bytes_added_to_sock",
+ "recv_bytes_freed_fromsock",
};

void rds_stats_info_copy(struct rds_info_iterator *iter,
--
2.20.1



2020-01-24 14:16:00

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 276/343] ASoC: sun4i-i2s: RX and TX counter registers are swapped

From: Maxime Ripard <[email protected]>

[ Upstream commit cf2c0e1ce9544df42170fb921f12da82dc0cc8d6 ]

The RX and TX counters registers offset have been swapped, fix that.

Fixes: fa7c0d13cb26 ("ASoC: sunxi: Add Allwinner A10 Digital Audio driver")
Signed-off-by: Maxime Ripard <[email protected]>
Link: https://lore.kernel.org/r/8b26477560ad5fd8f69e037b167c5e61de5c26a3.1566242458.git-series.maxime.ripard@bootlin.com
Signed-off-by: Mark Brown <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
sound/soc/sunxi/sun4i-i2s.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/sound/soc/sunxi/sun4i-i2s.c b/sound/soc/sunxi/sun4i-i2s.c
index da0a2083e12af..d2802fd8c1dd7 100644
--- a/sound/soc/sunxi/sun4i-i2s.c
+++ b/sound/soc/sunxi/sun4i-i2s.c
@@ -80,8 +80,8 @@
#define SUN4I_I2S_CLK_DIV_MCLK_MASK GENMASK(3, 0)
#define SUN4I_I2S_CLK_DIV_MCLK(mclk) ((mclk) << 0)

-#define SUN4I_I2S_RX_CNT_REG 0x28
-#define SUN4I_I2S_TX_CNT_REG 0x2c
+#define SUN4I_I2S_TX_CNT_REG 0x28
+#define SUN4I_I2S_RX_CNT_REG 0x2c

#define SUN4I_I2S_TX_CHAN_SEL_REG 0x30
#define SUN4I_I2S_CHAN_SEL(num_chan) (((num_chan) - 1) << 0)
--
2.20.1



2020-01-24 14:16:00

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 277/343] dmaengine: dw: platform: Switch to acpi_dma_controller_register()

From: Andy Shevchenko <[email protected]>

[ Upstream commit e7b8514e4d68bec21fc6385fa0a66797ddc34ac9 ]

There is a possibility to have registered ACPI DMA controller
while it has been gone already.

To avoid the potential crash, move to non-managed
acpi_dma_controller_register().

Fixes: 42c91ee71d6d ("dw_dmac: add ACPI support")
Signed-off-by: Andy Shevchenko <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Vinod Koul <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/dma/dw/platform.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/drivers/dma/dw/platform.c b/drivers/dma/dw/platform.c
index 46a519e07195c..b408c07662f59 100644
--- a/drivers/dma/dw/platform.c
+++ b/drivers/dma/dw/platform.c
@@ -87,13 +87,20 @@ static void dw_dma_acpi_controller_register(struct dw_dma *dw)
dma_cap_set(DMA_SLAVE, info->dma_cap);
info->filter_fn = dw_dma_acpi_filter;

- ret = devm_acpi_dma_controller_register(dev, acpi_dma_simple_xlate,
- info);
+ ret = acpi_dma_controller_register(dev, acpi_dma_simple_xlate, info);
if (ret)
dev_err(dev, "could not register acpi_dma_controller\n");
}
+
+static void dw_dma_acpi_controller_free(struct dw_dma *dw)
+{
+ struct device *dev = dw->dma.dev;
+
+ acpi_dma_controller_free(dev);
+}
#else /* !CONFIG_ACPI */
static inline void dw_dma_acpi_controller_register(struct dw_dma *dw) {}
+static inline void dw_dma_acpi_controller_free(struct dw_dma *dw) {}
#endif /* !CONFIG_ACPI */

#ifdef CONFIG_OF
@@ -249,6 +256,9 @@ static int dw_remove(struct platform_device *pdev)
{
struct dw_dma_chip *chip = platform_get_drvdata(pdev);

+ if (ACPI_HANDLE(&pdev->dev))
+ dw_dma_acpi_controller_free(chip->dw);
+
if (pdev->dev.of_node)
of_dma_controller_free(pdev->dev.of_node);

--
2.20.1



2020-01-24 14:18:07

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 285/343] hwmon: (lm75) Fix write operations for negative temperatures

From: Guenter Roeck <[email protected]>

[ Upstream commit 7d82fcc9d9e81241778aaa22fda7be753e237d86 ]

Writes into limit registers fail if the temperature written is negative.
The regmap write operation checks the value range, regmap_write accepts
an unsigned int as parameter, and the temperature value passed to
regmap_write is kept in a variable declared as long. Negative values
are converted large unsigned integers, which fails the range check.
Fix by type casting the temperature to u16 when calling regmap_write().

Cc: Iker Perez del Palomar Sustatxa <[email protected]>
Fixes: e65365fed87f ("hwmon: (lm75) Convert to use regmap")
Signed-off-by: Guenter Roeck <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/hwmon/lm75.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/hwmon/lm75.c b/drivers/hwmon/lm75.c
index 005ffb5ffa92d..1737bb5fbaafe 100644
--- a/drivers/hwmon/lm75.c
+++ b/drivers/hwmon/lm75.c
@@ -165,7 +165,7 @@ static int lm75_write(struct device *dev, enum hwmon_sensor_types type,
temp = DIV_ROUND_CLOSEST(temp << (resolution - 8),
1000) << (16 - resolution);

- return regmap_write(data->regmap, reg, temp);
+ return regmap_write(data->regmap, reg, (u16)temp);
}

static umode_t lm75_is_visible(const void *data, enum hwmon_sensor_types type,
--
2.20.1



2020-01-24 14:19:34

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 306/343] net/rds: Fix ib_evt_handler_call element in rds_ib_stat_names

From: Gerd Rausch <[email protected]>

[ Upstream commit 05a82481a3024b94db00b8c816bb3d526b5209e0 ]

All entries in 'rds_ib_stat_names' are stringified versions
of the corresponding "struct rds_ib_statistics" element
without the "s_"-prefix.

Fix entry 'ib_evt_handler_call' to do the same.

Fixes: f4f943c958a2 ("RDS: IB: ack more receive completions to improve performance")
Signed-off-by: Gerd Rausch <[email protected]>
Acked-by: Santosh Shilimkar <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
net/rds/ib_stats.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/rds/ib_stats.c b/net/rds/ib_stats.c
index 9252ad1263359..ac46d8961b61a 100644
--- a/net/rds/ib_stats.c
+++ b/net/rds/ib_stats.c
@@ -42,7 +42,7 @@ DEFINE_PER_CPU_SHARED_ALIGNED(struct rds_ib_statistics, rds_ib_stats);
static const char *const rds_ib_stat_names[] = {
"ib_connect_raced",
"ib_listen_closed_stale",
- "s_ib_evt_handler_call",
+ "ib_evt_handler_call",
"ib_tasklet_call",
"ib_tx_cq_event",
"ib_tx_ring_full",
--
2.20.1



2020-01-24 14:19:40

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 333/343] net: neigh: use long type to store jiffies delta

From: Eric Dumazet <[email protected]>

[ Upstream commit 9d027e3a83f39b819e908e4e09084277a2e45e95 ]

A difference of two unsigned long needs long storage.

Fixes: c7fb64db001f ("[NETLINK]: Neighbour table configuration and statistics via rtnetlink")
Signed-off-by: Eric Dumazet <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
net/core/neighbour.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/net/core/neighbour.c b/net/core/neighbour.c
index 16ac50b1b9a71..567e431813e59 100644
--- a/net/core/neighbour.c
+++ b/net/core/neighbour.c
@@ -1877,8 +1877,8 @@ static int neightbl_fill_info(struct sk_buff *skb, struct neigh_table *tbl,
goto nla_put_failure;
{
unsigned long now = jiffies;
- unsigned int flush_delta = now - tbl->last_flush;
- unsigned int rand_delta = now - tbl->last_rand;
+ long flush_delta = now - tbl->last_flush;
+ long rand_delta = now - tbl->last_rand;
struct neigh_hash_table *nht;
struct ndt_config ndc = {
.ndtc_key_len = tbl->key_len,
--
2.20.1



2020-01-24 14:19:44

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 336/343] mmc: core: fix wl1251 sdio quirks

From: H. Nikolaus Schaller <[email protected]>

[ Upstream commit 16568b4a4f0c34bd35cfadac63303c7af7812764 ]

wl1251 and wl1271 have different vendor id and device id.
So we need to handle both with sdio quirks.

Fixes: 884f38607897 ("mmc: core: move some sdio IDs out of quirks file")
Signed-off-by: H. Nikolaus Schaller <[email protected]>
Cc: <[email protected]> # v4.11+
Signed-off-by: Ulf Hansson <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/mmc/core/quirks.h | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/drivers/mmc/core/quirks.h b/drivers/mmc/core/quirks.h
index 5153577754f02..09897abb79ed6 100644
--- a/drivers/mmc/core/quirks.h
+++ b/drivers/mmc/core/quirks.h
@@ -119,7 +119,14 @@ static const struct mmc_fixup mmc_ext_csd_fixups[] = {
END_FIXUP
};

+
static const struct mmc_fixup sdio_fixup_methods[] = {
+ SDIO_FIXUP(SDIO_VENDOR_ID_TI_WL1251, SDIO_DEVICE_ID_TI_WL1251,
+ add_quirk, MMC_QUIRK_NONSTD_FUNC_IF),
+
+ SDIO_FIXUP(SDIO_VENDOR_ID_TI_WL1251, SDIO_DEVICE_ID_TI_WL1251,
+ add_quirk, MMC_QUIRK_DISABLE_CD),
+
SDIO_FIXUP(SDIO_VENDOR_ID_TI, SDIO_DEVICE_ID_TI_WL1271,
add_quirk, MMC_QUIRK_NONSTD_FUNC_IF),

--
2.20.1



2020-01-24 14:38:39

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH 4.14 000/343] 4.14.168-stable review

On 1/24/20 1:26 AM, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 4.14.168 release.
> There are 343 patches in this series, all will be posted as a response
> to this one. If anyone has any issues with these being applied, please
> let me know.
>
> Responses should be made by Sun, 26 Jan 2020 09:26:30 +0000.
> Anything received after that time might be too late.
>

powerpc:allmodconfig:

arch/powerpc/kernel/kgdb.c: In function 'kgdb_arch_set_breakpoint':
arch/powerpc/kernel/kgdb.c:451:8: error: implicit declaration of function 'probe_kernel_address'

Guenter

2020-01-24 15:18:40

by Jon Hunter

[permalink] [raw]
Subject: Re: [PATCH 4.14 000/343] 4.14.168-stable review


On 24/01/2020 09:26, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 4.14.168 release.
> There are 343 patches in this series, all will be posted as a response
> to this one. If anyone has any issues with these being applied, please
> let me know.
>
> Responses should be made by Sun, 26 Jan 2020 09:26:30 +0000.
> Anything received after that time might be too late.
>
> The whole patch series can be found in one patch at:
> https://www.kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.14.168-rc1.gz
> or in the git tree and branch at:
> git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.14.y
> and the diffstat can be found below.
>
> thanks,
>
> greg k-h


All tests are passing for Tegra ...

Test results for stable-v4.14:
8 builds: 8 pass, 0 fail
16 boots: 16 pass, 0 fail
24 tests: 24 pass, 0 fail

Linux version: 4.14.168-rc1-g44ca37a00ad6
Boards tested: tegra124-jetson-tk1, tegra20-ventana,
tegra210-p2371-2180, tegra30-cardhu-a04

Cheers
Jon

--
nvpublic

2020-01-24 15:26:25

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 252/343] RDMA/hns: Fixs hw access invalid dma memory error

From: Xi Wang <[email protected]>

[ Upstream commit ec5bc2cc69b4fc494e04d10fc5226f6f9cf67c56 ]

When smmu is enable, if execute the perftest command and then use 'kill
-9' to exit, follow this operation repeatedly, the kernel will have a high
probability to print the following smmu event:

arm-smmu-v3 arm-smmu-v3.1.auto: event 0x10 received:
arm-smmu-v3 arm-smmu-v3.1.auto: 0x00007d0000000010
arm-smmu-v3 arm-smmu-v3.1.auto: 0x0000020900000080
arm-smmu-v3 arm-smmu-v3.1.auto: 0x00000000f47cf000
arm-smmu-v3 arm-smmu-v3.1.auto: 0x00000000f47cf000

This is because the hw will periodically refresh the qpc cache until the
next reset.

This patch fixed it by removing the action that release qpc memory in the
'hns_roce_qp_free' function.

Fixes: 9a4435375cd1 ("IB/hns: Add driver files for hns RoCE driver")
Signed-off-by: Xi Wang <[email protected]>
Signed-off-by: Jason Gunthorpe <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/infiniband/hw/hns/hns_roce_qp.c | 1 -
1 file changed, 1 deletion(-)

diff --git a/drivers/infiniband/hw/hns/hns_roce_qp.c b/drivers/infiniband/hw/hns/hns_roce_qp.c
index 3a37d26889df1..281e9987ffc83 100644
--- a/drivers/infiniband/hw/hns/hns_roce_qp.c
+++ b/drivers/infiniband/hw/hns/hns_roce_qp.c
@@ -241,7 +241,6 @@ void hns_roce_qp_free(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp)

if ((hr_qp->ibqp.qp_type) != IB_QPT_GSI) {
hns_roce_table_put(hr_dev, &qp_table->irrl_table, hr_qp->qpn);
- hns_roce_table_put(hr_dev, &qp_table->qp_table, hr_qp->qpn);
}
}

--
2.20.1



2020-01-24 15:26:36

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 251/343] devres: allow const resource arguments

From: Arnd Bergmann <[email protected]>

[ Upstream commit 9dea44c91469512d346e638694c22c30a5273992 ]

devm_ioremap_resource() does not currently take 'const' arguments,
which results in a warning from the first driver trying to do it
anyway:

drivers/gpio/gpio-amd-fch.c: In function 'amd_fch_gpio_probe':
drivers/gpio/gpio-amd-fch.c:171:49: error: passing argument 2 of 'devm_ioremap_resource' discards 'const' qualifier from pointer target type [-Werror=discarded-qualifiers]
priv->base = devm_ioremap_resource(&pdev->dev, &amd_fch_gpio_iores);
^~~~~~~~~~~~~~~~~~~

Change the prototype to allow it, as there is no real reason not to.

Fixes: 9bb2e0452508 ("gpio: amd: Make resource struct const")
Signed-off-by: Arnd Bergmann <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Acked-by: Greg Kroah-Hartman <[email protected]>
Reviwed-By: Enrico Weigelt <[email protected]>
Signed-off-by: Linus Walleij <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
include/linux/device.h | 3 ++-
lib/devres.c | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/include/linux/device.h b/include/linux/device.h
index 66fe271c2544d..0b2e67014a833 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -682,7 +682,8 @@ extern unsigned long devm_get_free_pages(struct device *dev,
gfp_t gfp_mask, unsigned int order);
extern void devm_free_pages(struct device *dev, unsigned long addr);

-void __iomem *devm_ioremap_resource(struct device *dev, struct resource *res);
+void __iomem *devm_ioremap_resource(struct device *dev,
+ const struct resource *res);

/* allows to add/remove a custom action to devres stack */
int devm_add_action(struct device *dev, void (*action)(void *), void *data);
diff --git a/lib/devres.c b/lib/devres.c
index 5f2aedd58bc50..40a8b12a8b6b9 100644
--- a/lib/devres.c
+++ b/lib/devres.c
@@ -132,7 +132,8 @@ EXPORT_SYMBOL(devm_iounmap);
* if (IS_ERR(base))
* return PTR_ERR(base);
*/
-void __iomem *devm_ioremap_resource(struct device *dev, struct resource *res)
+void __iomem *devm_ioremap_resource(struct device *dev,
+ const struct resource *res)
{
resource_size_t size;
const char *name;
--
2.20.1



2020-01-24 15:27:50

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 244/343] dmaengine: hsu: Revert "set HSU_CH_MTSR to memory width"

From: Andy Shevchenko <[email protected]>

[ Upstream commit c24a5c735f87d0549060de31367c095e8810b895 ]

The commit

080edf75d337 ("dmaengine: hsu: set HSU_CH_MTSR to memory width")

has been mistakenly submitted. The further investigations show that
the original code does better job since the memory side transfer size
has never been configured by DMA users.

As per latest revision of documentation: "Channel minimum transfer size
(CHnMTSR)... For IOSF UART, maximum value that can be programmed is 64 and
minimum value that can be programmed is 1."

This reverts commit 080edf75d337d35faa6fc3df99342b10d2848d16.

Fixes: 080edf75d337 ("dmaengine: hsu: set HSU_CH_MTSR to memory width")
Signed-off-by: Andy Shevchenko <[email protected]>
Signed-off-by: Vinod Koul <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/dma/hsu/hsu.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/dma/hsu/hsu.c b/drivers/dma/hsu/hsu.c
index 29d04ca71d52e..15525a2b8ebd7 100644
--- a/drivers/dma/hsu/hsu.c
+++ b/drivers/dma/hsu/hsu.c
@@ -64,10 +64,10 @@ static void hsu_dma_chan_start(struct hsu_dma_chan *hsuc)

if (hsuc->direction == DMA_MEM_TO_DEV) {
bsr = config->dst_maxburst;
- mtsr = config->src_addr_width;
+ mtsr = config->dst_addr_width;
} else if (hsuc->direction == DMA_DEV_TO_MEM) {
bsr = config->src_maxburst;
- mtsr = config->dst_addr_width;
+ mtsr = config->src_addr_width;
}

hsu_chan_disable(hsuc);
--
2.20.1



2020-01-24 15:29:00

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 241/343] rtc: pcf8563: Clear event flags and disable interrupts before requesting irq

From: Chen-Yu Tsai <[email protected]>

[ Upstream commit 3572e8aea3bf925dac1dbf86127657c39fe5c254 ]

Besides the alarm, the PCF8563 also has a timer triggered interrupt.
In cases where the previous system left the timer and interrupts on,
or somehow the bits got enabled, the interrupt would keep triggering
as the kernel doesn't know about it.

Clear both the alarm and timer event flags, and disable the interrupts,
before requesting the interrupt line.

Fixes: ede3e9d47cca ("drivers/rtc/rtc-pcf8563.c: add alarm support")
Fixes: a45d528aab8b ("rtc: pcf8563: clear expired alarm at boot time")
Signed-off-by: Chen-Yu Tsai <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/rtc/rtc-pcf8563.c | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/drivers/rtc/rtc-pcf8563.c b/drivers/rtc/rtc-pcf8563.c
index ef04472dde1d2..4d0b81f9805f8 100644
--- a/drivers/rtc/rtc-pcf8563.c
+++ b/drivers/rtc/rtc-pcf8563.c
@@ -563,7 +563,6 @@ static int pcf8563_probe(struct i2c_client *client,
struct pcf8563 *pcf8563;
int err;
unsigned char buf;
- unsigned char alm_pending;

dev_dbg(&client->dev, "%s\n", __func__);

@@ -587,13 +586,13 @@ static int pcf8563_probe(struct i2c_client *client,
return err;
}

- err = pcf8563_get_alarm_mode(client, NULL, &alm_pending);
- if (err) {
- dev_err(&client->dev, "%s: read error\n", __func__);
+ /* Clear flags and disable interrupts */
+ buf = 0;
+ err = pcf8563_write_block_data(client, PCF8563_REG_ST2, 1, &buf);
+ if (err < 0) {
+ dev_err(&client->dev, "%s: write error\n", __func__);
return err;
}
- if (alm_pending)
- pcf8563_set_alarm_mode(client, 0);

pcf8563->rtc = devm_rtc_device_register(&client->dev,
pcf8563_driver.driver.name,
--
2.20.1



2020-01-24 15:33:03

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 294/343] net: sonic: return NETDEV_TX_OK if failed to map buffer

From: Mao Wenan <[email protected]>

[ Upstream commit 6e1cdedcf0362fed3aedfe051d46bd7ee2a85fe1 ]

NETDEV_TX_BUSY really should only be used by drivers that call
netif_tx_stop_queue() at the wrong moment. If dma_map_single() is
failed to map tx DMA buffer, it might trigger an infinite loop.
This patch use NETDEV_TX_OK instead of NETDEV_TX_BUSY, and change
printk to pr_err_ratelimited.

Fixes: d9fb9f384292 ("*sonic/natsemi/ns83829: Move the National Semi-conductor drivers")
Signed-off-by: Mao Wenan <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/net/ethernet/natsemi/sonic.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/natsemi/sonic.c b/drivers/net/ethernet/natsemi/sonic.c
index 23821540ab078..11f472fd5d477 100644
--- a/drivers/net/ethernet/natsemi/sonic.c
+++ b/drivers/net/ethernet/natsemi/sonic.c
@@ -221,9 +221,9 @@ static int sonic_send_packet(struct sk_buff *skb, struct net_device *dev)

laddr = dma_map_single(lp->device, skb->data, length, DMA_TO_DEVICE);
if (!laddr) {
- printk(KERN_ERR "%s: failed to map tx DMA buffer.\n", dev->name);
+ pr_err_ratelimited("%s: failed to map tx DMA buffer.\n", dev->name);
dev_kfree_skb(skb);
- return NETDEV_TX_BUSY;
+ return NETDEV_TX_OK;
}

sonic_tda_put(dev, entry, SONIC_TD_STATUS, 0); /* clear status */
--
2.20.1



2020-01-24 15:33:22

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 302/343] net: sonic: replace dev_kfree_skb in sonic_send_packet

From: Mao Wenan <[email protected]>

[ Upstream commit 49f6c90bf6805948b597eabb499e500a47cf24be ]

sonic_send_packet will be processed in irq or non-irq
context, so it would better use dev_kfree_skb_any
instead of dev_kfree_skb.

Fixes: d9fb9f384292 ("*sonic/natsemi/ns83829: Move the National Semi-conductor drivers")
Signed-off-by: Mao Wenan <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/net/ethernet/natsemi/sonic.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/natsemi/sonic.c b/drivers/net/ethernet/natsemi/sonic.c
index 11f472fd5d477..a051dddcbd768 100644
--- a/drivers/net/ethernet/natsemi/sonic.c
+++ b/drivers/net/ethernet/natsemi/sonic.c
@@ -222,7 +222,7 @@ static int sonic_send_packet(struct sk_buff *skb, struct net_device *dev)
laddr = dma_map_single(lp->device, skb->data, length, DMA_TO_DEVICE);
if (!laddr) {
pr_err_ratelimited("%s: failed to map tx DMA buffer.\n", dev->name);
- dev_kfree_skb(skb);
+ dev_kfree_skb_any(skb);
return NETDEV_TX_OK;
}

--
2.20.1



2020-01-24 15:33:47

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 305/343] RDMA/cma: Fix false error message

From: Håkon Bugge <[email protected]>

[ Upstream commit a6e4d254c19b541a58caced322111084b27a7788 ]

In addr_handler(), assuming status == 0 and the device already has been
acquired (id_priv->cma_dev != NULL), we get the following incorrect
"error" message:

RDMA CM: ADDR_ERROR: failed to resolve IP. status 0

Fixes: 498683c6a7ee ("IB/cma: Add debug messages to error flows")
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Håkon Bugge <[email protected]>
Reviewed-by: Jason Gunthorpe <[email protected]>
Signed-off-by: Jason Gunthorpe <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/infiniband/core/cma.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index fc4630e4acdd6..1614f6f3677c0 100644
--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -2789,7 +2789,7 @@ static void addr_handler(int status, struct sockaddr *src_addr,
if (status)
pr_debug_ratelimited("RDMA CM: ADDR_ERROR: failed to acquire device. status %d\n",
status);
- } else {
+ } else if (status) {
pr_debug_ratelimited("RDMA CM: ADDR_ERROR: failed to resolve IP. status %d\n", status);
}

--
2.20.1



2020-01-24 15:37:50

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 300/343] ixgbe: sync the first fragment unconditionally

From: Firo Yang <[email protected]>

[ Upstream commit e7ba676c6188d394a0133fc4b9bcd7ee50d54b7f ]

In Xen environment, if Xen-swiotlb is enabled, ixgbe driver
could possibly allocate a page, DMA memory buffer, for the first
fragment which is not suitable for Xen-swiotlb to do DMA operations.
Xen-swiotlb have to internally allocate another page for doing DMA
operations. This mechanism requires syncing the data from the internal
page to the page which ixgbe sends to upper network stack. However,
since commit f3213d932173 ("ixgbe: Update driver to make use of DMA
attributes in Rx path"), the unmap operation is performed with
DMA_ATTR_SKIP_CPU_SYNC. As a result, the sync is not performed.
Since the sync isn't performed, the upper network stack could receive
a incomplete network packet. By incomplete, it means the linear data
on the first fragment(between skb->head and skb->end) is invalid. So
we have to copy the data from the internal xen-swiotlb page to the page
which ixgbe sends to upper network stack through the sync operation.

More details from Alexander Duyck:
Specifically since we are mapping the frame with
DMA_ATTR_SKIP_CPU_SYNC we have to unmap with that as well. As a result
a sync is not performed on an unmap and must be done manually as we
skipped it for the first frag. As such we need to always sync before
possibly performing a page unmap operation.

Fixes: f3213d932173 ("ixgbe: Update driver to make use of DMA attributes in Rx path")
Signed-off-by: Firo Yang <[email protected]>
Reviewed-by: Alexander Duyck <[email protected]>
Tested-by: Andrew Bowers <[email protected]>
Signed-off-by: Jeff Kirsher <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index 0edfd199937d5..e4c1e6345edd0 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -1871,13 +1871,7 @@ static void ixgbe_pull_tail(struct ixgbe_ring *rx_ring,
static void ixgbe_dma_sync_frag(struct ixgbe_ring *rx_ring,
struct sk_buff *skb)
{
- /* if the page was released unmap it, else just sync our portion */
- if (unlikely(IXGBE_CB(skb)->page_released)) {
- dma_unmap_page_attrs(rx_ring->dev, IXGBE_CB(skb)->dma,
- ixgbe_rx_pg_size(rx_ring),
- DMA_FROM_DEVICE,
- IXGBE_RX_DMA_ATTR);
- } else if (ring_uses_build_skb(rx_ring)) {
+ if (ring_uses_build_skb(rx_ring)) {
unsigned long offset = (unsigned long)(skb->data) & ~PAGE_MASK;

dma_sync_single_range_for_cpu(rx_ring->dev,
@@ -1894,6 +1888,14 @@ static void ixgbe_dma_sync_frag(struct ixgbe_ring *rx_ring,
skb_frag_size(frag),
DMA_FROM_DEVICE);
}
+
+ /* If the page was released, just unmap it. */
+ if (unlikely(IXGBE_CB(skb)->page_released)) {
+ dma_unmap_page_attrs(rx_ring->dev, IXGBE_CB(skb)->dma,
+ ixgbe_rx_pg_size(rx_ring),
+ DMA_FROM_DEVICE,
+ IXGBE_RX_DMA_ATTR);
+ }
}

/**
--
2.20.1



2020-01-24 15:37:50

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 298/343] Btrfs: fix inode cache waiters hanging on path allocation failure

From: Filipe Manana <[email protected]>

[ Upstream commit 9d123a35d7e97bb2139747b16127c9b22b6a593e ]

If the caching thread fails to allocate a path, it returns without waking
up any cache waiters, leaving them hang forever. Fix this by following the
same approach as when we fail to start the caching thread: print an error
message, disable inode caching and make the wakers fallback to non-caching
mode behaviour (calling btrfs_find_free_objectid()).

Fixes: 581bb050941b4f ("Btrfs: Cache free inode numbers in memory")
Reviewed-by: Nikolay Borisov <[email protected]>
Signed-off-by: Filipe Manana <[email protected]>
Signed-off-by: David Sterba <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
fs/btrfs/inode-map.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/fs/btrfs/inode-map.c b/fs/btrfs/inode-map.c
index b1c3a4ec76c8c..2ae32451fb5b0 100644
--- a/fs/btrfs/inode-map.c
+++ b/fs/btrfs/inode-map.c
@@ -55,8 +55,10 @@ static int caching_kthread(void *data)
return 0;

path = btrfs_alloc_path();
- if (!path)
+ if (!path) {
+ fail_caching_thread(root);
return -ENOMEM;
+ }

/* Since the commit root is read-only, we can safely skip locking. */
path->skip_locking = 1;
--
2.20.1



2020-01-24 15:37:50

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 297/343] Btrfs: fix inode cache waiters hanging on failure to start caching thread

From: Filipe Manana <[email protected]>

[ Upstream commit a68ebe0790fc88b4314d17984a2cf99ce2361901 ]

If we fail to start the inode caching thread, we print an error message
and disable the inode cache, however we never wake up any waiters, so they
hang forever waiting for the caching to finish. Fix this by waking them
up and have them fallback to a call to btrfs_find_free_objectid().

Fixes: e60efa84252c05 ("Btrfs: avoid triggering bug_on() when we fail to start inode caching task")
Reviewed-by: Nikolay Borisov <[email protected]>
Signed-off-by: Filipe Manana <[email protected]>
Signed-off-by: David Sterba <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
fs/btrfs/inode-map.c | 23 ++++++++++++++++++-----
1 file changed, 18 insertions(+), 5 deletions(-)

diff --git a/fs/btrfs/inode-map.c b/fs/btrfs/inode-map.c
index 7dc2923655d98..b1c3a4ec76c8c 100644
--- a/fs/btrfs/inode-map.c
+++ b/fs/btrfs/inode-map.c
@@ -26,6 +26,19 @@
#include "inode-map.h"
#include "transaction.h"

+static void fail_caching_thread(struct btrfs_root *root)
+{
+ struct btrfs_fs_info *fs_info = root->fs_info;
+
+ btrfs_warn(fs_info, "failed to start inode caching task");
+ btrfs_clear_pending_and_info(fs_info, INODE_MAP_CACHE,
+ "disabling inode map caching");
+ spin_lock(&root->ino_cache_lock);
+ root->ino_cache_state = BTRFS_CACHE_ERROR;
+ spin_unlock(&root->ino_cache_lock);
+ wake_up(&root->ino_cache_wait);
+}
+
static int caching_kthread(void *data)
{
struct btrfs_root *root = data;
@@ -178,11 +191,8 @@ static void start_caching(struct btrfs_root *root)

tsk = kthread_run(caching_kthread, root, "btrfs-ino-cache-%llu",
root->root_key.objectid);
- if (IS_ERR(tsk)) {
- btrfs_warn(fs_info, "failed to start inode caching task");
- btrfs_clear_pending_and_info(fs_info, INODE_MAP_CACHE,
- "disabling inode map caching");
- }
+ if (IS_ERR(tsk))
+ fail_caching_thread(root);
}

int btrfs_find_free_ino(struct btrfs_root *root, u64 *objectid)
@@ -200,11 +210,14 @@ again:

wait_event(root->ino_cache_wait,
root->ino_cache_state == BTRFS_CACHE_FINISHED ||
+ root->ino_cache_state == BTRFS_CACHE_ERROR ||
root->free_ino_ctl->free_space > 0);

if (root->ino_cache_state == BTRFS_CACHE_FINISHED &&
root->free_ino_ctl->free_space == 0)
return -ENOSPC;
+ else if (root->ino_cache_state == BTRFS_CACHE_ERROR)
+ return btrfs_find_free_objectid(root, objectid);
else
goto again;
}
--
2.20.1



2020-01-24 15:40:51

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 317/343] mac80211: accept deauth frames in IBSS mode

From: Johannes Berg <[email protected]>

[ Upstream commit 95697f9907bfe3eab0ef20265a766b22e27dde64 ]

We can process deauth frames and all, but we drop them very
early in the RX path today - this could never have worked.

Fixes: 2cc59e784b54 ("mac80211: reply to AUTH with DEAUTH if sta allocation fails in IBSS")
Signed-off-by: Johannes Berg <[email protected]>
Signed-off-by: Luca Coelho <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Johannes Berg <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
net/mac80211/rx.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 4a6b3c7b35e37..31000622376df 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -3227,9 +3227,18 @@ ieee80211_rx_h_mgmt(struct ieee80211_rx_data *rx)
case cpu_to_le16(IEEE80211_STYPE_PROBE_RESP):
/* process for all: mesh, mlme, ibss */
break;
+ case cpu_to_le16(IEEE80211_STYPE_DEAUTH):
+ if (is_multicast_ether_addr(mgmt->da) &&
+ !is_broadcast_ether_addr(mgmt->da))
+ return RX_DROP_MONITOR;
+
+ /* process only for station/IBSS */
+ if (sdata->vif.type != NL80211_IFTYPE_STATION &&
+ sdata->vif.type != NL80211_IFTYPE_ADHOC)
+ return RX_DROP_MONITOR;
+ break;
case cpu_to_le16(IEEE80211_STYPE_ASSOC_RESP):
case cpu_to_le16(IEEE80211_STYPE_REASSOC_RESP):
- case cpu_to_le16(IEEE80211_STYPE_DEAUTH):
case cpu_to_le16(IEEE80211_STYPE_DISASSOC):
if (is_multicast_ether_addr(mgmt->da) &&
!is_broadcast_ether_addr(mgmt->da))
--
2.20.1



2020-01-24 15:40:59

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 291/343] iio: dac: ad5380: fix incorrect assignment to val

From: Colin Ian King <[email protected]>

[ Upstream commit b1e18768ef1214c0a8048327918a182cabe09f9d ]

Currently the pointer val is being incorrectly incremented
instead of the value pointed to by val. Fix this by adding
in the missing * indirection operator.

Addresses-Coverity: ("Unused value")
Fixes: c03f2c536818 ("staging:iio:dac: Add AD5380 driver")
Signed-off-by: Colin Ian King <[email protected]>
Reviewed-by: Alexandru Ardelean <[email protected]>
Signed-off-by: Jonathan Cameron <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/iio/dac/ad5380.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/iio/dac/ad5380.c b/drivers/iio/dac/ad5380.c
index 97d2c5111f438..8bf7fc626a9d4 100644
--- a/drivers/iio/dac/ad5380.c
+++ b/drivers/iio/dac/ad5380.c
@@ -221,7 +221,7 @@ static int ad5380_read_raw(struct iio_dev *indio_dev,
if (ret)
return ret;
*val >>= chan->scan_type.shift;
- val -= (1 << chan->scan_type.realbits) / 2;
+ *val -= (1 << chan->scan_type.realbits) / 2;
return IIO_VAL_INT;
case IIO_CHAN_INFO_SCALE:
*val = 2 * st->vref;
--
2.20.1



2020-01-24 15:41:14

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 318/343] llc: fix another potential sk_buff leak in llc_ui_sendmsg()

From: Eric Biggers <[email protected]>

[ Upstream commit fc8d5db10cbe1338a52ebc74e7feab9276721774 ]

All callers of llc_conn_state_process() except llc_build_and_send_pkt()
(via llc_ui_sendmsg() -> llc_ui_send_data()) assume that it always
consumes a reference to the skb. Fix this caller to do the same.

Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Signed-off-by: Eric Biggers <[email protected]>
Signed-off-by: Jakub Kicinski <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
net/llc/af_llc.c | 34 ++++++++++++++++++++--------------
net/llc/llc_conn.c | 2 ++
net/llc/llc_if.c | 12 ++++++++----
3 files changed, 30 insertions(+), 18 deletions(-)

diff --git a/net/llc/af_llc.c b/net/llc/af_llc.c
index 2e472d5c3ea41..d552e88197133 100644
--- a/net/llc/af_llc.c
+++ b/net/llc/af_llc.c
@@ -113,22 +113,26 @@ static inline u8 llc_ui_header_len(struct sock *sk, struct sockaddr_llc *addr)
*
* Send data via reliable llc2 connection.
* Returns 0 upon success, non-zero if action did not succeed.
+ *
+ * This function always consumes a reference to the skb.
*/
static int llc_ui_send_data(struct sock* sk, struct sk_buff *skb, int noblock)
{
struct llc_sock* llc = llc_sk(sk);
- int rc = 0;

if (unlikely(llc_data_accept_state(llc->state) ||
llc->remote_busy_flag ||
llc->p_flag)) {
long timeout = sock_sndtimeo(sk, noblock);
+ int rc;

rc = llc_ui_wait_for_busy_core(sk, timeout);
+ if (rc) {
+ kfree_skb(skb);
+ return rc;
+ }
}
- if (unlikely(!rc))
- rc = llc_build_and_send_pkt(sk, skb);
- return rc;
+ return llc_build_and_send_pkt(sk, skb);
}

static void llc_ui_sk_init(struct socket *sock, struct sock *sk)
@@ -900,7 +904,7 @@ static int llc_ui_sendmsg(struct socket *sock, struct msghdr *msg, size_t len)
DECLARE_SOCKADDR(struct sockaddr_llc *, addr, msg->msg_name);
int flags = msg->msg_flags;
int noblock = flags & MSG_DONTWAIT;
- struct sk_buff *skb;
+ struct sk_buff *skb = NULL;
size_t size = 0;
int rc = -EINVAL, copied = 0, hdrlen;

@@ -909,10 +913,10 @@ static int llc_ui_sendmsg(struct socket *sock, struct msghdr *msg, size_t len)
lock_sock(sk);
if (addr) {
if (msg->msg_namelen < sizeof(*addr))
- goto release;
+ goto out;
} else {
if (llc_ui_addr_null(&llc->addr))
- goto release;
+ goto out;
addr = &llc->addr;
}
/* must bind connection to sap if user hasn't done it. */
@@ -920,7 +924,7 @@ static int llc_ui_sendmsg(struct socket *sock, struct msghdr *msg, size_t len)
/* bind to sap with null dev, exclusive. */
rc = llc_ui_autobind(sock, addr);
if (rc)
- goto release;
+ goto out;
}
hdrlen = llc->dev->hard_header_len + llc_ui_header_len(sk, addr);
size = hdrlen + len;
@@ -929,12 +933,12 @@ static int llc_ui_sendmsg(struct socket *sock, struct msghdr *msg, size_t len)
copied = size - hdrlen;
rc = -EINVAL;
if (copied < 0)
- goto release;
+ goto out;
release_sock(sk);
skb = sock_alloc_send_skb(sk, size, noblock, &rc);
lock_sock(sk);
if (!skb)
- goto release;
+ goto out;
skb->dev = llc->dev;
skb->protocol = llc_proto_type(addr->sllc_arphrd);
skb_reserve(skb, hdrlen);
@@ -944,29 +948,31 @@ static int llc_ui_sendmsg(struct socket *sock, struct msghdr *msg, size_t len)
if (sk->sk_type == SOCK_DGRAM || addr->sllc_ua) {
llc_build_and_send_ui_pkt(llc->sap, skb, addr->sllc_mac,
addr->sllc_sap);
+ skb = NULL;
goto out;
}
if (addr->sllc_test) {
llc_build_and_send_test_pkt(llc->sap, skb, addr->sllc_mac,
addr->sllc_sap);
+ skb = NULL;
goto out;
}
if (addr->sllc_xid) {
llc_build_and_send_xid_pkt(llc->sap, skb, addr->sllc_mac,
addr->sllc_sap);
+ skb = NULL;
goto out;
}
rc = -ENOPROTOOPT;
if (!(sk->sk_type == SOCK_STREAM && !addr->sllc_ua))
goto out;
rc = llc_ui_send_data(sk, skb, noblock);
+ skb = NULL;
out:
- if (rc) {
- kfree_skb(skb);
-release:
+ kfree_skb(skb);
+ if (rc)
dprintk("%s: failed sending from %02X to %02X: %d\n",
__func__, llc->laddr.lsap, llc->daddr.lsap, rc);
- }
release_sock(sk);
return rc ? : copied;
}
diff --git a/net/llc/llc_conn.c b/net/llc/llc_conn.c
index 444c13e752a08..7340f23e16de3 100644
--- a/net/llc/llc_conn.c
+++ b/net/llc/llc_conn.c
@@ -55,6 +55,8 @@ int sysctl_llc2_busy_timeout = LLC2_BUSY_TIME * HZ;
* (executing it's actions and changing state), upper layer will be
* indicated or confirmed, if needed. Returns 0 for success, 1 for
* failure. The socket lock has to be held before calling this function.
+ *
+ * This function always consumes a reference to the skb.
*/
int llc_conn_state_process(struct sock *sk, struct sk_buff *skb)
{
diff --git a/net/llc/llc_if.c b/net/llc/llc_if.c
index 6daf391b3e847..fc4d2bd8816f5 100644
--- a/net/llc/llc_if.c
+++ b/net/llc/llc_if.c
@@ -38,6 +38,8 @@
* closed and -EBUSY when sending data is not permitted in this state or
* LLC has send an I pdu with p bit set to 1 and is waiting for it's
* response.
+ *
+ * This function always consumes a reference to the skb.
*/
int llc_build_and_send_pkt(struct sock *sk, struct sk_buff *skb)
{
@@ -46,20 +48,22 @@ int llc_build_and_send_pkt(struct sock *sk, struct sk_buff *skb)
struct llc_sock *llc = llc_sk(sk);

if (unlikely(llc->state == LLC_CONN_STATE_ADM))
- goto out;
+ goto out_free;
rc = -EBUSY;
if (unlikely(llc_data_accept_state(llc->state) || /* data_conn_refuse */
llc->p_flag)) {
llc->failed_data_req = 1;
- goto out;
+ goto out_free;
}
ev = llc_conn_ev(skb);
ev->type = LLC_CONN_EV_TYPE_PRIM;
ev->prim = LLC_DATA_PRIM;
ev->prim_type = LLC_PRIM_TYPE_REQ;
skb->dev = llc->dev;
- rc = llc_conn_state_process(sk, skb);
-out:
+ return llc_conn_state_process(sk, skb);
+
+out_free:
+ kfree_skb(skb);
return rc;
}

--
2.20.1



2020-01-24 15:43:18

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 322/343] net: avoid possible false sharing in sk_leave_memory_pressure()

From: Eric Dumazet <[email protected]>

[ Upstream commit 503978aca46124cd714703e180b9c8292ba50ba7 ]

As mentioned in https://github.com/google/ktsan/wiki/READ_ONCE-and-WRITE_ONCE#it-may-improve-performance
a C compiler can legally transform :

if (memory_pressure && *memory_pressure)
*memory_pressure = 0;

to :

if (memory_pressure)
*memory_pressure = 0;

Fixes: 0604475119de ("tcp: add TCPMemoryPressuresChrono counter")
Fixes: 180d8cd942ce ("foundations of per-cgroup memory pressure controlling.")
Fixes: 3ab224be6d69 ("[NET] CORE: Introducing new memory accounting interface.")
Signed-off-by: Eric Dumazet <[email protected]>
Signed-off-by: Jakub Kicinski <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
net/core/sock.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/net/core/sock.c b/net/core/sock.c
index 90ccbbf9e6b00..03ca2f638eb4a 100644
--- a/net/core/sock.c
+++ b/net/core/sock.c
@@ -2165,8 +2165,8 @@ static void sk_leave_memory_pressure(struct sock *sk)
} else {
unsigned long *memory_pressure = sk->sk_prot->memory_pressure;

- if (memory_pressure && *memory_pressure)
- *memory_pressure = 0;
+ if (memory_pressure && READ_ONCE(*memory_pressure))
+ WRITE_ONCE(*memory_pressure, 0);
}
}

--
2.20.1



2020-01-24 15:45:43

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 326/343] dmaengine: imx-sdma: fix size check for sdma script_number

From: Robin Gong <[email protected]>

[ Upstream commit bd73dfabdda280fc5f05bdec79b6721b4b2f035f ]

Illegal memory will be touch if SDMA_SCRIPT_ADDRS_ARRAY_SIZE_V3
(41) exceed the size of structure sdma_script_start_addrs(40),
thus cause memory corrupt such as slob block header so that kernel
trap into while() loop forever in slob_free(). Please refer to below
code piece in imx-sdma.c:
for (i = 0; i < sdma->script_number; i++)
if (addr_arr[i] > 0)
saddr_arr[i] = addr_arr[i]; /* memory corrupt here */
That issue was brought by commit a572460be9cf ("dmaengine: imx-sdma: Add
support for version 3 firmware") because SDMA_SCRIPT_ADDRS_ARRAY_SIZE_V3
(38->41 3 scripts added) not align with script number added in
sdma_script_start_addrs(2 scripts).

Fixes: a572460be9cf ("dmaengine: imx-sdma: Add support for version 3 firmware")
Cc: [email protected]
Link: https://www.spinics.net/lists/arm-kernel/msg754895.html
Signed-off-by: Robin Gong <[email protected]>
Reported-by: Jurgen Lambrecht <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
[vkoul: update the patch title]
Signed-off-by: Vinod Koul <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/dma/imx-sdma.c | 8 ++++++++
include/linux/platform_data/dma-imx-sdma.h | 3 +++
2 files changed, 11 insertions(+)

diff --git a/drivers/dma/imx-sdma.c b/drivers/dma/imx-sdma.c
index 0fc12a8783e39..99f3f22ed6476 100644
--- a/drivers/dma/imx-sdma.c
+++ b/drivers/dma/imx-sdma.c
@@ -1441,6 +1441,14 @@ static void sdma_add_scripts(struct sdma_engine *sdma,
if (!sdma->script_number)
sdma->script_number = SDMA_SCRIPT_ADDRS_ARRAY_SIZE_V1;

+ if (sdma->script_number > sizeof(struct sdma_script_start_addrs)
+ / sizeof(s32)) {
+ dev_err(sdma->dev,
+ "SDMA script number %d not match with firmware.\n",
+ sdma->script_number);
+ return;
+ }
+
for (i = 0; i < sdma->script_number; i++)
if (addr_arr[i] > 0)
saddr_arr[i] = addr_arr[i];
diff --git a/include/linux/platform_data/dma-imx-sdma.h b/include/linux/platform_data/dma-imx-sdma.h
index 6eaa53cef0bd2..30e676b36b247 100644
--- a/include/linux/platform_data/dma-imx-sdma.h
+++ b/include/linux/platform_data/dma-imx-sdma.h
@@ -51,7 +51,10 @@ struct sdma_script_start_addrs {
/* End of v2 array */
s32 zcanfd_2_mcu_addr;
s32 zqspi_2_mcu_addr;
+ s32 mcu_2_ecspi_addr;
/* End of v3 array */
+ s32 mcu_2_zqspi_addr;
+ /* End of v4 array */
};

/**
--
2.20.1



2020-01-24 15:45:48

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 325/343] drm/msm/dsi: Implement reset correctly

From: Jeffrey Hugo <[email protected]>

[ Upstream commit 78e31c42261779a01bc73472d0f65f15378e9de3 ]

On msm8998, vblank timeouts are observed because the DSI controller is not
reset properly, which ends up stalling the MDP. This is because the reset
logic is not correct per the hardware documentation.

The documentation states that after asserting reset, software should wait
some time (no indication of how long), or poll the status register until it
returns 0 before deasserting reset.

wmb() is insufficient for this purpose since it just ensures ordering, not
timing between writes. Since asserting and deasserting reset occurs on the
same register, ordering is already guaranteed by the architecture, making
the wmb extraneous.

Since we would define a timeout for polling the status register to avoid a
possible infinite loop, lets just use a static delay of 20 ms, since 16.666
ms is the time available to process one frame at 60 fps.

Fixes: a689554ba6ed ("drm/msm: Initial add DSI connector support")
Cc: Hai Li <[email protected]>
Cc: Rob Clark <[email protected]>
Signed-off-by: Jeffrey Hugo <[email protected]>
Reviewed-by: Sean Paul <[email protected]>
[seanpaul renamed RESET_DELAY to DSI_RESET_TOGGLE_DELAY_MS]
Signed-off-by: Sean Paul <[email protected]>
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/gpu/drm/msm/dsi/dsi_host.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/msm/dsi/dsi_host.c b/drivers/gpu/drm/msm/dsi/dsi_host.c
index a9a0b56f1fbc5..b9cb7c09e05a6 100644
--- a/drivers/gpu/drm/msm/dsi/dsi_host.c
+++ b/drivers/gpu/drm/msm/dsi/dsi_host.c
@@ -34,6 +34,8 @@
#include "dsi_cfg.h"
#include "msm_kms.h"

+#define DSI_RESET_TOGGLE_DELAY_MS 20
+
static int dsi_get_version(const void __iomem *base, u32 *major, u32 *minor)
{
u32 ver;
@@ -906,7 +908,7 @@ static void dsi_sw_reset(struct msm_dsi_host *msm_host)
wmb(); /* clocks need to be enabled before reset */

dsi_write(msm_host, REG_DSI_RESET, 1);
- wmb(); /* make sure reset happen */
+ msleep(DSI_RESET_TOGGLE_DELAY_MS); /* make sure reset happen */
dsi_write(msm_host, REG_DSI_RESET, 0);
}

@@ -1288,7 +1290,7 @@ static void dsi_sw_reset_restore(struct msm_dsi_host *msm_host)

/* dsi controller can only be reset while clocks are running */
dsi_write(msm_host, REG_DSI_RESET, 1);
- wmb(); /* make sure reset happen */
+ msleep(DSI_RESET_TOGGLE_DELAY_MS); /* make sure reset happen */
dsi_write(msm_host, REG_DSI_RESET, 0);
wmb(); /* controller out of reset */
dsi_write(msm_host, REG_DSI_CTRL, data0);
--
2.20.1



2020-01-24 15:52:20

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 310/343] net: broadcom/bcmsysport: Fix signedness in bcm_sysport_probe()

From: Dan Carpenter <[email protected]>

[ Upstream commit 25a584955f020d6ec499c513923fb220f3112d2b ]

The "priv->phy_interface" variable is an enum and in this context GCC
will treat it as unsigned so the error handling will never be
triggered.

Fixes: 80105befdb4b ("net: systemport: add Broadcom SYSTEMPORT Ethernet MAC driver")
Signed-off-by: Dan Carpenter <[email protected]>
Acked-by: Florian Fainelli <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/net/ethernet/broadcom/bcmsysport.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/broadcom/bcmsysport.c b/drivers/net/ethernet/broadcom/bcmsysport.c
index 79018fea7be24..69b2f99b0c19d 100644
--- a/drivers/net/ethernet/broadcom/bcmsysport.c
+++ b/drivers/net/ethernet/broadcom/bcmsysport.c
@@ -2116,7 +2116,7 @@ static int bcm_sysport_probe(struct platform_device *pdev)

priv->phy_interface = of_get_phy_mode(dn);
/* Default to GMII interface mode */
- if (priv->phy_interface < 0)
+ if ((int)priv->phy_interface < 0)
priv->phy_interface = PHY_INTERFACE_MODE_GMII;

/* In the case of a fixed PHY, the DT node associated
--
2.20.1



2020-01-24 15:52:20

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.14 327/343] net: netem: fix error path for corrupted GSO frames

From: Jakub Kicinski <[email protected]>

[ Upstream commit a7fa12d15855904aff1716e1fc723c03ba38c5cc ]

To corrupt a GSO frame we first perform segmentation. We then
proceed using the first segment instead of the full GSO skb and
requeue the rest of the segments as separate packets.

If there are any issues with processing the first segment we
still want to process the rest, therefore we jump to the
finish_segs label.

Commit 177b8007463c ("net: netem: fix backlog accounting for
corrupted GSO frames") started using the pointer to the first
segment in the "rest of segments processing", but as mentioned
above the first segment may had already been freed at this point.

Backlog corrections for parent qdiscs have to be adjusted.

Fixes: 177b8007463c ("net: netem: fix backlog accounting for corrupted GSO frames")
Reported-by: kbuild test robot <[email protected]>
Reported-by: Dan Carpenter <[email protected]>
Reported-by: Ben Hutchings <[email protected]>
Signed-off-by: Jakub Kicinski <[email protected]>
Reviewed-by: Simon Horman <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
net/sched/sch_netem.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/net/sched/sch_netem.c b/net/sched/sch_netem.c
index ede0a24e67eb8..64c3cfa357363 100644
--- a/net/sched/sch_netem.c
+++ b/net/sched/sch_netem.c
@@ -504,6 +504,7 @@ static int netem_enqueue(struct sk_buff *skb, struct Qdisc *sch,
if (skb->ip_summed == CHECKSUM_PARTIAL &&
skb_checksum_help(skb)) {
qdisc_drop(skb, sch, to_free);
+ skb = NULL;
goto finish_segs;
}

@@ -580,9 +581,10 @@ static int netem_enqueue(struct sk_buff *skb, struct Qdisc *sch,
finish_segs:
if (segs) {
unsigned int len, last_len;
- int nb = 0;
+ int nb;

- len = skb->len;
+ len = skb ? skb->len : 0;
+ nb = skb ? 1 : 0;

while (segs) {
skb2 = segs->next;
@@ -599,7 +601,8 @@ finish_segs:
}
segs = skb2;
}
- qdisc_tree_reduce_backlog(sch, -nb, prev_len - len);
+ /* Parent qdiscs accounted for 1 skb of size @prev_len */
+ qdisc_tree_reduce_backlog(sch, -(nb - 1), -(len - prev_len));
}
return NET_XMIT_SUCCESS;
}
--
2.20.1



2020-01-24 20:56:48

by Naresh Kamboju

[permalink] [raw]
Subject: Re: [PATCH 4.14 000/343] 4.14.168-stable review

On Fri, 24 Jan 2020 at 15:07, Greg Kroah-Hartman
<[email protected]> wrote:
>
> This is the start of the stable review cycle for the 4.14.168 release.
> There are 343 patches in this series, all will be posted as a response
> to this one. If anyone has any issues with these being applied, please
> let me know.
>
> Responses should be made by Sun, 26 Jan 2020 09:26:30 +0000.
> Anything received after that time might be too late.
>
> The whole patch series can be found in one patch at:
> https://www.kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.14.168-rc1.gz
> or in the git tree and branch at:
> git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.14.y
> and the diffstat can be found below.
>
> thanks,
>
> greg k-h
Results from Linaro’s test farm.
No regressions on arm64, arm, x86_64, and i386.

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

kernel: 4.14.168-rc1
git repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
git branch: linux-4.14.y
git commit: 44ca37a00ad6e970111780ebce3b3b2b127ba3d6
git describe: v4.14.167-344-g44ca37a00ad6
Test details: https://qa-reports.linaro.org/lkft/linux-stable-rc-4.14-oe/build/v4.14.167-344-g44ca37a00ad6

No regressions (compared to build v4.14.167)

No fixes (compared to build v4.14.167)

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

Environments
--------------
- dragonboard-410c - arm64
- hi6220-hikey - arm64
- i386
- juno-r2 - arm64
- qemu_arm
- qemu_arm64
- qemu_i386
- qemu_x86_64
- x15 - arm
- x86_64

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

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

2020-01-24 20:57:25

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH 4.14 000/343] 4.14.168-stable review

On Fri, Jan 24, 2020 at 06:17:03AM -0800, Guenter Roeck wrote:
> On 1/24/20 1:26 AM, Greg Kroah-Hartman wrote:
> > This is the start of the stable review cycle for the 4.14.168 release.
> > There are 343 patches in this series, all will be posted as a response
> > to this one. If anyone has any issues with these being applied, please
> > let me know.
> >
> > Responses should be made by Sun, 26 Jan 2020 09:26:30 +0000.
> > Anything received after that time might be too late.
> >
>
> powerpc:allmodconfig:
>
> arch/powerpc/kernel/kgdb.c: In function 'kgdb_arch_set_breakpoint':
> arch/powerpc/kernel/kgdb.c:451:8: error: implicit declaration of function 'probe_kernel_address'

Ah, nice catch, will go push out a -rc2 with this removed and with
Sasha's fixes.

thanks,

greg k-h

2020-01-24 21:49:50

by Shuah Khan

[permalink] [raw]
Subject: Re: [PATCH 4.14 000/343] 4.14.168-stable review

On 1/24/20 2:26 AM, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 4.14.168 release.
> There are 343 patches in this series, all will be posted as a response
> to this one. If anyone has any issues with these being applied, please
> let me know.
>
> Responses should be made by Sun, 26 Jan 2020 09:26:30 +0000.
> Anything received after that time might be too late.
>
> The whole patch series can be found in one patch at:
> https://www.kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.14.168-rc1.gz
> or in the git tree and branch at:
> git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.14.y
> and the diffstat can be found below.
>
> thanks,
>
> greg k-h
>

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

thanks,
-- Shuah

2020-01-24 23:56:04

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH 4.14 000/343] 4.14.168-stable review

On Fri, Jan 24, 2020 at 10:26:58AM +0100, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 4.14.168 release.
> There are 343 patches in this series, all will be posted as a response
> to this one. If anyone has any issues with these being applied, please
> let me know.
>
> Responses should be made by Sun, 26 Jan 2020 09:26:30 +0000.
> Anything received after that time might be too late.
>

For v4.14.167-342-gc38faa17d730:

Build results:
total: 172 pass: 172 fail: 0
Qemu test results:
total: 375 pass: 375 fail: 0

Guenter