Skip to contentSkip to conversation

Linux 4.14.194

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Aug 21, 2020 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 4.14.194 kernel.

All users of the 4.14 kernel series must upgrade.

The updated 4.14.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-4.14.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary

thanks,

greg k-h

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

 Documentation/ABI/testing/sysfs-bus-iio                              |    3 
 Documentation/devicetree/bindings/iio/multiplexer/io-channel-mux.txt |    2 
 Makefile                                                             |    2 
 arch/arm/kernel/stacktrace.c                                         |   24 +
 arch/arm/mach-at91/pm.c                                              |   11 
 arch/arm/mach-socfpga/pm.c                                           |    8 
 arch/arm64/boot/dts/exynos/exynos7-espresso.dts                      |    1 
 arch/arm64/boot/dts/hisilicon/hi3660-hikey960.dts                    |   11 
 arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts                       |    2 
 arch/arm64/boot/dts/qcom/msm8916-pins.dtsi                           |   10 
 arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi                        |    4 
 arch/m68k/mac/iop.c                                                  |   21 -
 arch/mips/cavium-octeon/octeon-usb.c                                 |    5 
 arch/mips/kernel/topology.c                                          |    2 
 arch/parisc/include/asm/barrier.h                                    |   61 +++
 arch/powerpc/include/asm/percpu.h                                    |    4 
 arch/powerpc/kernel/vdso.c                                           |    2 
 arch/powerpc/platforms/pseries/hotplug-memory.c                      |    2 
 arch/sh/boards/mach-landisk/setup.c                                  |    3 
 arch/x86/crypto/aes_ctrby8_avx-x86_64.S                              |   14 
 arch/x86/kernel/apic/io_apic.c                                       |    5 
 arch/x86/kernel/apic/vector.c                                        |    4 
 arch/x86/kernel/cpu/mcheck/mce-inject.c                              |    2 
 arch/x86/kernel/ptrace.c                                             |    2 
 arch/xtensa/kernel/perf_event.c                                      |    2 
 drivers/acpi/acpica/exprep.c                                         |    4 
 drivers/acpi/acpica/utdelete.c                                       |    6 
 drivers/android/binder.c                                             |   15 
 drivers/atm/atmtcp.c                                                 |   10 
 drivers/bluetooth/hci_serdev.c                                       |    3 
 drivers/char/agp/intel-gtt.c                                         |    4 
 drivers/clk/sirf/clk-atlas6.c                                        |    2 
 drivers/crypto/cavium/cpt/cptvf_algs.c                               |    1 
 drivers/crypto/cavium/cpt/cptvf_reqmanager.c                         |   12 
 drivers/crypto/cavium/cpt/request_manager.h                          |    2 
 drivers/crypto/ccp/ccp-dev.h                                         |    1 
 drivers/crypto/ccp/ccp-ops.c                                         |   37 +-
 drivers/crypto/qat/qat_common/qat_uclo.c                             |    9 
 drivers/edac/edac_device_sysfs.c                                     |    1 
 drivers/edac/edac_pci_sysfs.c                                        |    2 
 drivers/gpu/drm/arm/malidp_planes.c                                  |    2 
 drivers/gpu/drm/bridge/sil-sii8620.c                                 |    2 
 drivers/gpu/drm/drm_debugfs.c                                        |    8 
 drivers/gpu/drm/drm_mipi_dsi.c                                       |    6 
 drivers/gpu/drm/imx/imx-ldb.c                                        |    7 
 drivers/gpu/drm/imx/imx-tve.c                                        |   20 -
 drivers/gpu/drm/nouveau/nouveau_drm.c                                |    8 
 drivers/gpu/drm/nouveau/nouveau_fbcon.c                              |    3 
 drivers/gpu/drm/nouveau/nouveau_gem.c                                |    4 
 drivers/gpu/drm/panel/panel-simple.c                                 |    2 
 drivers/gpu/drm/radeon/ci_dpm.c                                      |    2 
 drivers/gpu/drm/radeon/radeon_display.c                              |    4 
 drivers/gpu/drm/radeon/radeon_drv.c                                  |    4 
 drivers/gpu/drm/radeon/radeon_kms.c                                  |    4 
 drivers/gpu/drm/tilcdc/tilcdc_panel.c                                |    6 
 drivers/gpu/drm/vmwgfx/vmwgfx_kms.c                                  |    8 
 drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c                                  |    5 
 drivers/gpu/host1x/debug.c                                           |    4 
 drivers/gpu/ipu-v3/ipu-image-convert.c                               |   58 +--
 drivers/hid/hid-input.c                                              |    6 
 drivers/hv/channel_mgmt.c                                            |   21 -
 drivers/hv/vmbus_drv.c                                               |    4 
 drivers/hwtracing/coresight/coresight-tmc-etf.c                      |   13 
 drivers/i2c/busses/i2c-rcar.c                                        |   15 
 drivers/i2c/i2c-core-slave.c                                         |    7 
 drivers/iio/dac/ad5592r-base.c                                       |    4 
 drivers/infiniband/ulp/ipoib/ipoib.h                                 |    2 
 drivers/infiniband/ulp/ipoib/ipoib_ib.c                              |    4 
 drivers/input/mouse/sentelic.c                                       |    2 
 drivers/iommu/intel_irq_remapping.c                                  |    8 
 drivers/iommu/omap-iommu-debug.c                                     |    3 
 drivers/irqchip/irq-gic-v3-its.c                                     |    5 
 drivers/irqchip/irq-mtk-sysirq.c                                     |    8 
 drivers/leds/led-class.c                                             |    1 
 drivers/leds/leds-88pm860x.c                                         |   14 
 drivers/leds/leds-da903x.c                                           |   14 
 drivers/leds/leds-lm3533.c                                           |   12 
 drivers/leds/leds-lm355x.c                                           |    7 
 drivers/leds/leds-wm831x-status.c                                    |   14 
 drivers/md/bcache/bset.c                                             |    2 
 drivers/md/bcache/btree.c                                            |    2 
 drivers/md/bcache/journal.c                                          |    4 
 drivers/md/bcache/super.c                                            |   11 
 drivers/md/dm-cache-target.c                                         |  166 +++-------
 drivers/md/dm-rq.c                                                   |    3 
 drivers/md/md-cluster.c                                              |    1 
 drivers/md/raid5.c                                                   |    3 
 drivers/media/firewire/firedtv-fw.c                                  |    2 
 drivers/media/platform/exynos4-is/media-dev.c                        |    3 
 drivers/media/platform/omap3isp/isppreview.c                         |    4 
 drivers/mfd/arizona-core.c                                           |   18 +
 drivers/mfd/dln2.c                                                   |    4 
 drivers/misc/cxl/sysfs.c                                             |    2 
 drivers/mtd/mtdchar.c                                                |   56 ++-
 drivers/mtd/nand/qcom_nandc.c                                        |    7 
 drivers/net/dsa/mv88e6xxx/chip.c                                     |    1 
 drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c            |    2 
 drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c              |    2 
 drivers/net/ethernet/freescale/fman/fman.c                           |    3 
 drivers/net/ethernet/freescale/fman/fman_dtsec.c                     |    4 
 drivers/net/ethernet/freescale/fman/fman_mac.h                       |    2 
 drivers/net/ethernet/freescale/fman/fman_memac.c                     |    3 
 drivers/net/ethernet/freescale/fman/fman_port.c                      |    9 
 drivers/net/ethernet/freescale/fman/fman_tgec.c                      |    2 
 drivers/net/ethernet/intel/igb/igb_main.c                            |    9 
 drivers/net/ethernet/mediatek/mtk_eth_soc.c                          |    2 
 drivers/net/ethernet/mellanox/mlx5/core/en_rep.c                     |    2 
 drivers/net/ethernet/qualcomm/emac/emac.c                            |   17 -
 drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c                  |    1 
 drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c                 |    3 
 drivers/net/ethernet/toshiba/spider_net.c                            |    4 
 drivers/net/hyperv/netvsc_drv.c                                      |    7 
 drivers/net/usb/hso.c                                                |    5 
 drivers/net/usb/lan78xx.c                                            |  117 +------
 drivers/net/vxlan.c                                                  |   10 
 drivers/net/wan/lapbether.c                                          |   10 
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil_types.h        |    2 
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c          |    4 
 drivers/net/wireless/intel/iwlegacy/common.c                         |    4 
 drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c                   |   22 -
 drivers/net/wireless/ti/wl1251/event.c                               |    2 
 drivers/parisc/sba_iommu.c                                           |    2 
 drivers/pci/access.c                                                 |    8 
 drivers/pci/host/vmd.c                                               |    3 
 drivers/pci/hotplug/acpiphp_glue.c                                   |   14 
 drivers/pci/pcie/aspm.c                                              |    1 
 drivers/pci/quirks.c                                                 |    2 
 drivers/pinctrl/pinctrl-single.c                                     |   11 
 drivers/platform/x86/intel-hid.c                                     |    2 
 drivers/platform/x86/intel-vbtn.c                                    |    2 
 drivers/power/supply/88pm860x_battery.c                              |    6 
 drivers/pwm/pwm-bcm-iproc.c                                          |    9 
 drivers/s390/net/qeth_l2_main.c                                      |    4 
 drivers/scsi/arm/cumana_2.c                                          |    2 
 drivers/scsi/arm/eesox.c                                             |    2 
 drivers/scsi/arm/powertec.c                                          |    2 
 drivers/scsi/mesh.c                                                  |    8 
 drivers/scsi/scsi_debug.c                                            |    6 
 drivers/spi/spi-lantiq-ssc.c                                         |   10 
 drivers/spi/spidev.c                                                 |   21 -
 drivers/staging/android/ashmem.c                                     |   12 
 drivers/staging/rtl8192u/r8192U_core.c                               |    2 
 drivers/thermal/ti-soc-thermal/ti-thermal-common.c                   |    2 
 drivers/usb/dwc2/platform.c                                          |    4 
 drivers/usb/gadget/udc/bdc/bdc_core.c                                |   13 
 drivers/usb/gadget/udc/bdc/bdc_ep.c                                  |   16 
 drivers/usb/gadget/udc/net2280.c                                     |    4 
 drivers/usb/host/xhci-pci.c                                          |   10 
 drivers/usb/misc/iowarrior.c                                         |   35 +-
 drivers/usb/serial/cp210x.c                                          |   19 +
 drivers/usb/serial/ftdi_sio.c                                        |   37 +-
 drivers/usb/serial/iuu_phoenix.c                                     |   14 
 drivers/usb/serial/qcserial.c                                        |    1 
 drivers/video/console/newport_con.c                                  |   12 
 drivers/video/console/vgacon.c                                       |    4 
 drivers/video/fbdev/neofb.c                                          |    1 
 drivers/video/fbdev/omap2/omapfb/dss/dss.c                           |    2 
 drivers/video/fbdev/pxafb.c                                          |    4 
 drivers/video/fbdev/sm712fb.c                                        |    2 
 drivers/watchdog/f71808e_wdt.c                                       |   13 
 drivers/xen/balloon.c                                                |   12 
 fs/9p/v9fs.c                                                         |    5 
 fs/btrfs/disk-io.c                                                   |   13 
 fs/btrfs/extent_io.c                                                 |    2 
 fs/btrfs/free-space-cache.c                                          |    4 
 fs/btrfs/tree-log.c                                                  |    8 
 fs/cifs/smb2pdu.c                                                    |    2 
 fs/dlm/lockspace.c                                                   |    6 
 fs/ext2/ialloc.c                                                     |    3 
 fs/minix/inode.c                                                     |   36 ++
 fs/minix/itree_common.c                                              |    8 
 fs/nfs/nfs4proc.c                                                    |    2 
 fs/nfs/nfs4xdr.c                                                     |    6 
 fs/ocfs2/ocfs2.h                                                     |    4 
 fs/ocfs2/suballoc.c                                                  |    4 
 fs/ocfs2/super.c                                                     |    4 
 fs/ufs/super.c                                                       |    2 
 fs/xattr.c                                                           |   84 ++++-
 fs/xfs/xfs_reflink.c                                                 |   21 -
 include/linux/bitfield.h                                             |    2 
 include/linux/hyperv.h                                               |    2 
 include/linux/intel-iommu.h                                          |    4 
 include/linux/irq.h                                                  |   12 
 include/linux/tracepoint.h                                           |    2 
 include/linux/xattr.h                                                |    2 
 include/net/addrconf.h                                               |    1 
 include/net/inet_connection_sock.h                                   |    4 
 include/net/ip_vs.h                                                  |   10 
 include/net/sock.h                                                   |    4 
 kernel/cgroup/cgroup.c                                               |    2 
 kernel/irq/manage.c                                                  |   41 ++
 kernel/kprobes.c                                                     |    7 
 kernel/sched/topology.c                                              |    2 
 kernel/trace/ftrace.c                                                |   15 
 kernel/trace/trace_events.c                                          |    4 
 kernel/trace/trace_hwlat.c                                           |    5 
 lib/dynamic_debug.c                                                  |   23 -
 lib/test_kmod.c                                                      |    2 
 mm/khugepaged.c                                                      |   22 -
 mm/mmap.c                                                            |    1 
 net/9p/trans_fd.c                                                    |   24 -
 net/bluetooth/6lowpan.c                                              |    5 
 net/bluetooth/hci_event.c                                            |   11 
 net/compat.c                                                         |    1 
 net/core/sock.c                                                      |   21 +
 net/ipv4/fib_trie.c                                                  |    2 
 net/ipv4/gre_offload.c                                               |   13 
 net/ipv4/inet_connection_sock.c                                      |   93 +++--
 net/ipv4/inet_hashtables.c                                           |    1 
 net/ipv6/anycast.c                                                   |   17 -
 net/ipv6/ipv6_sockglue.c                                             |    1 
 net/mac80211/sta_info.c                                              |    2 
 net/netfilter/ipvs/ip_vs_core.c                                      |   12 
 net/nfc/rawsock.c                                                    |    7 
 net/openvswitch/conntrack.c                                          |   38 +-
 net/packet/af_packet.c                                               |    9 
 net/rxrpc/call_object.c                                              |   27 +
 net/rxrpc/conn_object.c                                              |    8 
 net/rxrpc/recvmsg.c                                                  |    2 
 net/rxrpc/sendmsg.c                                                  |    3 
 net/socket.c                                                         |    2 
 net/wireless/nl80211.c                                               |    6 
 security/smack/smackfs.c                                             |   19 -
 sound/core/seq/oss/seq_oss.c                                         |    8 
 sound/pci/echoaudio/echoaudio.c                                      |    2 
 sound/soc/intel/boards/bxt_rt298.c                                   |    2 
 sound/usb/card.h                                                     |    1 
 sound/usb/mixer_quirks.c                                             |    1 
 sound/usb/pcm.c                                                      |    6 
 sound/usb/quirks-table.h                                             |   64 +++
 sound/usb/quirks.c                                                   |    3 
 sound/usb/stream.c                                                   |    1 
 tools/build/Build.include                                            |    3 
 tools/build/Makefile.feature                                         |    2 
 tools/build/feature/Makefile                                         |    2 
 tools/lib/traceevent/event-parse.c                                   |    1 
 tools/perf/bench/mem-functions.c                                     |   21 -
 tools/perf/util/intel-pt-decoder/intel-pt-decoder.c                  |   21 -
 tools/testing/selftests/net/msg_zerocopy.c                           |    5 
 tools/testing/selftests/powerpc/benchmarks/context_switch.c          |   21 -
 tools/testing/selftests/powerpc/utils.c                              |   37 +-
 241 files changed, 1596 insertions(+), 818 deletions(-)

Adam Ford (1):
omapfb: dss: Fix max fclk divider for omap36xx

Aditya Pakki (2):
drm/radeon: Fix reference count leaks caused by pm_runtime_get_sync drm/nouveau: fix multiple instances of reference count leaks

Adrian Hunter (1):
perf intel-pt: Fix FUP packet state

Ahmad Fatoum (3):
watchdog: f71808e_wdt: indicate WDIOF_CARDRESET support in watchdog_info.options
watchdog: f71808e_wdt: remove use of wrong watchdog_info option
watchdog: f71808e_wdt: clear watchdog timeout occurred flag

Alexandru Ardelean (1):
iio: dac: ad5592r: fix unbalanced mutex unlocks in ad5592r_read_raw()

Alim Akhtar (1):
arm64: dts: exynos: Fix silent hang after boot on Espresso

Andrii Nakryiko (1):
tools, build: Propagate build failures from tools/build/Makefile.build

Andy Shevchenko (1):
mfd: dln2: Run event handler loop under spinlock

Anton Blanchard (1):
pseries: Fix 64 bit logical memory block panic

Arnd Bergmann (1):
leds: lm355x: avoid enum conversion warning

Bartosz Golaszewski (1):
irqchip/irq-mtk-sysirq: Replace spinlock with raw_spinlock

Ben Skeggs (2):
drm/nouveau/fbcon: fix module unload when fbcon init has failed for some reason drm/nouveau/fbcon: zero-initialise the mode_cmd2 structure

Bjorn Helgaas (1):
PCI: Fix pci_cfg_wait queue locking problem

Bolarinwa Olayemi Saheed (1):
iwlegacy: Check the return value of pcie_capability_read_*()

Brant Merryman (2):

      USB: serial: cp210x: re-enable auto-RTS on open
      USB: serial: cp210x: enable usb generic throttle/unthrottle

ChangSyun Peng (1):
md/raid5: Fix Force reconstruct-write io stuck in degraded raid5

Charles Keepax (1):
mfd: arizona: Ensure 32k clock is put on driver unbind and error

Chengming Zhou (1):
ftrace: Setup correct FTRACE_FL_REGS flags for module

Chris Packham (1):
net: dsa: mv88e6xxx: MV88E6097 does not support jumbo configuration

Christian Eggers (2):
spi: spidev: Align buffers for DMA
dt-bindings: iio: io-channel-mux: Fix compatible string in example code

Christoph Hellwig (1):
net/9p: validate fds in p9_fd_open

Christophe JAILLET (5):
video: pxafb: Fix the function used to balance a 'dma_alloc_coherent()' call
scsi: cumana_2: Fix different dev_id between request_irq() and free_irq()
scsi: powertec: Fix different dev_id between request_irq() and free_irq()
scsi: eesox: Fix different dev_id between request_irq() and free_irq()
net: spider_net: Fix the size used in a 'dma_free_coherent()' call

Chuhong Yuan (2):
media: omap3isp: Add missed v4l2_ctrl_handler_free() for preview_init_entities()
media: exynos4-is: Add missed check for pinctrl_lookup_state()

Colin Ian King (6):
drm/arm: fix unintentional integer overflow on left shift drm/radeon: fix array out-of-bounds read and write issues
staging: rtl8192u: fix a dubious looking mask before a shift iommu/omap: Check for failure of a call to omap_iommu_dump_ctx
Input: sentelic - fix error return when fsp_reg_write fails fs/ufs: avoid potential u32 multiplication overflow

Coly Li (2):
bcache: fix super block seq numbers comparision in register_cache_set()
bcache: allocate meta data pages as compound pages

Cong Wang (1):
ipv6: fix memory leaks on IPV6_ADDRFORM path

Dan Carpenter (7):
media: firewire: Using uninitialized values in node_probe()
mwifiex: Prevent memory corruption handling keys
thermal: ti-soc-thermal: Fix reversed condition in ti_thermal_expose_sensor()
Smack: fix another vsscanf out of bounds
Smack: prevent underflow in smk_set_cipso()
drm/vmwgfx: Use correct vmw_legacy_display_unit pointer drm/vmwgfx: Fix two list_for_each loop exit tests

Danesh Petigara (1):
usb: bdc: Halt controller on suspend

Daniel Díaz (1):
tools build feature: Quote CC and CXX for their arguments

Darrick J. Wong (1):
xfs: fix reflink quota reservation accounting error

David Howells (1):
rxrpc: Fix race between recvmsg and sendmsg on immediate call failure

Dejin Zheng (2):
video: fbdev: sm712fb: fix an issue about iounmap for a wrong address
console: newport_con: fix an issue about leak related system resources

Dexuan Cui (1):
Drivers: hv: vmbus: Ignore CHANNELMSG_TL_CONNECT_RESULT(23)

Dilip Kota (1):
spi: lantiq: fix: Rx overflow error in full duplex mode

Dinghao Liu (1):
ALSA: echoaudio: Fix potential Oops in snd_echo_resume()

Dmitry Osipenko (1):
gpu: host1x: debug: Fix multiple channels emitting messages simultaneously

Drew Fustini (1):
pinctrl-single: fix pcs_parse_pinconf() return value

Emil Velikov (1):
drm/mipi: use dcs write for mipi_dsi_dcs_set_tear_scanline

Eric Biggers (4):
Smack: fix use-after-free in smk_write_relabel_self() fs/minix: check return value of sb_getblk() fs/minix: don't allow getting deleted inodes fs/minix: reject too-large maximum file size

Eric Dumazet (1):
x86/fsgsbase/64: Fix NULL deref in 86_fsgsbase_read_task

Erik Ekman (1):
USB: serial: qcserial: add EM7305 QDL product ID

Erik Kaneda (1):
ACPICA: Do not increment operation_region reference counts for field units

Evgeny Novikov (2):
video: fbdev: neofb: fix memory leak in neo_scan_monitor()
usb: gadget: net2280: fix memory leak on probe error handling paths

Filipe Manana (1):
btrfs: fix memory leaks after failure to lookup checksums during inode logging

Finn Thain (3):
m68k: mac: Don't send IOP message until channel is idle
m68k: mac: Fix IOP status/control register writes
scsi: mesh: Fix panic after host or bus reset

Florinel Iordache (5):
fsl/fman: use 32-bit unsigned integer
fsl/fman: fix dereference null return value
fsl/fman: fix unreachable code
fsl/fman: check dereferencing null pointer
fsl/fman: fix eth hash table allocation

