Skip to contentSkip to conversation

Linux 5.4.220

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Oct 26, 2022 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 5.4.220 kernel.

All users of the 5.4 kernel series must upgrade.

The updated 5.4.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.4.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                  |    2 
 Makefile                                                 |    2 
 arch/arm/Kconfig                                         |    1 
 arch/arm/boot/dts/armada-385-turris-omnia.dts            |    4 
 arch/arm/boot/dts/exynos4412-midas.dtsi                  |    2 
 arch/arm/boot/dts/exynos4412-origen.dts                  |    2 
 arch/arm/boot/dts/imx6dl.dtsi                            |    3 
 arch/arm/boot/dts/imx6q.dtsi                             |    3 
 arch/arm/boot/dts/imx6qp.dtsi                            |    6 
 arch/arm/boot/dts/imx6sl.dtsi                            |    3 
 arch/arm/boot/dts/imx6sll.dtsi                           |    3 
 arch/arm/boot/dts/imx6sx.dtsi                            |    6 
 arch/arm/boot/dts/imx7d-sdb.dts                          |    7 
 arch/arm/boot/dts/kirkwood-lsxl.dtsi                     |   16 
 arch/arm/mm/mmu.c                                        |    4 
 arch/mips/bcm47xx/prom.c                                 |    4 
 arch/powerpc/Makefile                                    |    2 
 arch/powerpc/boot/Makefile                               |    1 
 arch/powerpc/boot/dts/fsl/e500v1_power_isa.dtsi          |   51 ++
 arch/powerpc/boot/dts/fsl/mpc8540ads.dts                 |    2 
 arch/powerpc/boot/dts/fsl/mpc8541cds.dts                 |    2 
 arch/powerpc/boot/dts/fsl/mpc8555cds.dts                 |    2 
 arch/powerpc/boot/dts/fsl/mpc8560ads.dts                 |    2 
 arch/powerpc/kernel/pci_dn.c                             |    1 
 arch/powerpc/math-emu/math_efp.c                         |    1 
 arch/powerpc/platforms/powernv/opal.c                    |    1 
 arch/powerpc/sysdev/fsl_msi.c                            |    2 
 arch/riscv/Makefile                                      |    2 
 arch/riscv/include/asm/io.h                              |   16 
 arch/riscv/kernel/sys_riscv.c                            |    3 
 arch/sh/include/asm/sections.h                           |    2 
 arch/sh/kernel/machvec.c                                 |   10 
 arch/um/kernel/um_arch.c                                 |    2 
 arch/x86/include/asm/hyperv-tlfs.h                       |    4 
 arch/x86/include/asm/microcode.h                         |    1 
 arch/x86/kernel/cpu/microcode/amd.c                      |    3 
 arch/x86/kernel/cpu/resctrl/pseudo_lock.c                |   12 
 arch/x86/kvm/emulate.c                                   |    2 
 arch/x86/kvm/vmx/nested.c                                |   30 +
 arch/x86/kvm/vmx/vmx.c                                   |   12 
 crypto/akcipher.c                                        |    8 
 drivers/acpi/acpi_video.c                                |   16 
 drivers/ata/libahci_platform.c                           |   14 
 drivers/block/nbd.c                                      |    6 
 drivers/clk/bcm/clk-bcm2835.c                            |    8 
 drivers/clk/berlin/bg2.c                                 |    5 
 drivers/clk/berlin/bg2q.c                                |    6 
 drivers/clk/clk-ast2600.c                                |    2 
 drivers/clk/clk-oxnas.c                                  |    6 
 drivers/clk/mediatek/clk-mt8183-mfgcfg.c                 |    6 
 drivers/clk/meson/meson-aoclk.c                          |    5 
 drivers/clk/meson/meson-eeclk.c                          |    5 
 drivers/clk/meson/meson8b.c                              |    5 
 drivers/clk/tegra/clk-tegra114.c                         |    1 
 drivers/clk/tegra/clk-tegra20.c                          |    1 
 drivers/clk/tegra/clk-tegra210.c                         |    1 
 drivers/clk/ti/clk-dra7-atl.c                            |    9 
 drivers/clk/zynqmp/clkc.c                                |    7 
 drivers/clk/zynqmp/pll.c                                 |   31 -
 drivers/crypto/cavium/cpt/cptpf_main.c                   |    6 
 drivers/crypto/ccp/ccp-dmaengine.c                       |    6 
 drivers/dma/ioat/dma.c                                   |    6 
 drivers/firmware/efi/libstub/fdt.c                       |    8 
 drivers/firmware/google/gsmi.c                           |    9 
 drivers/fsi/fsi-core.c                                   |    3 
 drivers/gpu/drm/Kconfig                                  |    1 
 drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c           |    7 
 drivers/gpu/drm/amd/display/dc/calcs/bw_fixed.c          |    6 
 drivers/gpu/drm/bridge/adv7511/adv7511.h                 |    5 
 drivers/gpu/drm/bridge/adv7511/adv7511_cec.c             |    4 
 drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c |    4 
 drivers/gpu/drm/drm_ioctl.c                              |    8 
 drivers/gpu/drm/drm_mipi_dsi.c                           |    1 
 drivers/gpu/drm/drm_panel_orientation_quirks.c           |    6 
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c                  |   12 
 drivers/gpu/drm/msm/disp/dpu1/dpu_vbif.c                 |   29 -
 drivers/gpu/drm/nouveau/nouveau_bo.c                     |    4 
 drivers/gpu/drm/nouveau/nouveau_prime.c                  |    1 
 drivers/gpu/drm/omapdrm/dss/dss.c                        |    3 
 drivers/gpu/drm/vc4/vc4_vec.c                            |    4 
 drivers/hid/hid-multitouch.c                             |    8 
 drivers/hid/hid-roccat.c                                 |    4 
 drivers/hsi/controllers/omap_ssi_core.c                  |    1 
 drivers/hsi/controllers/omap_ssi_port.c                  |    8 
 drivers/iio/adc/at91-sama5d2_adc.c                       |   14 
 drivers/iio/dac/ad5593r.c                                |   46 +-
 drivers/iio/inkern.c                                     |    6 
 drivers/iio/pressure/dps310.c                            |  262 +++++++++------
 drivers/infiniband/sw/rxe/rxe_qp.c                       |   10 
 drivers/infiniband/sw/siw/siw_qp_rx.c                    |   27 -
 drivers/iommu/omap-iommu-debug.c                         |    6 
 drivers/isdn/mISDN/l1oip.h                               |    1 
 drivers/isdn/mISDN/l1oip_core.c                          |   13 
 drivers/mailbox/bcm-flexrm-mailbox.c                     |    8 
 drivers/md/bcache/writeback.c                            |   73 ++--
 drivers/md/raid0.c                                       |    4 
 drivers/md/raid5.c                                       |   14 
 drivers/media/pci/cx88/cx88-vbi.c                        |    9 
 drivers/media/pci/cx88/cx88-video.c                      |   43 +-
 drivers/media/platform/exynos4-is/fimc-is.c              |    1 
 drivers/media/platform/xilinx/xilinx-vipp.c              |    9 
 drivers/memory/of_memory.c                               |    1 
 drivers/memory/pl353-smc.c                               |    1 
 drivers/mfd/fsl-imx25-tsadc.c                            |   34 +
 drivers/mfd/intel_soc_pmic_core.c                        |    1 
 drivers/mfd/lp8788-irq.c                                 |    3 
 drivers/mfd/lp8788.c                                     |   12 
 drivers/mfd/sm501.c                                      |    7 
 drivers/misc/ocxl/file.c                                 |    2 
 drivers/mmc/host/au1xmmc.c                               |    3 
 drivers/mmc/host/sdhci-msm.c                             |    1 
 drivers/mmc/host/sdhci-sprd.c                            |    2 
 drivers/mmc/host/wmt-sdmmc.c                             |    5 
 drivers/mtd/devices/docg3.c                              |    7 
 drivers/mtd/nand/raw/atmel/nand-controller.c             |    1 
 drivers/mtd/nand/raw/meson_nand.c                        |    4 
 drivers/net/can/usb/kvaser_usb/kvaser_usb.h              |    2 
 drivers/net/can/usb/kvaser_usb/kvaser_usb_core.c         |    3 
 drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c        |    2 
 drivers/net/can/usb/kvaser_usb/kvaser_usb_leaf.c         |   79 ++++
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c          |    1 
 drivers/net/ethernet/freescale/fs_enet/mac-fec.c         |    2 
 drivers/net/ethernet/marvell/mvpp2/mvpp2.h               |    1 
 drivers/net/ethernet/marvell/mvpp2/mvpp2_debugfs.c       |   10 
 drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c          |   13 
 drivers/net/usb/r8152.c                                  |    4 
 drivers/net/wireless/ath/ath10k/mac.c                    |   54 +--
 drivers/net/wireless/ath/ath9k/htc_hst.c                 |   43 +-
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c  |    3 
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/pno.c   |   12 
 drivers/net/wireless/ralink/rt2x00/rt2800lib.c           |   34 +
 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c    |   21 -
 drivers/nvme/host/core.c                                 |    3 
 drivers/nvme/target/tcp.c                                |   11 
 drivers/pci/setup-res.c                                  |   11 
 drivers/phy/qualcomm/phy-qcom-usb-hsic.c                 |    6 
 drivers/platform/chrome/chromeos_laptop.c                |   24 -
 drivers/platform/chrome/cros_ec_chardev.c                |    3 
 drivers/platform/x86/msi-laptop.c                        |   14 
 drivers/power/supply/adp5061.c                           |    6 
 drivers/powercap/intel_rapl_common.c                     |    3 
 drivers/regulator/qcom_rpm-regulator.c                   |   24 -
 drivers/scsi/3w-9xxx.c                                   |    2 
 drivers/scsi/libsas/sas_expander.c                       |    2 
 drivers/soc/qcom/smem_state.c                            |    3 
 drivers/soc/qcom/smsm.c                                  |   20 -
 drivers/spi/spi-omap-100k.c                              |    1 
 drivers/spi/spi-qup.c                                    |   21 -
 drivers/spi/spi-s3c64xx.c                                |    9 
 drivers/spmi/spmi-pmic-arb.c                             |   13 
 drivers/staging/media/sunxi/cedrus/cedrus.c              |    4 
 drivers/staging/rtl8723bs/core/rtw_cmd.c                 |   16 
 drivers/staging/vt6655/device_main.c                     |    8 
 drivers/thermal/intel/intel_powerclamp.c                 |    4 
 drivers/tty/serial/8250/8250_port.c                      |    7 
 drivers/tty/serial/fsl_lpuart.c                          |    2 
 drivers/tty/serial/jsm/jsm_driver.c                      |    3 
 drivers/tty/serial/xilinx_uartps.c                       |    2 
 drivers/usb/core/quirks.c                                |    4 
 drivers/usb/gadget/function/f_printer.c                  |   12 
 drivers/usb/host/xhci-mem.c                              |    7 
 drivers/usb/host/xhci.c                                  |    3 
 drivers/usb/misc/idmouse.c                               |    8 
 drivers/usb/musb/musb_gadget.c                           |    3 
 drivers/usb/storage/unusual_devs.h                       |    6 
 drivers/vhost/vsock.c                                    |    2 
 drivers/video/fbdev/smscufx.c                            |   14 
 drivers/video/fbdev/stifb.c                              |    2 
 fs/btrfs/qgroup.c                                        |   15 
 fs/btrfs/scrub.c                                         |   36 ++
 fs/cifs/file.c                                           |    9 
 fs/cifs/smb2pdu.c                                        |    4 
 fs/dlm/ast.c                                             |    6 
 fs/dlm/lock.c                                            |   16 
 fs/ext4/file.c                                           |    6 
 fs/ext4/inode.c                                          |    7 
 fs/ext4/resize.c                                         |    2 
 fs/ext4/super.c                                          |    3 
 fs/f2fs/checkpoint.c                                     |   10 
 fs/f2fs/extent_cache.c                                   |    3 
 fs/f2fs/f2fs.h                                           |    4 
 fs/f2fs/gc.c                                             |   10 
 fs/f2fs/recovery.c                                       |   23 +
 fs/f2fs/super.c                                          |    4 
 fs/io_uring.c                                            |    1 
 fs/jbd2/commit.c                                         |    2 
 fs/jbd2/transaction.c                                    |    6 
 fs/nfsd/nfs4recover.c                                    |    4 
 fs/nfsd/nfs4xdr.c                                        |    2 
 fs/nilfs2/inode.c                                        |   18 -
 fs/quota/quota_tree.c                                    |   38 ++
 fs/userfaultfd.c                                         |    4 
 include/linux/ata.h                                      |   39 +-
 include/linux/dynamic_debug.h                            |    2 
 include/linux/iova.h                                     |    2 
 include/linux/once.h                                     |   28 +
 include/linux/skbuff.h                                   |    2 
 include/linux/tcp.h                                      |    2 
 include/net/ieee802154_netdev.h                          |   12 
 include/net/sock.h                                       |    2 
 include/net/tcp.h                                        |    5 
 kernel/bpf/btf.c                                         |    2 
 kernel/bpf/syscall.c                                     |    2 
 kernel/cgroup/cpuset.c                                   |   18 -
 kernel/gcov/gcc_4_7.c                                    |   18 -
 kernel/livepatch/transition.c                            |   18 -
 kernel/trace/ftrace.c                                    |    8 
 kernel/trace/ring_buffer.c                               |   48 ++
 kernel/trace/trace.c                                     |   22 +
 lib/dynamic_debug.c                                      |   11 
 lib/once.c                                               |   30 +
 net/bluetooth/hci_sysfs.c                                |    3 
 net/bluetooth/l2cap_core.c                               |   17 
 net/can/bcm.c                                            |    7 
 net/core/stream.c                                        |    3 
 net/ieee802154/socket.c                                  |    4 
 net/ipv4/af_inet.c                                       |    2 
 net/ipv4/inet_hashtables.c                               |    4 
 net/ipv4/netfilter/nft_fib_ipv4.c                        |    3 
 net/ipv4/tcp.c                                           |   19 -
 net/ipv4/tcp_input.c                                     |    2 
 net/ipv4/tcp_ipv4.c                                      |   11 
 net/ipv4/tcp_output.c                                    |   19 -
 net/ipv4/udp.c                                           |    6 
 net/ipv6/netfilter/nft_fib_ipv6.c                        |    6 
 net/ipv6/tcp_ipv6.c                                      |   11 
 net/ipv6/udp.c                                           |    4 
 net/mac80211/cfg.c                                       |    3 
 net/openvswitch/datapath.c                               |   18 -
 net/rds/tcp.c                                            |    2 
 net/sctp/auth.c                                          |   18 -
 net/unix/garbage.c                                       |   20 +
 net/vmw_vsock/virtio_transport_common.c                  |    2 
 net/xfrm/xfrm_ipcomp.c                                   |    1 
 scripts/Kbuild.include                                   |   23 +
 scripts/selinux/install_policy.sh                        |    2 
 sound/core/pcm_dmaengine.c                               |    8 
 sound/core/rawmidi.c                                     |    2 
 sound/core/sound_oss.c                                   |   13 
 sound/pci/hda/hda_beep.c                                 |   15 
 sound/pci/hda/hda_beep.h                                 |    1 
 sound/pci/hda/patch_hdmi.c                               |    6 
 sound/pci/hda/patch_realtek.c                            |   11 
 sound/pci/hda/patch_sigmatel.c                           |   25 -
 sound/soc/codecs/wcd9335.c                               |    2 
 sound/soc/codecs/wm5102.c                                |    6 
 sound/soc/codecs/wm5110.c                                |    6 
 sound/soc/codecs/wm8997.c                                |    6 
 sound/soc/fsl/eukrea-tlv320.c                            |    8 
 sound/soc/sh/rcar/ctu.c                                  |    6 
 sound/soc/sh/rcar/dvc.c                                  |    6 
 sound/soc/sh/rcar/mix.c                                  |    6 
 sound/soc/sh/rcar/src.c                                  |    5 
 sound/soc/sh/rcar/ssi.c                                  |    4 
 sound/usb/endpoint.c                                     |    6 
 tools/bpf/bpftool/btf_dumper.c                           |    2 
 tools/bpf/bpftool/main.c                                 |   10 
 tools/perf/util/intel-pt.c                               |    9 
 258 files changed, 1846 insertions(+), 758 deletions(-)

Adrian Hunter (1):
perf intel-pt: Fix segfault in intel_pt_print_info() with uClibc

Albert Briscoe (1):
usb: gadget: function: fix dangling pnp_string in f_printer.c

Alexander Aring (4):
fs: dlm: fix race between test_bit() and queue_work()
fs: dlm: handle -EBUSY first in lock arg validation
net: ieee802154: return -EINVAL for unknown addr type Revert "net/ieee802154: reject zero-sized raw_sendmsg()"

Alexander Coffin (1):
wifi: brcmfmac: fix use-after-free bug in brcmf_netdev_start_xmit()

Alexander Stein (6):
ARM: dts: imx6q: add missing properties for sram
ARM: dts: imx6dl: add missing properties for sram
ARM: dts: imx6qp: add missing properties for sram
ARM: dts: imx6sl: add missing properties for sram
ARM: dts: imx6sll: add missing properties for sram
ARM: dts: imx6sx: add missing properties for sram

Alvin Šipraga (1):
drm: bridge: adv7511: fix CEC power down control register offset

Andreas Pape (1):
ALSA: dmaengine: increment buffer pointer atomically

Andrew Bresticker (1):
riscv: Allow PROT_WRITE-only mmap()

Andrew Gaul (1):
r8152: Rate limit overflow messages

Andrew Perepechko (1):
jbd2: wake up journal waiters in FIFO order, not LIFO

Andri Yngvason (1):
HID: multitouch: Add memory barriers

Anna Schumaker (1):

      NFSD: Return nfserr_serverfault if splice_ok but buf->pages have data

Anssi Hannula (4):
can: kvaser_usb: Fix use of uninitialized completion
can: kvaser_usb_leaf: Fix overread with an invalid command
can: kvaser_usb_leaf: Fix TX queue out of sync after restart
can: kvaser_usb_leaf: Fix CAN state after restart

Ard Biesheuvel (1):
efi: libstub: drop pointless get_memory_map() call

Arvid Norlander (1):
ACPI: video: Add Toshiba Satellite/Portege Z830 quirk

Baokun Li (1):
ext4: fix null-ptr-deref in ext4_write_info

Bernard Metzler (1):
RDMA/siw: Always consume all skbuf data in sk_data_ready() upcall.

Bitterblue Smith (2):
wifi: rtl8xxxu: Fix skb misuse in TX queue selection
wifi: rtl8xxxu: gen2: Fix mistake in path B IQ calibration

Callum Osmotherly (1):
ALSA: hda/realtek: remove ALC289_FIXUP_DUAL_SPK for Dell 5530

Chao Qin (1):
powercap: intel_rapl: fix UBSAN shift-out-of-bounds issue

Chao Yu (2):
f2fs: fix to do sanity check on destination blkaddr during recovery
f2fs: fix to do sanity check on summary info

Chen-Yu Tsai (1):
clk: mediatek: mt8183: mfgcfg: Propagate rate changes to parent

Christophe JAILLET (7):
nfsd: Fix a memory leak in an error handling path
mmc: au1xmmc: Fix an error handling path in au1xmmc_probe()
mmc: wmt-sdmmc: Fix an error handling path in wmt_mci_probe()
mfd: intel_soc_pmic: Fix an error handling path in intel_soc_pmic_i2c_probe()
mfd: fsl-imx25: Fix an error handling path in mx25_tsadc_setup_irq()
mfd: lp8788: Fix an error handling path in lp8788_probe()
mfd: lp8788: Fix an error handling path in lp8788_irq_init() and lp8788_irq_init()

Claudiu Beznea (3):
iio: adc: at91-sama5d2_adc: fix AT91_SAMA5D2_MR_TRACKTIM_MAX
iio: adc: at91-sama5d2_adc: check return status for pressure and touch
iio: adc: at91-sama5d2_adc: lock around oversampling and sample freq

Coly Li (1):
bcache: fix set_at_max_writeback_rate() for multiple attached devices

Dan Carpenter (7):
wifi: rtl8xxxu: tighten bounds checking in rtl8xxxu_read_efuse() platform/chrome: fix memory corruption in ioctl
mtd: rawnand: meson: fix bit map use in meson_nfc_ecc_correct()
drivers: serial: jsm: fix some leaks in probe
mfd: fsl-imx25: Fix check for platform_get_irq() errors iommu/omap: Fix buffer overflow in debugfs
crypto: cavium - prevent integer overflow loading firmware

Daniel Golle (5):
wifi: rt2x00: don't run Rt5592 IQ calibration on MT7620
wifi: rt2x00: set correct TX_SW_CFG1 MAC register for MT7620
wifi: rt2x00: set VGC gain for both chains of MT7620
wifi: rt2x00: set SoC wmac clock register
wifi: rt2x00: correctly set BBP register 86 for MT7620

Dave Jiang (1):
dmaengine: ioat: stop mod_timer from resurrecting deleted timer in __cleanup()

David Collins (1):
spmi: pmic-arb: correct duplicate APID to PPID mapping logic

David Gow (1):
drm/amd/display: fix overflow on MIN_I64 definition

