Skip to contentSkip to conversation

Linux 5.4.269

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Feb 23, 2024 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 5.4.269 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-class-net-queues                |   22 
 Documentation/filesystems/directory-locking.rst                 |   25 
 Documentation/filesystems/locking.rst                           |    5 
 Documentation/filesystems/porting.rst                           |   18 
 Documentation/sound/soc/dapm.rst                                |    2 
 Makefile                                                        |    2 
 arch/arm/boot/dts/imx1-ads.dts                                  |    2 
 arch/arm/boot/dts/imx1-apf9328.dts                              |    2 
 arch/arm/boot/dts/imx1.dtsi                                     |    5 
 arch/arm/boot/dts/imx23-sansa.dts                               |   12 
 arch/arm/boot/dts/imx23.dtsi                                    |    2 
 arch/arm/boot/dts/imx25-eukrea-cpuimx25.dtsi                    |    2 
 arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-cmo-qvga.dts |    2 
 arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-dvi-svga.dts |    2 
 arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-dvi-vga.dts  |    2 
 arch/arm/boot/dts/imx25-pdk.dts                                 |    2 
 arch/arm/boot/dts/imx27-apf27dev.dts                            |    4 
 arch/arm/boot/dts/imx27-eukrea-cpuimx27.dtsi                    |    4 
 arch/arm/boot/dts/imx27-eukrea-mbimxsd27-baseboard.dts          |    2 
 arch/arm/boot/dts/imx27-phytec-phycard-s-rdk.dts                |    2 
 arch/arm/boot/dts/imx27-phytec-phycore-rdk.dts                  |    2 
 arch/arm/boot/dts/imx27-phytec-phycore-som.dtsi                 |    2 
 arch/arm/boot/dts/imx27.dtsi                                    |    3 
 arch/arm/boot/dts/imx28.dtsi                                    |    2 
 arch/arm/boot/dts/imx7d.dtsi                                    |    3 
 arch/arm/boot/dts/imx7s.dtsi                                    |   10 
 arch/arm/boot/dts/rk3036.dtsi                                   |   14 
 arch/arm64/boot/dts/qcom/msm8996.dtsi                           |   21 
 arch/arm64/boot/dts/qcom/msm8998.dtsi                           |   32 -
 arch/arm64/boot/dts/qcom/sdm845.dtsi                            |    8 
 arch/ia64/kernel/topology.c                                     |    5 
 arch/ia64/mm/numa.c                                             |    5 
 arch/mips/include/asm/checksum.h                                |    3 
 arch/mips/include/asm/mmzone.h                                  |    6 
 arch/mips/kernel/elf.c                                          |    6 
 arch/mips/mm/init.c                                             |   15 
 arch/nds32/include/asm/memory.h                                 |    6 
 arch/parisc/kernel/firmware.c                                   |    4 
 arch/powerpc/include/asm/mmu.h                                  |    4 
 arch/powerpc/include/asm/mmzone.h                               |    3 
 arch/powerpc/kernel/traps.c                                     |    2 
 arch/powerpc/lib/Makefile                                       |    4 
 arch/powerpc/lib/sstep.c                                        |   10 
 arch/powerpc/mm/book3s64/pgtable.c                              |    2 
 arch/powerpc/mm/init-common.c                                   |    5 
 arch/s390/kernel/ptrace.c                                       |    6 
 arch/s390/kvm/kvm-s390.c                                        |    5 
 arch/um/drivers/net_kern.c                                      |    2 
 arch/um/include/shared/kern_util.h                              |    2 
 arch/um/kernel/process.c                                        |    2 
 arch/um/os-Linux/helper.c                                       |    6 
 arch/um/os-Linux/util.c                                         |   19 
 arch/x86/Kconfig.cpu                                            |    2 
 arch/x86/include/asm/syscall_wrapper.h                          |   25 
 arch/x86/kernel/cpu/amd.c                                       |   20 
 arch/x86/kernel/cpu/mce/core.c                                  |   16 
 arch/x86/mm/ident_map.c                                         |   23 
 arch/xtensa/include/asm/page.h                                  |    4 
 block/bio.c                                                     |    9 
 block/blk-mq.c                                                  |   16 
 crypto/algapi.c                                                 |    1 
 drivers/acpi/acpi_extlog.c                                      |    5 
 drivers/acpi/acpi_video.c                                       |    9 
 drivers/android/binder.c                                        |   10 
 drivers/atm/idt77252.c                                          |    2 
 drivers/base/power/domain.c                                     |    2 
 drivers/base/power/runtime.c                                    |   22 
 drivers/block/rbd.c                                             |   22 
 drivers/bus/moxtet.c                                            |    7 
 drivers/char/hw_random/core.c                                   |   34 -
 drivers/clk/hisilicon/clk-hi3620.c                              |    4 
 drivers/clk/mmp/clk-of-pxa168.c                                 |    3 
 drivers/crypto/stm32/stm32-crc32.c                              |    2 
 drivers/dma/fsl-qdma.c                                          |   27 -
 drivers/firewire/core-device.c                                  |    7 
 drivers/gpio/gpio-eic-sprd.c                                    |   32 +
 drivers/gpio/gpiolib-acpi.c                                     |   14 
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c                |    2 
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c                      |    1 
 drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c                        |    3 
 drivers/gpu/drm/bridge/nxp-ptn3460.c                            |    6 
 drivers/gpu/drm/drm_file.c                                      |    2 
 drivers/gpu/drm/drm_framebuffer.c                               |    2 
 drivers/gpu/drm/drm_mipi_dsi.c                                  |   17 
 drivers/gpu/drm/drm_plane.c                                     |    1 
 drivers/gpu/drm/exynos/exynos5433_drm_decon.c                   |    4 
 drivers/gpu/drm/exynos/exynos_drm_drv.c                         |   11 
 drivers/gpu/drm/exynos/exynos_drm_fimd.c                        |    4 
 drivers/gpu/drm/exynos/exynos_drm_gsc.c                         |    2 
 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c                     |    5 
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h                         |    1 
 drivers/gpu/drm/msm/dsi/phy/dsi_phy.c                           |    4 
 drivers/gpu/drm/nouveau/nouveau_vmm.c                           |    3 
 drivers/hid/hid-apple.c                                         |   63 ++
 drivers/hid/hid-ids.h                                           |    1 
 drivers/hid/hid-quirks.c                                        |    1 
 drivers/hid/wacom_sys.c                                         |   63 +-
 drivers/hid/wacom_wac.c                                         |    9 
 drivers/hwmon/aspeed-pwm-tacho.c                                |    7 
 drivers/hwmon/coretemp.c                                        |   40 -
 drivers/i2c/busses/i2c-i801.c                                   |   19 
 drivers/i3c/master/i3c-master-cdns.c                            |    7 
 drivers/iio/magnetometer/rm3100-core.c                          |   10 
 drivers/infiniband/ulp/ipoib/ipoib_multicast.c                  |    7 
 drivers/input/keyboard/atkbd.c                                  |   13 
 drivers/irqchip/irq-brcmstb-l2.c                                |    5 
 drivers/leds/trigger/ledtrig-panic.c                            |    5 
 drivers/md/md.c                                                 |   54 +-
 drivers/md/raid5.c                                              |   12 
 drivers/media/pci/ddbridge/ddbridge-main.c                      |    2 
 drivers/media/platform/rockchip/rga/rga.c                       |   15 
 drivers/media/usb/stk1160/stk1160-video.c                       |    5 
 drivers/mfd/Kconfig                                             |    1 
 drivers/misc/fastrpc.c                                          |    2 
 drivers/mmc/core/block.c                                        |   46 +
 drivers/mmc/core/slot-gpio.c                                    |    6 
 drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c                      |    2 
 drivers/mtd/nand/spi/macronix.c                                 |    2 
 drivers/net/bonding/bond_alb.c                                  |    3 
 drivers/net/ethernet/aquantia/atlantic/aq_nic.c                 |    1 
 drivers/net/ethernet/broadcom/genet/bcmgenet.c                  |   22 
 drivers/net/ethernet/broadcom/genet/bcmgenet.h                  |    3 
 drivers/net/ethernet/broadcom/genet/bcmmii.c                    |    6 
 drivers/net/ethernet/cisco/enic/enic_ethtool.c                  |    1 
 drivers/net/ethernet/freescale/fec_main.c                       |    2 
 drivers/net/ethernet/intel/i40e/i40e_main.c                     |    2 
 drivers/net/ethernet/intel/ixgbe/ixgbe_82598.c                  |   36 -
 drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c                  |   61 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_common.c                 |  177 +++---
 drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c                |    2 
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c                   |   44 -
 drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.c                    |   34 -
 drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h                    |    1 
 drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c                    |  105 ++-
 drivers/net/ethernet/intel/ixgbe/ixgbe_phy.h                    |    2 
 drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c                  |    2 
 drivers/net/ethernet/intel/ixgbe/ixgbe_type.h                   |   51 -
 drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c                   |   45 -
 drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c                   |  149 ++---
 drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c               |   26 
 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_action.c    |    1 
 drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c         |    2 
 drivers/net/ethernet/netronome/nfp/nfpcore/nfp6000_pcie.c       |    6 
 drivers/net/ethernet/stmicro/stmmac/common.h                    |    1 
 drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h                  |    3 
 drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c             |   58 ++
 drivers/net/fjes/fjes_hw.c                                      |   37 +
 drivers/net/ppp/ppp_async.c                                     |    4 
 drivers/net/virtio_net.c                                        |    9 
 drivers/net/wan/lmc/lmc_proto.c                                 |    4 
 drivers/net/wireless/ath/ath9k/htc_drv_txrx.c                   |    5 
 drivers/net/wireless/ralink/rt2x00/rt2x00dev.c                  |    3 
 drivers/net/wireless/ralink/rt2x00/rt2x00mac.c                  |   11 
 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c           |   12 
 drivers/net/wireless/realtek/rtlwifi/rtl8723ae/phy.c            |    6 
 drivers/net/wireless/realtek/rtlwifi/rtl8723be/phy.c            |    4 
 drivers/net/xen-netback/netback.c                               |   84 +--
 drivers/of/unittest-data/Makefile                               |    8 
 drivers/of/unittest-data/overlay_gpio_01.dts                    |   23 
 drivers/of/unittest-data/overlay_gpio_02a.dts                   |   16 
 drivers/of/unittest-data/overlay_gpio_02b.dts                   |   16 
 drivers/of/unittest-data/overlay_gpio_03.dts                    |   23 
 drivers/of/unittest-data/overlay_gpio_04a.dts                   |   16 
 drivers/of/unittest-data/overlay_gpio_04b.dts                   |   16 
 drivers/of/unittest.c                                           |  265 +++++++++-
 drivers/pci/controller/pcie-mediatek.c                          |   10 
 drivers/pci/pcie/aer.c                                          |    9 
 drivers/pci/quirks.c                                            |   24 
 drivers/pci/switch/switchtec.c                                  |   25 
 drivers/phy/renesas/phy-rcar-gen3-usb2.c                        |    4 
 drivers/phy/ti/phy-omap-usb2.c                                  |    4 
 drivers/pnp/pnpacpi/rsparser.c                                  |   12 
 drivers/regulator/core.c                                        |   56 +-
 drivers/rpmsg/virtio_rpmsg_bus.c                                |    1 
 drivers/scsi/fcoe/fcoe_ctlr.c                                   |   20 
 drivers/scsi/isci/request.c                                     |    2 
 drivers/scsi/libfc/fc_fcp.c                                     |   18 
 drivers/scsi/lpfc/lpfc.h                                        |    1 
 drivers/scsi/lpfc/lpfc_init.c                                   |    4 
 drivers/spi/spi-bcm-qspi.c                                      |    4 
 drivers/spi/spi-ppc4xx.c                                        |    5 
 drivers/staging/iio/impedance-analyzer/ad5933.c                 |    2 
 drivers/tty/serial/max310x.c                                    |   21 
 drivers/tty/serial/sc16is7xx.c                                  |    8 
 drivers/usb/core/hub.c                                          |   34 -
 drivers/usb/gadget/function/f_mass_storage.c                    |   20 
 drivers/usb/serial/cp210x.c                                     |    1 
 drivers/usb/serial/option.c                                     |    1 
 drivers/usb/serial/qcserial.c                                   |    2 
 drivers/vhost/vhost.c                                           |    5 
 fs/afs/dir.c                                                    |    8 
 fs/afs/server.c                                                 |    7 
 fs/btrfs/extent-tree.c                                          |    3 
 fs/btrfs/ioctl.c                                                |    9 
 fs/btrfs/qgroup.c                                               |   14 
 fs/btrfs/ref-verify.c                                           |    6 
 fs/btrfs/send.c                                                 |    2 
 fs/btrfs/tree-checker.c                                         |    2 
 fs/ceph/caps.c                                                  |    9 
 fs/compat_ioctl.c                                               |    3 
 fs/dcache.c                                                     |    7 
 fs/ecryptfs/inode.c                                             |    8 
 fs/ext4/mballoc.c                                               |   26 
 fs/ext4/move_extent.c                                           |    6 
 fs/ext4/resize.c                                                |   37 -
 fs/f2fs/recovery.c                                              |   23 
 fs/inode.c                                                      |   32 +
 fs/jfs/jfs_dmap.c                                               |   57 +-
 fs/jfs/jfs_dtree.c                                              |    7 
 fs/jfs/jfs_imap.c                                               |    3 
 fs/jfs/jfs_mount.c                                              |    6 
 fs/kernfs/dir.c                                                 |   12 
 fs/namei.c                                                      |  144 ++++-
 fs/nilfs2/file.c                                                |    8 
 fs/nilfs2/recovery.c                                            |    7 
 fs/nilfs2/segment.c                                             |    8 
 fs/ocfs2/namei.c                                                |    1 
 fs/pstore/ram.c                                                 |    1 
 fs/ubifs/dir.c                                                  |    2 
 include/drm/drm_mipi_dsi.h                                      |    2 
 include/linux/bpf.h                                             |    6 
 include/linux/dmaengine.h                                       |    3 
 include/linux/fs.h                                              |    1 
 include/linux/gfp.h                                             |    4 
 include/linux/hrtimer.h                                         |    4 
 include/linux/lsm_hooks.h                                       |    9 
 include/linux/netfilter/ipset/ip_set.h                          |    4 
 include/linux/pci_ids.h                                         |    1 
 include/linux/pm_runtime.h                                      |    9 
 include/linux/security.h                                        |    9 
 include/linux/spi/spi.h                                         |    1 
 include/linux/syscalls.h                                        |    1 
 include/linux/units.h                                           |   92 +++
 include/net/af_unix.h                                           |   20 
 include/net/llc_pdu.h                                           |    6 
 include/net/netfilter/nf_tables.h                               |    4 
 include/uapi/linux/btrfs.h                                      |    3 
 include/uapi/linux/netfilter/nf_tables.h                        |    2 
 kernel/audit.c                                                  |   31 -
 kernel/bpf/arraymap.c                                           |   12 
 kernel/bpf/hashtab.c                                            |    6 
 kernel/bpf/map_in_map.c                                         |    2 
 kernel/bpf/map_in_map.h                                         |    2 
 kernel/events/core.c                                            |   38 -
 kernel/power/swap.c                                             |   38 -
 kernel/sched/membarrier.c                                       |    9 
 kernel/time/hrtimer.c                                           |    3 
 kernel/time/tick-sched.c                                        |    5 
 kernel/trace/ring_buffer.c                                      |    2 
 kernel/trace/trace.c                                            |   78 +-
 kernel/trace/trace_events_trigger.c                             |    6 
 kernel/trace/tracing_map.c                                      |    7 
 mm/page-writeback.c                                             |    2 
 net/8021q/vlan_netlink.c                                        |    4 
 net/can/j1939/j1939-priv.h                                      |    1 
 net/can/j1939/socket.c                                          |   22 
 net/core/skbuff.c                                               |    3 
 net/ipv4/af_inet.c                                              |    6 
 net/ipv4/ip_output.c                                            |   12 
 net/ipv4/tcp.c                                                  |    1 
 net/ipv6/addrconf_core.c                                        |   21 
 net/iucv/af_iucv.c                                              |   14 
 net/llc/af_llc.c                                                |   26 
 net/llc/llc_core.c                                              |    7 
 net/netfilter/ipset/ip_set_bitmap_gen.h                         |   14 
 net/netfilter/ipset/ip_set_core.c                               |   39 +
 net/netfilter/ipset/ip_set_hash_gen.h                           |   19 
 net/netfilter/ipset/ip_set_list_set.c                           |   13 
 net/netfilter/nf_log.c                                          |    7 
 net/netfilter/nf_tables_api.c                                   |   20 
 net/netfilter/nft_byteorder.c                                   |    5 
 net/netfilter/nft_compat.c                                      |   23 
 net/netfilter/nft_ct.c                                          |   27 +
 net/netfilter/nft_flow_offload.c                                |    5 
 net/netfilter/nft_meta.c                                        |    2 
 net/netfilter/nft_nat.c                                         |    5 
 net/netfilter/nft_rt.c                                          |    5 
 net/netfilter/nft_set_rbtree.c                                  |    7 
 net/netfilter/nft_socket.c                                      |    5 
 net/netfilter/nft_synproxy.c                                    |    7 
 net/netfilter/nft_tproxy.c                                      |    5 
 net/netfilter/nft_xfrm.c                                        |    5 
 net/netlink/af_netlink.c                                        |    2 
 net/nfc/nci/core.c                                              |    4 
 net/rds/af_rds.c                                                |    2 
 net/rxrpc/conn_event.c                                          |    8 
 net/rxrpc/conn_service.c                                        |    3 
 net/smc/smc_diag.c                                              |    2 
 net/sunrpc/xprtmultipath.c                                      |   17 
 net/tipc/bearer.c                                               |    6 
 net/unix/af_unix.c                                              |   14 
 net/unix/diag.c                                                 |    2 
 net/wireless/scan.c                                             |    4 
 scripts/link-vmlinux.sh                                         |    9 
 security/security.c                                             |   17 
 security/selinux/hooks.c                                        |   28 +
 security/smack/smack_lsm.c                                      |    1 
 security/tomoyo/tomoyo.c                                        |    1 
 sound/pci/hda/hda_intel.c                                       |    2 
 sound/pci/hda/patch_conexant.c                                  |   18 
 sound/pci/hda/patch_realtek.c                                   |    1 
 sound/soc/codecs/rt5645.c                                       |    1 
 tools/lib/subcmd/help.c                                         |   18 
 tools/testing/selftests/bpf/progs/pyperf180.c                   |   22 
 tools/testing/selftests/bpf/test_btf.c                          |    1 
 tools/testing/selftests/net/pmtu.sh                             |   18 
 virt/kvm/arm/vgic/vgic-its.c                                    |    5 
 307 files changed, 2951 insertions(+), 1287 deletions(-)

Akinobu Mita (1):
include/linux/units.h: add helpers for kelvin to/from Celsius conversion

Al Viro (2):
rename(): fix the locking of subdirectories
fast_dput(): handle underflows gracefully

Aleksander Mazur (1):
x86/Kconfig: Transmeta Crusoe is CPU family 5, not 6

Alex Henrie (1):
HID: apple: Add support for the 2021 Magic Keyboard

Alex Lyakas (1):
md: Whenassemble the array, consult the superblock of the freshest device

Alexander Stein (4):
ARM: dts: imx7d: Fix coresight funnel ports
ARM: dts: imx7s: Fix lcdif compatible
ARM: dts: imx7s: Fix nand-controller #size-cells
mmc: slot-gpio: Allow non-sleeping GPIO ro

Alexey Khoroshilov (1):

      ASoC: rt5645: Fix deadlock in rt5645_jack_detect_work()

Alfred Piccioni (1):
lsm: new security_file_ioctl_compat() hook

Andrii Nakryiko (1):
selftests/bpf: satisfy compiler by having explicit return in btf test

Anna Schumaker (1):
SUNRPC: Fix a suspicious RCU usage warning

Anton Ivanov (1):
um: Fix naming clash between UML and scheduler

Arnd Bergmann (1):
drm/exynos: fix accidental on-stack copy of exynos_drm_plane

Avri Altman (1):
mmc: core: Use mrq.sbc in close-ended ffu

Baokun Li (4):
ext4: unify the type of flexbg_size to unsigned int
ext4: remove unnecessary check from alloc_flex_gd()
ext4: avoid online resizing failures due to oversized flex bg
ext4: fix double-free of blocks due to wrong extents moved_len

Benjamin Berg (3):
wifi: cfg80211: free beacon_ies when overridden from hidden BSS
um: Don't use vfprintf() for os_info()
HID: apple: Add 2021 magic keyboard FN key mapping

Bjorn Helgaas (1):
PCI/AER: Decode Requester ID when no error info found

Boris Burkov (2):
btrfs: forbid creating subvol qgroups
btrfs: forbid deleting live subvol qgroup

Breno Leitao (1):
net: sysfs: Fix /sys/class/net/<iface> path

Carlos Llamas (1):
binder: signal epoll threads of self-work

Chao Yu (1):
f2fs: fix to check return value of f2fs_reserve_new_block()

Chris Riches (1):
audit: Send netlink ACK before setting connection in auditd_set

Christian A. Ehrhardt (1):
of: unittest: Fix compile in the non-dynamic case

Christoph Hellwig (1):
block: prevent an integer overflow in bvec_try_merge_hw_page

Christophe JAILLET (3):
ixgbe: Fix an error handling path in ixgbe_read_iosf_sb_reg_x550()
dmaengine: fsl-qdma: Fix a memory leak related to the status queue DMA
dmaengine: fsl-qdma: Fix a memory leak related to the queue command DMA

Chung-Chiang Cheng (1):
btrfs: tree-checker: fix inline ref size in error messages

Cristian Ciocaltea (1):
ASoC: doc: Fix undefined SND_SOC_DAPM_NOPM argument

Dan Carpenter (3):
drm/bridge: nxp-ptn3460: fix i2c_master_send() error checking drm/bridge: nxp-ptn3460: simplify some error checking
netfilter: nf_tables: fix pointer math issue in nft_byteorder_eval()

Daniel Basilio (1):
nfp: use correct macro for LengthSelect in BAR config

Daniel Lezcano (3):
units: Add Watt units
units: change from 'L' to 'UL'
units: add the HZ macros

Daniel Stodden (1):
PCI: switchtec: Fix stdev_release() crash after surprise hot remove

Daniel Vacek (1):
IB/ipoib: Fix mcast list locking

Daniel de Villiers (1):
nfp: flower: prevent re-adding mac index for bonded port

Dave Airlie (1):
nouveau/vmm: don't set addr on the fail path to avoid warning

David Howells (2):
afs: Hide silly-rename files from userspace
rxrpc: Fix response to PING RESPONSE ACKs to a dead call

David Schiller (1):
staging: iio: ad5933: fix type mismatch regression

David Sterba (2):
btrfs: don't warn if discard range is not aligned to sector
btrfs: send: return EOPNOTSUPP on unknown flags

Denis Efremov (1):

      net/mlx5: Use kfree(ft->g) in arfs_create_groups()

Dmitry Antipov (1):
PNP: ACPI: fix fortify warning

Dmitry Baryshkov (1):
PM: runtime: add devm_pm_runtime_enable helper

Doug Berger (1):
irqchip/irq-brcmstb-l2: Add write memory barrier before exit

Douglas Anderson (2):
drm/exynos: Call drm_atomic_helper_shutdown() at shutdown/unbind time
PM: runtime: Have devm_pm_runtime_enable() handle pm_runtime_dont_use_autosuspend()

Edson Juliano Drosdeck (1):
ALSA: hda/realtek: Enable headset mic on Vaio VJFE-ADL

Edward Adam Davis (3):
jfs: fix uaf in jfs_evict_inode
jfs: fix array-index-out-of-bounds in diNewExt
wifi: cfg80211: fix RCU dereference in __cfg80211_bss_update