Forest Crossman (2):
usb: xhci: define IDs for various ASMedia host controllers
usb: xhci: Fix ASMedia ASM1142 DMA addressing

Francesco Ruggeri (1):
igb: reinit_locked() should be called with rtnl_lock

Frank van der Linden (1):
xattr: break delegations in {set,remove}xattr

Geert Uytterhoeven (1):
sh: landisk: Add missing initialization of sh_io_port_base

Grant Likely (1):
HID: input: Fix devices that return multiple bytes in battery report

Greg Kroah-Hartman (3):
USB: iowarrior: fix up report size handling for some devices
mtd: properly check all write ioctls for permissions Linux 4.14.194

Hangbin Liu (1):
Revert "vxlan: fix tos value before xmit"

Hanjun Guo (1):
PCI: Release IVRS table in AMD ACS quirk

Harish (1):
selftests/powerpc: Fix CPU affinity for child process

Hector Martin (3):
ALSA: usb-audio: fix overeager device match for MacroSilicon MS2109
ALSA: usb-audio: add quirk for Pioneer DDJ-RB
ALSA: usb-audio: work around streaming quirk for MacroSilicon MS2109

Heiko Stuebner (2):
arm64: dts: rockchip: fix rk3399-puma vcc5v0-host gpio
arm64: dts: rockchip: fix rk3399-puma gmac reset gpio

Huacai Chen (1):
MIPS: CPU#0 is not hotpluggable

Hugh Dickins (1):
khugepaged: retract_page_tables() remember to test exit

Ido Schimmel (2):
ipv4: Silence suspicious RCU usage warning
vxlan: Ensure FDB dump is performed under RCU

Jakub Kicinski (1):
bitfield.h: don't compile-time validate _val in FIELD_FIT

Jann Horn (1):
binder: Prevent context manager from incrementing ref 0

Jeffrey Mitchell (1):
nfs: Fix getxattr kernel panic and memory overflow

Jian Cai (1):
crypto: aesni - add compatibility with IAS

Jim Cromie (1):
dyndbg: fix a BUG_ON in ddebug_describe_flags

Johan Hovold (8):
leds: wm831x-status: fix use-after-free on unbind
leds: da903x: fix use-after-free on unbind
leds: lm3533: fix use-after-free on unbind
leds: 88pm860x: fix use-after-free on unbind
net: lan78xx: replace bogus endpoint lookup
USB: serial: iuu_phoenix: fix led-activity helpers
USB: serial: ftdi_sio: make process-packet buffer unsigned
USB: serial: ftdi_sio: clean up receive processing

Johannes Berg (1):
mac80211: fix misplaced while instead of if

John Allen (1):
crypto: ccp - Fix use of merged scatterlists

John David Anglin (1):
parisc: Implement __smp_store_release and __smp_load_acquire barriers

John Garry (1):
scsi: scsi_debug: Add check for sdebug_max_queue during module init

John Ogness (1):
af_packet: TPACKET_V3: fix fill status rwlock imbalance

Jon Derrick (1):
irqdomain/treewide: Free firmware node after domain removal

Jonathan McDowell (2):
net: ethernet: stmmac: Disable hardware multicast filter
net: stmmac: dwmac1000: provide multicast filter fallback

Josef Bacik (1):
btrfs: only search for left_info if there is no right_info in try_merge_free_space

Julian Anastasov (1):
ipvs: allow connection reuse for unconfirmed conntrack

Julian Squires (1):
cfg80211: check vendor command doit pointer before use

Julian Wiedmann (1):
s390/qeth: don't process empty bridge port events

Junxiao Bi (1):
ocfs2: change slot number type s16 to u16

Kai-Heng Feng (1):
leds: core: Flush scheduled work for system suspend

Kamal Heib (1):
RDMA/ipoib: Return void from ipoib_ib_dev_stop()

Kees Cook (1):
net/compat: Add missing sock updates for SCM_RIGHTS

Kevin Hao (1):
tracing/hwlat: Honor the tracing_cpumask

Landen Chao (1):
net: ethernet: mtk_eth_soc: fix MTU warnings

Laurent Pinchart (1):
drm: panel: simple: Fix bpc for LG LB070WV8 panel

Lihong Kou (1):
Bluetooth: add a mutex lock to avoid UAF in do_enale_set

Liu Yi L (1):
iommu/vt-d: Enforce PASID devTLB field mask

Liu Ying (1):

      drm/imx: imx-ldb: Disable both channels for split mode in enc->disable()

Lorenzo Bianconi (1):
net: gre: recompute gre csum for sctp over gre tunnels

Lu Wei (2):
platform/x86: intel-hid: Fix return value check in check_acpi_dev() platform/x86: intel-vbtn: Fix return value check in check_acpi_dev()

Marco Felsch (1):
drm/imx: tve: fix regulator_disable error path

Marek Szyprowski (1):
usb: dwc2: Fix error path in gadget registration

Max Filippov (1):
xtensa: fix xtensa_pmu_setup prototype

Miaohe Lin (1):
net: Set fput_needed iff FDPUT_FPUT is set

Michael Ellerman (1):
powerpc: Fix circular dependency between percpu.h and mmu.h

Michael Tretter (1):
drm/debugfs: fix plain echo to connector "force" attribute

Mike Snitzer (3):
dm cache: pass cache structure to mode functions
dm cache: submit writethrough writes in parallel to origin and cache dm cache: remove all obsolete writethrough-specific code

Mikulas Patocka (2):
crypto: cpt - don't sleep of CRYPTO_TFM_REQ_MAY_SLEEP was not specified
ext2: fix missing percpu_counter_inc

Milton Miller (1):
powerpc/vdso: Fix vdso cpu truncation

Ming Lei (1):
dm rq: don't call blk_mq_queue_stopped() in dm_stop_queue()

Mirko Dietrich (1):
ALSA: usb-audio: Creative USB X-Fi Pro SB1095 volume knob support

Muchun Song (1):
kprobes: Fix NULL pointer dereference at kprobe_ftrace_handler

Nathan Huckleberry (1):
ARM: 8992/1: Fix unwind_frame for clang-built kernels

Nick Desaulniers (1):
tracepoint: Mark __tracepoint_string's __used

Nicolas Boichat (1):
Bluetooth: hci_serdev: Only unregister device if it was registered

Paul E. McKenney (2):
fs/btrfs: Add cond_resched() for try_release_extent_mapping() stalls mm/mmap.c: Add cond_resched() for exit_mmap() CPU stalls

Peilin Ye (4):
Bluetooth: Fix slab-out-of-bounds read in hci_extended_inquiry_result_evt()
Bluetooth: Prevent out-of-bounds read in hci_inquiry_result_evt()
Bluetooth: Prevent out-of-bounds read in hci_inquiry_result_with_rssi_evt()
openvswitch: Prevent kernel-infoleak in ovs_ct_put_key()

Peng Liu (1):

      sched: correct SD_flags returned by tl->sd_flags()

Philippe Duplessis-Guindon (1):
tools lib traceevent: Fix memory leak in process_dynamic_array_len

Pierre-Louis Bossart (1):
ASoC: Intel: bxt_rt298: add missing .owner field

Prasanna Kerekoppa (1):
brcmfmac: To fix Bss Info flag definition Bug

Qingyu Li (1):
net/nfc/rawsock.c: add CAP_NET_RAW check.

Qiushi Wu (2):
EDAC: Fix reference count leaks
agp/intel: Fix a memory leak on module initialisation failure

Qu Wenruo (1):
btrfs: don't allocate anonymous block device for user invisible roots

Rafael J. Wysocki (1):
PCI: hotplug: ACPI: Fix context refcounting in acpiphp_grab_context()

Rayagonda Kokatanur (1):
pwm: bcm-iproc: handle clk_get_rate() return

Ricardo Cañuelo (1):
arm64: dts: hisilicon: hikey: fixes to comply with adi, adv7533 DT binding

Roger Pau Monne (2):
xen/balloon: fix accounting in alloc_xenballooned_pages error path xen/balloon: make the balloon wait interruptible

Roi Dayan (1):
net/mlx5e: Don't support phys switch id if not in switchdev mode

Rustam Kovhaev (1):
usb: hso: check for return value in hso_serial_common_create()

Sai Prakash Ranjan (1):
coresight: tmc: Fix TMC mode read in tmc_read_unprepare_etb()

Sandipan Das (1):
selftests/powerpc: Fix online CPU selection

Sasi Kumar (1):
bdc: Fix bug causing crash after multiple disconnects

Sivaprakash Murugesan (1):
mtd: rawnand: qcom: avoid write to unavailable register

Stephan Gerhold (1):
arm64: dts: qcom: msm8916: Replace invalid bias-pull-none property

Stephen Hemminger (1):
hv_netvsc: do not use VF device if link is down

Steve French (1):
smb3: warn on confusing error scenario with sec=krb5

Steve Longerbeam (1):
gpu: ipu-v3: image-convert: Combine rotate/no-rotate irq handlers

Steven Rostedt (VMware) (1):
tracing: Use trace_sched_process_free() instead of exit() for pid tracing

Suren Baghdasaryan (1):
staging: android: ashmem: Fix lockdep warning for write operation

Sven Schnelle (1):
parisc: mask out enable and reserved bits from sba imask

Takashi Iwai (1):
ALSA: seq: oss: Serialize ioctls

Thomas Gleixner (2):
genirq/affinity: Handle affinity setting on inactive interrupts correctly genirq/affinity: Make affinity setting if activated opt-in

Thomas Hebb (1):
tools build feature: Use CC and CXX from parent

Tianjia Zhang (2):
net: ethernet: aquantia: Fix wrong return value
liquidio: Fix wrong return value in cn23xx_get_pf_num()

Tiezhu Yang (1):
test_kmod: avoid potential double free in trigger_config_run_type()

Tim Froidcoeur (2):
net: refactor bind_bucket fastreuse into helper
net: initialize fastreuse on inet_inherit_port

Tom Rix (3):
drm/bridge: sil_sii8620: initialize return of sii8620_readb
power: supply: check if calc_soc succeeded in pm860x_init_battery
crypto: qat - fix double free in qat_uclo_create_batch_init_list

Tomasz Duszynski (1):
iio: improve IIO_CONCENTRATION channel type description

Tomi Valkeinen (1):
drm/tilcdc: fix leak & null ref in panel_connector_get_modes

Vincent Whitchurch (1):
perf bench mem: Always memset source before memcpy

Wang Hai (4):
cxl: Fix kobject memleak
wl1251: fix always return 0 error
dlm: Fix kobject memleak
net: qcom/emac: add missed clk_disable_unprepare in error path of emac_clks_phase1_init

Willem de Bruijn (1):
selftests/net: relax cpu affinity requirement in msg_zerocopy test

Wolfram Sang (4):
i2c: slave: improve sanity check when registering
i2c: slave: add sanity check when unregistering
i2c: rcar: slave: only send STOP event when we have been addressed
i2c: rcar: avoid race when unregistering slave

Wright Feng (1):
brcmfmac: set state of hanger slot to FREE when flushing PSQ

Xie He (1):

      drivers/net/wan/lapbether: Added needed_headroom and a skb->len check

Xin Xiong (1):
atm: fix atm_dev refcnt leaks in atmtcp_remove_persistent

Xiongfeng Wang (1):
PCI/ASPM: Add missing newline in sysfs 'policy'

Xu Wang (1):
clk: clk-atlas6: fix return value check in atlas6_clk_init()

Yang Yingliang (1):

      cgroup: add missing skcd->no_refcnt check in cgroup_sk_clone()

Yu Kuai (2):
ARM: socfpga: PM: add missing put_device() call in socfpga_setup_ocram_self_refresh()
MIPS: OCTEON: add missing put_device() call in dwc3_octeon_device_init()

Yunhai Zhang (1):
vgacon: Fix for missing check in scrollback handling

Zhao Heming (1):
md-cluster: fix wild pointer of unlock_all_bitmaps()

Zheng Bin (1):
9p: Fix memory leak in v9fs_mount

Zhenzhong Duan (1):
x86/mce/inject: Fix a wrong assignment of i_mce.status

yu kuai (1):
ARM: at91: pm: add missing put_device() call in at91_pm_sram_init()

author maintainer
#1 lore raw
Documentation/ABI/testing/sysfs-bus-iio +2 -1
index 64e65450f483..e21e2ca3e4f9 100644
@@ -1524,7 +1524,8 @@ What:		/sys/bus/iio/devices/iio:deviceX/in_concentrationX_voc_raw
 KernelVersion:	4.3
 Contact:	[email protected]
 Description:
-		Raw (unscaled no offset etc.) percentage reading of a substance.
+		Raw (unscaled no offset etc.) reading of a substance. Units
+		after application of scale and offset are percents.
 
 What:		/sys/bus/iio/devices/iio:deviceX/in_resistance_raw
 What:		/sys/bus/iio/devices/iio:deviceX/in_resistanceX_raw
Documentation/devicetree/bindings/iio/multiplexer/io-channel-mux.txt +1 -1
index c82794002595..89647d714387 100644
@@ -21,7 +21,7 @@ controller state. The mux controller state is described in
 
 Example:
 	mux: mux-controller {
-		compatible = "mux-gpio";
+		compatible = "gpio-mux";
 		#mux-control-cells = <0>;
 
 		mux-gpios = <&pioA 0 GPIO_ACTIVE_HIGH>,
Makefile +1 -1
index b30927f29e2b..8e2a1418c5ae 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 4
 PATCHLEVEL = 14
-SUBLEVEL = 193
+SUBLEVEL = 194
 EXTRAVERSION =
 NAME = Petit Gorille
 
arch/arm/kernel/stacktrace.c +24 -0
index 65228bf4c6df..ba9b9a77bcd2 100644
@@ -20,6 +20,19 @@
  * A simple function epilogue looks like this:
  *	ldm	sp, {fp, sp, pc}
  *
+ * When compiled with clang, pc and sp are not pushed. A simple function
+ * prologue looks like this when built with clang:
+ *
+ *	stmdb	{..., fp, lr}
+ *	add	fp, sp, #x
+ *	sub	sp, sp, #y
+ *
+ * A simple function epilogue looks like this when built with clang:
+ *
+ *	sub	sp, fp, #x
+ *	ldm	{..., fp, pc}
+ *
+ *
  * Note that with framepointer enabled, even the leaf functions have the same
  * prologue and epilogue, therefore we can ignore the LR value in this case.
  */
@@ -32,6 +45,16 @@ int notrace unwind_frame(struct stackframe *frame)
 	low = frame->sp;
 	high = ALIGN(low, THREAD_SIZE);
 
+#ifdef CONFIG_CC_IS_CLANG
+	/* check current frame pointer is within bounds */
+	if (fp < low + 4 || fp > high - 4)
+		return -EINVAL;
+
+	frame->sp = frame->fp;
+	frame->fp = *(unsigned long *)(fp);
+	frame->pc = frame->lr;
+	frame->lr = *(unsigned long *)(fp + 4);
+#else
 	/* check current frame pointer is within bounds */
 	if (fp < low + 12 || fp > high - 4)
 		return -EINVAL;
@@ -40,6 +63,7 @@ int notrace unwind_frame(struct stackframe *frame)
 	frame->fp = *(unsigned long *)(fp - 12);
 	frame->sp = *(unsigned long *)(fp - 8);
 	frame->pc = *(unsigned long *)(fp - 4);
+#endif
 
 	return 0;
 }
arch/arm/mach-at91/pm.c +8 -3
index 849014c01cf4..bebaa0b0aef4 100644
@@ -456,13 +456,13 @@ static void __init at91_pm_sram_init(void)
 	sram_pool = gen_pool_get(&pdev->dev, NULL);
 	if (!sram_pool) {
 		pr_warn("%s: sram pool unavailable!\n", __func__);
-		return;
+		goto out_put_device;
 	}
 
 	sram_base = gen_pool_alloc(sram_pool, at91_pm_suspend_in_sram_sz);
 	if (!sram_base) {
 		pr_warn("%s: unable to alloc sram!\n", __func__);
-		return;
+		goto out_put_device;
 	}
 
 	sram_pbase = gen_pool_virt_to_phys(sram_pool, sram_base);
@@ -470,12 +470,17 @@ static void __init at91_pm_sram_init(void)
 					at91_pm_suspend_in_sram_sz, false);
 	if (!at91_suspend_sram_fn) {
 		pr_warn("SRAM: Could not map\n");
-		return;
+		goto out_put_device;
 	}
 
 	/* Copy the pm suspend handler to SRAM */
 	at91_suspend_sram_fn = fncpy(at91_suspend_sram_fn,
 			&at91_pm_suspend_in_sram, at91_pm_suspend_in_sram_sz);
+	return;
+
+out_put_device:
+	put_device(&pdev->dev);
+	return;
 }
 
 static void __init at91_pm_backup_init(void)
arch/arm/mach-socfpga/pm.c +5 -3
index c378ab0c2431..93f2245c9775 100644
@@ -60,14 +60,14 @@ static int socfpga_setup_ocram_self_refresh(void)
 	if (!ocram_pool) {
 		pr_warn("%s: ocram pool unavailable!\n", __func__);
 		ret = -ENODEV;
-		goto put_node;
+		goto put_device;
 	}
 
 	ocram_base = gen_pool_alloc(ocram_pool, socfpga_sdram_self_refresh_sz);
 	if (!ocram_base) {
 		pr_warn("%s: unable to alloc ocram!\n", __func__);
 		ret = -ENOMEM;
-		goto put_node;
+		goto put_device;
 	}
 
 	ocram_pbase = gen_pool_virt_to_phys(ocram_pool, ocram_base);
@@ -78,7 +78,7 @@ static int socfpga_setup_ocram_self_refresh(void)
 	if (!suspend_ocram_base) {
 		pr_warn("%s: __arm_ioremap_exec failed!\n", __func__);
 		ret = -ENOMEM;
-		goto put_node;
+		goto put_device;
 	}
 
 	/* Copy the code that puts DDR in self refresh to ocram */
@@ -92,6 +92,8 @@ static int socfpga_setup_ocram_self_refresh(void)
 	if (!socfpga_sdram_self_refresh_in_ocram)
 		ret = -EFAULT;
 
+put_device:
+	put_device(&pdev->dev);
 put_node:
 	of_node_put(np);
 
arch/arm64/boot/dts/exynos/exynos7-espresso.dts +1 -0
index 4a8b1fb51243..c8824b918693 100644
@@ -155,6 +155,7 @@
 				regulator-min-microvolt = <700000>;
 				regulator-max-microvolt = <1150000>;
 				regulator-enable-ramp-delay = <125>;
+				regulator-always-on;
 			};
 
 			ldo8_reg: LDO8 {
arch/arm64/boot/dts/hisilicon/hi3660-hikey960.dts +11 -0
index e9f87cb61ade..8587912e1eb0 100644
@@ -210,6 +210,17 @@
 		status = "ok";
 		compatible = "adi,adv7533";
 		reg = <0x39>;
+		adi,dsi-lanes = <4>;
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			port@0 {
+				reg = <0>;
+			};
+			port@1 {
+				reg = <1>;
+			};
+		};
 	};
 };
 
arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts +1 -1
index 6887cc1a743d..f78e6468b02f 100644
@@ -513,7 +513,7 @@
 		reg = <0x39>;
 		interrupt-parent = <&gpio1>;
 		interrupts = <1 2>;
-		pd-gpio = <&gpio0 4 0>;
+		pd-gpios = <&gpio0 4 0>;
 		adi,dsi-lanes = <4>;
 		#sound-dai-cells = <0>;
 
arch/arm64/boot/dts/qcom/msm8916-pins.dtsi +5 -5
index 4cb0b5834143..69ba1d79bcd5 100644
@@ -542,7 +542,7 @@
 				pins = "gpio63", "gpio64", "gpio65", "gpio66",
 				       "gpio67", "gpio68";
 				drive-strength = <8>;
-				bias-pull-none;
+				bias-disable;
 			};
 		};
 		cdc_pdm_lines_sus: pdm_lines_off {
@@ -571,7 +571,7 @@
 				pins = "gpio113", "gpio114", "gpio115",
 				       "gpio116";
 				drive-strength = <8>;
-				bias-pull-none;
+				bias-disable;
 			};
 		};
 
@@ -599,7 +599,7 @@
 			pinconf {
 				pins = "gpio110";
 				drive-strength = <8>;
-				bias-pull-none;
+				bias-disable;
 			};
 		};
 