Dmitry Baryshkov (1):

      drm/msm/dpu: index dpu_kms->hw_vbif using vbif_idx

Dmitry Osipenko (1):
media: cedrus: Set the platform driver data earlier

Dmitry Torokhov (2):
ARM: dts: exynos: correct s5k6a3 reset polarity on Midas family
ARM: dts: exynos: fix polarity of VBUS GPIO of Origen

Dongliang Mu (2):
phy: qualcomm: call clk_disable_unprepare in the error handling
usb: idmouse: fix an uninit-value in idmouse_open

Duoming Zhou (2):
mISDN: fix use-after-free bugs in l1oip timer handlers
scsi: libsas: Fix use-after-free bug in smp_execute_task_sg()

Eddie James (2):
iio: pressure: dps310: Refactor startup procedure
iio: pressure: dps310: Reset chip after timeout

Eric Dumazet (3):
once: add DO_ONCE_SLOW() for sleepable contexts
tcp: annotate data-race around tcp_md5sig_pool_populated
inet: fully convert sk->sk_rx_dst to RCU rules

Fangrui Song (1):
riscv: Pass -mno-relax only on lld < 15.0.0

Filipe Manana (1):
btrfs: fix race between quota enable and quota rescan ioctl

Geert Uytterhoeven (1):
ARM: Drop CMDLINE_* dependency on ATAGS

Greg Kroah-Hartman (2):
selinux: use "grep -E" instead of "egrep"
Linux 5.4.220

Guilherme G. Piccoli (1):
firmware: google: Test spinlock on panic path to avoid lockups

Haibo Chen (1):
ARM: dts: imx7d-sdb: config the max pressure for tsc2046

Hangyu Hua (1):
misc: ocxl: fix possible refcount leak in afu_ioctl()

Hans de Goede (3):
platform/x86: msi-laptop: Fix old-ec check for backlight registering platform/x86: msi-laptop: Fix resource cleanup
platform/x86: msi-laptop: Change DMI match / alias strings to fix module autoloading

Hari Chandrakanthan (1):
wifi: mac80211: allow bw change during channel switch in mesh

Helge Deller (1):
parisc: fbdev/stifb: Align graphics memory size to 4MB

Huacai Chen (1):
UM: cpuinfo: Fix a warning for CONFIG_CPUMASK_OFFSTACK

Hyunwoo Kim (2):
fbdev: smscufx: Fix use-after-free in ufx_ops_open()
HID: roccat: Fix use-after-free in roccat_read()