Ekansh Gupta (1):
misc: fastrpc: Mark all sessions as invalid in cb_remove

Eric Dumazet (6):
llc: make llc_ui_sendmsg() more robust against bonding changes
llc: call sock_orphan() at release time
af_unix: fix lockdep positive in sk_diag_dump_icons()
inet: read sk->sk_family once in inet_recv_error()
ppp_async: limit MRU to 64K
net: prevent mss overflow in skb_segment()

Fabio Estevam (8):
ARM: dts: imx25/27-eukrea: Fix RTC node name
ARM: dts: imx: Use flash@0,0 pattern
ARM: dts: imx27: Fix sram node
ARM: dts: imx1: Fix sram node
ARM: dts: imx25/27: Pass timing0
ARM: dts: imx27-apf27dev: Fix LED name
ARM: dts: imx23-sansa: Use preferred i2c-gpios properties
ARM: dts: imx23/28: Fix the DMA controller node name

Fedor Pchelkin (3):
btrfs: ref-verify: free ref cache before clearing mount opt drm/exynos: gsc: minor fix for loop iteration in gsc_runtime_resume
nfc: nci: free rx_data_reassembly skb on NCI device cleanup

Felix Kuehling (1):
drm/amdgpu: Let KFD sync with VM fences

Florian Fainelli (1):
net: bcmgenet: Fix EEE implementation

Florian Westphal (2):
netfilter: nf_tables: restrict anonymous set and map names to 16 bytes
netfilter: nf_tables: reject QUEUE/DROP verdict parameters

Frank Li (1):
dmaengine: fix is_slave_direction() return false when DMA_DEV_TO_DEV

Frank Rowand (3):
of: unittest: add overlay gpio test to catch gpio hog problem
of: unittest: fix EXPECT text for gpio hog errors
of: gpio unittest kfree() wrong object

Frederic Weisbecker (1):
hrtimer: Report offline hrtimer enqueue

Furong Xu (2):
net: stmmac: xgmac: fix handling of DPP safety error for DMA channels
net: stmmac: xgmac: fix a typo of register name in DPP safety handling

Gabriel Krisman Bertazi (1):
ecryptfs: Reject casefold directory inodes

Ghanshyam Agrawal (1):
media: stk1160: Fixed high volume of stk1160_dbg messages

Greg KH (1):
perf/core: Fix narrow startup race when creating the perf nr_addr_filters sysfs file

Greg Kroah-Hartman (1):

      Linux 5.4.269

Guenter Roeck (1):
MIPS: Add 'memory' clobber to csum_ipv6_magic() inline assembler

Guilherme G. Piccoli (1):
PCI: Only override AMD USB controller if required

Hannes Reinecke (2):
scsi: libfc: Don't schedule abort twice
scsi: libfc: Fix up timeout error in fc_fcp_rec_error()

Hans de Goede (1):
Input: atkbd - skip ATKBD_CMD_SETLEDS when skipping ATKBD_CMD_GETID

Hardik Gajjar (1):
usb: hub: Replace hardcoded quirk value with BIT() macro

Harshit Shah (1):
i3c: master: cdns: Update maximum prescaler value for i2c clock

Heiko Carstens (2):
s390/ptrace: handle setting of fpc register correctly
KVM: s390: fix setting of fpc register

Heiner Kallweit (2):
leds: trigger: panic: Don't register panic notifier if creating the trigger failed
i2c: i801: Remove i801_set_block_buffer_mode

Helge Deller (2):
parisc/firmware: Fix F-extend for PDC addresses
ipv6: Ensure natural alignment of const ipv6 loopback and router addresses

Herbert Xu (2):
crypto: api - Disallow identical driver names
hwrng: core - Fix page fault dead lock on mmap-ed hwrng

Hongchen Zhang (1):
PM: hibernate: Enforce ordering during image compression/decompression

Hou Tao (1):
bpf: Add map and need_defer parameters to .map_fd_put_ptr()

Hugo Villeneuve (4):
serial: sc16is7xx: set safe default SPI clock frequency
serial: sc16is7xx: add check for unsupported SPI modes during probe
serial: max310x: set default value when reading clock ready bit
serial: max310x: improve crystal stable clock detection

Ian Rogers (1):
libsubcmd: Fix memory leak in uniq()

Ido Schimmel (1):
PCI: Add no PM reset quirk for NVIDIA Spectrum devices

Ilya Dryomov (1):
rbd: don't move requests to the running list on errors

Ivan Vecera (1):
i40e: Fix waiting for queues of all VSIs to be disabled

Jack Wang (1):
RDMA/IPoIB: Fix error code return in ipoib_mcast_join

JackBB Wu (1):
USB: serial: qcserial: add new usb-id for Dell Wireless DW5826e

JaimeLiao (1):
mtd: spinand: macronix: Fix MX35LFxGE4AD page size

Jan Beulich (1):
xen-netback: properly sync TX responses

Jason Gerecke (1):
HID: wacom: Do not register input devices until after hid_hw_start

Jean Delvare (1):
i2c: i801: Fix block process call transactions

Jedrzej Jagielski (2):
ixgbe: Refactor returning internal error codes
ixgbe: Refactor overtemp event handling

Johan Hovold (1):
arm64: dts: qcom: sdm845: fix USB wakeup interrupt types

Johan Jonker (1):
ARM: dts: rockchip: fix rk3036 hdmi ports node

Jozsef Kadlecsik (2):
netfilter: ipset: fix performance regression in swap operation
netfilter: ipset: Missing gc cancellations fixed

Julian Wiedmann (1):
net/af_iucv: clean up a try_then_request_module()

Junxiao Bi (1):
Revert "md/raid5: Wait for MD_SB_CHANGE_PENDING in raid5d"

Justin Tee (1):
scsi: lpfc: Fix possible file string name overflow when updating firmware

Kamal Dasu (1):
spi: bcm-qspi: fix SFDP BFPT read by usig mspi read

Konrad Dybcio (2):
pmdomain: core: Move the unused cleanup to a _sync initcall drm/msm/dsi: Enable runtime PM

Kuan-Wei Chiu (2):
clk: hi3620: Fix memory leak in hi3620_mmc_clk_init()
clk: mmp: pxa168: Fix memory leak in pxa168_clk_init()

Kuniyuki Iwashima (1):

      llc: Drop support for ETH_P_TR_802_2.

Kunwu Chan (1):
powerpc/mm: Fix null-pointer dereference in pgtable_cache_add

Lee Duncan (1):

      scsi: Revert "scsi: fcoe: Fix potential deadlock on &fip->ctlr_lock"

Leonard Dallmayr (1):

      USB: serial: cp210x: add ID for IMST iM871A-USB

Lin Ma (1):
vlan: skip nested type that is not IFLA_VLAN_QOS_MAPPING

Linus Torvalds (1):
sched/membarrier: reduce the ability to hammer on sys_membarrier

Loic Prylli (1):
hwmon: (aspeed-pwm-tacho) mutex for tach reading

Maciej S. Szmigiero (1):

      x86/CPU/AMD: Fix disabling XSAVES on AMD family 0x17 due to erratum

Manas Ghandat (2):
jfs: fix slab-out-of-bounds Read in dtSearch
jfs: fix array-index-out-of-bounds in dbAdjTree

Mao Jinlong (2):
arm64: dts: qcom: msm8996: Fix 'in-ports' is a required property
arm64: dts: qcom: msm8998: Fix 'out-ports' is a required property

Mario Limonciello (1):
gpiolib: acpi: Ignore touchpad wakeup on GPD G1619-04

Masami Hiramatsu (Google) (1):
tracing/trigger: Fix to return error if failed to alloc snapshot

Matthew Wilcox (Oracle) (1):
block: Remove special-casing of compound pages

Max Kellermann (1):
fs/kernfs/dir: obey S_ISGID

Max Krummenacher (1):
Revert "Revert "mtd: rawnand: gpmi: Fix setting busy timeout setting""

Michael Ellerman (2):
powerpc: Fix build error due to is_valid_bugaddr() powerpc/mm: Fix build failures due to arch_reserved_kernel_pages()

Michael Tretter (1):
media: rockchip: rga: fix swizzling for RGB formats

Mike Rapoport (1):
arch, mm: remove stale mentions of DISCONIGMEM

Ming Lei (1):
blk-mq: fix IO hang from sbitmap wakeup race

Minsuk Kang (1):
wifi: ath9k: Fix potential array-index-out-of-bounds read in ath9k_htc_txstatus()

Nathan Chancellor (3):
powerpc: Use always instead of always-y in for crtsavres.o
um: net: Fix return type of uml_net_start_xmit()
kbuild: Fix changing ELF file type for output of gen_btf for big endian

Naveen N Rao (1):
powerpc/lib: Validate size for vector operations

Oleg Nesterov (2):
afs: fix the usage of read_seqbegin_or_lock() in afs_find_server*() rxrpc_find_service_conn_rcu: fix the usage of read_seqbegin_or_lock()

Oleksij Rempel (2):
spi: introduce SPI_MODE_X_MASK macro
can: j1939: Fix UAF in j1939_sk_match_filter during setsockopt(SO_J1939_FILTER)

Oliver Neukum (1):
USB: hub: check for alternate port before enabling A_ALT_HNP_SUPPORT

Oliver Upton (1):
KVM: arm64: vgic-its: Avoid potential UAF in LPI translation cache

Osama Muhammad (2):
FS:JFS:UBSAN:array-index-out-of-bounds in dbAdjTree
UBSAN: array-index-out-of-bounds in dtSplitRoot

Pablo Neira Ayuso (7):
netfilter: nf_tables: validate NFPROTO_* family
netfilter: nf_log: replace BUG_ON by WARN_ON_ONCE when putting logger
netfilter: nft_ct: sanitize layer 3 and 4 protocol number in custom expectations
netfilter: nft_compat: reject unused compat flag
netfilter: nft_compat: restrict match/target protocol to u16
netfilter: nft_ct: reject direction for ct id
netfilter: nft_set_rbtree: skip end interval element from gc

Paolo Abeni (1):
selftests: net: avoid just another constant wait

Peter Robinson (1):
mfd: ti_am335x_tscadc: Fix TI SoC dependencies

Peter Zijlstra (1):
perf: Fix the nr_addr_filters fix

Petr Pavlu (1):
tracing: Ensure visibility when inserting an element into tracing_map

Pierre-Louis Bossart (2):
PCI: add INTEL_HDA_ARL to pci_ids.h
ALSA: hda: Intel: add HDA_ARL PCI ID support

Piotr Skajewski (1):
ixgbe: Remove non-inclusive language

Prarit Bhargava (1):
ACPI: extlog: fix NULL pointer dereference check

Prathu Baronia (1):
vhost: use kzalloc() instead of kmalloc() followed by memset()

Puliang Lu (1):
USB: serial: option: add Fibocom FM101-GL variant

Qu Wenruo (1):
btrfs: defrag: reject unknown flags of btrfs_ioctl_defrag_range_args

Richard Palethorpe (1):
x86/entry/ia32: Ensure s32 is sign extended to s64

Rob Clark (1):
drm/msm/dpu: Ratelimit framedone timeout msgs

Rui Zhang (1):
regulator: core: Only increment use_count when enable_count changes

Ryusuke Konishi (3):
nilfs2: fix data corruption in dsync block recovery for small block sizes
nilfs2: fix hang in nilfs_lookup_dirty_data_buffers()
nilfs2: fix potential bug in end_buffer_async_write

Salvatore Dipietro (1):
tcp: Add memory barrier to tcp_push()

Serge Semin (1):
mips: Fix max_mapnr being uninitialized on early stages

Sharath Srinivasan (1):
net/rds: Fix UBSAN: array-index-out-of-bounds in rds_cmsg_recv

Shenwei Wang (1):
net: fec: fix the unhandled context fault from smmu

Shigeru Yoshida (1):
tipc: Check the bearer type before calling tipc_udp_nl_bearer_add()

Shiji Yang (1):
wifi: rt2x00: restart beacon queue when hardware reset

Simon Horman (1):
net: stmmac: xgmac: use #define for string constants

Sjoerd Simons (1):
bus: moxtet: Add spi device table

Srinivasan Shanmugam (2):
drm/amdgpu: Drop 'fence' check in 'to_amdgpu_amdkfd_fence()' drm/amdgpu: Release 'adev->pm.fw' before return in 'amdgpu_device_need_post()'

Stephen Rothwell (1):
powerpc: pmd_move_must_withdraw() is only needed for CONFIG_TRANSPARENT_HUGEPAGE

Steve Wahl (1):
x86/mm/ident_map: Use gbpages only where full GB page should be mapped.

Steven Rostedt (Google) (2):
tracing: Fix wasted memory in saved_cmdlines logic
tracing: Inform kmemleak of saved_cmdlines allocation

Su Hui (3):
wifi: rtlwifi: rtl8723{be,ae}: using calculate_bit_shift()
media: ddbridge: fix an error code problem in ddb_probe
scsi: isci: Fix an error code problem in isci_io_request_build()

Suraj Jitindar Singh (1):
ext4: allow for the last group to be marked as trimmed

Takashi Sakamoto (1):
firewire: core: correct documentation of fw_csr_string() kernel API

Tatsunosuke Tobita (1):
HID: wacom: generic: Avoid reporting a serial of '0' to userspace

Thomas Bourgoin (1):
crypto: stm32/crc32 - fix parsing list of devices

Tim Chen (1):
tick/sched: Preserve number of idle sleeps across CPU hotplug events

Tom Rix (1):
net: remove unneeded break

Tomi Valkeinen (3):
drm/drm_file: fix use of uninitialized variable drm/framebuffer: Fix use of uninitialized variable drm/mipi-dsi: Fix detach call without attach

Tony Lindgren (1):
phy: ti: phy-omap-usb2: Fix NULL pointer dereference for SRP

Uwe Kleine-König (1):
spi: ppc4xx: Drop write-only variable

Ville Syrjälä (1):
drm: Don't unref the same fb many times by mistake due to deadlock handling

Vincent Donnefort (1):
ring-buffer: Clean ring_buffer_poll_wait() error return

Weichen Chen (1):
pstore/ram: Fix crash when setting number of cpus to an odd number

Wen Gu (1):
net/smc: fix illegal rmb_desc access in SMC-D connection dump

Wenhua Lin (1):
gpio: eic-sprd: Clear interrupt after set the interrupt type

Xi Ruoyao (1):
mips: Call lose_fpu(0) before initializing fcr31 in mips_set_personality_nan

Xiaolei Wang (1):
rpmsg: virtio: Free driver_override when rpmsg_remove()

Xiubo Li (1):
ceph: fix deadlock or deadcode of misusing dget()

Yang Xu (2):
fs: add mode_strip_sgid() helper
fs: move S_ISGID stripping into the vfs_*() helpers

Ye Bin (1):
ext4: fix inconsistent between segment fstrim and full fstrim

Yevgeny Kliteynik (1):
net/mlx5: DR, Use the right GVMI number for drop action

Yonghong Song (1):
selftests/bpf: Fix pyperf180 compilation failure with clang18

Yoshihiro Shimoda (1):
phy: renesas: rcar-gen3-usb2: Fix returning wrong error code

Yuluo Qiu (1):
ACPI: video: Add quirk for the Colorful X15 AT 23 Laptop

Zach O'Keefe (1):
mm/writeback: fix possible divide-by-zero in wb_dirty_limits(), again

Zenm Chen (1):
wifi: rtl8xxxu: Add additional USB IDs for RTL8192EU devices

Zhang Rui (2):
hwmon: (coretemp) Fix out-of-bounds memory access
hwmon: (coretemp) Fix bogus core_id to attr name mapping

Zhengchao Shao (3):
netlink: fix potential sleeping issue in mqueue_flush_file
bonding: return -ENOMEM instead of BUG in alb_upper_dev_walk
bonding: remove print in bond_verify_device_path

Zhihao Cheng (1):

      ubifs: ubifs_symlink: Fix memleak of inode->i_link in error path

Zhipeng Lu (4):
net/mlx5e: fix a double-free in arfs_create_groups
fjes: fix memleaks in fjes_hw_setup
net: ipv4: fix a memleak in ip_setup_cork
atm: idt77252: fix a memleak in open_card_ubr0

Zhiquan Li (1):
x86/mce: Mark fatal MCE's page as poison to avoid panic in the kdump kernel

Zhu Yanjun (1):
virtio_net: Fix "‘%d’ directive writing between 1 and 11 bytes into a region of size 10" warnings

bo liu (1):
ALSA: hda/conexant: Add quirk for SWS JS201D

free5lot (1):
HID: apple: Swap the Fn and Left Control keys on Apple keyboards

qizhong cheng (1):
PCI: mediatek: Clear interrupt status before dispatching handler

yuan linyu (1):
usb: f_mass_storage: forbid async queue when shutdown happen

zhili.liu (1):
iio: magnetometer: rm3100: add boundary check for the value read from RM3100_REG_TMRC

author maintainer
#1 lore raw
Documentation/ABI/testing/sysfs-class-net-queues +11 -11
index 978b76358661..40d5aab8452d 100644
@@ -1,4 +1,4 @@
-What:		/sys/class/<iface>/queues/rx-<queue>/rps_cpus
+What:		/sys/class/net/<iface>/queues/rx-<queue>/rps_cpus
 Date:		March 2010
 KernelVersion:	2.6.35
 Contact:	[email protected]
@@ -8,7 +8,7 @@ Description:
 		network device queue. Possible values depend on the number
 		of available CPU(s) in the system.
 
-What:		/sys/class/<iface>/queues/rx-<queue>/rps_flow_cnt
+What:		/sys/class/net/<iface>/queues/rx-<queue>/rps_flow_cnt
 Date:		April 2010
 KernelVersion:	2.6.35
 Contact:	[email protected]
@@ -16,7 +16,7 @@ Description:
 		Number of Receive Packet Steering flows being currently
 		processed by this particular network device receive queue.
 
-What:		/sys/class/<iface>/queues/tx-<queue>/tx_timeout
+What:		/sys/class/net/<iface>/queues/tx-<queue>/tx_timeout
 Date:		November 2011
 KernelVersion:	3.3
 Contact:	[email protected]
@@ -24,7 +24,7 @@ Description:
 		Indicates the number of transmit timeout events seen by this
 		network interface transmit queue.
 
-What:		/sys/class/<iface>/queues/tx-<queue>/tx_maxrate
+What:		/sys/class/net/<iface>/queues/tx-<queue>/tx_maxrate
 Date:		March 2015
 KernelVersion:	4.1
 Contact:	[email protected]
@@ -32,7 +32,7 @@ Description:
 		A Mbps max-rate set for the queue, a value of zero means disabled,
 		default is disabled.
 
-What:		/sys/class/<iface>/queues/tx-<queue>/xps_cpus
+What:		/sys/class/net/<iface>/queues/tx-<queue>/xps_cpus
 Date:		November 2010
 KernelVersion:	2.6.38
 Contact:	[email protected]
@@ -42,7 +42,7 @@ Description:
 		network device transmit queue. Possible vaules depend on the
 		number of available CPU(s) in the system.
 
-What:		/sys/class/<iface>/queues/tx-<queue>/xps_rxqs
+What:		/sys/class/net/<iface>/queues/tx-<queue>/xps_rxqs
 Date:		June 2018
 KernelVersion:	4.18.0
 Contact:	[email protected]
@@ -53,7 +53,7 @@ Description:
 		number of available receive queue(s) in the network device.
 		Default is disabled.
 
-What:		/sys/class/<iface>/queues/tx-<queue>/byte_queue_limits/hold_time
+What:		/sys/class/net/<iface>/queues/tx-<queue>/byte_queue_limits/hold_time
 Date:		November 2011
 KernelVersion:	3.3
 Contact:	[email protected]
@@ -62,7 +62,7 @@ Description:
 		of this particular network device transmit queue.
 		Default value is 1000.
 
-What:		/sys/class/<iface>/queues/tx-<queue>/byte_queue_limits/inflight
+What:		/sys/class/net/<iface>/queues/tx-<queue>/byte_queue_limits/inflight
 Date:		November 2011
 KernelVersion:	3.3
 Contact:	[email protected]
@@ -70,7 +70,7 @@ Description:
 		Indicates the number of bytes (objects) in flight on this
 		network device transmit queue.
 
-What:		/sys/class/<iface>/queues/tx-<queue>/byte_queue_limits/limit
+What:		/sys/class/net/<iface>/queues/tx-<queue>/byte_queue_limits/limit
 Date:		November 2011
 KernelVersion:	3.3
 Contact:	[email protected]
@@ -79,7 +79,7 @@ Description:
 		on this network device transmit queue. This value is clamped
 		to be within the bounds defined by limit_max and limit_min.
 
-What:		/sys/class/<iface>/queues/tx-<queue>/byte_queue_limits/limit_max
+What:		/sys/class/net/<iface>/queues/tx-<queue>/byte_queue_limits/limit_max
 Date:		November 2011
 KernelVersion:	3.3
 Contact:	[email protected]
@@ -88,7 +88,7 @@ Description:
 		queued on this network device transmit queue. See
 		include/linux/dynamic_queue_limits.h for the default value.
 
-What:		/sys/class/<iface>/queues/tx-<queue>/byte_queue_limits/limit_min
+What:		/sys/class/net/<iface>/queues/tx-<queue>/byte_queue_limits/limit_min
 Date:		November 2011
 KernelVersion:	3.3
 Contact:	[email protected]
Documentation/filesystems/directory-locking.rst +15 -10
index e59fc830c9af..6a238477f27f 100644
@@ -22,13 +22,16 @@ exclusive.
 3) object removal.  Locking rules: caller locks parent, finds victim,
 locks victim and calls the method.  Locks are exclusive.
 
-4) rename() that is _not_ cross-directory.  Locking rules: caller locks the
-parent and finds source and target.  We lock both (provided they exist).  If we
-need to lock two inodes of different type (dir vs non-dir), we lock directory
-first.  If we need to lock two inodes of the same type, lock them in inode
-pointer order.  Then call the method.  All locks are exclusive.
-NB: we might get away with locking the the source (and target in exchange
-case) shared.
+4) rename() that is _not_ cross-directory.  Locking rules: caller locks
+the parent and finds source and target.  Then we decide which of the
+source and target need to be locked.  Source needs to be locked if it's a
+non-directory; target - if it's a non-directory or about to be removed.
+Take the locks that need to be taken, in inode pointer order if need
+to take both (that can happen only when both source and target are
+non-directories - the source because it wouldn't be locked otherwise
+and the target because mixing directory and non-directory is allowed
+only with RENAME_EXCHANGE, and that won't be removing the target).
+After the locks had been taken, call the method.  All locks are exclusive.
 
 5) link creation.  Locking rules:
 
@@ -44,7 +47,7 @@ rules:
 
 	* lock the filesystem
 	* lock parents in "ancestors first" order. If one is not ancestor of
-	  the other, lock them in inode pointer order.
+	  the other, lock the parent of source first.
 	* find source and target.
 	* if old parent is equal to or is a descendent of target
 	  fail with -ENOTEMPTY
@@ -54,10 +57,11 @@ rules:
 	  need to lock two inodes of different type (dir vs non-dir), we lock
 	  the directory first. If we need to lock two inodes of the same type,
 	  lock them in inode pointer order.
+	* Lock subdirectories involved (source before target).
+	* Lock non-directories involved, in inode pointer order.
 	* call the method.
 
-All ->i_rwsem are taken exclusive.  Again, we might get away with locking
-the the source (and target in exchange case) shared.
+All ->i_rwsem are taken exclusive.
 
 The rules above obviously guarantee that all directories that are going to be
 read, modified or removed by method will be locked by caller.
@@ -67,6 +71,7 @@ If no directory is its own ancestor, the scheme above is deadlock-free.
 
 Proof:
 