@@ -625,7 +625,7 @@
 			pinconf {
 				pins = "gpio116";
 				drive-strength = <8>;
-				bias-pull-none;
+				bias-disable;
 			};
 		};
 		ext_mclk_tlmm_lines_sus: mclk_lines_off {
@@ -653,7 +653,7 @@
 				pins = "gpio112", "gpio117", "gpio118",
 					"gpio119";
 				drive-strength = <8>;
-				bias-pull-none;
+				bias-disable;
 			};
 		};
 		ext_sec_tlmm_lines_sus: tlmm_lines_off {
arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi +2 -2
index 1fc5060d7027..0d5679380b2a 100644
@@ -138,7 +138,7 @@
 
 	vcc5v0_host: vcc5v0-host-regulator {
 		compatible = "regulator-fixed";
-		gpio = <&gpio4 RK_PA3 GPIO_ACTIVE_HIGH>;
+		gpio = <&gpio4 RK_PA3 GPIO_ACTIVE_LOW>;
 		enable-active-low;
 		pinctrl-names = "default";
 		pinctrl-0 = <&vcc5v0_host_en>;
@@ -193,7 +193,7 @@
 	phy-mode = "rgmii";
 	pinctrl-names = "default";
 	pinctrl-0 = <&rgmii_pins>;
-	snps,reset-gpio = <&gpio3 RK_PC0 GPIO_ACTIVE_HIGH>;
+	snps,reset-gpio = <&gpio3 RK_PC0 GPIO_ACTIVE_LOW>;
 	snps,reset-active-low;
 	snps,reset-delays-us = <0 10000 50000>;
 	tx_delay = <0x10>;
arch/m68k/mac/iop.c +6 -15
index 4c1e606e7d03..0b94f6672c5f 100644
@@ -183,7 +183,7 @@ static __inline__ void iop_writeb(volatile struct mac_iop *iop, __u16 addr, __u8
 
 static __inline__ void iop_stop(volatile struct mac_iop *iop)
 {
-	iop->status_ctrl &= ~IOP_RUN;
+	iop->status_ctrl = IOP_AUTOINC;
 }
 
 static __inline__ void iop_start(volatile struct mac_iop *iop)
@@ -191,14 +191,9 @@ static __inline__ void iop_start(volatile struct mac_iop *iop)
 	iop->status_ctrl = IOP_RUN | IOP_AUTOINC;
 }
 
-static __inline__ void iop_bypass(volatile struct mac_iop *iop)
-{
-	iop->status_ctrl |= IOP_BYPASS;
-}
-
 static __inline__ void iop_interrupt(volatile struct mac_iop *iop)
 {
-	iop->status_ctrl |= IOP_IRQ;
+	iop->status_ctrl = IOP_IRQ | IOP_RUN | IOP_AUTOINC;
 }
 
 static int iop_alive(volatile struct mac_iop *iop)
@@ -244,7 +239,6 @@ void __init iop_preinit(void)
 		} else {
 			iop_base[IOP_NUM_SCC] = (struct mac_iop *) SCC_IOP_BASE_QUADRA;
 		}
-		iop_base[IOP_NUM_SCC]->status_ctrl = 0x87;
 		iop_scc_present = 1;
 	} else {
 		iop_base[IOP_NUM_SCC] = NULL;
@@ -256,7 +250,7 @@ void __init iop_preinit(void)
 		} else {
 			iop_base[IOP_NUM_ISM] = (struct mac_iop *) ISM_IOP_BASE_QUADRA;
 		}
-		iop_base[IOP_NUM_ISM]->status_ctrl = 0;
+		iop_stop(iop_base[IOP_NUM_ISM]);
 		iop_ism_present = 1;
 	} else {
 		iop_base[IOP_NUM_ISM] = NULL;
@@ -416,7 +410,8 @@ static void iop_handle_send(uint iop_num, uint chan)
 	msg->status = IOP_MSGSTATUS_UNUSED;
 	msg = msg->next;
 	iop_send_queue[iop_num][chan] = msg;
-	if (msg) iop_do_send(msg);
+	if (msg && iop_readb(iop, IOP_ADDR_SEND_STATE + chan) == IOP_MSG_IDLE)
+		iop_do_send(msg);
 }
 
 /*
@@ -490,16 +485,12 @@ int iop_send_message(uint iop_num, uint chan, void *privdata,
 
 	if (!(q = iop_send_queue[iop_num][chan])) {
 		iop_send_queue[iop_num][chan] = msg;
+		iop_do_send(msg);
 	} else {
 		while (q->next) q = q->next;
 		q->next = msg;
 	}
 
-	if (iop_readb(iop_base[iop_num],
-	    IOP_ADDR_SEND_STATE + chan) == IOP_MSG_IDLE) {
-		iop_do_send(msg);
-	}
-
 	return 0;
 }
 
arch/mips/cavium-octeon/octeon-usb.c +4 -1
index bfdfaf32d2c4..75189ff2f3c7 100644
@@ -517,6 +517,7 @@ static int __init dwc3_octeon_device_init(void)
 
 			res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 			if (res == NULL) {
+				put_device(&pdev->dev);
 				dev_err(&pdev->dev, "No memory resources\n");
 				return -ENXIO;
 			}
@@ -528,8 +529,10 @@ static int __init dwc3_octeon_device_init(void)
 			 * know the difference.
 			 */
 			base = devm_ioremap_resource(&pdev->dev, res);
-			if (IS_ERR(base))
+			if (IS_ERR(base)) {
+				put_device(&pdev->dev);
 				return PTR_ERR(base);
+			}
 
 			mutex_lock(&dwc3_octeon_clocks_mutex);
 			dwc3_octeon_clocks_start(&pdev->dev, (u64)base);