Ian Nam (1):
clk: zynqmp: Fix stack-out-of-bounds in strncpy`

Ignat Korchagin (1):
crypto: akcipher - default implementation for setting a private key

Jack Wang (2):
HSI: omap_ssi_port: Fix dma_map_sg error check
mailbox: bcm-ferxrm-mailbox: Fix error check for dma_map_sg

Jaegeuk Kim (1):
f2fs: increase the limit for reserve_root

Jan Kara (1):
ext4: avoid crash when inline data creation follows DIO write

Javier Martinez Canillas (2):
drm: Use size_t type for len variable in drm_copy_field()
drm: Prevent drm_copy_field() to attempt copying a NULL pointer

Jean-Francois Le Fillatre (1):
usb: add quirks for Lenovo OneLink+ Dock

Jerry Lee 李修賢 (1):
ext4: continue to expand file system when the target size doesn't reach

Jianglei Nie (4):
drm/nouveau: fix a use-after-free in nouveau_gem_prime_import_sg_table()
bnx2x: fix potential memory leak in bnx2x_tpa_stop() drm/nouveau/nouveau_bo: fix potential memory leak in nouveau_bo_alloc()
usb: host: xhci: Fix potential memory leak in xhci_alloc_stream_info()

Jiasheng Jiang (3):
ASoC: rsnd: Add check for rsnd_mod_power_on
fsi: core: Check error number after calling ida_simple_get
mfd: sm501: Add check for platform_driver_register()

Jim Cromie (2):
dyndbg: fix module.dyndbg handling
dyndbg: let query-modname override actual module name

Jinke Han (1):
ext4: place buffer head allocation before handle start

Joel Stanley (1):
clk: ast2600: BCLK comes from EPLL

Jonathan Cameron (1):
iio: ABI: Fix wrong format of differential capacitance channel ABI.

Junichi Uekawa (1):
vhost/vsock: Use kvmalloc/kvfree for larger packets.

Kees Cook (3):
sh: machvec: Use char[] for section boundaries x86/microcode/AMD: Track patch allocation size explicitly
MIPS: BCM47XX: Cast memcmp() of function to (void *)

Keith Busch (1):
nvme: copy firmware_rev on each init

Khalid Masum (1):
xfrm: Update ipcomp_scratches with NULL when freed

Koba Ko (1):
crypto: ccp - Release dma channels before dmaengine unrgister

Kohei Tarumizu (1):
x86/resctrl: Fix to restore to original value when re-enabling hardware prefetch register

Krzysztof Kozlowski (1):
ASoC: wcd9335: fix order of Slimbus unprepare/disable

Lalith Rajendran (1):
ext4: make ext4_lazyinit_thread freezable

Lam Thai (1):
bpftool: Fix a wrong type cast in btf_dumper_int

Lee Jones (1):
bpf: Ensure correct locking around vulnerable function find_vpid()

Letu Ren (1):
scsi: 3w-9xxx: Avoid disabling device if failing to enable it

Liang He (12):
drm/omap: dss: Fix refcount leak bugs
ASoC: eureka-tlv320: Hold reference returned from of_find_xxx API
memory: pl353-smc: Fix refcount leak bug in pl353_smc_probe()
memory: of: Fix refcount leak bug in of_get_ddr_timings()
soc: qcom: smsm: Fix refcount leak bugs in qcom_smsm_probe()
soc: qcom: smem_state: Add refcounting for the 'state->of_node'
clk: meson: Hold reference returned by of_get_parent()
clk: oxnas: Hold reference returned by of_get_parent()
clk: berlin: Add of_node_put() for of_get_parent()
media: exynos4-is: fimc-is: Add of_node_put() when breaking out of loop powerpc/sysdev/fsl_msi: Add missing of_node_put() powerpc/pci_dn: Add missing of_node_put()

Linus Walleij (1):
regulator: qcom_rpm: Fix circular deferral regression

Liu Jian (1):
net: If sock is dead don't access sock's sk_wq in sk_stream_wait_memory

Logan Gunthorpe (2):
md/raid5: Ensure stripe_fill happens on non-read IO with journal md/raid5: Wait for MD_SB_CHANGE_PENDING in raid5d

Lorenz Bauer (1):
bpf: btf: fix truncated last_member_type_id in btf_struct_resolve

Luiz Augusto von Dentz (2):
Bluetooth: hci_sysfs: Fix attempting to call device_add multiple times
Bluetooth: L2CAP: Fix user-after-free

Luke D. Jones (2):
ALSA: hda/realtek: Correct pin configs for ASUS G533Z
ALSA: hda/realtek: Add quirk for ASUS GV601R laptop

Maciej W. Rozycki (2):
RISC-V: Make port I/O string accessors actually work
PCI: Sanitise firmware BAR assignments behind a PCI-PCI bridge

Marek Behún (1):
ARM: dts: turris-omnia: Fix mpp26 pin name and comment

Mario Limonciello (1):
xhci: Don't show warning for reinit on known broken suspend

Martin Liska (1):
gcov: support GCC 12.1 and newer compilers

Masahiro Yamada (1):
kbuild: remove the target in signal traps when interrupted

Mateusz Kwiatkowski (1):
drm/vc4: vec: Fix timings for VEC modes

Maxime Ripard (2):
drm/mipi-dsi: Detach devices when removing the host
clk: bcm2835: Make peripheral PLLC critical

Maya Matuszczyk (1):
drm: panel-orientation-quirks: Add quirk for Anbernic Win600

Miaoqian Lin (6):
clk: tegra: Fix refcount leak in tegra210_clock_init
clk: tegra: Fix refcount leak in tegra114_clock_init
clk: tegra20: Fix refcount leak in tegra20_clock_init
HSI: omap_ssi: Fix refcount leak in ssi_probe
media: xilinx: vipp: Fix refcount leak in xvip_graph_dma_init
clk: ti: dra7-atl: Fix reference leak in of_dra7_atl_clk_probe

Michael Hennerich (1):
iio: dac: ad5593r: Fix i2c read protocol requirements

Michael Walle (2):
ARM: dts: kirkwood: lsxl: fix serial line
ARM: dts: kirkwood: lsxl: remove first ethernet port

Michal Luczaj (1):
KVM: x86/emulator: Fix handing of POP SS to correctly set interruptibility

Mike Pattrick (2):
openvswitch: Fix double reporting of drops in dropwatch
openvswitch: Fix overreporting of drops in dropwatch

Nam Cao (2):
staging: vt6655: fix some erroneous memory clean-up loops
staging: vt6655: fix potential memory leak

Nathan Chancellor (1):
powerpc/math_emu/efp: Include module.h

Neal Cardwell (1):
tcp: fix tcp_cwnd_validate() to not forget is_cwnd_limited

Nicholas Piggin (1):
powerpc/64s: Fix GENERIC_CPU build flags for PPC970 / G5

Niklas Cassel (4):
ata: fix ata_id_sense_reporting_enabled() and ata_id_has_sense_reporting()
ata: fix ata_id_has_devslp()
ata: fix ata_id_has_ncq_autosense()
ata: fix ata_id_has_dipm()

Nuno Sá (1):
iio: inkern: only release the device node when done with it

Ondrej Mosnacek (1):
userfaultfd: open userfaultfds with O_RDONLY

Pali Rohár (3):
powerpc/boot: Explicitly disable usage of SPE instructions
serial: 8250: Fix restoring termios speed after suspend
powerpc: Fix SPE Power ISA properties for e500v1 platforms

Pavel Begunkov (1):
io_uring/af_unix: defer registered files gc to io_uring release

Phil Sutter (1):
netfilter: nft_fib: Fix for rpath check with VRF devices

Qu Wenruo (1):
btrfs: scrub: try to fix super block errors

Quanyang Wang (1):
clk: zynqmp: pll: rectify rate rounding in zynqmp_pll_round_rate

Quentin Monnet (1):
bpftool: Clear errno after libcap's checks

Rafael J. Wysocki (1):
thermal: intel_powerclamp: Use first online CPU as control_cpu

Randy Dunlap (1):
drm: fix drm_mipi_dbi build errors

Richard Acayan (1):
mmc: sdhci-msm: add compatible string check for sdm670

Rik van Riel (1):
livepatch: fix race between fork and KLP transition

Robin Guo (1):
usb: musb: Fix musb_gadget.c rxstate overflow bug

Robin Murphy (1):
iommu/iova: Fix module config properly

Ronnie Sahlberg (1):
cifs: destage dirty pages before re-reading them for cache=none

Russell King (Oracle) (1):
net: mvpp2: fix mvpp2 debugfs leak

Rustam Subkhankulov (1):
platform/chrome: fix double-free in chromeos_laptop_prepare()

Ryusuke Konishi (1):
nilfs2: fix use-after-free bug of struct nilfs_root

Saranya Gopal (1):
ALSA: hda/realtek: Add Intel Reference SSID to support headset keys

Saurabh Sengar (1):
md: Replace snprintf with scnprintf

Sean Christopherson (2):
KVM: nVMX: Unconditionally purge queued/injected events on nested "exit"
KVM: VMX: Drop bits 31:16 when shoving exception error code into VMCS

Serge Semin (1):
ata: libahci_platform: Sanity check the DT child nodes number

Sherry Sun (1):
tty: serial: fsl_lpuart: disable dma rx/tx use flags in lpuart_dma_shutdown

Shigeru Yoshida (1):
nbd: Fix hung when signal interrupts nbd_start_device_ioctl()

Shubhrajyoti Datta (1):
tty: xilinx_uartps: Fix the ignore_status

Srinivas Pandruvada (1):
thermal: intel_powerclamp: Use get_cpu() instead of smp_processor_id() to avoid crash

Stefan Wahren (1):
clk: bcm2835: fix bcm2835_clock_rate_from_divisor declaration

Steven Rostedt (Google) (4):
ring-buffer: Allow splice to read previous partially read pages
ring-buffer: Have the shortest_full queue be the shortest not longest
ring-buffer: Check pending waiters when doing wake ups as well
ring-buffer: Fix race between reset page and reading page

Takashi Iwai (6):
ALSA: oss: Fix potential deadlock at unregistration
ALSA: rawmidi: Drop register_mutex in snd_rawmidi_free()
ALSA: usb-audio: Fix potential memory leaks
ALSA: usb-audio: Fix NULL dererence at error path
ALSA: hda: beep: Simplify keep-power-at-enable behavior
ALSA: hda/hdmi: Don't skip notification handling during PM operation

Tetsuo Handa (5):
net: rds: don't hold sock lock when cancelling work from rds_tcp_reset_callbacks() net/ieee802154: reject zero-sized raw_sendmsg()
wifi: ath9k: avoid uninit memory read in ath9k_htc_rx_msg()
Bluetooth: L2CAP: initialize delayed works at l2cap_chan_create() net/ieee802154: don't warn zero-sized raw_sendmsg()

Tudor Ambarus (1):
mtd: rawnand: atmel: Unmap streaming DMA mappings

Varun Prakash (1):
nvmet-tcp: add bounds check on Transfer Tag

Vincent Whitchurch (1):
spi: s3c64xx: Fix large transfers with DMA

Vitaly Kuznetsov (1):
x86/hyperv: Fix 'struct hv_enlightened_vmcs' definition

Waiman Long (2):
tracing: Disable interrupt or preemption before acquiring arch_spinlock_t cgroup/cpuset: Enable update_tasks_cpumask() on top_cpuset

Wang Kefeng (1):
ARM: 9247/1: mm: set readonly for MT_MEMORY_RO with ARM_LPAE

Wei Yongjun (1):
power: supply: adp5061: fix out-of-bounds read in adp5061_get_chg_type()

Wen Gong (1):
wifi: ath10k: add peer map clean up for peer delete in ath10k_sta_state()

Wenchao Chen (1):
mmc: sdhci-sprd: Fix minimum clock limit

William Dean (1):
mtd: devices: docg3: check the return value of devm_ioremap() in the probe

Wright Feng (1):
wifi: brcmfmac: fix invalid address access when enabling SCAN log level

Xiaoke Wang (1):
staging: rtl8723bs: fix a potential memory leak in rtw_init_cmd_priv()

Xin Long (1):
sctp: handle the error returned from sctp_auth_asoc_init_active_key

Xu Qiang (2):
spi: qup: add missing clk_disable_unprepare on error in spi_qup_resume()
spi: qup: add missing clk_disable_unprepare on error in spi_qup_pm_resume_runtime()

Zhang Qilong (5):
spi/omap100k:Fix PM disable depth imbalance in omap1_spi100k_probe
ASoC: wm8997: Fix PM disable depth imbalance in wm8997_probe
ASoC: wm5110: Fix PM disable depth imbalance in wm5110_probe
ASoC: wm5102: Fix PM disable depth imbalance in wm5102_probe
f2fs: fix race condition on setting FI_NO_EXTENT flag

Zhang Xiaoxu (1):
cifs: Fix the error length of VALIDATE_NEGOTIATE_INFO message

Zheng Yejian (1):
ftrace: Properly unset FTRACE_HASH_FL_MOD

Zheng Yongjun (2):
net: fs_enet: Fix wrong check in do_pd_setup powerpc/powernv: add missing of_node_put() in opal_export_attrs()

Zheyu Ma (2):
drm/bridge: megachips: Fix a null pointer dereference bug
media: cx88: Fix a null-ptr-deref bug in buffer_prepare()

Zhihao Cheng (1):
quota: Check next/prev free block number after reading from quota file

Zhu Yanjun (2):
RDMA/rxe: Fix "kernel NULL pointer dereference" error RDMA/rxe: Fix the error caused by qp->sk

Ziyang Xuan (1):
can: bcm: check the result of can_send() in bcm_can_tx()

hongao (1):
drm/amdgpu: fix initial connector audio value

sunghwan jung (1):
Revert "usb: storage: Add quirk for Samsung Fit flash"

author maintainer
#1 lore raw
Documentation/ABI/testing/sysfs-bus-iio +1 -1
index c3767d4d01a6..4d873e813949 100644
@@ -138,7 +138,7 @@ Description:
 		Raw capacitance measurement from channel Y. Units after
 		application of scale and offset are nanofarads.
 
-What:		/sys/.../iio:deviceX/in_capacitanceY-in_capacitanceZ_raw
+What:		/sys/.../iio:deviceX/in_capacitanceY-capacitanceZ_raw
 KernelVersion:	3.2
 Contact:	[email protected]
 Description:
Makefile +1 -1
index 58325c33ef0c..813d17bd4586 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 4
-SUBLEVEL = 219
+SUBLEVEL = 220
 EXTRAVERSION =
 NAME = Kleptomaniac Octopus
 
arch/arm/Kconfig +0 -1
index a4364cce85f8..a70696a95b79 100644
@@ -1837,7 +1837,6 @@ config CMDLINE
 choice
 	prompt "Kernel command line type" if CMDLINE != ""
 	default CMDLINE_FROM_BOOTLOADER
-	depends on ATAGS
 
 config CMDLINE_FROM_BOOTLOADER
 	bool "Use bootloader kernel arguments if available"
arch/arm/boot/dts/armada-385-turris-omnia.dts +2 -2
index fde4c302f08e..92e08486ec81 100644
@@ -307,7 +307,7 @@
 		marvell,function = "spi0";
 	};
 
-	spi0cs1_pins: spi0cs1-pins {
+	spi0cs2_pins: spi0cs2-pins {
 		marvell,pins = "mpp26";
 		marvell,function = "spi0";
 	};
@@ -342,7 +342,7 @@
 		};
 	};
 
-	/* MISO, MOSI, SCLK and CS1 are routed to pin header CN11 */
+	/* MISO, MOSI, SCLK and CS2 are routed to pin header CN11 */
 };
 
 &uart0 {
arch/arm/boot/dts/exynos4412-midas.dtsi +1 -1
index fedb21377c66..3538739c7901 100644
@@ -534,7 +534,7 @@
 		clocks = <&camera 1>;
 		clock-names = "extclk";
 		samsung,camclk-out = <1>;
-		gpios = <&gpm1 6 GPIO_ACTIVE_HIGH>;
+		gpios = <&gpm1 6 GPIO_ACTIVE_LOW>;
 
 		port {
 			is_s5k6a3_ep: endpoint {
arch/arm/boot/dts/exynos4412-origen.dts +1 -1
index ecd14b283a6b..c6678c120cbd 100644
@@ -86,7 +86,7 @@
 };
 
 &ehci {
-	samsung,vbus-gpio = <&gpx3 5 1>;
+	samsung,vbus-gpio = <&gpx3 5 GPIO_ACTIVE_HIGH>;
 	status = "okay";
 	phys = <&exynos_usbphy 2>, <&exynos_usbphy 3>;
 	phy-names = "hsic0", "hsic1";
arch/arm/boot/dts/imx6dl.dtsi +3 -0
index 2ed10310a7b7..4bde98033ff4 100644
@@ -81,6 +81,9 @@
 		ocram: sram@900000 {
 			compatible = "mmio-sram";
 			reg = <0x00900000 0x20000>;
+			ranges = <0 0x00900000 0x20000>;
+			#address-cells = <1>;
+			#size-cells = <1>;
 			clocks = <&clks IMX6QDL_CLK_OCRAM>;
 		};
 
arch/arm/boot/dts/imx6q.dtsi +3 -0
index d038f4117024..013080e709f8 100644
@@ -158,6 +158,9 @@
 		ocram: sram@900000 {
 			compatible = "mmio-sram";
 			reg = <0x00900000 0x40000>;
+			ranges = <0 0x00900000 0x40000>;
+			#address-cells = <1>;
+			#size-cells = <1>;
 			clocks = <&clks IMX6QDL_CLK_OCRAM>;
 		};
 
arch/arm/boot/dts/imx6qp.dtsi +6 -0
index d91f92f944c5..3633383db706 100644
@@ -9,12 +9,18 @@
 		ocram2: sram@940000 {
 			compatible = "mmio-sram";
 			reg = <0x00940000 0x20000>;
+			ranges = <0 0x00940000 0x20000>;
+			#address-cells = <1>;
+			#size-cells = <1>;
 			clocks = <&clks IMX6QDL_CLK_OCRAM>;
 		};
 
 		ocram3: sram@960000 {
 			compatible = "mmio-sram";
 			reg = <0x00960000 0x20000>;
+			ranges = <0 0x00960000 0x20000>;
+			#address-cells = <1>;
+			#size-cells = <1>;
 			clocks = <&clks IMX6QDL_CLK_OCRAM>;
 		};
 
arch/arm/boot/dts/imx6sl.dtsi +3 -0
index 540880f0413f..852f66944c7d 100644
@@ -121,6 +121,9 @@
 		ocram: sram@900000 {
 			compatible = "mmio-sram";
 			reg = <0x00900000 0x20000>;
+			ranges = <0 0x00900000 0x20000>;
+			#address-cells = <1>;
+			#size-cells = <1>;
 			clocks = <&clks IMX6SL_CLK_OCRAM>;
 		};
 
arch/arm/boot/dts/imx6sll.dtsi +3 -0
index 13c7ba7fa6bc..39500b84673b 100644
@@ -123,6 +123,9 @@
 		ocram: sram@900000 {
 			compatible = "mmio-sram";
 			reg = <0x00900000 0x20000>;
+			ranges = <0 0x00900000 0x20000>;
+			#address-cells = <1>;
+			#size-cells = <1>;
 		};
 
 		intc: interrupt-controller@a01000 {
arch/arm/boot/dts/imx6sx.dtsi +6 -0
index 531a52c1e987..b3e24d8bd299 100644
@@ -163,12 +163,18 @@
 		ocram_s: sram@8f8000 {
 			compatible = "mmio-sram";
 			reg = <0x008f8000 0x4000>;
+			ranges = <0 0x008f8000 0x4000>;
+			#address-cells = <1>;
+			#size-cells = <1>;
 			clocks = <&clks IMX6SX_CLK_OCRAM_S>;
 		};
 
 		ocram: sram@900000 {
 			compatible = "mmio-sram";
 			reg = <0x00900000 0x20000>;
+			ranges = <0 0x00900000 0x20000>;
+			#address-cells = <1>;
+			#size-cells = <1>;
 			clocks = <&clks IMX6SX_CLK_OCRAM>;
 		};
 
arch/arm/boot/dts/imx7d-sdb.dts +1 -6
index a97cda17e484..363d1f57a608 100644
@@ -177,12 +177,7 @@
 		interrupt-parent = <&gpio2>;
 		interrupts = <29 0>;
 		pendown-gpio = <&gpio2 29 GPIO_ACTIVE_HIGH>;
-		ti,x-min = /bits/ 16 <0>;
-		ti,x-max = /bits/ 16 <0>;
-		ti,y-min = /bits/ 16 <0>;
-		ti,y-max = /bits/ 16 <0>;
-		ti,pressure-max = /bits/ 16 <0>;
-		ti,x-plate-ohms = /bits/ 16 <400>;
+		touchscreen-max-pressure = <255>;
 		wakeup-source;
 	};
 };
arch/arm/boot/dts/kirkwood-lsxl.dtsi +5 -11
index 7b151acb9984..88b70ba1c8fe 100644
@@ -10,6 +10,11 @@
 
 	ocp@f1000000 {
 		pinctrl: pin-controller@10000 {
+			/* Non-default UART pins */
+			pmx_uart0: pmx-uart0 {
+				marvell,pins = "mpp4", "mpp5";
+			};
+
 			pmx_power_hdd: pmx-power-hdd {
 				marvell,pins = "mpp10";
 				marvell,function = "gpo";
@@ -213,22 +218,11 @@
 &mdio {
 	status = "okay";
 
-	ethphy0: ethernet-phy@0 {
-		reg = <0>;
-	};
-
 	ethphy1: ethernet-phy@8 {
 		reg = <8>;
 	};
 };
 
-&eth0 {
-	status = "okay";
-	ethernet0-port@0 {
-		phy-handle = <&ethphy0>;
-	};
-};
-
 &eth1 {
 	status = "okay";
 	ethernet1-port@0 {
arch/arm/mm/mmu.c +4 -0
index 463cbb0631be..5becec790379 100644
@@ -320,7 +320,11 @@ static struct mem_type mem_types[] __ro_after_init = {
 		.prot_pte  = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY |
 			     L_PTE_XN | L_PTE_RDONLY,
 		.prot_l1   = PMD_TYPE_TABLE,
+#ifdef CONFIG_ARM_LPAE
+		.prot_sect = PMD_TYPE_SECT | L_PMD_SECT_RDONLY | PMD_SECT_AP2,
+#else
 		.prot_sect = PMD_TYPE_SECT,
+#endif
 		.domain    = DOMAIN_KERNEL,
 	},
 	[MT_ROM] = {
arch/mips/bcm47xx/prom.c +2 -2
index 135a5407f015..d26d9a6f6ee7 100644
@@ -85,7 +85,7 @@ static __init void prom_init_mem(void)
 			pr_debug("Assume 128MB RAM\n");
 			break;
 		}
-		if (!memcmp(prom_init, prom_init + mem, 32))
+		if (!memcmp((void *)prom_init, (void *)prom_init + mem, 32))
 			break;
 	}
 	lowmem = mem;
@@ -162,7 +162,7 @@ void __init bcm47xx_prom_highmem_init(void)
 
 	off = EXTVBASE + __pa(off);
 	for (extmem = 128 << 20; extmem < 512 << 20; extmem <<= 1) {
-		if (!memcmp(prom_init, (void *)(off + extmem), 16))
+		if (!memcmp((void *)prom_init, (void *)(off + extmem), 16))
 			break;
 	}
 	extmem -= lowmem;
arch/powerpc/Makefile +1 -1
index eedd114a017c..95183a717eb6 100644
@@ -155,7 +155,7 @@ CFLAGS-$(CONFIG_GENERIC_CPU) += -mcpu=power8
 CFLAGS-$(CONFIG_GENERIC_CPU) += $(call cc-option,-mtune=power9,-mtune=power8)
 else
 CFLAGS-$(CONFIG_GENERIC_CPU) += $(call cc-option,-mtune=power7,$(call cc-option,-mtune=power5))
-CFLAGS-$(CONFIG_GENERIC_CPU) += $(call cc-option,-mcpu=power5,-mcpu=power4)
+CFLAGS-$(CONFIG_GENERIC_CPU) += -mcpu=power4
 endif
 else ifdef CONFIG_PPC_BOOK3E_64
 CFLAGS-$(CONFIG_GENERIC_CPU) += -mcpu=powerpc64
arch/powerpc/boot/Makefile +1 -0
index 8c69bd07ada6..0db276fa2011 100644
@@ -30,6 +30,7 @@ endif
 
 BOOTCFLAGS    := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
 		 -fno-strict-aliasing -O2 -msoft-float -mno-altivec -mno-vsx \
+		 $(call cc-option,-mno-spe) $(call cc-option,-mspe=no) \
 		 -pipe -fomit-frame-pointer -fno-builtin -fPIC -nostdinc \
 		 $(LINUXINCLUDE)
 
arch/powerpc/boot/dts/fsl/e500v1_power_isa.dtsi new file +51 -0

51 lines not on this page · raw message

arch/powerpc/boot/dts/fsl/mpc8540ads.dts +1 -1
index 18a885130538..e03ae130162b 100644
@@ -7,7 +7,7 @@
 
 /dts-v1/;
 
-/include/ "e500v2_power_isa.dtsi"
+/include/ "e500v1_power_isa.dtsi"
 
 / {
 	model = "MPC8540ADS";
arch/powerpc/boot/dts/fsl/mpc8541cds.dts +1 -1
index ac381e7b1c60..a2a6c5cf852e 100644
@@ -7,7 +7,7 @@
 
 /dts-v1/;
 
-/include/ "e500v2_power_isa.dtsi"
+/include/ "e500v1_power_isa.dtsi"
 
 / {
 	model = "MPC8541CDS";
arch/powerpc/boot/dts/fsl/mpc8555cds.dts +1 -1
index 9f58db2a7e66..901b6ff06dfb 100644
@@ -7,7 +7,7 @@
 
 /dts-v1/;
 
-/include/ "e500v2_power_isa.dtsi"
+/include/ "e500v1_power_isa.dtsi"
 
 / {
 	model = "MPC8555CDS";
arch/powerpc/boot/dts/fsl/mpc8560ads.dts +1 -1
index a24722ccaebf..c2f9aea78b29 100644
@@ -7,7 +7,7 @@
 
 /dts-v1/;
 
-/include/ "e500v2_power_isa.dtsi"
+/include/ "e500v1_power_isa.dtsi"
 
 / {
 	model = "MPC8560ADS";
arch/powerpc/kernel/pci_dn.c +1 -0
index d876eda92609..d28433f0fc8e 100644
@@ -325,6 +325,7 @@ struct pci_dn *pci_add_device_node_info(struct pci_controller *hose,
 	INIT_LIST_HEAD(&pdn->list);
 	parent = of_get_parent(dn);
 	pdn->parent = parent ? PCI_DN(parent) : NULL;
+	of_node_put(parent);
 	if (pdn->parent)
 		list_add_tail(&pdn->list, &pdn->parent->child_list);
 
arch/powerpc/math-emu/math_efp.c +1 -0
index 0a05e51964c1..90111c9e7521 100644
@@ -17,6 +17,7 @@
 
 #include <linux/types.h>
 #include <linux/prctl.h>
+#include <linux/module.h>
 
 #include <linux/uaccess.h>
 #include <asm/reg.h>
arch/powerpc/platforms/powernv/opal.c +1 -0
index 38e90270280b..c3f968429161 100644
@@ -776,6 +776,7 @@ static void opal_export_attrs(void)
 	kobj = kobject_create_and_add("exports", opal_kobj);
 	if (!kobj) {
 		pr_warn("kobject_create_and_add() of exports failed\n");
+		of_node_put(np);
 		return;
 	}
 
arch/powerpc/sysdev/fsl_msi.c +2 -0
index 808e7118abfc..d276c5e96445 100644
@@ -211,8 +211,10 @@ static int fsl_setup_msi_irqs(struct pci_dev *pdev, int nvec, int type)
 			dev_err(&pdev->dev,
 				"node %pOF has an invalid fsl,msi phandle %u\n",
 				hose->dn, np->phandle);
+			of_node_put(np);
 			return -EINVAL;
 		}
+		of_node_put(np);
 	}
 
 	for_each_pci_msi_entry(entry, pdev) {
arch/riscv/Makefile +2 -0
index d1a961539101..aed3ba97575b 100644
@@ -35,6 +35,7 @@ else
 endif
 
 ifeq ($(CONFIG_LD_IS_LLD),y)
+ifeq ($(shell test $(CONFIG_LLD_VERSION) -lt 150000; echo $$?),0)
 	KBUILD_CFLAGS += -mno-relax
 	KBUILD_AFLAGS += -mno-relax
 ifneq ($(LLVM_IAS),1)
@@ -42,6 +43,7 @@ ifneq ($(LLVM_IAS),1)
 	KBUILD_AFLAGS += -Wa,-mno-relax
 endif
 endif
+endif
 
 # ISA string setting
 riscv-march-$(CONFIG_ARCH_RV32I)	:= rv32ima
arch/riscv/include/asm/io.h +8 -8
index 3ba4d93721d3..2dc5b01d62df 100644
@@ -252,9 +252,9 @@ __io_reads_ins(reads, u32, l, __io_br(), __io_ar(addr))
 __io_reads_ins(ins,  u8, b, __io_pbr(), __io_par(addr))
 __io_reads_ins(ins, u16, w, __io_pbr(), __io_par(addr))
 __io_reads_ins(ins, u32, l, __io_pbr(), __io_par(addr))
-#define insb(addr, buffer, count) __insb((void __iomem *)(long)addr, buffer, count)
-#define insw(addr, buffer, count) __insw((void __iomem *)(long)addr, buffer, count)
-#define insl(addr, buffer, count) __insl((void __iomem *)(long)addr, buffer, count)
+#define insb(addr, buffer, count) __insb(PCI_IOBASE + (addr), buffer, count)
+#define insw(addr, buffer, count) __insw(PCI_IOBASE + (addr), buffer, count)
+#define insl(addr, buffer, count) __insl(PCI_IOBASE + (addr), buffer, count)
 
 __io_writes_outs(writes,  u8, b, __io_bw(), __io_aw())
 __io_writes_outs(writes, u16, w, __io_bw(), __io_aw())
@@ -266,22 +266,22 @@ __io_writes_outs(writes, u32, l, __io_bw(), __io_aw())
 __io_writes_outs(outs,  u8, b, __io_pbw(), __io_paw())
 __io_writes_outs(outs, u16, w, __io_pbw(), __io_paw())
 __io_writes_outs(outs, u32, l, __io_pbw(), __io_paw())
-#define outsb(addr, buffer, count) __outsb((void __iomem *)(long)addr, buffer, count)
-#define outsw(addr, buffer, count) __outsw((void __iomem *)(long)addr, buffer, count)
-#define outsl(addr, buffer, count) __outsl((void __iomem *)(long)addr, buffer, count)
+#define outsb(addr, buffer, count) __outsb(PCI_IOBASE + (addr), buffer, count)
+#define outsw(addr, buffer, count) __outsw(PCI_IOBASE + (addr), buffer, count)
+#define outsl(addr, buffer, count) __outsl(PCI_IOBASE + (addr), buffer, count)
 
 #ifdef CONFIG_64BIT
 __io_reads_ins(reads, u64, q, __io_br(), __io_ar(addr))
 #define readsq(addr, buffer, count) __readsq(addr, buffer, count)
 
 __io_reads_ins(ins, u64, q, __io_pbr(), __io_par(addr))
-#define insq(addr, buffer, count) __insq((void __iomem *)addr, buffer, count)
+#define insq(addr, buffer, count) __insq(PCI_IOBASE + (addr), buffer, count)
 
 __io_writes_outs(writes, u64, q, __io_bw(), __io_aw())
 #define writesq(addr, buffer, count) __writesq(addr, buffer, count)
 
 __io_writes_outs(outs, u64, q, __io_pbr(), __io_paw())
-#define outsq(addr, buffer, count) __outsq((void __iomem *)addr, buffer, count)
+#define outsq(addr, buffer, count) __outsq(PCI_IOBASE + (addr), buffer, count)
 #endif
 
 #include <asm-generic/io.h>
arch/riscv/kernel/sys_riscv.c +0 -3
index 8a7880b9c433..bb402685057a 100644
@@ -18,9 +18,6 @@ static long riscv_sys_mmap(unsigned long addr, unsigned long len,
 	if (unlikely(offset & (~PAGE_MASK >> page_shift_offset)))
 		return -EINVAL;
 
-	if (unlikely((prot & PROT_WRITE) && !(prot & PROT_READ)))
-		return -EINVAL;
-
 	return ksys_mmap_pgoff(addr, len, prot, flags, fd,
 			       offset >> (PAGE_SHIFT - page_shift_offset));
 }
arch/sh/include/asm/sections.h +1 -1
index 8edb824049b9..0cb0ca149ac3 100644
@@ -4,7 +4,7 @@
 
 #include <asm-generic/sections.h>
 
-extern long __machvec_start, __machvec_end;
+extern char __machvec_start[], __machvec_end[];
 extern char __uncached_start, __uncached_end;
 extern char __start_eh_frame[], __stop_eh_frame[];
 
arch/sh/kernel/machvec.c +5 -5
index beadbbdb4486..3e0a4306f1d5 100644
@@ -19,8 +19,8 @@
 #define MV_NAME_SIZE 32
 
 #define for_each_mv(mv) \
-	for ((mv) = (struct sh_machine_vector *)&__machvec_start; \
-	     (mv) && (unsigned long)(mv) < (unsigned long)&__machvec_end; \
+	for ((mv) = (struct sh_machine_vector *)__machvec_start; \
+	     (mv) && (unsigned long)(mv) < (unsigned long)__machvec_end; \
 	     (mv)++)
 
 static struct sh_machine_vector * __init get_mv_byname(const char *name)
@@ -86,8 +86,8 @@ void __init sh_mv_setup(void)
 	if (!machvec_selected) {
 		unsigned long machvec_size;
 
-		machvec_size = ((unsigned long)&__machvec_end -
-				(unsigned long)&__machvec_start);
+		machvec_size = ((unsigned long)__machvec_end -
+				(unsigned long)__machvec_start);
 
 		/*
 		 * Sanity check for machvec section alignment. Ensure
@@ -101,7 +101,7 @@ void __init sh_mv_setup(void)
 		 * vector (usually the only one) from .machvec.init.
 		 */
 		if (machvec_size >= sizeof(struct sh_machine_vector))
-			sh_mv = *(struct sh_machine_vector *)&__machvec_start;
+			sh_mv = *(struct sh_machine_vector *)__machvec_start;
 	}
 
 	printk(KERN_NOTICE "Booting machvec: %s\n", get_system_type());
arch/um/kernel/um_arch.c +1 -1
index 0f40eccbd759..640c8e178502 100644
@@ -77,7 +77,7 @@ static int show_cpuinfo(struct seq_file *m, void *v)
 
 static void *c_start(struct seq_file *m, loff_t *pos)
 {
-	return *pos < NR_CPUS ? cpu_data + *pos : NULL;
+	return *pos < nr_cpu_ids ? cpu_data + *pos : NULL;
 }
 
 static void *c_next(struct seq_file *m, void *v, loff_t *pos)
arch/x86/include/asm/hyperv-tlfs.h +2 -2
index 7741e211f7f5..333e61e6dbe7 100644
@@ -721,7 +721,7 @@ struct hv_enlightened_vmcs {
 	u64 guest_rip;
 
 	u32 hv_clean_fields;
-	u32 hv_padding_32;
+	u32 padding32_1;
 	u32 hv_synthetic_controls;
 	struct {
 		u32 nested_flush_hypercall:1;
@@ -729,7 +729,7 @@ struct hv_enlightened_vmcs {
 		u32 reserved:30;
 	}  __packed hv_enlightenments_control;
 	u32 hv_vp_id;
-
+	u32 padding32_2;
 	u64 hv_vm_id;
 	u64 partition_assist_page;
 	u64 padding64_4[4];
arch/x86/include/asm/microcode.h +1 -0
index 91a06cef50c1..f73327397b89 100644
@@ -9,6 +9,7 @@
 struct ucode_patch {
 	struct list_head plist;
 	void *data;		/* Intel uses only this one */
+	unsigned int size;
 	u32 patch_id;
 	u16 equiv_cpu;
 };
arch/x86/kernel/cpu/microcode/amd.c +2 -1
index a0e52bd00ecc..3b82d022dcd4 100644
@@ -783,6 +783,7 @@ static int verify_and_add_patch(u8 family, u8 *fw, unsigned int leftover,
 		kfree(patch);
 		return -EINVAL;
 	}
+	patch->size = *patch_size;
 
 	mc_hdr      = (struct microcode_header_amd *)(fw + SECTION_HDR_SIZE);
 	proc_id     = mc_hdr->processor_rev_id;
@@ -864,7 +865,7 @@ load_microcode_amd(bool save, u8 family, const u8 *data, size_t size)
 		return ret;
 
 	memset(amd_ucode_patch, 0, PATCH_MAX_SIZE);
-	memcpy(amd_ucode_patch, p->data, min_t(u32, ksize(p->data), PATCH_MAX_SIZE));
+	memcpy(amd_ucode_patch, p->data, min_t(u32, p->size, PATCH_MAX_SIZE));
 
 	return ret;
 }
arch/x86/kernel/cpu/resctrl/pseudo_lock.c +9 -3
index d7623e1b927d..f186470c2e66 100644
@@ -416,6 +416,7 @@ static int pseudo_lock_fn(void *_rdtgrp)
 	struct pseudo_lock_region *plr = rdtgrp->plr;
 	u32 rmid_p, closid_p;
 	unsigned long i;
+	u64 saved_msr;
 #ifdef CONFIG_KASAN
 	/*
 	 * The registers used for local register variables are also used
@@ -459,6 +460,7 @@ static int pseudo_lock_fn(void *_rdtgrp)
 	 * the buffer and evict pseudo-locked memory read earlier from the
 	 * cache.
 	 */
+	saved_msr = __rdmsr(MSR_MISC_FEATURE_CONTROL);
 	__wrmsr(MSR_MISC_FEATURE_CONTROL, prefetch_disable_bits, 0x0);
 	closid_p = this_cpu_read(pqr_state.cur_closid);
 	rmid_p = this_cpu_read(pqr_state.cur_rmid);
@@ -510,7 +512,7 @@ static int pseudo_lock_fn(void *_rdtgrp)
 	__wrmsr(IA32_PQR_ASSOC, rmid_p, closid_p);
 
 	/* Re-enable the hardware prefetcher(s) */
-	wrmsr(MSR_MISC_FEATURE_CONTROL, 0x0, 0x0);
+	wrmsrl(MSR_MISC_FEATURE_CONTROL, saved_msr);
 	local_irq_enable();
 
 	plr->thread_done = 1;
@@ -867,6 +869,7 @@ bool rdtgroup_pseudo_locked_in_hierarchy(struct rdt_domain *d)
 static int measure_cycles_lat_fn(void *_plr)
 {
 	struct pseudo_lock_region *plr = _plr;
+	u32 saved_low, saved_high;
 	unsigned long i;
 	u64 start, end;
 	void *mem_r;
@@ -875,6 +878,7 @@ static int measure_cycles_lat_fn(void *_plr)
 	/*
 	 * Disable hardware prefetchers.
 	 */
+	rdmsr(MSR_MISC_FEATURE_CONTROL, saved_low, saved_high);
 	wrmsr(MSR_MISC_FEATURE_CONTROL, prefetch_disable_bits, 0x0);
 	mem_r = READ_ONCE(plr->kmem);
 	/*
@@ -891,7 +895,7 @@ static int measure_cycles_lat_fn(void *_plr)
 		end = rdtsc_ordered();
 		trace_pseudo_lock_mem_latency((u32)(end - start));
 	}
-	wrmsr(MSR_MISC_FEATURE_CONTROL, 0x0, 0x0);
+	wrmsr(MSR_MISC_FEATURE_CONTROL, saved_low, saved_high);
 	local_irq_enable();
 	plr->thread_done = 1;
 	wake_up_interruptible(&plr->lock_thread_wq);
@@ -936,6 +940,7 @@ static int measure_residency_fn(struct perf_event_attr *miss_attr,
 	u64 hits_before = 0, hits_after = 0, miss_before = 0, miss_after = 0;
 	struct perf_event *miss_event, *hit_event;
 	int hit_pmcnum, miss_pmcnum;
+	u32 saved_low, saved_high;
 	unsigned int line_size;
 	unsigned int size;
 	unsigned long i;
@@ -969,6 +974,7 @@ static int measure_residency_fn(struct perf_event_attr *miss_attr,
 	/*
 	 * Disable hardware prefetchers.
 	 */
+	rdmsr(MSR_MISC_FEATURE_CONTROL, saved_low, saved_high);
 	wrmsr(MSR_MISC_FEATURE_CONTROL, prefetch_disable_bits, 0x0);
 
 	/* Initialize rest of local variables */
@@ -1027,7 +1033,7 @@ static int measure_residency_fn(struct perf_event_attr *miss_attr,
 	 */
 	rmb();
 	/* Re-enable hardware prefetchers */
-	wrmsr(MSR_MISC_FEATURE_CONTROL, 0x0, 0x0);
+	wrmsr(MSR_MISC_FEATURE_CONTROL, saved_low, saved_high);
 	local_irq_enable();
 out_hit:
 	perf_event_release_kernel(hit_event);
arch/x86/kvm/emulate.c +1 -1
index fcb59dc54bf5..1a1c9c9f3a31 100644
@@ -2020,7 +2020,7 @@ static int em_pop_sreg(struct x86_emulate_ctxt *ctxt)
 	if (rc != X86EMUL_CONTINUE)
 		return rc;
 
-	if (ctxt->modrm_reg == VCPU_SREG_SS)
+	if (seg == VCPU_SREG_SS)
 		ctxt->interruptibility = KVM_X86_SHADOW_INT_MOV_SS;
 	if (ctxt->op_bytes > 2)
 		rsp_increment(ctxt, ctxt->op_bytes - 2);
arch/x86/kvm/vmx/nested.c +21 -9
index a7b62a00913e..6ab0410f1030 100644
@@ -3427,7 +3427,16 @@ static void nested_vmx_inject_exception_vmexit(struct kvm_vcpu *vcpu,
 	u32 intr_info = nr | INTR_INFO_VALID_MASK;
 
 	if (vcpu->arch.exception.has_error_code) {
-		vmcs12->vm_exit_intr_error_code = vcpu->arch.exception.error_code;
+		/*
+		 * Intel CPUs do not generate error codes with bits 31:16 set,
+		 * and more importantly VMX disallows setting bits 31:16 in the
+		 * injected error code for VM-Entry.  Drop the bits to mimic
+		 * hardware and avoid inducing failure on nested VM-Entry if L1
+		 * chooses to inject the exception back to L2.  AMD CPUs _do_
+		 * generate "full" 32-bit error codes, so KVM allows userspace
+		 * to inject exception error codes with bits 31:16 set.
+		 */
+		vmcs12->vm_exit_intr_error_code = (u16)vcpu->arch.exception.error_code;
 		intr_info |= INTR_INFO_DELIVER_CODE_MASK;
 	}
 
@@ -3762,14 +3771,6 @@ static void prepare_vmcs12(struct kvm_vcpu *vcpu, struct vmcs12 *vmcs12,
 			nested_vmx_abort(vcpu,
 					 VMX_ABORT_SAVE_GUEST_MSR_FAIL);
 	}
-
-	/*
-	 * Drop what we picked up for L2 via vmx_complete_interrupts. It is
-	 * preserved above and would only end up incorrectly in L1.
-	 */
-	vcpu->arch.nmi_injected = false;
-	kvm_clear_exception_queue(vcpu);
-	kvm_clear_interrupt_queue(vcpu);
 }
 
 /*
@@ -4104,6 +4105,17 @@ void nested_vmx_vmexit(struct kvm_vcpu *vcpu, u32 exit_reason,
 		WARN_ON_ONCE(nested_early_check);
 	}
 
+	/*
+	 * Drop events/exceptions that were queued for re-injection to L2
+	 * (picked up via vmx_complete_interrupts()), as well as exceptions
+	 * that were pending for L2.  Note, this must NOT be hoisted above
+	 * prepare_vmcs12(), events/exceptions queued for re-injection need to
+	 * be captured in vmcs12 (see vmcs12_save_pending_event()).
+	 */
+	vcpu->arch.nmi_injected = false;
+	kvm_clear_exception_queue(vcpu);
+	kvm_clear_interrupt_queue(vcpu);
+
 	vmx_switch_vmcs(vcpu, &vmx->vmcs01);
 
 	/* Update any VMCS fields that might have changed while L2 ran */
arch/x86/kvm/vmx/vmx.c +11 -1
index d522c9de41df..52f024eeac3d 100644
@@ -1676,7 +1676,17 @@ static void vmx_queue_exception(struct kvm_vcpu *vcpu)
 	kvm_deliver_exception_payload(vcpu);
 
 	if (has_error_code) {
-		vmcs_write32(VM_ENTRY_EXCEPTION_ERROR_CODE, error_code);
+		/*
+		 * Despite the error code being architecturally defined as 32
+		 * bits, and the VMCS field being 32 bits, Intel CPUs and thus
+		 * VMX don't actually supporting setting bits 31:16.  Hardware
+		 * will (should) never provide a bogus error code, but AMD CPUs
+		 * do generate error codes with bits 31:16 set, and so KVM's
+		 * ABI lets userspace shove in arbitrary 32-bit values.  Drop
+		 * the upper bits to avoid VM-Fail, losing information that
+		 * does't really exist is preferable to killing the VM.
+		 */
+		vmcs_write32(VM_ENTRY_EXCEPTION_ERROR_CODE, (u16)error_code);
 		intr_info |= INTR_INFO_DELIVER_CODE_MASK;
 	}
 
crypto/akcipher.c +8 -0
index 7d5cf4939423..ceb0c2fb2b24 100644
@@ -119,6 +119,12 @@ static int akcipher_default_op(struct akcipher_request *req)
 	return -ENOSYS;
 }
 
+static int akcipher_default_set_key(struct crypto_akcipher *tfm,
+				     const void *key, unsigned int keylen)
+{
+	return -ENOSYS;
+}
+
 int crypto_register_akcipher(struct akcipher_alg *alg)
 {
 	struct crypto_alg *base = &alg->base;
@@ -131,6 +137,8 @@ int crypto_register_akcipher(struct akcipher_alg *alg)
 		alg->encrypt = akcipher_default_op;
 	if (!alg->decrypt)
 		alg->decrypt = akcipher_default_op;
+	if (!alg->set_priv_key)
+		alg->set_priv_key = akcipher_default_set_key;
 
 	akcipher_prepare_alg(alg);
 	return crypto_register_alg(base);
drivers/acpi/acpi_video.c +16 -0
index 81cd47d29932..bf18efd49a25 100644
@@ -498,6 +498,22 @@ static const struct dmi_system_id video_dmi_table[] = {
 		DMI_MATCH(DMI_PRODUCT_NAME, "SATELLITE R830"),
 		},
 	},
+	{
+	 .callback = video_disable_backlight_sysfs_if,
+	 .ident = "Toshiba Satellite Z830",
+	 .matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+		DMI_MATCH(DMI_PRODUCT_NAME, "SATELLITE Z830"),
+		},
+	},
+	{
+	 .callback = video_disable_backlight_sysfs_if,
+	 .ident = "Toshiba Portege Z830",
+	 .matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+		DMI_MATCH(DMI_PRODUCT_NAME, "PORTEGE Z830"),
+		},
+	},
 	/*
 	 * Some machine's _DOD IDs don't have bit 31(Device ID Scheme) set
 	 * but the IDs actually follow the Device ID Scheme.
drivers/ata/libahci_platform.c +12 -2
index 8a963d2a951d..c0ac25b80a1f 100644
@@ -451,14 +451,24 @@ struct ahci_host_priv *ahci_platform_get_resources(struct platform_device *pdev,
 		}
 	}
 
-	hpriv->nports = child_nodes = of_get_child_count(dev->of_node);
+	/*
+	 * Too many sub-nodes most likely means having something wrong with
+	 * the firmware.
+	 */
+	child_nodes = of_get_child_count(dev->of_node);
+	if (child_nodes > AHCI_MAX_PORTS) {
+		rc = -EINVAL;
+		goto err_out;
+	}
 
 	/*
 	 * If no sub-node was found, we still need to set nports to
 	 * one in order to be able to use the
 	 * ahci_platform_[en|dis]able_[phys|regulators] functions.
 	 */
-	if (!child_nodes)
+	if (child_nodes)
+		hpriv->nports = child_nodes;
+	else
 		hpriv->nports = 1;
 
 	hpriv->phys = devm_kcalloc(dev, hpriv->nports, sizeof(*hpriv->phys), GFP_KERNEL);
drivers/block/nbd.c +4 -2
index 09323b0510f0..610dc6a36a9d 100644
@@ -1327,10 +1327,12 @@ static int nbd_start_device_ioctl(struct nbd_device *nbd, struct block_device *b
 	mutex_unlock(&nbd->config_lock);
 	ret = wait_event_interruptible(config->recv_wq,
 					 atomic_read(&config->recv_threads) == 0);
-	if (ret)
+	if (ret) {
 		sock_shutdown(nbd);
-	flush_workqueue(nbd->recv_workq);
+		nbd_clear_que(nbd);
+	}
 
+	flush_workqueue(nbd->recv_workq);
 	mutex_lock(&nbd->config_lock);
 	nbd_bdev_reset(bdev);
 	/* user requested, ignore socket errors */
drivers/clk/bcm/clk-bcm2835.c +4 -4
index e637bd6b295b..b4e6a7923233 100644
@@ -967,9 +967,9 @@ static u32 bcm2835_clock_choose_div(struct clk_hw *hw,
 	return div;
 }
 
-static long bcm2835_clock_rate_from_divisor(struct bcm2835_clock *clock,
-					    unsigned long parent_rate,
-					    u32 div)
+static unsigned long bcm2835_clock_rate_from_divisor(struct bcm2835_clock *clock,
+						     unsigned long parent_rate,
+						     u32 div)
 {
 	const struct bcm2835_clock_data *data = clock->data;
 	u64 temp;
@@ -1756,7 +1756,7 @@ static const struct bcm2835_clk_desc clk_desc_array[] = {
 		.load_mask = CM_PLLC_LOADPER,
 		.hold_mask = CM_PLLC_HOLDPER,
 		.fixed_divider = 1,
-		.flags = CLK_SET_RATE_PARENT),
+		.flags = CLK_IS_CRITICAL | CLK_SET_RATE_PARENT),
 
 	/*
 	 * PLLD is the display PLL, used to drive DSI display panels.
drivers/clk/berlin/bg2.c +4 -1
index bccdfa00fd37..67a9edbba29c 100644
@@ -500,12 +500,15 @@ static void __init berlin2_clock_setup(struct device_node *np)
 	int n, ret;
 
 	clk_data = kzalloc(struct_size(clk_data, hws, MAX_CLKS), GFP_KERNEL);
-	if (!clk_data)
+	if (!clk_data) {
+		of_node_put(parent_np);
 		return;
+	}
 	clk_data->num = MAX_CLKS;
 	hws = clk_data->hws;
 
 	gbase = of_iomap(parent_np, 0);
+	of_node_put(parent_np);
 	if (!gbase)
 		return;
 
drivers/clk/berlin/bg2q.c +5 -1
index e9518d35f262..dd2784bb75b6 100644
@@ -286,19 +286,23 @@ static void __init berlin2q_clock_setup(struct device_node *np)
 	int n, ret;
 
 	clk_data = kzalloc(struct_size(clk_data, hws, MAX_CLKS), GFP_KERNEL);
-	if (!clk_data)
+	if (!clk_data) {
+		of_node_put(parent_np);
 		return;
+	}
 	clk_data->num = MAX_CLKS;
 	hws = clk_data->hws;
 
 	gbase = of_iomap(parent_np, 0);
 	if (!gbase) {
+		of_node_put(parent_np);
 		pr_err("%pOF: Unable to map global base\n", np);
 		return;
 	}
 
 	/* BG2Q CPU PLL is not part of global registers */
 	cpupll_base = of_iomap(parent_np, 1);
+	of_node_put(parent_np);
 	if (!cpupll_base) {
 		pr_err("%pOF: Unable to map cpupll base\n", np);
 		iounmap(gbase);
drivers/clk/clk-ast2600.c +1 -1
index 48122f574cb6..8a6c6b9c9a6a 100644
@@ -579,7 +579,7 @@ static int aspeed_g6_clk_probe(struct platform_device *pdev)
 	regmap_write(map, 0x308, 0x12000); /* 3x3 = 9 */
 
 	/* P-Bus (BCLK) clock divider */
-	hw = clk_hw_register_divider_table(dev, "bclk", "hpll", 0,
+	hw = clk_hw_register_divider_table(dev, "bclk", "epll", 0,
 			scu_g6_base + ASPEED_G6_CLK_SELECTION1, 20, 3, 0,
 			ast2600_div_table,
 			&aspeed_g6_clk_lock);
drivers/clk/clk-oxnas.c +4 -2
index 78d5ea669fea..2fe36f579ac5 100644
@@ -207,7 +207,7 @@ static const struct of_device_id oxnas_stdclk_dt_ids[] = {
 
 static int oxnas_stdclk_probe(struct platform_device *pdev)
 {
-	struct device_node *np = pdev->dev.of_node;
+	struct device_node *np = pdev->dev.of_node, *parent_np;
 	const struct oxnas_stdclk_data *data;
 	const struct of_device_id *id;
 	struct regmap *regmap;
@@ -219,7 +219,9 @@ static int oxnas_stdclk_probe(struct platform_device *pdev)
 		return -ENODEV;
 	data = id->data;
 
-	regmap = syscon_node_to_regmap(of_get_parent(np));
+	parent_np = of_get_parent(np);
+	regmap = syscon_node_to_regmap(parent_np);
+	of_node_put(parent_np);
 	if (IS_ERR(regmap)) {
 		dev_err(&pdev->dev, "failed to have parent regmap\n");
 		return PTR_ERR(regmap);
drivers/clk/mediatek/clk-mt8183-mfgcfg.c +3 -3
index 37b4162c5882..3a33014eee7f 100644
@@ -18,9 +18,9 @@ static const struct mtk_gate_regs mfg_cg_regs = {
 	.sta_ofs = 0x0,
 };
 
-#define GATE_MFG(_id, _name, _parent, _shift)			\
-	GATE_MTK(_id, _name, _parent, &mfg_cg_regs, _shift,	\
-		&mtk_clk_gate_ops_setclr)
+#define GATE_MFG(_id, _name, _parent, _shift)				\
+	GATE_MTK_FLAGS(_id, _name, _parent, &mfg_cg_regs, _shift,	\
+		       &mtk_clk_gate_ops_setclr, CLK_SET_RATE_PARENT)
 
 static const struct mtk_gate mfg_clks[] = {
 	GATE_MFG(CLK_MFG_BG3D, "mfg_bg3d", "mfg_sel", 0)
drivers/clk/meson/meson-aoclk.c +4 -1
index bf8bea675d24..6c7110a96194 100644
@@ -36,6 +36,7 @@ int meson_aoclkc_probe(struct platform_device *pdev)
 	struct meson_aoclk_reset_controller *rstc;
 	struct meson_aoclk_data *data;
 	struct device *dev = &pdev->dev;
+	struct device_node *np;
 	struct regmap *regmap;
 	int ret, clkid;
 
@@ -47,7 +48,9 @@ int meson_aoclkc_probe(struct platform_device *pdev)
 	if (!rstc)
 		return -ENOMEM;
 
-	regmap = syscon_node_to_regmap(of_get_parent(dev->of_node));
+	np = of_get_parent(dev->of_node);
+	regmap = syscon_node_to_regmap(np);
+	of_node_put(np);
 	if (IS_ERR(regmap)) {
 		dev_err(dev, "failed to get regmap\n");
 		return PTR_ERR(regmap);
drivers/clk/meson/meson-eeclk.c +4 -1
index a7cb1e7aedc4..18ae38787268 100644
@@ -17,6 +17,7 @@ int meson_eeclkc_probe(struct platform_device *pdev)
 {
 	const struct meson_eeclkc_data *data;
 	struct device *dev = &pdev->dev;
+	struct device_node *np;
 	struct regmap *map;
 	int ret, i;
 
@@ -25,7 +26,9 @@ int meson_eeclkc_probe(struct platform_device *pdev)
 		return -EINVAL;
 
 	/* Get the hhi system controller node */
-	map = syscon_node_to_regmap(of_get_parent(dev->of_node));
+	np = of_get_parent(dev->of_node);
+	map = syscon_node_to_regmap(np);
+	of_node_put(np);
 	if (IS_ERR(map)) {
 		dev_err(dev,
 			"failed to get HHI regmap\n");
drivers/clk/meson/meson8b.c +4 -1
index 082178a0f41a..efddf0d152a4 100644
@@ -3684,13 +3684,16 @@ static void __init meson8b_clkc_init_common(struct device_node *np,
 			struct clk_hw_onecell_data *clk_hw_onecell_data)
 {
 	struct meson8b_clk_reset *rstc;
+	struct device_node *parent_np;
 	const char *notifier_clk_name;
 	struct clk *notifier_clk;
 	void __iomem *clk_base;
 	struct regmap *map;
 	int i, ret;
 
-	map = syscon_node_to_regmap(of_get_parent(np));
+	parent_np = of_get_parent(np);
+	map = syscon_node_to_regmap(parent_np);
+	of_node_put(parent_np);
 	if (IS_ERR(map)) {
 		pr_info("failed to get HHI regmap - Trying obsolete regs\n");
 
drivers/clk/tegra/clk-tegra114.c +1 -0
index 4efcaaf51b3a..586b091651dd 100644
@@ -1337,6 +1337,7 @@ static void __init tegra114_clock_init(struct device_node *np)
 	}
 
 	pmc_base = of_iomap(node, 0);
+	of_node_put(node);
 	if (!pmc_base) {
 		pr_err("Can't map pmc registers\n");
 		WARN_ON(1);
drivers/clk/tegra/clk-tegra20.c +1 -0
index bcd871134f45..3e0f04f0e16e 100644
@@ -1151,6 +1151,7 @@ static void __init tegra20_clock_init(struct device_node *np)
 	}
 
 	pmc_base = of_iomap(node, 0);
+	of_node_put(node);
 	if (!pmc_base) {
 		pr_err("Can't map pmc registers\n");
 		BUG();
drivers/clk/tegra/clk-tegra210.c +1 -0
index df172d5772d7..34155b5b994d 100644
@@ -3523,6 +3523,7 @@ static void __init tegra210_clock_init(struct device_node *np)
 	}
 
 	pmc_base = of_iomap(node, 0);
+	of_node_put(node);
 	if (!pmc_base) {
 		pr_err("Can't map pmc registers\n");
 		WARN_ON(1);
drivers/clk/ti/clk-dra7-atl.c +6 -3
index f65e16c4f3c4..62ea790d79f9 100644
@@ -252,14 +252,16 @@ static int of_dra7_atl_clk_probe(struct platform_device *pdev)
 		if (rc) {
 			pr_err("%s: failed to lookup atl clock %d\n", __func__,
 			       i);
-			return -EINVAL;
+			ret = -EINVAL;
+			goto pm_put;
 		}
 
 		clk = of_clk_get_from_provider(&clkspec);
 		if (IS_ERR(clk)) {
 			pr_err("%s: failed to get atl clock %d from provider\n",
 			       __func__, i);
-			return PTR_ERR(clk);
+			ret = PTR_ERR(clk);
+			goto pm_put;
 		}
 
 		cdesc = to_atl_desc(__clk_get_hw(clk));
@@ -292,8 +294,9 @@ static int of_dra7_atl_clk_probe(struct platform_device *pdev)
 		if (cdesc->enabled)
 			atl_clk_enable(__clk_get_hw(clk));
 	}
-	pm_runtime_put_sync(cinfo->dev);
 
+pm_put:
+	pm_runtime_put_sync(cinfo->dev);
 	return ret;
 }
 
drivers/clk/zynqmp/clkc.c +7 -0
index 6f057ab9df03..4ef201ac8252 100644
@@ -679,6 +679,13 @@ static void zynqmp_get_clock_info(void)
 				  FIELD_PREP(CLK_ATTR_NODE_INDEX, i);
 
 		zynqmp_pm_clock_get_name(clock[i].clk_id, &name);
+
+		/*
+		 * Terminate with NULL character in case name provided by firmware
+		 * is longer and truncated due to size limit.
+		 */
+		name.name[sizeof(name.name) - 1] = '\0';
+
 		if (!strcmp(name.name, RESERVED_CLK_NAME))
 			continue;
 		strncpy(clock[i].clk_name, name.name, MAX_NAME_LEN);
drivers/clk/zynqmp/pll.c +15 -16
index 18fee827602a..3a2a694e5bf3 100644
@@ -98,26 +98,25 @@ static long zynqmp_pll_round_rate(struct clk_hw *hw, unsigned long rate,
 				  unsigned long *prate)
 {
 	u32 fbdiv;
-	long rate_div, f;
+	u32 mult, div;
 
-	/* Enable the fractional mode if needed */
-	rate_div = (rate * FRAC_DIV) / *prate;
-	f = rate_div % FRAC_DIV;
-	if (f) {
-		if (rate > PS_PLL_VCO_MAX) {
-			fbdiv = rate / PS_PLL_VCO_MAX;
-			rate = rate / (fbdiv + 1);
-		}
-		if (rate < PS_PLL_VCO_MIN) {
-			fbdiv = DIV_ROUND_UP(PS_PLL_VCO_MIN, rate);
-			rate = rate * fbdiv;
-		}
-		return rate;
+	/* Let rate fall inside the range PS_PLL_VCO_MIN ~ PS_PLL_VCO_MAX */
+	if (rate > PS_PLL_VCO_MAX) {
+		div = DIV_ROUND_UP(rate, PS_PLL_VCO_MAX);
+		rate = rate / div;
+	}
+	if (rate < PS_PLL_VCO_MIN) {
+		mult = DIV_ROUND_UP(PS_PLL_VCO_MIN, rate);
+		rate = rate * mult;
 	}
 
 	fbdiv = DIV_ROUND_CLOSEST(rate, *prate);
-	fbdiv = clamp_t(u32, fbdiv, PLL_FBDIV_MIN, PLL_FBDIV_MAX);
-	return *prate * fbdiv;
+	if (fbdiv < PLL_FBDIV_MIN || fbdiv > PLL_FBDIV_MAX) {
+		fbdiv = clamp_t(u32, fbdiv, PLL_FBDIV_MIN, PLL_FBDIV_MAX);
+		rate = *prate * fbdiv;
+	}
+
+	return rate;
 }
 
 /**
drivers/crypto/cavium/cpt/cptpf_main.c +4 -2
index 781949027451..d9362199423f 100644
@@ -254,6 +254,7 @@ static int cpt_ucode_load_fw(struct cpt_device *cpt, const u8 *fw, bool is_ae)
 	const struct firmware *fw_entry;
 	struct device *dev = &cpt->pdev->dev;
 	struct ucode_header *ucode;
+	unsigned int code_length;
 	struct microcode *mcode;
 	int j, ret = 0;
 
@@ -264,11 +265,12 @@ static int cpt_ucode_load_fw(struct cpt_device *cpt, const u8 *fw, bool is_ae)
 	ucode = (struct ucode_header *)fw_entry->data;
 	mcode = &cpt->mcode[cpt->next_mc_idx];
 	memcpy(mcode->version, (u8 *)fw_entry->data, CPT_UCODE_VERSION_SZ);
-	mcode->code_size = ntohl(ucode->code_length) * 2;
-	if (!mcode->code_size) {
+	code_length = ntohl(ucode->code_length);
+	if (code_length == 0 || code_length >= INT_MAX / 2) {
 		ret = -EINVAL;
 		goto fw_release;
 	}
+	mcode->code_size = code_length * 2;
 
 	mcode->is_ae = is_ae;
 	mcode->core_mask = 0ULL;
drivers/crypto/ccp/ccp-dmaengine.c +5 -1
index b3eea329f840..b9299defb431 100644
@@ -642,6 +642,10 @@ static void ccp_dma_release(struct ccp_device *ccp)
 	for (i = 0; i < ccp->cmd_q_count; i++) {
 		chan = ccp->ccp_dma_chan + i;
 		dma_chan = &chan->dma_chan;
+
+		if (dma_chan->client_count)
+			dma_release_channel(dma_chan);
+
 		tasklet_kill(&chan->cleanup_tasklet);
 		list_del_rcu(&dma_chan->device_node);
 	}
@@ -767,8 +771,8 @@ void ccp_dmaengine_unregister(struct ccp_device *ccp)
 	if (!dmaengine)
 		return;
 
-	dma_async_device_unregister(dma_dev);
 	ccp_dma_release(ccp);
+	dma_async_device_unregister(dma_dev);
 
 	kmem_cache_destroy(ccp->dma_desc_cache);
 	kmem_cache_destroy(ccp->dma_cmd_cache);
drivers/dma/ioat/dma.c +3 -3
index 8e2a4d1f0be5..997839c2130e 100644
@@ -653,7 +653,7 @@ static void __cleanup(struct ioatdma_chan *ioat_chan, dma_addr_t phys_complete)
 	if (active - i == 0) {
 		dev_dbg(to_dev(ioat_chan), "%s: cancel completion timeout\n",
 			__func__);
-		mod_timer(&ioat_chan->timer, jiffies + IDLE_TIMEOUT);
+		mod_timer_pending(&ioat_chan->timer, jiffies + IDLE_TIMEOUT);
 	}
 
 	/* microsecond delay by sysfs variable  per pending descriptor */
@@ -679,7 +679,7 @@ static void ioat_cleanup(struct ioatdma_chan *ioat_chan)
 
 		if (chanerr &
 		    (IOAT_CHANERR_HANDLE_MASK | IOAT_CHANERR_RECOVER_MASK)) {
-			mod_timer(&ioat_chan->timer, jiffies + IDLE_TIMEOUT);
+			mod_timer_pending(&ioat_chan->timer, jiffies + IDLE_TIMEOUT);
 			ioat_eh(ioat_chan);
 		}
 	}
@@ -876,7 +876,7 @@ static void check_active(struct ioatdma_chan *ioat_chan)
 	}
 
 	if (test_and_clear_bit(IOAT_CHAN_ACTIVE, &ioat_chan->state))
-		mod_timer(&ioat_chan->timer, jiffies + IDLE_TIMEOUT);
+		mod_timer_pending(&ioat_chan->timer, jiffies + IDLE_TIMEOUT);
 }
 
 void ioat_timer_event(struct timer_list *t)
drivers/firmware/efi/libstub/fdt.c +0 -8
index 0bf0190917e0..9d9a3b698351 100644
@@ -291,14 +291,6 @@ efi_status_t allocate_new_fdt_and_exit_boot(efi_system_table_t *sys_table,
 		goto fail;
 	}
 
-	/*
-	 * Now that we have done our final memory allocation (and free)
-	 * we can get the memory map key needed for exit_boot_services().
-	 */
-	status = efi_get_memory_map(sys_table, &map);
-	if (status != EFI_SUCCESS)
-		goto fail_free_new_fdt;
-
 	status = update_fdt(sys_table, (void *)fdt_addr, fdt_size,
 			    (void *)*new_fdt_addr, MAX_FDT_SIZE, cmdline_ptr,
 			    initrd_addr, initrd_size);
drivers/firmware/google/gsmi.c +9 -0
index edaa4e5d84ad..517fb57d07d2 100644
@@ -679,6 +679,15 @@ static struct notifier_block gsmi_die_notifier = {
 static int gsmi_panic_callback(struct notifier_block *nb,
 			       unsigned long reason, void *arg)
 {
+
+	/*
+	 * Panic callbacks are executed with all other CPUs stopped,
+	 * so we must not attempt to spin waiting for gsmi_dev.lock
+	 * to be released.
+	 */
+	if (spin_is_locked(&gsmi_dev.lock))
+		return NOTIFY_DONE;
+
 	gsmi_shutdown_reason(GSMI_SHUTDOWN_PANIC);
 	return NOTIFY_DONE;
 }
drivers/fsi/fsi-core.c +3 -0
index cb980a60af0e..09e571578232 100644
@@ -1271,6 +1271,9 @@ int fsi_master_register(struct fsi_master *master)
 
 	mutex_init(&master->scan_lock);
 	master->idx = ida_simple_get(&master_ida, 0, INT_MAX, GFP_KERNEL);
+	if (master->idx < 0)
+		return master->idx;
+
 	dev_set_name(&master->dev, "fsi%d", master->idx);
 
 	rc = device_register(&master->dev);
drivers/gpu/drm/Kconfig +1 -0
index 649f17dfcf45..fc6c4f81985e 100644
@@ -27,6 +27,7 @@ menuconfig DRM
 config DRM_MIPI_DBI
 	tristate
 	depends on DRM
+	select DRM_KMS_HELPER
 
 config DRM_MIPI_DSI
 	bool
drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c +6 -1
index 0e1cacf73169..cf80da354ba1 100644
@@ -1646,10 +1646,12 @@ amdgpu_connector_add(struct amdgpu_device *adev,
 						   adev->mode_info.dither_property,
 						   AMDGPU_FMT_DITHER_DISABLE);
 
-			if (amdgpu_audio != 0)
+			if (amdgpu_audio != 0) {
 				drm_object_attach_property(&amdgpu_connector->base.base,
 							   adev->mode_info.audio_property,
 							   AMDGPU_AUDIO_AUTO);
+				amdgpu_connector->audio = AMDGPU_AUDIO_AUTO;
+			}
 
 			subpixel_order = SubPixelHorizontalRGB;
 			connector->interlace_allowed = true;
@@ -1771,6 +1773,7 @@ amdgpu_connector_add(struct amdgpu_device *adev,
 				drm_object_attach_property(&amdgpu_connector->base.base,
 							   adev->mode_info.audio_property,
 							   AMDGPU_AUDIO_AUTO);
+				amdgpu_connector->audio = AMDGPU_AUDIO_AUTO;
 			}
 			drm_object_attach_property(&amdgpu_connector->base.base,
 						   adev->mode_info.dither_property,
@@ -1824,6 +1827,7 @@ amdgpu_connector_add(struct amdgpu_device *adev,
 				drm_object_attach_property(&amdgpu_connector->base.base,
 							   adev->mode_info.audio_property,
 							   AMDGPU_AUDIO_AUTO);
+				amdgpu_connector->audio = AMDGPU_AUDIO_AUTO;
 			}
 			drm_object_attach_property(&amdgpu_connector->base.base,
 						   adev->mode_info.dither_property,
@@ -1874,6 +1878,7 @@ amdgpu_connector_add(struct amdgpu_device *adev,
 				drm_object_attach_property(&amdgpu_connector->base.base,
 							   adev->mode_info.audio_property,
 							   AMDGPU_AUDIO_AUTO);
+				amdgpu_connector->audio = AMDGPU_AUDIO_AUTO;
 			}
 			drm_object_attach_property(&amdgpu_connector->base.base,
 						   adev->mode_info.dither_property,
drivers/gpu/drm/amd/display/dc/calcs/bw_fixed.c +3 -3
index 6ca288fb5fb9..2d46bc527b21 100644
@@ -26,12 +26,12 @@
 #include "bw_fixed.h"
 
 
-#define MIN_I64 \
-	(int64_t)(-(1LL << 63))
-
 #define MAX_I64 \
 	(int64_t)((1ULL << 63) - 1)
 
+#define MIN_I64 \
+	(-MAX_I64 - 1)
+
 #define FRACTIONAL_PART_MASK \
 	((1ULL << BW_FIXED_BITS_PER_FRACTIONAL_PART) - 1)
 
drivers/gpu/drm/bridge/adv7511/adv7511.h +1 -4
index 52b2adfdc877..90a721226231 100644
@@ -384,10 +384,7 @@ void adv7511_cec_irq_process(struct adv7511 *adv7511, unsigned int irq1);
 #else
 static inline int adv7511_cec_init(struct device *dev, struct adv7511 *adv7511)
 {
-	unsigned int offset = adv7511->type == ADV7533 ?
-						ADV7533_REG_CEC_OFFSET : 0;
-
-	regmap_write(adv7511->regmap, ADV7511_REG_CEC_CTRL + offset,
+	regmap_write(adv7511->regmap, ADV7511_REG_CEC_CTRL,
 		     ADV7511_CEC_CTRL_POWER_DOWN);
 	return 0;
 }
drivers/gpu/drm/bridge/adv7511/adv7511_cec.c +2 -2
index a20a45c0b353..ddd1305b82b2 100644
@@ -316,7 +316,7 @@ int adv7511_cec_init(struct device *dev, struct adv7511 *adv7511)
 		goto err_cec_alloc;
 	}
 
-	regmap_write(adv7511->regmap, ADV7511_REG_CEC_CTRL + offset, 0);
+	regmap_write(adv7511->regmap, ADV7511_REG_CEC_CTRL, 0);
 	/* cec soft reset */
 	regmap_write(adv7511->regmap_cec,
 		     ADV7511_REG_CEC_SOFT_RESET + offset, 0x01);
@@ -343,7 +343,7 @@ int adv7511_cec_init(struct device *dev, struct adv7511 *adv7511)
 	dev_info(dev, "Initializing CEC failed with error %d, disabling CEC\n",
 		 ret);
 err_cec_parse_dt:
-	regmap_write(adv7511->regmap, ADV7511_REG_CEC_CTRL + offset,
+	regmap_write(adv7511->regmap, ADV7511_REG_CEC_CTRL,
 		     ADV7511_CEC_CTRL_POWER_DOWN);
 	return ret == -EPROBE_DEFER ? ret : 0;
 }
drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c +3 -1
index 5302dd90a7a5..b72f6f541d4e 100644
@@ -279,7 +279,9 @@ static void ge_b850v3_lvds_remove(void)
 	 * This check is to avoid both the drivers
 	 * removing the bridge in their remove() function
 	 */
-	if (!ge_b850v3_lvds_ptr)
+	if (!ge_b850v3_lvds_ptr ||
+	    !ge_b850v3_lvds_ptr->stdp2690_i2c ||
+		!ge_b850v3_lvds_ptr->stdp4028_i2c)
 		goto out;
 
 	drm_bridge_remove(&ge_b850v3_lvds_ptr->bridge);
drivers/gpu/drm/drm_ioctl.c +7 -1
index 76b6676b0106..5b93150b1141 100644
@@ -473,7 +473,13 @@ EXPORT_SYMBOL(drm_invalid_op);
  */
 static int drm_copy_field(char __user *buf, size_t *buf_len, const char *value)
 {
-	int len;
+	size_t len;
+
+	/* don't attempt to copy a NULL pointer */
+	if (WARN_ONCE(!value, "BUG: the value to copy was not set!")) {
+		*buf_len = 0;
+		return 0;
+	}
 
 	/* don't overflow userbuf */
 	len = strlen(value);
drivers/gpu/drm/drm_mipi_dsi.c +1 -0
index b99f96dcc6f1..bb7f72ade628 100644
@@ -300,6 +300,7 @@ static int mipi_dsi_remove_device_fn(struct device *dev, void *priv)
 {
 	struct mipi_dsi_device *dsi = to_mipi_dsi_device(dev);
 
+	mipi_dsi_detach(dsi);
 	mipi_dsi_device_unregister(dsi);
 
 	return 0;
drivers/gpu/drm/drm_panel_orientation_quirks.c +6 -0
index f5ab891731d0..083273736c83 100644
@@ -128,6 +128,12 @@ static const struct dmi_system_id orientation_data[] = {
 		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "One S1003"),
 		},
 		.driver_data = (void *)&lcd800x1280_rightside_up,
+	}, {	/* Anbernic Win600 */
+		.matches = {
+		  DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "Anbernic"),
+		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Win600"),
+		},
+		.driver_data = (void *)&lcd720x1280_rightside_up,
 	}, {	/* Asus T100HA */
 		.matches = {
 		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c +5 -7
index c08c67338d73..a74f8ae1a894 100644
@@ -596,12 +596,10 @@ static void _dpu_kms_hw_destroy(struct dpu_kms *dpu_kms)
 	_dpu_kms_mmu_destroy(dpu_kms);
 
 	if (dpu_kms->catalog) {
-		for (i = 0; i < dpu_kms->catalog->vbif_count; i++) {
-			u32 vbif_idx = dpu_kms->catalog->vbif[i].id;
-
-			if ((vbif_idx < VBIF_MAX) && dpu_kms->hw_vbif[vbif_idx]) {
-				dpu_hw_vbif_destroy(dpu_kms->hw_vbif[vbif_idx]);
-				dpu_kms->hw_vbif[vbif_idx] = NULL;
+		for (i = 0; i < ARRAY_SIZE(dpu_kms->hw_vbif); i++) {
+			if (dpu_kms->hw_vbif[i]) {
+				dpu_hw_vbif_destroy(dpu_kms->hw_vbif[i]);
+				dpu_kms->hw_vbif[i] = NULL;
 			}
 		}
 	}
@@ -899,7 +897,7 @@ static int dpu_kms_hw_init(struct msm_kms *kms)
 	for (i = 0; i < dpu_kms->catalog->vbif_count; i++) {
 		u32 vbif_idx = dpu_kms->catalog->vbif[i].id;
 
-		dpu_kms->hw_vbif[i] = dpu_hw_vbif_init(vbif_idx,
+		dpu_kms->hw_vbif[vbif_idx] = dpu_hw_vbif_init(vbif_idx,
 				dpu_kms->vbif[vbif_idx], dpu_kms->catalog);
 		if (IS_ERR_OR_NULL(dpu_kms->hw_vbif[vbif_idx])) {
 			rc = PTR_ERR(dpu_kms->hw_vbif[vbif_idx]);
drivers/gpu/drm/msm/disp/dpu1/dpu_vbif.c +13 -16
index 8d24b79fd400..5e6bb2f306be 100644
@@ -11,6 +11,14 @@
 #include "dpu_hw_vbif.h"
 #include "dpu_trace.h"
 
+static struct dpu_hw_vbif *dpu_get_vbif(struct dpu_kms *dpu_kms, enum dpu_vbif vbif_idx)
+{
+	if (vbif_idx < ARRAY_SIZE(dpu_kms->hw_vbif))
+		return dpu_kms->hw_vbif[vbif_idx];
+
+	return NULL;
+}
+
 /**
  * _dpu_vbif_wait_for_xin_halt - wait for the xin to halt
  * @vbif:	Pointer to hardware vbif driver
@@ -148,11 +156,11 @@ static u32 _dpu_vbif_get_ot_limit(struct dpu_hw_vbif *vbif,
 void dpu_vbif_set_ot_limit(struct dpu_kms *dpu_kms,
 		struct dpu_vbif_set_ot_params *params)
 {
-	struct dpu_hw_vbif *vbif = NULL;
+	struct dpu_hw_vbif *vbif;
 	struct dpu_hw_mdp *mdp;
 	bool forced_on = false;
 	u32 ot_lim;
-	int ret, i;
+	int ret;
 
 	if (!dpu_kms) {
 		DPU_ERROR("invalid arguments\n");
@@ -160,12 +168,7 @@ void dpu_vbif_set_ot_limit(struct dpu_kms *dpu_kms,
 	}
 	mdp = dpu_kms->hw_mdp;
 
-	for (i = 0; i < ARRAY_SIZE(dpu_kms->hw_vbif); i++) {
-		if (dpu_kms->hw_vbif[i] &&
-				dpu_kms->hw_vbif[i]->idx == params->vbif_idx)
-			vbif = dpu_kms->hw_vbif[i];
-	}
-
+	vbif = dpu_get_vbif(dpu_kms, params->vbif_idx);
 	if (!vbif || !mdp) {
 		DPU_DEBUG("invalid arguments vbif %d mdp %d\n",
 				vbif != 0, mdp != 0);
@@ -208,7 +211,7 @@ void dpu_vbif_set_ot_limit(struct dpu_kms *dpu_kms,
 void dpu_vbif_set_qos_remap(struct dpu_kms *dpu_kms,
 		struct dpu_vbif_set_qos_params *params)
 {
-	struct dpu_hw_vbif *vbif = NULL;
+	struct dpu_hw_vbif *vbif;
 	struct dpu_hw_mdp *mdp;
 	bool forced_on = false;
 	const struct dpu_vbif_qos_tbl *qos_tbl;
@@ -220,13 +223,7 @@ void dpu_vbif_set_qos_remap(struct dpu_kms *dpu_kms,
 	}
 	mdp = dpu_kms->hw_mdp;
 
-	for (i = 0; i < ARRAY_SIZE(dpu_kms->hw_vbif); i++) {
-		if (dpu_kms->hw_vbif[i] &&
-				dpu_kms->hw_vbif[i]->idx == params->vbif_idx) {
-			vbif = dpu_kms->hw_vbif[i];
-			break;
-		}
-	}
+	vbif = dpu_get_vbif(dpu_kms, params->vbif_idx);
 
 	if (!vbif || !vbif->cap) {
 		DPU_ERROR("invalid vbif %d\n", params->vbif_idx);
drivers/gpu/drm/nouveau/nouveau_bo.c +3 -1
index f7603be569fc..9f9c70734180 100644
@@ -276,8 +276,10 @@ nouveau_bo_alloc(struct nouveau_cli *cli, u64 *size, int *align, u32 flags,
 			break;
 	}
 
-	if (WARN_ON(pi < 0))
+	if (WARN_ON(pi < 0)) {
+		kfree(nvbo);
 		return ERR_PTR(-EINVAL);
+	}
 
 	/* Disable compression if suitable settings couldn't be found. */
 	if (nvbo->comp && !vmm->page[pi].comp) {
drivers/gpu/drm/nouveau/nouveau_prime.c +0 -1
index f9ee562f72d3..25cbe4ef383b 100644
@@ -90,7 +90,6 @@ struct drm_gem_object *nouveau_gem_prime_import_sg_table(struct drm_device *dev,
 
 	ret = nouveau_bo_init(nvbo, size, align, flags, sg, robj);
 	if (ret) {
-		nouveau_bo_ref(NULL, &nvbo);
 		obj = ERR_PTR(ret);
 		goto unlock;
 	}
drivers/gpu/drm/omapdrm/dss/dss.c +3 -0
index ac93dae2a9c8..7f1d0a9afafb 100644
@@ -1173,6 +1173,7 @@ static void __dss_uninit_ports(struct dss_device *dss, unsigned int num_ports)
 		default:
 			break;
 		}
+		of_node_put(port);
 	}
 }
 
@@ -1205,11 +1206,13 @@ static int dss_init_ports(struct dss_device *dss)
 		default:
 			break;
 		}
+		of_node_put(port);
 	}
 
 	return 0;
 
 error:
+	of_node_put(port);
 	__dss_uninit_ports(dss, i);
 	return r;
 }
drivers/gpu/drm/vc4/vc4_vec.c +2 -2
index 7402bc768664..0c764fd8399a 100644
@@ -256,7 +256,7 @@ static void vc4_vec_ntsc_j_mode_set(struct vc4_vec *vec)
 static const struct drm_display_mode ntsc_mode = {
 	DRM_MODE("720x480", DRM_MODE_TYPE_DRIVER, 13500,
 		 720, 720 + 14, 720 + 14 + 64, 720 + 14 + 64 + 60, 0,
-		 480, 480 + 3, 480 + 3 + 3, 480 + 3 + 3 + 16, 0,
+		 480, 480 + 7, 480 + 7 + 6, 525, 0,
 		 DRM_MODE_FLAG_INTERLACE)
 };
 
@@ -278,7 +278,7 @@ static void vc4_vec_pal_m_mode_set(struct vc4_vec *vec)
 static const struct drm_display_mode pal_mode = {
 	DRM_MODE("720x576", DRM_MODE_TYPE_DRIVER, 13500,
 		 720, 720 + 20, 720 + 20 + 64, 720 + 20 + 64 + 60, 0,
-		 576, 576 + 2, 576 + 2 + 3, 576 + 2 + 3 + 20, 0,
+		 576, 576 + 4, 576 + 4 + 6, 625, 0,
 		 DRM_MODE_FLAG_INTERLACE)
 };
 
drivers/hid/hid-multitouch.c +4 -4
index 653f436aa459..463a8deae37e 100644
@@ -1162,7 +1162,7 @@ static void mt_touch_report(struct hid_device *hid,
 	int contact_count = -1;
 
 	/* sticky fingers release in progress, abort */
-	if (test_and_set_bit(MT_IO_FLAGS_RUNNING, &td->mt_io_flags))
+	if (test_and_set_bit_lock(MT_IO_FLAGS_RUNNING, &td->mt_io_flags))
 		return;
 
 	scantime = *app->scantime;
@@ -1243,7 +1243,7 @@ static void mt_touch_report(struct hid_device *hid,
 			del_timer(&td->release_timer);
 	}
 
-	clear_bit(MT_IO_FLAGS_RUNNING, &td->mt_io_flags);
+	clear_bit_unlock(MT_IO_FLAGS_RUNNING, &td->mt_io_flags);
 }
 
 static int mt_touch_input_configured(struct hid_device *hdev,
@@ -1680,11 +1680,11 @@ static void mt_expired_timeout(struct timer_list *t)
 	 * An input report came in just before we release the sticky fingers,
 	 * it will take care of the sticky fingers.
 	 */
-	if (test_and_set_bit(MT_IO_FLAGS_RUNNING, &td->mt_io_flags))
+	if (test_and_set_bit_lock(MT_IO_FLAGS_RUNNING, &td->mt_io_flags))
 		return;
 	if (test_bit(MT_IO_FLAGS_PENDING_SLOTS, &td->mt_io_flags))
 		mt_release_contacts(hdev);
-	clear_bit(MT_IO_FLAGS_RUNNING, &td->mt_io_flags);
+	clear_bit_unlock(MT_IO_FLAGS_RUNNING, &td->mt_io_flags);
 }
 
 static int mt_probe(struct hid_device *hdev, const struct hid_device_id *id)
drivers/hid/hid-roccat.c +4 -0
index 26373b82fe81..6da80e442fdd 100644
@@ -257,6 +257,8 @@ int roccat_report_event(int minor, u8 const *data)
 	if (!new_value)
 		return -ENOMEM;
 
+	mutex_lock(&device->cbuf_lock);
+
 	report = &device->cbuf[device->cbuf_end];
 
 	/* passing NULL is safe */
@@ -276,6 +278,8 @@ int roccat_report_event(int minor, u8 const *data)
 			reader->cbuf_start = (reader->cbuf_start + 1) % ROCCAT_CBUF_SIZE;
 	}
 
+	mutex_unlock(&device->cbuf_lock);
+
 	wake_up_interruptible(&device->wait);
 	return 0;
 }
drivers/hsi/controllers/omap_ssi_core.c +1 -0
index f36036be7f03..5aa6955b609f 100644
@@ -524,6 +524,7 @@ static int ssi_probe(struct platform_device *pd)
 		if (!childpdev) {
 			err = -ENODEV;
 			dev_err(&pd->dev, "failed to create ssi controller port\n");
+			of_node_put(child);
 			goto out3;
 		}
 	}
drivers/hsi/controllers/omap_ssi_port.c +4 -4
index a0cb5be246e1..b9495b720f1b 100644
@@ -230,10 +230,10 @@ static int ssi_start_dma(struct hsi_msg *msg, int lch)
 	if (msg->ttype == HSI_MSG_READ) {
 		err = dma_map_sg(&ssi->device, msg->sgt.sgl, msg->sgt.nents,
 							DMA_FROM_DEVICE);
-		if (err < 0) {
+		if (!err) {
 			dev_dbg(&ssi->device, "DMA map SG failed !\n");
 			pm_runtime_put_autosuspend(omap_port->pdev);
-			return err;
+			return -EIO;
 		}
 		csdp = SSI_DST_BURST_4x32_BIT | SSI_DST_MEMORY_PORT |
 			SSI_SRC_SINGLE_ACCESS0 | SSI_SRC_PERIPHERAL_PORT |
@@ -247,10 +247,10 @@ static int ssi_start_dma(struct hsi_msg *msg, int lch)
 	} else {
 		err = dma_map_sg(&ssi->device, msg->sgt.sgl, msg->sgt.nents,
 							DMA_TO_DEVICE);
-		if (err < 0) {
+		if (!err) {
 			dev_dbg(&ssi->device, "DMA map SG failed !\n");
 			pm_runtime_put_autosuspend(omap_port->pdev);
-			return err;
+			return -EIO;
 		}
 		csdp = SSI_SRC_BURST_4x32_BIT | SSI_SRC_MEMORY_PORT |
 			SSI_DST_SINGLE_ACCESS0 | SSI_DST_PERIPHERAL_PORT |
drivers/iio/adc/at91-sama5d2_adc.c +11 -3
index 8854da453669..734762084968 100644
@@ -73,7 +73,7 @@
 #define	AT91_SAMA5D2_MR_ANACH		BIT(23)
 /* Tracking Time */
 #define	AT91_SAMA5D2_MR_TRACKTIM(v)	((v) << 24)
-#define	AT91_SAMA5D2_MR_TRACKTIM_MAX	0xff
+#define	AT91_SAMA5D2_MR_TRACKTIM_MAX	0xf
 /* Transfer Time */
 #define	AT91_SAMA5D2_MR_TRANSFER(v)	((v) << 28)
 #define	AT91_SAMA5D2_MR_TRANSFER_MAX	0x3
@@ -1321,10 +1321,12 @@ static int at91_adc_read_info_raw(struct iio_dev *indio_dev,
 		ret = at91_adc_read_position(st, chan->channel,
 					     &tmp_val);
 		*val = tmp_val;
+		if (ret > 0)
+			ret = at91_adc_adjust_val_osr(st, val);
 		mutex_unlock(&st->lock);
 		iio_device_release_direct_mode(indio_dev);
 
-		return at91_adc_adjust_val_osr(st, val);
+		return ret;
 	}
 	if (chan->type == IIO_PRESSURE) {
 		ret = iio_device_claim_direct_mode(indio_dev);
@@ -1335,10 +1337,12 @@ static int at91_adc_read_info_raw(struct iio_dev *indio_dev,
 		ret = at91_adc_read_pressure(st, chan->channel,
 					     &tmp_val);
 		*val = tmp_val;
+		if (ret > 0)
+			ret = at91_adc_adjust_val_osr(st, val);
 		mutex_unlock(&st->lock);
 		iio_device_release_direct_mode(indio_dev);
 
-		return at91_adc_adjust_val_osr(st, val);
+		return ret;
 	}
 
 	/* in this case we have a voltage channel */
@@ -1429,16 +1433,20 @@ static int at91_adc_write_raw(struct iio_dev *indio_dev,
 		/* if no change, optimize out */
 		if (val == st->oversampling_ratio)
 			return 0;
+		mutex_lock(&st->lock);
 		st->oversampling_ratio = val;
 		/* update ratio */
 		at91_adc_config_emr(st);
+		mutex_unlock(&st->lock);
 		return 0;
 	case IIO_CHAN_INFO_SAMP_FREQ:
 		if (val < st->soc_info.min_sample_rate ||
 		    val > st->soc_info.max_sample_rate)
 			return -EINVAL;
 
+		mutex_lock(&st->lock);
 		at91_adc_setup_samp_freq(indio_dev, val);
+		mutex_unlock(&st->lock);
 		return 0;
 	default:
 		return -EINVAL;
drivers/iio/dac/ad5593r.c +27 -19

77 lines not on this page · raw message

drivers/iio/inkern.c +4 -2
index ca0fe902a7db..d00f3045557c 100644
@@ -136,9 +136,10 @@ static int __of_iio_channel_get(struct iio_channel *channel,
 
 	idev = bus_find_device(&iio_bus_type, NULL, iiospec.np,
 			       iio_dev_node_match);
-	of_node_put(iiospec.np);
-	if (idev == NULL)
+	if (idev == NULL) {
+		of_node_put(iiospec.np);
 		return -EPROBE_DEFER;
+	}
 
 	indio_dev = dev_to_iio_dev(idev);
 	channel->indio_dev = indio_dev;
@@ -146,6 +147,7 @@ static int __of_iio_channel_get(struct iio_channel *channel,
 		index = indio_dev->info->of_xlate(indio_dev, &iiospec);
 	else
 		index = __of_iio_simple_xlate(indio_dev, &iiospec);
+	of_node_put(iiospec.np);
 	if (index < 0)
 		goto err_put;
 	channel->channel = &indio_dev->channels[index];
drivers/iio/pressure/dps310.c +163 -99

325 lines not on this page · raw message

drivers/infiniband/sw/rxe/rxe_qp.c +7 -3
index 57f111fe5443..89f6d54a4312 100644
@@ -805,7 +805,9 @@ void rxe_qp_destroy(struct rxe_qp *qp)
 	rxe_cleanup_task(&qp->comp.task);
 
 	/* flush out any receive wr's or pending requests */
-	__rxe_do_task(&qp->req.task);
+	if (qp->req.task.func)
+		__rxe_do_task(&qp->req.task);
+
 	if (qp->sq.queue) {
 		__rxe_do_task(&qp->comp.task);
 		__rxe_do_task(&qp->req.task);
@@ -845,8 +847,10 @@ static void rxe_qp_do_cleanup(struct work_struct *work)
 
 	free_rd_atomic_resources(qp);
 
-	kernel_sock_shutdown(qp->sk, SHUT_RDWR);
-	sock_release(qp->sk);
+	if (qp->sk) {
+		kernel_sock_shutdown(qp->sk, SHUT_RDWR);
+		sock_release(qp->sk);
+	}
 }
 
 /* called when the last reference to the qp is dropped */
drivers/infiniband/sw/siw/siw_qp_rx.c +15 -12
index 5f94c716301f..e8a1aa07f058 100644
@@ -961,27 +961,28 @@ int siw_proc_terminate(struct siw_qp *qp)
 static int siw_get_trailer(struct siw_qp *qp, struct siw_rx_stream *srx)
 {
 	struct sk_buff *skb = srx->skb;
+	int avail = min(srx->skb_new, srx->fpdu_part_rem);
 	u8 *tbuf = (u8 *)&srx->trailer.crc - srx->pad;
 	__wsum crc_in, crc_own = 0;
 
 	siw_dbg_qp(qp, "expected %d, available %d, pad %u\n",
 		   srx->fpdu_part_rem, srx->skb_new, srx->pad);
 
-	if (srx->skb_new < srx->fpdu_part_rem)
-		return -EAGAIN;
-
-	skb_copy_bits(skb, srx->skb_offset, tbuf, srx->fpdu_part_rem);
+	skb_copy_bits(skb, srx->skb_offset, tbuf, avail);
 
-	if (srx->mpa_crc_hd && srx->pad)
-		crypto_shash_update(srx->mpa_crc_hd, tbuf, srx->pad);
+	srx->skb_new -= avail;
+	srx->skb_offset += avail;
+	srx->skb_copied += avail;
+	srx->fpdu_part_rem -= avail;
 
-	srx->skb_new -= srx->fpdu_part_rem;
-	srx->skb_offset += srx->fpdu_part_rem;
-	srx->skb_copied += srx->fpdu_part_rem;
+	if (srx->fpdu_part_rem)
+		return -EAGAIN;
 
 	if (!srx->mpa_crc_hd)
 		return 0;
 
+	if (srx->pad)
+		crypto_shash_update(srx->mpa_crc_hd, tbuf, srx->pad);
 	/*
 	 * CRC32 is computed, transmitted and received directly in NBO,
 	 * so there's never a reason to convert byte order.
@@ -1083,10 +1084,9 @@ static int siw_get_hdr(struct siw_rx_stream *srx)
 	 * completely received.
 	 */
 	if (iwarp_pktinfo[opcode].hdr_len > sizeof(struct iwarp_ctrl_tagged)) {
-		bytes = iwarp_pktinfo[opcode].hdr_len - MIN_DDP_HDR;
+		int hdrlen = iwarp_pktinfo[opcode].hdr_len;
 
-		if (srx->skb_new < bytes)
-			return -EAGAIN;
+		bytes = min_t(int, hdrlen - MIN_DDP_HDR, srx->skb_new);
 
 		skb_copy_bits(skb, srx->skb_offset,
 			      (char *)c_hdr + srx->fpdu_part_rcvd, bytes);
@@ -1096,6 +1096,9 @@ static int siw_get_hdr(struct siw_rx_stream *srx)
 		srx->skb_new -= bytes;
 		srx->skb_offset += bytes;
 		srx->skb_copied += bytes;
+
+		if (srx->fpdu_part_rcvd < hdrlen)
+			return -EAGAIN;
 	}
 
 	/*
drivers/iommu/omap-iommu-debug.c +3 -3
index a99afb5d9011..259f65291d90 100644
@@ -32,12 +32,12 @@ static inline bool is_omap_iommu_detached(struct omap_iommu *obj)
 		ssize_t bytes;						\
 		const char *str = "%20s: %08x\n";			\
 		const int maxcol = 32;					\
-		bytes = snprintf(p, maxcol, str, __stringify(name),	\
+		if (len < maxcol)					\
+			goto out;					\
+		bytes = scnprintf(p, maxcol, str, __stringify(name),	\
 				 iommu_read_reg(obj, MMU_##name));	\
 		p += bytes;						\
 		len -= bytes;						\
-		if (len < maxcol)					\
-			goto out;					\
 	} while (0)
 
 static ssize_t
drivers/isdn/mISDN/l1oip.h +1 -0
index 7ea10db20e3a..48133d022812 100644
@@ -59,6 +59,7 @@ struct l1oip {
 	int			bundle;		/* bundle channels in one frm */
 	int			codec;		/* codec to use for transmis. */
 	int			limit;		/* limit number of bchannels */
+	bool			shutdown;	/* if card is released */
 
 	/* timer */
 	struct timer_list	keep_tl;
drivers/isdn/mISDN/l1oip_core.c +7 -6
index b57dcb834594..aec4f2a69c3b 100644
@@ -275,7 +275,7 @@ l1oip_socket_send(struct l1oip *hc, u8 localcodec, u8 channel, u32 chanmask,
 	p = frame;
 
 	/* restart timer */
-	if (time_before(hc->keep_tl.expires, jiffies + 5 * HZ))
+	if (time_before(hc->keep_tl.expires, jiffies + 5 * HZ) && !hc->shutdown)
 		mod_timer(&hc->keep_tl, jiffies + L1OIP_KEEPALIVE * HZ);
 	else
 		hc->keep_tl.expires = jiffies + L1OIP_KEEPALIVE * HZ;
@@ -601,7 +601,9 @@ l1oip_socket_parse(struct l1oip *hc, struct sockaddr_in *sin, u8 *buf, int len)
 		goto multiframe;
 
 	/* restart timer */
-	if (time_before(hc->timeout_tl.expires, jiffies + 5 * HZ) || !hc->timeout_on) {
+	if ((time_before(hc->timeout_tl.expires, jiffies + 5 * HZ) ||
+	     !hc->timeout_on) &&
+	    !hc->shutdown) {
 		hc->timeout_on = 1;
 		mod_timer(&hc->timeout_tl, jiffies + L1OIP_TIMEOUT * HZ);
 	} else /* only adjust timer */
@@ -1232,11 +1234,10 @@ release_card(struct l1oip *hc)
 {
 	int	ch;
 
-	if (timer_pending(&hc->keep_tl))
-		del_timer(&hc->keep_tl);
+	hc->shutdown = true;
 
-	if (timer_pending(&hc->timeout_tl))
-		del_timer(&hc->timeout_tl);
+	del_timer_sync(&hc->keep_tl);
+	del_timer_sync(&hc->timeout_tl);
 
 	cancel_work_sync(&hc->workq);
 
drivers/mailbox/bcm-flexrm-mailbox.c +4 -4
index 8ee9db274802..f7191dbef6fa 100644
@@ -632,15 +632,15 @@ static int flexrm_spu_dma_map(struct device *dev, struct brcm_message *msg)
 
 	rc = dma_map_sg(dev, msg->spu.src, sg_nents(msg->spu.src),
 			DMA_TO_DEVICE);
-	if (rc < 0)
-		return rc;
+	if (!rc)
+		return -EIO;
 
 	rc = dma_map_sg(dev, msg->spu.dst, sg_nents(msg->spu.dst),
 			DMA_FROM_DEVICE);
-	if (rc < 0) {
+	if (!rc) {
 		dma_unmap_sg(dev, msg->spu.src, sg_nents(msg->spu.src),
 			     DMA_TO_DEVICE);
-		return rc;
+		return -EIO;
 	}
 
 	return 0;
drivers/md/bcache/writeback.c +52 -21

92 lines not on this page · raw message

drivers/md/raid0.c +2 -2
index 0ead5a7887f1..8cbaa99e5b98 100644
@@ -63,8 +63,8 @@ static void dump_zones(struct mddev *mddev)
 		int len = 0;
 
 		for (k = 0; k < conf->strip_zone[j].nb_dev; k++)
-			len += snprintf(line+len, 200-len, "%s%s", k?"/":"",
-					bdevname(conf->devlist[j*raid_disks
+			len += scnprintf(line+len, 200-len, "%s%s", k?"/":"",
+					 bdevname(conf->devlist[j*raid_disks
 							       + k]->bdev, b));
 		pr_debug("md: zone%d=[%s]\n", j, line);
 
drivers/md/raid5.c +13 -1
index fe99e8cdc026..d0c3f49c8c16 100644
@@ -36,6 +36,7 @@
  */
 
 #include <linux/blkdev.h>
+#include <linux/delay.h>
 #include <linux/kthread.h>
 #include <linux/raid/pq.h>
 #include <linux/async_tx.h>
@@ -3728,7 +3729,7 @@ static void handle_stripe_fill(struct stripe_head *sh,
 		 * back cache (prexor with orig_page, and then xor with
 		 * page) in the read path
 		 */
-		if (s->injournal && s->failed) {
+		if (s->to_read && s->injournal && s->failed) {
 			if (test_bit(STRIPE_R5C_CACHING, &sh->state))
 				r5c_make_stripe_write_out(sh);
 			goto out;
@@ -6334,7 +6335,18 @@ static void raid5d(struct md_thread *thread)
 			spin_unlock_irq(&conf->device_lock);
 			md_check_recovery(mddev);
 			spin_lock_irq(&conf->device_lock);
+
+			/*
+			 * Waiting on MD_SB_CHANGE_PENDING below may deadlock
+			 * seeing md_check_recovery() is needed to clear
+			 * the flag when using mdmon.
+			 */
+			continue;
 		}
+
+		wait_event_lock_irq(mddev->sb_wait,
+			!test_bit(MD_SB_CHANGE_PENDING, &mddev->sb_flags),
+			conf->device_lock);
 	}
 	pr_debug("%d stripes handled\n", handled);
 
drivers/media/pci/cx88/cx88-vbi.c +4 -5
index 58489ea0c1da..7cf2271866d0 100644
@@ -144,11 +144,10 @@ static int buffer_prepare(struct vb2_buffer *vb)
 		return -EINVAL;
 	vb2_set_plane_payload(vb, 0, size);
 
-	cx88_risc_buffer(dev->pci, &buf->risc, sgt->sgl,
-			 0, VBI_LINE_LENGTH * lines,
-			 VBI_LINE_LENGTH, 0,
-			 lines);
-	return 0;
+	return cx88_risc_buffer(dev->pci, &buf->risc, sgt->sgl,
+				0, VBI_LINE_LENGTH * lines,
+				VBI_LINE_LENGTH, 0,
+				lines);
 }
 
 static void buffer_finish(struct vb2_buffer *vb)
drivers/media/pci/cx88/cx88-video.c +22 -21

70 lines not on this page · raw message

drivers/media/platform/exynos4-is/fimc-is.c +1 -0
index 9bb14bb2e498..c78c2a7f03fa 100644
@@ -214,6 +214,7 @@ static int fimc_is_register_subdevs(struct fimc_is *is)
 
 			if (ret < 0 || index >= FIMC_IS_SENSORS_NUM) {
 				of_node_put(child);
+				of_node_put(i2c_bus);
 				return ret;
 			}
 			index++;
drivers/media/platform/xilinx/xilinx-vipp.c +5 -4
index cc2856efea59..f2b0c490187c 100644
@@ -472,7 +472,7 @@ static int xvip_graph_dma_init(struct xvip_composite_device *xdev)
 {
 	struct device_node *ports;
 	struct device_node *port;
-	int ret;
+	int ret = 0;
 
 	ports = of_get_child_by_name(xdev->dev->of_node, "ports");
 	if (ports == NULL) {
@@ -482,13 +482,14 @@ static int xvip_graph_dma_init(struct xvip_composite_device *xdev)
 
 	for_each_child_of_node(ports, port) {
 		ret = xvip_graph_dma_init_one(xdev, port);
-		if (ret < 0) {
+		if (ret) {
 			of_node_put(port);
-			return ret;
+			break;
 		}
 	}
 
-	return 0;
+	of_node_put(ports);
+	return ret;
 }
 
 static void xvip_graph_cleanup(struct xvip_composite_device *xdev)
drivers/memory/of_memory.c +1 -0
index 46539b27a3fb..835754304a7f 100644
@@ -132,6 +132,7 @@ const struct lpddr2_timings *of_get_ddr_timings(struct device_node *np_ddr,
 	for_each_child_of_node(np_ddr, np_tim) {
 		if (of_device_is_compatible(np_tim, tim_compat)) {
 			if (of_do_get_timings(np_tim, &timings[i])) {
+				of_node_put(np_tim);
 				devm_kfree(dev, timings);
 				goto default_timings;
 			}
drivers/memory/pl353-smc.c +1 -0
index cc01979780d8..322d7ead0031 100644
@@ -416,6 +416,7 @@ static int pl353_smc_probe(struct amba_device *adev, const struct amba_id *id)
 	if (init)
 		init(adev, child);
 	of_platform_device_create(child, NULL, &adev->dev);
+	of_node_put(child);
 
 	return 0;
 
drivers/mfd/fsl-imx25-tsadc.c +25 -9
index a016b39fe9b0..5f1f6f3a0696 100644
@@ -69,7 +69,7 @@ static int mx25_tsadc_setup_irq(struct platform_device *pdev,
 	int irq;
 
 	irq = platform_get_irq(pdev, 0);
-	if (irq <= 0)
+	if (irq < 0)
 		return irq;
 
 	tsadc->domain = irq_domain_add_simple(np, 2, 0, &mx25_tsadc_domain_ops,
@@ -84,6 +84,19 @@ static int mx25_tsadc_setup_irq(struct platform_device *pdev,
 	return 0;
 }
 
+static int mx25_tsadc_unset_irq(struct platform_device *pdev)
+{
+	struct mx25_tsadc *tsadc = platform_get_drvdata(pdev);
+	int irq = platform_get_irq(pdev, 0);
+
+	if (irq >= 0) {
+		irq_set_chained_handler_and_data(irq, NULL, NULL);
+		irq_domain_remove(tsadc->domain);
+	}
+
+	return 0;
+}
+
 static void mx25_tsadc_setup_clk(struct platform_device *pdev,
 				 struct mx25_tsadc *tsadc)
 {
@@ -171,18 +184,21 @@ static int mx25_tsadc_probe(struct platform_device *pdev)
 
 	platform_set_drvdata(pdev, tsadc);
 
-	return devm_of_platform_populate(dev);
+	ret = devm_of_platform_populate(dev);
+	if (ret)
+		goto err_irq;
+
+	return 0;
+
+err_irq:
+	mx25_tsadc_unset_irq(pdev);
+
+	return ret;
 }
 
 static int mx25_tsadc_remove(struct platform_device *pdev)
 {
-	struct mx25_tsadc *tsadc = platform_get_drvdata(pdev);
-	int irq = platform_get_irq(pdev, 0);
-
-	if (irq) {
-		irq_set_chained_handler_and_data(irq, NULL, NULL);
-		irq_domain_remove(tsadc->domain);
-	}
+	mx25_tsadc_unset_irq(pdev);
 
 	return 0;
 }
drivers/mfd/intel_soc_pmic_core.c +1 -0
index c9f35378d391..4d9b2ad9b086 100644
@@ -111,6 +111,7 @@ static int intel_soc_pmic_i2c_probe(struct i2c_client *i2c,
 	return 0;
 
 err_del_irq_chip:
+	pwm_remove_table(crc_pwm_lookup, ARRAY_SIZE(crc_pwm_lookup));
 	regmap_del_irq_chip(pmic->irq, pmic->irq_chip_data);
 	return ret;
 }
drivers/mfd/lp8788-irq.c +3 -0
index 348439a3fbbd..39006297f3d2 100644
@@ -175,6 +175,7 @@ int lp8788_irq_init(struct lp8788 *lp, int irq)
 				IRQF_TRIGGER_FALLING | IRQF_ONESHOT,
 				"lp8788-irq", irqd);
 	if (ret) {
+		irq_domain_remove(lp->irqdm);
 		dev_err(lp->dev, "failed to create a thread for IRQ_N\n");
 		return ret;
 	}
@@ -188,4 +189,6 @@ void lp8788_irq_exit(struct lp8788 *lp)
 {
 	if (lp->irq)
 		free_irq(lp->irq, lp->irqdm);
+	if (lp->irqdm)
+		irq_domain_remove(lp->irqdm);
 }
drivers/mfd/lp8788.c +10 -2
index 768d556b3fe9..5c3d642c8e3a 100644
@@ -195,8 +195,16 @@ static int lp8788_probe(struct i2c_client *cl, const struct i2c_device_id *id)
 	if (ret)
 		return ret;
 
-	return mfd_add_devices(lp->dev, -1, lp8788_devs,
-			       ARRAY_SIZE(lp8788_devs), NULL, 0, NULL);
+	ret = mfd_add_devices(lp->dev, -1, lp8788_devs,
+			      ARRAY_SIZE(lp8788_devs), NULL, 0, NULL);
+	if (ret)
+		goto err_exit_irq;
+
+	return 0;
+
+err_exit_irq:
+	lp8788_irq_exit(lp);
+	return ret;
 }
 
 static int lp8788_remove(struct i2c_client *cl)
drivers/mfd/sm501.c +6 -1
index bbcde58e2a11..aab8d8910319 100644
@@ -1733,7 +1733,12 @@ static struct platform_driver sm501_plat_driver = {
 
 static int __init sm501_base_init(void)
 {
-	platform_driver_register(&sm501_plat_driver);
+	int ret;
+
+	ret = platform_driver_register(&sm501_plat_driver);
+	if (ret < 0)
+		return ret;
+
 	return pci_register_driver(&sm501_pci_driver);
 }
 
drivers/misc/ocxl/file.c +2 -0
index c742ab02ae18..e094809b54ff 100644
@@ -259,6 +259,8 @@ static long afu_ioctl(struct file *file, unsigned int cmd,
 		if (IS_ERR(ev_ctx))
 			return PTR_ERR(ev_ctx);
 		rc = ocxl_irq_set_handler(ctx, irq_id, irq_handler, irq_free, ev_ctx);
+		if (rc)
+			eventfd_ctx_put(ev_ctx);
 		break;
 
 	case OCXL_IOCTL_GET_METADATA:
drivers/mmc/host/au1xmmc.c +2 -1
index bc8aeb47a7b4..9c4a67f4195e 100644
@@ -1116,8 +1116,9 @@ static int au1xmmc_probe(struct platform_device *pdev)
 	if (host->platdata && host->platdata->cd_setup &&
 	    !(mmc->caps & MMC_CAP_NEEDS_POLL))
 		host->platdata->cd_setup(mmc, 0);
-out_clk:
+
 	clk_disable_unprepare(host->clk);
+out_clk:
 	clk_put(host->clk);
 out_irq:
 	free_irq(host->irq, host);
drivers/mmc/host/sdhci-msm.c +1 -0
index 8ab963055238..5e6f6c951fd4 100644
@@ -1755,6 +1755,7 @@ static const struct sdhci_msm_variant_info sdm845_sdhci_var = {
 static const struct of_device_id sdhci_msm_dt_match[] = {
 	{.compatible = "qcom,sdhci-msm-v4", .data = &sdhci_msm_mci_var},
 	{.compatible = "qcom,sdhci-msm-v5", .data = &sdhci_msm_v5_var},
+	{.compatible = "qcom,sdm670-sdhci", .data = &sdm845_sdhci_var},
 	{.compatible = "qcom,sdm845-sdhci", .data = &sdm845_sdhci_var},
 	{},
 };
drivers/mmc/host/sdhci-sprd.c +1 -1
index a999d2089d3d..4e2d6a25f200 100644
@@ -295,7 +295,7 @@ static unsigned int sdhci_sprd_get_max_clock(struct sdhci_host *host)
 
 static unsigned int sdhci_sprd_get_min_clock(struct sdhci_host *host)
 {
-	return 400000;
+	return 100000;
 }
 
 static void sdhci_sprd_set_uhs_signaling(struct sdhci_host *host,
drivers/mmc/host/wmt-sdmmc.c +4 -1
index 2c4ba1fa4bbf..d774068dba30 100644
@@ -849,7 +849,7 @@ static int wmt_mci_probe(struct platform_device *pdev)
 	if (IS_ERR(priv->clk_sdmmc)) {
 		dev_err(&pdev->dev, "Error getting clock\n");
 		ret = PTR_ERR(priv->clk_sdmmc);
-		goto fail5;
+		goto fail5_and_a_half;
 	}
 
 	ret = clk_prepare_enable(priv->clk_sdmmc);
@@ -866,6 +866,9 @@ static int wmt_mci_probe(struct platform_device *pdev)
 	return 0;
 fail6:
 	clk_put(priv->clk_sdmmc);
+fail5_and_a_half:
+	dma_free_coherent(&pdev->dev, mmc->max_blk_count * 16,
+			  priv->dma_desc_buffer, priv->dma_desc_device_addr);
 fail5:
 	free_irq(dma_irq, priv);
 fail4:
drivers/mtd/devices/docg3.c +6 -1
index eb0f4600efd1..40f9b6dffe3d 100644
@@ -1975,9 +1975,14 @@ static int __init docg3_probe(struct platform_device *pdev)
 		dev_err(dev, "No I/O memory resource defined\n");
 		return ret;
 	}
-	base = devm_ioremap(dev, ress->start, DOC_IOSPACE_SIZE);
 
 	ret = -ENOMEM;
+	base = devm_ioremap(dev, ress->start, DOC_IOSPACE_SIZE);
+	if (!base) {
+		dev_err(dev, "devm_ioremap dev failed\n");
+		return ret;
+	}
+
 	cascade = devm_kcalloc(dev, DOC_MAX_NBFLOORS, sizeof(*cascade),
 			       GFP_KERNEL);
 	if (!cascade)
drivers/mtd/nand/raw/atmel/nand-controller.c +1 -0
index 17c751f359d3..997910bec727 100644
@@ -402,6 +402,7 @@ static int atmel_nand_dma_transfer(struct atmel_nand_controller *nc,
 
 	dma_async_issue_pending(nc->dmac);
 	wait_for_completion(&finished);
+	dma_unmap_single(nc->dev, buf_dma, len, dir);
 
 	return 0;
 
drivers/mtd/nand/raw/meson_nand.c +2 -2
index 28dc26e1a20a..a65aadb54af6 100644
@@ -454,7 +454,7 @@ static int meson_nfc_ecc_correct(struct nand_chip *nand, u32 *bitflips,
 		if (ECC_ERR_CNT(*info) != ECC_UNCORRECTABLE) {
 			mtd->ecc_stats.corrected += ECC_ERR_CNT(*info);
 			*bitflips = max_t(u32, *bitflips, ECC_ERR_CNT(*info));
-			*correct_bitmap |= 1 >> i;
+			*correct_bitmap |= BIT_ULL(i);
 			continue;
 		}
 		if ((nand->options & NAND_NEED_SCRAMBLING) &&
@@ -800,7 +800,7 @@ static int meson_nfc_read_page_hwecc(struct nand_chip *nand, u8 *buf,
 			u8 *data = buf + i * ecc->size;
 			u8 *oob = nand->oob_poi + i * (ecc->bytes + 2);
 
-			if (correct_bitmap & (1 << i))
+			if (correct_bitmap & BIT_ULL(i))
 				continue;
 			ret = nand_check_erased_ecc_chunk(data,	ecc->size,
 							  oob, ecc->bytes + 2,
drivers/net/can/usb/kvaser_usb/kvaser_usb.h +2 -0
index 61e67986b625..62958f04a2f2 100644
@@ -178,6 +178,8 @@ struct kvaser_usb_dev_cfg {
 extern const struct kvaser_usb_dev_ops kvaser_usb_hydra_dev_ops;
 extern const struct kvaser_usb_dev_ops kvaser_usb_leaf_dev_ops;
 
+void kvaser_usb_unlink_tx_urbs(struct kvaser_usb_net_priv *priv);
+
 int kvaser_usb_recv_cmd(const struct kvaser_usb *dev, void *cmd, int len,
 			int *actual_len);
 
drivers/net/can/usb/kvaser_usb/kvaser_usb_core.c +2 -1
index 416763fd1f11..7491f85e85b3 100644
@@ -453,7 +453,7 @@ static void kvaser_usb_reset_tx_urb_contexts(struct kvaser_usb_net_priv *priv)
 /* This method might sleep. Do not call it in the atomic context
  * of URB completions.
  */
-static void kvaser_usb_unlink_tx_urbs(struct kvaser_usb_net_priv *priv)
+void kvaser_usb_unlink_tx_urbs(struct kvaser_usb_net_priv *priv)
 {
 	usb_kill_anchored_urbs(&priv->tx_submitted);
 	kvaser_usb_reset_tx_urb_contexts(priv);
@@ -690,6 +690,7 @@ static int kvaser_usb_init_one(struct kvaser_usb *dev, int channel)
 	init_usb_anchor(&priv->tx_submitted);
 	init_completion(&priv->start_comp);
 	init_completion(&priv->stop_comp);
+	init_completion(&priv->flush_comp);
 	priv->can.ctrlmode_supported = 0;
 
 	priv->dev = dev;
drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c +1 -1
index 01d4a731b579..5d642458bac5 100644
@@ -1886,7 +1886,7 @@ static int kvaser_usb_hydra_flush_queue(struct kvaser_usb_net_priv *priv)
 {
 	int err;
 
-	init_completion(&priv->flush_comp);
+	reinit_completion(&priv->flush_comp);
 
 	err = kvaser_usb_hydra_send_simple_cmd(priv->dev, CMD_FLUSH_QUEUE,
 					       priv->channel);
drivers/net/can/usb/kvaser_usb/kvaser_usb_leaf.c +79 -0

112 lines not on this page · raw message

drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c +1 -0
index 9af8afd7ae89..d8e13ee0601f 100644
@@ -787,6 +787,7 @@ static void bnx2x_tpa_stop(struct bnx2x *bp, struct bnx2x_fastpath *fp,
 			BNX2X_ERR("skb_put is about to fail...  pad %d  len %d  rx_buf_size %d\n",
 				  pad, len, fp->rx_buf_size);
 			bnx2x_panic();
+			bnx2x_frag_free(fp, new_data);
 			return;
 		}
 #endif
drivers/net/ethernet/freescale/fs_enet/mac-fec.c +1 -1
index 99fe2c210d0f..61f4b6e50d29 100644
@@ -98,7 +98,7 @@ static int do_pd_setup(struct fs_enet_private *fep)
 		return -EINVAL;
 
 	fep->fec.fecp = of_iomap(ofdev->dev.of_node, 0);
-	if (!fep->fcc.fccp)
+	if (!fep->fec.fecp)
 		return -EINVAL;
 
 	return 0;
drivers/net/ethernet/marvell/mvpp2/mvpp2.h +1 -0
index 543a310ec102..cf45b9210c15 100644
@@ -1202,5 +1202,6 @@ u32 mvpp2_read(struct mvpp2 *priv, u32 offset);
 void mvpp2_dbgfs_init(struct mvpp2 *priv, const char *name);
 
 void mvpp2_dbgfs_cleanup(struct mvpp2 *priv);
+void mvpp2_dbgfs_exit(void);
 
 #endif
drivers/net/ethernet/marvell/mvpp2/mvpp2_debugfs.c +8 -2
index 4a3baa7e0142..75e83ea2a926 100644
@@ -691,6 +691,13 @@ static int mvpp2_dbgfs_port_init(struct dentry *parent,
 	return 0;
 }
 
+static struct dentry *mvpp2_root;
+
+void mvpp2_dbgfs_exit(void)
+{
+	debugfs_remove(mvpp2_root);
+}
+
 void mvpp2_dbgfs_cleanup(struct mvpp2 *priv)
 {
 	debugfs_remove_recursive(priv->dbgfs_dir);
@@ -700,10 +707,9 @@ void mvpp2_dbgfs_cleanup(struct mvpp2 *priv)
 
 void mvpp2_dbgfs_init(struct mvpp2 *priv, const char *name)
 {
-	struct dentry *mvpp2_dir, *mvpp2_root;
+	struct dentry *mvpp2_dir;
 	int ret, i;
 
-	mvpp2_root = debugfs_lookup(MVPP2_DRIVER_NAME, NULL);
 	if (!mvpp2_root)
 		mvpp2_root = debugfs_create_dir(MVPP2_DRIVER_NAME, NULL);
 
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c +12 -1
index d700f1b5a4bf..31dde6fbdbdc 100644
@@ -6004,7 +6004,18 @@ static struct platform_driver mvpp2_driver = {
 	},
 };
 
-module_platform_driver(mvpp2_driver);
+static int __init mvpp2_driver_init(void)
+{
+	return platform_driver_register(&mvpp2_driver);
+}
+module_init(mvpp2_driver_init);
+
+static void __exit mvpp2_driver_exit(void)
+{
+	platform_driver_unregister(&mvpp2_driver);
+	mvpp2_dbgfs_exit();
+}
+module_exit(mvpp2_driver_exit);
 
 MODULE_DESCRIPTION("Marvell PPv2 Ethernet Driver - www.marvell.com");
 MODULE_AUTHOR("Marcin Wojtas <[email protected]>");
drivers/net/usb/r8152.c +3 -1
index 873f288e7cec..d1519138f833 100644
@@ -1479,7 +1479,9 @@ static void intr_callback(struct urb *urb)
 			   "Stop submitting intr, status %d\n", status);
 		return;
 	case -EOVERFLOW:
-		netif_info(tp, intr, tp->netdev, "intr status -EOVERFLOW\n");
+		if (net_ratelimit())
+			netif_info(tp, intr, tp->netdev,
+				   "intr status -EOVERFLOW\n");
 		goto resubmit;
 	/* -EPIPE:  should clear the halt */
 	default:
drivers/net/wireless/ath/ath10k/mac.c +29 -25

75 lines not on this page · raw message

drivers/net/wireless/ath/ath9k/htc_hst.c +28 -15

98 lines not on this page · raw message

drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c +2 -1
index edb79e9665dc..5b7c1b99273d 100644
@@ -290,6 +290,7 @@ static netdev_tx_t brcmf_netdev_start_xmit(struct sk_buff *skb,
 	struct brcmf_pub *drvr = ifp->drvr;
 	struct ethhdr *eh;
 	int head_delta;
+	unsigned int tx_bytes = skb->len;
 
 	brcmf_dbg(DATA, "Enter, bsscfgidx=%d\n", ifp->bsscfgidx);
 
@@ -361,7 +362,7 @@ static netdev_tx_t brcmf_netdev_start_xmit(struct sk_buff *skb,
 		ndev->stats.tx_dropped++;
 	} else {
 		ndev->stats.tx_packets++;
-		ndev->stats.tx_bytes += skb->len;
+		ndev->stats.tx_bytes += tx_bytes;
 	}
 
 	/* Return ok: we always eat the packet */
drivers/net/wireless/broadcom/brcm80211/brcmfmac/pno.c +6 -6
index 14e530601ef3..7ec1630d9095 100644
@@ -154,12 +154,12 @@ static int brcmf_pno_set_random(struct brcmf_if *ifp, struct brcmf_pno_info *pi)
 	struct brcmf_pno_macaddr_le pfn_mac;
 	u8 *mac_addr = NULL;
 	u8 *mac_mask = NULL;
-	int err, i;
+	int err, i, ri;
 
-	for (i = 0; i < pi->n_reqs; i++)
-		if (pi->reqs[i]->flags & NL80211_SCAN_FLAG_RANDOM_ADDR) {
-			mac_addr = pi->reqs[i]->mac_addr;
-			mac_mask = pi->reqs[i]->mac_addr_mask;
+	for (ri = 0; ri < pi->n_reqs; ri++)
+		if (pi->reqs[ri]->flags & NL80211_SCAN_FLAG_RANDOM_ADDR) {
+			mac_addr = pi->reqs[ri]->mac_addr;
+			mac_mask = pi->reqs[ri]->mac_addr_mask;
 			break;
 		}
 
@@ -181,7 +181,7 @@ static int brcmf_pno_set_random(struct brcmf_if *ifp, struct brcmf_pno_info *pi)
 	pfn_mac.mac[0] |= 0x02;
 
 	brcmf_dbg(SCAN, "enabling random mac: reqid=%llu mac=%pM\n",
-		  pi->reqs[i]->reqid, pfn_mac.mac);
+		  pi->reqs[ri]->reqid, pfn_mac.mac);
 	err = brcmf_fil_iovar_data_set(ifp, "pfn_macaddr", &pfn_mac,
 				       sizeof(pfn_mac));
 	if (err)
drivers/net/wireless/ralink/rt2x00/rt2800lib.c +30 -4
index c99f1912e266..32d2528cdd5f 100644
@@ -4154,7 +4154,10 @@ static void rt2800_config_channel(struct rt2x00_dev *rt2x00dev,
 		rt2800_bbp_write(rt2x00dev, 62, 0x37 - rt2x00dev->lna_gain);
 		rt2800_bbp_write(rt2x00dev, 63, 0x37 - rt2x00dev->lna_gain);
 		rt2800_bbp_write(rt2x00dev, 64, 0x37 - rt2x00dev->lna_gain);
-		rt2800_bbp_write(rt2x00dev, 86, 0);
+		if (rt2x00_rt(rt2x00dev, RT6352))
+			rt2800_bbp_write(rt2x00dev, 86, 0x38);
+		else
+			rt2800_bbp_write(rt2x00dev, 86, 0);
 	}
 
 	if (rf->channel <= 14) {
@@ -4355,7 +4358,8 @@ static void rt2800_config_channel(struct rt2x00_dev *rt2x00dev,
 		reg = (rf->channel <= 14 ? 0x1c : 0x24) + 2*rt2x00dev->lna_gain;
 		rt2800_bbp_write_with_rx_chain(rt2x00dev, 66, reg);
 
-		rt2800_iq_calibrate(rt2x00dev, rf->channel);
+		if (rt2x00_rt(rt2x00dev, RT5592))
+			rt2800_iq_calibrate(rt2x00dev, rf->channel);
 	}
 
 	bbp = rt2800_bbp_read(rt2x00dev, 4);
@@ -5628,7 +5632,8 @@ static inline void rt2800_set_vgc(struct rt2x00_dev *rt2x00dev,
 	if (qual->vgc_level != vgc_level) {
 		if (rt2x00_rt(rt2x00dev, RT3572) ||
 		    rt2x00_rt(rt2x00dev, RT3593) ||
-		    rt2x00_rt(rt2x00dev, RT3883)) {
+		    rt2x00_rt(rt2x00dev, RT3883) ||
+		    rt2x00_rt(rt2x00dev, RT6352)) {
 			rt2800_bbp_write_with_rx_chain(rt2x00dev, 66,
 						       vgc_level);
 		} else if (rt2x00_rt(rt2x00dev, RT5592)) {
@@ -5851,7 +5856,7 @@ static int rt2800_init_registers(struct rt2x00_dev *rt2x00dev)
 		rt2800_register_write(rt2x00dev, TX_SW_CFG0, 0x00000404);
 	} else if (rt2x00_rt(rt2x00dev, RT6352)) {
 		rt2800_register_write(rt2x00dev, TX_SW_CFG0, 0x00000401);
-		rt2800_register_write(rt2x00dev, TX_SW_CFG1, 0x000C0000);
+		rt2800_register_write(rt2x00dev, TX_SW_CFG1, 0x000C0001);
 		rt2800_register_write(rt2x00dev, TX_SW_CFG2, 0x00000000);
 		rt2800_register_write(rt2x00dev, TX_ALC_VGA3, 0x00000000);
 		rt2800_register_write(rt2x00dev, TX0_BB_GAIN_ATTEN, 0x0);
@@ -6113,6 +6118,27 @@ static int rt2800_init_registers(struct rt2x00_dev *rt2x00dev)
 		reg = rt2800_register_read(rt2x00dev, US_CYC_CNT);
 		rt2x00_set_field32(&reg, US_CYC_CNT_CLOCK_CYCLE, 125);
 		rt2800_register_write(rt2x00dev, US_CYC_CNT, reg);
+	} else if (rt2x00_is_soc(rt2x00dev)) {
+		struct clk *clk = clk_get_sys("bus", NULL);
+		int rate;
+
+		if (IS_ERR(clk)) {
+			clk = clk_get_sys("cpu", NULL);
+
+			if (IS_ERR(clk)) {
+				rate = 125;
+			} else {
+				rate = clk_get_rate(clk) / 3000000;
+				clk_put(clk);
+			}
+		} else {
+			rate = clk_get_rate(clk) / 1000000;
+			clk_put(clk);
+		}
+
+		reg = rt2800_register_read(rt2x00dev, US_CYC_CNT);
+		rt2x00_set_field32(&reg, US_CYC_CNT_CLOCK_CYCLE, rate);
+		rt2800_register_write(rt2x00dev, US_CYC_CNT, reg);
 	}
 
 	reg = rt2800_register_read(rt2x00dev, HT_FBK_CFG0);
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c +11 -10
index 048984ca81fd..b472dc4c551e 100644
@@ -1875,13 +1875,6 @@ static int rtl8xxxu_read_efuse(struct rtl8xxxu_priv *priv)
 
 		/* We have 8 bits to indicate validity */
 		map_addr = offset * 8;
-		if (map_addr >= EFUSE_MAP_LEN) {
-			dev_warn(dev, "%s: Illegal map_addr (%04x), "
-				 "efuse corrupt!\n",
-				 __func__, map_addr);
-			ret = -EINVAL;
-			goto exit;
-		}
 		for (i = 0; i < EFUSE_MAX_WORD_UNIT; i++) {
 			/* Check word enable condition in the section */
 			if (word_mask & BIT(i)) {
@@ -1892,6 +1885,13 @@ static int rtl8xxxu_read_efuse(struct rtl8xxxu_priv *priv)
 			ret = rtl8xxxu_read_efuse8(priv, efuse_addr++, &val8);
 			if (ret)
 				goto exit;
+			if (map_addr >= EFUSE_MAP_LEN - 1) {
+				dev_warn(dev, "%s: Illegal map_addr (%04x), "
+					 "efuse corrupt!\n",
+					 __func__, map_addr);
+				ret = -EINVAL;
+				goto exit;
+			}
 			priv->efuse_wifi.raw[map_addr++] = val8;
 
 			ret = rtl8xxxu_read_efuse8(priv, efuse_addr++, &val8);

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

drivers/nvme/host/core.c +2 -1
index f1717f34b2f3..6627fb531f33 100644

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

drivers/nvme/target/tcp.c +9 -2
index eb5b39c2bba8..df7a911d303f 100644

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

drivers/pci/setup-res.c +11 -0
index da5023e27951..eca74d77dfcb 100644

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

drivers/phy/qualcomm/phy-qcom-usb-hsic.c +4 -2
index 04d18d52f700..d4741c2dbbb5 100644

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

drivers/platform/chrome/chromeos_laptop.c +13 -11
index 8723bcf10c93..954953133d56 100644

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

drivers/platform/chrome/cros_ec_chardev.c +3 -0
index 74ded441bb50..1f5f4a46ab74 100644

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

drivers/platform/x86/msi-laptop.c +7 -7
index 24ffc8e2d2d1..0e804b6c2d24 100644

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

drivers/power/supply/adp5061.c +3 -3
index 003557043ab3..daee1161c305 100644

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

drivers/powercap/intel_rapl_common.c +3 -0
index 925b0004a0ed..d5a505f32260 100644

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

drivers/regulator/qcom_rpm-regulator.c +12 -12
index 7407cd5a1b74..84027e9f0dbc 100644

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

drivers/scsi/3w-9xxx.c +1 -1
index 3337b1e80412..f6f92033132a 100644

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

drivers/scsi/libsas/sas_expander.c +1 -1
index 9fdb9c9fbda4..173f91ae38f0 100644

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

drivers/soc/qcom/smem_state.c +2 -1
index d2b558438deb..41e929407196 100644

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

drivers/soc/qcom/smsm.c +13 -7
index 6564f15c5319..acba67dfbc85 100644

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

drivers/spi/spi-omap-100k.c +1 -0
index f64d030c760a..89d89ad1064d 100644

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

drivers/spi/spi-qup.c +17 -4
index d1dfb52008b4..ead6c211047d 100644

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

drivers/spi/spi-s3c64xx.c +9 -0
index 1d948fee1a03..d9420561236c 100644

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

drivers/spmi/spmi-pmic-arb.c +7 -6
index bbbd311eda03..e6de2aeece8d 100644

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

drivers/staging/media/sunxi/cedrus/cedrus.c +2 -2
index e80e82a276e9..6ad448899779 100644

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

drivers/staging/rtl8723bs/core/rtw_cmd.c +6 -10
index 8d93c2f26890..a82114de21a7 100644

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

drivers/staging/vt6655/device_main.c +4 -4
index 082302944c37..18284c427b7e 100644

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

drivers/thermal/intel/intel_powerclamp.c +1 -3
index 53216dcbe173..a717cce4aca4 100644

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

drivers/tty/serial/8250/8250_port.c +6 -1
index f8819f72304a..c1551319684f 100644

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

drivers/tty/serial/fsl_lpuart.c +2 -0
index f3f582c3dc87..e84cef42f4b7 100644

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

drivers/tty/serial/jsm/jsm_driver.c +2 -1
index 592e51d8944e..07e9be9865c7 100644

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

drivers/tty/serial/xilinx_uartps.c +2 -0
index a1409251fbcc..6842999072c5 100644

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

drivers/usb/core/quirks.c +4 -0
index f8f2de7899a9..dd7947547054 100644

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

drivers/usb/gadget/function/f_printer.c +6 -6
index 2a1868b2d24c..dd5eb6202fe1 100644

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

drivers/usb/host/xhci-mem.c +6 -1
index ef23a69c6553..6125a98ffbf5 100644

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

drivers/usb/host/xhci.c +2 -1
index 5ce16a259e61..3537113f006f 100644

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

drivers/usb/misc/idmouse.c +4 -4
index bb24527f3c70..ba2b6fbab9b8 100644

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

drivers/usb/musb/musb_gadget.c +3 -0
index 4622400ba4dd..8e83995fc3bd 100644

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

drivers/usb/storage/unusual_devs.h +0 -6
index 6a59950a63a0..b270be141b8e 100644

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

drivers/vhost/vsock.c +1 -1
index 308df62655dd..64806e562bf6 100644

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

drivers/video/fbdev/smscufx.c +13 -1
index ad60f739c6a1..f8656f78510e 100644

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

drivers/video/fbdev/stifb.c +1 -1
index 9e88e3f594c2..9530ed46f435 100644

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

fs/btrfs/qgroup.c +15 -0
index 5a3006c75d63..84a102347490 100644

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

fs/btrfs/scrub.c +36 -0
index e5db948daa12..45809f75692e 100644

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

fs/cifs/file.c +9 -0
index eb61cecf42d6..eb9b34442b1d 100644

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

fs/cifs/smb2pdu.c +2 -2
index 0857eb7a95e2..ec2dbb8df3d3 100644

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

fs/dlm/ast.c +4 -2
index 283c7b94edda..ca06069e95c8 100644

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

fs/dlm/lock.c +8 -8
index 9165bf56c6e8..b6242071583e 100644

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

fs/ext4/file.c +6 -0
index 1513e90fb6d2..7ac55d071eb2 100644

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

fs/ext4/inode.c +7 -0
index 22feae1d5f77..9f9135336a17 100644

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

fs/ext4/resize.c +1 -1
index f0fc7fc579e6..6db853a3ecc4 100644

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

fs/ext4/super.c +2 -1
index eba2506f4399..ce575cb9bc0e 100644

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

fs/f2fs/checkpoint.c +9 -1
index 44c5110e18f0..57318010f8e6 100644

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

fs/f2fs/extent_cache.c +1 -2
index e60078460ad1..05b17a741ccc 100644

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

fs/f2fs/f2fs.h +4 -0
index c73a1638c18b..f75d25682734 100644

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

fs/f2fs/gc.c +9 -1
index 68d5c73c5ed1..3d3e414e2987 100644

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

fs/f2fs/recovery.c +20 -3
index 5f230e981c48..da123c6d3ce0 100644

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

fs/f2fs/super.c +2 -2
index 232c99e4a1ee..3f2fe6034640 100644

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

fs/io_uring.c +1 -0
index 501c7e14c07c..e8df6345a812 100644

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

fs/jbd2/commit.c +1 -1
index 8d5aced7ed0c..7bd4b1d4224e 100644

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

fs/jbd2/transaction.c +3 -3
index e0bd73140415..09f4d00fece2 100644

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

fs/nfsd/nfs4recover.c +3 -1
index 7d408957ed62..14463e107918 100644

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

fs/nfsd/nfs4xdr.c +1 -1
index e61d9c435957..95bbe9d4018a 100644

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

fs/nilfs2/inode.c +17 -1
index b8ebfb16c8ec..cf01aa55dd44 100644

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

fs/quota/quota_tree.c +38 -0
index 1a188fbdf34e..07948f6ac84e 100644

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

fs/userfaultfd.c +2 -2
index ec57bbb6bb05..740853465356 100644

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

include/linux/ata.h +21 -18
index 6e67aded28f8..6d2d31b03b4d 100644

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

include/linux/dynamic_debug.h +1 -1
index 4cf02ecd67de..65575143c89f 100644

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

include/linux/iova.h +1 -1
index a0637abffee8..6c19b09e9663 100644

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

include/linux/once.h +28 -0
index ae6f4eb41cbe..bb58e1c3aa03 100644

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

include/linux/skbuff.h +2 -0
index 680f71ecdc08..eab3a4d02f32 100644

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

include/linux/tcp.h +1 -1
index 358deb4ff830..89751c89f11f 100644

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

include/net/ieee802154_netdev.h +9 -3
index a8994f307fc3..03b64bf876a4 100644

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

include/net/sock.h +1 -1
index 9d687070d272..f508e86a2021 100644

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

include/net/tcp.h +4 -1
index 8459145497b7..5b2473a08241 100644

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

kernel/bpf/btf.c +1 -1
index b03087f110eb..a28bbec8c59f 100644

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

kernel/bpf/syscall.c +2 -0
index 9ebdcdaa5f16..de788761b708 100644

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

kernel/cgroup/cpuset.c +11 -7
index 9ba94a9a67aa..c7f4526ca64e 100644

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

kernel/gcov/gcc_4_7.c +16 -2
index 60c7be5ff5c8..bd5e918c8570 100644

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

kernel/livepatch/transition.c +16 -2
index cdf318d86dd6..1fe7c458fe8b 100644

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

kernel/trace/ftrace.c +6 -2
index 44f1469af842..5374ee664ed3 100644

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

kernel/trace/ring_buffer.c +45 -3

48 lines not on this page · raw message

kernel/trace/trace.c +22 -0
index 55da88f18342..62fd8798b0c4 100644

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

lib/dynamic_debug.c +7 -4
index ccf05719b1ad..c9e1960fefc8 100644

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

lib/once.c +30 -0
index 59149bf3bfb4..351f66aad310 100644

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

net/bluetooth/hci_sysfs.c +3 -0
index b69d88b88d2e..ccd2c377bf83 100644

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

net/bluetooth/l2cap_core.c +13 -4
index 3682d2e1cd7d..2d28b4e49b7a 100644

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

net/can/bcm.c +4 -3
index 63d81147fb4e..fbf1143a56e1 100644

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

net/core/stream.c +2 -1
index a166a32b411f..a61130504827 100644

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

net/ieee802154/socket.c +4 -0
index a92b11999e5f..6d6c28581770 100644

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

net/ipv4/af_inet.c +1 -1
index d61ca7be6eda..058dbcb90541 100644

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

net/ipv4/inet_hashtables.c +2 -2
index d9bee15e36a5..bd3d9ad78e56 100644

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

net/ipv4/netfilter/nft_fib_ipv4.c +3 -0
index ce294113dbcd..85eac5aa5204 100644

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

net/ipv4/tcp.c +13 -6
index 0a570d5d0b38..93825ec968aa 100644

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

net/ipv4/tcp_input.c +1 -1
index 0ebba83dbe22..12585546ed15 100644

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

net/ipv4/tcp_ipv4.c +7 -4
index b95e1a3487c8..eb9c05acf77e 100644

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

net/ipv4/tcp_output.c +12 -7
index c37028af0db0..b4a9f6948cb5 100644

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

net/ipv4/udp.c +3 -3
index 83fd4fa40d5e..3c8a54fb8d33 100644

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

net/ipv6/netfilter/nft_fib_ipv6.c +5 -1
index 7ece86afd079..03dbd16f9ad5 100644

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

net/ipv6/tcp_ipv6.c +7 -4
index 063898cae3e5..397c4597c438 100644

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

net/ipv6/udp.c +2 -2
index 040869f45682..62c0db6df563 100644

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

net/mac80211/cfg.c +0 -3
index 16f37fd0ac0e..9e3bff5aaf8b 100644

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

net/openvswitch/datapath.c +13 -5
index 4f097bd3339e..41035ce0d23c 100644

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

net/rds/tcp.c +1 -1
index d55d81b01d37..bfb8d4d6a994 100644

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

net/sctp/auth.c +14 -4
index 3b2d0bd616dd..6b97b734a16f 100644

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

net/unix/garbage.c +20 -0
index d45d5366115a..dc2763540393 100644

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

net/vmw_vsock/virtio_transport_common.c +1 -1
index dde16a033a09..93c11ffae92b 100644

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

net/xfrm/xfrm_ipcomp.c +1 -0
index 4d422447aadc..4fca4b6cec8b 100644

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

scripts/Kbuild.include +22 -1
index b14a7d4a2f05..5d247d8f1e04 100644

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

scripts/selinux/install_policy.sh +1 -1
index 2dccf141241d..20af56ce245c 100755

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

sound/core/pcm_dmaengine.c +5 -3
index 89a05926ac73..5d9a24ca6f3e 100644

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

sound/core/rawmidi.c +0 -2
index 6a3543b8455f..6b50c3dccc82 100644

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

sound/core/sound_oss.c +9 -4
index 610f317bea9d..99874e80b682 100644

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

sound/pci/hda/hda_beep.c +13 -2
index c6e1e03a5e4d..5a50b6c1d604 100644

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

sound/pci/hda/hda_beep.h +1 -0
index a25358a4807a..db76e3ddba65 100644

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

sound/pci/hda/patch_hdmi.c +0 -6
index 169e74299987..091a7fe85451 100644

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

sound/pci/hda/patch_realtek.c +7 -4
index 930bb040b403..fa31a7159578 100644

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

sound/pci/hda/patch_sigmatel.c +2 -23
index 04a89171327d..e42a6c5c1ba3 100644

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

sound/soc/codecs/wcd9335.c +1 -1
index c01c69613f63..a952b9454513 100644

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

sound/soc/codecs/wm5102.c +3 -3
index d6d4b4121369..c5667b149c70 100644

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

sound/soc/codecs/wm5110.c +3 -3
index 06ec3f48c808..bbe9fdfb423c 100644

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

sound/soc/codecs/wm8997.c +3 -3
index 229f2986cd96..07378714b013 100644

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

sound/soc/fsl/eukrea-tlv320.c +5 -3
index 6f3b768489f6..bf3d3f0aa858 100644

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

sound/soc/sh/rcar/ctu.c +5 -1
index 7647b3d4c0ba..25a8cfc27433 100644

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

sound/soc/sh/rcar/dvc.c +5 -1
index 8d91c0eb0880..53b2ad01222b 100644

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

sound/soc/sh/rcar/mix.c +5 -1
index a3e0370f5704..c6fe2595c373 100644

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

sound/soc/sh/rcar/src.c +4 -1
index 585ffba0244b..fd52e26a3808 100644

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

sound/soc/sh/rcar/ssi.c +3 -1
index 09af402ca31f..f8960bad2bd1 100644

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

sound/usb/endpoint.c +3 -3
index 87cc249a31b9..ed52fa49d0f9 100644

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

tools/bpf/bpftool/btf_dumper.c +1 -1
index 397e5716ab6d..ebb73e447310 100644

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

tools/bpf/bpftool/main.c +10 -0
index 4b03983acbef..35984bd354cb 100644

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

tools/perf/util/intel-pt.c +7 -2
index 9b7cc5f909b0..b40832419a27 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.