+[XXX: will be updated once we are done massaging the lock_rename()]
 	First of all, at any moment we have a linear ordering of the
 	objects - A < B iff (A is an ancestor of B) or (B is not an ancestor
         of A and ptr(A) < ptr(B)).
Documentation/filesystems/locking.rst +4 -1
index fc3a0704553c..b8b2906dc221 100644
@@ -95,7 +95,7 @@ symlink:	exclusive
 mkdir:		exclusive
 unlink:		exclusive (both)
 rmdir:		exclusive (both)(see below)
-rename:		exclusive (all)	(see below)
+rename:		exclusive (both parents, some children)	(see below)
 readlink:	no
 get_link:	no
 setattr:	exclusive
@@ -113,6 +113,9 @@ tmpfile:	no
 	Additionally, ->rmdir(), ->unlink() and ->rename() have ->i_rwsem
 	exclusive on victim.
 	cross-directory ->rename() has (per-superblock) ->s_vfs_rename_sem.
+	->unlink() and ->rename() have ->i_rwsem exclusive on all non-directories
+	involved.
+	->rename() has ->i_rwsem exclusive on any subdirectory that changes parent.
 
 See Documentation/filesystems/directory-locking.rst for more detailed discussion
 of the locking scheme for directory operations.
Documentation/filesystems/porting.rst +18 -0
index 26c093969573..48301b6b517c 100644
@@ -858,3 +858,21 @@ be misspelled d_alloc_anon().
 [should've been added in 2016] stale comment in finish_open() nonwithstanding,
 failure exits in ->atomic_open() instances should *NOT* fput() the file,
 no matter what.  Everything is handled by the caller.
+
+---
+
+**mandatory**
+
+If ->rename() update of .. on cross-directory move needs an exclusion with
+directory modifications, do *not* lock the subdirectory in question in your
+->rename() - it's done by the caller now [that item should've been added in
+28eceeda130f "fs: Lock moved directories"].
+
+---
+
+**mandatory**
+
+On same-directory ->rename() the (tautological) update of .. is not protected
+by any locks; just don't do it if the old parent is the same as the new one.
+We really can't lock two subdirectories in same-directory rename - not without
+deadlocks.
Documentation/sound/soc/dapm.rst +1 -1
index 8e44107933ab..c3154ce6e1b2 100644
@@ -234,7 +234,7 @@ corresponding soft power control. In this case it is necessary to create
 a virtual widget - a widget with no control bits e.g.
 ::
 
-  SND_SOC_DAPM_MIXER("AC97 Mixer", SND_SOC_DAPM_NOPM, 0, 0, NULL, 0),
+  SND_SOC_DAPM_MIXER("AC97 Mixer", SND_SOC_NOPM, 0, 0, NULL, 0),
 
 This can be used to merge to signal paths together in software.
 
Makefile +1 -1
index 7ed877aae512..03381e2a6da7 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 4
-SUBLEVEL = 268
+SUBLEVEL = 269
 EXTRAVERSION =
 NAME = Kleptomaniac Octopus
 
arch/arm/boot/dts/imx1-ads.dts +1 -1
index 5833fb6f15d8..2c817c4a4c68 100644
@@ -65,7 +65,7 @@
 	pinctrl-0 = <&pinctrl_weim>;
 	status = "okay";
 