arch/mips/kernel/topology.c +1 -1
index cd3e1f82e1a5..08ad6371fbe0 100644
@@ -20,7 +20,7 @@ static int __init topology_init(void)
 	for_each_present_cpu(i) {
 		struct cpu *c = &per_cpu(cpu_devices, i);
 
-		c->hotpluggable = 1;
+		c->hotpluggable = !!i;
 		ret = register_cpu(c, i);
 		if (ret)
 			printk(KERN_WARNING "topology_init: register_cpu %d "
arch/parisc/include/asm/barrier.h +61 -0

67 lines not on this page · raw message

arch/powerpc/include/asm/percpu.h +2 -2
index dce863a7635c..8e5b7d0b851c 100644
@@ -10,8 +10,6 @@
 
 #ifdef CONFIG_SMP
 
-#include <asm/paca.h>
-
 #define __my_cpu_offset local_paca->data_offset
 
 #endif /* CONFIG_SMP */
@@ -19,4 +17,6 @@
 
 #include <asm-generic/percpu.h>
 
+#include <asm/paca.h>
+
 #endif /* _ASM_POWERPC_PERCPU_H_ */
arch/powerpc/kernel/vdso.c +1 -1
index 22b01a3962f0..3edaee28b638 100644
@@ -704,7 +704,7 @@ int vdso_getcpu_init(void)
 	node = cpu_to_node(cpu);
 	WARN_ON_ONCE(node > 0xffff);
 
-	val = (cpu & 0xfff) | ((node & 0xffff) << 16);
+	val = (cpu & 0xffff) | ((node & 0xffff) << 16);
 	mtspr(SPRN_SPRG_VDSO_WRITE, val);
 	get_paca()->sprg_vdso = val;
 
arch/powerpc/platforms/pseries/hotplug-memory.c +1 -1
index a0847be0b035..1a3cffdaa1e8 100644
@@ -30,7 +30,7 @@ static bool rtas_hp_event;
 unsigned long pseries_memory_block_size(void)
 {
 	struct device_node *np;
-	unsigned int memblock_size = MIN_MEMORY_BLOCK_SIZE;
+	u64 memblock_size = MIN_MEMORY_BLOCK_SIZE;
 	struct resource r;
 
 	np = of_find_node_by_path("/ibm,dynamic-reconfiguration-memory");
arch/sh/boards/mach-landisk/setup.c +3 -0
index f1147caebacf..af69fb7fef7c 100644
@@ -85,6 +85,9 @@ device_initcall(landisk_devices_setup);
 
 static void __init landisk_setup(char **cmdline_p)
 {
+	/* I/O port identity mapping */
+	__set_io_port_base(0);
+
 	/* LED ON */
 	__raw_writeb(__raw_readb(PA_LED) | 0x03, PA_LED);
 
arch/x86/crypto/aes_ctrby8_avx-x86_64.S +3 -11
index 5f6a5af9c489..77043a82da51 100644
@@ -127,10 +127,6 @@ ddq_add_8:
 
 /* generate a unique variable for ddq_add_x */
 
-.macro setddq n
-	var_ddq_add = ddq_add_\n
-.endm
-
 /* generate a unique variable for xmm register */
 .macro setxdata n
 	var_xdata = %xmm\n
@@ -140,9 +136,7 @@ ddq_add_8:
 
 .macro club name, id
 .altmacro
-	.if \name == DDQ_DATA
-		setddq %\id
-	.elseif \name == XDATA
+	.if \name == XDATA
 		setxdata %\id
 	.endif
 .noaltmacro
@@ -165,9 +159,8 @@ ddq_add_8:
 
 	.set i, 1
 	.rept (by - 1)
-		club DDQ_DATA, i
 		club XDATA, i
-		vpaddq	var_ddq_add(%rip), xcounter, var_xdata
+		vpaddq	(ddq_add_1 + 16 * (i - 1))(%rip), xcounter, var_xdata
 		vptest	ddq_low_msk(%rip), var_xdata
 		jnz 1f
 		vpaddq	ddq_high_add_1(%rip), var_xdata, var_xdata
@@ -180,8 +173,7 @@ ddq_add_8:
 	vmovdqa	1*16(p_keys), xkeyA
 
 	vpxor	xkey0, xdata0, xdata0
-	club DDQ_DATA, by
-	vpaddq	var_ddq_add(%rip), xcounter, xcounter
+	vpaddq	(ddq_add_1 + 16 * (by - 1))(%rip), xcounter, xcounter
 	vptest	ddq_low_msk(%rip), xcounter
 	jnz	1f
 	vpaddq	ddq_high_add_1(%rip), xcounter, xcounter
arch/x86/kernel/apic/io_apic.c +5 -0
index b5652233e674..a1c4a13782da 100644
@@ -2252,8 +2252,13 @@ static int mp_irqdomain_create(int ioapic)
 
 static void ioapic_destroy_irqdomain(int idx)
 {
+	struct ioapic_domain_cfg *cfg = &ioapics[idx].irqdomain_cfg;
+	struct fwnode_handle *fn = ioapics[idx].irqdomain->fwnode;
+
 	if (ioapics[idx].irqdomain) {
 		irq_domain_remove(ioapics[idx].irqdomain);
+		if (!cfg->dev)
+			irq_domain_free_fwnode(fn);
 		ioapics[idx].irqdomain = NULL;
 	}
 }
arch/x86/kernel/apic/vector.c +4 -0
index 36cd34524ac1..637cf4dfccc9 100644
@@ -368,6 +368,10 @@ static int x86_vector_alloc_irqs(struct irq_domain *domain, unsigned int virq,
 		irq_data->chip = &lapic_controller;
 		irq_data->chip_data = data;
 		irq_data->hwirq = virq + i;
+
+		/* Don't invoke affinity setter on deactivated interrupts */
+		irqd_set_affinity_on_activate(irq_data);
+
 		err = assign_irq_vector_policy(virq + i, node, data, info,
 					       irq_data);
 		if (err) {
arch/x86/kernel/cpu/mcheck/mce-inject.c +1 -1
index e57b59762f9f..94aa91b09c28 100644
@@ -518,7 +518,7 @@ static void do_inject(void)
 	 */
 	if (inj_type == DFR_INT_INJ) {
 		i_mce.status |= MCI_STATUS_DEFERRED;
-		i_mce.status |= (i_mce.status & ~MCI_STATUS_UC);
+		i_mce.status &= ~MCI_STATUS_UC;
 	}
 
 	/*
arch/x86/kernel/ptrace.c +1 -1
index 734549492a18..dc4d27000aa3 100644
@@ -374,7 +374,7 @@ static unsigned long task_seg_base(struct task_struct *task,
 		 */
 		mutex_lock(&task->mm->context.lock);
 		ldt = task->mm->context.ldt;
-		if (unlikely(idx >= ldt->nr_entries))
+		if (unlikely(!ldt || idx >= ldt->nr_entries))
 			base = 0;
 		else
 			base = get_desc_base(ldt->entries + idx);
arch/xtensa/kernel/perf_event.c +1 -1
index ff1d81385ed7..768e1f7ab871 100644
@@ -404,7 +404,7 @@ static struct pmu xtensa_pmu = {
 	.read = xtensa_pmu_read,
 };
 
-static int xtensa_pmu_setup(int cpu)
+static int xtensa_pmu_setup(unsigned int cpu)
 {
 	unsigned i;
 
drivers/acpi/acpica/exprep.c +0 -4
index 8de060664204..e23f3d54bb31 100644
@@ -507,10 +507,6 @@ acpi_status acpi_ex_prep_field_value(struct acpi_create_field_info *info)
 				    (u8)access_byte_width;
 			}
 		}
-		/* An additional reference for the container */
-
-		acpi_ut_add_reference(obj_desc->field.region_obj);
-
 		ACPI_DEBUG_PRINT((ACPI_DB_BFIELD,
 				  "RegionField: BitOff %X, Off %X, Gran %X, Region %p\n",
 				  obj_desc->field.start_field_bit_offset,
drivers/acpi/acpica/utdelete.c +1 -5
index c6eb9fae70f9..61a979d0fbc5 100644
@@ -593,11 +593,6 @@ acpi_ut_update_object_reference(union acpi_operand_object *object, u16 action)
 			next_object = object->buffer_field.buffer_obj;
 			break;
 
-		case ACPI_TYPE_LOCAL_REGION_FIELD:
-
-			next_object = object->field.region_obj;
-			break;
-
 		case ACPI_TYPE_LOCAL_BANK_FIELD:
 
 			next_object = object->bank_field.bank_obj;
@@ -638,6 +633,7 @@ acpi_ut_update_object_reference(union acpi_operand_object *object, u16 action)
 			}
 			break;
 
+		case ACPI_TYPE_LOCAL_REGION_FIELD:
 		case ACPI_TYPE_REGION:
 		default:
 
drivers/android/binder.c +14 -1
index 05e75d18b4d9..bd74a29cf86c 100644
@@ -2813,6 +2813,12 @@ static void binder_transaction(struct binder_proc *proc,
 			goto err_dead_binder;
 		}
 		e->to_node = target_node->debug_id;
+		if (WARN_ON(proc == target_proc)) {
+			return_error = BR_FAILED_REPLY;
+			return_error_param = -EINVAL;
+			return_error_line = __LINE__;
+			goto err_invalid_target_handle;
+		}
 		if (security_binder_transaction(proc->tsk,
 						target_proc->tsk) < 0) {
 			return_error = BR_FAILED_REPLY;
@@ -3288,10 +3294,17 @@ static int binder_thread_write(struct binder_proc *proc,
 				struct binder_node *ctx_mgr_node;
 				mutex_lock(&context->context_mgr_node_lock);
 				ctx_mgr_node = context->binder_context_mgr_node;
-				if (ctx_mgr_node)
+				if (ctx_mgr_node) {
+					if (ctx_mgr_node->proc == proc) {
+						binder_user_error("%d:%d context manager tried to acquire desc 0\n",
+								  proc->pid, thread->pid);
+						mutex_unlock(&context->context_mgr_node_lock);
+						return -EINVAL;
+					}
 					ret = binder_inc_ref_for_node(
 							proc, ctx_mgr_node,
 							strong, NULL, &rdata);
+				}
 				mutex_unlock(&context->context_mgr_node_lock);
 			}
 			if (ret)
drivers/atm/atmtcp.c +8 -2
index afebeb1c3e1e..723bad1201cc 100644
@@ -432,9 +432,15 @@ static int atmtcp_remove_persistent(int itf)
 		return -EMEDIUMTYPE;
 	}
 	dev_data = PRIV(dev);
-	if (!dev_data->persist) return 0;
+	if (!dev_data->persist) {
+		atm_dev_put(dev);
+		return 0;
+	}
 	dev_data->persist = 0;
-	if (PRIV(dev)->vcc) return 0;
+	if (PRIV(dev)->vcc) {
+		atm_dev_put(dev);
+		return 0;
+	}
 	kfree(dev_data);
 	atm_dev_put(dev);
 	atm_dev_deregister(dev);
drivers/bluetooth/hci_serdev.c +2 -1
index 69c00a3db538..72cf2d97b682 100644
@@ -361,7 +361,8 @@ void hci_uart_unregister_device(struct hci_uart *hu)
 	struct hci_dev *hdev = hu->hdev;
 
 	clear_bit(HCI_UART_PROTO_READY, &hu->flags);
-	hci_unregister_dev(hdev);
+	if (test_bit(HCI_UART_REGISTERED, &hu->flags))
+		hci_unregister_dev(hdev);
 	hci_free_dev(hdev);
 
 	cancel_work_sync(&hu->write_work);
drivers/char/agp/intel-gtt.c +3 -1
index 7516ba981b63..34cc853772bc 100644
@@ -304,8 +304,10 @@ static int intel_gtt_setup_scratch_page(void)
 	if (intel_private.needs_dmar) {
 		dma_addr = pci_map_page(intel_private.pcidev, page, 0,
 				    PAGE_SIZE, PCI_DMA_BIDIRECTIONAL);
-		if (pci_dma_mapping_error(intel_private.pcidev, dma_addr))
+		if (pci_dma_mapping_error(intel_private.pcidev, dma_addr)) {
+			__free_page(page);
 			return -EINVAL;
+		}
 
 		intel_private.scratch_page_dma = dma_addr;
 	} else
drivers/clk/sirf/clk-atlas6.c +1 -1
index 665fa681b2e1..1e6bdf22c3b6 100644
@@ -136,7 +136,7 @@ static void __init atlas6_clk_init(struct device_node *np)
 
 	for (i = pll1; i < maxclk; i++) {
 		atlas6_clks[i] = clk_register(NULL, atlas6_clk_hw_array[i]);
-		BUG_ON(!atlas6_clks[i]);
+		BUG_ON(IS_ERR(atlas6_clks[i]));
 	}
 	clk_register_clkdev(atlas6_clks[cpu], NULL, "cpu");
 	clk_register_clkdev(atlas6_clks[io],  NULL, "io");
drivers/crypto/cavium/cpt/cptvf_algs.c +1 -0
index df21d996db7e..2d1b28c29a8e 100644
@@ -205,6 +205,7 @@ static inline int cvm_enc_dec(struct ablkcipher_request *req, u32 enc)
 	int status;
 
 	memset(req_info, 0, sizeof(struct cpt_request_info));
+	req_info->may_sleep = (req->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP) != 0;
 	memset(fctx, 0, sizeof(struct fc_context));
 	create_input_list(req, enc, enc_iv_len);
 	create_output_list(req, enc_iv_len);
drivers/crypto/cavium/cpt/cptvf_reqmanager.c +6 -6
index b0ba4331944b..43fe69d0981a 100644
@@ -136,7 +136,7 @@ static inline int setup_sgio_list(struct cpt_vf *cptvf,
 
 	/* Setup gather (input) components */
 	g_sz_bytes = ((req->incnt + 3) / 4) * sizeof(struct sglist_component);
-	info->gather_components = kzalloc(g_sz_bytes, GFP_KERNEL);
+	info->gather_components = kzalloc(g_sz_bytes, req->may_sleep ? GFP_KERNEL : GFP_ATOMIC);
 	if (!info->gather_components) {
 		ret = -ENOMEM;
 		goto  scatter_gather_clean;
@@ -153,7 +153,7 @@ static inline int setup_sgio_list(struct cpt_vf *cptvf,
 
 	/* Setup scatter (output) components */
 	s_sz_bytes = ((req->outcnt + 3) / 4) * sizeof(struct sglist_component);
-	info->scatter_components = kzalloc(s_sz_bytes, GFP_KERNEL);
+	info->scatter_components = kzalloc(s_sz_bytes, req->may_sleep ? GFP_KERNEL : GFP_ATOMIC);
 	if (!info->scatter_components) {
 		ret = -ENOMEM;
 		goto  scatter_gather_clean;
@@ -170,7 +170,7 @@ static inline int setup_sgio_list(struct cpt_vf *cptvf,
 
 	/* Create and initialize DPTR */
 	info->dlen = g_sz_bytes + s_sz_bytes + SG_LIST_HDR_SIZE;
-	info->in_buffer = kzalloc(info->dlen, GFP_KERNEL);
+	info->in_buffer = kzalloc(info->dlen, req->may_sleep ? GFP_KERNEL : GFP_ATOMIC);
 	if (!info->in_buffer) {
 		ret = -ENOMEM;
 		goto  scatter_gather_clean;
@@ -198,7 +198,7 @@ static inline int setup_sgio_list(struct cpt_vf *cptvf,
 	}
 
 	/* Create and initialize RPTR */
-	info->out_buffer = kzalloc(COMPLETION_CODE_SIZE, GFP_KERNEL);
+	info->out_buffer = kzalloc(COMPLETION_CODE_SIZE, req->may_sleep ? GFP_KERNEL : GFP_ATOMIC);
 	if (!info->out_buffer) {
 		ret = -ENOMEM;
 		goto scatter_gather_clean;
@@ -434,7 +434,7 @@ int process_request(struct cpt_vf *cptvf, struct cpt_request_info *req)
 	struct cpt_vq_command vq_cmd;
 	union cpt_inst_s cptinst;
 
-	info = kzalloc(sizeof(*info), GFP_KERNEL);
+	info = kzalloc(sizeof(*info), req->may_sleep ? GFP_KERNEL : GFP_ATOMIC);
 	if (unlikely(!info)) {
 		dev_err(&pdev->dev, "Unable to allocate memory for info_buffer\n");
 		return -ENOMEM;
@@ -456,7 +456,7 @@ int process_request(struct cpt_vf *cptvf, struct cpt_request_info *req)
 	 * Get buffer for union cpt_res_s response
 	 * structure and its physical address
 	 */
-	info->completion_addr = kzalloc(sizeof(union cpt_res_s), GFP_KERNEL);
+	info->completion_addr = kzalloc(sizeof(union cpt_res_s), req->may_sleep ? GFP_KERNEL : GFP_ATOMIC);
 	if (unlikely(!info->completion_addr)) {
 		dev_err(&pdev->dev, "Unable to allocate memory for completion_addr\n");
 		ret = -ENOMEM;
drivers/crypto/cavium/cpt/request_manager.h +2 -0
index 80ee074c6e0c..09930d95ad24 100644
@@ -65,6 +65,8 @@ struct cpt_request_info {
 	union ctrl_info ctrl; /* User control information */
 	struct cptvf_request req; /* Request Information (Core specific) */
 
+	bool may_sleep;
+
 	struct buf_ptr in[MAX_BUF_CNT];
 	struct buf_ptr out[MAX_BUF_CNT];
 
drivers/crypto/ccp/ccp-dev.h +1 -0
index 7442b0422f8a..bd43b5c1450c 100644
@@ -471,6 +471,7 @@ struct ccp_sg_workarea {
 	unsigned int sg_used;
 
 	struct scatterlist *dma_sg;
+	struct scatterlist *dma_sg_head;
 	struct device *dma_dev;
 	unsigned int dma_count;
 	enum dma_data_direction dma_dir;
drivers/crypto/ccp/ccp-ops.c +26 -11
index 43b74cf0787e..626b643d610e 100644
@@ -67,7 +67,7 @@ static u32 ccp_gen_jobid(struct ccp_device *ccp)
 static void ccp_sg_free(struct ccp_sg_workarea *wa)
 {
 	if (wa->dma_count)
-		dma_unmap_sg(wa->dma_dev, wa->dma_sg, wa->nents, wa->dma_dir);
+		dma_unmap_sg(wa->dma_dev, wa->dma_sg_head, wa->nents, wa->dma_dir);
 
 	wa->dma_count = 0;
 }
@@ -96,6 +96,7 @@ static int ccp_init_sg_workarea(struct ccp_sg_workarea *wa, struct device *dev,
 		return 0;
 
 	wa->dma_sg = sg;
+	wa->dma_sg_head = sg;
 	wa->dma_dev = dev;
 	wa->dma_dir = dma_dir;
 	wa->dma_count = dma_map_sg(dev, sg, wa->nents, dma_dir);
@@ -108,14 +109,28 @@ static int ccp_init_sg_workarea(struct ccp_sg_workarea *wa, struct device *dev,
 static void ccp_update_sg_workarea(struct ccp_sg_workarea *wa, unsigned int len)
 {
 	unsigned int nbytes = min_t(u64, len, wa->bytes_left);
+	unsigned int sg_combined_len = 0;
 
 	if (!wa->sg)
 		return;
 
 	wa->sg_used += nbytes;
 	wa->bytes_left -= nbytes;
-	if (wa->sg_used == wa->sg->length) {
-		wa->sg = sg_next(wa->sg);
+	if (wa->sg_used == sg_dma_len(wa->dma_sg)) {
+		/* Advance to the next DMA scatterlist entry */
+		wa->dma_sg = sg_next(wa->dma_sg);
+
+		/* In the case that the DMA mapped scatterlist has entries
+		 * that have been merged, the non-DMA mapped scatterlist
+		 * must be advanced multiple times for each merged entry.
+		 * This ensures that the current non-DMA mapped entry
+		 * corresponds to the current DMA mapped entry.
+		 */
+		do {
+			sg_combined_len += wa->sg->length;
+			wa->sg = sg_next(wa->sg);
+		} while (wa->sg_used > sg_combined_len);
+
 		wa->sg_used = 0;
 	}
 }
@@ -304,7 +319,7 @@ static unsigned int ccp_queue_buf(struct ccp_data *data, unsigned int from)
 	/* Update the structures and generate the count */
 	buf_count = 0;
 	while (sg_wa->bytes_left && (buf_count < dm_wa->length)) {
-		nbytes = min(sg_wa->sg->length - sg_wa->sg_used,
+		nbytes = min(sg_dma_len(sg_wa->dma_sg) - sg_wa->sg_used,
 			     dm_wa->length - buf_count);
 		nbytes = min_t(u64, sg_wa->bytes_left, nbytes);
 
@@ -336,11 +351,11 @@ static void ccp_prepare_data(struct ccp_data *src, struct ccp_data *dst,
 	 * and destination. The resulting len values will always be <= UINT_MAX
 	 * because the dma length is an unsigned int.
 	 */
-	sg_src_len = sg_dma_len(src->sg_wa.sg) - src->sg_wa.sg_used;
+	sg_src_len = sg_dma_len(src->sg_wa.dma_sg) - src->sg_wa.sg_used;
 	sg_src_len = min_t(u64, src->sg_wa.bytes_left, sg_src_len);
 
 	if (dst) {
-		sg_dst_len = sg_dma_len(dst->sg_wa.sg) - dst->sg_wa.sg_used;
+		sg_dst_len = sg_dma_len(dst->sg_wa.dma_sg) - dst->sg_wa.sg_used;
 		sg_dst_len = min_t(u64, src->sg_wa.bytes_left, sg_dst_len);
 		op_len = min(sg_src_len, sg_dst_len);
 	} else {
@@ -370,7 +385,7 @@ static void ccp_prepare_data(struct ccp_data *src, struct ccp_data *dst,
 		/* Enough data in the sg element, but we need to
 		 * adjust for any previously copied data
 		 */
-		op->src.u.dma.address = sg_dma_address(src->sg_wa.sg);
+		op->src.u.dma.address = sg_dma_address(src->sg_wa.dma_sg);
 		op->src.u.dma.offset = src->sg_wa.sg_used;
 		op->src.u.dma.length = op_len & ~(block_size - 1);
 
@@ -391,7 +406,7 @@ static void ccp_prepare_data(struct ccp_data *src, struct ccp_data *dst,
 			/* Enough room in the sg element, but we need to
 			 * adjust for any previously used area
 			 */
-			op->dst.u.dma.address = sg_dma_address(dst->sg_wa.sg);
+			op->dst.u.dma.address = sg_dma_address(dst->sg_wa.dma_sg);
 			op->dst.u.dma.offset = dst->sg_wa.sg_used;
 			op->dst.u.dma.length = op->src.u.dma.length;
 		}
@@ -2034,7 +2049,7 @@ ccp_run_passthru_cmd(struct ccp_cmd_queue *cmd_q, struct ccp_cmd *cmd)
 	dst.sg_wa.sg_used = 0;
 	for (i = 1; i <= src.sg_wa.dma_count; i++) {
 		if (!dst.sg_wa.sg ||
-		    (dst.sg_wa.sg->length < src.sg_wa.sg->length)) {
+		    (sg_dma_len(dst.sg_wa.sg) < sg_dma_len(src.sg_wa.sg))) {
 			ret = -EINVAL;
 			goto e_dst;
 		}
@@ -2060,8 +2075,8 @@ ccp_run_passthru_cmd(struct ccp_cmd_queue *cmd_q, struct ccp_cmd *cmd)
 			goto e_dst;
 		}
 
-		dst.sg_wa.sg_used += src.sg_wa.sg->length;
-		if (dst.sg_wa.sg_used == dst.sg_wa.sg->length) {
+		dst.sg_wa.sg_used += sg_dma_len(src.sg_wa.sg);
+		if (dst.sg_wa.sg_used == sg_dma_len(dst.sg_wa.sg)) {
 			dst.sg_wa.sg = sg_next(dst.sg_wa.sg);
 			dst.sg_wa.sg_used = 0;
 		}
drivers/crypto/qat/qat_common/qat_uclo.c +7 -2
index e2454d90d949..4f1cd83bf56f 100644
@@ -332,13 +332,18 @@ static int qat_uclo_create_batch_init_list(struct icp_qat_fw_loader_handle
 	}
 	return 0;
 out_err:
+	/* Do not free the list head unless we allocated it. */
+	tail_old = tail_old->next;
+	if (flag) {
+		kfree(*init_tab_base);
+		*init_tab_base = NULL;
+	}
+
 	while (tail_old) {
 		mem_init = tail_old->next;
 		kfree(tail_old);
 		tail_old = mem_init;
 	}
-	if (flag)
-		kfree(*init_tab_base);
 	return -ENOMEM;
 }
 
drivers/edac/edac_device_sysfs.c +1 -0
index 0e7ea3591b78..5e7593753799 100644
@@ -275,6 +275,7 @@ int edac_device_register_sysfs_main_kobj(struct edac_device_ctl_info *edac_dev)
 
 	/* Error exit stack */
 err_kobj_reg:
+	kobject_put(&edac_dev->kobj);
 	module_put(edac_dev->owner);
 
 err_out:
drivers/edac/edac_pci_sysfs.c +1 -1
index 72c9eb9fdffb..53042af7262e 100644
@@ -386,7 +386,7 @@ static int edac_pci_main_kobj_setup(void)
 
 	/* Error unwind statck */
 kobject_init_and_add_fail:
-	kfree(edac_pci_top_main_kobj);
+	kobject_put(edac_pci_top_main_kobj);
 
 kzalloc_fail:
 	module_put(THIS_MODULE);
drivers/gpu/drm/arm/malidp_planes.c +1 -1
index 16b8b310ae5c..7072d738b072 100644
@@ -369,7 +369,7 @@ int malidp_de_planes_init(struct drm_device *drm)
 	const struct malidp_hw_regmap *map = &malidp->dev->map;
 	struct malidp_plane *plane = NULL;
 	enum drm_plane_type plane_type;
-	unsigned long crtcs = 1 << drm->mode_config.num_crtc;
+	unsigned long crtcs = BIT(drm->mode_config.num_crtc);
 	unsigned long flags = DRM_MODE_ROTATE_0 | DRM_MODE_ROTATE_90 | DRM_MODE_ROTATE_180 |
 			      DRM_MODE_ROTATE_270 | DRM_MODE_REFLECT_X | DRM_MODE_REFLECT_Y;
 	u32 *formats;
drivers/gpu/drm/bridge/sil-sii8620.c +1 -1
index 0cb69ee94ac1..b93486892f4a 100644
@@ -167,7 +167,7 @@ static void sii8620_read_buf(struct sii8620 *ctx, u16 addr, u8 *buf, int len)
 
 static u8 sii8620_readb(struct sii8620 *ctx, u16 addr)
 {
-	u8 ret;
+	u8 ret = 0;
 
 	sii8620_read_buf(ctx, addr, &ret, 1);
 	return ret;
drivers/gpu/drm/drm_debugfs.c +4 -4
index c1807d5754b2..454deba13ee5 100644
@@ -250,13 +250,13 @@ static ssize_t connector_write(struct file *file, const char __user *ubuf,
 
 	buf[len] = '\0';
 
-	if (!strcmp(buf, "on"))
+	if (sysfs_streq(buf, "on"))
 		connector->force = DRM_FORCE_ON;
-	else if (!strcmp(buf, "digital"))
+	else if (sysfs_streq(buf, "digital"))
 		connector->force = DRM_FORCE_ON_DIGITAL;
-	else if (!strcmp(buf, "off"))
+	else if (sysfs_streq(buf, "off"))
 		connector->force = DRM_FORCE_OFF;
-	else if (!strcmp(buf, "unspecified"))
+	else if (sysfs_streq(buf, "unspecified"))
 		connector->force = DRM_FORCE_UNSPECIFIED;
 	else
 		return -EINVAL;
drivers/gpu/drm/drm_mipi_dsi.c +3 -3
index 4b47226b90d4..6f0de951b75d 100644
@@ -1029,11 +1029,11 @@ EXPORT_SYMBOL(mipi_dsi_dcs_set_pixel_format);
  */
 int mipi_dsi_dcs_set_tear_scanline(struct mipi_dsi_device *dsi, u16 scanline)
 {
-	u8 payload[3] = { MIPI_DCS_SET_TEAR_SCANLINE, scanline >> 8,
-			  scanline & 0xff };
+	u8 payload[2] = { scanline >> 8, scanline & 0xff };
 	ssize_t err;
 
-	err = mipi_dsi_generic_write(dsi, payload, sizeof(payload));
+	err = mipi_dsi_dcs_write(dsi, MIPI_DCS_SET_TEAR_SCANLINE, payload,
+				 sizeof(payload));
 	if (err < 0)
 		return err;
 
drivers/gpu/drm/imx/imx-ldb.c +4 -3
index 4f2e6c7e04c1..d38648a7ef2d 100644
@@ -311,18 +311,19 @@ static void imx_ldb_encoder_disable(struct drm_encoder *encoder)
 {
 	struct imx_ldb_channel *imx_ldb_ch = enc_to_imx_ldb_ch(encoder);
 	struct imx_ldb *ldb = imx_ldb_ch->ldb;
+	int dual = ldb->ldb_ctrl & LDB_SPLIT_MODE_EN;
 	int mux, ret;
 
 	drm_panel_disable(imx_ldb_ch->panel);
 
-	if (imx_ldb_ch == &ldb->channel[0])
+	if (imx_ldb_ch == &ldb->channel[0] || dual)
 		ldb->ldb_ctrl &= ~LDB_CH0_MODE_EN_MASK;
-	else if (imx_ldb_ch == &ldb->channel[1])
+	if (imx_ldb_ch == &ldb->channel[1] || dual)
 		ldb->ldb_ctrl &= ~LDB_CH1_MODE_EN_MASK;
 
 	regmap_write(ldb->regmap, IOMUXC_GPR2, ldb->ldb_ctrl);
 
-	if (ldb->ldb_ctrl & LDB_SPLIT_MODE_EN) {
+	if (dual) {
 		clk_disable_unprepare(ldb->clk[0]);
 		clk_disable_unprepare(ldb->clk[1]);
 	}
drivers/gpu/drm/imx/imx-tve.c +10 -10
index bc27c2699464..c22c3e6e9b7a 100644
@@ -498,6 +498,13 @@ static int imx_tve_register(struct drm_device *drm, struct imx_tve *tve)
 	return 0;
 }
 
+static void imx_tve_disable_regulator(void *data)
+{
+	struct imx_tve *tve = data;
+
+	regulator_disable(tve->dac_reg);
+}
+
 static bool imx_tve_readable_reg(struct device *dev, unsigned int reg)
 {
 	return (reg % 4 == 0) && (reg <= 0xdc);
@@ -622,6 +629,9 @@ static int imx_tve_bind(struct device *dev, struct device *master, void *data)
 		ret = regulator_enable(tve->dac_reg);
 		if (ret)
 			return ret;
+		ret = devm_add_action_or_reset(dev, imx_tve_disable_regulator, tve);
+		if (ret)
+			return ret;
 	}
 
 	tve->clk = devm_clk_get(dev, "tve");
@@ -668,18 +678,8 @@ static int imx_tve_bind(struct device *dev, struct device *master, void *data)
 	return 0;
 }
 
-static void imx_tve_unbind(struct device *dev, struct device *master,
-	void *data)
-{
-	struct imx_tve *tve = dev_get_drvdata(dev);
-
-	if (!IS_ERR(tve->dac_reg))
-		regulator_disable(tve->dac_reg);
-}
-
 static const struct component_ops imx_tve_ops = {
 	.bind	= imx_tve_bind,
-	.unbind	= imx_tve_unbind,
 };
 
 static int imx_tve_probe(struct platform_device *pdev)
drivers/gpu/drm/nouveau/nouveau_drm.c +6 -2
index d00524a5d7f0..fb6b1d0f7fef 100644
@@ -840,8 +840,10 @@ nouveau_drm_open(struct drm_device *dev, struct drm_file *fpriv)
 
 	/* need to bring up power immediately if opening device */
 	ret = pm_runtime_get_sync(dev->dev);
-	if (ret < 0 && ret != -EACCES)
+	if (ret < 0 && ret != -EACCES) {
+		pm_runtime_put_autosuspend(dev->dev);
 		return ret;
+	}
 
 	get_task_comm(tmpname, current);
 	snprintf(name, sizeof(name), "%s[%d]", tmpname, pid_nr(fpriv->pid));
@@ -930,8 +932,10 @@ nouveau_drm_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
 	long ret;
 
 	ret = pm_runtime_get_sync(dev->dev);
-	if (ret < 0 && ret != -EACCES)
+	if (ret < 0 && ret != -EACCES) {
+		pm_runtime_put_autosuspend(dev->dev);
 		return ret;
+	}
 
 	switch (_IOC_NR(cmd) - DRM_COMMAND_BASE) {
 	case DRM_NOUVEAU_NVIF:
drivers/gpu/drm/nouveau/nouveau_fbcon.c +2 -1
index 2b12d82aac15..9ffb09679cc4 100644
@@ -310,7 +310,7 @@ nouveau_fbcon_create(struct drm_fb_helper *helper,
 	struct nouveau_framebuffer *fb;
 	struct nouveau_channel *chan;
 	struct nouveau_bo *nvbo;
-	struct drm_mode_fb_cmd2 mode_cmd;
+	struct drm_mode_fb_cmd2 mode_cmd = {};
 	int ret;
 
 	mode_cmd.width = sizes->surface_width;
@@ -543,6 +543,7 @@ nouveau_fbcon_init(struct drm_device *dev)
 	drm_fb_helper_fini(&fbcon->helper);
 free:
 	kfree(fbcon);
+	drm->fbcon = NULL;
 	return ret;
 }
 
drivers/gpu/drm/nouveau/nouveau_gem.c +3 -1
index 60ffb70bb908..c6149b5be073 100644
@@ -42,8 +42,10 @@ nouveau_gem_object_del(struct drm_gem_object *gem)
 	int ret;
 
 	ret = pm_runtime_get_sync(dev);
-	if (WARN_ON(ret < 0 && ret != -EACCES))
+	if (WARN_ON(ret < 0 && ret != -EACCES)) {
+		pm_runtime_put_autosuspend(dev);
 		return;
+	}
 
 	if (gem->import_attach)
 		drm_prime_gem_destroy(gem, nvbo->bo.sg);
drivers/gpu/drm/panel/panel-simple.c +1 -1
index c1daed3fe842..6df312ba1826 100644
@@ -1253,7 +1253,7 @@ static const struct drm_display_mode lg_lb070wv8_mode = {
 static const struct panel_desc lg_lb070wv8 = {
 	.modes = &lg_lb070wv8_mode,
 	.num_modes = 1,
-	.bpc = 16,
+	.bpc = 8,
 	.size = {
 		.width = 151,
 		.height = 91,
drivers/gpu/drm/radeon/ci_dpm.c +1 -1
index 6e607cc7b6e5..81bc2b89222f 100644
@@ -4342,7 +4342,7 @@ static int ci_set_mc_special_registers(struct radeon_device *rdev,
 					table->mc_reg_table_entry[k].mc_data[j] |= 0x100;
 			}
 			j++;
-			if (j > SMU7_DISCRETE_MC_REGISTER_ARRAY_SIZE)
+			if (j >= SMU7_DISCRETE_MC_REGISTER_ARRAY_SIZE)
 				return -EINVAL;
 
 			if (!pi->mem_gddr5) {
drivers/gpu/drm/radeon/radeon_display.c +3 -1
index d86110cdf085..b2334349799d 100644
@@ -627,8 +627,10 @@ radeon_crtc_set_config(struct drm_mode_set *set,
 	dev = set->crtc->dev;
 
 	ret = pm_runtime_get_sync(dev->dev);
-	if (ret < 0)
+	if (ret < 0) {
+		pm_runtime_put_autosuspend(dev->dev);
 		return ret;
+	}
 
 	ret = drm_crtc_helper_set_config(set, ctx);
 
drivers/gpu/drm/radeon/radeon_drv.c +3 -1
index f6908e2f9e55..41e8abd09978 100644
@@ -496,8 +496,10 @@ long radeon_drm_ioctl(struct file *filp,
 	long ret;
 	dev = file_priv->minor->dev;
 	ret = pm_runtime_get_sync(dev->dev);
-	if (ret < 0)
+	if (ret < 0) {
+		pm_runtime_put_autosuspend(dev->dev);
 		return ret;
+	}
 
 	ret = drm_ioctl(filp, cmd, arg);
 	
drivers/gpu/drm/radeon/radeon_kms.c +3 -1
index dfee8f7d94ae..2e28cf811840 100644
@@ -659,8 +659,10 @@ int radeon_driver_open_kms(struct drm_device *dev, struct drm_file *file_priv)
 	file_priv->driver_priv = NULL;
 
 	r = pm_runtime_get_sync(dev->dev);
-	if (r < 0)
+	if (r < 0) {
+		pm_runtime_put_autosuspend(dev->dev);
 		return r;
+	}
 
 	/* new gpu have virtual address space support */
 	if (rdev->family >= CHIP_CAYMAN) {
drivers/gpu/drm/tilcdc/tilcdc_panel.c +5 -1
index 1813a3623ce6..0484b2cf0e2b 100644
@@ -152,12 +152,16 @@ static int panel_connector_get_modes(struct drm_connector *connector)
 	int i;
 
 	for (i = 0; i < timings->num_timings; i++) {
-		struct drm_display_mode *mode = drm_mode_create(dev);
+		struct drm_display_mode *mode;
 		struct videomode vm;
 
 		if (videomode_from_timings(timings, &vm, i))
 			break;
 
+		mode = drm_mode_create(dev);
+		if (!mode)
+			break;
+
 		drm_display_mode_from_videomode(&vm, mode);
 
 		mode->type = DRM_MODE_TYPE_DRIVER;
drivers/gpu/drm/vmwgfx/vmwgfx_kms.c +4 -4
index 11f1c30ead54..848c9d009be2 100644
@@ -2707,7 +2707,7 @@ int vmw_kms_fbdev_init_data(struct vmw_private *dev_priv,
 		++i;
 	}
 
-	if (i != unit) {
+	if (&con->head == &dev_priv->dev->mode_config.connector_list) {
 		DRM_ERROR("Could not find initial display unit.\n");
 		return -EINVAL;
 	}
@@ -2729,13 +2729,13 @@ int vmw_kms_fbdev_init_data(struct vmw_private *dev_priv,
 			break;
 	}
 
-	if (mode->type & DRM_MODE_TYPE_PREFERRED)
-		*p_mode = mode;
-	else {
+	if (&mode->head == &con->modes) {
 		WARN_ONCE(true, "Could not find initial preferred mode.\n");
 		*p_mode = list_first_entry(&con->modes,
 					   struct drm_display_mode,
 					   head);
+	} else {
+		*p_mode = mode;
 	}
 
 	return 0;
drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c +2 -3
index 3824595fece1..39f4ad0dab8d 100644
@@ -79,7 +79,7 @@ static int vmw_ldu_commit_list(struct vmw_private *dev_priv)
 	struct vmw_legacy_display_unit *entry;
 	struct drm_framebuffer *fb = NULL;
 	struct drm_crtc *crtc = NULL;
-	int i = 0;
+	int i;
 
 	/* If there is no display topology the host just assumes
 	 * that the guest will set the same layout as the host.
@@ -90,12 +90,11 @@ static int vmw_ldu_commit_list(struct vmw_private *dev_priv)
 			crtc = &entry->base.crtc;
 			w = max(w, crtc->x + crtc->mode.hdisplay);
 			h = max(h, crtc->y + crtc->mode.vdisplay);
-			i++;
 		}
 
 		if (crtc == NULL)
 			return 0;
-		fb = entry->base.crtc.primary->state->fb;
+		fb = crtc->primary->state->fb;
 
 		return vmw_kms_write_svga(dev_priv, w, h, fb->pitches[0],
 					  fb->format->cpp[0] * 8,
drivers/gpu/host1x/debug.c +4 -0
index 2aae0e63214c..0b8c23c399c2 100644
@@ -25,6 +25,8 @@
 #include "debug.h"
 #include "channel.h"
 
+static DEFINE_MUTEX(debug_lock);
+
 unsigned int host1x_debug_trace_cmdbuf;
 
 static pid_t host1x_debug_force_timeout_pid;
@@ -49,12 +51,14 @@ static int show_channel(struct host1x_channel *ch, void *data, bool show_fifo)
 	struct output *o = data;
 
 	mutex_lock(&ch->cdma.lock);
+	mutex_lock(&debug_lock);
 
 	if (show_fifo)
 		host1x_hw_show_channel_fifo(m, ch, o);
 
 	host1x_hw_show_channel_cdma(m, ch, o);
 
+	mutex_unlock(&debug_lock);
 	mutex_unlock(&ch->cdma.lock);
 
 	return 0;
drivers/gpu/ipu-v3/ipu-image-convert.c +20 -38

88 lines not on this page · raw message

drivers/hid/hid-input.c +3 -3
index 14e4003fde4d..204ccf674533 100644
@@ -362,13 +362,13 @@ static int hidinput_query_battery_capacity(struct hid_device *dev)
 	u8 *buf;
 	int ret;
 
-	buf = kmalloc(2, GFP_KERNEL);
+	buf = kmalloc(4, GFP_KERNEL);
 	if (!buf)
 		return -ENOMEM;
 
-	ret = hid_hw_raw_request(dev, dev->battery_report_id, buf, 2,
+	ret = hid_hw_raw_request(dev, dev->battery_report_id, buf, 4,
 				 dev->battery_report_type, HID_REQ_GET_REPORT);
-	if (ret != 2) {
+	if (ret < 2) {
 		kfree(buf);
 		return -ENODATA;
 	}
drivers/hv/channel_mgmt.c +7 -14
index 43eaf54736f4..462f7f363faa 100644
@@ -1228,6 +1228,8 @@ channel_message_table[CHANNELMSG_COUNT] = {
 	{ CHANNELMSG_19,			0, NULL },
 	{ CHANNELMSG_20,			0, NULL },
 	{ CHANNELMSG_TL_CONNECT_REQUEST,	0, NULL },
+	{ CHANNELMSG_22,			0, NULL },
+	{ CHANNELMSG_TL_CONNECT_RESULT,		0, NULL },
 };
 
 /*
@@ -1239,23 +1241,14 @@ void vmbus_onmessage(void *context)
 {
 	struct hv_message *msg = context;
 	struct vmbus_channel_message_header *hdr;
-	int size;
 
 	hdr = (struct vmbus_channel_message_header *)msg->u.payload;
-	size = msg->header.payload_size;
 
-	if (hdr->msgtype >= CHANNELMSG_COUNT) {
-		pr_err("Received invalid channel message type %d size %d\n",
-			   hdr->msgtype, size);
-		print_hex_dump_bytes("", DUMP_PREFIX_NONE,
-				     (unsigned char *)msg->u.payload, size);
-		return;
-	}
-
-	if (channel_message_table[hdr->msgtype].message_handler)
-		channel_message_table[hdr->msgtype].message_handler(hdr);
-	else
-		pr_err("Unhandled channel message type %d\n", hdr->msgtype);
+	/*
+	 * vmbus_on_msg_dpc() makes sure the hdr->msgtype here can not go
+	 * out of bound and the message_handler pointer can not be NULL.
+	 */
+	channel_message_table[hdr->msgtype].message_handler(hdr);
 }
 
 /*
drivers/hv/vmbus_drv.c +4 -0
index 1fd812ed679b..45b8ccdfb085 100644
@@ -890,6 +890,10 @@ void vmbus_on_msg_dpc(unsigned long data)
 	}
 
 	entry = &channel_message_table[hdr->msgtype];
+
+	if (!entry->message_handler)
+		goto msg_handled;
+
 	if (entry->handler_type	== VMHT_BLOCKING) {
 		ctx = kmalloc(sizeof(*ctx), GFP_ATOMIC);
 		if (ctx == NULL)
drivers/hwtracing/coresight/coresight-tmc-etf.c +6 -7
index 0a00f4e941fb..9bddbfbfbe03 100644
@@ -587,15 +587,14 @@ int tmc_read_unprepare_etb(struct tmc_drvdata *drvdata)
 
 	spin_lock_irqsave(&drvdata->spinlock, flags);
 
-	/* There is no point in reading a TMC in HW FIFO mode */
-	mode = readl_relaxed(drvdata->base + TMC_MODE);
-	if (mode != TMC_MODE_CIRCULAR_BUFFER) {
-		spin_unlock_irqrestore(&drvdata->spinlock, flags);
-		return -EINVAL;
-	}
-
 	/* Re-enable the TMC if need be */
 	if (drvdata->mode == CS_MODE_SYSFS) {
+		/* There is no point in reading a TMC in HW FIFO mode */
+		mode = readl_relaxed(drvdata->base + TMC_MODE);
+		if (mode != TMC_MODE_CIRCULAR_BUFFER) {
+			spin_unlock_irqrestore(&drvdata->spinlock, flags);
+			return -EINVAL;
+		}
 		/*
 		 * The trace run will continue with the same allocated trace
 		 * buffer. As such zero-out the buffer so that we don't end
drivers/i2c/busses/i2c-rcar.c +9 -6
index db9ca8e926ca..ed0f06810978 100644
@@ -538,13 +538,14 @@ static bool rcar_i2c_slave_irq(struct rcar_i2c_priv *priv)
 			rcar_i2c_write(priv, ICSIER, SDR | SSR | SAR);
 		}
 
-		rcar_i2c_write(priv, ICSSR, ~SAR & 0xff);
+		/* Clear SSR, too, because of old STOPs to other clients than us */
+		rcar_i2c_write(priv, ICSSR, ~(SAR | SSR) & 0xff);
 	}
 
 	/* master sent stop */
 	if (ssr_filtered & SSR) {
 		i2c_slave_event(priv->slave, I2C_SLAVE_STOP, &value);
-		rcar_i2c_write(priv, ICSIER, SAR | SSR);
+		rcar_i2c_write(priv, ICSIER, SAR);
 		rcar_i2c_write(priv, ICSSR, ~SSR & 0xff);
 	}
 
@@ -802,7 +803,7 @@ static int rcar_reg_slave(struct i2c_client *slave)
 	priv->slave = slave;
 	rcar_i2c_write(priv, ICSAR, slave->addr);
 	rcar_i2c_write(priv, ICSSR, 0);
-	rcar_i2c_write(priv, ICSIER, SAR | SSR);
+	rcar_i2c_write(priv, ICSIER, SAR);
 	rcar_i2c_write(priv, ICSCR, SIE | SDBS);
 
 	return 0;
@@ -814,12 +815,14 @@ static int rcar_unreg_slave(struct i2c_client *slave)
 
 	WARN_ON(!priv->slave);
 
-	/* disable irqs and ensure none is running before clearing ptr */
+	/* ensure no irq is running before clearing ptr */
+	disable_irq(priv->irq);
 	rcar_i2c_write(priv, ICSIER, 0);
-	rcar_i2c_write(priv, ICSCR, 0);
+	rcar_i2c_write(priv, ICSSR, 0);
+	enable_irq(priv->irq);
+	rcar_i2c_write(priv, ICSCR, SDBS);
 	rcar_i2c_write(priv, ICSAR, 0); /* Gen2: must be 0 if not using slave */
 
-	synchronize_irq(priv->irq);
 	priv->slave = NULL;
 
 	pm_runtime_put(rcar_i2c_priv_to_dev(priv));
drivers/i2c/i2c-core-slave.c +4 -3
index 4a78c65e9971..d89bc31e0622 100644
@@ -22,10 +22,8 @@ int i2c_slave_register(struct i2c_client *client, i2c_slave_cb_t slave_cb)
 {
 	int ret;
 
-	if (!client || !slave_cb) {
-		WARN(1, "insufficient data\n");
+	if (WARN(IS_ERR_OR_NULL(client) || !slave_cb, "insufficient data\n"))
 		return -EINVAL;
-	}
 
 	if (!(client->flags & I2C_CLIENT_SLAVE))
 		dev_warn(&client->dev, "%s: client slave flag not set. You might see address collisions\n",
@@ -64,6 +62,9 @@ int i2c_slave_unregister(struct i2c_client *client)
 {
 	int ret;
 
+	if (IS_ERR_OR_NULL(client))
+		return -EINVAL;
+
 	if (!client->adapter->algo->unreg_slave) {
 		dev_err(&client->dev, "%s: not supported by adapter\n", __func__);
 		return -EOPNOTSUPP;
drivers/iio/dac/ad5592r-base.c +2 -2
index 69bde5909854..5c998ac8c840 100644
@@ -417,7 +417,7 @@ static int ad5592r_read_raw(struct iio_dev *iio_dev,
 			s64 tmp = *val * (3767897513LL / 25LL);
 			*val = div_s64_rem(tmp, 1000000000LL, val2);
 
-			ret = IIO_VAL_INT_PLUS_MICRO;
+			return IIO_VAL_INT_PLUS_MICRO;
 		} else {
 			int mult;
 
@@ -448,7 +448,7 @@ static int ad5592r_read_raw(struct iio_dev *iio_dev,
 		ret =  IIO_VAL_INT;
 		break;
 	default:
-		ret = -EINVAL;
+		return -EINVAL;
 	}
 
 unlock:
drivers/infiniband/ulp/ipoib/ipoib.h +1 -1
index 4a5c7a07a631..268e23ba4a63 100644
@@ -509,7 +509,7 @@ void ipoib_ib_dev_cleanup(struct net_device *dev);
 
 int ipoib_ib_dev_open_default(struct net_device *dev);
 int ipoib_ib_dev_open(struct net_device *dev);
-int ipoib_ib_dev_stop(struct net_device *dev);
+void ipoib_ib_dev_stop(struct net_device *dev);
 void ipoib_ib_dev_up(struct net_device *dev);
 void ipoib_ib_dev_down(struct net_device *dev);
 int ipoib_ib_dev_stop_default(struct net_device *dev);
drivers/infiniband/ulp/ipoib/ipoib_ib.c +1 -3
index d77e8e2ae05f..8e1f48fe6f2e 100644
@@ -809,7 +809,7 @@ int ipoib_ib_dev_stop_default(struct net_device *dev)
 	return 0;
 }
 
-int ipoib_ib_dev_stop(struct net_device *dev)
+void ipoib_ib_dev_stop(struct net_device *dev)
 {
 	struct ipoib_dev_priv *priv = ipoib_priv(dev);
 
@@ -817,8 +817,6 @@ int ipoib_ib_dev_stop(struct net_device *dev)
 
 	clear_bit(IPOIB_FLAG_INITIALIZED, &priv->flags);
 	ipoib_flush_ah(dev);
-
-	return 0;
 }
 
 void ipoib_ib_tx_timer_func(unsigned long ctx)
drivers/input/mouse/sentelic.c +1 -1
index 11c32ac8234b..779d0b9341c0 100644
@@ -454,7 +454,7 @@ static ssize_t fsp_attr_set_setreg(struct psmouse *psmouse, void *data,
 
 	fsp_reg_write_enable(psmouse, false);
 
-	return count;
+	return retval;
 }
 
 PSMOUSE_DEFINE_WO_ATTR(setreg, S_IWUSR, NULL, fsp_attr_set_setreg);
drivers/iommu/intel_irq_remapping.c +8 -0
index 154949a499c2..7cc5b04e30b7 100644
@@ -601,13 +601,21 @@ static int intel_setup_irq_remapping(struct intel_iommu *iommu)
 
 static void intel_teardown_irq_remapping(struct intel_iommu *iommu)
 {
+	struct fwnode_handle *fn;
+
 	if (iommu && iommu->ir_table) {
 		if (iommu->ir_msi_domain) {
+			fn = iommu->ir_msi_domain->fwnode;
+
 			irq_domain_remove(iommu->ir_msi_domain);
+			irq_domain_free_fwnode(fn);
 			iommu->ir_msi_domain = NULL;
 		}
 		if (iommu->ir_domain) {
+			fn = iommu->ir_domain->fwnode;
+
 			irq_domain_remove(iommu->ir_domain);
+			irq_domain_free_fwnode(fn);
 			iommu->ir_domain = NULL;
 		}
 		free_pages((unsigned long)iommu->ir_table->base,
drivers/iommu/omap-iommu-debug.c +3 -0
index 505548aafeff..cec33e90e399 100644
@@ -101,8 +101,11 @@ static ssize_t debug_read_regs(struct file *file, char __user *userbuf,
 	mutex_lock(&iommu_debug_lock);
 
 	bytes = omap_iommu_dump_ctx(obj, p, count);
+	if (bytes < 0)
+		goto err;
 	bytes = simple_read_from_buffer(userbuf, count, ppos, buf, bytes);
 
+err:
 	mutex_unlock(&iommu_debug_lock);
 	kfree(buf);
 
drivers/irqchip/irq-gic-v3-its.c +4 -1
index 84b23d902d5b..1d2267c6d31a 100644
@@ -2199,6 +2199,7 @@ static int its_irq_domain_alloc(struct irq_domain *domain, unsigned int virq,
 {
 	msi_alloc_info_t *info = args;
 	struct its_device *its_dev = info->scratchpad[0].ptr;
+	struct irq_data *irqd;
 	irq_hw_number_t hwirq;
 	int err;
 	int i;
@@ -2214,7 +2215,9 @@ static int its_irq_domain_alloc(struct irq_domain *domain, unsigned int virq,
 
 		irq_domain_set_hwirq_and_chip(domain, virq + i,
 					      hwirq + i, &its_irq_chip, its_dev);
-		irqd_set_single_target(irq_desc_get_irq_data(irq_to_desc(virq + i)));
+		irqd = irq_get_irq_data(virq + i);
+		irqd_set_single_target(irqd);
+		irqd_set_affinity_on_activate(irqd);
 		pr_debug("ID:%d pID:%d vID:%d\n",
 			 (int)(hwirq + i - its_dev->event_map.lpi_base),
 			 (int)(hwirq + i), virq + i);
drivers/irqchip/irq-mtk-sysirq.c +4 -4
index 90aaf190157f..42455f31b061 100644
@@ -23,7 +23,7 @@
 #include <linux/spinlock.h>
 
 struct mtk_sysirq_chip_data {
-	spinlock_t lock;
+	raw_spinlock_t lock;
 	u32 nr_intpol_bases;
 	void __iomem **intpol_bases;
 	u32 *intpol_words;
@@ -45,7 +45,7 @@ static int mtk_sysirq_set_type(struct irq_data *data, unsigned int type)
 	reg_index = chip_data->which_word[hwirq];
 	offset = hwirq & 0x1f;
 
-	spin_lock_irqsave(&chip_data->lock, flags);
+	raw_spin_lock_irqsave(&chip_data->lock, flags);
 	value = readl_relaxed(base + reg_index * 4);
 	if (type == IRQ_TYPE_LEVEL_LOW || type == IRQ_TYPE_EDGE_FALLING) {
 		if (type == IRQ_TYPE_LEVEL_LOW)
@@ -61,7 +61,7 @@ static int mtk_sysirq_set_type(struct irq_data *data, unsigned int type)
 
 	data = data->parent_data;
 	ret = data->chip->irq_set_type(data, type);
-	spin_unlock_irqrestore(&chip_data->lock, flags);
+	raw_spin_unlock_irqrestore(&chip_data->lock, flags);
 	return ret;
 }
 
@@ -220,7 +220,7 @@ static int __init mtk_sysirq_of_init(struct device_node *node,
 		ret = -ENOMEM;
 		goto out_free_which_word;
 	}
-	spin_lock_init(&chip_data->lock);
+	raw_spin_lock_init(&chip_data->lock);
 
 	return 0;
 
drivers/leds/led-class.c +1 -0
index b0e2d55acbd6..6c7269fcfa77 100644
@@ -173,6 +173,7 @@ void led_classdev_suspend(struct led_classdev *led_cdev)
 {
 	led_cdev->flags |= LED_SUSPENDED;
 	led_set_brightness_nopm(led_cdev, 0);
+	flush_work(&led_cdev->set_brightness_work);
 }
 EXPORT_SYMBOL_GPL(led_classdev_suspend);
 
drivers/leds/leds-88pm860x.c +13 -1
index 77a104d2b124..13f414ff6fd0 100644
@@ -207,21 +207,33 @@ static int pm860x_led_probe(struct platform_device *pdev)
 	data->cdev.brightness_set_blocking = pm860x_led_set;
 	mutex_init(&data->lock);
 
-	ret = devm_led_classdev_register(chip->dev, &data->cdev);
+	ret = led_classdev_register(chip->dev, &data->cdev);
 	if (ret < 0) {
 		dev_err(&pdev->dev, "Failed to register LED: %d\n", ret);
 		return ret;
 	}
 	pm860x_led_set(&data->cdev, 0);
+
+	platform_set_drvdata(pdev, data);
+
 	return 0;
 }
 
+static int pm860x_led_remove(struct platform_device *pdev)
+{
+	struct pm860x_led *data = platform_get_drvdata(pdev);
+
+	led_classdev_unregister(&data->cdev);
+
+	return 0;
+}
 
 static struct platform_driver pm860x_led_driver = {
 	.driver	= {
 		.name	= "88pm860x-led",
 	},
 	.probe	= pm860x_led_probe,
+	.remove	= pm860x_led_remove,
 };
 
 module_platform_driver(pm860x_led_driver);
drivers/leds/leds-da903x.c +13 -1
index 5ff7d72f73aa..ecc265bb69a0 100644
@@ -113,12 +113,23 @@ static int da903x_led_probe(struct platform_device *pdev)
 	led->flags = pdata->flags;
 	led->master = pdev->dev.parent;
 
-	ret = devm_led_classdev_register(led->master, &led->cdev);
+	ret = led_classdev_register(led->master, &led->cdev);
 	if (ret) {
 		dev_err(&pdev->dev, "failed to register LED %d\n", id);
 		return ret;
 	}
 
+	platform_set_drvdata(pdev, led);
+
+	return 0;
+}
+
+static int da903x_led_remove(struct platform_device *pdev)
+{
+	struct da903x_led *led = platform_get_drvdata(pdev);
+
+	led_classdev_unregister(&led->cdev);
+
 	return 0;
 }
 
@@ -127,6 +138,7 @@ static struct platform_driver da903x_led_driver = {
 		.name	= "da903x-led",
 	},
 	.probe		= da903x_led_probe,
+	.remove		= da903x_led_remove,
 };
 
 module_platform_driver(da903x_led_driver);
drivers/leds/leds-lm3533.c +9 -3
index 72224b599ffc..c1e562a4d6ad 100644
@@ -698,7 +698,7 @@ static int lm3533_led_probe(struct platform_device *pdev)
 
 	platform_set_drvdata(pdev, led);
 
-	ret = devm_led_classdev_register(pdev->dev.parent, &led->cdev);
+	ret = led_classdev_register(pdev->dev.parent, &led->cdev);
 	if (ret) {
 		dev_err(&pdev->dev, "failed to register LED %d\n", pdev->id);
 		return ret;
@@ -708,13 +708,18 @@ static int lm3533_led_probe(struct platform_device *pdev)
 
 	ret = lm3533_led_setup(led, pdata);
 	if (ret)
-		return ret;
+		goto err_deregister;
 
 	ret = lm3533_ctrlbank_enable(&led->cb);
 	if (ret)
-		return ret;
+		goto err_deregister;
 
 	return 0;
+
+err_deregister:
+	led_classdev_unregister(&led->cdev);
+
+	return ret;
 }
 
 static int lm3533_led_remove(struct platform_device *pdev)
@@ -724,6 +729,7 @@ static int lm3533_led_remove(struct platform_device *pdev)
 	dev_dbg(&pdev->dev, "%s\n", __func__);
 
 	lm3533_ctrlbank_disable(&led->cb);
+	led_classdev_unregister(&led->cdev);
 
 	return 0;
 }
drivers/leds/leds-lm355x.c +4 -3
index 6cb94f9a2f3f..b9c60dd2b132 100644
@@ -168,18 +168,19 @@ static int lm355x_chip_init(struct lm355x_chip_data *chip)
 	/* input and output pins configuration */
 	switch (chip->type) {
 	case CHIP_LM3554:
-		reg_val = pdata->pin_tx2 | pdata->ntc_pin;
+		reg_val = (u32)pdata->pin_tx2 | (u32)pdata->ntc_pin;
 		ret = regmap_update_bits(chip->regmap, 0xE0, 0x28, reg_val);
 		if (ret < 0)
 			goto out;
-		reg_val = pdata->pass_mode;
+		reg_val = (u32)pdata->pass_mode;
 		ret = regmap_update_bits(chip->regmap, 0xA0, 0x04, reg_val);
 		if (ret < 0)
 			goto out;
 		break;
 
 	case CHIP_LM3556:
-		reg_val = pdata->pin_tx2 | pdata->ntc_pin | pdata->pass_mode;
+		reg_val = (u32)pdata->pin_tx2 | (u32)pdata->ntc_pin |
+		          (u32)pdata->pass_mode;
 		ret = regmap_update_bits(chip->regmap, 0x0A, 0xC4, reg_val);
 		if (ret < 0)
 			goto out;
drivers/leds/leds-wm831x-status.c +13 -1
index be93b20e792a..4f0ba19c3577 100644
@@ -283,12 +283,23 @@ static int wm831x_status_probe(struct platform_device *pdev)
 	drvdata->cdev.blink_set = wm831x_status_blink_set;
 	drvdata->cdev.groups = wm831x_status_groups;
 
-	ret = devm_led_classdev_register(wm831x->dev, &drvdata->cdev);
+	ret = led_classdev_register(wm831x->dev, &drvdata->cdev);
 	if (ret < 0) {
 		dev_err(&pdev->dev, "Failed to register LED: %d\n", ret);
 		return ret;
 	}
 
+	platform_set_drvdata(pdev, drvdata);
+
+	return 0;
+}
+
+static int wm831x_status_remove(struct platform_device *pdev)
+{
+	struct wm831x_status *drvdata = platform_get_drvdata(pdev);
+
+	led_classdev_unregister(&drvdata->cdev);
+
 	return 0;
 }
 
@@ -297,6 +308,7 @@ static struct platform_driver wm831x_status_driver = {
 		   .name = "wm831x-status",
 		   },
 	.probe = wm831x_status_probe,
+	.remove = wm831x_status_remove,
 };
 
 module_platform_driver(wm831x_status_driver);
drivers/md/bcache/bset.c +1 -1
index 1edf9515345e..03fb06c61e1c 100644
@@ -319,7 +319,7 @@ int bch_btree_keys_alloc(struct btree_keys *b, unsigned page_order, gfp_t gfp)
 
 	b->page_order = page_order;
 
-	t->data = (void *) __get_free_pages(gfp, b->page_order);
+	t->data = (void *) __get_free_pages(__GFP_COMP|gfp, b->page_order);
 	if (!t->data)
 		goto err;
 
drivers/md/bcache/btree.c +1 -1
index 66c764491a83..9fca837d0b41 100644
@@ -794,7 +794,7 @@ int bch_btree_cache_alloc(struct cache_set *c)
 	mutex_init(&c->verify_lock);
 
 	c->verify_ondisk = (void *)
-		__get_free_pages(GFP_KERNEL, ilog2(bucket_pages(c)));
+		__get_free_pages(GFP_KERNEL|__GFP_COMP, ilog2(bucket_pages(c)));
 
 	c->verify_data = mca_bucket_alloc(c, &ZERO_KEY, GFP_KERNEL);
 
drivers/md/bcache/journal.c +2 -2
index 6394be5ee9a8..6aafda26903c 100644
@@ -838,8 +838,8 @@ int bch_journal_alloc(struct cache_set *c)
 	j->w[1].c = c;
 
 	if (!(init_fifo(&j->pin, JOURNAL_PIN, GFP_KERNEL)) ||
-	    !(j->w[0].data = (void *) __get_free_pages(GFP_KERNEL, JSET_BITS)) ||
-	    !(j->w[1].data = (void *) __get_free_pages(GFP_KERNEL, JSET_BITS)))
+	    !(j->w[0].data = (void *) __get_free_pages(GFP_KERNEL|__GFP_COMP, JSET_BITS)) ||
+	    !(j->w[1].data = (void *) __get_free_pages(GFP_KERNEL|__GFP_COMP, JSET_BITS)))
 		return -ENOMEM;
 
 	return 0;
drivers/md/bcache/super.c +9 -2
index 690aeb09bbf5..7fcc1ba12bc0 100644
@@ -1468,7 +1468,7 @@ void bch_cache_set_unregister(struct cache_set *c)
 }
 
 #define alloc_bucket_pages(gfp, c)			\
-	((void *) __get_free_pages(__GFP_ZERO|gfp, ilog2(bucket_pages(c))))
+	((void *) __get_free_pages(__GFP_ZERO|__GFP_COMP|gfp, ilog2(bucket_pages(c))))
 
 struct cache_set *bch_cache_set_alloc(struct cache_sb *sb)
 {
@@ -1780,7 +1780,14 @@ static const char *register_cache_set(struct cache *ca)
 	    sysfs_create_link(&c->kobj, &ca->kobj, buf))
 		goto err;
 
-	if (ca->sb.seq > c->sb.seq) {
+	/*
+	 * A special case is both ca->sb.seq and c->sb.seq are 0,
+	 * such condition happens on a new created cache device whose
+	 * super block is never flushed yet. In this case c->sb.version
+	 * and other members should be updated too, otherwise we will
+	 * have a mistaken super block version in cache set.
+	 */
+	if (ca->sb.seq > c->sb.seq || c->sb.seq == 0) {
 		c->sb.version		= ca->sb.version;
 		memcpy(c->sb.set_uuid, ca->sb.set_uuid, 16);
 		c->sb.flags             = ca->sb.flags;
drivers/md/dm-cache-target.c +53 -113

311 lines not on this page · raw message

drivers/md/dm-rq.c +0 -3
index eadfcfd106ff..cac8ec16e603 100644
@@ -95,9 +95,6 @@ static void dm_old_stop_queue(struct request_queue *q)
 
 static void dm_mq_stop_queue(struct request_queue *q)
 {
-	if (blk_mq_queue_stopped(q))
-		return;
-
 	blk_mq_quiesce_queue(q);
 }
 
drivers/md/md-cluster.c +1 -0
index 10057ac85476..035d5ec8e677 100644
@@ -1423,6 +1423,7 @@ static void unlock_all_bitmaps(struct mddev *mddev)
 			}
 		}
 		kfree(cinfo->other_bitmap_lockres);
+		cinfo->other_bitmap_lockres = NULL;
 	}
 }
 
drivers/md/raid5.c +2 -1
index d5c14d56a714..cd055664dce3 100644
@@ -3593,6 +3593,7 @@ static int need_this_block(struct stripe_head *sh, struct stripe_head_state *s,
 	 * is missing/faulty, then we need to read everything we can.
 	 */
 	if (sh->raid_conf->level != 6 &&
+	    sh->raid_conf->rmw_level != PARITY_DISABLE_RMW &&
 	    sh->sector < sh->raid_conf->mddev->recovery_cp)
 		/* reconstruct-write isn't being forced */
 		return 0;
@@ -4829,7 +4830,7 @@ static void handle_stripe(struct stripe_head *sh)
 	 * or to load a block that is being partially written.
 	 */
 	if (s.to_read || s.non_overwrite
-	    || (conf->level == 6 && s.to_write && s.failed)
+	    || (s.to_write && s.failed)
 	    || (s.syncing && (s.uptodate + s.compute < disks))
 	    || s.replacing
 	    || s.expanding)
drivers/media/firewire/firedtv-fw.c +2 -0
index 247f0e7cb5f7..5d634706a7ea 100644
@@ -271,6 +271,8 @@ static int node_probe(struct fw_unit *unit, const struct ieee1394_device_id *id)
 
 	name_len = fw_csr_string(unit->directory, CSR_MODEL,
 				 name, sizeof(name));
+	if (name_len < 0)
+		return name_len;
 	for (i = ARRAY_SIZE(model_names); --i; )
 		if (strlen(model_names[i]) <= name_len &&
 		    strncmp(name, model_names[i], name_len) == 0)
drivers/media/platform/exynos4-is/media-dev.c +3 -0
index b2eb830c0360..f772c9b92d9b 100644
@@ -1258,6 +1258,9 @@ static int fimc_md_get_pinctrl(struct fimc_md *fmd)
 
 	pctl->state_idle = pinctrl_lookup_state(pctl->pinctrl,
 					PINCTRL_STATE_IDLE);
+	if (IS_ERR(pctl->state_idle))
+		return PTR_ERR(pctl->state_idle);
+
 	return 0;
 }
 
drivers/media/platform/omap3isp/isppreview.c +3 -1
index e981eb2330f1..ac005ae4d21b 100644
@@ -2290,7 +2290,7 @@ static int preview_init_entities(struct isp_prev_device *prev)
 	me->ops = &preview_media_ops;
 	ret = media_entity_pads_init(me, PREV_PADS_NUM, pads);
 	if (ret < 0)
-		return ret;
+		goto error_handler_free;
 
 	preview_init_formats(sd, NULL);
 
@@ -2323,6 +2323,8 @@ static int preview_init_entities(struct isp_prev_device *prev)
 	omap3isp_video_cleanup(&prev->video_in);
 error_video_in:
 	media_entity_cleanup(&prev->subdev.entity);
+error_handler_free:
+	v4l2_ctrl_handler_free(&prev->ctrls);
 	return ret;
 }
 
drivers/mfd/arizona-core.c +18 -0
index ad8a5296c50b..9aa33141e7f1 100644
@@ -1528,6 +1528,15 @@ int arizona_dev_init(struct arizona *arizona)
 	arizona_irq_exit(arizona);
 err_pm:
 	pm_runtime_disable(arizona->dev);
+
+	switch (arizona->pdata.clk32k_src) {
+	case ARIZONA_32KZ_MCLK1:
+	case ARIZONA_32KZ_MCLK2:
+		arizona_clk32k_disable(arizona);
+		break;
+	default:
+		break;
+	}
 err_reset:
 	arizona_enable_reset(arizona);
 	regulator_disable(arizona->dcvdd);
@@ -1550,6 +1559,15 @@ int arizona_dev_exit(struct arizona *arizona)
 	regulator_disable(arizona->dcvdd);
 	regulator_put(arizona->dcvdd);
 
+	switch (arizona->pdata.clk32k_src) {
+	case ARIZONA_32KZ_MCLK1:
+	case ARIZONA_32KZ_MCLK2:
+		arizona_clk32k_disable(arizona);
+		break;
+	default:
+		break;
+	}
+
 	mfd_remove_devices(arizona->dev);
 	arizona_free_irq(arizona, ARIZONA_IRQ_UNDERCLOCKED, arizona);
 	arizona_free_irq(arizona, ARIZONA_IRQ_OVERCLOCKED, arizona);
drivers/mfd/dln2.c +4 -0
index 672831d5ee32..97a69cd6f127 100644
@@ -294,7 +294,11 @@ static void dln2_rx(struct urb *urb)
 	len = urb->actual_length - sizeof(struct dln2_header);
 
 	if (handle == DLN2_HANDLE_EVENT) {
+		unsigned long flags;
+
+		spin_lock_irqsave(&dln2->event_cb_lock, flags);
 		dln2_run_event_callbacks(dln2, id, echo, data, len);
+		spin_unlock_irqrestore(&dln2->event_cb_lock, flags);
 	} else {
 		/* URB will be re-submitted in _dln2_transfer (free_rx_slot) */
 		if (dln2_transfer_complete(dln2, urb, handle, echo))
drivers/misc/cxl/sysfs.c +1 -1
index 393a80bdb846..b0285c5d8d38 100644
@@ -606,7 +606,7 @@ static struct afu_config_record *cxl_sysfs_afu_new_cr(struct cxl_afu *afu, int c
 	rc = kobject_init_and_add(&cr->kobj, &afu_config_record_type,
 				  &afu->dev.kobj, "cr%i", cr->cr);
 	if (rc)
-		goto err;
+		goto err1;
 
 	rc = sysfs_create_bin_file(&cr->kobj, &cr->config_attr);
 	if (rc)
drivers/mtd/mtdchar.c +47 -9

86 lines not on this page · raw message

drivers/mtd/nand/qcom_nandc.c +6 -1
index 65d1be2c3049..b57678970033 100644
@@ -435,11 +435,13 @@ struct qcom_nand_host {
  * among different NAND controllers.
  * @ecc_modes - ecc mode for NAND
  * @is_bam - whether NAND controller is using BAM
+ * @is_qpic - whether NAND CTRL is part of qpic IP
  * @dev_cmd_reg_start - NAND_DEV_CMD_* registers starting offset
  */
 struct qcom_nandc_props {
 	u32 ecc_modes;
 	bool is_bam;
+	bool is_qpic;
 	u32 dev_cmd_reg_start;
 };
 
@@ -2508,7 +2510,8 @@ static int qcom_nandc_setup(struct qcom_nand_controller *nandc)
 	u32 nand_ctrl;
 
 	/* kill onenand */
-	nandc_write(nandc, SFLASHC_BURST_CFG, 0);
+	if (!nandc->props->is_qpic)
+		nandc_write(nandc, SFLASHC_BURST_CFG, 0);
 	nandc_write(nandc, dev_cmd_reg_addr(nandc, NAND_DEV_CMD_VLD),
 		    NAND_DEV_CMD_VLD_VAL);
 
@@ -2779,12 +2782,14 @@ static const struct qcom_nandc_props ipq806x_nandc_props = {
 static const struct qcom_nandc_props ipq4019_nandc_props = {
 	.ecc_modes = (ECC_BCH_4BIT | ECC_BCH_8BIT),
 	.is_bam = true,
+	.is_qpic = true,
 	.dev_cmd_reg_start = 0x0,
 };
 
 static const struct qcom_nandc_props ipq8074_nandc_props = {
 	.ecc_modes = (ECC_BCH_4BIT | ECC_BCH_8BIT),
 	.is_bam = true,
+	.is_qpic = true,
 	.dev_cmd_reg_start = 0x7000,
 };
 
drivers/net/dsa/mv88e6xxx/chip.c +0 -1
index 10ea01459a36..f4268f032266 100644
@@ -2450,7 +2450,6 @@ static const struct mv88e6xxx_ops mv88e6097_ops = {
 	.port_set_frame_mode = mv88e6351_port_set_frame_mode,
 	.port_set_egress_floods = mv88e6352_port_set_egress_floods,
 	.port_set_ether_type = mv88e6351_port_set_ether_type,
-	.port_set_jumbo_size = mv88e6165_port_set_jumbo_size,
 	.port_egress_rate_limiting = mv88e6095_port_egress_rate_limiting,
 	.port_pause_limit = mv88e6097_port_pause_limit,
 	.port_disable_learn_limit = mv88e6xxx_port_disable_learn_limit,
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c +1 -1
index b83ee74d2839..77e5c6926814 100644
@@ -746,7 +746,7 @@ static int hw_atl_a0_hw_multicast_list_set(struct aq_hw_s *self,
 	int err = 0;
 
 	if (count > (HW_ATL_A0_MAC_MAX - HW_ATL_A0_MAC_MIN)) {
-		err = EBADRQC;
+		err = -EBADRQC;
 		goto err_exit;
 	}
 	for (self->aq_nic_cfg->mc_list_count = 0U;
drivers/net/ethernet/cavium/liquidio/cn23xx_pf_device.c +1 -1
index 2e089b5ff8f3..30f0e54f658e 100644
@@ -1167,7 +1167,7 @@ static int cn23xx_get_pf_num(struct octeon_device *oct)
 		oct->pf_num = ((fdl_bit >> CN23XX_PCIE_SRIOV_FDL_BIT_POS) &
 			       CN23XX_PCIE_SRIOV_FDL_MASK);
 	} else {
-		ret = EINVAL;
+		ret = -EINVAL;
 
 		/* Under some virtual environments, extended PCI regs are
 		 * inaccessible, in which case the above read will have failed.
drivers/net/ethernet/freescale/fman/fman.c +1 -2
index 9080d2332d03..cdd48b1cc84a 100644
@@ -1396,8 +1396,7 @@ static void enable_time_stamp(struct fman *fman)
 {
 	struct fman_fpm_regs __iomem *fpm_rg = fman->fpm_regs;
 	u16 fm_clk_freq = fman->state->fm_clk_freq;
-	u32 tmp, intgr, ts_freq;
-	u64 frac;
+	u32 tmp, intgr, ts_freq, frac;
 
 	ts_freq = (u32)(1 << fman->state->count1_micro_bit);
 	/* configure timestamp so that bit 8 will count 1 microsecond
drivers/net/ethernet/freescale/fman/fman_dtsec.c +2 -2
index 7af31ddd093f..61238b3af204 100644
@@ -1159,7 +1159,7 @@ int dtsec_del_hash_mac_address(struct fman_mac *dtsec, enet_addr_t *eth_addr)
 		list_for_each(pos,
 			      &dtsec->multicast_addr_hash->lsts[bucket]) {
 			hash_entry = ETH_HASH_ENTRY_OBJ(pos);
-			if (hash_entry->addr == addr) {
+			if (hash_entry && hash_entry->addr == addr) {
 				list_del_init(&hash_entry->node);
 				kfree(hash_entry);
 				break;
@@ -1172,7 +1172,7 @@ int dtsec_del_hash_mac_address(struct fman_mac *dtsec, enet_addr_t *eth_addr)
 		list_for_each(pos,
 			      &dtsec->unicast_addr_hash->lsts[bucket]) {
 			hash_entry = ETH_HASH_ENTRY_OBJ(pos);
-			if (hash_entry->addr == addr) {
+			if (hash_entry && hash_entry->addr == addr) {
 				list_del_init(&hash_entry->node);
 				kfree(hash_entry);
 				break;
drivers/net/ethernet/freescale/fman/fman_mac.h +1 -1
index dd6d0526f6c1..19f327efdaff 100644
@@ -252,7 +252,7 @@ static inline struct eth_hash_t *alloc_hash_table(u16 size)
 	struct eth_hash_t *hash;
 
 	/* Allocate address hash table */
-	hash = kmalloc_array(size, sizeof(struct eth_hash_t *), GFP_KERNEL);
+	hash = kmalloc(sizeof(*hash), GFP_KERNEL);
 	if (!hash)
 		return NULL;
 
drivers/net/ethernet/freescale/fman/fman_memac.c +1 -2
index b33650a897f1..460f9e58e987 100644
@@ -855,7 +855,6 @@ int memac_set_tx_pause_frames(struct fman_mac *memac, u8 priority,
 
 	tmp = ioread32be(&regs->command_config);
 	tmp &= ~CMD_CFG_PFC_MODE;
-	priority = 0;
 
 	iowrite32be(tmp, &regs->command_config);
 
@@ -957,7 +956,7 @@ int memac_del_hash_mac_address(struct fman_mac *memac, enet_addr_t *eth_addr)
 
 	list_for_each(pos, &memac->multicast_addr_hash->lsts[hash]) {
 		hash_entry = ETH_HASH_ENTRY_OBJ(pos);
-		if (hash_entry->addr == addr) {
+		if (hash_entry && hash_entry->addr == addr) {
 			list_del_init(&hash_entry->node);
 			kfree(hash_entry);
 			break;
drivers/net/ethernet/freescale/fman/fman_port.c +8 -1
index 495190764155..ac3d791f5282 100644
@@ -1744,6 +1744,7 @@ static int fman_port_probe(struct platform_device *of_dev)
 	struct fman_port *port;
 	struct fman *fman;
 	struct device_node *fm_node, *port_node;
+	struct platform_device *fm_pdev;
 	struct resource res;
 	struct resource *dev_res;
 	u32 val;
@@ -1768,8 +1769,14 @@ static int fman_port_probe(struct platform_device *of_dev)
 		goto return_err;
 	}
 
-	fman = dev_get_drvdata(&of_find_device_by_node(fm_node)->dev);
+	fm_pdev = of_find_device_by_node(fm_node);
 	of_node_put(fm_node);
+	if (!fm_pdev) {
+		err = -EINVAL;
+		goto return_err;
+	}
+
+	fman = dev_get_drvdata(&fm_pdev->dev);
 	if (!fman) {
 		err = -EINVAL;
 		goto return_err;
drivers/net/ethernet/freescale/fman/fman_tgec.c +1 -1
index e575259d20f4..c8ad9b8a75f8 100644
@@ -585,7 +585,7 @@ int tgec_del_hash_mac_address(struct fman_mac *tgec, enet_addr_t *eth_addr)
 
 	list_for_each(pos, &tgec->multicast_addr_hash->lsts[hash]) {
 		hash_entry = ETH_HASH_ENTRY_OBJ(pos);
-		if (hash_entry->addr == addr) {
+		if (hash_entry && hash_entry->addr == addr) {
 			list_del_init(&hash_entry->node);
 			kfree(hash_entry);
 			break;
drivers/net/ethernet/intel/igb/igb_main.c +9 -0
index 9c7e75b3b6c7..50fa0401c701 100644
@@ -5487,9 +5487,18 @@ static void igb_reset_task(struct work_struct *work)
 	struct igb_adapter *adapter;
 	adapter = container_of(work, struct igb_adapter, reset_task);
 
+	rtnl_lock();
+	/* If we're already down or resetting, just bail */
+	if (test_bit(__IGB_DOWN, &adapter->state) ||
+	    test_bit(__IGB_RESETTING, &adapter->state)) {
+		rtnl_unlock();
+		return;
+	}
+
 	igb_dump(adapter);
 	netdev_err(adapter->netdev, "Reset adapter\n");
 	igb_reinit_locked(adapter);
+	rtnl_unlock();
 }
 
 /**
drivers/net/ethernet/mediatek/mtk_eth_soc.c +2 -0
index 9ba699cbdbc5..a52909db67f6 100644
@@ -2452,6 +2452,8 @@ static int mtk_add_mac(struct mtk_eth *eth, struct device_node *np)
 	eth->netdev[id]->irq = eth->irq[0];
 	eth->netdev[id]->dev.of_node = np;
 
+	eth->netdev[id]->max_mtu = MTK_MAX_RX_LENGTH - MTK_RX_ETH_HLEN;
+
 	return 0;
 
 free_netdev:
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c +1 -1
index e69674d38f16..a3107d133b40 100644
@@ -180,7 +180,7 @@ int mlx5e_attr_get(struct net_device *dev, struct switchdev_attr *attr)
 	struct mlx5_eswitch_rep *rep = rpriv->rep;
 	struct mlx5_eswitch *esw = priv->mdev->priv.eswitch;
 
-	if (esw->mode == SRIOV_NONE)
+	if (esw->mode != SRIOV_OFFLOADS)
 		return -EOPNOTSUPP;
 
 	switch (attr->id) {
drivers/net/ethernet/qualcomm/emac/emac.c +14 -3
index 759543512117..5ab83751a471 100644
@@ -493,13 +493,24 @@ static int emac_clks_phase1_init(struct platform_device *pdev,
 
 	ret = clk_prepare_enable(adpt->clk[EMAC_CLK_CFG_AHB]);
 	if (ret)
-		return ret;
+		goto disable_clk_axi;
 
 	ret = clk_set_rate(adpt->clk[EMAC_CLK_HIGH_SPEED], 19200000);
 	if (ret)
-		return ret;
+		goto disable_clk_cfg_ahb;
+
+	ret = clk_prepare_enable(adpt->clk[EMAC_CLK_HIGH_SPEED]);
+	if (ret)
+		goto disable_clk_cfg_ahb;
 
-	return clk_prepare_enable(adpt->clk[EMAC_CLK_HIGH_SPEED]);
+	return 0;
+
+disable_clk_cfg_ahb:
+	clk_disable_unprepare(adpt->clk[EMAC_CLK_CFG_AHB]);
+disable_clk_axi:
+	clk_disable_unprepare(adpt->clk[EMAC_CLK_AXI]);
+
+	return ret;
 }
 
 /* Enable clocks; needs emac_clks_phase1_init to be called before */
drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c +1 -0
index bcc5d1e16ce2..1924788d28da 100644
@@ -362,6 +362,7 @@ static int ipq806x_gmac_probe(struct platform_device *pdev)
 	plat_dat->has_gmac = true;
 	plat_dat->bsp_priv = gmac;
 	plat_dat->fix_mac_speed = ipq806x_gmac_fix_mac_speed;
+	plat_dat->multicast_filter_bins = 0;
 
 	err = stmmac_dvr_probe(&pdev->dev, plat_dat, &stmmac_res);
 	if (err)
drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c +3 -0
index f76d4a7281af..f07d9d3456a4 100644
@@ -176,6 +176,9 @@ static void dwmac1000_set_filter(struct mac_device_info *hw,
 		value = GMAC_FRAME_FILTER_PR;
 	} else if (dev->flags & IFF_ALLMULTI) {
 		value = GMAC_FRAME_FILTER_PM;	/* pass all multi */
+	} else if (!netdev_mc_empty(dev) && (mcbitslog2 == 0)) {
+		/* Fall back to all multicast if we've no filter */
+		value = GMAC_FRAME_FILTER_PM;
 	} else if (!netdev_mc_empty(dev)) {
 		struct netdev_hw_addr *ha;
 
drivers/net/ethernet/toshiba/spider_net.c +2 -2
index da136b8843dd..a0fed9035f53 100644
@@ -296,8 +296,8 @@ spider_net_free_chain(struct spider_net_card *card,
 		descr = descr->next;
 	} while (descr != chain->ring);
 
-	dma_free_coherent(&card->pdev->dev, chain->num_desc,
-	    chain->hwring, chain->dma_addr);
+	dma_free_coherent(&card->pdev->dev, chain->num_desc * sizeof(struct spider_net_hw_descr),
+			  chain->hwring, chain->dma_addr);
 }
 
 /**
drivers/net/hyperv/netvsc_drv.c +4 -3
index 14451e14d99d..10c3480c2da8 100644
@@ -532,12 +532,13 @@ static int netvsc_start_xmit(struct sk_buff *skb, struct net_device *net)
 	u32 hash;
 	struct hv_page_buffer pb[MAX_PAGE_BUFFER_COUNT];
 
-	/* if VF is present and up then redirect packets
-	 * already called with rcu_read_lock_bh
+	/* If VF is present and up then redirect packets to it.
+	 * Skip the VF if it is marked down or has no carrier.
+	 * If netpoll is in uses, then VF can not be used either.
 	 */
 	vf_netdev = rcu_dereference_bh(net_device_ctx->vf_netdev);
 	if (vf_netdev && netif_running(vf_netdev) &&
-	    !netpoll_tx_running(net))
+	    netif_carrier_ok(vf_netdev) && !netpoll_tx_running(net))
 		return netvsc_vf_xmit(net, vf_netdev, skb);
 
 	/* We will atmost need two pages to describe the rndis
drivers/net/usb/hso.c +4 -1
index 7988c41bff1d..0e3d13e192e3 100644
@@ -2272,12 +2272,14 @@ static int hso_serial_common_create(struct hso_serial *serial, int num_urbs,
 
 	minor = get_free_serial_index();
 	if (minor < 0)
-		goto exit;
+		goto exit2;
 
 	/* register our minor number */
 	serial->parent->dev = tty_port_register_device_attr(&serial->port,
 			tty_drv, minor, &serial->parent->interface->dev,
 			serial->parent, hso_serial_dev_groups);
+	if (IS_ERR(serial->parent->dev))
+		goto exit2;
 	dev = serial->parent->dev;
 
 	/* fill in specific data for later use */
@@ -2323,6 +2325,7 @@ static int hso_serial_common_create(struct hso_serial *serial, int num_urbs,
 	return 0;
 exit:
 	hso_serial_tty_unregister(serial);
+exit2:
 	hso_serial_common_free(serial);
 	return -1;
 }
drivers/net/usb/lan78xx.c +30 -87

153 lines not on this page · raw message

drivers/net/vxlan.c +7 -3
index afdc2c290fd0..82efa5bbf568 100644
@@ -974,6 +974,7 @@ static int vxlan_fdb_dump(struct sk_buff *skb, struct netlink_callback *cb,
 	for (h = 0; h < FDB_HASH_SIZE; ++h) {
 		struct vxlan_fdb *f;
 
+		rcu_read_lock();
 		hlist_for_each_entry_rcu(f, &vxlan->fdb_head[h], hlist) {
 			struct vxlan_rdst *rd;
 
@@ -986,12 +987,15 @@ static int vxlan_fdb_dump(struct sk_buff *skb, struct netlink_callback *cb,
 						     cb->nlh->nlmsg_seq,
 						     RTM_NEWNEIGH,
 						     NLM_F_MULTI, rd);
-				if (err < 0)
+				if (err < 0) {
+					rcu_read_unlock();
 					goto out;
+				}
 skip:
 				*idx += 1;
 			}
 		}
+		rcu_read_unlock();
 	}
 out:
 	return err;
@@ -2218,7 +2222,7 @@ static void vxlan_xmit_one(struct sk_buff *skb, struct net_device *dev,
 			skb_dst_update_pmtu(skb, mtu);
 		}
 
-		tos = ip_tunnel_ecn_encap(RT_TOS(tos), old_iph, skb);
+		tos = ip_tunnel_ecn_encap(tos, old_iph, skb);
 		ttl = ttl ? : ip4_dst_hoplimit(&rt->dst);
 		err = vxlan_build_skb(skb, ndst, sizeof(struct iphdr),
 				      vni, md, flags, udp_sum);
@@ -2259,7 +2263,7 @@ static void vxlan_xmit_one(struct sk_buff *skb, struct net_device *dev,
 			skb_dst_update_pmtu(skb, mtu);
 		}
 
-		tos = ip_tunnel_ecn_encap(RT_TOS(tos), old_iph, skb);
+		tos = ip_tunnel_ecn_encap(tos, old_iph, skb);
 		ttl = ttl ? : ip6_dst_hoplimit(ndst);
 		skb_scrub_packet(skb, xnet);
 		err = vxlan_build_skb(skb, ndst, sizeof(struct ipv6hdr),
drivers/net/wan/lapbether.c +9 -1
index ac34257e9f20..c94dfa70f2a3 100644
@@ -160,6 +160,12 @@ static netdev_tx_t lapbeth_xmit(struct sk_buff *skb,
 	if (!netif_running(dev))
 		goto drop;
 
+	/* There should be a pseudo header of 1 byte added by upper layers.
+	 * Check to make sure it is there before reading it.
+	 */
+	if (skb->len < 1)
+		goto drop;
+
 	switch (skb->data[0]) {
 	case X25_IFACE_DATA:
 		break;
@@ -308,6 +314,7 @@ static void lapbeth_setup(struct net_device *dev)
 	dev->netdev_ops	     = &lapbeth_netdev_ops;
 	dev->needs_free_netdev = true;
 	dev->type            = ARPHRD_X25;
+	dev->hard_header_len = 0;
 	dev->mtu             = 1000;
 	dev->addr_len        = 0;
 }
@@ -334,7 +341,8 @@ static int lapbeth_new_device(struct net_device *dev)
 	 * then this driver prepends a length field of 2 bytes,
 	 * then the underlying Ethernet device prepends its own header.
 	 */
-	ndev->hard_header_len = -1 + 3 + 2 + dev->hard_header_len;
+	ndev->needed_headroom = -1 + 3 + 2 + dev->hard_header_len
+					   + dev->needed_headroom;
 
 	lapbeth = netdev_priv(ndev);
 	lapbeth->axdev = ndev;
drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil_types.h +1 -1
index e0d22fedb2b4..05bd636011ec 100644
@@ -30,7 +30,7 @@
 #define BRCMF_ARP_OL_PEER_AUTO_REPLY	0x00000008
 
 #define	BRCMF_BSS_INFO_VERSION	109 /* curr ver of brcmf_bss_info_le struct */
-#define BRCMF_BSS_RSSI_ON_CHANNEL	0x0002
+#define BRCMF_BSS_RSSI_ON_CHANNEL	0x0004
 
 #define BRCMF_STA_WME              0x00000002      /* WMM association */
 #define BRCMF_STA_AUTHE            0x00000008      /* Authenticated */
drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c +4 -0
index 2370060ef980..080733128489 100644
@@ -653,6 +653,7 @@ static inline int brcmf_fws_hanger_poppkt(struct brcmf_fws_hanger *h,
 static void brcmf_fws_psq_flush(struct brcmf_fws_info *fws, struct pktq *q,
 				int ifidx)
 {
+	struct brcmf_fws_hanger_item *hi;
 	bool (*matchfn)(struct sk_buff *, void *) = NULL;
 	struct sk_buff *skb;
 	int prec;
@@ -664,6 +665,9 @@ static void brcmf_fws_psq_flush(struct brcmf_fws_info *fws, struct pktq *q,
 		skb = brcmu_pktq_pdeq_match(q, prec, matchfn, &ifidx);
 		while (skb) {
 			hslot = brcmf_skb_htod_tag_get_field(skb, HSLOT);
+			hi = &fws->hanger.items[hslot];
+			WARN_ON(skb != hi->pkt);
+			hi->state = BRCMF_FWS_HANGER_ITEM_STATE_FREE;
 			brcmf_fws_hanger_poppkt(&fws->hanger, hslot, &skb,
 						true);
 			brcmu_pkt_buf_free_skb(skb);
drivers/net/wireless/intel/iwlegacy/common.c +2 -2
index 6e6b124f0d5e..3ca84577803c 100644
@@ -4302,8 +4302,8 @@ il_apm_init(struct il_priv *il)
 	 *    power savings, even without L1.
 	 */
 	if (il->cfg->set_l0s) {
-		pcie_capability_read_word(il->pci_dev, PCI_EXP_LNKCTL, &lctl);
-		if (lctl & PCI_EXP_LNKCTL_ASPM_L1) {
+		ret = pcie_capability_read_word(il->pci_dev, PCI_EXP_LNKCTL, &lctl);
+		if (!ret && (lctl & PCI_EXP_LNKCTL_ASPM_L1)) {
 			/* L1-ASPM enabled; disable(!) L0S  */
 			il_set_bit(il, CSR_GIO_REG,
 				   CSR_GIO_REG_VAL_L0S_ENABLED);
drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c +15 -7
index 0fba5b10ef2d..19ce279df24d 100644
@@ -585,6 +585,11 @@ static int mwifiex_ret_802_11_key_material_v1(struct mwifiex_private *priv,
 {
 	struct host_cmd_ds_802_11_key_material *key =
 						&resp->params.key_material;
+	int len;
+
+	len = le16_to_cpu(key->key_param_set.key_len);
+	if (len > sizeof(key->key_param_set.key))
+		return -EINVAL;
 
 	if (le16_to_cpu(key->action) == HostCmd_ACT_GEN_SET) {
 		if ((le16_to_cpu(key->key_param_set.key_info) & KEY_MCAST)) {
@@ -598,9 +603,8 @@ static int mwifiex_ret_802_11_key_material_v1(struct mwifiex_private *priv,
 
 	memset(priv->aes_key.key_param_set.key, 0,
 	       sizeof(key->key_param_set.key));
-	priv->aes_key.key_param_set.key_len = key->key_param_set.key_len;
-	memcpy(priv->aes_key.key_param_set.key, key->key_param_set.key,
-	       le16_to_cpu(priv->aes_key.key_param_set.key_len));
+	priv->aes_key.key_param_set.key_len = cpu_to_le16(len);
+	memcpy(priv->aes_key.key_param_set.key, key->key_param_set.key, len);
 
 	return 0;
 }
@@ -615,9 +619,14 @@ static int mwifiex_ret_802_11_key_material_v2(struct mwifiex_private *priv,
 					      struct host_cmd_ds_command *resp)
 {
 	struct host_cmd_ds_802_11_key_material_v2 *key_v2;
-	__le16 len;
+	int len;
 
 	key_v2 = &resp->params.key_material_v2;
+
+	len = le16_to_cpu(key_v2->key_param_set.key_params.aes.key_len);
+	if (len > WLAN_KEY_LEN_CCMP)
+		return -EINVAL;
+
 	if (le16_to_cpu(key_v2->action) == HostCmd_ACT_GEN_SET) {
 		if ((le16_to_cpu(key_v2->key_param_set.key_info) & KEY_MCAST)) {
 			mwifiex_dbg(priv->adapter, INFO, "info: key: GTK is set\n");
@@ -633,10 +642,9 @@ static int mwifiex_ret_802_11_key_material_v2(struct mwifiex_private *priv,
 	memset(priv->aes_key_v2.key_param_set.key_params.aes.key, 0,
 	       WLAN_KEY_LEN_CCMP);
 	priv->aes_key_v2.key_param_set.key_params.aes.key_len =
-				key_v2->key_param_set.key_params.aes.key_len;
-	len = priv->aes_key_v2.key_param_set.key_params.aes.key_len;
+				cpu_to_le16(len);
 	memcpy(priv->aes_key_v2.key_param_set.key_params.aes.key,
-	       key_v2->key_param_set.key_params.aes.key, le16_to_cpu(len));
+	       key_v2->key_param_set.key_params.aes.key, len);
 
 	return 0;
 }
drivers/net/wireless/ti/wl1251/event.c +1 -1
index f5acd24d0e2b..988abb49771f 100644
@@ -84,7 +84,7 @@ static int wl1251_event_ps_report(struct wl1251 *wl,
 		break;
 	}
 
-	return 0;
+	return ret;
 }
 
 static void wl1251_event_mbox_dump(struct event_mailbox *mbox)
drivers/parisc/sba_iommu.c +1 -1
index 5468490d2298..55b3274328eb 100644
@@ -1291,7 +1291,7 @@ sba_ioc_init_pluto(struct parisc_device *sba, struct ioc *ioc, int ioc_num)
 	** (one that doesn't overlap memory or LMMIO space) in the
 	** IBASE and IMASK registers.
 	*/
-	ioc->ibase = READ_REG(ioc->ioc_hpa + IOC_IBASE);
+	ioc->ibase = READ_REG(ioc->ioc_hpa + IOC_IBASE) & ~0x1fffffULL;
 	iova_space_size = ~(READ_REG(ioc->ioc_hpa + IOC_IMASK) & 0xFFFFFFFFUL) + 1;
 
 	if ((ioc->ibase < 0xfed00000UL) && ((ioc->ibase + iova_space_size) > 0xfee00000UL)) {
drivers/pci/access.c +2 -6
index 913d6722ece9..8c585e7ca520 100644
@@ -205,17 +205,13 @@ EXPORT_SYMBOL(pci_bus_set_ops);
 static DECLARE_WAIT_QUEUE_HEAD(pci_cfg_wait);
 
 static noinline void pci_wait_cfg(struct pci_dev *dev)
+	__must_hold(&pci_lock)
 {
-	DECLARE_WAITQUEUE(wait, current);
-
-	__add_wait_queue(&pci_cfg_wait, &wait);
 	do {
-		set_current_state(TASK_UNINTERRUPTIBLE);
 		raw_spin_unlock_irq(&pci_lock);
-		schedule();
+		wait_event(pci_cfg_wait, !dev->block_cfg_access);
 		raw_spin_lock_irq(&pci_lock);
 	} while (dev->block_cfg_access);
-	__remove_wait_queue(&pci_cfg_wait, &wait);
 }
 
 /* Returns 0 on success, negative values indicate error. */
drivers/pci/host/vmd.c +3 -0
index 05f191ae0ff1..79d56638878c 100644
@@ -651,6 +651,7 @@ static int vmd_enable_domain(struct vmd_dev *vmd)
 	if (!vmd->bus) {
 		pci_free_resource_list(&resources);
 		irq_domain_remove(vmd->irq_domain);
+		irq_domain_free_fwnode(fn);
 		return -ENODEV;
 	}
 
@@ -753,6 +754,7 @@ static void vmd_cleanup_srcu(struct vmd_dev *vmd)
 static void vmd_remove(struct pci_dev *dev)
 {
 	struct vmd_dev *vmd = pci_get_drvdata(dev);
+	struct fwnode_handle *fn = vmd->irq_domain->fwnode;
 
 	sysfs_remove_link(&vmd->dev->dev.kobj, "domain");
 	pci_stop_root_bus(vmd->bus);
@@ -761,6 +763,7 @@ static void vmd_remove(struct pci_dev *dev)
 	vmd_teardown_dma_ops(vmd);
 	vmd_detach_resources(vmd);
 	irq_domain_remove(vmd->irq_domain);
+	irq_domain_free_fwnode(fn);
 }
 
 #ifdef CONFIG_PM_SLEEP
drivers/pci/hotplug/acpiphp_glue.c +11 -3
index 711875afdd70..f2c1008e0f76 100644
@@ -136,13 +136,21 @@ static struct acpiphp_context *acpiphp_grab_context(struct acpi_device *adev)
 	struct acpiphp_context *context;
 
 	acpi_lock_hp_context();
+
 	context = acpiphp_get_context(adev);
-	if (!context || context->func.parent->is_going_away) {
-		acpi_unlock_hp_context();
-		return NULL;
+	if (!context)
+		goto unlock;
+
+	if (context->func.parent->is_going_away) {
+		acpiphp_put_context(context);
+		context = NULL;
+		goto unlock;
 	}
+
 	get_bridge(context->func.parent);
 	acpiphp_put_context(context);
+
+unlock:
 	acpi_unlock_hp_context();
 	return context;
 }
drivers/pci/pcie/aspm.c +1 -0
index 04d5c62588b7..f41c105adfbd 100644
@@ -1111,6 +1111,7 @@ static int pcie_aspm_get_policy(char *buffer, struct kernel_param *kp)
 			cnt += sprintf(buffer + cnt, "[%s] ", policy_str[i]);
 		else
 			cnt += sprintf(buffer + cnt, "%s ", policy_str[i]);
+	cnt += sprintf(buffer + cnt, "\n");
 	return cnt;
 }
 
drivers/pci/quirks.c +2 -0
index 243b16ce0c8e..da790f26d295 100644
@@ -4307,6 +4307,8 @@ static int pci_quirk_amd_sb_acs(struct pci_dev *dev, u16 acs_flags)
 	if (ACPI_FAILURE(status))
 		return -ENODEV;
 
+	acpi_put_table(header);
+
 	/* Filter out flags not applicable to multifunction */
 	acs_flags &= (PCI_ACS_RR | PCI_ACS_CR | PCI_ACS_EC | PCI_ACS_DT);
 
drivers/pinctrl/pinctrl-single.c +7 -4
index b8b3d932cd73..f751b5c3bf7e 100644
@@ -888,7 +888,7 @@ static int pcs_parse_pinconf(struct pcs_device *pcs, struct device_node *np,
 
 	/* If pinconf isn't supported, don't parse properties in below. */
 	if (!PCS_HAS_PINCONF)
-		return 0;
+		return -ENOTSUPP;
 
 	/* cacluate how much properties are supported in current node */
 	for (i = 0; i < ARRAY_SIZE(prop2); i++) {
@@ -900,7 +900,7 @@ static int pcs_parse_pinconf(struct pcs_device *pcs, struct device_node *np,
 			nconfs++;
 	}
 	if (!nconfs)
-		return 0;
+		return -ENOTSUPP;
 
 	func->conf = devm_kzalloc(pcs->dev,
 				  sizeof(struct pcs_conf_vals) * nconfs,
@@ -1024,9 +1024,12 @@ static int pcs_parse_one_pinctrl_entry(struct pcs_device *pcs,
 
 	if (PCS_HAS_PINCONF) {
 		res = pcs_parse_pinconf(pcs, np, function, map);
-		if (res)
+		if (res == 0)
+			*num_maps = 2;
+		else if (res == -ENOTSUPP)
+			*num_maps = 1;
+		else
 			goto free_pingroups;
-		*num_maps = 2;
 	} else {
 		*num_maps = 1;
 	}
drivers/platform/x86/intel-hid.c +1 -1
index e34fd70b67af..3add7b3f9658 100644
@@ -366,7 +366,7 @@ check_acpi_dev(acpi_handle handle, u32 lvl, void *context, void **rv)
 		return AE_OK;
 
 	if (acpi_match_device_ids(dev, ids) == 0)
-		if (acpi_create_platform_device(dev, NULL))
+		if (!IS_ERR_OR_NULL(acpi_create_platform_device(dev, NULL)))
 			dev_info(&dev->dev,
 				 "intel-hid: created platform device\n");
 
drivers/platform/x86/intel-vbtn.c +1 -1
index 58c5ff36523a..d7fa2b88d27a 100644
@@ -178,7 +178,7 @@ check_acpi_dev(acpi_handle handle, u32 lvl, void *context, void **rv)
 		return AE_OK;
 
 	if (acpi_match_device_ids(dev, ids) == 0)
-		if (acpi_create_platform_device(dev, NULL))
+		if (!IS_ERR_OR_NULL(acpi_create_platform_device(dev, NULL)))
 			dev_info(&dev->dev,
 				 "intel-vbtn: created platform device\n");
 
drivers/power/supply/88pm860x_battery.c +4 -2
index 63c57dc82ac1..4eda5065b5bb 100644
@@ -436,7 +436,7 @@ static void pm860x_init_battery(struct pm860x_battery_info *info)
 	int ret;
 	int data;
 	int bat_remove;
-	int soc;
+	int soc = 0;
 
 	/* measure enable on GPADC1 */
 	data = MEAS1_GP1;
@@ -499,7 +499,9 @@ static void pm860x_init_battery(struct pm860x_battery_info *info)
 	}
 	mutex_unlock(&info->lock);
 
-	calc_soc(info, OCV_MODE_ACTIVE, &soc);
+	ret = calc_soc(info, OCV_MODE_ACTIVE, &soc);
+	if (ret < 0)
+		goto out;
 
 	data = pm860x_reg_read(info->i2c, PM8607_POWER_UP_LOG);
 	bat_remove = data & BAT_WU_LOG;
drivers/pwm/pwm-bcm-iproc.c +7 -2
index 31b01035d0ab..8cfba3614e60 100644
@@ -85,8 +85,6 @@ static void iproc_pwmc_get_state(struct pwm_chip *chip, struct pwm_device *pwm,
 	u64 tmp, multi, rate;
 	u32 value, prescale;
 
-	rate = clk_get_rate(ip->clk);
-
 	value = readl(ip->base + IPROC_PWM_CTRL_OFFSET);
 
 	if (value & BIT(IPROC_PWM_CTRL_EN_SHIFT(pwm->hwpwm)))
@@ -99,6 +97,13 @@ static void iproc_pwmc_get_state(struct pwm_chip *chip, struct pwm_device *pwm,
 	else
 		state->polarity = PWM_POLARITY_INVERSED;
 
+	rate = clk_get_rate(ip->clk);
+	if (rate == 0) {
+		state->period = 0;
+		state->duty_cycle = 0;
+		return;
+	}
+
 	value = readl(ip->base + IPROC_PWM_PRESCALE_OFFSET);
 	prescale = value >> IPROC_PWM_PRESCALE_SHIFT(pwm->hwpwm);
 	prescale &= IPROC_PWM_PRESCALE_MAX;
drivers/s390/net/qeth_l2_main.c +4 -0
index 6fa07c246915..ae310d5ced10 100644
@@ -1559,6 +1559,10 @@ static void qeth_bridge_state_change(struct qeth_card *card,
 	int extrasize;
 
 	QETH_CARD_TEXT(card, 2, "brstchng");
+	if (qports->num_entries == 0) {
+		QETH_CARD_TEXT(card, 2, "BPempty");
+		return;
+	}
 	if (qports->entry_length != sizeof(struct qeth_sbp_port_entry)) {
 		QETH_CARD_TEXT_(card, 2, "BPsz%04x", qports->entry_length);
 		return;
drivers/scsi/arm/cumana_2.c +1 -1
index edce5f3cfdba..93ba83e3148e 100644
@@ -454,7 +454,7 @@ static int cumanascsi2_probe(struct expansion_card *ec,
 
 	if (info->info.scsi.dma != NO_DMA)
 		free_dma(info->info.scsi.dma);
-	free_irq(ec->irq, host);
+	free_irq(ec->irq, info);
 
  out_release:
 	fas216_release(host);
drivers/scsi/arm/eesox.c +1 -1
index e93e047f4316..65bb34ce93b9 100644
@@ -575,7 +575,7 @@ static int eesoxscsi_probe(struct expansion_card *ec, const struct ecard_id *id)
 
 	if (info->info.scsi.dma != NO_DMA)
 		free_dma(info->info.scsi.dma);
-	free_irq(ec->irq, host);
+	free_irq(ec->irq, info);
 
  out_remove:
 	fas216_remove(host);
drivers/scsi/arm/powertec.c +1 -1
index 79aa88911b7f..b5e4a25ea1ef 100644
@@ -382,7 +382,7 @@ static int powertecscsi_probe(struct expansion_card *ec,
 
 	if (info->info.scsi.dma != NO_DMA)
 		free_dma(info->info.scsi.dma);
-	free_irq(ec->irq, host);
+	free_irq(ec->irq, info);
 
  out_release:
 	fas216_release(host);
drivers/scsi/mesh.c +7 -1
index 1753e42826dd..a880abf5abaa 100644
@@ -1044,6 +1044,8 @@ static void handle_error(struct mesh_state *ms)
 		while ((in_8(&mr->bus_status1) & BS1_RST) != 0)
 			udelay(1);
 		printk("done\n");
+		if (ms->dma_started)
+			halt_dma(ms);
 		handle_reset(ms);
 		/* request_q is empty, no point in mesh_start() */
 		return;
@@ -1356,7 +1358,8 @@ static void halt_dma(struct mesh_state *ms)
 		       ms->conn_tgt, ms->data_ptr, scsi_bufflen(cmd),
 		       ms->tgts[ms->conn_tgt].data_goes_out);
 	}
-	scsi_dma_unmap(cmd);
+	if (cmd)
+		scsi_dma_unmap(cmd);
 	ms->dma_started = 0;
 }
 
@@ -1711,6 +1714,9 @@ static int mesh_host_reset(struct scsi_cmnd *cmd)
 
 	spin_lock_irqsave(ms->host->host_lock, flags);
 
+	if (ms->dma_started)
+		halt_dma(ms);
+
 	/* Reset the controller & dbdma channel */
 	out_le32(&md->control, (RUN|PAUSE|FLUSH|WAKE) << 16);	/* stop dma */
 	out_8(&mr->exception, 0xff);	/* clear all exception bits */
drivers/scsi/scsi_debug.c +6 -0
index ac936b5ca74e..aba1a3396890 100644
@@ -4993,6 +4993,12 @@ static int __init scsi_debug_init(void)
 		pr_err("submit_queues must be 1 or more\n");
 		return -EINVAL;
 	}
+
+	if ((sdebug_max_queue > SDEBUG_CANQUEUE) || (sdebug_max_queue < 1)) {
+		pr_err("max_queue must be in range [1, %d]\n", SDEBUG_CANQUEUE);
+		return -EINVAL;
+	}
+
 	sdebug_q_arr = kcalloc(submit_queues, sizeof(struct sdebug_queue),
 			       GFP_KERNEL);
 	if (sdebug_q_arr == NULL)
drivers/spi/spi-lantiq-ssc.c +10 -0
index d5976615d924..dc740b5f720b 100644
@@ -187,6 +187,7 @@ struct lantiq_ssc_spi {
 	unsigned int			tx_fifo_size;
 	unsigned int			rx_fifo_size;
 	unsigned int			base_cs;
[… more lines in the raw message]

Lines of this file are not shown. View the raw message.

drivers/spi/spidev.c +13 -8
index 167047760d79..e444e7cc6968 100644

Lines of this file are not shown. View the raw message.

drivers/staging/android/ashmem.c +12 -0
index 9481c0b23386..22cae548df49 100644

Lines of this file are not shown. View the raw message.

drivers/staging/rtl8192u/r8192U_core.c +1 -1
index fbbd1b59dc11..b5941ae410d9 100644

Lines of this file are not shown. View the raw message.

drivers/thermal/ti-soc-thermal/ti-thermal-common.c +1 -1
index fa98c398d70f..d43fbe4ad767 100644

Lines of this file are not shown. View the raw message.

drivers/usb/dwc2/platform.c +3 -1
index 442cb93935dd..405dccf92a31 100644

Lines of this file are not shown. View the raw message.

drivers/usb/gadget/udc/bdc/bdc_core.c +11 -2
index 7a8af4b916cf..58ba04d858ba 100644

Lines of this file are not shown. View the raw message.

drivers/usb/gadget/udc/bdc/bdc_ep.c +10 -6
index be9f40bc9c12..bb2d5ebd97b5 100644

Lines of this file are not shown. View the raw message.

drivers/usb/gadget/udc/net2280.c +3 -1
index 170327f84ea1..f1ac9a49e2bf 100644

Lines of this file are not shown. View the raw message.

drivers/usb/host/xhci-pci.c +7 -3
index d4e29039305b..72c3ba0824f7 100644

Lines of this file are not shown. View the raw message.

drivers/usb/misc/iowarrior.c +25 -10
index 1ec32e5aa004..27e1ab9e1b07 100644

Lines of this file are not shown. View the raw message.

drivers/usb/serial/cp210x.c +19 -0
index 8dd9852f399d..630c8338d791 100644

Lines of this file are not shown. View the raw message.

drivers/usb/serial/ftdi_sio.c +18 -19
index a962065227c4..8abb30c797d3 100644

Lines of this file are not shown. View the raw message.

drivers/usb/serial/iuu_phoenix.c +8 -6
index a1a11f8bb2a3..0c9e24b217f7 100644

Lines of this file are not shown. View the raw message.

drivers/usb/serial/qcserial.c +1 -0
index 27b4082f4d19..7662b2eb50d8 100644

Lines of this file are not shown. View the raw message.

drivers/video/console/newport_con.c +10 -2
index 42d02a206059..d3b0850391e0 100644

Lines of this file are not shown. View the raw message.

drivers/video/console/vgacon.c +4 -0
index ff6612a3ddc8..8f061c18e115 100644

Lines of this file are not shown. View the raw message.

drivers/video/fbdev/neofb.c +1 -0
index 5d3a444083f7..2018e1ca33eb 100644

Lines of this file are not shown. View the raw message.

drivers/video/fbdev/omap2/omapfb/dss/dss.c +1 -1
index 48c6500c24e1..4429ad37b64c 100644

Lines of this file are not shown. View the raw message.

drivers/video/fbdev/pxafb.c +2 -2
index 29f00eccdd01..08ee77d5df8b 100644

Lines of this file are not shown. View the raw message.

drivers/video/fbdev/sm712fb.c +2 -0
index f1dcc6766d1e..1781ca697f66 100644

Lines of this file are not shown. View the raw message.

drivers/watchdog/f71808e_wdt.c +10 -3
index 88cd2a52d8d3..ae4974701e5c 100644

Lines of this file are not shown. View the raw message.

drivers/xen/balloon.c +10 -2
index 3f9260af701f..a8e0836dffd4 100644

Lines of this file are not shown. View the raw message.

fs/9p/v9fs.c +2 -3
index c52f10efdc9c..b4dbe7b71151 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/disk-io.c +10 -3
index 096c015b22a4..893066970c68 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/extent_io.c +2 -0
index 6d2bfbb63d9b..ef1fd6a09d8e 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/free-space-cache.c +2 -2
index abeb26d48d0a..57f89708fab1 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/tree-log.c +2 -6
index bcfb7a772c8e..3d30bf90d59e 100644

Lines of this file are not shown. View the raw message.

fs/cifs/smb2pdu.c +2 -0
index 1c87a429ce72..2097b5fd51ba 100644

Lines of this file are not shown. View the raw message.

fs/dlm/lockspace.c +3 -3
index 9c8c9a09b4a6..7a6b0327ceb0 100644

Lines of this file are not shown. View the raw message.

fs/ext2/ialloc.c +2 -1
index a1fc3dabca41..6d5fce776d8e 100644

Lines of this file are not shown. View the raw message.

fs/minix/inode.c +34 -2
index b6829d679643..d49337b5abfa 100644

Lines of this file are not shown. View the raw message.

fs/minix/itree_common.c +7 -1
index 043c3fdbc8e7..446148792f41 100644

Lines of this file are not shown. View the raw message.

fs/nfs/nfs4proc.c +0 -2
index a19bbcfab7c5..4cfb84119e01 100644

Lines of this file are not shown. View the raw message.

fs/nfs/nfs4xdr.c +5 -1
index 0b2d051990e9..3cd04c98da6b 100644

Lines of this file are not shown. View the raw message.

fs/ocfs2/ocfs2.h +2 -2
index 9a50f222ac97..b15537a76516 100644

Lines of this file are not shown. View the raw message.

fs/ocfs2/suballoc.c +2 -2
index 4ca2f71565f9..8d03630dfd59 100644

Lines of this file are not shown. View the raw message.

fs/ocfs2/super.c +2 -2
index 24ab735d91dd..8216550faf45 100644

Lines of this file are not shown. View the raw message.

fs/ufs/super.c +1 -1
index 6440003f8ddc..e3f3a0df6027 100644

Lines of this file are not shown. View the raw message.

fs/xattr.c +77 -7

84 lines not on this page · raw message

fs/xfs/xfs_reflink.c +14 -7
index db7f9fdd20a3..4d37f1b59436 100644

Lines of this file are not shown. View the raw message.

include/linux/bitfield.h +1 -1
index f2deb71958b2..a0675db325e0 100644

Lines of this file are not shown. View the raw message.

include/linux/hyperv.h +2 -0
index 8d3ca6da3342..63cd81e5610d 100644

Lines of this file are not shown. View the raw message.

include/linux/intel-iommu.h +2 -2
index 4def15c32a01..d2364ba99f6c 100644

Lines of this file are not shown. View the raw message.

include/linux/irq.h +12 -0
index 0d53626405bf..c08758a63d26 100644

Lines of this file are not shown. View the raw message.

include/linux/tracepoint.h +1 -1
index a26ffbe09e71..06cb9184a42a 100644

Lines of this file are not shown. View the raw message.

include/linux/xattr.h +2 -0
index d70f77a4b62a..b0945fb7242f 100644

Lines of this file are not shown. View the raw message.

include/net/addrconf.h +1 -0
index f30ee99a1d72..a4cda4768210 100644

Lines of this file are not shown. View the raw message.

include/net/inet_connection_sock.h +4 -0
index 13e4c89a8231..ceab3a5dd530 100644

Lines of this file are not shown. View the raw message.

include/net/ip_vs.h +4 -6
index f4e5ac8aa366..1fb79c78e200 100644

Lines of this file are not shown. View the raw message.

include/net/sock.h +4 -0
index a2e10d0b1280..55d16db84ea4 100644

Lines of this file are not shown. View the raw message.

kernel/cgroup/cgroup.c +2 -0
index a2fed8fbd2bd..ada060e628ce 100644

Lines of this file are not shown. View the raw message.

kernel/irq/manage.c +39 -2

41 lines not on this page · raw message

kernel/kprobes.c +7 -0
index f2d2194b51ca..7b3a5c35904a 100644

Lines of this file are not shown. View the raw message.

kernel/sched/topology.c +1 -1
index 867d173dab48..152ffe0c2433 100644

Lines of this file are not shown. View the raw message.

kernel/trace/ftrace.c +9 -6
index 8a8d92a8045b..7cbfccd2fb03 100644

Lines of this file are not shown. View the raw message.

kernel/trace/trace_events.c +2 -2
index 421166a39253..e72a44ecb81d 100644

Lines of this file are not shown. View the raw message.

kernel/trace/trace_hwlat.c +3 -2
index bff6c033d70e..64a98a5bb641 100644

Lines of this file are not shown. View the raw message.

lib/dynamic_debug.c +11 -12
index c7c96bc7654a..91c451e0f474 100644

Lines of this file are not shown. View the raw message.

lib/test_kmod.c +1 -1
index cf619795a182..c0ce0156d54b 100644

Lines of this file are not shown. View the raw message.

mm/khugepaged.c +13 -9
index acf66c5dc9bd..04b4c38d0c18 100644

Lines of this file are not shown. View the raw message.

mm/mmap.c +1 -0
index 8c6ed06983f9..724b7c4f1a5b 100644

Lines of this file are not shown. View the raw message.

net/9p/trans_fd.c +16 -8
index 32de8afbfbf8..9f020559c192 100644

Lines of this file are not shown. View the raw message.

net/bluetooth/6lowpan.c +5 -0
index 357475cceec6..9a75f9b00b51 100644

Lines of this file are not shown. View the raw message.

net/bluetooth/hci_event.c +9 -2
index 56e4ae7d7f63..70b8e2de40cf 100644

Lines of this file are not shown. View the raw message.

net/compat.c +1 -0
index 790851e70dab..45349658ed01 100644

Lines of this file are not shown. View the raw message.

net/core/sock.c +21 -0
index af1201676abc..3b65fedf77ca 100644

Lines of this file are not shown. View the raw message.

net/ipv4/fib_trie.c +1 -1
index 3f9509679f0e..0c8fcc050ad2 100644

Lines of this file are not shown. View the raw message.

net/ipv4/gre_offload.c +11 -2
index 6a7d980105f6..095c30863745 100644

Lines of this file are not shown. View the raw message.

net/ipv4/inet_connection_sock.c +51 -42

93 lines not on this page · raw message

net/ipv4/inet_hashtables.c +1 -0
index 0af13f5bdc9a..8a54babf5c90 100644

Lines of this file are not shown. View the raw message.

net/ipv6/anycast.c +12 -5
index 0bbab8a4b5d8..4d8b3d1d530b 100644

Lines of this file are not shown. View the raw message.

net/ipv6/ipv6_sockglue.c +1 -0
index c183222967d0..3f44316db51b 100644

Lines of this file are not shown. View the raw message.

net/mac80211/sta_info.c +1 -1
index 77ab9cc1a230..6af5fda6461c 100644

Lines of this file are not shown. View the raw message.

net/netfilter/ipvs/ip_vs_core.c +7 -5
index 2156571455db..a95fe5fe9f04 100644

Lines of this file are not shown. View the raw message.

net/nfc/rawsock.c +5 -2
index e2188deb08dc..b927730d9ab0 100644

Lines of this file are not shown. View the raw message.

net/openvswitch/conntrack.c +20 -18
index 737e37b28d93..a39ef1a048fd 100644

Lines of this file are not shown. View the raw message.

net/packet/af_packet.c +7 -2
index 102750bd751c..c2356611b3cb 100644

Lines of this file are not shown. View the raw message.

net/rxrpc/call_object.c +19 -8
index 7021725fa38a..1c98a026b41a 100644

Lines of this file are not shown. View the raw message.

net/rxrpc/conn_object.c +5 -3
index af0232820597..0e5087b9e07c 100644

Lines of this file are not shown. View the raw message.

net/rxrpc/recvmsg.c +1 -1
index e82e91fe6178..1cdd8b380d47 100644

Lines of this file are not shown. View the raw message.

net/rxrpc/sendmsg.c +3 -0
index f4386ad975cf..8f9a2a7eeb7c 100644

Lines of this file are not shown. View the raw message.

net/socket.c +1 -1
index 6a5ec658fcd8..c74cfe1ee169 100644

Lines of this file are not shown. View the raw message.

net/wireless/nl80211.c +3 -3
index d0b75781e6f7..9be7ee322093 100644

Lines of this file are not shown. View the raw message.

security/smack/smackfs.c +16 -3
index 371ae368da35..accd3846f1e3 100644

Lines of this file are not shown. View the raw message.

sound/core/seq/oss/seq_oss.c +7 -1
index 8cdf489df80e..4b7897959913 100644

Lines of this file are not shown. View the raw message.

sound/pci/echoaudio/echoaudio.c +0 -2
index e1f0bcd45c37..b58a098a7270 100644

Lines of this file are not shown. View the raw message.

sound/soc/intel/boards/bxt_rt298.c +2 -0
index 7843104fadcb..1b01bc318fd2 100644

Lines of this file are not shown. View the raw message.

sound/usb/card.h +1 -0
index ed87cc83eb47..0cde519bfa42 100644

Lines of this file are not shown. View the raw message.

sound/usb/mixer_quirks.c +1 -0
index 5604cce30a58..d7878ed5ecc0 100644

Lines of this file are not shown. View the raw message.

sound/usb/pcm.c +6 -0
index ff38fca1781b..f27213b846e6 100644

Lines of this file are not shown. View the raw message.

sound/usb/quirks-table.h +63 -1

64 lines not on this page · raw message

sound/usb/quirks.c +3 -0
index cd36394e27ae..4f4dc43e56a7 100644

Lines of this file are not shown. View the raw message.

sound/usb/stream.c +1 -0
index d1776e5517ff..452646959586 100644

Lines of this file are not shown. View the raw message.

tools/build/Build.include +2 -1
index d9048f145f97..63bb9752612a 100644

Lines of this file are not shown. View the raw message.

tools/build/Makefile.feature +1 -1
index c71a05b9c984..79427b09590c 100644

Lines of this file are not shown. View the raw message.

tools/build/feature/Makefile +0 -2
index 96982640fbf8..26316749e594 100644

Lines of this file are not shown. View the raw message.

tools/lib/traceevent/event-parse.c +1 -0
index 8211e8010e09..d260ca680f07 100644

Lines of this file are not shown. View the raw message.

tools/perf/bench/mem-functions.c +11 -10
index 0251dd348124..4864fc67d01b 100644

Lines of this file are not shown. View the raw message.

tools/perf/util/intel-pt-decoder/intel-pt-decoder.c +7 -14
index 4357141c7c92..6522b6513895 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/net/msg_zerocopy.c +2 -3
index e11fe84de0fd..6184d2a4c4a6 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/powerpc/benchmarks/context_switch.c +16 -5
index f4241339edd2..7136eae2170b 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/powerpc/utils.c +25 -12
index d46916867a6f..77db4f6ecf2f 100644

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

Part of the diff is not shown here. View the raw message.