-	nor: nor@0,0 {
+	nor: flash@0,0 {
 		compatible = "cfi-flash";
 		reg = <0 0x00000000 0x02000000>;
 		bank-width = <4>;
arch/arm/boot/dts/imx1-apf9328.dts +1 -1
index 77b21aa7a146..27e72b07b517 100644
@@ -45,7 +45,7 @@
 	pinctrl-0 = <&pinctrl_weim>;
 	status = "okay";
 
-	nor: nor@0,0 {
+	nor: flash@0,0 {
 		compatible = "cfi-flash";
 		reg = <0 0x00000000 0x02000000>;
 		bank-width = <2>;
arch/arm/boot/dts/imx1.dtsi +4 -1
index b30448cde582..a74870d03a67 100644
@@ -268,9 +268,12 @@
 			status = "disabled";
 		};
 
-		esram: esram@300000 {
+		esram: sram@300000 {
 			compatible = "mmio-sram";
 			reg = <0x00300000 0x20000>;
+			ranges = <0 0x00300000 0x20000>;
+			#address-cells = <1>;
+			#size-cells = <1>;
 		};
 	};
 };
arch/arm/boot/dts/imx23-sansa.dts +4 -8
index 46057d9bf555..c2efcc20ae80 100644
@@ -175,10 +175,8 @@
 		#address-cells = <1>;
 		#size-cells = <0>;
 		compatible = "i2c-gpio";
-		gpios = <
-			&gpio1 24 0		/* SDA */
-			&gpio1 22 0		/* SCL */
-		>;
+		sda-gpios = <&gpio1 24 0>;
+		scl-gpios = <&gpio1 22 0>;
 		i2c-gpio,delay-us = <2>;	/* ~100 kHz */
 	};
 
@@ -186,10 +184,8 @@
 		#address-cells = <1>;
 		#size-cells = <0>;
 		compatible = "i2c-gpio";
-		gpios = <
-			&gpio0 31 0		/* SDA */
-			&gpio0 30 0		/* SCL */
-		>;
+		sda-gpios = <&gpio0 31 0>;
+		scl-gpios = <&gpio0 30 0>;
 		i2c-gpio,delay-us = <2>;	/* ~100 kHz */
 
 		touch: touch@20 {
arch/arm/boot/dts/imx23.dtsi +1 -1
index 42700d7f8bf7..ba1705595b29 100644
@@ -406,7 +406,7 @@
 				status = "disabled";
 			};
 
-			dma_apbx: dma-apbx@80024000 {
+			dma_apbx: dma-controller@80024000 {
 				compatible = "fsl,imx23-dma-apbx";
 				reg = <0x80024000 0x2000>;
 				interrupts = <7 5 9 26
arch/arm/boot/dts/imx25-eukrea-cpuimx25.dtsi +1 -1
index 0703f62d10d1..93a6e4e680b4 100644
@@ -27,7 +27,7 @@
 	pinctrl-0 = <&pinctrl_i2c1>;
 	status = "okay";
 
-	pcf8563@51 {
+	rtc@51 {
 		compatible = "nxp,pcf8563";
 		reg = <0x51>;
 	};
arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-cmo-qvga.dts +1 -1
index 7d4301b22b90..1ed3fb7b9ce6 100644
@@ -16,7 +16,7 @@
 		bus-width = <18>;
 		display-timings {
 			native-mode = <&qvga_timings>;
-			qvga_timings: 320x240 {
+			qvga_timings: timing0 {
 				clock-frequency = <6500000>;
 				hactive = <320>;
 				vactive = <240>;
arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-dvi-svga.dts +1 -1
index 80a7f96de4c6..64b2ffac463b 100644
@@ -16,7 +16,7 @@
 		bus-width = <18>;
 		display-timings {
 			native-mode = <&dvi_svga_timings>;
-			dvi_svga_timings: 800x600 {
+			dvi_svga_timings: timing0 {
 				clock-frequency = <40000000>;
 				hactive = <800>;
 				vactive = <600>;
arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-dvi-vga.dts +1 -1
index 24027a1fb46d..fb074bfdaa8d 100644
@@ -16,7 +16,7 @@
 		bus-width = <18>;
 		display-timings {
 			native-mode = <&dvi_vga_timings>;
-			dvi_vga_timings: 640x480 {
+			dvi_vga_timings: timing0 {
 				clock-frequency = <31250000>;
 				hactive = <640>;
 				vactive = <480>;
arch/arm/boot/dts/imx25-pdk.dts +1 -1
index 05cccd12624c..876b101ce3e6 100644
@@ -78,7 +78,7 @@
 		bus-width = <18>;
 		display-timings {
 			native-mode = <&wvga_timings>;
-			wvga_timings: 640x480 {
+			wvga_timings: timing0 {
 				hactive = <640>;
 				vactive = <480>;
 				hback-porch = <45>;
arch/arm/boot/dts/imx27-apf27dev.dts +2 -2
index 6f1e8ce9e76e..3d9bb7fc3be2 100644
@@ -16,7 +16,7 @@
 		fsl,pcr = <0xfae80083>;	/* non-standard but required */
 		display-timings {
 			native-mode = <&timing0>;
-			timing0: 800x480 {
+			timing0: timing0 {
 				clock-frequency = <33000033>;
 				hactive = <800>;
 				vactive = <480>;
@@ -47,7 +47,7 @@
 		pinctrl-names = "default";
 		pinctrl-0 = <&pinctrl_gpio_leds>;
 
-		user {
+		led-user {
 			label = "Heartbeat";
 			gpios = <&gpio6 14 GPIO_ACTIVE_HIGH>;
 			linux,default-trigger = "heartbeat";
arch/arm/boot/dts/imx27-eukrea-cpuimx27.dtsi +2 -2
index 74110bbcd9d4..c7e923584878 100644
@@ -33,7 +33,7 @@
 	pinctrl-0 = <&pinctrl_i2c1>;
 	status = "okay";
 
-	pcf8563@51 {
+	rtc@51 {
 		compatible = "nxp,pcf8563";
 		reg = <0x51>;
 	};
@@ -90,7 +90,7 @@
 &weim {
 	status = "okay";
 
-	nor: nor@0,0 {
+	nor: flash@0,0 {
 		#address-cells = <1>;
 		#size-cells = <1>;
 		compatible = "cfi-flash";
arch/arm/boot/dts/imx27-eukrea-mbimxsd27-baseboard.dts +1 -1
index 9c3ec82ec7e5..50fa0bd4c8a1 100644
@@ -16,7 +16,7 @@
 
 		display-timings {
 			native-mode = <&timing0>;
-			timing0: 320x240 {
+			timing0: timing0 {
 				clock-frequency = <6500000>;
 				hactive = <320>;
 				vactive = <240>;
arch/arm/boot/dts/imx27-phytec-phycard-s-rdk.dts +1 -1
index 188639738dc3..7f36af150a25 100644
@@ -19,7 +19,7 @@
 		fsl,pcr = <0xf0c88080>;	/* non-standard but required */
 		display-timings {
 			native-mode = <&timing0>;
-			timing0: 640x480 {
+			timing0: timing0 {
 				hactive = <640>;
 				vactive = <480>;
 				hback-porch = <112>;
arch/arm/boot/dts/imx27-phytec-phycore-rdk.dts +1 -1
index bf883e45576a..39e0fcb12d23 100644
@@ -19,7 +19,7 @@
 
 		display-timings {
 			native-mode = <&timing0>;
-			timing0: 240x320 {
+			timing0: timing0 {
 				clock-frequency = <5500000>;
 				hactive = <240>;
 				vactive = <320>;
arch/arm/boot/dts/imx27-phytec-phycore-som.dtsi +1 -1
index 3d10273177e9..a5fdc2fd4ce5 100644
@@ -322,7 +322,7 @@
 &weim {
 	status = "okay";
 
-	nor: nor@0,0 {
+	nor: flash@0,0 {
 		compatible = "cfi-flash";
 		reg = <0 0x00000000 0x02000000>;
 		bank-width = <2>;
arch/arm/boot/dts/imx27.dtsi +3 -0
index 3652f5556b29..eb0dac710044 100644
@@ -588,6 +588,9 @@
 		iram: iram@ffff4c00 {
 			compatible = "mmio-sram";
 			reg = <0xffff4c00 0xb400>;
+			ranges = <0 0xffff4c00 0xb400>;
+			#address-cells = <1>;
+			#size-cells = <1>;
 		};
 	};
 };
arch/arm/boot/dts/imx28.dtsi +1 -1
index 235c69bd181f..26dc6c9e1e6c 100644
@@ -982,7 +982,7 @@
 				status = "disabled";
 			};
 
-			dma_apbx: dma-apbx@80024000 {
+			dma_apbx: dma-controller@80024000 {
 				compatible = "fsl,imx28-dma-apbx";
 				reg = <0x80024000 0x2000>;
 				interrupts = <78 79 66 0
arch/arm/boot/dts/imx7d.dtsi +0 -3
index 8b65ca8b5f30..2b9d0b1bd982 100644
@@ -204,9 +204,6 @@
 };
 
 &ca_funnel_in_ports {
-	#address-cells = <1>;
-	#size-cells = <0>;
-
 	port@1 {
 		reg = <1>;
 		ca_funnel_in_port1: endpoint {
arch/arm/boot/dts/imx7s.dtsi +7 -3
index 7ce541fcac76..8e86841ef4e6 100644
@@ -183,7 +183,11 @@
 			clock-names = "apb_pclk";
 
 			ca_funnel_in_ports: in-ports {
-				port {
+				#address-cells = <1>;
+				#size-cells = <0>;
+
+				port@0 {
+					reg = <0>;
 					ca_funnel_in_port0: endpoint {
 						remote-endpoint = <&etm0_out_port>;
 					};
@@ -765,7 +769,7 @@
 			};
 
 			lcdif: lcdif@30730000 {
-				compatible = "fsl,imx7d-lcdif", "fsl,imx28-lcdif";
+				compatible = "fsl,imx7d-lcdif", "fsl,imx6sx-lcdif";
 				reg = <0x30730000 0x10000>;
 				interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&clks IMX7D_LCDIF_PIXEL_ROOT_CLK>,
@@ -1213,7 +1217,7 @@
 		gpmi: gpmi-nand@33002000{
 			compatible = "fsl,imx7d-gpmi-nand";
 			#address-cells = <1>;
-			#size-cells = <1>;
+			#size-cells = <0>;
 			reg = <0x33002000 0x2000>, <0x33004000 0x4000>;
 			reg-names = "gpmi-nand", "bch";
 			interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
arch/arm/boot/dts/rk3036.dtsi +11 -3
index d282a7b638d8..cc2d596da7d4 100644
@@ -337,12 +337,20 @@
 		pinctrl-0 = <&hdmi_ctl>;
 		status = "disabled";
 
-		hdmi_in: port {
+		ports {
 			#address-cells = <1>;
 			#size-cells = <0>;
-			hdmi_in_vop: endpoint@0 {
+
+			hdmi_in: port@0 {
 				reg = <0>;
-				remote-endpoint = <&vop_out_hdmi>;
+
+				hdmi_in_vop: endpoint {
+					remote-endpoint = <&vop_out_hdmi>;
+				};
+			};
+
+			hdmi_out: port@1 {
+				reg = <1>;
 			};
 		};
 	};
arch/arm64/boot/dts/qcom/msm8996.dtsi +21 -0
index f1d3c51ea8d0..fb9556f57f55 100644
@@ -433,6 +433,19 @@
 		};
 	};
 
+	etm {
+		compatible = "qcom,coresight-remote-etm";
+
+		out-ports {
+			port {
+				modem_etm_out_funnel_in2: endpoint {
+					remote-endpoint =
+					  <&funnel_in2_in_modem_etm>;
+				};
+			};
+		};
+	};
+
 	psci {
 		compatible = "arm,psci-1.0";
 		method = "smc";
@@ -736,6 +749,14 @@
 			clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
 			clock-names = "apb_pclk", "atclk";
 
+			in-ports {
+				port {
+					funnel_in2_in_modem_etm: endpoint {
+						remote-endpoint =
+						  <&modem_etm_out_funnel_in2>;
+					};
+				};
+			};
 
 			out-ports {
 				port {
arch/arm64/boot/dts/qcom/msm8998.dtsi +20 -12
index dcb79003ca0e..9cb7163c5714 100644
@@ -1396,9 +1396,11 @@
 
 			cpu = <&CPU4>;
 
-			port{
-				etm4_out: endpoint {
-					remote-endpoint = <&apss_funnel_in4>;
+			out-ports {
+				port{
+					etm4_out: endpoint {
+						remote-endpoint = <&apss_funnel_in4>;
+					};
 				};
 			};
 		};
@@ -1413,9 +1415,11 @@
 
 			cpu = <&CPU5>;
 
-			port{
-				etm5_out: endpoint {
-					remote-endpoint = <&apss_funnel_in5>;
+			out-ports {
+				port{
+					etm5_out: endpoint {
+						remote-endpoint = <&apss_funnel_in5>;
+					};
 				};
 			};
 		};
@@ -1430,9 +1434,11 @@
 
 			cpu = <&CPU6>;
 
-			port{
-				etm6_out: endpoint {
-					remote-endpoint = <&apss_funnel_in6>;
+			out-ports {
+				port{
+					etm6_out: endpoint {
+						remote-endpoint = <&apss_funnel_in6>;
+					};
 				};
 			};
 		};
@@ -1447,9 +1453,11 @@
 
 			cpu = <&CPU7>;
 
-			port{
-				etm7_out: endpoint {
-					remote-endpoint = <&apss_funnel_in7>;
+			out-ports {
+				port{
+					etm7_out: endpoint {
+						remote-endpoint = <&apss_funnel_in7>;
+					};
 				};
 			};
 		};
arch/arm64/boot/dts/qcom/sdm845.dtsi +4 -4
index ca77fc8aa75b..845005f1be2d 100644
@@ -2503,8 +2503,8 @@
 
 			interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
 				     <GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>,
-				     <GIC_SPI 488 IRQ_TYPE_LEVEL_HIGH>,
-				     <GIC_SPI 489 IRQ_TYPE_LEVEL_HIGH>;
+				     <GIC_SPI 488 IRQ_TYPE_EDGE_BOTH>,
+				     <GIC_SPI 489 IRQ_TYPE_EDGE_BOTH>;
 			interrupt-names = "hs_phy_irq", "ss_phy_irq",
 					  "dm_hs_phy_irq", "dp_hs_phy_irq";
 
@@ -2547,8 +2547,8 @@
 
 			interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
 				     <GIC_SPI 487 IRQ_TYPE_LEVEL_HIGH>,
-				     <GIC_SPI 490 IRQ_TYPE_LEVEL_HIGH>,
-				     <GIC_SPI 491 IRQ_TYPE_LEVEL_HIGH>;
+				     <GIC_SPI 490 IRQ_TYPE_EDGE_BOTH>,
+				     <GIC_SPI 491 IRQ_TYPE_EDGE_BOTH>;
 			interrupt-names = "hs_phy_irq", "ss_phy_irq",
 					  "dm_hs_phy_irq", "dp_hs_phy_irq";
 
arch/ia64/kernel/topology.c +2 -3
index 09fc385c2acd..3639e0a7cb3b 100644
@@ -3,9 +3,8 @@
  * License.  See the file "COPYING" in the main directory of this archive
  * for more details.
  *
- * This file contains NUMA specific variables and functions which can
- * be split away from DISCONTIGMEM and are used on NUMA machines with
- * contiguous memory.
+ * This file contains NUMA specific variables and functions which are used on
+ * NUMA machines with contiguous memory.
  * 		2002/08/07 Erich Focht <[email protected]>
  * Populate cpu entries in sysfs for non-numa systems as well
  *  	Intel Corporation - Ashok Raj
arch/ia64/mm/numa.c +2 -3
index 5e1015eb6d0d..ad6837d00e7d 100644
@@ -3,9 +3,8 @@
  * License.  See the file "COPYING" in the main directory of this archive
  * for more details.
  *
- * This file contains NUMA specific variables and functions which can
- * be split away from DISCONTIGMEM and are used on NUMA machines with
- * contiguous memory.
+ * This file contains NUMA specific variables and functions which are used on
+ * NUMA machines with contiguous memory.
  * 
  *                         2002/08/07 Erich Focht <[email protected]>
  */
arch/mips/include/asm/checksum.h +2 -1
index dcebaaf8c862..803f2a6f9960 100644
@@ -276,7 +276,8 @@ static __inline__ __sum16 csum_ipv6_magic(const struct in6_addr *saddr,
 	"	.set	pop"
 	: "=&r" (sum), "=&r" (tmp)
 	: "r" (saddr), "r" (daddr),
-	  "0" (htonl(len)), "r" (htonl(proto)), "r" (sum));
+	  "0" (htonl(len)), "r" (htonl(proto)), "r" (sum)
+	: "memory");
 
 	return csum_fold(sum);
 }
arch/mips/include/asm/mmzone.h +0 -6
index b826b8473e95..7649ab45e80c 100644
@@ -20,10 +20,4 @@
 #define nid_to_addrbase(nid) 0
 #endif
 
-#ifdef CONFIG_DISCONTIGMEM
-
-#define pfn_to_nid(pfn)		pa_to_nid((pfn) << PAGE_SHIFT)
-
-#endif /* CONFIG_DISCONTIGMEM */
-
 #endif /* _ASM_MMZONE_H_ */
arch/mips/kernel/elf.c +6 -0
index 7b045d2a0b51..bbc6f07d8124 100644
@@ -11,6 +11,7 @@
 
 #include <asm/cpu-features.h>
 #include <asm/cpu-info.h>
+#include <asm/fpu.h>
 
 #ifdef CONFIG_MIPS_FP_SUPPORT
 
@@ -309,6 +310,11 @@ void mips_set_personality_nan(struct arch_elf_state *state)
 	struct cpuinfo_mips *c = &boot_cpu_data;
 	struct task_struct *t = current;
 
+	/* Do this early so t->thread.fpu.fcr31 won't be clobbered in case
+	 * we are preempted before the lose_fpu(0) in start_thread.
+	 */
+	lose_fpu(0);
+
 	t->thread.fpu.fcr31 = c->fpu_csr31;
 	switch (state->nan_2008) {
 	case 0:
arch/mips/mm/init.c +5 -10
index a73899933505..800cc5bc7a38 100644
@@ -416,7 +416,12 @@ void __init paging_init(void)
 		       (highend_pfn - max_low_pfn) << (PAGE_SHIFT - 10));
 		max_zone_pfns[ZONE_HIGHMEM] = max_low_pfn;
 	}
+
+	max_mapnr = highend_pfn ? highend_pfn : max_low_pfn;
+#else
+	max_mapnr = max_low_pfn;
 #endif
+	high_memory = (void *) __va(max_low_pfn << PAGE_SHIFT);
 
 	free_area_init_nodes(max_zone_pfns);
 }
@@ -452,16 +457,6 @@ void __init mem_init(void)
 	 */
 	BUILD_BUG_ON(IS_ENABLED(CONFIG_32BIT) && (_PFN_SHIFT > PAGE_SHIFT));
 
-#ifdef CONFIG_HIGHMEM
-#ifdef CONFIG_DISCONTIGMEM
-#error "CONFIG_HIGHMEM and CONFIG_DISCONTIGMEM dont work together yet"
-#endif
-	max_mapnr = highend_pfn ? highend_pfn : max_low_pfn;
-#else
-	max_mapnr = max_low_pfn;
-#endif
-	high_memory = (void *) __va(max_low_pfn << PAGE_SHIFT);
-
 	maar_init();
 	memblock_free_all();
 	setup_zero_pages();	/* Setup zeroed pages.  */
arch/nds32/include/asm/memory.h +0 -6
index 940d32842793..62faafbc28e4 100644
@@ -76,18 +76,12 @@
  *  virt_to_page(k)	convert a _valid_ virtual address to struct page *
  *  virt_addr_valid(k)	indicates whether a virtual address is valid
  */
-#ifndef CONFIG_DISCONTIGMEM
-
 #define ARCH_PFN_OFFSET		PHYS_PFN_OFFSET
 #define pfn_valid(pfn)		((pfn) >= PHYS_PFN_OFFSET && (pfn) < (PHYS_PFN_OFFSET + max_mapnr))
 
 #define virt_to_page(kaddr)	(pfn_to_page(__pa(kaddr) >> PAGE_SHIFT))
 #define virt_addr_valid(kaddr)	((unsigned long)(kaddr) >= PAGE_OFFSET && (unsigned long)(kaddr) < (unsigned long)high_memory)
 
-#else /* CONFIG_DISCONTIGMEM */
-#error CONFIG_DISCONTIGMEM is not supported yet.
-#endif /* !CONFIG_DISCONTIGMEM */
-
 #define page_to_phys(page)	(page_to_pfn(page) << PAGE_SHIFT)
 
 #endif
arch/parisc/kernel/firmware.c +2 -2
index 2496cb2c5551..46d48a0b6dec 100644
@@ -122,10 +122,10 @@ static unsigned long f_extend(unsigned long address)
 #ifdef CONFIG_64BIT
 	if(unlikely(parisc_narrow_firmware)) {
 		if((address & 0xff000000) == 0xf0000000)
-			return 0xf0f0f0f000000000UL | (u32)address;
+			return (0xfffffff0UL << 32) | (u32)address;
 
 		if((address & 0xf0000000) == 0xf0000000)
-			return 0xffffffff00000000UL | (u32)address;
+			return (0xffffffffUL << 32) | (u32)address;
 	}
 #endif
 	return address;
arch/powerpc/include/asm/mmu.h +4 -0
index 0699cfeeb8c9..2141ae7441a9 100644
@@ -375,5 +375,9 @@ extern void *abatron_pteptrs[2];
 #include <asm/nohash/mmu.h>
 #endif
 
+#if defined(CONFIG_FA_DUMP) || defined(CONFIG_PRESERVE_FA_DUMP)
+#define __HAVE_ARCH_RESERVED_KERNEL_PAGES
+#endif
+
 #endif /* __KERNEL__ */
 #endif /* _ASM_POWERPC_MMU_H_ */
arch/powerpc/include/asm/mmzone.h +0 -3
index 91c69ff53a8a..50c2198c2c76 100644
@@ -42,9 +42,6 @@ u64 memory_hotplug_max(void);
 #else
 #define memory_hotplug_max() memblock_end_of_DRAM()
 #endif /* CONFIG_NEED_MULTIPLE_NODES */
-#ifdef CONFIG_FA_DUMP
-#define __HAVE_ARCH_RESERVED_KERNEL_PAGES
-#endif
 
 #endif /* __KERNEL__ */
 #endif /* _ASM_MMZONE_H_ */
arch/powerpc/kernel/traps.c +2 -0
index 70b99246dec4..402a05f3a484 100644
@@ -1424,10 +1424,12 @@ static int emulate_instruction(struct pt_regs *regs)
 	return -EINVAL;
 }
 
+#ifdef CONFIG_GENERIC_BUG
 int is_valid_bugaddr(unsigned long addr)
 {
 	return is_kernel_addr(addr);
 }
+#endif
 
 #ifdef CONFIG_MATH_EMULATION
 static int emulate_math(struct pt_regs *regs)
arch/powerpc/lib/Makefile +2 -2
index 7c603839fe28..841e6ed30f13 100644
@@ -34,8 +34,8 @@ obj-$(CONFIG_FUNCTION_ERROR_INJECTION)	+= error-inject.o
 # 64-bit linker creates .sfpr on demand for final link (vmlinux),
 # so it is only needed for modules, and only for older linkers which
 # do not support --save-restore-funcs
-ifeq ($(call ld-ifversion, -lt, 225000000, y),y)
-always-$(CONFIG_PPC64)	+= crtsavres.o
+ifeq ($(call ld-ifversion, -lt, 225000000, y)$(CONFIG_PPC64),yy)
+always	+= crtsavres.o
 endif
 
 obj-$(CONFIG_PPC_BOOK3S_64) += copyuser_power7.o copypage_power7.o \
arch/powerpc/lib/sstep.c +10 -0
index 27650cd5857f..490162fb0893 100644
@@ -469,6 +469,8 @@ static int do_fp_load(struct instruction_op *op, unsigned long ea,
 	} u;
 
 	nb = GETSIZE(op->type);
+	if (nb > sizeof(u))
+		return -EINVAL;
 	if (!address_ok(regs, ea, nb))
 		return -EFAULT;
 	rn = op->reg;
@@ -519,6 +521,8 @@ static int do_fp_store(struct instruction_op *op, unsigned long ea,
 	} u;
 
 	nb = GETSIZE(op->type);
+	if (nb > sizeof(u))
+		return -EINVAL;
 	if (!address_ok(regs, ea, nb))
 		return -EFAULT;
 	rn = op->reg;
@@ -563,6 +567,9 @@ static nokprobe_inline int do_vec_load(int rn, unsigned long ea,
 		u8 b[sizeof(__vector128)];
 	} u = {};
 
+	if (size > sizeof(u))
+		return -EINVAL;
+
 	if (!address_ok(regs, ea & ~0xfUL, 16))
 		return -EFAULT;
 	/* align to multiple of size */
@@ -590,6 +597,9 @@ static nokprobe_inline int do_vec_store(int rn, unsigned long ea,
 		u8 b[sizeof(__vector128)];
 	} u;
 
+	if (size > sizeof(u))
+		return -EINVAL;
+
 	if (!address_ok(regs, ea & ~0xfUL, 16))
 		return -EFAULT;
 	/* align to multiple of size */
arch/powerpc/mm/book3s64/pgtable.c +2 -0
index 2bf7e1b4fd82..c4890f4b0b6c 100644
@@ -442,6 +442,7 @@ void ptep_modify_prot_commit(struct vm_area_struct *vma, unsigned long addr,
 	set_pte_at(vma->vm_mm, addr, ptep, pte);
 }
 
+#ifdef CONFIG_TRANSPARENT_HUGEPAGE
 /*
  * For hash translation mode, we use the deposited table to store hash slot
  * information and they are stored at PTRS_PER_PMD offset from related pmd
@@ -463,6 +464,7 @@ int pmd_move_must_withdraw(struct spinlock *new_pmd_ptl,
 
 	return true;
 }
+#endif
 
 /*
  * Does the CPU support tlbie?
arch/powerpc/mm/init-common.c +3 -2
index a84da92920f7..e7b9cc90fd9e 100644
@@ -104,7 +104,7 @@ void pgtable_cache_add(unsigned int shift)
 	 * as to leave enough 0 bits in the address to contain it. */
 	unsigned long minalign = max(MAX_PGTABLE_INDEX_SIZE + 1,
 				     HUGEPD_SHIFT_MASK + 1);
-	struct kmem_cache *new;
+	struct kmem_cache *new = NULL;
 
 	/* It would be nice if this was a BUILD_BUG_ON(), but at the
 	 * moment, gcc doesn't seem to recognize is_power_of_2 as a
@@ -117,7 +117,8 @@ void pgtable_cache_add(unsigned int shift)
 
 	align = max_t(unsigned long, align, minalign);
 	name = kasprintf(GFP_KERNEL, "pgtable-2^%d", shift);
-	new = kmem_cache_create(name, table_size, align, 0, ctor(shift));
+	if (name)
+		new = kmem_cache_create(name, table_size, align, 0, ctor(shift));
 	if (!new)
 		panic("Could not allocate pgtable cache for order %d", shift);
 
arch/s390/kernel/ptrace.c +3 -3
index 34ca344039bb..05e1367c23d5 100644
@@ -413,6 +413,7 @@ static int __poke_user(struct task_struct *child, addr_t addr, addr_t data)
 		/*
 		 * floating point control reg. is in the thread structure
 		 */
+		save_fpu_regs();
 		if ((unsigned int) data != 0 ||
 		    test_fp_ctl(data >> (BITS_PER_LONG - 32)))
 			return -EINVAL;
@@ -773,6 +774,7 @@ static int __poke_user_compat(struct task_struct *child,
 		/*
 		 * floating point control reg. is in the thread structure
 		 */
+		save_fpu_regs();
 		if (test_fp_ctl(tmp))
 			return -EINVAL;
 		child->thread.fpu.fpc = data;
@@ -1006,9 +1008,7 @@ static int s390_fpregs_set(struct task_struct *target,
 	int rc = 0;
 	freg_t fprs[__NUM_FPRS];
 
-	if (target == current)
-		save_fpu_regs();
-
+	save_fpu_regs();
 	if (MACHINE_HAS_VX)
 		convert_vx_to_fp(fprs, target->thread.fpu.vxrs);
 	else
arch/s390/kvm/kvm-s390.c +0 -5
index b11eb11e2f49..6a1b46e85dac 100644
@@ -3348,10 +3348,6 @@ int kvm_arch_vcpu_ioctl_set_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu)
 
 	vcpu_load(vcpu);
 
-	if (test_fp_ctl(fpu->fpc)) {
-		ret = -EINVAL;
-		goto out;
-	}
 	vcpu->run->s.regs.fpc = fpu->fpc;
 	if (MACHINE_HAS_VX)
 		convert_fp_to_vx((__vector128 *) vcpu->run->s.regs.vrs,
@@ -3359,7 +3355,6 @@ int kvm_arch_vcpu_ioctl_set_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu)
 	else
 		memcpy(vcpu->run->s.regs.fprs, &fpu->fprs, sizeof(fpu->fprs));
 
-out:
 	vcpu_put(vcpu);
 	return ret;
 }
arch/um/drivers/net_kern.c +1 -1
index 327b728f7244..db15a456482f 100644
@@ -204,7 +204,7 @@ static int uml_net_close(struct net_device *dev)
 	return 0;
 }
 
-static int uml_net_start_xmit(struct sk_buff *skb, struct net_device *dev)
+static netdev_tx_t uml_net_start_xmit(struct sk_buff *skb, struct net_device *dev)
 {
 	struct uml_net_private *lp = netdev_priv(dev);
 	unsigned long flags;
arch/um/include/shared/kern_util.h +1 -1
index ccafb62e8cce..42dc0e47d3ad 100644
@@ -49,7 +49,7 @@ extern void do_uml_exitcalls(void);
  * Are we disallowed to sleep? Used to choose between GFP_KERNEL and
  * GFP_ATOMIC.
  */
-extern int __cant_sleep(void);
+extern int __uml_cant_sleep(void);
 extern int get_current_pid(void);
 extern int copy_from_user_proc(void *to, void *from, int size);
 extern int cpu(void);
arch/um/kernel/process.c +1 -1
index d71dd7725bef..f185d19fd9b6 100644
@@ -258,7 +258,7 @@ void arch_cpu_idle(void)
 	local_irq_enable();
 }
 
-int __cant_sleep(void) {
+int __uml_cant_sleep(void) {
 	return in_atomic() || irqs_disabled() || in_interrupt();
 	/* Is in_interrupt() really needed? */
 }
arch/um/os-Linux/helper.c +3 -3
index 9fa6e4187d4f..57a27555092f 100644
@@ -45,7 +45,7 @@ int run_helper(void (*pre_exec)(void *), void *pre_data, char **argv)
 	unsigned long stack, sp;
 	int pid, fds[2], ret, n;
 
-	stack = alloc_stack(0, __cant_sleep());
+	stack = alloc_stack(0, __uml_cant_sleep());
 	if (stack == 0)
 		return -ENOMEM;
 
@@ -69,7 +69,7 @@ int run_helper(void (*pre_exec)(void *), void *pre_data, char **argv)
 	data.pre_data = pre_data;
 	data.argv = argv;
 	data.fd = fds[1];
-	data.buf = __cant_sleep() ? uml_kmalloc(PATH_MAX, UM_GFP_ATOMIC) :
+	data.buf = __uml_cant_sleep() ? uml_kmalloc(PATH_MAX, UM_GFP_ATOMIC) :
 					uml_kmalloc(PATH_MAX, UM_GFP_KERNEL);
 	pid = clone(helper_child, (void *) sp, CLONE_VM, &data);
 	if (pid < 0) {
@@ -116,7 +116,7 @@ int run_helper_thread(int (*proc)(void *), void *arg, unsigned int flags,
 	unsigned long stack, sp;
 	int pid, status, err;
 
-	stack = alloc_stack(0, __cant_sleep());
+	stack = alloc_stack(0, __uml_cant_sleep());
 	if (stack == 0)
 		return -ENOMEM;
 
arch/um/os-Linux/util.c +17 -2
index ecf2f390fad2..b76ac4df5da5 100644
@@ -166,23 +166,38 @@ __uml_setup("quiet", quiet_cmd_param,
 "quiet\n"
 "    Turns off information messages during boot.\n\n");
 
+/*
+ * The os_info/os_warn functions will be called by helper threads. These
+ * have a very limited stack size and using the libc formatting functions
+ * may overflow the stack.
+ * So pull in the kernel vscnprintf and use that instead with a fixed
+ * on-stack buffer.
+ */
+int vscnprintf(char *buf, size_t size, const char *fmt, va_list args);
+
 void os_info(const char *fmt, ...)
 {
+	char buf[256];
 	va_list list;
+	int len;
 
 	if (quiet_info)
 		return;
 
 	va_start(list, fmt);
-	vfprintf(stderr, fmt, list);
+	len = vscnprintf(buf, sizeof(buf), fmt, list);
+	fwrite(buf, len, 1, stderr);
 	va_end(list);
 }
 
 void os_warn(const char *fmt, ...)
 {
+	char buf[256];
 	va_list list;
+	int len;
 
 	va_start(list, fmt);
-	vfprintf(stderr, fmt, list);
+	len = vscnprintf(buf, sizeof(buf), fmt, list);
+	fwrite(buf, len, 1, stderr);
 	va_end(list);
 }
arch/x86/Kconfig.cpu +1 -1
index 8e29c991ba3e..042bdf1ed653 100644
@@ -372,7 +372,7 @@ config X86_CMOV
 config X86_MINIMUM_CPU_FAMILY
 	int
 	default "64" if X86_64
-	default "6" if X86_32 && (MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MEFFICEON || MATOM || MCRUSOE || MCORE2 || MK7 || MK8)
+	default "6" if X86_32 && (MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MEFFICEON || MATOM || MCORE2 || MK7 || MK8)
 	default "5" if X86_32 && X86_CMPXCHG64
 	default "4"
 
arch/x86/include/asm/syscall_wrapper.h +21 -4
index e2389ce9bf58..2fac787f5bd0 100644
@@ -14,12 +14,29 @@ struct pt_regs;
 		,,regs->di,,regs->si,,regs->dx				\
 		,,regs->r10,,regs->r8,,regs->r9)			\
 
+
+/* SYSCALL_PT_ARGS is Adapted from s390x */
+#define SYSCALL_PT_ARG6(m, t1, t2, t3, t4, t5, t6)			\
+	SYSCALL_PT_ARG5(m, t1, t2, t3, t4, t5), m(t6, (regs->bp))
+#define SYSCALL_PT_ARG5(m, t1, t2, t3, t4, t5)				\
+	SYSCALL_PT_ARG4(m, t1, t2, t3, t4),  m(t5, (regs->di))
+#define SYSCALL_PT_ARG4(m, t1, t2, t3, t4)				\
+	SYSCALL_PT_ARG3(m, t1, t2, t3),  m(t4, (regs->si))
+#define SYSCALL_PT_ARG3(m, t1, t2, t3)					\
+	SYSCALL_PT_ARG2(m, t1, t2), m(t3, (regs->dx))
+#define SYSCALL_PT_ARG2(m, t1, t2)					\
+	SYSCALL_PT_ARG1(m, t1), m(t2, (regs->cx))
+#define SYSCALL_PT_ARG1(m, t1) m(t1, (regs->bx))
+#define SYSCALL_PT_ARGS(x, ...) SYSCALL_PT_ARG##x(__VA_ARGS__)
+
+#define __SC_COMPAT_CAST(t, a)						\
+	(__typeof(__builtin_choose_expr(__TYPE_IS_L(t), 0, 0U)))	\
+	(unsigned int)a
+
 /* Mapping of registers to parameters for syscalls on i386 */
 #define SC_IA32_REGS_TO_ARGS(x, ...)					\
-	__MAP(x,__SC_ARGS						\
-	      ,,(unsigned int)regs->bx,,(unsigned int)regs->cx		\
-	      ,,(unsigned int)regs->dx,,(unsigned int)regs->si		\
-	      ,,(unsigned int)regs->di,,(unsigned int)regs->bp)
+	SYSCALL_PT_ARGS(x, __SC_COMPAT_CAST,				\
+			__MAP(x, __SC_TYPE, __VA_ARGS__))		\
 
 #ifdef CONFIG_IA32_EMULATION
 /*
arch/x86/kernel/cpu/amd.c +11 -9
index b2cdf1c07e56..4e84203fc067 100644
@@ -277,15 +277,6 @@ static void init_amd_k6(struct cpuinfo_x86 *c)
 		return;
 	}
 #endif
-	/*
-	 * Work around Erratum 1386.  The XSAVES instruction malfunctions in
-	 * certain circumstances on Zen1/2 uarch, and not all parts have had
-	 * updated microcode at the time of writing (March 2023).
-	 *
-	 * Affected parts all have no supervisor XSAVE states, meaning that
-	 * the XSAVEC instruction (which works fine) is equivalent.
-	 */
-	clear_cpu_cap(c, X86_FEATURE_XSAVES);
 }
 
 static void init_amd_k7(struct cpuinfo_x86 *c)
@@ -989,6 +980,17 @@ static void init_amd_zn(struct cpuinfo_x86 *c)
 		if (c->x86 == 0x19 && !cpu_has(c, X86_FEATURE_BTC_NO))
 			set_cpu_cap(c, X86_FEATURE_BTC_NO);
 	}
+
+	/*
+	 * Work around Erratum 1386.  The XSAVES instruction malfunctions in
+	 * certain circumstances on Zen1/2 uarch, and not all parts have had
+	 * updated microcode at the time of writing (March 2023).
+	 *
+	 * Affected parts all have no supervisor XSAVE states, meaning that
+	 * the XSAVEC instruction (which works fine) is equivalent.
+	 */
+	if (c->x86 == 0x17)
+		clear_cpu_cap(c, X86_FEATURE_XSAVES);
 }
 
 static bool cpu_has_zenbleed_microcode(void)
arch/x86/kernel/cpu/mce/core.c +16 -0
index 9b98a7d8ac60..84c0e5c2518c 100644
@@ -42,6 +42,7 @@
 #include <linux/export.h>
 #include <linux/jump_label.h>
 #include <linux/set_memory.h>
+#include <linux/kexec.h>
 
 #include <asm/intel-family.h>
 #include <asm/processor.h>
@@ -315,6 +316,7 @@ static noinstr void mce_panic(const char *msg, struct mce *final, char *exp)
 	struct llist_node *pending;
 	struct mce_evt_llist *l;
 	int apei_err = 0;
+	struct page *p;
 
 	/*
 	 * Allow instrumentation around external facilities usage. Not that it
@@ -370,6 +372,20 @@ static noinstr void mce_panic(const char *msg, struct mce *final, char *exp)
 	if (!fake_panic) {
 		if (panic_timeout == 0)
 			panic_timeout = mca_cfg.panic_timeout;
+
+		/*
+		 * Kdump skips the poisoned page in order to avoid
+		 * touching the error bits again. Poison the page even
+		 * if the error is fatal and the machine is about to
+		 * panic.
+		 */
+		if (kexec_crash_loaded()) {
+			if (final && (final->status & MCI_STATUS_ADDRV)) {
+				p = pfn_to_online_page(final->addr >> PAGE_SHIFT);
+				if (p)
+					SetPageHWPoison(p);
+			}
+		}
 		panic(msg);
 	} else
 		pr_emerg(HW_ERR "Fake kernel panic: %s\n", msg);
arch/x86/mm/ident_map.c +18 -5
index 968d7005f4a7..f50cc210a981 100644
@@ -26,18 +26,31 @@ static int ident_pud_init(struct x86_mapping_info *info, pud_t *pud_page,
 	for (; addr < end; addr = next) {
 		pud_t *pud = pud_page + pud_index(addr);
 		pmd_t *pmd;
+		bool use_gbpage;
 
 		next = (addr & PUD_MASK) + PUD_SIZE;
 		if (next > end)
 			next = end;
 
-		if (info->direct_gbpages) {
-			pud_t pudval;
+		/* if this is already a gbpage, this portion is already mapped */
+		if (pud_large(*pud))
+			continue;
+
+		/* Is using a gbpage allowed? */
+		use_gbpage = info->direct_gbpages;
 
-			if (pud_present(*pud))
-				continue;
+		/* Don't use gbpage if it maps more than the requested region. */
+		/* at the begining: */
+		use_gbpage &= ((addr & ~PUD_MASK) == 0);
+		/* ... or at the end: */
+		use_gbpage &= ((next & ~PUD_MASK) == 0);
+
+		/* Never overwrite existing mappings */
+		use_gbpage &= !pud_present(*pud);
+
+		if (use_gbpage) {
+			pud_t pudval;
 
-			addr &= PUD_MASK;
 			pudval = __pud((addr - info->offset) | info->page_flag);
 			set_pud(pud, pudval);
 			continue;
arch/xtensa/include/asm/page.h +0 -4
index 09c56cba442e..5a42d663612b 100644
@@ -181,10 +181,6 @@ static inline unsigned long ___pa(unsigned long va)
 #define pfn_valid(pfn) \
 	((pfn) >= ARCH_PFN_OFFSET && ((pfn) - ARCH_PFN_OFFSET) < max_mapnr)
 
-#ifdef CONFIG_DISCONTIGMEM
-# error CONFIG_DISCONTIGMEM not supported
-#endif
-
 #define virt_to_page(kaddr)	pfn_to_page(__pa(kaddr) >> PAGE_SHIFT)
 #define page_to_virt(page)	__va(page_to_pfn(page) << PAGE_SHIFT)
 #define virt_addr_valid(kaddr)	pfn_valid(__pa(kaddr) >> PAGE_SHIFT)
block/bio.c +4 -5
index 08dbdc32ceaa..e3d3e75c97e0 100644
@@ -710,7 +710,7 @@ static bool bio_try_merge_pc_page(struct request_queue *q, struct bio *bio,
 
 	if ((addr1 | mask) != (addr2 | mask))
 		return false;
-	if (bv->bv_len + len > queue_max_segment_size(q))
+	if (len > queue_max_segment_size(q) - bv->bv_len)
 		return false;
 	return __bio_try_merge_page(bio, page, len, offset, same_page);
 }
@@ -884,7 +884,7 @@ void bio_release_pages(struct bio *bio, bool mark_dirty)
 		return;
 
 	bio_for_each_segment_all(bvec, bio, iter_all) {
-		if (mark_dirty && !PageCompound(bvec->bv_page))
+		if (mark_dirty)
 			set_page_dirty_lock(bvec->bv_page);
 		put_page(bvec->bv_page);
 	}
@@ -1691,8 +1691,7 @@ void bio_set_pages_dirty(struct bio *bio)
 	struct bvec_iter_all iter_all;
 
 	bio_for_each_segment_all(bvec, bio, iter_all) {
-		if (!PageCompound(bvec->bv_page))
-			set_page_dirty_lock(bvec->bv_page);
+		set_page_dirty_lock(bvec->bv_page);
 	}
 }
 
@@ -1740,7 +1739,7 @@ void bio_check_pages_dirty(struct bio *bio)
 	struct bvec_iter_all iter_all;
 
 	bio_for_each_segment_all(bvec, bio, iter_all) {
-		if (!PageDirty(bvec->bv_page) && !PageCompound(bvec->bv_page))
+		if (!PageDirty(bvec->bv_page))
 			goto defer;
 	}
 
block/blk-mq.c +16 -0
index 325a5944b4cb..03f4eb37dfc7 100644
@@ -1153,6 +1153,22 @@ static bool blk_mq_mark_tag_wait(struct blk_mq_hw_ctx *hctx,
 	wait->flags &= ~WQ_FLAG_EXCLUSIVE;
 	__add_wait_queue(wq, wait);
 
+	/*
+	 * Add one explicit barrier since blk_mq_get_driver_tag() may
+	 * not imply barrier in case of failure.
+	 *
+	 * Order adding us to wait queue and allocating driver tag.
+	 *
+	 * The pair is the one implied in sbitmap_queue_wake_up() which
+	 * orders clearing sbitmap tag bits and waitqueue_active() in
+	 * __sbitmap_queue_wake_up(), since waitqueue_active() is lockless
+	 *
+	 * Otherwise, re-order of adding wait queue and getting driver tag
+	 * may cause __sbitmap_queue_wake_up() to wake up nothing because
+	 * the waitqueue_active() may not observe us in wait queue.
+	 */
+	smp_mb();
+
 	/*
 	 * It's possible that a tag was freed in the window between the
 	 * allocation failure and adding the hardware queue to the wait
crypto/algapi.c +1 -0
index fff52bc9d97d..afe148d0f72d 100644
@@ -217,6 +217,7 @@ static struct crypto_larval *__crypto_register_alg(struct crypto_alg *alg)
 		}
 
 		if (!strcmp(q->cra_driver_name, alg->cra_name) ||
+		    !strcmp(q->cra_driver_name, alg->cra_driver_name) ||
 		    !strcmp(q->cra_name, alg->cra_driver_name))
 			goto err;
 	}
drivers/acpi/acpi_extlog.c +3 -2
index 4c05c3828c9e..5dc91aa0ed61 100644
@@ -316,9 +316,10 @@ static void __exit extlog_exit(void)
 {
 	edac_set_report_status(old_edac_report_status);
 	mce_unregister_decode_chain(&extlog_mce_dec);
-	((struct extlog_l1_head *)extlog_l1_addr)->flags &= ~FLAG_OS_OPTIN;
-	if (extlog_l1_addr)
+	if (extlog_l1_addr) {
+		((struct extlog_l1_head *)extlog_l1_addr)->flags &= ~FLAG_OS_OPTIN;
 		acpi_os_unmap_iomem(extlog_l1_addr, l1_size);
+	}
 	if (elog_addr)
 		acpi_os_unmap_iomem(elog_addr, elog_size);
 	release_mem_region(elog_base, elog_size);
drivers/acpi/acpi_video.c +9 -0
index 9648ec76de2b..fd33fdbaffa9 100644
@@ -568,6 +568,15 @@ static const struct dmi_system_id video_dmi_table[] = {
 		DMI_MATCH(DMI_PRODUCT_NAME, "Vostro 3350"),
 		},
 	},
+	{
+	 .callback = video_set_report_key_events,
+	 .driver_data = (void *)((uintptr_t)REPORT_BRIGHTNESS_KEY_EVENTS),
+	 .ident = "COLORFUL X15 AT 23",
+	 .matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "COLORFUL"),
+		DMI_MATCH(DMI_PRODUCT_NAME, "X15 AT 23"),
+		},
+	},
 	/*
 	 * Some machines change the brightness themselves when a brightness
 	 * hotkey gets pressed, despite us telling them not to. In this case
drivers/android/binder.c +10 -0
index ca1c67a1126d..07203fef29cb 100644
@@ -840,6 +840,16 @@ binder_enqueue_thread_work_ilocked(struct binder_thread *thread,
 {
 	WARN_ON(!list_empty(&thread->waiting_thread_node));
 	binder_enqueue_work_ilocked(work, &thread->todo);
+
+	/* (e)poll-based threads require an explicit wakeup signal when
+	 * queuing their own work; they rely on these events to consume
+	 * messages without I/O block. Without it, threads risk waiting
+	 * indefinitely without handling the work.
+	 */
+	if (thread->looper & BINDER_LOOPER_STATE_POLL &&
+	    thread->pid == current->pid && !thread->process_todo)
+		wake_up_interruptible_sync(&thread->wait);
+
 	thread->process_todo = true;
 }
 
drivers/atm/idt77252.c +2 -0
index c60611196786..605e992d25df 100644
@@ -2935,6 +2935,8 @@ open_card_ubr0(struct idt77252_dev *card)
 	vc->scq = alloc_scq(card, vc->class);
 	if (!vc->scq) {
 		printk("%s: can't get SCQ.\n", card->name);
+		kfree(card->vcs[0]);
+		card->vcs[0] = NULL;
 		return -ENOMEM;
 	}
 
drivers/base/power/domain.c +1 -1
index 5be76197bc36..eed4c865a4bf 100644
@@ -920,7 +920,7 @@ static int __init genpd_power_off_unused(void)
 
 	return 0;
 }
-late_initcall(genpd_power_off_unused);
+late_initcall_sync(genpd_power_off_unused);
 
 #if defined(CONFIG_PM_SLEEP) || defined(CONFIG_PM_GENERIC_DOMAINS_OF)
 
drivers/base/power/runtime.c +22 -0
index 7f93ac63b5b6..d301a6de762d 100644
@@ -1461,6 +1461,28 @@ void pm_runtime_enable(struct device *dev)
 }
 EXPORT_SYMBOL_GPL(pm_runtime_enable);
 
+static void pm_runtime_disable_action(void *data)
+{
+	pm_runtime_dont_use_autosuspend(data);
+	pm_runtime_disable(data);
+}
+
+/**
+ * devm_pm_runtime_enable - devres-enabled version of pm_runtime_enable.
+ *
+ * NOTE: this will also handle calling pm_runtime_dont_use_autosuspend() for
+ * you at driver exit time if needed.
+ *
+ * @dev: Device to handle.
+ */
+int devm_pm_runtime_enable(struct device *dev)
+{
+	pm_runtime_enable(dev);
+
+	return devm_add_action_or_reset(dev, pm_runtime_disable_action, dev);
+}
+EXPORT_SYMBOL_GPL(devm_pm_runtime_enable);
+
 /**
  * pm_runtime_forbid - Block runtime PM of a device.
  * @dev: Device to handle.
drivers/block/rbd.c +14 -8
index 7117fa490243..fd0cdced8024 100644
@@ -3603,14 +3603,15 @@ static bool rbd_lock_add_request(struct rbd_img_request *img_req)
 static void rbd_lock_del_request(struct rbd_img_request *img_req)
 {
 	struct rbd_device *rbd_dev = img_req->rbd_dev;
-	bool need_wakeup;
+	bool need_wakeup = false;
 
 	lockdep_assert_held(&rbd_dev->lock_rwsem);
 	spin_lock(&rbd_dev->lock_lists_lock);
-	rbd_assert(!list_empty(&img_req->lock_item));
-	list_del_init(&img_req->lock_item);
-	need_wakeup = (rbd_dev->lock_state == RBD_LOCK_STATE_RELEASING &&
-		       list_empty(&rbd_dev->running_list));
+	if (!list_empty(&img_req->lock_item)) {
+		list_del_init(&img_req->lock_item);
+		need_wakeup = (rbd_dev->lock_state == RBD_LOCK_STATE_RELEASING &&
+			       list_empty(&rbd_dev->running_list));
+	}
 	spin_unlock(&rbd_dev->lock_lists_lock);
 	if (need_wakeup)
 		complete(&rbd_dev->releasing_wait);
@@ -3997,14 +3998,19 @@ static void wake_lock_waiters(struct rbd_device *rbd_dev, int result)
 		return;
 	}
 
-	list_for_each_entry(img_req, &rbd_dev->acquiring_list, lock_item) {
+	while (!list_empty(&rbd_dev->acquiring_list)) {
+		img_req = list_first_entry(&rbd_dev->acquiring_list,
+					   struct rbd_img_request, lock_item);
 		mutex_lock(&img_req->state_mutex);
 		rbd_assert(img_req->state == RBD_IMG_EXCLUSIVE_LOCK);
+		if (!result)
+			list_move_tail(&img_req->lock_item,
+				       &rbd_dev->running_list);
+		else
+			list_del_init(&img_req->lock_item);
 		rbd_img_schedule(img_req, result);
 		mutex_unlock(&img_req->state_mutex);
 	}
-
-	list_splice_tail_init(&rbd_dev->acquiring_list, &rbd_dev->running_list);
 }
 
 static int get_lock_owner_info(struct rbd_device *rbd_dev,
drivers/bus/moxtet.c +7 -0
index 68413bf9cf87..d87f698d38a3 100644
@@ -833,6 +833,12 @@ static int moxtet_remove(struct spi_device *spi)
 	return 0;
 }
 
+static const struct spi_device_id moxtet_spi_ids[] = {
+	{ "moxtet" },
+	{ },
+};
+MODULE_DEVICE_TABLE(spi, moxtet_spi_ids);
+
 static const struct of_device_id moxtet_dt_ids[] = {
 	{ .compatible = "cznic,moxtet" },
 	{},
@@ -844,6 +850,7 @@ static struct spi_driver moxtet_spi_driver = {
 		.name		= "moxtet",
 		.of_match_table = moxtet_dt_ids,
 	},
+	.id_table	= moxtet_spi_ids,
 	.probe		= moxtet_probe,
 	.remove		= moxtet_remove,
 };
drivers/char/hw_random/core.c +21 -13
index 559ca503b7b6..d2bd8473e16f 100644
@@ -24,10 +24,13 @@
 #include <linux/random.h>
 #include <linux/sched.h>
 #include <linux/slab.h>
+#include <linux/string.h>
 #include <linux/uaccess.h>
 
 #define RNG_MODULE_NAME		"hw_random"
 
+#define RNG_BUFFER_SIZE (SMP_CACHE_BYTES < 32 ? 32 : SMP_CACHE_BYTES)
+
 static struct hwrng *current_rng;
 /* the current rng has been explicitly chosen by user via sysfs */
 static int cur_rng_set_by_user;
@@ -59,7 +62,7 @@ static inline int rng_get_data(struct hwrng *rng, u8 *buffer, size_t size,
 
 static size_t rng_buffer_size(void)
 {
-	return SMP_CACHE_BYTES < 32 ? 32 : SMP_CACHE_BYTES;
+	return RNG_BUFFER_SIZE;
 }
 
 static void add_early_randomness(struct hwrng *rng)
@@ -202,6 +205,7 @@ static inline int rng_get_data(struct hwrng *rng, u8 *buffer, size_t size,
 static ssize_t rng_dev_read(struct file *filp, char __user *buf,
 			    size_t size, loff_t *offp)
 {
+	u8 buffer[RNG_BUFFER_SIZE];
 	ssize_t ret = 0;
 	int err = 0;
 	int bytes_read, len;
@@ -229,34 +233,37 @@ static ssize_t rng_dev_read(struct file *filp, char __user *buf,
 			if (bytes_read < 0) {
 				err = bytes_read;
 				goto out_unlock_reading;
+			} else if (bytes_read == 0 &&
+				   (filp->f_flags & O_NONBLOCK)) {
+				err = -EAGAIN;
+				goto out_unlock_reading;
 			}
+
 			data_avail = bytes_read;
 		}
 
-		if (!data_avail) {
-			if (filp->f_flags & O_NONBLOCK) {
-				err = -EAGAIN;
-				goto out_unlock_reading;
-			}
-		} else {
-			len = data_avail;
+		len = data_avail;
+		if (len) {
 			if (len > size)
 				len = size;
 
 			data_avail -= len;
 
-			if (copy_to_user(buf + ret, rng_buffer + data_avail,
-								len)) {
+			memcpy(buffer, rng_buffer + data_avail, len);
+		}
+		mutex_unlock(&reading_mutex);
+		put_rng(rng);
+
+		if (len) {
+			if (copy_to_user(buf + ret, buffer, len)) {
 				err = -EFAULT;
-				goto out_unlock_reading;
+				goto out;
 			}
 
 			size -= len;
 			ret += len;
 		}
 
-		mutex_unlock(&reading_mutex);
-		put_rng(rng);
 
 		if (need_resched())
 			schedule_timeout_interruptible(1);
@@ -267,6 +274,7 @@ static ssize_t rng_dev_read(struct file *filp, char __user *buf,
 		}
 	}
 out:
+	memzero_explicit(buffer, sizeof(buffer));
 	return ret ? : err;
 
 out_unlock_reading:
drivers/clk/hisilicon/clk-hi3620.c +3 -1
index a3d04c7c3da8..eb9c139babc3 100644
@@ -467,8 +467,10 @@ static void __init hi3620_mmc_clk_init(struct device_node *node)
 		return;
 
 	clk_data->clks = kcalloc(num, sizeof(*clk_data->clks), GFP_KERNEL);
-	if (!clk_data->clks)
+	if (!clk_data->clks) {
+		kfree(clk_data);
 		return;
+	}
 
 	for (i = 0; i < num; i++) {
 		struct hisi_mmc_clock *mmc_clk = &hi3620_mmc_clks[i];
drivers/clk/mmp/clk-of-pxa168.c +3 -0
index f110c02e83cb..9674c6c06dca 100644
@@ -258,18 +258,21 @@ static void __init pxa168_clk_init(struct device_node *np)
 	pxa_unit->mpmu_base = of_iomap(np, 0);
 	if (!pxa_unit->mpmu_base) {
 		pr_err("failed to map mpmu registers\n");
+		kfree(pxa_unit);
 		return;
 	}
 
 	pxa_unit->apmu_base = of_iomap(np, 1);
 	if (!pxa_unit->apmu_base) {
 		pr_err("failed to map apmu registers\n");
+		kfree(pxa_unit);
 		return;
 	}
 
 	pxa_unit->apbc_base = of_iomap(np, 2);
 	if (!pxa_unit->apbc_base) {
 		pr_err("failed to map apbc registers\n");
+		kfree(pxa_unit);
 		return;
 	}
 
drivers/crypto/stm32/stm32-crc32.c +1 -1
index 2ecc970f5cae..b66e06818afc 100644
@@ -98,7 +98,7 @@ static struct stm32_crc *stm32_crc_get_next_crc(void)
 	struct stm32_crc *crc;
 
 	spin_lock_bh(&crc_list.lock);
-	crc = list_first_entry(&crc_list.dev_list, struct stm32_crc, list);
+	crc = list_first_entry_or_null(&crc_list.dev_list, struct stm32_crc, list);
 	if (crc)
 		list_move_tail(&crc->list, &crc_list.dev_list);
 	spin_unlock_bh(&crc_list.lock);
drivers/dma/fsl-qdma.c +10 -17
index f5a1ae164193..ad5818c0ce22 100644
@@ -502,11 +502,11 @@ static struct fsl_qdma_queue
 			queue_temp = queue_head + i + (j * queue_num);
 
 			queue_temp->cq =
-			dma_alloc_coherent(&pdev->dev,
-					   sizeof(struct fsl_qdma_format) *
-					   queue_size[i],
-					   &queue_temp->bus_addr,
-					   GFP_KERNEL);
+			dmam_alloc_coherent(&pdev->dev,
+					    sizeof(struct fsl_qdma_format) *
+					    queue_size[i],
+					    &queue_temp->bus_addr,
+					    GFP_KERNEL);
 			if (!queue_temp->cq)
 				return NULL;
 			queue_temp->block_base = fsl_qdma->block_base +
@@ -551,11 +551,11 @@ static struct fsl_qdma_queue
 	/*
 	 * Buffer for queue command
 	 */
-	status_head->cq = dma_alloc_coherent(&pdev->dev,
-					     sizeof(struct fsl_qdma_format) *
-					     status_size,
-					     &status_head->bus_addr,
-					     GFP_KERNEL);
+	status_head->cq = dmam_alloc_coherent(&pdev->dev,
+					      sizeof(struct fsl_qdma_format) *
+					      status_size,
+					      &status_head->bus_addr,
+					      GFP_KERNEL);
 	if (!status_head->cq) {
 		devm_kfree(&pdev->dev, status_head);
 		return NULL;
@@ -1221,8 +1221,6 @@ static void fsl_qdma_cleanup_vchan(struct dma_device *dmadev)
 
 static int fsl_qdma_remove(struct platform_device *pdev)
 {
-	int i;
-	struct fsl_qdma_queue *status;
 	struct device_node *np = pdev->dev.of_node;
 	struct fsl_qdma_engine *fsl_qdma = platform_get_drvdata(pdev);
 
@@ -1231,11 +1229,6 @@ static int fsl_qdma_remove(struct platform_device *pdev)
 	of_dma_controller_free(np);
 	dma_async_device_unregister(&fsl_qdma->dma_dev);
 
-	for (i = 0; i < fsl_qdma->block_number; i++) {
-		status = fsl_qdma->status[i];
-		dma_free_coherent(&pdev->dev, sizeof(struct fsl_qdma_format) *
-				status->n_cq, status->cq, status->bus_addr);
-	}
 	return 0;
 }
 
drivers/firewire/core-device.c +3 -4
index 6950b033db79..82aacff0c4f9 100644
@@ -100,10 +100,9 @@ static int textual_leaf_to_string(const u32 *block, char *buf, size_t size)
  * @buf:	where to put the string
  * @size:	size of @buf, in bytes
  *
- * The string is taken from a minimal ASCII text descriptor leaf after
- * the immediate entry with @key.  The string is zero-terminated.
- * An overlong string is silently truncated such that it and the
- * zero byte fit into @size.
+ * The string is taken from a minimal ASCII text descriptor leaf just after the entry with the
+ * @key. The string is zero-terminated. An overlong string is silently truncated such that it
+ * and the zero byte fit into @size.
  *
  * Returns strlen(buf) or a negative error code.
  */
drivers/gpio/gpio-eic-sprd.c +28 -4
index a69b3faf51ef..e50e27304c38 100644
@@ -318,20 +318,27 @@ static int sprd_eic_irq_set_type(struct irq_data *data, unsigned int flow_type)
 		switch (flow_type) {
 		case IRQ_TYPE_LEVEL_HIGH:
 			sprd_eic_update(chip, offset, SPRD_EIC_DBNC_IEV, 1);
+			sprd_eic_update(chip, offset, SPRD_EIC_DBNC_IC, 1);
 			break;
 		case IRQ_TYPE_LEVEL_LOW:
 			sprd_eic_update(chip, offset, SPRD_EIC_DBNC_IEV, 0);
+			sprd_eic_update(chip, offset, SPRD_EIC_DBNC_IC, 1);
 			break;
 		case IRQ_TYPE_EDGE_RISING:
 		case IRQ_TYPE_EDGE_FALLING:
 		case IRQ_TYPE_EDGE_BOTH:
 			state = sprd_eic_get(chip, offset);
-			if (state)
+			if (state) {
 				sprd_eic_update(chip, offset,
 						SPRD_EIC_DBNC_IEV, 0);
-			else
+				sprd_eic_update(chip, offset,
+						SPRD_EIC_DBNC_IC, 1);
+			} else {
 				sprd_eic_update(chip, offset,
 						SPRD_EIC_DBNC_IEV, 1);
+				sprd_eic_update(chip, offset,
+						SPRD_EIC_DBNC_IC, 1);
+			}
 			break;
 		default:
 			return -ENOTSUPP;
@@ -343,20 +350,27 @@ static int sprd_eic_irq_set_type(struct irq_data *data, unsigned int flow_type)
 		switch (flow_type) {
 		case IRQ_TYPE_LEVEL_HIGH:
 			sprd_eic_update(chip, offset, SPRD_EIC_LATCH_INTPOL, 0);
+			sprd_eic_update(chip, offset, SPRD_EIC_LATCH_INTCLR, 1);
 			break;
 		case IRQ_TYPE_LEVEL_LOW:
 			sprd_eic_update(chip, offset, SPRD_EIC_LATCH_INTPOL, 1);
+			sprd_eic_update(chip, offset, SPRD_EIC_LATCH_INTCLR, 1);
 			break;
 		case IRQ_TYPE_EDGE_RISING:
 		case IRQ_TYPE_EDGE_FALLING:
 		case IRQ_TYPE_EDGE_BOTH:
 			state = sprd_eic_get(chip, offset);
-			if (state)
+			if (state) {
 				sprd_eic_update(chip, offset,
 						SPRD_EIC_LATCH_INTPOL, 0);
-			else
+				sprd_eic_update(chip, offset,
+						SPRD_EIC_LATCH_INTCLR, 1);
+			} else {
 				sprd_eic_update(chip, offset,
 						SPRD_EIC_LATCH_INTPOL, 1);
+				sprd_eic_update(chip, offset,
+						SPRD_EIC_LATCH_INTCLR, 1);
+			}
 			break;
 		default:
 			return -ENOTSUPP;
@@ -370,29 +384,34 @@ static int sprd_eic_irq_set_type(struct irq_data *data, unsigned int flow_type)
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTBOTH, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTMODE, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTPOL, 1);
+			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTCLR, 1);
 			irq_set_handler_locked(data, handle_edge_irq);
 			break;
 		case IRQ_TYPE_EDGE_FALLING:
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTBOTH, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTMODE, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTPOL, 0);
+			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTCLR, 1);
 			irq_set_handler_locked(data, handle_edge_irq);
 			break;
 		case IRQ_TYPE_EDGE_BOTH:
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTMODE, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTBOTH, 1);
+			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTCLR, 1);
 			irq_set_handler_locked(data, handle_edge_irq);
 			break;
 		case IRQ_TYPE_LEVEL_HIGH:
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTBOTH, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTMODE, 1);
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTPOL, 1);
+			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTCLR, 1);
 			irq_set_handler_locked(data, handle_level_irq);
 			break;
 		case IRQ_TYPE_LEVEL_LOW:
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTBOTH, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTMODE, 1);
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTPOL, 0);
+			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTCLR, 1);
 			irq_set_handler_locked(data, handle_level_irq);
 			break;
 		default:
@@ -405,29 +424,34 @@ static int sprd_eic_irq_set_type(struct irq_data *data, unsigned int flow_type)
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTBOTH, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTMODE, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTPOL, 1);
+			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTCLR, 1);
 			irq_set_handler_locked(data, handle_edge_irq);
 			break;
 		case IRQ_TYPE_EDGE_FALLING:
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTBOTH, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTMODE, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTPOL, 0);
+			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTCLR, 1);
 			irq_set_handler_locked(data, handle_edge_irq);
 			break;
 		case IRQ_TYPE_EDGE_BOTH:
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTMODE, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTBOTH, 1);
+			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTCLR, 1);
 			irq_set_handler_locked(data, handle_edge_irq);
 			break;
 		case IRQ_TYPE_LEVEL_HIGH:
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTBOTH, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTMODE, 1);
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTPOL, 1);
+			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTCLR, 1);
 			irq_set_handler_locked(data, handle_level_irq);
 			break;
 		case IRQ_TYPE_LEVEL_LOW:
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTBOTH, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTMODE, 1);
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTPOL, 0);
+			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTCLR, 1);
 			irq_set_handler_locked(data, handle_level_irq);
 			break;
 		default:
drivers/gpio/gpiolib-acpi.c +14 -0
index d71c7b9b9665..51d957f9cec7 100644
@@ -1466,6 +1466,20 @@ static const struct dmi_system_id gpiolib_acpi_quirks[] = {
 			.ignore_wake = "INT33FF:01@0",
 		},
 	},
+	{
+		/*
+		 * Spurious wakeups from TP_ATTN# pin
+		 * Found in BIOS 0.35
+		 * https://gitlab.freedesktop.org/drm/amd/-/issues/3073
+		 */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "GPD"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "G1619-04"),
+		},
+		.driver_data = &(struct acpi_gpiolib_dmi_quirk) {
+			.ignore_wake = "PNP0C50:00@8",
+		},
+	},
 	{} /* Terminating entry */
 };
 
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c +1 -1
index 3107b9575929..eef7517c9d24 100644
@@ -88,7 +88,7 @@ struct amdgpu_amdkfd_fence *to_amdgpu_amdkfd_fence(struct dma_fence *f)
 		return NULL;
 
 	fence = container_of(f, struct amdgpu_amdkfd_fence, base);
-	if (fence && f->ops == &amdkfd_fence_ops)
+	if (f->ops == &amdkfd_fence_ops)
 		return fence;
 
 	return NULL;
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +1 -0
index e5032eb9ae29..9dcb38bab0e1 100644
@@ -847,6 +847,7 @@ bool amdgpu_device_need_post(struct amdgpu_device *adev)
 				return true;
 
 			fw_ver = *((uint32_t *)adev->pm.fw->data + 69);
+			release_firmware(adev->pm.fw);
 			if (fw_ver < 0x00160e00)
 				return true;
 		}
drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c +2 -1
index 95e5e93edd18..7e840e560513 100644
@@ -218,7 +218,8 @@ int amdgpu_sync_resv(struct amdgpu_device *adev,
 		 */
 		fence_owner = amdgpu_sync_get_owner(f);
 		if (fence_owner == AMDGPU_FENCE_OWNER_KFD &&
-		    owner != AMDGPU_FENCE_OWNER_UNDEFINED)
+		    owner != AMDGPU_FENCE_OWNER_UNDEFINED &&
+	    owner != AMDGPU_FENCE_OWNER_KFD)
 			continue;
 
 		if (amdgpu_sync_same_dev(adev, f)) {
drivers/gpu/drm/bridge/nxp-ptn3460.c +3 -3
index d4a1cc5052c3..289a729d8ec4 100644
@@ -54,13 +54,13 @@ static int ptn3460_read_bytes(struct ptn3460_bridge *ptn_bridge, char addr,
 	int ret;
 
 	ret = i2c_master_send(ptn_bridge->client, &addr, 1);
-	if (ret <= 0) {
+	if (ret < 0) {
 		DRM_ERROR("Failed to send i2c command, ret=%d\n", ret);
 		return ret;
 	}
 
 	ret = i2c_master_recv(ptn_bridge->client, buf, len);
-	if (ret <= 0) {
+	if (ret < 0) {
 		DRM_ERROR("Failed to recv i2c data, ret=%d\n", ret);
 		return ret;
 	}
@@ -78,7 +78,7 @@ static int ptn3460_write_byte(struct ptn3460_bridge *ptn_bridge, char addr,
 	buf[1] = val;
 
 	ret = i2c_master_send(ptn_bridge->client, buf, ARRAY_SIZE(buf));
-	if (ret <= 0) {
+	if (ret < 0) {
 		DRM_ERROR("Failed to send i2c command, ret=%d\n", ret);
 		return ret;
 	}
drivers/gpu/drm/drm_file.c +1 -1
index ea34bc991858..e27a15a6fe79 100644
@@ -369,7 +369,7 @@ int drm_open(struct inode *inode, struct file *filp)
 {
 	struct drm_device *dev;
 	struct drm_minor *minor;
-	int retcode;
+	int retcode = 0;
 	int need_setup = 0;
 
 	minor = drm_minor_acquire(iminor(inode));
drivers/gpu/drm/drm_framebuffer.c +1 -1
index 57564318ceea..e85fbbbc07f8 100644
@@ -580,7 +580,7 @@ int drm_mode_dirtyfb_ioctl(struct drm_device *dev,
 	struct drm_framebuffer *fb;
 	unsigned flags;
 	int num_clips;
-	int ret;
+	int ret = 0;
 
 	if (!drm_core_check_feature(dev, DRIVER_MODESET))
 		return -EOPNOTSUPP;
drivers/gpu/drm/drm_mipi_dsi.c +15 -2
index 17a96f1d9234..963918dc8ad8 100644
@@ -300,7 +300,8 @@ 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);
+	if (dsi->attached)
+		mipi_dsi_detach(dsi);
 	mipi_dsi_device_unregister(dsi);
 
 	return 0;
@@ -323,11 +324,18 @@ EXPORT_SYMBOL(mipi_dsi_host_unregister);
 int mipi_dsi_attach(struct mipi_dsi_device *dsi)
 {
 	const struct mipi_dsi_host_ops *ops = dsi->host->ops;
+	int ret;
 
 	if (!ops || !ops->attach)
 		return -ENOSYS;
 
-	return ops->attach(dsi->host, dsi);
+	ret = ops->attach(dsi->host, dsi);
+	if (ret)
+		return ret;
+
+	dsi->attached = true;
+
+	return 0;
 }
 EXPORT_SYMBOL(mipi_dsi_attach);
 
@@ -339,9 +347,14 @@ int mipi_dsi_detach(struct mipi_dsi_device *dsi)
 {
 	const struct mipi_dsi_host_ops *ops = dsi->host->ops;
 
+	if (WARN_ON(!dsi->attached))
+		return -EINVAL;
+
 	if (!ops || !ops->detach)
 		return -ENOSYS;
 
+	dsi->attached = false;
+
 	return ops->detach(dsi->host, dsi);
 }
 EXPORT_SYMBOL(mipi_dsi_detach);
drivers/gpu/drm/drm_plane.c +1 -0
index 6bdebcca5690..89742b059f91 100644
@@ -1203,6 +1203,7 @@ int drm_mode_page_flip_ioctl(struct drm_device *dev,
 out:
 	if (fb)
 		drm_framebuffer_put(fb);
+	fb = NULL;
 	if (plane->old_fb)
 		drm_framebuffer_put(plane->old_fb);
 	plane->old_fb = NULL;
drivers/gpu/drm/exynos/exynos5433_drm_decon.c +2 -2
index 1061430aced2..78c934a21bd7 100644
@@ -318,9 +318,9 @@ static void decon_win_set_bldmod(struct decon_context *ctx, unsigned int win,
 static void decon_win_set_pixfmt(struct decon_context *ctx, unsigned int win,
 				 struct drm_framebuffer *fb)
 {
-	struct exynos_drm_plane plane = ctx->planes[win];
+	struct exynos_drm_plane *plane = &ctx->planes[win];
 	struct exynos_drm_plane_state *state =
-		to_exynos_plane_state(plane.base.state);
+		to_exynos_plane_state(plane->base.state);
 	unsigned int alpha = state->base.alpha;
 	unsigned int pixel_alpha;
 	unsigned long val;
drivers/gpu/drm/exynos/exynos_drm_drv.c +11 -0
index ba0f868b2477..29577a7eaea8 100644
@@ -346,6 +346,7 @@ static int exynos_drm_bind(struct device *dev)
 	drm_mode_config_cleanup(drm);
 	exynos_drm_cleanup_dma(drm);
 	kfree(private);
+	dev_set_drvdata(dev, NULL);
 err_free_drm:
 	drm_dev_put(drm);
 
@@ -360,6 +361,7 @@ static void exynos_drm_unbind(struct device *dev)
 
 	exynos_drm_fbdev_fini(drm);
 	drm_kms_helper_poll_fini(drm);
+	drm_atomic_helper_shutdown(drm);
 
 	component_unbind_all(drm->dev, drm);
 	drm_mode_config_cleanup(drm);
@@ -397,9 +399,18 @@ static int exynos_drm_platform_remove(struct platform_device *pdev)
 	return 0;
 }
 
+static void exynos_drm_platform_shutdown(struct platform_device *pdev)
+{
+	struct drm_device *drm = platform_get_drvdata(pdev);
+
+	if (drm)
+		drm_atomic_helper_shutdown(drm);
+}
+
 static struct platform_driver exynos_drm_platform_driver = {
 	.probe	= exynos_drm_platform_probe,
 	.remove	= exynos_drm_platform_remove,
+	.shutdown = exynos_drm_platform_shutdown,
 	.driver	= {
 		.name	= "exynos-drm",
 		.pm	= &exynos_drm_pm_ops,
drivers/gpu/drm/exynos/exynos_drm_fimd.c +2 -2
index 34e6b22173fa..4fe4ca41665b 100644
@@ -637,9 +637,9 @@ static void fimd_win_set_bldmod(struct fimd_context *ctx, unsigned int win,
 static void fimd_win_set_pixfmt(struct fimd_context *ctx, unsigned int win,
 				struct drm_framebuffer *fb, int width)
 {
-	struct exynos_drm_plane plane = ctx->planes[win];
+	struct exynos_drm_plane *plane = &ctx->planes[win];
 	struct exynos_drm_plane_state *state =
-		to_exynos_plane_state(plane.base.state);
+		to_exynos_plane_state(plane->base.state);
 	uint32_t pixel_format = fb->format->format;
 	unsigned int alpha = state->base.alpha;
 	u32 val = WINCONx_ENWIN;
drivers/gpu/drm/exynos/exynos_drm_gsc.c +1 -1
index 45e9aee8366a..bcf830c5b8ea 100644
@@ -1344,7 +1344,7 @@ static int __maybe_unused gsc_runtime_resume(struct device *dev)
 	for (i = 0; i < ctx->num_clocks; i++) {
 		ret = clk_prepare_enable(ctx->clocks[i]);
 		if (ret) {
-			while (--i > 0)
+			while (--i >= 0)
 				clk_disable_unprepare(ctx->clocks[i]);
 			return ret;
 		}
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c +4 -1
index 99d449ce4a07..03d671d23bf7 100644
@@ -44,6 +44,9 @@
 		(p) ? ((p)->hw_pp ? (p)->hw_pp->idx - PINGPONG_0 : -1) : -1, \
 		##__VA_ARGS__)
 
+#define DPU_ERROR_ENC_RATELIMITED(e, fmt, ...) DPU_ERROR_RATELIMITED("enc%d " fmt,\
+		(e) ? (e)->base.base.id : -1, ##__VA_ARGS__)
+
 /*
  * Two to anticipate panels that can do cmd/vid dynamic switching
  * plan is to create all possible physical encoder types, and switch between
@@ -2151,7 +2154,7 @@ static void dpu_encoder_frame_done_timeout(struct timer_list *t)
 		return;
 	}
 
-	DPU_ERROR_ENC(dpu_enc, "frame done timeout\n");
+	DPU_ERROR_ENC_RATELIMITED(dpu_enc, "frame done timeout\n");
 
 	event = DPU_ENCODER_FRAME_EVENT_ERROR;
 	trace_dpu_enc_frame_done_timeout(DRMID(drm_enc), event);
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h +1 -0
index 4c889aabdaf9..6a4813505c33 100644
@@ -50,6 +50,7 @@
 	} while (0)
 
 #define DPU_ERROR(fmt, ...) pr_err("[dpu error]" fmt, ##__VA_ARGS__)
+#define DPU_ERROR_RATELIMITED(fmt, ...) pr_err_ratelimited("[dpu error]" fmt, ##__VA_ARGS__)
 
 /**
  * ktime_compare_safe - compare two ktime structures
drivers/gpu/drm/msm/dsi/phy/dsi_phy.c +4 -0
index 1582386fe162..925262ea6f14 100644
@@ -606,6 +606,10 @@ static int dsi_phy_driver_probe(struct platform_device *pdev)
 			goto fail;
 	}
 
+	ret = devm_pm_runtime_enable(&pdev->dev);
+	if (ret)
+		return ret;
+
 	/* PLL init will call into clk_register which requires
 	 * register access, so we need to enable power and ahb clock.
 	 */
drivers/gpu/drm/nouveau/nouveau_vmm.c +3 -0
index 77061182a1cf..a95999393c84 100644
@@ -108,6 +108,9 @@ nouveau_vma_new(struct nouveau_bo *nvbo, struct nouveau_vmm *vmm,
 	} else {
 		ret = nvif_vmm_get(&vmm->vmm, PTES, false, mem->mem.page, 0,
 				   mem->mem.size, &tmp);
+		if (ret)
+			goto done;
+
 		vma->addr = tmp.addr;
 	}
 
drivers/hid/hid-apple.c +60 -3

110 lines not on this page · raw message

drivers/hid/hid-ids.h +1 -0
index 182068bf28c0..839430b48755 100644
@@ -175,6 +175,7 @@
 #define USB_DEVICE_ID_APPLE_IRCONTROL3	0x8241
 #define USB_DEVICE_ID_APPLE_IRCONTROL4	0x8242
 #define USB_DEVICE_ID_APPLE_IRCONTROL5	0x8243
+#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2021   0x029c
 
 #define USB_VENDOR_ID_ASUS		0x0486
 #define USB_DEVICE_ID_ASUS_T91MT	0x0185
drivers/hid/hid-quirks.c +1 -0
index fd84661df5fa..99009fda7b80 100644
@@ -308,6 +308,7 @@ static const struct hid_device_id hid_have_special_driver[] = {
 	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_ANSI) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY) },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2021) },
 #endif
 #if IS_ENABLED(CONFIG_HID_APPLEIR)
 	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_IRCONTROL) },
drivers/hid/wacom_sys.c +43 -20

99 lines not on this page · raw message

drivers/hid/wacom_wac.c +8 -1
index 3b17d3ab88d5..18f3d220aaad 100644
@@ -2540,7 +2540,14 @@ static void wacom_wac_pen_report(struct hid_device *hdev,
 				wacom_wac->hid_data.tipswitch);
 		input_report_key(input, wacom_wac->tool[0], sense);
 		if (wacom_wac->serial[0]) {
-			input_event(input, EV_MSC, MSC_SERIAL, wacom_wac->serial[0]);
+			/*
+			 * xf86-input-wacom does not accept a serial number
+			 * of '0'. Report the low 32 bits if possible, but
+			 * if they are zero, report the upper ones instead.
+			 */
+			__u32 serial_lo = wacom_wac->serial[0] & 0xFFFFFFFFu;
+			__u32 serial_hi = wacom_wac->serial[0] >> 32;
+			input_event(input, EV_MSC, MSC_SERIAL, (int)(serial_lo ? serial_lo : serial_hi));
 			input_report_abs(input, ABS_MISC, sense ? id : 0);
 		}
 
drivers/hwmon/aspeed-pwm-tacho.c +7 -0
index 40f3139f1e02..dca5d3bf0629 100644
@@ -194,6 +194,8 @@ struct aspeed_pwm_tacho_data {
 	u8 fan_tach_ch_source[16];
 	struct aspeed_cooling_device *cdev[8];
 	const struct attribute_group *groups[3];
+	/* protects access to shared ASPEED_PTCR_RESULT */
+	struct mutex tach_lock;
 };
 
 enum type { TYPEM, TYPEN, TYPEO };
@@ -528,6 +530,8 @@ static int aspeed_get_fan_tach_ch_rpm(struct aspeed_pwm_tacho_data *priv,
 	u8 fan_tach_ch_source, type, mode, both;
 	int ret;
 
+	mutex_lock(&priv->tach_lock);
+
 	regmap_write(priv->regmap, ASPEED_PTCR_TRIGGER, 0);
 	regmap_write(priv->regmap, ASPEED_PTCR_TRIGGER, 0x1 << fan_tach_ch);
 
@@ -545,6 +549,8 @@ static int aspeed_get_fan_tach_ch_rpm(struct aspeed_pwm_tacho_data *priv,
 		ASPEED_RPM_STATUS_SLEEP_USEC,
 		usec);
 
+	mutex_unlock(&priv->tach_lock);
+
 	/* return -ETIMEDOUT if we didn't get an answer. */
 	if (ret)
 		return ret;
@@ -909,6 +915,7 @@ static int aspeed_pwm_tacho_probe(struct platform_device *pdev)
 	priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
 	if (!priv)
 		return -ENOMEM;
+	mutex_init(&priv->tach_lock);
 	priv->regmap = devm_regmap_init(dev, NULL, (__force void *)regs,
 			&aspeed_pwm_tacho_regmap_config);
 	if (IS_ERR(priv->regmap))
drivers/hwmon/coretemp.c +21 -19
index 0eabad344961..ecee12d0346b 100644
@@ -380,7 +380,7 @@ static int get_tjmax(struct cpuinfo_x86 *c, u32 id, struct device *dev)
 }
 
 static int create_core_attrs(struct temp_data *tdata, struct device *dev,
-			     int attr_no)
+			     int index)
 {
 	int i;
 	static ssize_t (*const rd_ptr[TOTAL_ATTRS]) (struct device *dev,
@@ -392,13 +392,20 @@ static int create_core_attrs(struct temp_data *tdata, struct device *dev,
 	};
 
 	for (i = 0; i < tdata->attr_size; i++) {
+		/*
+		 * We map the attr number to core id of the CPU
+		 * The attr number is always core id + 2
+		 * The Pkgtemp will always show up as temp1_*, if available
+		 */
+		int attr_no = tdata->is_pkg_data ? 1 : tdata->cpu_core_id + 2;
+
 		snprintf(tdata->attr_name[i], CORETEMP_NAME_LENGTH,
 			 "temp%d_%s", attr_no, suffixes[i]);
 		sysfs_attr_init(&tdata->sd_attrs[i].dev_attr.attr);
 		tdata->sd_attrs[i].dev_attr.attr.name = tdata->attr_name[i];
 		tdata->sd_attrs[i].dev_attr.attr.mode = 0444;
 		tdata->sd_attrs[i].dev_attr.show = rd_ptr[i];
-		tdata->sd_attrs[i].index = attr_no;
+		tdata->sd_attrs[i].index = index;
 		tdata->attrs[i] = &tdata->sd_attrs[i].dev_attr.attr;
 	}
 	tdata->attr_group.attrs = tdata->attrs;
@@ -456,27 +463,22 @@ static int create_core_data(struct platform_device *pdev, unsigned int cpu,
 	struct platform_data *pdata = platform_get_drvdata(pdev);
 	struct cpuinfo_x86 *c = &cpu_data(cpu);
 	u32 eax, edx;
-	int err, index, attr_no;
+	int err, index;
 
 	/*
-	 * Find attr number for sysfs:
-	 * We map the attr number to core id of the CPU
-	 * The attr number is always core id + 2
-	 * The Pkgtemp will always show up as temp1_*, if available
+	 * Get the index of tdata in pdata->core_data[]
+	 * tdata for package: pdata->core_data[1]
+	 * tdata for core: pdata->core_data[2] .. pdata->core_data[NUM_REAL_CORES + 1]
 	 */
 	if (pkg_flag) {
-		attr_no = PKG_SYSFS_ATTR_NO;
+		index = PKG_SYSFS_ATTR_NO;
 	} else {
-		index = ida_alloc(&pdata->ida, GFP_KERNEL);
+		index = ida_alloc_max(&pdata->ida, NUM_REAL_CORES - 1, GFP_KERNEL);
 		if (index < 0)
 			return index;
-		pdata->cpu_map[index] = topology_core_id(cpu);
-		attr_no = index + BASE_SYSFS_ATTR_NO;
-	}
 
-	if (attr_no > MAX_CORE_DATA - 1) {
-		err = -ERANGE;
-		goto ida_free;
+		pdata->cpu_map[index] = topology_core_id(cpu);
+		index += BASE_SYSFS_ATTR_NO;
 	}
 
 	tdata = init_temp_data(cpu, pkg_flag);
@@ -508,20 +510,20 @@ static int create_core_data(struct platform_device *pdev, unsigned int cpu,
 		}
 	}
 
-	pdata->core_data[attr_no] = tdata;
+	pdata->core_data[index] = tdata;
 
 	/* Create sysfs interfaces */
-	err = create_core_attrs(tdata, pdata->hwmon_dev, attr_no);
+	err = create_core_attrs(tdata, pdata->hwmon_dev, index);
 	if (err)
 		goto exit_free;
 
 	return 0;
 exit_free:
-	pdata->core_data[attr_no] = NULL;
+	pdata->core_data[index] = NULL;
 	kfree(tdata);
 ida_free:
 	if (!pkg_flag)
-		ida_free(&pdata->ida, index);
+		ida_free(&pdata->ida, index - BASE_SYSFS_ATTR_NO);
 	return err;
 }
 
drivers/i2c/busses/i2c-i801.c +6 -13
index 50c972b3efe0..18489940a947 100644
@@ -528,12 +528,13 @@ static int i801_block_transaction_by_block(struct i801_priv *priv,
 		return -EOPNOTSUPP;
 	}
 
-	inb_p(SMBHSTCNT(priv)); /* reset the data buffer index */
+	/* Set block buffer mode */
+	outb_p(inb_p(SMBAUXCTL(priv)) | SMBAUXCTL_E32B, SMBAUXCTL(priv));
 
-	/* Use 32-byte buffer to process this transaction */
 	if (read_write == I2C_SMBUS_WRITE) {
 		len = data->block[0];
 		outb_p(len, SMBHSTDAT0(priv));
+		inb_p(SMBHSTCNT(priv));	/* reset the data buffer index */
 		for (i = 0; i < len; i++)
 			outb_p(data->block[i+1], SMBBLKDAT(priv));
 	}
@@ -549,6 +550,7 @@ static int i801_block_transaction_by_block(struct i801_priv *priv,
 			return -EPROTO;
 
 		data->block[0] = len;
+		inb_p(SMBHSTCNT(priv));	/* reset the data buffer index */
 		for (i = 0; i < len; i++)
 			data->block[i + 1] = inb_p(SMBBLKDAT(priv));
 	}
@@ -768,14 +770,6 @@ static int i801_block_transaction_byte_by_byte(struct i801_priv *priv,
 	return i801_check_post(priv, status);
 }
 
-static int i801_set_block_buffer_mode(struct i801_priv *priv)
-{
-	outb_p(inb_p(SMBAUXCTL(priv)) | SMBAUXCTL_E32B, SMBAUXCTL(priv));
-	if ((inb_p(SMBAUXCTL(priv)) & SMBAUXCTL_E32B) == 0)
-		return -EIO;
-	return 0;
-}
-
 /* Block transaction function */
 static int i801_block_transaction(struct i801_priv *priv,
 				  union i2c_smbus_data *data, char read_write,
@@ -805,9 +799,8 @@ static int i801_block_transaction(struct i801_priv *priv,
 	/* Experience has shown that the block buffer can only be used for
 	   SMBus (not I2C) block transactions, even though the datasheet
 	   doesn't mention this limitation. */
-	if ((priv->features & FEATURE_BLOCK_BUFFER)
-	 && command != I2C_SMBUS_I2C_BLOCK_DATA
-	 && i801_set_block_buffer_mode(priv) == 0)
+	if ((priv->features & FEATURE_BLOCK_BUFFER) &&
+	    command != I2C_SMBUS_I2C_BLOCK_DATA)
 		result = i801_block_transaction_by_block(priv, data,
 							 read_write,
 							 command, hwpec);
drivers/i3c/master/i3c-master-cdns.c +4 -3
index cc0944e2d330..6e0621e730fa 100644
@@ -74,7 +74,8 @@
 #define PRESCL_CTRL0			0x14
 #define PRESCL_CTRL0_I2C(x)		((x) << 16)
 #define PRESCL_CTRL0_I3C(x)		(x)
-#define PRESCL_CTRL0_MAX		GENMASK(9, 0)
+#define PRESCL_CTRL0_I3C_MAX		GENMASK(9, 0)
+#define PRESCL_CTRL0_I2C_MAX		GENMASK(15, 0)
 
 #define PRESCL_CTRL1			0x18
 #define PRESCL_CTRL1_PP_LOW_MASK	GENMASK(15, 8)
@@ -1212,7 +1213,7 @@ static int cdns_i3c_master_bus_init(struct i3c_master_controller *m)
 		return -EINVAL;
 
 	pres = DIV_ROUND_UP(sysclk_rate, (bus->scl_rate.i3c * 4)) - 1;
-	if (pres > PRESCL_CTRL0_MAX)
+	if (pres > PRESCL_CTRL0_I3C_MAX)
 		return -ERANGE;
 
 	bus->scl_rate.i3c = sysclk_rate / ((pres + 1) * 4);
@@ -1225,7 +1226,7 @@ static int cdns_i3c_master_bus_init(struct i3c_master_controller *m)
 	max_i2cfreq = bus->scl_rate.i2c;
 
 	pres = (sysclk_rate / (max_i2cfreq * 5)) - 1;
-	if (pres > PRESCL_CTRL0_MAX)
+	if (pres > PRESCL_CTRL0_I2C_MAX)
 		return -ERANGE;
 
 	bus->scl_rate.i2c = sysclk_rate / ((pres + 1) * 5);
drivers/iio/magnetometer/rm3100-core.c +8 -2
index f31ff225fe61..489e17e83a4d 100644
@@ -539,6 +539,7 @@ int rm3100_common_probe(struct device *dev, struct regmap *regmap, int irq)
 	struct rm3100_data *data;
 	unsigned int tmp;
 	int ret;
+	int samp_rate_index;
 
 	indio_dev = devm_iio_device_alloc(dev, sizeof(*data));
 	if (!indio_dev)
@@ -598,9 +599,14 @@ int rm3100_common_probe(struct device *dev, struct regmap *regmap, int irq)
 	ret = regmap_read(regmap, RM3100_REG_TMRC, &tmp);
 	if (ret < 0)
 		return ret;
+
+	samp_rate_index = tmp - RM3100_TMRC_OFFSET;
+	if (samp_rate_index < 0 || samp_rate_index >=  RM3100_SAMP_NUM) {
+		dev_err(dev, "The value read from RM3100_REG_TMRC is invalid!\n");
+		return -EINVAL;
+	}
 	/* Initializing max wait time, which is double conversion time. */
-	data->conversion_time = rm3100_samp_rates[tmp - RM3100_TMRC_OFFSET][2]
-				* 2;
+	data->conversion_time = rm3100_samp_rates[samp_rate_index][2] * 2;
 
 	/* Cycle count values may not be what we want. */
 	if ((tmp - RM3100_TMRC_OFFSET) == 0)
drivers/infiniband/ulp/ipoib/ipoib_multicast.c +2 -5
index b9e9562f5034..de82fb0cb1d5 100644
@@ -543,21 +543,18 @@ static int ipoib_mcast_join(struct net_device *dev, struct ipoib_mcast *mcast)
 			/* SM supports sendonly-fullmember, otherwise fallback to full-member */
 			rec.join_state = SENDONLY_FULLMEMBER_JOIN;
 	}
-	spin_unlock_irq(&priv->lock);
 
 	multicast = ib_sa_join_multicast(&ipoib_sa_client, priv->ca, priv->port,
-					 &rec, comp_mask, GFP_KERNEL,
+					 &rec, comp_mask, GFP_ATOMIC,
 					 ipoib_mcast_join_complete, mcast);
-	spin_lock_irq(&priv->lock);
 	if (IS_ERR(multicast)) {
 		ret = PTR_ERR(multicast);
 		ipoib_warn(priv, "ib_sa_join_multicast failed, status %d\n", ret);
 		/* Requeue this join task with a backoff delay */
 		__ipoib_mcast_schedule_join_thread(priv, mcast, 1);
 		clear_bit(IPOIB_MCAST_FLAG_BUSY, &mcast->flags);
-		spin_unlock_irq(&priv->lock);
 		complete(&mcast->done);
-		spin_lock_irq(&priv->lock);
+		return ret;
 	}
 	return 0;
 }
drivers/input/keyboard/atkbd.c +8 -5
index e08d1bb554f0..cb7f9b46ce65 100644
@@ -761,7 +761,6 @@ static int atkbd_probe(struct atkbd *atkbd)
 {
 	struct ps2dev *ps2dev = &atkbd->ps2dev;
 	unsigned char param[2];
-	bool skip_getid;
 
 /*
  * Some systems, where the bit-twiddling when testing the io-lines of the
@@ -775,6 +774,11 @@ static int atkbd_probe(struct atkbd *atkbd)
 				 "keyboard reset failed on %s\n",
 				 ps2dev->serio->phys);
 
+	if (atkbd_skip_getid(atkbd)) {
+		atkbd->id = 0xab83;
+		return 0;
+	}
+
 /*
  * Then we check the keyboard ID. We should get 0xab83 under normal conditions.
  * Some keyboards report different values, but the first byte is always 0xab or
@@ -783,18 +787,17 @@ static int atkbd_probe(struct atkbd *atkbd)
  */
 
 	param[0] = param[1] = 0xa5;	/* initialize with invalid values */
-	skip_getid = atkbd_skip_getid(atkbd);
-	if (skip_getid || ps2_command(ps2dev, param, ATKBD_CMD_GETID)) {
+	if (ps2_command(ps2dev, param, ATKBD_CMD_GETID)) {
 
 /*
- * If the get ID command was skipped or failed, we check if we can at least set
+ * If the get ID command failed, we check if we can at least set
  * the LEDs on the keyboard. This should work on every keyboard out there.
  * It also turns the LEDs off, which we want anyway.
  */
 		param[0] = 0;
 		if (ps2_command(ps2dev, param, ATKBD_CMD_SETLEDS))
 			return -1;
-		atkbd->id = skip_getid ? 0xab83 : 0xabba;
+		atkbd->id = 0xabba;
 		return 0;
 	}
 
drivers/irqchip/irq-brcmstb-l2.c +4 -1
index f803ecb6a0fa..fea64bf960c2 100644
@@ -2,7 +2,7 @@
 /*
  * Generic Broadcom Set Top Box Level 2 Interrupt controller driver
  *
- * Copyright (C) 2014-2017 Broadcom
+ * Copyright (C) 2014-2024 Broadcom
  */
 
 #define pr_fmt(fmt)	KBUILD_MODNAME	": " fmt
@@ -113,6 +113,9 @@ static void brcmstb_l2_intc_irq_handle(struct irq_desc *desc)
 		generic_handle_irq(irq_linear_revmap(b->domain, irq));
 	} while (status);
 out:
+	/* Don't ack parent before all device writes are done */
+	wmb();
+
 	chained_irq_exit(chip, desc);
 }
 
drivers/leds/trigger/ledtrig-panic.c +4 -1
index 5751cd032f9d..4bf232465dfd 100644
@@ -63,10 +63,13 @@ static long led_panic_blink(int state)
 
 static int __init ledtrig_panic_init(void)
 {
+	led_trigger_register_simple("panic", &trigger);
+	if (!trigger)
+		return -ENOMEM;
+
 	atomic_notifier_chain_register(&panic_notifier_list,
 				       &led_trigger_panic_nb);
 
-	led_trigger_register_simple("panic", &trigger);
 	panic_blink = led_panic_blink;
 	return 0;
 }
drivers/md/md.c +44 -10

114 lines not on this page · raw message

drivers/md/raid5.c +0 -12
index f3d60c4b34b8..0bea103f63d5 100644
@@ -36,7 +36,6 @@
  */
 
 #include <linux/blkdev.h>
-#include <linux/delay.h>
 #include <linux/kthread.h>
 #include <linux/raid/pq.h>
 #include <linux/async_tx.h>
@@ -6335,18 +6334,7 @@ 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/ddbridge/ddbridge-main.c +1 -1
index 03dc9924fa2c..bb7fb6402d6e 100644
@@ -247,7 +247,7 @@ static int ddb_probe(struct pci_dev *pdev,
 	ddb_unmap(dev);
 	pci_set_drvdata(pdev, NULL);
 	pci_disable_device(pdev);
-	return -1;
+	return stat;
 }
 
 /****************************************************************************/
drivers/media/platform/rockchip/rga/rga.c +3 -12
index e9ff12b6b5bb..302da68075b2 100644
@@ -187,25 +187,16 @@ static int rga_setup_ctrls(struct rga_ctx *ctx)
 static struct rga_fmt formats[] = {
 	{
 		.fourcc = V4L2_PIX_FMT_ARGB32,
-		.color_swap = RGA_COLOR_RB_SWAP,
+		.color_swap = RGA_COLOR_ALPHA_SWAP,
 		.hw_format = RGA_COLOR_FMT_ABGR8888,
 		.depth = 32,
 		.uv_factor = 1,
 		.y_div = 1,
 		.x_div = 1,
 	},
-	{
-		.fourcc = V4L2_PIX_FMT_XRGB32,
-		.color_swap = RGA_COLOR_RB_SWAP,
-		.hw_format = RGA_COLOR_FMT_XBGR8888,
-		.depth = 32,
-		.uv_factor = 1,
-		.y_div = 1,
-		.x_div = 1,
-	},
 	{
 		.fourcc = V4L2_PIX_FMT_ABGR32,
-		.color_swap = RGA_COLOR_ALPHA_SWAP,
+		.color_swap = RGA_COLOR_RB_SWAP,
 		.hw_format = RGA_COLOR_FMT_ABGR8888,
 		.depth = 32,
 		.uv_factor = 1,
@@ -214,7 +205,7 @@ static struct rga_fmt formats[] = {
 	},
 	{
 		.fourcc = V4L2_PIX_FMT_XBGR32,
-		.color_swap = RGA_COLOR_ALPHA_SWAP,
+		.color_swap = RGA_COLOR_RB_SWAP,
 		.hw_format = RGA_COLOR_FMT_XBGR8888,
 		.depth = 32,
 		.uv_factor = 1,
drivers/media/usb/stk1160/stk1160-video.c +2 -3
index 202b084f65a2..4cf540d1b250 100644
@@ -107,8 +107,7 @@ void stk1160_copy_video(struct stk1160 *dev, u8 *src, int len)
 
 	/*
 	 * TODO: These stk1160_dbg are very spammy!
-	 * We should 1) check why we are getting them
-	 * and 2) add ratelimit.
+	 * We should check why we are getting them.
 	 *
 	 * UPDATE: One of the reasons (the only one?) for getting these
 	 * is incorrect standard (mismatch between expected and configured).
@@ -151,7 +150,7 @@ void stk1160_copy_video(struct stk1160 *dev, u8 *src, int len)
 
 	/* Let the bug hunt begin! sanity checks! */
 	if (lencopy < 0) {
-		stk1160_dbg("copy skipped: negative lencopy\n");
+		printk_ratelimited(KERN_DEBUG "copy skipped: negative lencopy\n");
 		return;
 	}
 
drivers/mfd/Kconfig +1 -0
index 43169f25da1f..385db201fe9a 100644
@@ -1299,6 +1299,7 @@ config MFD_DAVINCI_VOICECODEC
 
 config MFD_TI_AM335X_TSCADC
 	tristate "TI ADC / Touch Screen chip support"
+	depends on ARCH_OMAP2PLUS || ARCH_K3 || COMPILE_TEST
 	select MFD_CORE
 	select REGMAP
 	select REGMAP_MMIO
drivers/misc/fastrpc.c +1 -1
index 9bbbeec4cd02..6a2646c481ec 100644
@@ -1401,7 +1401,7 @@ static int fastrpc_cb_remove(struct platform_device *pdev)
 	int i;
 
 	spin_lock_irqsave(&cctx->lock, flags);
-	for (i = 1; i < FASTRPC_MAX_SESSIONS; i++) {
+	for (i = 0; i < FASTRPC_MAX_SESSIONS; i++) {
 		if (cctx->session[i].sid == sess->sid) {
 			cctx->session[i].valid = false;
 			cctx->sesscount--;
drivers/mmc/core/block.c +43 -3

102 lines not on this page · raw message

drivers/mmc/core/slot-gpio.c +5 -1
index 582ec3d720f6..3370c5747c8b 100644
@@ -63,11 +63,15 @@ int mmc_gpio_alloc(struct mmc_host *host)
 int mmc_gpio_get_ro(struct mmc_host *host)
 {
 	struct mmc_gpio *ctx = host->slot.handler_priv;
+	int cansleep;
 
 	if (!ctx || !ctx->ro_gpio)
 		return -ENOSYS;
 
-	return gpiod_get_value_cansleep(ctx->ro_gpio);
+	cansleep = gpiod_cansleep(ctx->ro_gpio);
+	return cansleep ?
+		gpiod_get_value_cansleep(ctx->ro_gpio) :
+		gpiod_get_value(ctx->ro_gpio);
 }
 EXPORT_SYMBOL(mmc_gpio_get_ro);
 
drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c +1 -1
index b806a762d079..fdf5cf5565f9 100644
@@ -684,7 +684,7 @@ static void gpmi_nfc_compute_timings(struct gpmi_nand_data *this,
 	hw->timing0 = BF_GPMI_TIMING0_ADDRESS_SETUP(addr_setup_cycles) |
 		      BF_GPMI_TIMING0_DATA_HOLD(data_hold_cycles) |
 		      BF_GPMI_TIMING0_DATA_SETUP(data_setup_cycles);
-	hw->timing1 = BF_GPMI_TIMING1_BUSY_TIMEOUT(busy_timeout_cycles * 4096);
+	hw->timing1 = BF_GPMI_TIMING1_BUSY_TIMEOUT(DIV_ROUND_UP(busy_timeout_cycles, 4096));
 
 	/*
 	 * Derive NFC ideal delay from {3}:
drivers/mtd/nand/spi/macronix.c +1 -1
index bbb1d68bce4a..f18c6cfe8ff5 100644
@@ -125,7 +125,7 @@ static const struct spinand_info macronix_spinand_table[] = {
 		     SPINAND_HAS_QE_BIT,
 		     SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, NULL)),
 	SPINAND_INFO("MX35LF4GE4AD", 0x37,
-		     NAND_MEMORG(1, 2048, 128, 64, 2048, 40, 1, 1, 1),
+		     NAND_MEMORG(1, 4096, 128, 64, 2048, 40, 1, 1, 1),
 		     NAND_ECCREQ(8, 512),
 		     SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
 					      &write_cache_variants,
drivers/net/bonding/bond_alb.c +2 -1
index 6df78a36bafd..342e23e56192 100644
@@ -970,7 +970,8 @@ static int alb_upper_dev_walk(struct net_device *upper, void *_data)
 	if (netif_is_macvlan(upper) && !strict_match) {
 		tags = bond_verify_device_path(bond->dev, upper, 0);
 		if (IS_ERR_OR_NULL(tags))
-			BUG();
+			return -ENOMEM;
+
 		alb_send_lp_vid(slave, upper->dev_addr,
 				tags[0].vlan_proto, tags[0].vlan_id);
 		kfree(tags);
drivers/net/ethernet/aquantia/atlantic/aq_nic.c +0 -1
index 145334fb18f4..4eeafd529385 100644
@@ -903,7 +903,6 @@ int aq_nic_set_link_ksettings(struct aq_nic_s *self,
 		default:
 			err = -1;
 			goto err_exit;
-		break;
 		}
 		if (!(self->aq_nic_cfg.aq_hw_caps->link_speed_msk & rate)) {
 			err = -1;
drivers/net/ethernet/broadcom/genet/bcmgenet.c +8 -14
index eeadeeec17ba..380bf7a328ba 100644
@@ -1018,7 +1018,8 @@ static void bcmgenet_get_ethtool_stats(struct net_device *dev,
 	}
 }
 
-static void bcmgenet_eee_enable_set(struct net_device *dev, bool enable)
+void bcmgenet_eee_enable_set(struct net_device *dev, bool enable,
+			     bool tx_lpi_enabled)
 {
 	struct bcmgenet_priv *priv = netdev_priv(dev);
 	u32 off = priv->hw_params->tbuf_offset + TBUF_ENERGY_CTRL;
@@ -1038,7 +1039,7 @@ static void bcmgenet_eee_enable_set(struct net_device *dev, bool enable)
 
 	/* Enable EEE and switch to a 27Mhz clock automatically */
 	reg = bcmgenet_readl(priv->base + off);
-	if (enable)
+	if (tx_lpi_enabled)
 		reg |= TBUF_EEE_EN | TBUF_PM_EN;
 	else
 		reg &= ~(TBUF_EEE_EN | TBUF_PM_EN);
@@ -1059,6 +1060,7 @@ static void bcmgenet_eee_enable_set(struct net_device *dev, bool enable)
 
 	priv->eee.eee_enabled = enable;
 	priv->eee.eee_active = enable;
+	priv->eee.tx_lpi_enabled = tx_lpi_enabled;
 }
 
 static int bcmgenet_get_eee(struct net_device *dev, struct ethtool_eee *e)
@@ -1074,6 +1076,7 @@ static int bcmgenet_get_eee(struct net_device *dev, struct ethtool_eee *e)
 
 	e->eee_enabled = p->eee_enabled;
 	e->eee_active = p->eee_active;
+	e->tx_lpi_enabled = p->tx_lpi_enabled;
 	e->tx_lpi_timer = bcmgenet_umac_readl(priv, UMAC_EEE_LPI_TIMER);
 
 	return phy_ethtool_get_eee(dev->phydev, e);
@@ -1083,7 +1086,6 @@ static int bcmgenet_set_eee(struct net_device *dev, struct ethtool_eee *e)
 {
 	struct bcmgenet_priv *priv = netdev_priv(dev);
 	struct ethtool_eee *p = &priv->eee;
-	int ret = 0;
 
 	if (GENET_IS_V1(priv))
 		return -EOPNOTSUPP;
@@ -1094,16 +1096,11 @@ static int bcmgenet_set_eee(struct net_device *dev, struct ethtool_eee *e)
 	p->eee_enabled = e->eee_enabled;
 
 	if (!p->eee_enabled) {
-		bcmgenet_eee_enable_set(dev, false);
+		bcmgenet_eee_enable_set(dev, false, false);
 	} else {
-		ret = phy_init_eee(dev->phydev, 0);
-		if (ret) {
-			netif_err(priv, hw, dev, "EEE initialization failed\n");
-			return ret;
-		}
-
+		p->eee_active = phy_init_eee(dev->phydev, false) >= 0;
 		bcmgenet_umac_writel(priv, e->tx_lpi_timer, UMAC_EEE_LPI_TIMER);
-		bcmgenet_eee_enable_set(dev, true);
+		bcmgenet_eee_enable_set(dev, p->eee_active, e->tx_lpi_enabled);
 	}
 
 	return phy_ethtool_set_eee(dev->phydev, e);
@@ -3688,9 +3685,6 @@ static int bcmgenet_resume(struct device *d)
 	if (!device_may_wakeup(d))
 		phy_resume(dev->phydev);
 
-	if (priv->eee.eee_enabled)
-		bcmgenet_eee_enable_set(dev, true);
-
 	bcmgenet_netif_start(dev);
 
 	netif_device_attach(dev);
drivers/net/ethernet/broadcom/genet/bcmgenet.h +3 -0
index 5b7c2f9241d0..29bf256d13f6 100644
@@ -736,4 +736,7 @@ int bcmgenet_wol_power_down_cfg(struct bcmgenet_priv *priv,
 void bcmgenet_wol_power_up_cfg(struct bcmgenet_priv *priv,
 			       enum bcmgenet_power_mode mode);
 
+void bcmgenet_eee_enable_set(struct net_device *dev, bool enable,
+			     bool tx_lpi_enabled);
+
 #endif /* __BCMGENET_H__ */
drivers/net/ethernet/broadcom/genet/bcmmii.c +6 -0
index 2fbec2acb606..026f00ccaa0c 100644
@@ -25,6 +25,7 @@
 
 #include "bcmgenet.h"
 
+
 /* setup netdev link state when PHY link status change and
  * update UMAC and RGMII block when link up
  */
@@ -96,6 +97,11 @@ void bcmgenet_mii_setup(struct net_device *dev)
 			       CMD_RX_PAUSE_IGNORE | CMD_TX_PAUSE_IGNORE);
 		reg |= cmd_bits;
 		bcmgenet_umac_writel(priv, reg, UMAC_CMD);
+
+		priv->eee.eee_active = phy_init_eee(phydev, 0) >= 0;
+		bcmgenet_eee_enable_set(dev,
+					priv->eee.eee_enabled && priv->eee.eee_active,
+					priv->eee.tx_lpi_enabled);
 	} else {
 		/* done if nothing has changed */
 		if (!status_changed)
drivers/net/ethernet/cisco/enic/enic_ethtool.c +0 -1
index ebd5c2cf1efe..e799c686594e 100644
@@ -454,7 +454,6 @@ static int enic_grxclsrule(struct enic *enic, struct ethtool_rxnfc *cmd)
 		break;
 	default:
 		return -EINVAL;
-		break;
 	}
 
 	fsp->h_u.tcp_ip4_spec.ip4src = flow_get_u32_src(&n->keys);
drivers/net/ethernet/freescale/fec_main.c +2 -0
index f67f104049db..b55d6ed9aa13 100644
@@ -1795,6 +1795,7 @@ static void fec_enet_adjust_link(struct net_device *ndev)
 
 		/* if any of the above changed restart the FEC */
 		if (status_change) {
+			netif_stop_queue(ndev);
 			napi_disable(&fep->napi);
 			netif_tx_lock_bh(ndev);
 			fec_restart(ndev);
@@ -1804,6 +1805,7 @@ static void fec_enet_adjust_link(struct net_device *ndev)
 		}
 	} else {
 		if (fep->link) {
+			netif_stop_queue(ndev);
 			napi_disable(&fep->napi);
 			netif_tx_lock_bh(ndev);
 			fec_stop(ndev);
drivers/net/ethernet/intel/i40e/i40e_main.c +1 -1
index fa938281281a..f7d41ba110a7 100644
@@ -5065,7 +5065,7 @@ static int i40e_pf_wait_queues_disabled(struct i40e_pf *pf)
 {
 	int v, ret = 0;
 
-	for (v = 0; v < pf->hw.func_caps.num_vsis; v++) {
+	for (v = 0; v < pf->num_alloc_vsi; v++) {
 		if (pf->vsi[v]) {
 			ret = i40e_vsi_wait_queues_disabled(pf->vsi[v]);
 			if (ret)
drivers/net/ethernet/intel/ixgbe/ixgbe_82598.c +18 -18
index eee277c1bedf..b1788ddffcb2 100644
@@ -123,14 +123,14 @@ static s32 ixgbe_init_phy_ops_82598(struct ixgbe_hw *hw)
 		if (ret_val)
 			return ret_val;
 		if (hw->phy.sfp_type == ixgbe_sfp_type_unknown)
-			return IXGBE_ERR_SFP_NOT_SUPPORTED;
+			return -EOPNOTSUPP;
 
 		/* Check to see if SFP+ module is supported */
 		ret_val = ixgbe_get_sfp_init_sequence_offsets(hw,
 							    &list_offset,
 							    &data_offset);
 		if (ret_val)
-			return IXGBE_ERR_SFP_NOT_SUPPORTED;
+			return -EOPNOTSUPP;
 		break;
 	default:
 		break;
@@ -213,7 +213,7 @@ static s32 ixgbe_get_link_capabilities_82598(struct ixgbe_hw *hw,
 		break;
 
 	default:
-		return IXGBE_ERR_LINK_SETUP;
+		return -EIO;
 	}
 
 	return 0;
@@ -283,7 +283,7 @@ static s32 ixgbe_fc_enable_82598(struct ixgbe_hw *hw)
 
 	/* Validate the water mark configuration */
 	if (!hw->fc.pause_time)
-		return IXGBE_ERR_INVALID_LINK_SETTINGS;
+		return -EINVAL;
 
 	/* Low water mark of zero causes XOFF floods */
 	for (i = 0; i < MAX_TRAFFIC_CLASS; i++) {
@@ -292,7 +292,7 @@ static s32 ixgbe_fc_enable_82598(struct ixgbe_hw *hw)
 			if (!hw->fc.low_water[i] ||
 			    hw->fc.low_water[i] >= hw->fc.high_water[i]) {
 				hw_dbg(hw, "Invalid water mark configuration\n");
-				return IXGBE_ERR_INVALID_LINK_SETTINGS;
+				return -EINVAL;
 			}
 		}
 	}
@@ -369,7 +369,7 @@ static s32 ixgbe_fc_enable_82598(struct ixgbe_hw *hw)
 		break;
 	default:
 		hw_dbg(hw, "Flow control param set incorrectly\n");
-		return IXGBE_ERR_CONFIG;
+		return -EIO;
 	}
 
 	/* Set 802.3x based flow control settings. */
@@ -438,7 +438,7 @@ static s32 ixgbe_start_mac_link_82598(struct ixgbe_hw *hw,
 				msleep(100);
 			}
 			if (!(links_reg & IXGBE_LINKS_KX_AN_COMP)) {
-				status = IXGBE_ERR_AUTONEG_NOT_COMPLETE;
+				status = -EIO;
 				hw_dbg(hw, "Autonegotiation did not complete.\n");
 			}
 		}
@@ -478,7 +478,7 @@ static s32 ixgbe_validate_link_ready(struct ixgbe_hw *hw)
 
 	if (timeout == IXGBE_VALIDATE_LINK_READY_TIMEOUT) {
 		hw_dbg(hw, "Link was indicated but link is down\n");
-		return IXGBE_ERR_LINK_SETUP;
+		return -EIO;
 	}
 
 	return 0;
@@ -594,7 +594,7 @@ static s32 ixgbe_setup_mac_link_82598(struct ixgbe_hw *hw,
 	speed &= link_capabilities;
 
 	if (speed == IXGBE_LINK_SPEED_UNKNOWN)
-		return IXGBE_ERR_LINK_SETUP;
+		return -EINVAL;
 
 	/* Set KX4/KX support according to speed requested */
 	else if (link_mode == IXGBE_AUTOC_LMS_KX4_AN ||
@@ -701,9 +701,9 @@ static s32 ixgbe_reset_hw_82598(struct ixgbe_hw *hw)
 
 		/* Init PHY and function pointers, perform SFP setup */
 		phy_status = hw->phy.ops.init(hw);
-		if (phy_status == IXGBE_ERR_SFP_NOT_SUPPORTED)
+		if (phy_status == -EOPNOTSUPP)
 			return phy_status;
-		if (phy_status == IXGBE_ERR_SFP_NOT_PRESENT)
+		if (phy_status == -ENOENT)
 			goto mac_reset_top;
 
 		hw->phy.ops.reset(hw);
@@ -727,7 +727,7 @@ static s32 ixgbe_reset_hw_82598(struct ixgbe_hw *hw)
 		udelay(1);
 	}
 	if (ctrl & IXGBE_CTRL_RST) {
-		status = IXGBE_ERR_RESET_FAILED;
+		status = -EIO;
 		hw_dbg(hw, "Reset polling failed to complete.\n");
 	}
 
@@ -789,7 +789,7 @@ static s32 ixgbe_set_vmdq_82598(struct ixgbe_hw *hw, u32 rar, u32 vmdq)
 	/* Make sure we are using a valid rar index range */
 	if (rar >= rar_entries) {
 		hw_dbg(hw, "RAR index %d is out of range.\n", rar);
-		return IXGBE_ERR_INVALID_ARGUMENT;
+		return -EINVAL;
 	}
 
 	rar_high = IXGBE_READ_REG(hw, IXGBE_RAH(rar));
@@ -814,7 +814,7 @@ static s32 ixgbe_clear_vmdq_82598(struct ixgbe_hw *hw, u32 rar, u32 vmdq)
 	/* Make sure we are using a valid rar index range */
 	if (rar >= rar_entries) {
 		hw_dbg(hw, "RAR index %d is out of range.\n", rar);
-		return IXGBE_ERR_INVALID_ARGUMENT;
+		return -EINVAL;
 	}
 
 	rar_high = IXGBE_READ_REG(hw, IXGBE_RAH(rar));
@@ -845,7 +845,7 @@ static s32 ixgbe_set_vfta_82598(struct ixgbe_hw *hw, u32 vlan, u32 vind,
 	u32 vftabyte;
 
 	if (vlan > 4095)
-		return IXGBE_ERR_PARAM;
+		return -EINVAL;
 
 	/* Determine 32-bit word position in array */
 	regindex = (vlan >> 5) & 0x7F;   /* upper seven bits */
@@ -964,7 +964,7 @@ static s32 ixgbe_read_i2c_phy_82598(struct ixgbe_hw *hw, u8 dev_addr,
 		gssr = IXGBE_GSSR_PHY0_SM;
 
 	if (hw->mac.ops.acquire_swfw_sync(hw, gssr) != 0)
-		return IXGBE_ERR_SWFW_SYNC;
+		return -EBUSY;
 
 	if (hw->phy.type == ixgbe_phy_nl) {
 		/*
@@ -993,7 +993,7 @@ static s32 ixgbe_read_i2c_phy_82598(struct ixgbe_hw *hw, u8 dev_addr,
 
 		if (sfp_stat != IXGBE_I2C_EEPROM_STATUS_PASS) {
 			hw_dbg(hw, "EEPROM read did not pass.\n");
-			status = IXGBE_ERR_SFP_NOT_PRESENT;
+			status = -ENOENT;
 			goto out;
 		}
 
@@ -1003,7 +1003,7 @@ static s32 ixgbe_read_i2c_phy_82598(struct ixgbe_hw *hw, u8 dev_addr,
 
 		*eeprom_data = (u8)(sfp_data >> 8);
 	} else {
-		status = IXGBE_ERR_PHY;
+		status = -EIO;
 	}
 
 out:
drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c +30 -31

26 lines not on this page · raw message

drivers/net/ethernet/intel/ixgbe/ixgbe_common.c +83 -94

177 lines not on this page · raw message

drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c +1 -1
index a43cb7bfcccd..89812b34a899 100644

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

drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +20 -24

44 lines not on this page · raw message

drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.c +17 -17
index 5679293e53f7..fe7ef5773369 100644

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

drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h +0 -1
index a148534d7256..def067b15873 100644

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

drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c +53 -52

105 lines not on this page · raw message

drivers/net/ethernet/intel/ixgbe/ixgbe_phy.h +1 -1
index 6544c4539c0d..ef72729d7c93 100644

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

drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c +1 -1
index a3b129541566..843a13f219d7 100644

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

drivers/net/ethernet/intel/ixgbe/ixgbe_type.h +6 -45

51 lines not on this page · raw message

drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c +22 -23

45 lines not on this page · raw message

drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c +77 -72

149 lines not on this page · raw message

drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c +15 -11
index 2c75b2752f58..18c2abbe0b7e 100644

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

drivers/net/ethernet/mellanox/mlx5/core/steering/dr_action.c +1 -0
index b2dfa2b5366f..dccb4f6c14e7 100644

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

drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c +1 -1
index 26772c3310f0..4bfef55c3cb3 100644

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

drivers/net/ethernet/netronome/nfp/nfpcore/nfp6000_pcie.c +4 -2
index 85d46f206b3c..3334dba234fe 100644

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

drivers/net/ethernet/stmicro/stmmac/common.h +1 -0
index bc82cdf36cc3..570ec618c609 100644

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

drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h +3 -0
index 5efb9cf99b52..fc222beeee78 100644

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

drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c +57 -1

58 lines not on this page · raw message

drivers/net/fjes/fjes_hw.c +30 -7
index 8a4fbfacad7e..a4d3c7fa9ad3 100644

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

drivers/net/ppp/ppp_async.c +4 -0
index 29a0917a81e6..34c31d6da734 100644

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

drivers/net/virtio_net.c +5 -4
index f6a6678f43b9..4faf3275b1f6 100644

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

drivers/net/wan/lmc/lmc_proto.c +0 -4
index a58301dd0c1f..1c63ae9a3ba8 100644

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

drivers/net/wireless/ath/ath9k/htc_drv_txrx.c +3 -2
index ee021738bef0..be4fa41bdb12 100644

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

drivers/net/wireless/ralink/rt2x00/rt2x00dev.c +3 -0
index c3eab767bc21..f504f3529407 100644

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

drivers/net/wireless/ralink/rt2x00/rt2x00mac.c +11 -0
index beb20c5faf5f..a0fb167b58fe 100644

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

drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c +12 -0
index 2648b30aab76..0d9e31746fd2 100644

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

drivers/net/wireless/realtek/rtlwifi/rtl8723ae/phy.c +3 -3
index 54a3aec1dfa7..bc42bfc394a5 100644

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

drivers/net/wireless/realtek/rtlwifi/rtl8723be/phy.c +2 -2
index aa8a0950fcea..d753e3d15bdb 100644

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

drivers/net/xen-netback/netback.c +40 -44

84 lines not on this page · raw message

drivers/of/unittest-data/Makefile +7 -1
index 9b6807065827..009f4045c8e4 100644

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

drivers/of/unittest-data/overlay_gpio_01.dts new file +23 -0
new file mode 100644
index 000000000000..699ff104ae10

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

drivers/of/unittest-data/overlay_gpio_02a.dts new file +16 -0
new file mode 100644
index 000000000000..ec59aff6ed47

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

drivers/of/unittest-data/overlay_gpio_02b.dts new file +16 -0
new file mode 100644
index 000000000000..43ce111d41ce

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

drivers/of/unittest-data/overlay_gpio_03.dts new file +23 -0
new file mode 100644
index 000000000000..6e0312340a1b

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

drivers/of/unittest-data/overlay_gpio_04a.dts new file +16 -0
new file mode 100644
index 000000000000..7b1e04ebfa7a

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

drivers/of/unittest-data/overlay_gpio_04b.dts new file +16 -0
new file mode 100644
index 000000000000..a14e95c6699a

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

drivers/of/unittest.c +262 -3

265 lines not on this page · raw message

drivers/pci/controller/pcie-mediatek.c +8 -2
index 728a59655825..ff22bca818f3 100644

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

drivers/pci/pcie/aer.c +7 -2
index aec1748cc821..6b5c9f7916fa 100644

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

drivers/pci/quirks.c +20 -4
index cc8f2ce1e881..821e71a45849 100644

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

drivers/pci/switch/switchtec.c +17 -8
index 2c9c3061894b..0037f368f62b 100644

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

drivers/phy/renesas/phy-rcar-gen3-usb2.c +0 -4
index cfb98bba7715..ddc41db1f65a 100644

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

drivers/phy/ti/phy-omap-usb2.c +2 -2
index 471fe2e80f4e..fc2fee6d532d 100644

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

drivers/pnp/pnpacpi/rsparser.c +6 -6
index da78dc77aed3..9879deb4dc0b 100644

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

drivers/regulator/core.c +30 -26

56 lines not on this page · raw message

drivers/rpmsg/virtio_rpmsg_bus.c +1 -0
index 376ebbf880d6..755a8e6abe9e 100644

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

drivers/scsi/fcoe/fcoe_ctlr.c +8 -12
index d45e8c57051b..7ce2a0434e1e 100644

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

drivers/scsi/isci/request.c +1 -1
index 343d24c7e788..591aebb40a0f 100644

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

drivers/scsi/libfc/fc_fcp.c +12 -6
index bf2cc9656e19..5e00ee0645f2 100644

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

drivers/scsi/lpfc/lpfc.h +1 -0
index 088b764aefa4..7ce0d94cdc01 100644

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

drivers/scsi/lpfc/lpfc_init.c +2 -2
index af5238ab6309..f5e509381563 100644

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

drivers/spi/spi-bcm-qspi.c +2 -2
index 118d9161a788..b4032d1e7c98 100644

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

drivers/spi/spi-ppc4xx.c +0 -5
index 0ea2d9a369d9..738a1e4e445e 100644

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

drivers/staging/iio/impedance-analyzer/ad5933.c +1 -1
index af0bcf95ee8a..54388660021e 100644

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

drivers/tty/serial/max310x.c +16 -5
index 5bf8dd6198bb..14537878f985 100644

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

drivers/tty/serial/sc16is7xx.c +6 -2
index 42e1e6101485..892e27cddb0f 100644

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

drivers/usb/core/hub.c +21 -13
index 9a1954e9f6f1..238674fab7ce 100644

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

drivers/usb/gadget/function/f_mass_storage.c +18 -2
index 6c8aba574e6e..9fee28a35a5e 100644

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

drivers/usb/serial/cp210x.c +1 -0
index 05d93eeffccc..1724cade102e 100644

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

drivers/usb/serial/option.c +1 -0
index c632e143a813..406cfd5ad9f4 100644

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

drivers/usb/serial/qcserial.c +2 -0
index b7ba15d0ed6c..5570c50d005d 100644

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

drivers/vhost/vhost.c +2 -3
index fdfa399700fe..b2e92927e8a1 100644

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

fs/afs/dir.c +8 -0
index 43f5b972fcea..8bed9df09230 100644

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

fs/afs/server.c +4 -3
index d3a9288f7556..44985ca6602e 100644

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

fs/btrfs/extent-tree.c +2 -1
index f47316edcf42..a28b0eafb65a 100644

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

fs/btrfs/ioctl.c +9 -0
index 9f1efd5c24f1..874a441dc8b5 100644

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

fs/btrfs/qgroup.c +14 -0
index a743404dce0c..42412a4554d3 100644

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

fs/btrfs/ref-verify.c +4 -2
index bbd63535965c..d59e89ef3251 100644

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

fs/btrfs/send.c +1 -1
index 2e22da11e240..0dfa88ac0139 100644

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

fs/btrfs/tree-checker.c +1 -1
index d15de5abb562..597362eaf300 100644

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

fs/ceph/caps.c +3 -6
index 4e88cb990723..45b8f6741f8d 100644

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

fs/compat_ioctl.c +1 -2
index 8fcc53d83af2..22f7dc6688de 100644

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

fs/dcache.c +4 -3
index b2a7f1765f0b..43864a276faa 100644

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

fs/ecryptfs/inode.c +8 -0
index e23752d9a79f..c867a0d62f36 100644

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

fs/ext4/mballoc.c +18 -8
index 9e5aa625ab30..0745330228cf 100644

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

fs/ext4/move_extent.c +2 -4
index 30ce3dc69378..e71ab64f1df5 100644

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

fs/ext4/resize.c +22 -15
index 3616c437bea6..409b4ad28e71 100644

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

fs/f2fs/recovery.c +17 -6
index da123c6d3ce0..7e30326b296c 100644

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

fs/inode.c +28 -4
index f7c8c0fe11d4..a6c4c443d45a 100644

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

fs/jfs/jfs_dmap.c +31 -26

57 lines not on this page · raw message

fs/jfs/jfs_dtree.c +6 -1
index 3acc954f7c04..077a87e53020 100644

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

fs/jfs/jfs_imap.c +3 -0
index 14f918a4831d..b0965f3ef186 100644

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

fs/jfs/jfs_mount.c +3 -3
index d41733540df9..459324f3570a 100644

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

fs/kernfs/dir.c +12 -0
index d2068566c0b8..d3a602ea795b 100644

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

fs/namei.c +106 -38

144 lines not on this page · raw message

fs/nilfs2/file.c +7 -1
index 64bc81363c6c..3802b42e1cb4 100644

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

fs/nilfs2/recovery.c +4 -3
index 140b663e91c7..18feb9c7c706 100644

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

fs/nilfs2/segment.c +5 -3
index fdcbed6ee832..7d1860d33723 100644

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

fs/ocfs2/namei.c +1 -0
index cd6a21439826..ba574fade6f0 100644

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

fs/pstore/ram.c +1 -0
index 65cbc8a60ca3..9f83d8eba0e6 100644

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

fs/ubifs/dir.c +2 -0
index 88beae18e3c4..c63baff39ba9 100644

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

include/drm/drm_mipi_dsi.h +2 -0
index 3057511c88e6..46a84d6b531d 100644

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

include/linux/bpf.h +5 -1
index 5705cda3c4c4..6107b537245a 100644

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

include/linux/dmaengine.h +2 -1
index 8013562751a5..aa8bdc7473ff 100644

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

include/linux/fs.h +1 -0
index fbbd7ef7f653..d9b97ccd65e5 100644

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

include/linux/gfp.h +2 -2
index 61f2f6ff9467..c89f8456f18d 100644

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

include/linux/hrtimer.h +3 -1
index 16c68a7287bc..7bbcb64eeecf 100644

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

include/linux/lsm_hooks.h +9 -0
index a21dc5413653..0f4897e97c70 100644

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

include/linux/netfilter/ipset/ip_set.h +4 -0
index 32658749e9db..35342fb48866 100644

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

include/linux/pci_ids.h +1 -0
index fcacf2334704..d8b188643a87 100644

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

include/linux/pm_runtime.h +9 -0
index f615e217e575..3efa6ed2aaca 100644

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

include/linux/security.h +9 -0
index aa5c7141c8d1..1a99958b850b 100644

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

include/linux/spi/spi.h +1 -0
index 7067f85cef0b..ca39b33105bd 100644

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

include/linux/syscalls.h +1 -0
index f7c561c4dcdd..36d57654f178 100644

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

include/linux/units.h new file +92 -0

92 lines not on this page · raw message

include/net/af_unix.h +14 -6
index 3426d6dacc45..6cb5026cf727 100644

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

include/net/llc_pdu.h +2 -4
index 49aa79c7b278..581cd37aa98b 100644

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

include/net/netfilter/nf_tables.h +2 -2
index 0a49d44ddb84..cf314ce2fd17 100644

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

include/uapi/linux/btrfs.h +3 -0
index 72cd9f61f054..140722320698 100644

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

include/uapi/linux/netfilter/nf_tables.h +2 -0
index 6a08c03a511d..bc70d580e8d6 100644

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

kernel/audit.c +24 -7
index 805b0c9972d3..39e84d65d253 100644

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

kernel/bpf/arraymap.c +7 -5
index 1c65ce0098a9..81ed9b79f401 100644

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

kernel/bpf/hashtab.c +3 -3
index 03a67583f6fb..f1dec90f3a52 100644

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

kernel/bpf/map_in_map.c +1 -1
index fab4fb134547..7fe5a73aff07 100644

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

kernel/bpf/map_in_map.h +1 -1
index a507bf6ef8b9..d296890813cc 100644

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

kernel/events/core.c +26 -12
index 1e62a567b0d7..f18a5bbc66ef 100644

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

kernel/power/swap.c +19 -19
index bcc9769e8a3b..85949b86f097 100644

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

kernel/sched/membarrier.c +9 -0
index 46c142b69598..ca52041d5899 100644

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

kernel/time/hrtimer.c +3 -0
index e2a055e46255..1b301dd1692b 100644

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

kernel/time/tick-sched.c +5 -0
index 5f718a17a3e4..c7b9b1e4af7d 100644

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

kernel/trace/ring_buffer.c +1 -1
index 0c0ca21d807d..ed505c6de7ca 100644

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

kernel/trace/trace.c +40 -38

78 lines not on this page · raw message

kernel/trace/trace_events_trigger.c +4 -2
index 82580f7ffad9..634d120eab2b 100644

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

kernel/trace/tracing_map.c +6 -1
index 83c2a0598c64..33c463967bb3 100644

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

mm/page-writeback.c +1 -1
index 5cc892b26339..fdebfaf1873c 100644

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

net/8021q/vlan_netlink.c +4 -0
index 0db85aeb119b..99b277775257 100644

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

net/can/j1939/j1939-priv.h +1 -0
index cea712fb2a9e..9ac2a10b1826 100644

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

net/can/j1939/socket.c +18 -4
index 4c7e95982170..2e3dc74fea21 100644

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

net/core/skbuff.c +2 -1
index 2b84abd60973..82be36c87eb6 100644

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

net/ipv4/af_inet.c +4 -2
index a3f77ac173b5..e05cdc608850 100644

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

net/ipv4/ip_output.c +6 -6
index 0f70c2dbbe5b..d57d484a929f 100644

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

net/ipv4/tcp.c +1 -0
index 647cb664c2ad..53a8522adf68 100644

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

net/ipv6/addrconf_core.c +14 -7
index ea00ce3d4117..8494ee9679b4 100644

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

net/iucv/af_iucv.c +3 -11
index bbc1924d64e5..652285191da1 100644

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

net/llc/af_llc.c +18 -8
index 3b1ea89a340e..d57bfce94d60 100644

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

net/llc/llc_core.c +0 -7
index 64d4bef04e73..4900a27b5176 100644

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

net/netfilter/ipset/ip_set_bitmap_gen.h +11 -3
index bfd4b42ba305..288675ce22d0 100644

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

net/netfilter/ipset/ip_set_core.c +30 -9
index d4feda487e5e..544106475d4f 100644

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

net/netfilter/ipset/ip_set_hash_gen.h +14 -5
index 1b44dfa7ba85..4346cae25a4a 100644

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

net/netfilter/ipset/ip_set_list_set.c +10 -3
index 63908123f7ba..64cc3e2131f3 100644

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

net/netfilter/nf_log.c +4 -3
index bb25d4c794c7..e25dbeb220b4 100644

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

net/netfilter/nf_tables_api.c +10 -10
index 534126f3687b..6c83d3e169c9 100644

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

net/netfilter/nft_byteorder.c +3 -2
index 7b0b8fecb220..9d250bd60bb8 100644

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

net/netfilter/nft_compat.c +21 -2
index 1c975e1d3fea..2372f0bbb133 100644

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

net/netfilter/nft_ct.c +27 -0
index 7e269f7378cc..161c4fd715fa 100644

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

net/netfilter/nft_flow_offload.c +5 -0
index ca5d55a1d7d9..850d4e92702e 100644

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

net/netfilter/nft_meta.c +1 -1
index ec2798ff822e..ac7d3c78501b 100644

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

net/netfilter/nft_nat.c +5 -0
index 50fbd3c1d9f1..69fcea16218b 100644

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

net/netfilter/nft_rt.c +5 -0
index bcd01a63e38f..f4a96164a5a1 100644

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

net/netfilter/nft_set_rbtree.c +3 -4
index d9c436fa91b5..2b5f65a424b7 100644

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

net/netfilter/nft_socket.c +5 -0
index 7e4f7063f481..c7b78e4ef459 100644

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

net/netfilter/nft_synproxy.c +5 -2
index 15abb0e49603..2e026f903a4c 100644

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

net/netfilter/nft_tproxy.c +5 -0
index db780b5985ab..d9604a316600 100644

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

net/netfilter/nft_xfrm.c +5 -0
index cbbbc4ecad3a..7f762fc42891 100644

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

net/netlink/af_netlink.c +1 -1
index 3cb27a27b420..bd9b3cd25a76 100644

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

net/nfc/nci/core.c +4 -0
index 54b9efb5ae82..cb2193dec712 100644

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

net/rds/af_rds.c +1 -1
index 1a5bf3fa4578..af22f47c8612 100644

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

net/rxrpc/conn_event.c +8 -0
index b5864683f200..49669055ee9d 100644

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

net/rxrpc/conn_service.c +2 -1
index 21da48e3d2e5..7ad4b4e9341e 100644

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

net/smc/smc_diag.c +1 -1
index da9ba6d1679b..3d8f551cec30 100644

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

net/sunrpc/xprtmultipath.c +15 -2
index 78c075a68c04..a11e80d17830 100644

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

net/tipc/bearer.c +6 -0
index ca26c41396f7..a0bc919e4e47 100644

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

net/unix/af_unix.c +6 -8
index 304eb26b34dc..9b1dd845bca1 100644

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

net/unix/diag.c +1 -1
index 951b33fa8f5c..2975e7a061d0 100644

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

net/wireless/scan.c +4 -0
index e35c54ba2fd5..a1c53d4b6711 100644

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

scripts/link-vmlinux.sh +7 -2
index 8b6325c2dfc5..f25f102abbc7 100755

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

security/security.c +17 -0
index 460c3826f640..6c06296548c2 100644

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

security/selinux/hooks.c +28 -0
index c1bf319b459a..6fec9fba41a8 100644

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

security/smack/smack_lsm.c +1 -0
index 9e48c8b36b67..6f2613f874fa 100644

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

security/tomoyo/tomoyo.c +1 -0
index 716c92ec941a..0176612bac96 100644

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

sound/pci/hda/hda_intel.c +2 -0
index 0bf2e2656721..cc9b8b6595c8 100644

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

sound/pci/hda/patch_conexant.c +18 -0
index 767872f7ec64..ba70e053c3a2 100644

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

sound/pci/hda/patch_realtek.c +1 -0
index 36293836a48c..d8ee1b1ee7e3 100644

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

sound/soc/codecs/rt5645.c +1 -0
index c9512e97c12e..88093e58dd84 100644

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

tools/lib/subcmd/help.c +14 -4
index 2859f107abc8..4260c8b4257b 100644

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

tools/testing/selftests/bpf/progs/pyperf180.c +22 -0
index c39f559d3100..42c4a8b62e36 100644

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

tools/testing/selftests/bpf/test_btf.c +1 -0
index f641eb292a88..a821ff121e03 100644

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

tools/testing/selftests/net/pmtu.sh +13 -5
index 88be9083b923..a4dc32729749 100755

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

virt/kvm/arm/vgic/vgic-its.c +5 -0
index e06bb8ed7688..0533881bd2ab 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.