Skip to contentSkip to conversation

Linux 6.1.79

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 6.1.79 kernel.

All users of the 6.1 kernel series must upgrade.

The updated 6.1.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.1.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-statistics              |   48 +-
 Documentation/arm64/silicon-errata.rst                            |    7 
 Documentation/devicetree/bindings/net/wireless/marvell-8xxx.txt   |    4 
 Makefile                                                          |    8 
 arch/Kconfig                                                      |    1 
 arch/arc/include/asm/jump_label.h                                 |    4 
 arch/arm/boot/dts/imx6q-apalis-ixora-v1.2.dts                     |    2 
 arch/arm/include/asm/jump_label.h                                 |    4 
 arch/arm64/boot/dts/qcom/apq8016-sbc.dts                          |    4 
 arch/arm64/boot/dts/qcom/msm8916.dtsi                             |    2 
 arch/arm64/boot/dts/qcom/sdm845.dtsi                              |    4 
 arch/arm64/boot/dts/qcom/sm8150.dtsi                              |    4 
 arch/arm64/include/asm/alternative-macros.h                       |    4 
 arch/arm64/include/asm/cputype.h                                  |    4 
 arch/arm64/include/asm/jump_label.h                               |    4 
 arch/arm64/kernel/cpu_errata.c                                    |    3 
 arch/arm64/kernel/vdso32/Makefile                                 |    2 
 arch/csky/include/asm/jump_label.h                                |    4 
 arch/mips/include/asm/checksum.h                                  |    3 
 arch/mips/include/asm/jump_label.h                                |    4 
 arch/parisc/Kconfig                                               |    1 
 arch/parisc/include/asm/assembly.h                                |    1 
 arch/parisc/include/asm/extable.h                                 |   64 ++
 arch/parisc/include/asm/jump_label.h                              |    4 
 arch/parisc/include/asm/special_insns.h                           |    6 
 arch/parisc/include/asm/uaccess.h                                 |   48 --
 arch/parisc/kernel/drivers.c                                      |    3 
 arch/parisc/kernel/unaligned.c                                    |   44 -
 arch/parisc/mm/fault.c                                            |   11 
 arch/powerpc/include/asm/bug.h                                    |    2 
 arch/powerpc/include/asm/jump_label.h                             |    4 
 arch/powerpc/include/asm/thread_info.h                            |    2 
 arch/powerpc/include/asm/uaccess.h                                |    8 
 arch/powerpc/kernel/cpu_specs_e500mc.h                            |    3 
 arch/powerpc/kernel/interrupt_64.S                                |    4 
 arch/powerpc/kernel/irq_64.c                                      |    2 
 arch/powerpc/mm/kasan/init_32.c                                   |    1 
 arch/powerpc/platforms/pseries/lpar.c                             |    8 
 arch/riscv/include/asm/jump_label.h                               |    4 
 arch/s390/include/asm/jump_label.h                                |    4 
 arch/sparc/include/asm/jump_label.h                               |    4 
 arch/um/Makefile                                                  |    4 
 arch/um/include/asm/cpufeature.h                                  |    2 
 arch/x86/Kconfig.cpu                                              |    2 
 arch/x86/include/asm/cpufeature.h                                 |    2 
 arch/x86/include/asm/jump_label.h                                 |    6 
 arch/x86/include/asm/rmwcc.h                                      |    2 
 arch/x86/include/asm/uaccess.h                                    |   10 
 arch/x86/include/asm/virtext.h                                    |   12 
 arch/x86/kernel/fpu/signal.c                                      |   13 
 arch/x86/kvm/svm/svm_ops.h                                        |    6 
 arch/x86/kvm/vmx/pmu_intel.c                                      |    2 
 arch/x86/kvm/vmx/vmx.c                                            |    8 
 arch/x86/kvm/vmx/vmx_ops.h                                        |    6 
 arch/x86/mm/ident_map.c                                           |   23 -
 arch/xtensa/include/asm/jump_label.h                              |    4 
 block/blk-mq.c                                                    |    9 
 drivers/android/binder.c                                          |   10 
 drivers/base/core.c                                               |   15 
 drivers/base/power/domain.c                                       |    2 
 drivers/bus/moxtet.c                                              |    7 
 drivers/crypto/ccp/sev-dev.c                                      |   10 
 drivers/dma/ioat/dma.c                                            |   12 
 drivers/firewire/core-device.c                                    |    7 
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c                        |    1 
 drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c                           |    9 
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c                 |    2 
 drivers/gpu/drm/amd/display/dc/dml/Makefile                       |    6 
 drivers/gpu/drm/drm_prime.c                                       |    2 
 drivers/gpu/drm/msm/msm_iommu.c                                   |   32 +
 drivers/gpu/drm/nouveau/nouveau_svm.c                             |    2 
 drivers/gpu/drm/virtio/virtgpu_drv.c                              |    1 
 drivers/hid/i2c-hid/i2c-hid-of.c                                  |    1 
 drivers/hid/wacom_sys.c                                           |   63 +-
 drivers/hid/wacom_wac.c                                           |    9 
 drivers/i2c/busses/Makefile                                       |    6 
 drivers/i2c/busses/i2c-i801.c                                     |    4 
 drivers/i2c/busses/i2c-pasemi-core.c                              |    5 
 drivers/i2c/busses/i2c-qcom-geni.c                                |   14 
 drivers/iio/accel/Kconfig                                         |    2 
 drivers/iio/imu/bno055/Kconfig                                    |    1 
 drivers/iio/industrialio-core.c                                   |    5 
 drivers/iio/light/hid-sensor-als.c                                |    1 
 drivers/iio/magnetometer/rm3100-core.c                            |   10 
 drivers/infiniband/hw/irdma/verbs.c                               |    7 
 drivers/interconnect/qcom/sc8180x.c                               |    1 
 drivers/irqchip/irq-brcmstb-l2.c                                  |    5 
 drivers/irqchip/irq-gic-v3-its.c                                  |   22 
 drivers/irqchip/irq-loongson-eiointc.c                            |    2 
 drivers/md/dm-core.h                                              |    2 
 drivers/md/dm-crypt.c                                             |   37 -
 drivers/md/dm-ioctl.c                                             |    3 
 drivers/md/dm-table.c                                             |    9 
 drivers/md/dm-verity-target.c                                     |   26 -
 drivers/md/dm-verity.h                                            |    1 
 drivers/md/md.c                                                   |    7 
 drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c               |    2 
 drivers/media/rc/bpf-lirc.c                                       |    6 
 drivers/media/rc/ir_toy.c                                         |    2 
 drivers/media/rc/lirc_dev.c                                       |    5 
 drivers/media/rc/rc-core-priv.h                                   |    2 
 drivers/misc/fastrpc.c                                            |    2 
 drivers/mmc/core/slot-gpio.c                                      |    6 
 drivers/mmc/host/sdhci-pci-o2micro.c                              |   30 +
 drivers/net/can/dev/netlink.c                                     |    2 
 drivers/net/ethernet/intel/i40e/i40e_main.c                       |    2 
 drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c                |   38 +
 drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c           |    2 
 drivers/net/ethernet/microchip/lan966x/lan966x_lag.c              |    9 
 drivers/net/ethernet/netronome/nfp/flower/conntrack.c             |   24 -
 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/stmmac_main.c                 |    3 
 drivers/net/ethernet/ti/cpsw.c                                    |    2 
 drivers/net/ethernet/ti/cpsw_new.c                                |    3 
 drivers/net/hyperv/netvsc.c                                       |    5 
 drivers/net/hyperv/netvsc_drv.c                                   |   82 ++-
 drivers/net/wireless/intel/iwlwifi/fw/acpi.c                      |   15 
 drivers/net/wireless/marvell/mwifiex/Kconfig                      |    5 
 drivers/net/wireless/marvell/mwifiex/sdio.c                       |   46 +-
 drivers/net/wireless/marvell/mwifiex/sdio.h                       |    3 
 drivers/net/xen-netback/netback.c                                 |   84 +--
 drivers/of/property.c                                             |   18 
 drivers/of/unittest.c                                             |   12 
 drivers/s390/net/qeth_l3_main.c                                   |    9 
 drivers/scsi/fcoe/fcoe_ctlr.c                                     |   20 
 drivers/scsi/storvsc_drv.c                                        |   12 
 drivers/spi/spi-ppc4xx.c                                          |    5 
 drivers/staging/iio/impedance-analyzer/ad5933.c                   |    2 
 drivers/tty/serial/max310x.c                                      |   53 +-
 drivers/usb/common/ulpi.c                                         |    2 
 drivers/usb/core/hub.c                                            |   30 -
 drivers/usb/dwc3/gadget.c                                         |    6 
 drivers/usb/gadget/function/f_mass_storage.c                      |   20 
 drivers/usb/typec/ucsi/ucsi.c                                     |    2 
 drivers/usb/typec/ucsi/ucsi_acpi.c                                |   17 
 fs/btrfs/block-group.c                                            |   49 ++
 fs/btrfs/block-group.h                                            |    7 
 fs/btrfs/delalloc-space.c                                         |   29 -
 fs/btrfs/disk-io.c                                                |   13 
 fs/btrfs/inode.c                                                  |   26 +
 fs/btrfs/ioctl.c                                                  |    5 
 fs/btrfs/qgroup.c                                                 |   14 
 fs/btrfs/send.c                                                   |    2 
 fs/ceph/caps.c                                                    |    3 
 fs/ext4/mballoc.c                                                 |   39 -
 fs/ext4/move_extent.c                                             |    6 
 fs/hugetlbfs/inode.c                                              |   19 
 fs/namespace.c                                                    |   11 
 fs/nfsd/nfs4state.c                                               |   37 -
 fs/nilfs2/dat.c                                                   |   27 -
 fs/nilfs2/file.c                                                  |    8 
 fs/nilfs2/recovery.c                                              |    7 
 fs/nilfs2/segment.c                                               |    8 
 fs/ntfs3/fsntfs.c                                                 |   16 
 fs/ntfs3/index.c                                                  |    3 
 fs/proc/array.c                                                   |   10 
 fs/smb/client/cached_dir.c                                        |    8 
 fs/smb/client/smb2ops.c                                           |    2 
 fs/smb/client/smb2pdu.c                                           |   93 ++--
 fs/smb/client/smb2proto.h                                         |   12 
 fs/smb/server/smb2pdu.c                                           |    8 
 fs/zonefs/file.c                                                  |   42 +
 fs/zonefs/super.c                                                 |   66 +-
 include/asm-generic/vmlinux.lds.h                                 |    6 
 include/linux/bpf.h                                               |   12 
 include/linux/cleanup.h                                           |  171 +++++++
 include/linux/compiler-clang.h                                    |    9 
 include/linux/compiler-gcc.h                                      |   20 
 include/linux/compiler_attributes.h                               |    6 
 include/linux/compiler_types.h                                    |   11 
 include/linux/device.h                                            |    7 
 include/linux/file.h                                              |    6 
 include/linux/iio/adc/ad_sigma_delta.h                            |    4 
 include/linux/iio/common/st_sensors.h                             |    4 
 include/linux/iio/imu/adis.h                                      |    3 
 include/linux/init.h                                              |    3 
 include/linux/irqflags.h                                          |    7 
 include/linux/mmc/sdio_ids.h                                      |    1 
 include/linux/mutex.h                                             |    4 
 include/linux/netfilter/ipset/ip_set.h                            |    4 
 include/linux/percpu.h                                            |    4 
 include/linux/preempt.h                                           |    5 
 include/linux/rcupdate.h                                          |    3 
 include/linux/rwsem.h                                             |    8 
 include/linux/sched/task.h                                        |    2 
 include/linux/slab.h                                              |    3 
 include/linux/spinlock.h                                          |   31 +
 include/linux/srcu.h                                              |    5 
 include/net/tls.h                                                 |    5 
 init/Kconfig                                                      |    9 
 io_uring/net.c                                                    |    5 
 kernel/bpf/helpers.c                                              |   67 +-
 kernel/bpf/verifier.c                                             |    3 
 kernel/sched/membarrier.c                                         |    6 
 kernel/time/hrtimer.c                                             |   14 
 kernel/trace/bpf_trace.c                                          |   56 +-
 kernel/trace/ring_buffer.c                                        |    2 
 kernel/trace/trace.c                                              |   78 +--
 kernel/trace/trace_events_trigger.c                               |    6 
 lib/mpi/ec.c                                                      |    3 
 mm/page-writeback.c                                               |    2 
 mm/userfaultfd.c                                                  |   15 
 net/can/j1939/j1939-priv.h                                        |    3 
 net/can/j1939/main.c                                              |    2 
 net/can/j1939/socket.c                                            |   46 +-
 net/core/skbuff.c                                                 |    3 
 net/hsr/hsr_device.c                                              |    4 
 net/mac80211/tx.c                                                 |    5 
 net/mptcp/pm_userspace.c                                          |   13 
 net/mptcp/protocol.c                                              |   24 -
 net/mptcp/protocol.h                                              |    4 
 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/nft_set_pipapo_avx2.c                               |    2 
 net/nfc/nci/core.c                                                |    4 
 net/openvswitch/flow_netlink.c                                    |   49 +-
 net/tls/tls.h                                                     |    1 
 net/tls/tls_main.c                                                |    2 
 net/tls/tls_sw.c                                                  |  226 ++++++----
 net/wireless/core.c                                               |    1 
 net/xfrm/xfrm_input.c                                             |   77 +--
 net/xfrm/xfrm_output.c                                            |   33 -
 samples/bpf/asm_goto_workaround.h                                 |    8 
 scripts/Makefile.modpost                                          |    1 
 scripts/checkpatch.pl                                             |    2 
 scripts/link-vmlinux.sh                                           |    9 
 scripts/mod/modpost.c                                             |   43 +
 scripts/mod/sumversion.c                                          |    7 
 security/apparmor/include/lib.h                                   |    6 
 security/security.c                                               |   14 
 sound/pci/hda/patch_conexant.c                                    |   18 
 sound/pci/hda/patch_cs8409.c                                      |    1 
 sound/pci/hda/patch_realtek.c                                     |   11 
 sound/soc/amd/yc/acp6x-mach.c                                     |   14 
 sound/soc/codecs/rt5645.c                                         |    1 
 sound/soc/codecs/wcd938x.c                                        |    2 
 tools/arch/x86/include/asm/rmwcc.h                                |    2 
 tools/include/linux/compiler_types.h                              |    4 
 tools/testing/selftests/drivers/net/mlxsw/spectrum-2/tc_flower.sh |   56 ++
 tools/testing/selftests/kvm/dirty_log_test.c                      |   77 +--
 tools/testing/selftests/net/mptcp/config                          |    3 
 tools/testing/selftests/net/mptcp/settings                        |    2 
 tools/testing/selftests/vm/ksm_tests.c                            |    2 
 tools/testing/selftests/vm/va_128TBswitch.sh                      |    6 
 tools/tracing/rtla/Makefile                                       |    7 
 tools/tracing/rtla/src/osnoise_hist.c                             |    9 
 tools/tracing/rtla/src/osnoise_top.c                              |    6 
 tools/tracing/rtla/src/timerlat_hist.c                            |    9 
 tools/tracing/rtla/src/timerlat_top.c                             |    6 
 tools/tracing/rtla/src/utils.c                                    |   12 
 tools/tracing/rtla/src/utils.h                                    |    2 
 254 files changed, 2393 insertions(+), 1127 deletions(-)

Aaron Conole (1):
net: openvswitch: limit the number of recursions from action sets

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

Alexander Stein (1):
mmc: slot-gpio: Allow non-sleeping GPIO ro

Alexandra Winter (1):
s390/qeth: Fix potential loss of L3-IP@ in case of network issues

Alexey Khoroshilov (1):

      ASoC: rt5645: Fix deadlock in rt5645_jack_detect_work()

Andrei Vagin (1):
x86/fpu: Stop relying on userspace for info to fault in xsave buffer

Andrejs Cainikovs (1):
ARM: dts: imx6q-apalis: add can power-up delay on ixora board

Andy Chi (1):
ALSA: hda/realtek: fix mute/micmute LEDs for HP ZBook Power

Arnd Bergmann (2):
nouveau/svm: fix kvcalloc() argument order
i2c: pasemi: split driver into two separate modules

Audra Mitchell (1):
selftests/mm: Update va_high_addr_switch.sh to check CPU for la57 flag

Baokun Li (2):
ext4: fix double-free of blocks due to wrong extents moved_len
ext4: avoid bb_free and bb_fragments inconsistency in mb_free_blocks()

Bibo Mao (1):
irqchip/loongson-eiointc: Use correct struct type in eiointc_domain_alloc()

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 for statistics

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

Christian A. Ehrhardt (3):
of: unittest: Fix compile in the non-dynamic case
usb: ucsi: Add missing ppm_lock
usb: ucsi_acpi: Fix command completion handling

Christian Brauner (1):
fs: relax mount_setattr() permission checks

Damien Le Moal (2):
zonefs: Improve error handling
block: fix partial zone append completion handling in req_bio_endio()

Dan Carpenter (3):
wifi: iwlwifi: Fix some error codes
wifi: iwlwifi: uninitialized variable in iwl_acpi_get_ppag_table()
cifs: fix underflow in parse_server_interfaces()

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

Daniel Bristot de Oliveira (3):
tools/rtla: Remove unused sched_getattr() function tools/rtla: Fix uninitialized bucket/data->bucket_size warning tools/rtla: Fix Makefile compiler options for clang

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

David Engraf (1):
powerpc/cputable: Add missing PPC_FEATURE_BOOKE on PPC64 Book-E

David Howells (1):
tls/sw: Use splice_eof() to flush

David Lin (2):
wifi: mwifiex: add extra delay for firmware ready
wifi: mwifiex: fix uninitialized firmware_stat

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

David Senoner (1):
ALSA: hda/realtek: Fix the external mic not being recognised for Acer Swift 1 SF114-32

David Sterba (1):
btrfs: send: return EOPNOTSUPP on unknown flags

Davidlohr Bueso (1):
hrtimer: Ignore slack time for RT tasks in schedule_hrtimeout_range()

Dinghao Liu (1):
iio: core: fix memleak in iio_device_register_sysfs

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

Easwar Hariharan (1):
arm64: Subscribe Microsoft Azure Cobalt 100 to ARM Neoverse N2 errata

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

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

Eniac Zhang (1):
ALSA: hda/realtek: fix mute/micmute LED For HP mt645

Eric Dumazet (1):
net: prevent mss overflow in skb_segment()

Esben Haabendal (1):
net: stmmac: do not clear TBS enable bit on link up/down

Fedor Pchelkin (2):
nfc: nci: free rx_data_reassembly skb on NCI device cleanup
ksmbd: free aux buffer if ksmbd_iov_pin_rsp_read fails

Filipe Manana (4):
btrfs: add and use helper to check if block group is used
btrfs: do not delete unused block group if it may be used soon
btrfs: don't reserve space for checksums when writing to nocow files
btrfs: reject encoded write if inode has nodatasum flag set

Fred Ai (1):
mmc: sdhci-pci-o2micro: Fix a warm reboot issue that disk can't be detected by BIOS

Gavin Shan (1):
KVM: selftests: Clear dirty ring states between two modes in dirty_log_test

Geliang Tang (1):
mptcp: check addrs list in userspace_pm_get_local_id

Greg Kroah-Hartman (1):

      Linux 6.1.79

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

Helge Deller (2):
parisc: Prevent hung tasks when printing inventory on serial console
parisc: Fix random data corruption from exception handler

Herbert Xu (4):
xfrm: Remove inner/outer modes from output path
xfrm: Remove inner/outer modes from input path
xfrm: Use xfrm_state selector for BEET input
xfrm: Silence warnings triggerable by bad packets

Horatiu Vultur (1):
lan966x: Fix crash when adding interface under a lag

Hugo Villeneuve (4):

      serial: max310x: set default value when reading clock ready bit
      serial: max310x: improve crystal stable clock detection
      serial: max310x: fail probe if clock crystal is unstable
      serial: max310x: prevent infinite while() loop in port startup

Hui Zhou (1):
nfp: flower: fix hardware offload for the transfer layer port

Ido Schimmel (1):
mlxsw: spectrum_acl_tcam: Fix stack corruption

Ivan Vecera (2):
i40e: Do not allow untrusted VF to remove administratively set MAC
i40e: Fix waiting for queues of all VSIs to be disabled

Jakub Kicinski (3):
net: tls: factor out tls_*crypt_async_wait()
tls: fix race between async notify and socket close
net: tls: fix returned read length with async decrypt

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

Jann Horn (1):
tls: fix NULL deref on tls_sw_splice_eof() with empty record

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

Jens Axboe (1):
io_uring/net: fix multishot accept overflow handling

Jiangfeng Xiao (1):
powerpc/kasan: Fix addr error caused by page alignment

Jiri Olsa (3):
bpf: Add struct for bin_args arg in bpf_bprintf_prepare
bpf: Do cleanup in bpf_bprintf_cleanup only when needed
bpf: Remove trace_printk_lock

Johan Hovold (3):
HID: i2c-hid-of: fix NULL-deref on failed power up
arm64: dts: qcom: sdm845: fix USB SS wakeup
arm64: dts: qcom: sm8150: fix USB SS wakeup

Johannes Berg (2):
wifi: cfg80211: fix wiphy delayed work queueing
wifi: mac80211: reload info pointer in ieee80211_tx_dequeue()

John Kacur (1):
tools/rtla: Exit with EXIT_SUCCESS when help is invoked

Josef Bacik (1):
btrfs: don't drop extent_map for free space inode on write error

José Relvas (1):
ALSA: hda/realtek: Apply headset jack quirk for non-bass alc287 thinkpads

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

Junxiao Bi (1):
md: bypass block throttle for superblock update

Kim Phillips (1):
crypto: ccp - Fix null pointer dereference in __sev_platform_shutdown_locked

Konrad Dybcio (2):
interconnect: qcom: sc8180x: Mark CO0 BCM keepalive
pmdomain: core: Move the unused cleanup to a _sync initcall

Konstantin Komarov (1):
fs/ntfs3: Add null pointer checks

Krzysztof Kozlowski (1):
ASoC: codecs: wcd938x: handle deferred probe

Lee Duncan (1):

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

Linus Torvalds (3):
work around gcc bugs with 'asm goto' with outputs update workarounds for gcc "asm goto" issue sched/membarrier: reduce the ability to hammer on sys_membarrier

Lokesh Gidra (1):
userfaultfd: fix mmap_changing checking in mfill_atomic_hugetlb

Luka Guzenko (1):

      ALSA: hda/realtek: Enable Mute LED on HP Laptop 14-fq0xxx

Lukas Wunner (1):
wifi: mwifiex: Support SD8978 chipset

Marc Zyngier (1):
irqchip/gic-v3-its: Fix GICv4.1 VPE affinity update

Mario Limonciello (3):
Revert "drm/amd: flush any delayed gfxoff on suspend entry"
iio: accel: bma400: Fix a compilation problem
ASoC: amd: yc: Add DMI quirk for Lenovo Ideapad Pro 5 16ARP8

Masahiro Yamada (2):
modpost: propagate W=1 build option to modpost linux/init: remove __memexit* annotations

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

Matthieu Baerts (NGI0) (4):
selftests: mptcp: add missing kconfig for NF Filter
selftests: mptcp: add missing kconfig for NF Filter in v6
selftests: mptcp: add missing kconfig for NF Mangle
selftests: mptcp: increase timeout to 30 min

Maxime Jayat (1):
can: netlink: Fix TDCO calculation using the old data bittiming

Michael Ellerman (1):
powerpc/kasan: Limit KASAN thread size increase to 32KB

Michael Kelley (1):
scsi: storvsc: Fix ring buffer size calculation

Mike Marciniszyn (1):
RDMA/irdma: Ensure iWarp QP queue memory is OS paged aligned

Mikulas Patocka (2):
dm-crypt, dm-verity: disable tasklets
dm: limit the number of targets and parameter size area

Mingwei Zhang (1):

      KVM: x86/pmu: Fix type length error when reading pmu->fixed_ctr_ctrl

Nathan Chancellor (5):
kbuild: Fix changing ELF file type for output of gen_btf for big endian
modpost: Include '.text.*' in TEXT_SECTIONS
um: Fix adding '-no-pie' for clang
modpost: Add '.ltext' and '.ltext.*' to TEXT_SECTIONS drm/amd/display: Increase frame-larger-than for all display_mode_vba files

Naveen N Rao (1):

      powerpc/64: Set task pt_regs->link to the LR value on scv entry

NeilBrown (2):
nfsd: fix RELEASE_LOCKOWNER
nfsd: don't take fi_lock in nfsd_break_deleg_cb()

Nikita Zhandarovich (1):
net: hsr: remove WARN_ONCE() in send_hsr_supervision_frame()

Nuno Sa (4):
iio: commom: st_sensors: ensure proper DMA alignment
iio: adc: ad_sigma_delta: ensure proper DMA alignment
iio: imu: adis: ensure proper DMA alignment
of: property: fix typo in io-channels

Oleg Nesterov (1):
fs/proc: do_task_stat: move thread_group_cputime_adjusted() outside of lock_task_sighand()

Oleksij Rempel (1):

      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

Ondrej Mosnacek (1):
lsm: fix the logic in security_inode_getsecctx()

Oscar Salvador (1):
fs,hugetlb: fix NULL pointer dereference in hugetlbs_fill_super

Paolo Abeni (3):
mptcp: get rid of msk->subflow
mptcp: fix data re-injection from stale subflow
mptcp: drop the push_pending field

Paulo Alcantara (2):
smb: client: fix potential OOBs in smb2_parse_contexts()
smb: client: fix parsing of SMB3.1.1 POSIX create context

Peter Zijlstra (4):
dmaengine: ioat: Free up __cleanup() name
apparmor: Free up __cleanup() name
locking: Introduce __cleanup() based infrastructure
kbuild: Drop -Wdeclaration-after-statement

Philip Yang (1):
drm/prime: Support page array >= 4GB

Prakash Sangappa (1):
mm: hugetlb pages should not be reserved by shmat() if SHM_NORESERVE

Qu Wenruo (1):
btrfs: do not ASSERT() if the newly created subvolume already got read

Radek Krejci (1):
modpost: trim leading spaces when processing source files list

Randy Dunlap (1):
iio: imu: bno055: serdev requires REGMAP

Rishabh Dave (1):
ceph: prevent use-after-free in encode_cap_msg()

Rob Clark (1):
drm/msm: Wire up tlb ops

Ryan Roberts (1):
selftests/mm: ksm_tests should only MADV_HUGEPAGE valid memory

Ryusuke Konishi (4):
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
nilfs2: replace WARN_ONs for invalid DAT metadata block requests

Sabrina Dubroca (2):
tls: extract context alloc/initialization out of tls_set_sw_offload
net: tls: fix use-after-free with partial reads and async decrypt

Samuel Holland (1):
scs: add CONFIG_MMU dependency for vfree_atomic()

Saravana Kannan (4):
driver core: Fix device_link_flag_is_sync_state_only()
of: property: Improve finding the supplier of a remote-endpoint property driver core: fw_devlink: Improve detection of overlapping cycles
of: property: Add in-ports/out-ports support to of_graph_get_port_parent()

Sean Anderson (1):
usb: ulpi: Fix debugfs directory leak

Sean Christopherson (1):
KVM: selftests: Fix a semaphore imbalance in the dirty ring logging test

Sean Young (1):
media: rc: bpf attach/detach requires write permission

Sebastian Ott (1):
drm/virtio: Set segment size for virtio_gpu device

Shradha Gupta (1):
hv_netvsc: Register VF in netvsc_probe if NET_DEVICE_REGISTER missed

Shrikanth Hegde (1):
powerpc/pseries: fix accuracy of stolen time

Sinthu Raja (2):
net: ethernet: ti: cpsw: enable mac_managed_pm to fix mdio
net: ethernet: ti: cpsw_new: enable mac_managed_pm to fix mdio

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

Souradeep Chakrabarti (1):
hv_netvsc: Fix race condition between netvsc_probe and netvsc_remove

Srinivas Pandruvada (1):
iio: hid-sensor-als: Return 0 for HID_USAGE_SENSOR_TIME_TIMESTAMP

Stephan Gerhold (2):
arm64: dts: qcom: msm8916: Enable blsp_dma by default
arm64: dts: qcom: msm8916: Make blsp_dma controlled-remotely

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

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

Techno Mooney (1):
ASoC: amd: yc: Add DMI quirk for MSI Bravo 15 C7VF

Tianjia Zhang (1):
crypto: lib/mpi - Fix unexpected pointer access in mpi_ec_init

Tom Chung (1):
drm/amd/display: Preserve original aspect ratio in create stream

Tomi Valkeinen (1):
media: Revert "media: rkisp1: Drop IRQF_SHARED"

Uttkarsh Aggarwal (1):
usb: dwc3: gadget: Fix NULL pointer dereference in dwc3_gadget_suspend

Uwe Kleine-König (2):
spi: ppc4xx: Drop write-only variable
modpost: Don't let "driver"s reference .exit.*

Viken Dadhaniya (1):
i2c: qcom-geni: Correct I2C TRE sequence

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

Vitaly Rodionov (1):
ALSA: hda/cs8409: Suppress vmaster control for Dolphin models

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

Zhipeng Lu (1):
media: ir_toy: fix a memleak in irtoy_tx

Ziqi Zhao (1):
can: j1939: prevent deadlock by changing j1939_socks_lock to rwlock

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

limingming3 (1):
tools/rtla: Replace setting prio with nice for SCHED_OTHER

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-statistics +24 -24
index 55db27815361..53e508c6936a 100644
@@ -1,4 +1,4 @@
-What:		/sys/class/<iface>/statistics/collisions
+What:		/sys/class/net/<iface>/statistics/collisions
 Date:		April 2005
 KernelVersion:	2.6.12
 Contact:	[email protected]
@@ -6,7 +6,7 @@ Description:
 		Indicates the number of collisions seen by this network device.
 		This value might not be relevant with all MAC layers.
 
-What:		/sys/class/<iface>/statistics/multicast
+What:		/sys/class/net/<iface>/statistics/multicast
 Date:		April 2005
 KernelVersion:	2.6.12
 Contact:	[email protected]
@@ -14,7 +14,7 @@ Description:
 		Indicates the number of multicast packets received by this
 		network device.
 
-What:		/sys/class/<iface>/statistics/rx_bytes
+What:		/sys/class/net/<iface>/statistics/rx_bytes
 Date:		April 2005
 KernelVersion:	2.6.12
 Contact:	[email protected]
@@ -23,7 +23,7 @@ Description:
 		See the network driver for the exact meaning of when this
 		value is incremented.
 
-What:		/sys/class/<iface>/statistics/rx_compressed
+What:		/sys/class/net/<iface>/statistics/rx_compressed
 Date:		April 2005
 KernelVersion:	2.6.12
 Contact:	[email protected]
@@ -32,7 +32,7 @@ Description:
 		network device. This value might only be relevant for interfaces
 		that support packet compression (e.g: PPP).
 
-What:		/sys/class/<iface>/statistics/rx_crc_errors
+What:		/sys/class/net/<iface>/statistics/rx_crc_errors
 Date:		April 2005
 KernelVersion:	2.6.12
 Contact:	[email protected]
@@ -41,7 +41,7 @@ Description:
 		by this network device. Note that the specific meaning might
 		depend on the MAC layer used by the interface.
 
-What:		/sys/class/<iface>/statistics/rx_dropped
+What:		/sys/class/net/<iface>/statistics/rx_dropped
 Date:		April 2005
 KernelVersion:	2.6.12
 Contact:	[email protected]
@@ -51,7 +51,7 @@ Description:
 		packet processing. See the network driver for the exact
 		meaning of this value.
 
-What:		/sys/class/<iface>/statistics/rx_errors
+What:		/sys/class/net/<iface>/statistics/rx_errors
 Date:		April 2005
 KernelVersion:	2.6.12
 Contact:	[email protected]
@@ -59,7 +59,7 @@ Description:
 		Indicates the number of receive errors on this network device.
 		See the network driver for the exact meaning of this value.
 
-What:		/sys/class/<iface>/statistics/rx_fifo_errors
+What:		/sys/class/net/<iface>/statistics/rx_fifo_errors
 Date:		April 2005
 KernelVersion:	2.6.12
 Contact:	[email protected]
@@ -68,7 +68,7 @@ Description:
 		network device. See the network driver for the exact
 		meaning of this value.
 
-What:		/sys/class/<iface>/statistics/rx_frame_errors
+What:		/sys/class/net/<iface>/statistics/rx_frame_errors
 Date:		April 2005
 KernelVersion:	2.6.12
 Contact:	[email protected]
@@ -78,7 +78,7 @@ Description:
 		on the MAC layer protocol used. See the network driver for
 		the exact meaning of this value.
 
-What:		/sys/class/<iface>/statistics/rx_length_errors
+What:		/sys/class/net/<iface>/statistics/rx_length_errors
 Date:		April 2005
 KernelVersion:	2.6.12
 Contact:	[email protected]
@@ -87,7 +87,7 @@ Description:
 		error, oversized or undersized. See the network driver for the
 		exact meaning of this value.
 
-What:		/sys/class/<iface>/statistics/rx_missed_errors
+What:		/sys/class/net/<iface>/statistics/rx_missed_errors
 Date:		April 2005
 KernelVersion:	2.6.12
 Contact:	[email protected]
@@ -96,7 +96,7 @@ Description:
 		due to lack of capacity in the receive side. See the network
 		driver for the exact meaning of this value.
 
-What:		/sys/class/<iface>/statistics/rx_nohandler
+What:		/sys/class/net/<iface>/statistics/rx_nohandler
 Date:		February 2016
 KernelVersion:	4.6
 Contact:	[email protected]
@@ -104,7 +104,7 @@ Description:
 		Indicates the number of received packets that were dropped on
 		an inactive device by the network core.
 
-What:		/sys/class/<iface>/statistics/rx_over_errors
+What:		/sys/class/net/<iface>/statistics/rx_over_errors
 Date:		April 2005
 KernelVersion:	2.6.12
 Contact:	[email protected]
@@ -114,7 +114,7 @@ Description:
 		(e.g: larger than MTU). See the network driver for the exact
 		meaning of this value.
 
-What:		/sys/class/<iface>/statistics/rx_packets
+What:		/sys/class/net/<iface>/statistics/rx_packets
 Date:		April 2005
 KernelVersion:	2.6.12
 Contact:	[email protected]
@@ -122,7 +122,7 @@ Description:
 		Indicates the total number of good packets received by this
 		network device.
 
-What:		/sys/class/<iface>/statistics/tx_aborted_errors
+What:		/sys/class/net/<iface>/statistics/tx_aborted_errors
 Date:		April 2005
 KernelVersion:	2.6.12
 Contact:	[email protected]
@@ -132,7 +132,7 @@ Description:
 		a medium collision). See the network driver for the exact
 		meaning of this value.
 
-What:		/sys/class/<iface>/statistics/tx_bytes
+What:		/sys/class/net/<iface>/statistics/tx_bytes
 Date:		April 2005
 KernelVersion:	2.6.12
 Contact:	[email protected]
@@ -143,7 +143,7 @@ Description:
 		transmitted packets or all packets that have been queued for
 		transmission.
 
-What:		/sys/class/<iface>/statistics/tx_carrier_errors
+What:		/sys/class/net/<iface>/statistics/tx_carrier_errors
 Date:		April 2005
 KernelVersion:	2.6.12
 Contact:	[email protected]
@@ -152,7 +152,7 @@ Description:
 		because of carrier errors (e.g: physical link down). See the
 		network driver for the exact meaning of this value.
 
-What:		/sys/class/<iface>/statistics/tx_compressed
+What:		/sys/class/net/<iface>/statistics/tx_compressed
 Date:		April 2005
 KernelVersion:	2.6.12
 Contact:	[email protected]
@@ -161,7 +161,7 @@ Description:
 		this might only be relevant for devices that support
 		compression (e.g: PPP).
 
-What:		/sys/class/<iface>/statistics/tx_dropped
+What:		/sys/class/net/<iface>/statistics/tx_dropped
 Date:		April 2005
 KernelVersion:	2.6.12
 Contact:	[email protected]
@@ -170,7 +170,7 @@ Description:
 		See the driver for the exact reasons as to why the packets were
 		dropped.
 
-What:		/sys/class/<iface>/statistics/tx_errors
+What:		/sys/class/net/<iface>/statistics/tx_errors
 Date:		April 2005
 KernelVersion:	2.6.12
 Contact:	[email protected]
@@ -179,7 +179,7 @@ Description:
 		a network device. See the driver for the exact reasons as to
 		why the packets were dropped.
 
-What:		/sys/class/<iface>/statistics/tx_fifo_errors
+What:		/sys/class/net/<iface>/statistics/tx_fifo_errors
 Date:		April 2005
 KernelVersion:	2.6.12
 Contact:	[email protected]
@@ -188,7 +188,7 @@ Description:
 		FIFO error. See the driver for the exact reasons as to why the
 		packets were dropped.
 
-What:		/sys/class/<iface>/statistics/tx_heartbeat_errors
+What:		/sys/class/net/<iface>/statistics/tx_heartbeat_errors
 Date:		April 2005
 KernelVersion:	2.6.12
 Contact:	[email protected]
@@ -197,7 +197,7 @@ Description:
 		reported as heartbeat errors. See the driver for the exact
 		reasons as to why the packets were dropped.
 
-What:		/sys/class/<iface>/statistics/tx_packets
+What:		/sys/class/net/<iface>/statistics/tx_packets
 Date:		April 2005
 KernelVersion:	2.6.12
 Contact:	[email protected]
@@ -206,7 +206,7 @@ Description:
 		device. See the driver for whether this reports the number of all
 		attempted or successful transmissions.
 
-What:		/sys/class/<iface>/statistics/tx_window_errors
+What:		/sys/class/net/<iface>/statistics/tx_window_errors
 Date:		April 2005
 KernelVersion:	2.6.12
 Contact:	[email protected]
Documentation/arm64/silicon-errata.rst +7 -0
index d9fce65b2f04..27135b9c07ac 100644
@@ -221,3 +221,10 @@ stable kernels.
 +----------------+-----------------+-----------------+-----------------------------+
 | Fujitsu        | A64FX           | E#010001        | FUJITSU_ERRATUM_010001      |
 +----------------+-----------------+-----------------+-----------------------------+
++----------------+-----------------+-----------------+-----------------------------+
+| Microsoft      | Azure Cobalt 100| #2139208        | ARM64_ERRATUM_2139208       |
++----------------+-----------------+-----------------+-----------------------------+
+| Microsoft      | Azure Cobalt 100| #2067961        | ARM64_ERRATUM_2067961       |
++----------------+-----------------+-----------------+-----------------------------+
+| Microsoft      | Azure Cobalt 100| #2253138        | ARM64_ERRATUM_2253138       |
++----------------+-----------------+-----------------+-----------------------------+
Documentation/devicetree/bindings/net/wireless/marvell-8xxx.txt +3 -1
index 9bf9bbac16e2..cdc303caf5f4 100644
@@ -1,4 +1,4 @@
-Marvell 8787/8897/8997 (sd8787/sd8897/sd8997/pcie8997) SDIO/PCIE devices
+Marvell 8787/8897/8978/8997 (sd8787/sd8897/sd8978/sd8997/pcie8997) SDIO/PCIE devices
 ------
 
 This node provides properties for controlling the Marvell SDIO/PCIE wireless device.
@@ -10,7 +10,9 @@ Required properties:
   - compatible : should be one of the following:
 	* "marvell,sd8787"
 	* "marvell,sd8897"
+	* "marvell,sd8978"
 	* "marvell,sd8997"
+	* "nxp,iw416"
 	* "pci11ab,2b42"
 	* "pci1b4b,2b42"
 
Makefile +2 -6
index e93554269e47..d6bc9f597e8b 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 6
 PATCHLEVEL = 1
-SUBLEVEL = 78
+SUBLEVEL = 79
 EXTRAVERSION =
 NAME = Curry Ramen
 
@@ -459,8 +459,7 @@ HOSTRUSTC = rustc
 HOSTPKG_CONFIG	= pkg-config
 
 KBUILD_USERHOSTCFLAGS := -Wall -Wmissing-prototypes -Wstrict-prototypes \
-			 -O2 -fomit-frame-pointer -std=gnu11 \
-			 -Wdeclaration-after-statement
+			 -O2 -fomit-frame-pointer -std=gnu11
 KBUILD_USERCFLAGS  := $(KBUILD_USERHOSTCFLAGS) $(USERCFLAGS)
 KBUILD_USERLDFLAGS := $(USERLDFLAGS)
 
@@ -1018,9 +1017,6 @@ endif
 # arch Makefile may override CC so keep this after arch Makefile is included
 NOSTDINC_FLAGS += -nostdinc
 
-# warn about C99 declaration after statement
-KBUILD_CFLAGS += -Wdeclaration-after-statement
-
 # Variable Length Arrays (VLAs) should not be used anywhere in the kernel
 KBUILD_CFLAGS += -Wvla
 
arch/Kconfig +1 -0
index 14273a6203df..f99fd9a4ca77 100644
@@ -642,6 +642,7 @@ config SHADOW_CALL_STACK
 	bool "Shadow Call Stack"
 	depends on ARCH_SUPPORTS_SHADOW_CALL_STACK
 	depends on DYNAMIC_FTRACE_WITH_ARGS || DYNAMIC_FTRACE_WITH_REGS || !FUNCTION_GRAPH_TRACER
+	depends on MMU
 	help
 	  This option enables the compiler's Shadow Call Stack, which
 	  uses a shadow stack to protect function return addresses from
arch/arc/include/asm/jump_label.h +2 -2
index 9d9618079739..a339223d9e05 100644
@@ -31,7 +31,7 @@
 static __always_inline bool arch_static_branch(struct static_key *key,
 					       bool branch)
 {
-	asm_volatile_goto(".balign "__stringify(JUMP_LABEL_NOP_SIZE)"	\n"
+	asm goto(".balign "__stringify(JUMP_LABEL_NOP_SIZE)"		\n"
 		 "1:							\n"
 		 "nop							\n"
 		 ".pushsection __jump_table, \"aw\"			\n"
@@ -47,7 +47,7 @@ static __always_inline bool arch_static_branch(struct static_key *key,
 static __always_inline bool arch_static_branch_jump(struct static_key *key,
 						    bool branch)
 {
-	asm_volatile_goto(".balign "__stringify(JUMP_LABEL_NOP_SIZE)"	\n"
+	asm goto(".balign "__stringify(JUMP_LABEL_NOP_SIZE)"		\n"
 		 "1:							\n"
 		 "b %l[l_yes]						\n"
 		 ".pushsection __jump_table, \"aw\"			\n"
arch/arm/boot/dts/imx6q-apalis-ixora-v1.2.dts +2 -0
index f9f7d99bd4db..76f3e07bc882 100644
@@ -76,6 +76,7 @@ reg_can1_supply: regulator-can1-supply {
 		pinctrl-names = "default";
 		pinctrl-0 = <&pinctrl_enable_can1_power>;
 		regulator-name = "can1_supply";
+		startup-delay-us = <1000>;
 	};
 
 	reg_can2_supply: regulator-can2-supply {
@@ -85,6 +86,7 @@ reg_can2_supply: regulator-can2-supply {
 		pinctrl-names = "default";
 		pinctrl-0 = <&pinctrl_enable_can2_power>;
 		regulator-name = "can2_supply";
+		startup-delay-us = <1000>;
 	};
 };
 
arch/arm/include/asm/jump_label.h +2 -2
index e12d7d096fc0..e4eb54f6cd9f 100644
@@ -11,7 +11,7 @@
 
 static __always_inline bool arch_static_branch(struct static_key *key, bool branch)
 {
-	asm_volatile_goto("1:\n\t"
+	asm goto("1:\n\t"
 		 WASM(nop) "\n\t"
 		 ".pushsection __jump_table,  \"aw\"\n\t"
 		 ".word 1b, %l[l_yes], %c0\n\t"
@@ -25,7 +25,7 @@ static __always_inline bool arch_static_branch(struct static_key *key, bool bran
 
 static __always_inline bool arch_static_branch_jump(struct static_key *key, bool branch)
 {
-	asm_volatile_goto("1:\n\t"
+	asm goto("1:\n\t"
 		 WASM(b) " %l[l_yes]\n\t"
 		 ".pushsection __jump_table,  \"aw\"\n\t"
 		 ".word 1b, %l[l_yes], %c0\n\t"
arch/arm64/boot/dts/qcom/apq8016-sbc.dts +0 -4
index 9d116e1fbe10..1ac4f8c24e23 100644
@@ -169,10 +169,6 @@ led@6 {
 	};
 };
 
-&blsp_dma {
-	status = "okay";
-};
-
 &blsp_i2c2 {
 	/* On Low speed expansion */
 	status = "okay";
arch/arm64/boot/dts/qcom/msm8916.dtsi +1 -1
index bafac2cf7e3d..987cebbda057 100644
@@ -1522,7 +1522,7 @@ blsp_dma: dma-controller@7884000 {
 			clock-names = "bam_clk";
 			#dma-cells = <1>;
 			qcom,ee = <0>;
-			status = "disabled";
+			qcom,controlled-remotely;
 		};
 
 		blsp1_uart1: serial@78af000 {
arch/arm64/boot/dts/qcom/sdm845.dtsi +2 -2
index 4d5905ef0b41..95c515da9f2e 100644
@@ -4049,7 +4049,7 @@ usb_1: usb@a6f8800 {
 			assigned-clock-rates = <19200000>, <150000000>;
 
 			interrupts-extended = <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
-					      <&intc GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>,
+					      <&pdc_intc 6 IRQ_TYPE_LEVEL_HIGH>,
 					      <&pdc_intc 8 IRQ_TYPE_EDGE_BOTH>,
 					      <&pdc_intc 9 IRQ_TYPE_EDGE_BOTH>;
 			interrupt-names = "hs_phy_irq", "ss_phy_irq",
@@ -4100,7 +4100,7 @@ usb_2: usb@a8f8800 {
 			assigned-clock-rates = <19200000>, <150000000>;
 
 			interrupts-extended = <&intc GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
-					      <&intc GIC_SPI 487 IRQ_TYPE_LEVEL_HIGH>,
+					      <&pdc_intc 7 IRQ_TYPE_LEVEL_HIGH>,
 					      <&pdc_intc 10 IRQ_TYPE_EDGE_BOTH>,
 					      <&pdc_intc 11 IRQ_TYPE_EDGE_BOTH>;
 			interrupt-names = "hs_phy_irq", "ss_phy_irq",
arch/arm64/boot/dts/qcom/sm8150.dtsi +2 -2
index 8efd0e227d78..eb1a9369926d 100644
@@ -3629,7 +3629,7 @@ usb_1: usb@a6f8800 {
 			assigned-clock-rates = <19200000>, <200000000>;
 
 			interrupts-extended = <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
-					      <&intc GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>,
+					      <&pdc 6 IRQ_TYPE_LEVEL_HIGH>,
 					      <&pdc 8 IRQ_TYPE_EDGE_BOTH>,
 					      <&pdc 9 IRQ_TYPE_EDGE_BOTH>;
 			interrupt-names = "hs_phy_irq", "ss_phy_irq",
@@ -3678,7 +3678,7 @@ usb_2: usb@a8f8800 {
 			assigned-clock-rates = <19200000>, <200000000>;
 
 			interrupts-extended = <&intc GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
-					      <&intc GIC_SPI 487 IRQ_TYPE_LEVEL_HIGH>,
+					      <&pdc 7 IRQ_TYPE_LEVEL_HIGH>,
 					      <&pdc 10 IRQ_TYPE_EDGE_BOTH>,
 					      <&pdc 11 IRQ_TYPE_EDGE_BOTH>;
 			interrupt-names = "hs_phy_irq", "ss_phy_irq",
arch/arm64/include/asm/alternative-macros.h +2 -2
index 3622e9f4fb44..51738c56e96c 100644
@@ -229,7 +229,7 @@ alternative_has_feature_likely(unsigned long feature)
 	compiletime_assert(feature < ARM64_NCAPS,
 			   "feature must be < ARM64_NCAPS");
 
-	asm_volatile_goto(
+	asm goto(
 	ALTERNATIVE_CB("b	%l[l_no]", %[feature], alt_cb_patch_nops)
 	:
 	: [feature] "i" (feature)
@@ -247,7 +247,7 @@ alternative_has_feature_unlikely(unsigned long feature)
 	compiletime_assert(feature < ARM64_NCAPS,
 			   "feature must be < ARM64_NCAPS");
 
-	asm_volatile_goto(
+	asm goto(
 	ALTERNATIVE("nop", "b	%l[l_yes]", %[feature])
 	:
 	: [feature] "i" (feature)
arch/arm64/include/asm/cputype.h +4 -0
index 7dce9c0aa783..af3a678a76b3 100644
@@ -61,6 +61,7 @@
 #define ARM_CPU_IMP_HISI		0x48
 #define ARM_CPU_IMP_APPLE		0x61
 #define ARM_CPU_IMP_AMPERE		0xC0
+#define ARM_CPU_IMP_MICROSOFT		0x6D
 
 #define ARM_CPU_PART_AEM_V8		0xD0F
 #define ARM_CPU_PART_FOUNDATION		0xD00
@@ -128,6 +129,8 @@
 
 #define AMPERE_CPU_PART_AMPERE1		0xAC3
 
+#define MICROSOFT_CPU_PART_AZURE_COBALT_100	0xD49 /* Based on r0p0 of ARM Neoverse N2 */
+
 #define MIDR_CORTEX_A53 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A53)
 #define MIDR_CORTEX_A57 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A57)
 #define MIDR_CORTEX_A72 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A72)
@@ -179,6 +182,7 @@
 #define MIDR_APPLE_M1_ICESTORM_MAX MIDR_CPU_MODEL(ARM_CPU_IMP_APPLE, APPLE_CPU_PART_M1_ICESTORM_MAX)
 #define MIDR_APPLE_M1_FIRESTORM_MAX MIDR_CPU_MODEL(ARM_CPU_IMP_APPLE, APPLE_CPU_PART_M1_FIRESTORM_MAX)
 #define MIDR_AMPERE1 MIDR_CPU_MODEL(ARM_CPU_IMP_AMPERE, AMPERE_CPU_PART_AMPERE1)
+#define MIDR_MICROSOFT_AZURE_COBALT_100 MIDR_CPU_MODEL(ARM_CPU_IMP_MICROSOFT, MICROSOFT_CPU_PART_AZURE_COBALT_100)
 
 /* Fujitsu Erratum 010001 affects A64FX 1.0 and 1.1, (v0r0 and v1r0) */
 #define MIDR_FUJITSU_ERRATUM_010001		MIDR_FUJITSU_A64FX
arch/arm64/include/asm/jump_label.h +2 -2
index cea441b6aa5d..b5bd3c38a01b 100644
@@ -18,7 +18,7 @@
 static __always_inline bool arch_static_branch(struct static_key *key,
 					       bool branch)
 {
-	asm_volatile_goto(
+	asm goto(
 		"1:	nop					\n\t"
 		 "	.pushsection	__jump_table, \"aw\"	\n\t"
 		 "	.align		3			\n\t"
@@ -35,7 +35,7 @@ static __always_inline bool arch_static_branch(struct static_key *key,
 static __always_inline bool arch_static_branch_jump(struct static_key *key,
 						    bool branch)
 {
-	asm_volatile_goto(
+	asm goto(
 		"1:	b		%l[l_yes]		\n\t"
 		 "	.pushsection	__jump_table, \"aw\"	\n\t"
 		 "	.align		3			\n\t"
arch/arm64/kernel/cpu_errata.c +3 -0
index 61f22e9c92b4..74584597bfb8 100644
@@ -390,6 +390,7 @@ static const struct midr_range erratum_1463225[] = {
 static const struct midr_range trbe_overwrite_fill_mode_cpus[] = {
 #ifdef CONFIG_ARM64_ERRATUM_2139208
 	MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N2),
+	MIDR_ALL_VERSIONS(MIDR_MICROSOFT_AZURE_COBALT_100),
 #endif
 #ifdef CONFIG_ARM64_ERRATUM_2119858
 	MIDR_ALL_VERSIONS(MIDR_CORTEX_A710),
@@ -403,6 +404,7 @@ static const struct midr_range trbe_overwrite_fill_mode_cpus[] = {
 static const struct midr_range tsb_flush_fail_cpus[] = {
 #ifdef CONFIG_ARM64_ERRATUM_2067961
 	MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N2),
+	MIDR_ALL_VERSIONS(MIDR_MICROSOFT_AZURE_COBALT_100),
 #endif
 #ifdef CONFIG_ARM64_ERRATUM_2054223
 	MIDR_ALL_VERSIONS(MIDR_CORTEX_A710),
@@ -415,6 +417,7 @@ static const struct midr_range tsb_flush_fail_cpus[] = {
 static struct midr_range trbe_write_out_of_range_cpus[] = {
 #ifdef CONFIG_ARM64_ERRATUM_2253138
 	MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N2),
+	MIDR_ALL_VERSIONS(MIDR_MICROSOFT_AZURE_COBALT_100),
 #endif
 #ifdef CONFIG_ARM64_ERRATUM_2224489
 	MIDR_ALL_VERSIONS(MIDR_CORTEX_A710),
arch/arm64/kernel/vdso32/Makefile +0 -2
index 36c8f66cad25..d513533cc922 100644
@@ -68,11 +68,9 @@ VDSO_CFLAGS += -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
                -fno-strict-aliasing -fno-common \
                -Werror-implicit-function-declaration \
                -Wno-format-security \
-               -Wdeclaration-after-statement \
                -std=gnu11
 VDSO_CFLAGS  += -O2
 # Some useful compiler-dependent flags from top-level Makefile
-VDSO_CFLAGS += $(call cc32-option,-Wdeclaration-after-statement,)
 VDSO_CFLAGS += $(call cc32-option,-Wno-pointer-sign)
 VDSO_CFLAGS += -fno-strict-overflow
 VDSO_CFLAGS += $(call cc32-option,-Werror=strict-prototypes)
arch/csky/include/asm/jump_label.h +2 -2
index 98a3f4b168bd..ef2e37a10a0f 100644
@@ -12,7 +12,7 @@
 static __always_inline bool arch_static_branch(struct static_key *key,
 					       bool branch)
 {
-	asm_volatile_goto(
+	asm goto(
 		"1:	nop32					\n"
 		"	.pushsection	__jump_table, \"aw\"	\n"
 		"	.align		2			\n"
@@ -29,7 +29,7 @@ static __always_inline bool arch_static_branch(struct static_key *key,
 static __always_inline bool arch_static_branch_jump(struct static_key *key,
 						    bool branch)
 {
-	asm_volatile_goto(
+	asm goto(
 		"1:	bsr32		%l[label]		\n"
 		"	.pushsection	__jump_table, \"aw\"	\n"
 		"	.align		2			\n"
arch/mips/include/asm/checksum.h +2 -1
index 4044eaf989ac..0921ddda11a4 100644
@@ -241,7 +241,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/jump_label.h +2 -2
index c5c6864e64bc..405c85173f2c 100644
@@ -36,7 +36,7 @@
 
 static __always_inline bool arch_static_branch(struct static_key *key, bool branch)
 {
-	asm_volatile_goto("1:\t" B_INSN " 2f\n\t"
+	asm goto("1:\t" B_INSN " 2f\n\t"
 		"2:\t.insn\n\t"
 		".pushsection __jump_table,  \"aw\"\n\t"
 		WORD_INSN " 1b, %l[l_yes], %0\n\t"
@@ -50,7 +50,7 @@ static __always_inline bool arch_static_branch(struct static_key *key, bool bran
 
 static __always_inline bool arch_static_branch_jump(struct static_key *key, bool branch)
 {
-	asm_volatile_goto("1:\t" J_INSN " %l[l_yes]\n\t"
+	asm goto("1:\t" J_INSN " %l[l_yes]\n\t"
 		".pushsection __jump_table,  \"aw\"\n\t"
 		WORD_INSN " 1b, %l[l_yes], %0\n\t"
 		".popsection\n\t"
arch/parisc/Kconfig +0 -1
index 345d5e021484..abf39ecda6fb 100644
@@ -24,7 +24,6 @@ config PARISC
 	select RTC_DRV_GENERIC
 	select INIT_ALL_POSSIBLE
 	select BUG
-	select BUILDTIME_TABLE_SORT
 	select HAVE_PCI
 	select HAVE_PERF_EVENTS
 	select HAVE_KERNEL_BZIP2
arch/parisc/include/asm/assembly.h +1 -0
index 74d17d7e759d..5937d5edaba1 100644
@@ -576,6 +576,7 @@
 	.section __ex_table,"aw"			!	\
 	.align 4					!	\
 	.word (fault_addr - .), (except_addr - .)	!	\
+	or %r0,%r0,%r0					!	\
 	.previous
 
 
arch/parisc/include/asm/extable.h new file +64 -0

64 lines not on this page · raw message

arch/parisc/include/asm/jump_label.h +2 -2
index 94428798b6aa..317ebc5edc9f 100644
@@ -12,7 +12,7 @@
 
 static __always_inline bool arch_static_branch(struct static_key *key, bool branch)
 {
-	asm_volatile_goto("1:\n\t"
+	asm goto("1:\n\t"
 		 "nop\n\t"
 		 ".pushsection __jump_table,  \"aw\"\n\t"
 		 ".align %1\n\t"
@@ -29,7 +29,7 @@ static __always_inline bool arch_static_branch(struct static_key *key, bool bran
 
 static __always_inline bool arch_static_branch_jump(struct static_key *key, bool branch)
 {
-	asm_volatile_goto("1:\n\t"
+	asm goto("1:\n\t"
 		 "b,n %l[l_yes]\n\t"
 		 ".pushsection __jump_table,  \"aw\"\n\t"
 		 ".align %1\n\t"
arch/parisc/include/asm/special_insns.h +4 -2
index c822bd0c0e3c..51f40eaf7780 100644
@@ -8,7 +8,8 @@
 		"copy %%r0,%0\n"			\
 		"8:\tlpa %%r0(%1),%0\n"			\
 		"9:\n"					\
-		ASM_EXCEPTIONTABLE_ENTRY(8b, 9b)	\
+		ASM_EXCEPTIONTABLE_ENTRY(8b, 9b,	\
+				"or %%r0,%%r0,%%r0")	\
 		: "=&r" (pa)				\
 		: "r" (va)				\
 		: "memory"				\
@@ -22,7 +23,8 @@
 		"copy %%r0,%0\n"			\
 		"8:\tlpa %%r0(%%sr3,%1),%0\n"		\
 		"9:\n"					\
-		ASM_EXCEPTIONTABLE_ENTRY(8b, 9b)	\
+		ASM_EXCEPTIONTABLE_ENTRY(8b, 9b,	\
+				"or %%r0,%%r0,%%r0")	\
 		: "=&r" (pa)				\
 		: "r" (va)				\
 		: "memory"				\
arch/parisc/include/asm/uaccess.h +7 -41

94 lines not on this page · raw message

arch/parisc/kernel/drivers.c +3 -0
index 8f12b9f318ae..a582928739dd 100644
@@ -1003,6 +1003,9 @@ static __init int qemu_print_iodc_data(struct device *lin_dev, void *data)
 
 	pr_info("\n");
 
+	/* Prevent hung task messages when printing on serial console */
+	cond_resched();
+
 	pr_info("#define HPA_%08lx_DESCRIPTION \"%s\"\n",
 		hpa, parisc_hardware_description(&dev->id));
 
arch/parisc/kernel/unaligned.c +22 -22

92 lines not on this page · raw message

arch/parisc/mm/fault.c +8 -3
index b00aa98b582c..fbd9ada5e527 100644
@@ -150,11 +150,16 @@ int fixup_exception(struct pt_regs *regs)
 		 * Fix up get_user() and put_user().
 		 * ASM_EXCEPTIONTABLE_ENTRY_EFAULT() sets the least-significant
 		 * bit in the relative address of the fixup routine to indicate
-		 * that gr[ASM_EXCEPTIONTABLE_REG] should be loaded with
-		 * -EFAULT to report a userspace access error.
+		 * that the register encoded in the "or %r0,%r0,register"
+		 * opcode should be loaded with -EFAULT to report a userspace
+		 * access error.
 		 */
 		if (fix->fixup & 1) {
-			regs->gr[ASM_EXCEPTIONTABLE_REG] = -EFAULT;
+			int fault_error_reg = fix->err_opcode & 0x1f;
+			if (!WARN_ON(!fault_error_reg))
+				regs->gr[fault_error_reg] = -EFAULT;
+			pr_debug("Unalignment fixup of register %d at %pS\n",
+				fault_error_reg, (void*)regs->iaoq[0]);
 
 			/* zero target register for get_user() */
 			if (parisc_acctyp(0, regs->iir) == VM_READ) {
arch/powerpc/include/asm/bug.h +1 -1
index 61a4736355c2..20d5052e2292 100644
@@ -74,7 +74,7 @@
 		  ##__VA_ARGS__)
 
 #define WARN_ENTRY(insn, flags, label, ...)		\
-	asm_volatile_goto(				\
+	asm goto(					\
 		"1:	" insn "\n"			\
 		EX_TABLE(1b, %l[label])			\
 		_EMIT_BUG_ENTRY				\
arch/powerpc/include/asm/jump_label.h +2 -2
index 93ce3ec25387..2f2a86ed2280 100644
@@ -17,7 +17,7 @@
 
 static __always_inline bool arch_static_branch(struct static_key *key, bool branch)
 {
-	asm_volatile_goto("1:\n\t"
+	asm goto("1:\n\t"
 		 "nop # arch_static_branch\n\t"
 		 ".pushsection __jump_table,  \"aw\"\n\t"
 		 ".long 1b - ., %l[l_yes] - .\n\t"
@@ -32,7 +32,7 @@ static __always_inline bool arch_static_branch(struct static_key *key, bool bran
 
 static __always_inline bool arch_static_branch_jump(struct static_key *key, bool branch)
 {
-	asm_volatile_goto("1:\n\t"
+	asm goto("1:\n\t"
 		 "b %l[l_yes] # arch_static_branch_jump\n\t"
 		 ".pushsection __jump_table,  \"aw\"\n\t"
 		 ".long 1b - ., %l[l_yes] - .\n\t"
arch/powerpc/include/asm/thread_info.h +1 -1
index af58f1ed3952..c4b798aa6ce8 100644
@@ -14,7 +14,7 @@
 
 #ifdef __KERNEL__
 
-#ifdef CONFIG_KASAN
+#if defined(CONFIG_KASAN) && CONFIG_THREAD_SHIFT < 15
 #define MIN_THREAD_SHIFT	(CONFIG_THREAD_SHIFT + 1)
 #else
 #define MIN_THREAD_SHIFT	CONFIG_THREAD_SHIFT
arch/powerpc/include/asm/uaccess.h +4 -4
index 3ddc65c63a49..45d4c9cf3f3a 100644
@@ -72,7 +72,7 @@ __pu_failed:							\
  * are no aliasing issues.
  */
 #define __put_user_asm_goto(x, addr, label, op)			\
-	asm_volatile_goto(					\
+	asm goto(					\
 		"1:	" op "%U1%X1 %0,%1	# put_user\n"	\
 		EX_TABLE(1b, %l2)				\
 		:						\
@@ -85,7 +85,7 @@ __pu_failed:							\
 	__put_user_asm_goto(x, ptr, label, "std")
 #else /* __powerpc64__ */
 #define __put_user_asm2_goto(x, addr, label)			\
-	asm_volatile_goto(					\
+	asm goto(					\
 		"1:	stw%X1 %0, %1\n"			\
 		"2:	stw%X1 %L0, %L1\n"			\
 		EX_TABLE(1b, %l2)				\
@@ -132,7 +132,7 @@ do {								\
 #ifdef CONFIG_CC_HAS_ASM_GOTO_OUTPUT
 
 #define __get_user_asm_goto(x, addr, label, op)			\
-	asm_volatile_goto(					\
+	asm_goto_output(					\
 		"1:	"op"%U1%X1 %0, %1	# get_user\n"	\
 		EX_TABLE(1b, %l2)				\
 		: "=r" (x)					\
@@ -145,7 +145,7 @@ do {								\
 	__get_user_asm_goto(x, addr, label, "ld")
 #else /* __powerpc64__ */
 #define __get_user_asm2_goto(x, addr, label)			\
-	asm_volatile_goto(					\
+	asm_goto_output(					\
 		"1:	lwz%X1 %0, %1\n"			\
 		"2:	lwz%X1 %L0, %L1\n"			\
 		EX_TABLE(1b, %l2)				\
arch/powerpc/kernel/cpu_specs_e500mc.h +2 -1
index ceb06b109f83..2ae8e9a7b461 100644
@@ -8,7 +8,8 @@
 
 #ifdef CONFIG_PPC64
 #define COMMON_USER_BOOKE	(PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | \
-				 PPC_FEATURE_HAS_FPU | PPC_FEATURE_64)
+				 PPC_FEATURE_HAS_FPU | PPC_FEATURE_64 | \
+				 PPC_FEATURE_BOOKE)
 #else
 #define COMMON_USER_BOOKE	(PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | \
 				 PPC_FEATURE_BOOKE)
arch/powerpc/kernel/interrupt_64.S +2 -2
index a019ed6fc839..26c151e2a794 100644
@@ -52,7 +52,8 @@ _ASM_NOKPROBE_SYMBOL(system_call_vectored_\name)
 	mr	r10,r1
 	ld	r1,PACAKSAVE(r13)
 	std	r10,0(r1)
-	std	r11,_NIP(r1)
+	std	r11,_LINK(r1)
+	std	r11,_NIP(r1)	/* Saved LR is also the next instruction */
 	std	r12,_MSR(r1)
 	std	r0,GPR0(r1)
 	std	r10,GPR1(r1)
@@ -70,7 +71,6 @@ _ASM_NOKPROBE_SYMBOL(system_call_vectored_\name)
 	std	r9,GPR13(r1)
 	SAVE_NVGPRS(r1)
 	std	r11,_XER(r1)
-	std	r11,_LINK(r1)
 	std	r11,_CTR(r1)
 
 	li	r11,\trapnr
arch/powerpc/kernel/irq_64.c +1 -1
index 9dc0ad3c533a..5a6e44e4d36f 100644
@@ -230,7 +230,7 @@ notrace void arch_local_irq_restore(unsigned long mask)
 	 * This allows interrupts to be unmasked without hard disabling, and
 	 * also without new hard interrupts coming in ahead of pending ones.
 	 */
-	asm_volatile_goto(
+	asm goto(
 "1:					\n"
 "		lbz	9,%0(13)	\n"
 "		cmpwi	9,0		\n"
arch/powerpc/mm/kasan/init_32.c +1 -0
index a70828a6d935..aa9aa11927b2 100644
@@ -64,6 +64,7 @@ int __init __weak kasan_init_region(void *start, size_t size)
 	if (ret)
 		return ret;
 
+	k_start = k_start & PAGE_MASK;
 	block = memblock_alloc(k_end - k_start, PAGE_SIZE);
 	if (!block)
 		return -ENOMEM;
arch/powerpc/platforms/pseries/lpar.c +6 -2
index 541199c6a587..5186d65d772e 100644
@@ -660,8 +660,12 @@ u64 pseries_paravirt_steal_clock(int cpu)
 {
 	struct lppaca *lppaca = &lppaca_of(cpu);
 
-	return be64_to_cpu(READ_ONCE(lppaca->enqueue_dispatch_tb)) +
-		be64_to_cpu(READ_ONCE(lppaca->ready_enqueue_tb));
+	/*
+	 * VPA steal time counters are reported at TB frequency. Hence do a
+	 * conversion to ns before returning
+	 */
+	return tb_to_ns(be64_to_cpu(READ_ONCE(lppaca->enqueue_dispatch_tb)) +
+			be64_to_cpu(READ_ONCE(lppaca->ready_enqueue_tb)));
 }
 #endif
 
arch/riscv/include/asm/jump_label.h +2 -2
index 14a5ea8d8ef0..4a35d787c019 100644
@@ -17,7 +17,7 @@
 static __always_inline bool arch_static_branch(struct static_key * const key,
 					       const bool branch)
 {
-	asm_volatile_goto(
+	asm goto(
 		"	.align		2			\n\t"
 		"	.option push				\n\t"
 		"	.option norelax				\n\t"
@@ -39,7 +39,7 @@ static __always_inline bool arch_static_branch(struct static_key * const key,
 static __always_inline bool arch_static_branch_jump(struct static_key * const key,
 						    const bool branch)
 {
-	asm_volatile_goto(
+	asm goto(
 		"	.align		2			\n\t"
 		"	.option push				\n\t"
 		"	.option norelax				\n\t"
arch/s390/include/asm/jump_label.h +2 -2
index 895f774bbcc5..bf78cf381dfc 100644
@@ -25,7 +25,7 @@
  */
 static __always_inline bool arch_static_branch(struct static_key *key, bool branch)
 {
-	asm_volatile_goto("0:	brcl 0,%l[label]\n"
+	asm goto("0:	brcl 0,%l[label]\n"
 			  ".pushsection __jump_table,\"aw\"\n"
 			  ".balign	8\n"
 			  ".long	0b-.,%l[label]-.\n"
@@ -39,7 +39,7 @@ static __always_inline bool arch_static_branch(struct static_key *key, bool bran
 
 static __always_inline bool arch_static_branch_jump(struct static_key *key, bool branch)
 {
-	asm_volatile_goto("0:	brcl 15,%l[label]\n"
+	asm goto("0:	brcl 15,%l[label]\n"
 			  ".pushsection __jump_table,\"aw\"\n"
 			  ".balign	8\n"
 			  ".long	0b-.,%l[label]-.\n"
arch/sparc/include/asm/jump_label.h +2 -2
index 94eb529dcb77..2718cbea826a 100644
@@ -10,7 +10,7 @@
 
 static __always_inline bool arch_static_branch(struct static_key *key, bool branch)
 {
-	asm_volatile_goto("1:\n\t"
+	asm goto("1:\n\t"
 		 "nop\n\t"
 		 "nop\n\t"
 		 ".pushsection __jump_table,  \"aw\"\n\t"
@@ -26,7 +26,7 @@ static __always_inline bool arch_static_branch(struct static_key *key, bool bran
 
 static __always_inline bool arch_static_branch_jump(struct static_key *key, bool branch)
 {
-	asm_volatile_goto("1:\n\t"
+	asm goto("1:\n\t"
 		 "b %l[l_yes]\n\t"
 		 "nop\n\t"
 		 ".pushsection __jump_table,  \"aw\"\n\t"
arch/um/Makefile +3 -1
index 3dbd0e3b660e..778c50f27399 100644
@@ -118,7 +118,9 @@ archprepare:
 	$(Q)$(MAKE) $(build)=$(HOST_DIR)/um include/generated/user_constants.h
 
 LINK-$(CONFIG_LD_SCRIPT_STATIC) += -static
-LINK-$(CONFIG_LD_SCRIPT_DYN) += $(call cc-option, -no-pie)
+ifdef CONFIG_LD_SCRIPT_DYN
+LINK-$(call gcc-min-version, 60100)$(CONFIG_CC_IS_CLANG) += -no-pie
+endif
 LINK-$(CONFIG_LD_SCRIPT_DYN_RPATH) += -Wl,-rpath,/lib
 
 CFLAGS_NO_HARDENING := $(call cc-option, -fno-PIC,) $(call cc-option, -fno-pic,) \
arch/um/include/asm/cpufeature.h +1 -1
index 4b6d1b526bc1..66fe06db872f 100644
@@ -75,7 +75,7 @@ extern void setup_clear_cpu_cap(unsigned int bit);
  */
 static __always_inline bool _static_cpu_has(u16 bit)
 {
-	asm_volatile_goto("1: jmp 6f\n"
+	asm goto("1: jmp 6f\n"
 		 "2:\n"
 		 ".skip -(((5f-4f) - (2b-1b)) > 0) * "
 			 "((5f-4f) - (2b-1b)),0x90\n"
arch/x86/Kconfig.cpu +1 -1
index 542377cd419d..ce5ed2c2db0c 100644
@@ -375,7 +375,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/cpufeature.h +1 -1
index ce0c8f7d3218..f835b328ba24 100644
@@ -173,7 +173,7 @@ extern void clear_cpu_cap(struct cpuinfo_x86 *c, unsigned int bit);
  */
 static __always_inline bool _static_cpu_has(u16 bit)
 {
-	asm_volatile_goto(
+	asm goto(
 		ALTERNATIVE_TERNARY("jmp 6f", %P[feature], "", "jmp %l[t_no]")
 		".pushsection .altinstr_aux,\"ax\"\n"
 		"6:\n"
arch/x86/include/asm/jump_label.h +3 -3
index 071572e23d3a..cbbef32517f0 100644
@@ -24,7 +24,7 @@
 
 static __always_inline bool arch_static_branch(struct static_key *key, bool branch)
 {
-	asm_volatile_goto("1:"
+	asm goto("1:"
 		"jmp %l[l_yes] # objtool NOPs this \n\t"
 		JUMP_TABLE_ENTRY
 		: :  "i" (key), "i" (2 | branch) : : l_yes);
@@ -38,7 +38,7 @@ static __always_inline bool arch_static_branch(struct static_key *key, bool bran
 
 static __always_inline bool arch_static_branch(struct static_key * const key, const bool branch)
 {
-	asm_volatile_goto("1:"
+	asm goto("1:"
 		".byte " __stringify(BYTES_NOP5) "\n\t"
 		JUMP_TABLE_ENTRY
 		: :  "i" (key), "i" (branch) : : l_yes);
@@ -52,7 +52,7 @@ static __always_inline bool arch_static_branch(struct static_key * const key, co
 
 static __always_inline bool arch_static_branch_jump(struct static_key * const key, const bool branch)
 {
-	asm_volatile_goto("1:"
+	asm goto("1:"
 		"jmp %l[l_yes]\n\t"
 		JUMP_TABLE_ENTRY
 		: :  "i" (key), "i" (branch) : : l_yes);
arch/x86/include/asm/rmwcc.h +1 -1
index 7fa611216417..1919ccf493cd 100644
@@ -18,7 +18,7 @@
 #define __GEN_RMWcc(fullop, _var, cc, clobbers, ...)			\
 ({									\
 	bool c = false;							\
-	asm_volatile_goto (fullop "; j" #cc " %l[cc_label]"		\
+	asm goto (fullop "; j" #cc " %l[cc_label]"		\
 			: : [var] "m" (_var), ## __VA_ARGS__		\
 			: clobbers : cc_label);				\
 	if (0) {							\
arch/x86/include/asm/uaccess.h +5 -5
index 6ca0c661cb63..c638535eedd5 100644
@@ -155,7 +155,7 @@ extern int __get_user_bad(void);
 
 #ifdef CONFIG_X86_32
 #define __put_user_goto_u64(x, addr, label)			\
-	asm_volatile_goto("\n"					\
+	asm goto("\n"					\
 		     "1:	movl %%eax,0(%1)\n"		\
 		     "2:	movl %%edx,4(%1)\n"		\
 		     _ASM_EXTABLE_UA(1b, %l2)			\
@@ -317,7 +317,7 @@ do {									\
 } while (0)
 
 #define __get_user_asm(x, addr, itype, ltype, label)			\
-	asm_volatile_goto("\n"						\
+	asm_goto_output("\n"						\
 		     "1:	mov"itype" %[umem],%[output]\n"		\
 		     _ASM_EXTABLE_UA(1b, %l2)				\
 		     : [output] ltype(x)				\
@@ -397,7 +397,7 @@ do {									\
 	__typeof__(_ptr) _old = (__typeof__(_ptr))(_pold);		\
 	__typeof__(*(_ptr)) __old = *_old;				\
 	__typeof__(*(_ptr)) __new = (_new);				\
-	asm_volatile_goto("\n"						\
+	asm_goto_output("\n"						\
 		     "1: " LOCK_PREFIX "cmpxchg"itype" %[new], %[ptr]\n"\
 		     _ASM_EXTABLE_UA(1b, %l[label])			\
 		     : CC_OUT(z) (success),				\
@@ -416,7 +416,7 @@ do {									\
 	__typeof__(_ptr) _old = (__typeof__(_ptr))(_pold);		\
 	__typeof__(*(_ptr)) __old = *_old;				\
 	__typeof__(*(_ptr)) __new = (_new);				\
-	asm_volatile_goto("\n"						\
+	asm_goto_output("\n"						\
 		     "1: " LOCK_PREFIX "cmpxchg8b %[ptr]\n"		\
 		     _ASM_EXTABLE_UA(1b, %l[label])			\
 		     : CC_OUT(z) (success),				\
@@ -499,7 +499,7 @@ struct __large_struct { unsigned long buf[100]; };
  * aliasing issues.
  */
 #define __put_user_goto(x, addr, itype, ltype, label)			\
-	asm_volatile_goto("\n"						\
+	asm goto("\n"							\
 		"1:	mov"itype" %0,%1\n"				\
 		_ASM_EXTABLE_UA(1b, %l2)				\
 		: : ltype(x), "m" (__m(addr))				\
arch/x86/include/asm/virtext.h +6 -6
index 6c2e3ff3cb28..724ce44809ed 100644
@@ -43,9 +43,9 @@ static inline int cpu_has_vmx(void)
  */
 static inline int cpu_vmxoff(void)
 {
-	asm_volatile_goto("1: vmxoff\n\t"
-			  _ASM_EXTABLE(1b, %l[fault])
-			  ::: "cc", "memory" : fault);
+	asm goto("1: vmxoff\n\t"
+		  _ASM_EXTABLE(1b, %l[fault])
+		  ::: "cc", "memory" : fault);
 
 	cr4_clear_bits(X86_CR4_VMXE);
 	return 0;
@@ -129,9 +129,9 @@ static inline void cpu_svm_disable(void)
 		 * case, GIF must already be set, otherwise the NMI would have
 		 * been blocked, so just eat the fault.
 		 */
-		asm_volatile_goto("1: stgi\n\t"
-				  _ASM_EXTABLE(1b, %l[fault])
-				  ::: "memory" : fault);
+		asm goto("1: stgi\n\t"
+			  _ASM_EXTABLE(1b, %l[fault])
+			  ::: "memory" : fault);
 fault:
 		wrmsrl(MSR_EFER, efer & ~EFER_SVME);
 	}
arch/x86/kernel/fpu/signal.c +5 -8
index 558076dbde5b..247f2225aa9f 100644
@@ -274,12 +274,13 @@ static int __restore_fpregs_from_user(void __user *buf, u64 ufeatures,
  * Attempt to restore the FPU registers directly from user memory.
  * Pagefaults are handled and any errors returned are fatal.
  */
-static bool restore_fpregs_from_user(void __user *buf, u64 xrestore,
-				     bool fx_only, unsigned int size)
+static bool restore_fpregs_from_user(void __user *buf, u64 xrestore, bool fx_only)
 {
 	struct fpu *fpu = &current->thread.fpu;
 	int ret;
 
+	/* Restore enabled features only. */
+	xrestore &= fpu->fpstate->user_xfeatures;
 retry:
 	fpregs_lock();
 	/* Ensure that XFD is up to date */
@@ -309,7 +310,7 @@ static bool restore_fpregs_from_user(void __user *buf, u64 xrestore,
 		if (ret != X86_TRAP_PF)
 			return false;
 
-		if (!fault_in_readable(buf, size))
+		if (!fault_in_readable(buf, fpu->fpstate->user_size))
 			goto retry;
 		return false;
 	}
@@ -339,7 +340,6 @@ static bool __fpu_restore_sig(void __user *buf, void __user *buf_fx,
 	struct user_i387_ia32_struct env;
 	bool success, fx_only = false;
 	union fpregs_state *fpregs;
-	unsigned int state_size;
 	u64 user_xfeatures = 0;
 
 	if (use_xsave()) {
@@ -349,17 +349,14 @@ static bool __fpu_restore_sig(void __user *buf, void __user *buf_fx,
 			return false;
 
 		fx_only = !fx_sw_user.magic1;
-		state_size = fx_sw_user.xstate_size;
 		user_xfeatures = fx_sw_user.xfeatures;
 	} else {
 		user_xfeatures = XFEATURE_MASK_FPSSE;
-		state_size = fpu->fpstate->user_size;
 	}
 
 	if (likely(!ia32_fxstate)) {
 		/* Restore the FPU registers directly from user memory. */
-		return restore_fpregs_from_user(buf_fx, user_xfeatures, fx_only,
-						state_size);
+		return restore_fpregs_from_user(buf_fx, user_xfeatures, fx_only);
 	}
 
 	/*
arch/x86/kvm/svm/svm_ops.h +3 -3
index 36c8af87a707..4e725854c63a 100644
@@ -8,7 +8,7 @@
 
 #define svm_asm(insn, clobber...)				\
 do {								\
-	asm_volatile_goto("1: " __stringify(insn) "\n\t"	\
+	asm goto("1: " __stringify(insn) "\n\t"	\
 			  _ASM_EXTABLE(1b, %l[fault])		\
 			  ::: clobber : fault);			\
 	return;							\
@@ -18,7 +18,7 @@ fault:								\
 
 #define svm_asm1(insn, op1, clobber...)				\
 do {								\
-	asm_volatile_goto("1: "  __stringify(insn) " %0\n\t"	\
+	asm goto("1: "  __stringify(insn) " %0\n\t"	\
 			  _ASM_EXTABLE(1b, %l[fault])		\
 			  :: op1 : clobber : fault);		\
 	return;							\
@@ -28,7 +28,7 @@ fault:								\
 
 #define svm_asm2(insn, op1, op2, clobber...)				\
 do {									\
-	asm_volatile_goto("1: "  __stringify(insn) " %1, %0\n\t"	\
+	asm goto("1: "  __stringify(insn) " %1, %0\n\t"	\
 			  _ASM_EXTABLE(1b, %l[fault])			\
 			  :: op1, op2 : clobber : fault);		\
 	return;								\
arch/x86/kvm/vmx/pmu_intel.c +1 -1
index 9a75a0d5deae..220cdbe1e286 100644
@@ -38,7 +38,7 @@ static int fixed_pmc_events[] = {1, 0, 7};
 static void reprogram_fixed_counters(struct kvm_pmu *pmu, u64 data)
 {
 	struct kvm_pmc *pmc;
-	u8 old_fixed_ctr_ctrl = pmu->fixed_ctr_ctrl;
+	u64 old_fixed_ctr_ctrl = pmu->fixed_ctr_ctrl;
 	int i;
 
 	pmu->fixed_ctr_ctrl = data;
arch/x86/kvm/vmx/vmx.c +4 -4
index 98d732b9418f..57c1374fdfd4 100644
@@ -2469,10 +2469,10 @@ static int kvm_cpu_vmxon(u64 vmxon_pointer)
 
 	cr4_set_bits(X86_CR4_VMXE);
 
-	asm_volatile_goto("1: vmxon %[vmxon_pointer]\n\t"
-			  _ASM_EXTABLE(1b, %l[fault])
-			  : : [vmxon_pointer] "m"(vmxon_pointer)
-			  : : fault);
+	asm goto("1: vmxon %[vmxon_pointer]\n\t"
+		  _ASM_EXTABLE(1b, %l[fault])
+		  : : [vmxon_pointer] "m"(vmxon_pointer)
+		  : : fault);
 	return 0;
 
 fault:
arch/x86/kvm/vmx/vmx_ops.h +3 -3
index ec268df83ed6..5edab28dfb2e 100644
@@ -73,7 +73,7 @@ static __always_inline unsigned long __vmcs_readl(unsigned long field)
 
 #ifdef CONFIG_CC_HAS_ASM_GOTO_OUTPUT
 
-	asm_volatile_goto("1: vmread %[field], %[output]\n\t"
+	asm_goto_output("1: vmread %[field], %[output]\n\t"
 			  "jna %l[do_fail]\n\t"
 
 			  _ASM_EXTABLE(1b, %l[do_exception])
@@ -166,7 +166,7 @@ static __always_inline unsigned long vmcs_readl(unsigned long field)
 
 #define vmx_asm1(insn, op1, error_args...)				\
 do {									\
-	asm_volatile_goto("1: " __stringify(insn) " %0\n\t"		\
+	asm goto("1: " __stringify(insn) " %0\n\t"			\
 			  ".byte 0x2e\n\t" /* branch not taken hint */	\
 			  "jna %l[error]\n\t"				\
 			  _ASM_EXTABLE(1b, %l[fault])			\
@@ -183,7 +183,7 @@ fault:									\
 
 #define vmx_asm2(insn, op1, op2, error_args...)				\
 do {									\
-	asm_volatile_goto("1: "  __stringify(insn) " %1, %0\n\t"	\
+	asm goto("1: "  __stringify(insn) " %1, %0\n\t"			\
 			  ".byte 0x2e\n\t" /* branch not taken hint */	\
 			  "jna %l[error]\n\t"				\
 			  _ASM_EXTABLE(1b, %l[fault])			\
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/jump_label.h +2 -2
index c812bf85021c..46c8596259d2 100644
@@ -13,7 +13,7 @@
 static __always_inline bool arch_static_branch(struct static_key *key,
 					       bool branch)
 {
-	asm_volatile_goto("1:\n\t"
+	asm goto("1:\n\t"
 			  "_nop\n\t"
 			  ".pushsection __jump_table,  \"aw\"\n\t"
 			  ".word 1b, %l[l_yes], %c0\n\t"
@@ -38,7 +38,7 @@ static __always_inline bool arch_static_branch_jump(struct static_key *key,
 	 * make it reachable and wrap both into a no-transform block
 	 * to avoid any assembler interference with this.
 	 */
-	asm_volatile_goto("1:\n\t"
+	asm goto("1:\n\t"
 			  ".begin no-transform\n\t"
 			  "_j %l[l_yes]\n\t"
 			  "2:\n\t"
block/blk-mq.c +7 -2
index c07e5eebcbd8..7ed6b9469f97 100644
@@ -747,11 +747,16 @@ static void req_bio_endio(struct request *rq, struct bio *bio,
 		/*
 		 * Partial zone append completions cannot be supported as the
 		 * BIO fragments may end up not being written sequentially.
+		 * For such case, force the completed nbytes to be equal to
+		 * the BIO size so that bio_advance() sets the BIO remaining
+		 * size to 0 and we end up calling bio_endio() before returning.
 		 */
-		if (bio->bi_iter.bi_size != nbytes)
+		if (bio->bi_iter.bi_size != nbytes) {
 			bio->bi_status = BLK_STS_IOERR;
-		else
+			nbytes = bio->bi_iter.bi_size;
+		} else {
 			bio->bi_iter.bi_sector = rq->__sector;
+		}
 	}
 
 	bio_advance(bio, nbytes);
drivers/android/binder.c +10 -0
index d933ef6cc65a..55cd17a13e75 100644
@@ -477,6 +477,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/base/core.c +11 -4
index af90bfb0cc3d..3078f44dc186 100644
@@ -337,10 +337,12 @@ static bool device_is_ancestor(struct device *dev, struct device *target)
 	return false;
 }
 
+#define DL_MARKER_FLAGS		(DL_FLAG_INFERRED | \
+				 DL_FLAG_CYCLE | \
+				 DL_FLAG_MANAGED)
 static inline bool device_link_flag_is_sync_state_only(u32 flags)
 {
-	return (flags & ~(DL_FLAG_INFERRED | DL_FLAG_CYCLE)) ==
-		(DL_FLAG_SYNC_STATE_ONLY | DL_FLAG_MANAGED);
+	return (flags & ~DL_MARKER_FLAGS) == DL_FLAG_SYNC_STATE_ONLY;
 }
 
 /**
@@ -2054,9 +2056,14 @@ static int fw_devlink_create_devlink(struct device *con,
 
 	/*
 	 * SYNC_STATE_ONLY device links don't block probing and supports cycles.
-	 * So cycle detection isn't necessary and shouldn't be done.
+	 * So, one might expect that cycle detection isn't necessary for them.
+	 * However, if the device link was marked as SYNC_STATE_ONLY because
+	 * it's part of a cycle, then we still need to do cycle detection. This
+	 * is because the consumer and supplier might be part of multiple cycles
+	 * and we need to detect all those cycles.
 	 */
-	if (!(flags & DL_FLAG_SYNC_STATE_ONLY)) {
+	if (!device_link_flag_is_sync_state_only(flags) ||
+	    flags & DL_FLAG_CYCLE) {
 		device_links_write_lock();
 		if (__fw_devlink_relax_cycles(con, sup_handle)) {
 			__fwnode_link_cycle(link);
drivers/base/power/domain.c +1 -1
index 56ceba469802..d238b47f74c3 100644
@@ -1052,7 +1052,7 @@ static int __init genpd_power_off_unused(void)
 
 	return 0;
 }
-late_initcall(genpd_power_off_unused);
+late_initcall_sync(genpd_power_off_unused);
 
 #ifdef CONFIG_PM_SLEEP
 
drivers/bus/moxtet.c +7 -0
index 5eb0fe73ddc4..79fc96c8d836 100644
@@ -830,6 +830,12 @@ static void moxtet_remove(struct spi_device *spi)
 	mutex_destroy(&moxtet->lock);
 }
 
+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" },
 	{},
@@ -841,6 +847,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/crypto/ccp/sev-dev.c +8 -2
index b8e02c3a1961..bbfb0f288dc3 100644
@@ -515,10 +515,16 @@ EXPORT_SYMBOL_GPL(sev_platform_init);
 
 static int __sev_platform_shutdown_locked(int *error)
 {
-	struct sev_device *sev = psp_master->sev_data;
+	struct psp_device *psp = psp_master;
+	struct sev_device *sev;
 	int ret;
 
-	if (!sev || sev->state == SEV_STATE_UNINIT)
+	if (!psp || !psp->sev_data)
+		return 0;
+
+	sev = psp->sev_data;
+
+	if (sev->state == SEV_STATE_UNINIT)
 		return 0;
 
 	ret = __sev_do_cmd_locked(SEV_CMD_SHUTDOWN, NULL, error);
drivers/dma/ioat/dma.c +6 -6
index e2070df6cad2..0b846c605d4b 100644
@@ -584,11 +584,11 @@ desc_get_errstat(struct ioatdma_chan *ioat_chan, struct ioat_ring_ent *desc)
 }
 
 /**
- * __cleanup - reclaim used descriptors
+ * __ioat_cleanup - reclaim used descriptors
  * @ioat_chan: channel (ring) to clean
  * @phys_complete: zeroed (or not) completion address (from status)
  */
-static void __cleanup(struct ioatdma_chan *ioat_chan, dma_addr_t phys_complete)
+static void __ioat_cleanup(struct ioatdma_chan *ioat_chan, dma_addr_t phys_complete)
 {
 	struct ioatdma_device *ioat_dma = ioat_chan->ioat_dma;
 	struct ioat_ring_ent *desc;
@@ -675,7 +675,7 @@ static void ioat_cleanup(struct ioatdma_chan *ioat_chan)
 	spin_lock_bh(&ioat_chan->cleanup_lock);
 
 	if (ioat_cleanup_preamble(ioat_chan, &phys_complete))
-		__cleanup(ioat_chan, phys_complete);
+		__ioat_cleanup(ioat_chan, phys_complete);
 
 	if (is_ioat_halted(*ioat_chan->completion)) {
 		u32 chanerr = readl(ioat_chan->reg_base + IOAT_CHANERR_OFFSET);
@@ -712,7 +712,7 @@ static void ioat_restart_channel(struct ioatdma_chan *ioat_chan)
 
 	ioat_quiesce(ioat_chan, 0);
 	if (ioat_cleanup_preamble(ioat_chan, &phys_complete))
-		__cleanup(ioat_chan, phys_complete);
+		__ioat_cleanup(ioat_chan, phys_complete);
 
 	__ioat_restart_chan(ioat_chan);
 }
@@ -786,7 +786,7 @@ static void ioat_eh(struct ioatdma_chan *ioat_chan)
 
 	/* cleanup so tail points to descriptor that caused the error */
 	if (ioat_cleanup_preamble(ioat_chan, &phys_complete))
-		__cleanup(ioat_chan, phys_complete);
+		__ioat_cleanup(ioat_chan, phys_complete);
 
 	chanerr = readl(ioat_chan->reg_base + IOAT_CHANERR_OFFSET);
 	pci_read_config_dword(pdev, IOAT_PCI_CHANERR_INT_OFFSET, &chanerr_int);
@@ -943,7 +943,7 @@ void ioat_timer_event(struct timer_list *t)
 		/* timer restarted in ioat_cleanup_preamble
 		 * and IOAT_COMPLETION_ACK cleared
 		 */
-		__cleanup(ioat_chan, phys_complete);
+		__ioat_cleanup(ioat_chan, phys_complete);
 		goto unlock_out;
 	}
 
drivers/firewire/core-device.c +3 -4
index 74bab06283b7..1879ec27c023 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/gpu/drm/amd/amdgpu/amdgpu_device.c +0 -1
index 4b91f95066ec..6a4749c0c5a5 100644
@@ -4203,7 +4203,6 @@ int amdgpu_device_suspend(struct drm_device *dev, bool fbcon)
 		drm_fb_helper_set_suspend_unlocked(adev_to_drm(adev)->fb_helper, true);
 
 	cancel_delayed_work_sync(&adev->delayed_init_work);
-	flush_delayed_work(&adev->gfx.gfx_off_delay_work);
 
 	amdgpu_ras_suspend(adev);
 
drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c +8 -1
index 23f0067f92e4..b803e785d3af 100644
@@ -585,8 +585,15 @@ void amdgpu_gfx_off_ctrl(struct amdgpu_device *adev, bool enable)
 
 		if (adev->gfx.gfx_off_req_count == 0 &&
 		    !adev->gfx.gfx_off_state) {
-			schedule_delayed_work(&adev->gfx.gfx_off_delay_work,
+			/* If going to s2idle, no need to wait */
+			if (adev->in_s0ix) {
+				if (!amdgpu_dpm_set_powergating_by_smu(adev,
+						AMD_IP_BLOCK_TYPE_GFX, true))
+					adev->gfx.gfx_off_state = true;
+			} else {
+				schedule_delayed_work(&adev->gfx.gfx_off_delay_work,
 					      delay);
+			}
 		}
 	} else {
 		if (adev->gfx.gfx_off_req_count == 0) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +2 -0
index f02e509d5fac..a826c9293319 100644
@@ -6001,7 +6001,9 @@ create_stream_for_sink(struct amdgpu_dm_connector *aconnector,
 		if (recalculate_timing) {
 			freesync_mode = get_highest_refresh_rate_mode(aconnector, false);
 			drm_mode_copy(&saved_mode, &mode);
+			saved_mode.picture_aspect_ratio = mode.picture_aspect_ratio;
 			drm_mode_copy(&mode, freesync_mode);
+			mode.picture_aspect_ratio = saved_mode.picture_aspect_ratio;
 		} else {
 			decide_crtc_timing_for_drm_display_mode(
 					&mode, preferred_mode, scale);
drivers/gpu/drm/amd/display/dc/dml/Makefile +3 -3
index ca7d24000621..6fdf87a6e240 100644
@@ -60,11 +60,11 @@ ifdef CONFIG_DRM_AMD_DC_DCN
 CFLAGS_$(AMDDALPATH)/dc/dml/display_mode_vba.o := $(dml_ccflags)
 CFLAGS_$(AMDDALPATH)/dc/dml/dcn10/dcn10_fpu.o := $(dml_ccflags)
 CFLAGS_$(AMDDALPATH)/dc/dml/dcn20/dcn20_fpu.o := $(dml_ccflags)
-CFLAGS_$(AMDDALPATH)/dc/dml/dcn20/display_mode_vba_20.o := $(dml_ccflags)
+CFLAGS_$(AMDDALPATH)/dc/dml/dcn20/display_mode_vba_20.o := $(dml_ccflags) $(frame_warn_flag)
 CFLAGS_$(AMDDALPATH)/dc/dml/dcn20/display_rq_dlg_calc_20.o := $(dml_ccflags)
-CFLAGS_$(AMDDALPATH)/dc/dml/dcn20/display_mode_vba_20v2.o := $(dml_ccflags)
+CFLAGS_$(AMDDALPATH)/dc/dml/dcn20/display_mode_vba_20v2.o := $(dml_ccflags) $(frame_warn_flag)
 CFLAGS_$(AMDDALPATH)/dc/dml/dcn20/display_rq_dlg_calc_20v2.o := $(dml_ccflags)
-CFLAGS_$(AMDDALPATH)/dc/dml/dcn21/display_mode_vba_21.o := $(dml_ccflags)
+CFLAGS_$(AMDDALPATH)/dc/dml/dcn21/display_mode_vba_21.o := $(dml_ccflags) $(frame_warn_flag)
 CFLAGS_$(AMDDALPATH)/dc/dml/dcn21/display_rq_dlg_calc_21.o := $(dml_ccflags)
 CFLAGS_$(AMDDALPATH)/dc/dml/dcn30/display_mode_vba_30.o := $(dml_ccflags) $(frame_warn_flag)
 CFLAGS_$(AMDDALPATH)/dc/dml/dcn30/display_rq_dlg_calc_30.o := $(dml_ccflags)
drivers/gpu/drm/drm_prime.c +1 -1
index eb09e86044c6..68a6d4b0ead7 100644
@@ -828,7 +828,7 @@ struct sg_table *drm_prime_pages_to_sg(struct drm_device *dev,
 	if (max_segment == 0)
 		max_segment = UINT_MAX;
 	err = sg_alloc_table_from_pages_segment(sg, pages, nr_pages, 0,
-						nr_pages << PAGE_SHIFT,
+						(unsigned long)nr_pages << PAGE_SHIFT,
 						max_segment, GFP_KERNEL);
 	if (err) {
 		kfree(sg);
drivers/gpu/drm/msm/msm_iommu.c +29 -3
index d12ba47b37c4..0de3612135e9 100644
@@ -21,6 +21,8 @@ struct msm_iommu_pagetable {
 	struct msm_mmu base;
 	struct msm_mmu *parent;
 	struct io_pgtable_ops *pgtbl_ops;
+	const struct iommu_flush_ops *tlb;
+	struct device *iommu_dev;
 	unsigned long pgsize_bitmap;	/* Bitmap of page sizes in use */
 	phys_addr_t ttbr;
 	u32 asid;
@@ -194,11 +196,33 @@ static const struct msm_mmu_funcs pagetable_funcs = {
 
 static void msm_iommu_tlb_flush_all(void *cookie)
 {
+	struct msm_iommu_pagetable *pagetable = cookie;
+	struct adreno_smmu_priv *adreno_smmu;
+
+	if (!pm_runtime_get_if_in_use(pagetable->iommu_dev))
+		return;
+
+	adreno_smmu = dev_get_drvdata(pagetable->parent->dev);
+
+	pagetable->tlb->tlb_flush_all((void *)adreno_smmu->cookie);
+
+	pm_runtime_put_autosuspend(pagetable->iommu_dev);
 }
 
 static void msm_iommu_tlb_flush_walk(unsigned long iova, size_t size,
 		size_t granule, void *cookie)
 {
+	struct msm_iommu_pagetable *pagetable = cookie;
+	struct adreno_smmu_priv *adreno_smmu;
+
+	if (!pm_runtime_get_if_in_use(pagetable->iommu_dev))
+		return;
+
+	adreno_smmu = dev_get_drvdata(pagetable->parent->dev);
+
+	pagetable->tlb->tlb_flush_walk(iova, size, granule, (void *)adreno_smmu->cookie);
+
+	pm_runtime_put_autosuspend(pagetable->iommu_dev);
 }
 
 static void msm_iommu_tlb_add_page(struct iommu_iotlb_gather *gather,
@@ -206,7 +230,7 @@ static void msm_iommu_tlb_add_page(struct iommu_iotlb_gather *gather,
 {
 }
 
-static const struct iommu_flush_ops null_tlb_ops = {
+static const struct iommu_flush_ops tlb_ops = {
 	.tlb_flush_all = msm_iommu_tlb_flush_all,
 	.tlb_flush_walk = msm_iommu_tlb_flush_walk,
 	.tlb_add_page = msm_iommu_tlb_add_page,
@@ -254,10 +278,10 @@ struct msm_mmu *msm_iommu_pagetable_create(struct msm_mmu *parent)
 
 	/* The incoming cfg will have the TTBR1 quirk enabled */
 	ttbr0_cfg.quirks &= ~IO_PGTABLE_QUIRK_ARM_TTBR1;
-	ttbr0_cfg.tlb = &null_tlb_ops;
+	ttbr0_cfg.tlb = &tlb_ops;
 
 	pagetable->pgtbl_ops = alloc_io_pgtable_ops(ARM_64_LPAE_S1,
-		&ttbr0_cfg, iommu->domain);
+		&ttbr0_cfg, pagetable);
 
 	if (!pagetable->pgtbl_ops) {
 		kfree(pagetable);
@@ -282,6 +306,8 @@ struct msm_mmu *msm_iommu_pagetable_create(struct msm_mmu *parent)
 
 	/* Needed later for TLB flush */
 	pagetable->parent = parent;
+	pagetable->tlb = ttbr1_cfg->tlb;
+	pagetable->iommu_dev = ttbr1_cfg->iommu_dev;
 	pagetable->pgsize_bitmap = ttbr0_cfg.pgsize_bitmap;
 	pagetable->ttbr = ttbr0_cfg.arm_lpae_s1_cfg.ttbr;
 
drivers/gpu/drm/nouveau/nouveau_svm.c +1 -1
index 31a5b81ee9fc..be6674fb1af7 100644
@@ -997,7 +997,7 @@ nouveau_svm_fault_buffer_ctor(struct nouveau_svm *svm, s32 oclass, int id)
 	if (ret)
 		return ret;
 
-	buffer->fault = kvcalloc(sizeof(*buffer->fault), buffer->entries, GFP_KERNEL);
+	buffer->fault = kvcalloc(buffer->entries, sizeof(*buffer->fault), GFP_KERNEL);
 	if (!buffer->fault)
 		return -ENOMEM;
 
drivers/gpu/drm/virtio/virtgpu_drv.c +1 -0
index 0035affc3e59..9b2d235168bb 100644
@@ -93,6 +93,7 @@ static int virtio_gpu_probe(struct virtio_device *vdev)
 			goto err_free;
 	}
 
+	dma_set_max_seg_size(dev->dev, dma_max_mapping_size(dev->dev) ?: UINT_MAX);
 	ret = virtio_gpu_init(vdev, dev);
 	if (ret)
 		goto err_free;
drivers/hid/i2c-hid/i2c-hid-of.c +1 -0
index 97a27a803f58..6feb812fce37 100644
@@ -80,6 +80,7 @@ static int i2c_hid_of_probe(struct i2c_client *client,
 	if (!ihid_of)
 		return -ENOMEM;
 
+	ihid_of->client = client;
 	ihid_of->ops.power_up = i2c_hid_of_power_up;
 	ihid_of->ops.power_down = i2c_hid_of_power_down;
 
drivers/hid/wacom_sys.c +43 -20

99 lines not on this page · raw message

drivers/hid/wacom_wac.c +8 -1
index 165ed872fa4e..53235b276bb2 100644
@@ -2571,7 +2571,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/i2c/busses/Makefile +2 -4
index e73cdb1d2b5a..784a803279d9 100644
@@ -89,10 +89,8 @@ obj-$(CONFIG_I2C_NPCM)		+= i2c-npcm7xx.o
 obj-$(CONFIG_I2C_OCORES)	+= i2c-ocores.o
 obj-$(CONFIG_I2C_OMAP)		+= i2c-omap.o
 obj-$(CONFIG_I2C_OWL)		+= i2c-owl.o
-i2c-pasemi-objs := i2c-pasemi-core.o i2c-pasemi-pci.o
-obj-$(CONFIG_I2C_PASEMI)	+= i2c-pasemi.o
-i2c-apple-objs := i2c-pasemi-core.o i2c-pasemi-platform.o
-obj-$(CONFIG_I2C_APPLE)	+= i2c-apple.o
+obj-$(CONFIG_I2C_PASEMI)	+= i2c-pasemi-core.o i2c-pasemi-pci.o
+obj-$(CONFIG_I2C_APPLE)		+= i2c-pasemi-core.o i2c-pasemi-platform.o
 obj-$(CONFIG_I2C_PCA_PLATFORM)	+= i2c-pca-platform.o
 obj-$(CONFIG_I2C_PNX)		+= i2c-pnx.o
 obj-$(CONFIG_I2C_PXA)		+= i2c-pxa.o
drivers/i2c/busses/i2c-i801.c +2 -2
index 3159ffbb77a2..9a4e9bf304c2 100644
@@ -500,11 +500,10 @@ static int i801_block_transaction_by_block(struct i801_priv *priv,
 	/* Set block buffer mode */
 	outb_p(inb_p(SMBAUXCTL(priv)) | SMBAUXCTL_E32B, SMBAUXCTL(priv));
 
-	inb_p(SMBHSTCNT(priv)); /* reset the data buffer index */
-
 	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));
 	}
@@ -520,6 +519,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));
 	}
drivers/i2c/busses/i2c-pasemi-core.c +5 -0
index 9028ffb58cc0..f297e41352e7 100644
@@ -356,3 +356,8 @@ int pasemi_i2c_common_probe(struct pasemi_smbus *smbus)
 
 	return 0;
 }
+EXPORT_SYMBOL_GPL(pasemi_i2c_common_probe);
+
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Olof Johansson <[email protected]>");
+MODULE_DESCRIPTION("PA Semi PWRficient SMBus driver");
drivers/i2c/busses/i2c-qcom-geni.c +7 -7
index 8fce98bb77ff..75b9c3f26bba 100644
@@ -605,20 +605,20 @@ static int geni_i2c_gpi_xfer(struct geni_i2c_dev *gi2c, struct i2c_msg msgs[], i
 
 		peripheral.addr = msgs[i].addr;
 
+		ret =  geni_i2c_gpi(gi2c, &msgs[i], &config,
+				    &tx_addr, &tx_buf, I2C_WRITE, gi2c->tx_c);
+		if (ret)
+			goto err;
+
 		if (msgs[i].flags & I2C_M_RD) {
 			ret =  geni_i2c_gpi(gi2c, &msgs[i], &config,
 					    &rx_addr, &rx_buf, I2C_READ, gi2c->rx_c);
 			if (ret)
 				goto err;
-		}
-
-		ret =  geni_i2c_gpi(gi2c, &msgs[i], &config,
-				    &tx_addr, &tx_buf, I2C_WRITE, gi2c->tx_c);
-		if (ret)
-			goto err;
 
-		if (msgs[i].flags & I2C_M_RD)
 			dma_async_issue_pending(gi2c->rx_c);
+		}
+
 		dma_async_issue_pending(gi2c->tx_c);
 
 		timeout = wait_for_completion_timeout(&gi2c->done, XFER_TIMEOUT);
drivers/iio/accel/Kconfig +2 -0
index ffac66db7ac9..1f34747a68bf 100644
@@ -219,10 +219,12 @@ config BMA400
 
 config BMA400_I2C
 	tristate
+	select REGMAP_I2C
 	depends on BMA400
 
 config BMA400_SPI
 	tristate
+	select REGMAP_SPI
 	depends on BMA400
 
 config BMC150_ACCEL
drivers/iio/imu/bno055/Kconfig +1 -0
index 83e53acfbe88..c7f5866a177d 100644
@@ -8,6 +8,7 @@ config BOSCH_BNO055
 config BOSCH_BNO055_SERIAL
 	tristate "Bosch BNO055 attached via UART"
 	depends on SERIAL_DEV_BUS
+	select REGMAP
 	select BOSCH_BNO055
 	help
 	  Enable this to support Bosch BNO055 IMUs attached via UART.
drivers/iio/industrialio-core.c +4 -1
index c9614982cb67..a2f8278f0085 100644
@@ -1601,10 +1601,13 @@ static int iio_device_register_sysfs(struct iio_dev *indio_dev)
 	ret = iio_device_register_sysfs_group(indio_dev,
 					      &iio_dev_opaque->chan_attr_group);
 	if (ret)
-		goto error_clear_attrs;
+		goto error_free_chan_attrs;
 
 	return 0;
 
+error_free_chan_attrs:
+	kfree(iio_dev_opaque->chan_attr_group.attrs);
+	iio_dev_opaque->chan_attr_group.attrs = NULL;
 error_clear_attrs:
 	iio_free_chan_devattr_list(&iio_dev_opaque->channel_attr_list);
 
drivers/iio/light/hid-sensor-als.c +1 -0
index 5a1a625d8d16..85097b769c20 100644
@@ -228,6 +228,7 @@ static int als_capture_sample(struct hid_sensor_hub_device *hsdev,
 	case HID_USAGE_SENSOR_TIME_TIMESTAMP:
 		als_state->timestamp = hid_sensor_convert_timestamp(&als_state->common_attributes,
 								    *(s64 *)raw_data);
+		ret = 0;
 		break;
 	default:
 		break;
drivers/iio/magnetometer/rm3100-core.c +8 -2
index 69938204456f..42b70cd42b39 100644
@@ -530,6 +530,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)
@@ -586,9 +587,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/hw/irdma/verbs.c +7 -0
index 4859b99d54fc..01faec6ea528 100644
@@ -2845,6 +2845,13 @@ static struct ib_mr *irdma_reg_user_mr(struct ib_pd *pd, u64 start, u64 len,
 
 	switch (req.reg_type) {
 	case IRDMA_MEMREG_TYPE_QP:
+		/* iWarp: Catch page not starting on OS page boundary */
+		if (!rdma_protocol_roce(&iwdev->ibdev, 1) &&
+		    ib_umem_offset(iwmr->region)) {
+			err = -EINVAL;
+			goto error;
+		}
+
 		total = req.sq_pages + req.rq_pages + shadow_pgcnt;
 		if (total > iwmr->page_cnt) {
 			err = -EINVAL;
drivers/interconnect/qcom/sc8180x.c +1 -0
index 83461e31774e..d9ee193fb18b 100644
@@ -1387,6 +1387,7 @@ static struct qcom_icc_bcm bcm_mm0 = {
 
 static struct qcom_icc_bcm bcm_co0 = {
 	.name = "CO0",
+	.keepalive = true,
 	.num_nodes = 1,
 	.nodes = { &slv_qns_cdsp_mem_noc }
 };
drivers/irqchip/irq-brcmstb-l2.c +4 -1
index 091b0fe7e324..5d4421f75b43 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_domain_irq(b->domain, irq);
 	} while (status);
 out:
+	/* Don't ack parent before all device writes are done */
+	wmb();
+
 	chained_irq_exit(chip, desc);
 }
 
drivers/irqchip/irq-gic-v3-its.c +13 -9
index 8956881503d9..b83b39e93e1a 100644
@@ -3805,8 +3805,9 @@ static int its_vpe_set_affinity(struct irq_data *d,
 				bool force)
 {
 	struct its_vpe *vpe = irq_data_get_irq_chip_data(d);
-	int from, cpu = cpumask_first(mask_val);
+	struct cpumask common, *table_mask;
 	unsigned long flags;
+	int from, cpu;
 
 	/*
 	 * Changing affinity is mega expensive, so let's be as lazy as
@@ -3822,19 +3823,22 @@ static int its_vpe_set_affinity(struct irq_data *d,
 	 * taken on any vLPI handling path that evaluates vpe->col_idx.
 	 */
 	from = vpe_to_cpuid_lock(vpe, &flags);
-	if (from == cpu)
-		goto out;
-
-	vpe->col_idx = cpu;
+	table_mask = gic_data_rdist_cpu(from)->vpe_table_mask;
 
 	/*
-	 * GICv4.1 allows us to skip VMOVP if moving to a cpu whose RD
-	 * is sharing its VPE table with the current one.
+	 * If we are offered another CPU in the same GICv4.1 ITS
+	 * affinity, pick this one. Otherwise, any CPU will do.
 	 */
-	if (gic_data_rdist_cpu(cpu)->vpe_table_mask &&
-	    cpumask_test_cpu(from, gic_data_rdist_cpu(cpu)->vpe_table_mask))
+	if (table_mask && cpumask_and(&common, mask_val, table_mask))
+		cpu = cpumask_test_cpu(from, &common) ? from : cpumask_first(&common);
+	else
+		cpu = cpumask_first(mask_val);
+
+	if (from == cpu)
 		goto out;
 
+	vpe->col_idx = cpu;
+
 	its_send_vmovp(vpe);
 	its_vpe_db_proxy_move(vpe, from, cpu);
 
drivers/irqchip/irq-loongson-eiointc.c +1 -1
index 3d99b8bdd8ef..de115ee6e9ec 100644
@@ -242,7 +242,7 @@ static int eiointc_domain_alloc(struct irq_domain *domain, unsigned int virq,
 	int ret;
 	unsigned int i, type;
 	unsigned long hwirq = 0;
-	struct eiointc *priv = domain->host_data;
+	struct eiointc_priv *priv = domain->host_data;
 
 	ret = irq_domain_translate_onecell(domain, arg, &hwirq, &type);
 	if (ret)
drivers/md/dm-core.h +2 -0
index 71dcd8fd4050..6314210d3697 100644
@@ -21,6 +21,8 @@
 #include "dm-ima.h"
 
 #define DM_RESERVED_MAX_IOS		1024
+#define DM_MAX_TARGETS			1048576
+#define DM_MAX_TARGET_PARAMS		1024
 
 struct dm_io;
 
drivers/md/dm-crypt.c +2 -35
index ff515437d81e..0e6068ee783e 100644
@@ -72,10 +72,8 @@ struct dm_crypt_io {
 	struct bio *base_bio;
 	u8 *integrity_metadata;
 	bool integrity_metadata_from_pool:1;
-	bool in_tasklet:1;
 
 	struct work_struct work;
-	struct tasklet_struct tasklet;
 
 	struct convert_context ctx;
 
@@ -1729,7 +1727,6 @@ static void crypt_io_init(struct dm_crypt_io *io, struct crypt_config *cc,
 	io->ctx.r.req = NULL;
 	io->integrity_metadata = NULL;
 	io->integrity_metadata_from_pool = false;
-	io->in_tasklet = false;
 	atomic_set(&io->io_pending, 0);
 }
 
@@ -1738,12 +1735,6 @@ static void crypt_inc_pending(struct dm_crypt_io *io)
 	atomic_inc(&io->io_pending);
 }
 
-static void kcryptd_io_bio_endio(struct work_struct *work)
-{
-	struct dm_crypt_io *io = container_of(work, struct dm_crypt_io, work);
-	bio_endio(io->base_bio);
-}
-
 /*
  * One of the bios was finished. Check for completion of
  * the whole request and correctly clean up the buffer.
@@ -1767,20 +1758,6 @@ static void crypt_dec_pending(struct dm_crypt_io *io)
 
 	base_bio->bi_status = error;
 
-	/*
-	 * If we are running this function from our tasklet,
-	 * we can't call bio_endio() here, because it will call
-	 * clone_endio() from dm.c, which in turn will
-	 * free the current struct dm_crypt_io structure with
-	 * our tasklet. In this case we need to delay bio_endio()
-	 * execution to after the tasklet is done and dequeued.
-	 */
-	if (io->in_tasklet) {
-		INIT_WORK(&io->work, kcryptd_io_bio_endio);
-		queue_work(cc->io_queue, &io->work);
-		return;
-	}
-
 	bio_endio(base_bio);
 }
 
@@ -2213,11 +2190,6 @@ static void kcryptd_crypt(struct work_struct *work)
 		kcryptd_crypt_write_convert(io);
 }
 
-static void kcryptd_crypt_tasklet(unsigned long work)
-{
-	kcryptd_crypt((struct work_struct *)work);
-}
-
 static void kcryptd_queue_crypt(struct dm_crypt_io *io)
 {
 	struct crypt_config *cc = io->cc;
@@ -2229,15 +2201,10 @@ static void kcryptd_queue_crypt(struct dm_crypt_io *io)
 		 * irqs_disabled(): the kernel may run some IO completion from the idle thread, but
 		 * it is being executed with irqs disabled.
 		 */
-		if (in_hardirq() || irqs_disabled()) {
-			io->in_tasklet = true;
-			tasklet_init(&io->tasklet, kcryptd_crypt_tasklet, (unsigned long)&io->work);
-			tasklet_schedule(&io->tasklet);
+		if (!(in_hardirq() || irqs_disabled())) {
+			kcryptd_crypt(&io->work);
 			return;
 		}
-
-		kcryptd_crypt(&io->work);
-		return;
 	}
 
 	INIT_WORK(&io->work, kcryptd_crypt);
drivers/md/dm-ioctl.c +2 -1
index 206e6ce554dc..4376754816ab 100644
@@ -1877,7 +1877,8 @@ static int copy_params(struct dm_ioctl __user *user, struct dm_ioctl *param_kern
 			   minimum_data_size - sizeof(param_kernel->version)))
 		return -EFAULT;
 
-	if (param_kernel->data_size < minimum_data_size) {
+	if (unlikely(param_kernel->data_size < minimum_data_size) ||
+	    unlikely(param_kernel->data_size > DM_MAX_TARGETS * DM_MAX_TARGET_PARAMS)) {
 		DMERR("Invalid data size in the ioctl structure: %u",
 		      param_kernel->data_size);
 		return -EINVAL;
drivers/md/dm-table.c +7 -2
index dac6a5f25f2b..e0367a672eab 100644
@@ -128,7 +128,12 @@ static int alloc_targets(struct dm_table *t, unsigned int num)
 int dm_table_create(struct dm_table **result, fmode_t mode,
 		    unsigned int num_targets, struct mapped_device *md)
 {
-	struct dm_table *t = kzalloc(sizeof(*t), GFP_KERNEL);
+	struct dm_table *t;
+
+	if (num_targets > DM_MAX_TARGETS)
+		return -EOVERFLOW;
+
+	t = kzalloc(sizeof(*t), GFP_KERNEL);
 
 	if (!t)
 		return -ENOMEM;
@@ -143,7 +148,7 @@ int dm_table_create(struct dm_table **result, fmode_t mode,
 
 	if (!num_targets) {
 		kfree(t);
-		return -ENOMEM;
+		return -EOVERFLOW;
 	}
 
 	if (alloc_targets(t, num_targets)) {
drivers/md/dm-verity-target.c +2 -24
index 24df610a2c43..4669923f4cfb 100644
@@ -634,23 +634,6 @@ static void verity_work(struct work_struct *w)
 	verity_finish_io(io, errno_to_blk_status(verity_verify_io(io)));
 }
 
-static void verity_tasklet(unsigned long data)
-{
-	struct dm_verity_io *io = (struct dm_verity_io *)data;
-	int err;
-
-	io->in_tasklet = true;
-	err = verity_verify_io(io);
-	if (err == -EAGAIN || err == -ENOMEM) {
-		/* fallback to retrying with work-queue */
-		INIT_WORK(&io->work, verity_work);
-		queue_work(io->v->verify_wq, &io->work);
-		return;
-	}
-
-	verity_finish_io(io, errno_to_blk_status(err));
-}
-
 static void verity_end_io(struct bio *bio)
 {
 	struct dm_verity_io *io = bio->bi_private;
@@ -663,13 +646,8 @@ static void verity_end_io(struct bio *bio)
 		return;
 	}
 
-	if (static_branch_unlikely(&use_tasklet_enabled) && io->v->use_tasklet) {
-		tasklet_init(&io->tasklet, verity_tasklet, (unsigned long)io);
-		tasklet_schedule(&io->tasklet);
-	} else {
-		INIT_WORK(&io->work, verity_work);
-		queue_work(io->v->verify_wq, &io->work);
-	}
+	INIT_WORK(&io->work, verity_work);
+	queue_work(io->v->verify_wq, &io->work);
 }
 
 /*
drivers/md/dm-verity.h +0 -1
index f9d522c870e6..f3f607008419 100644
@@ -83,7 +83,6 @@ struct dm_verity_io {
 	struct bvec_iter iter;
 
 	struct work_struct work;
-	struct tasklet_struct tasklet;
 
 	/*
 	 * Three variably-size fields follow this struct:
drivers/md/md.c +4 -3
index 3ccf1920682c..c7efe1522951 100644
@@ -963,9 +963,10 @@ void md_super_write(struct mddev *mddev, struct md_rdev *rdev,
 		return;
 
 	bio = bio_alloc_bioset(rdev->meta_bdev ? rdev->meta_bdev : rdev->bdev,
-			       1,
-			       REQ_OP_WRITE | REQ_SYNC | REQ_PREFLUSH | REQ_FUA,
-			       GFP_NOIO, &mddev->sync_set);
+			      1,
+			      REQ_OP_WRITE | REQ_SYNC | REQ_IDLE | REQ_META
+				  | REQ_PREFLUSH | REQ_FUA,
+			      GFP_NOIO, &mddev->sync_set);
 
 	atomic_inc(&rdev->nr_pending);
 
drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c +1 -1
index aeb6bb63667e..41abb18b00ac 100644
@@ -559,7 +559,7 @@ static int rkisp1_probe(struct platform_device *pdev)
 				rkisp1->irqs[il] = irq;
 		}
 
-		ret = devm_request_irq(dev, irq, info->isrs[i].isr, 0,
+		ret = devm_request_irq(dev, irq, info->isrs[i].isr, IRQF_SHARED,
 				       dev_driver_string(dev), dev);
 		if (ret) {
 			dev_err(dev, "request irq failed: %d\n", ret);
drivers/media/rc/bpf-lirc.c +3 -3
index fe17c7f98e81..52d82cbe7685 100644
@@ -253,7 +253,7 @@ int lirc_prog_attach(const union bpf_attr *attr, struct bpf_prog *prog)
 	if (attr->attach_flags)
 		return -EINVAL;
 
-	rcdev = rc_dev_get_from_fd(attr->target_fd);
+	rcdev = rc_dev_get_from_fd(attr->target_fd, true);
 	if (IS_ERR(rcdev))
 		return PTR_ERR(rcdev);
 
@@ -278,7 +278,7 @@ int lirc_prog_detach(const union bpf_attr *attr)
 	if (IS_ERR(prog))
 		return PTR_ERR(prog);
 
-	rcdev = rc_dev_get_from_fd(attr->target_fd);
+	rcdev = rc_dev_get_from_fd(attr->target_fd, true);
 	if (IS_ERR(rcdev)) {
 		bpf_prog_put(prog);
 		return PTR_ERR(rcdev);
@@ -303,7 +303,7 @@ int lirc_prog_query(const union bpf_attr *attr, union bpf_attr __user *uattr)
 	if (attr->query.query_flags)
 		return -EINVAL;
 
-	rcdev = rc_dev_get_from_fd(attr->query.target_fd);
+	rcdev = rc_dev_get_from_fd(attr->query.target_fd, false);
 	if (IS_ERR(rcdev))
 		return PTR_ERR(rcdev);
 
drivers/media/rc/ir_toy.c +2 -0
index 196806709259..69e630d85262 100644
@@ -332,6 +332,7 @@ static int irtoy_tx(struct rc_dev *rc, uint *txbuf, uint count)
 			    sizeof(COMMAND_SMODE_EXIT), STATE_COMMAND_NO_RESP);
 	if (err) {
 		dev_err(irtoy->dev, "exit sample mode: %d\n", err);
+		kfree(buf);
 		return err;
 	}
 
@@ -339,6 +340,7 @@ static int irtoy_tx(struct rc_dev *rc, uint *txbuf, uint count)
 			    sizeof(COMMAND_SMODE_ENTER), STATE_COMMAND);
 	if (err) {
 		dev_err(irtoy->dev, "enter sample mode: %d\n", err);
+		kfree(buf);
 		return err;
 	}
 
drivers/media/rc/lirc_dev.c +4 -1
index 184e0b35744f..adb8c794a2d7 100644
@@ -814,7 +814,7 @@ void __exit lirc_dev_exit(void)
 	unregister_chrdev_region(lirc_base_dev, RC_DEV_MAX);
 }
 
-struct rc_dev *rc_dev_get_from_fd(int fd)
+struct rc_dev *rc_dev_get_from_fd(int fd, bool write)
 {
 	struct fd f = fdget(fd);
 	struct lirc_fh *fh;
@@ -828,6 +828,9 @@ struct rc_dev *rc_dev_get_from_fd(int fd)
 		return ERR_PTR(-EINVAL);
 	}
 
+	if (write && !(f.file->f_mode & FMODE_WRITE))
+		return ERR_PTR(-EPERM);
+
 	fh = f.file->private_data;
 	dev = fh->rc;
 
drivers/media/rc/rc-core-priv.h +1 -1
index ef1e95e1af7f..7df949fc65e2 100644
@@ -325,7 +325,7 @@ void lirc_raw_event(struct rc_dev *dev, struct ir_raw_event ev);
 void lirc_scancode_event(struct rc_dev *dev, struct lirc_scancode *lsc);
 int lirc_register(struct rc_dev *dev);
 void lirc_unregister(struct rc_dev *dev);
-struct rc_dev *rc_dev_get_from_fd(int fd);
+struct rc_dev *rc_dev_get_from_fd(int fd, bool write);
 #else
 static inline int lirc_dev_init(void) { return 0; }
 static inline void lirc_dev_exit(void) {}
drivers/misc/fastrpc.c +1 -1
index cc57cc820432..69cc24962706 100644
@@ -1990,7 +1990,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/slot-gpio.c +5 -1
index dd2a4b6ab6ad..e3c69c6b85a6 100644
@@ -62,11 +62,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/mmc/host/sdhci-pci-o2micro.c +30 -0
index bca1d095b759..24bb0e9809e7 100644
@@ -602,6 +602,35 @@ static void sdhci_pci_o2_set_clock(struct sdhci_host *host, unsigned int clock)
 	sdhci_o2_enable_clk(host, clk);
 }
 
+static void sdhci_pci_o2_set_power(struct sdhci_host *host, unsigned char mode,  unsigned short vdd)
+{
+	struct sdhci_pci_chip *chip;
+	struct sdhci_pci_slot *slot = sdhci_priv(host);
+	u32 scratch_32 = 0;
+	u8 scratch_8 = 0;
+
+	chip = slot->chip;
+
+	if (mode == MMC_POWER_OFF) {
+		/* UnLock WP */
+		pci_read_config_byte(chip->pdev, O2_SD_LOCK_WP, &scratch_8);
+		scratch_8 &= 0x7f;
+		pci_write_config_byte(chip->pdev, O2_SD_LOCK_WP, scratch_8);
+
+		/* Set PCR 0x354[16] to switch Clock Source back to OPE Clock */
+		pci_read_config_dword(chip->pdev, O2_SD_OUTPUT_CLK_SOURCE_SWITCH, &scratch_32);
+		scratch_32 &= ~(O2_SD_SEL_DLL);
+		pci_write_config_dword(chip->pdev, O2_SD_OUTPUT_CLK_SOURCE_SWITCH, scratch_32);
+
+		/* Lock WP */
+		pci_read_config_byte(chip->pdev, O2_SD_LOCK_WP, &scratch_8);
+		scratch_8 |= 0x80;
+		pci_write_config_byte(chip->pdev, O2_SD_LOCK_WP, scratch_8);
+	}
+
+	sdhci_set_power(host, mode, vdd);
+}
+
 static int sdhci_pci_o2_probe_slot(struct sdhci_pci_slot *slot)
 {
 	struct sdhci_pci_chip *chip;
@@ -911,6 +940,7 @@ static const struct sdhci_ops sdhci_pci_o2_ops = {
 	.set_bus_width = sdhci_set_bus_width,
 	.reset = sdhci_reset,
 	.set_uhs_signaling = sdhci_set_uhs_signaling,
+	.set_power = sdhci_pci_o2_set_power,
 };
 
 const struct sdhci_pci_fixes sdhci_o2 = {
drivers/net/can/dev/netlink.c +1 -1
index 8efa22d9f214..053d375eae4f 100644
@@ -311,7 +311,7 @@ static int can_changelink(struct net_device *dev, struct nlattr *tb[],
 			/* Neither of TDC parameters nor TDC flags are
 			 * provided: do calculation
 			 */
-			can_calc_tdco(&priv->tdc, priv->tdc_const, &priv->data_bittiming,
+			can_calc_tdco(&priv->tdc, priv->tdc_const, &dbt,
 				      &priv->ctrlmode, priv->ctrlmode_supported);
 		} /* else: both CAN_CTRLMODE_TDC_{AUTO,MANUAL} are explicitly
 		   * turned off. TDC is disabled: do nothing
drivers/net/ethernet/intel/i40e/i40e_main.c +1 -1
index 63d43ef86f9b..76455405a6d8 100644
@@ -5333,7 +5333,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/i40e/i40e_virtchnl_pf.c +33 -5
index 3d3db58090ed..ed4be80fec2a 100644
@@ -2846,6 +2846,24 @@ static int i40e_vc_get_stats_msg(struct i40e_vf *vf, u8 *msg)
 				      (u8 *)&stats, sizeof(stats));
 }
 
+/**
+ * i40e_can_vf_change_mac
+ * @vf: pointer to the VF info
+ *
+ * Return true if the VF is allowed to change its MAC filters, false otherwise
+ */
+static bool i40e_can_vf_change_mac(struct i40e_vf *vf)
+{
+	/* If the VF MAC address has been set administratively (via the
+	 * ndo_set_vf_mac command), then deny permission to the VF to
+	 * add/delete unicast MAC addresses, unless the VF is trusted
+	 */
+	if (vf->pf_set_mac && !vf->trusted)
+		return false;
+
+	return true;
+}
+
 #define I40E_MAX_MACVLAN_PER_HW 3072
 #define I40E_MAX_MACVLAN_PER_PF(num_ports) (I40E_MAX_MACVLAN_PER_HW /	\
 	(num_ports))
@@ -2905,8 +2923,8 @@ static inline int i40e_check_vf_permission(struct i40e_vf *vf,
 		 * The VF may request to set the MAC address filter already
 		 * assigned to it so do not return an error in that case.
 		 */
-		if (!test_bit(I40E_VIRTCHNL_VF_CAP_PRIVILEGE, &vf->vf_caps) &&
-		    !is_multicast_ether_addr(addr) && vf->pf_set_mac &&
+		if (!i40e_can_vf_change_mac(vf) &&
+		    !is_multicast_ether_addr(addr) &&
 		    !ether_addr_equal(addr, vf->default_lan_addr.addr)) {
 			dev_err(&pf->pdev->dev,
 				"VF attempting to override administratively set MAC address, bring down and up the VF interface to resume normal operation\n");
@@ -3049,19 +3067,29 @@ static int i40e_vc_del_mac_addr_msg(struct i40e_vf *vf, u8 *msg)
 			ret = I40E_ERR_INVALID_MAC_ADDR;
 			goto error_param;
 		}
-		if (ether_addr_equal(al->list[i].addr, vf->default_lan_addr.addr))
-			was_unimac_deleted = true;
 	}
 	vsi = pf->vsi[vf->lan_vsi_idx];
 
 	spin_lock_bh(&vsi->mac_filter_hash_lock);
 	/* delete addresses from the list */
-	for (i = 0; i < al->num_elements; i++)
+	for (i = 0; i < al->num_elements; i++) {
+		const u8 *addr = al->list[i].addr;
+
+		/* Allow to delete VF primary MAC only if it was not set
+		 * administratively by PF or if VF is trusted.
+		 */
+		if (ether_addr_equal(addr, vf->default_lan_addr.addr) &&
+		    i40e_can_vf_change_mac(vf))
+			was_unimac_deleted = true;
+		else
+			continue;
+
 		if (i40e_del_mac_filter(vsi, al->list[i].addr)) {
 			ret = I40E_ERR_INVALID_MAC_ADDR;
 			spin_unlock_bh(&vsi->mac_filter_hash_lock);
 			goto error_param;
 		}
+	}
 
 	spin_unlock_bh(&vsi->mac_filter_hash_lock);
 
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c +2 -0
index 3b9ba8fa247a..dc2e204bcd72 100644
@@ -65,6 +65,8 @@ int mlxsw_sp_acl_tcam_init(struct mlxsw_sp *mlxsw_sp,
 	tcam->max_groups = max_groups;
 	tcam->max_group_size = MLXSW_CORE_RES_GET(mlxsw_sp->core,
 						 ACL_MAX_GROUP_SIZE);
+	tcam->max_group_size = min_t(unsigned int, tcam->max_group_size,
+				     MLXSW_REG_PAGT_ACL_MAX_NUM);
 
 	err = ops->init(mlxsw_sp, tcam->priv, tcam);
 	if (err)
drivers/net/ethernet/microchip/lan966x/lan966x_lag.c +7 -2
index 41fa2523d91d..5f2cd9a8cf8f 100644
@@ -37,19 +37,24 @@ static void lan966x_lag_set_aggr_pgids(struct lan966x *lan966x)
 
 	/* Now, set PGIDs for each active LAG */
 	for (lag = 0; lag < lan966x->num_phys_ports; ++lag) {
-		struct net_device *bond = lan966x->ports[lag]->bond;
+		struct lan966x_port *port = lan966x->ports[lag];
 		int num_active_ports = 0;
+		struct net_device *bond;
 		unsigned long bond_mask;
 		u8 aggr_idx[16];
 
-		if (!bond || (visited & BIT(lag)))
+		if (!port || !port->bond || (visited & BIT(lag)))
 			continue;
 
+		bond = port->bond;
 		bond_mask = lan966x_lag_get_mask(lan966x, bond);
 
 		for_each_set_bit(p, &bond_mask, lan966x->num_phys_ports) {
 			struct lan966x_port *port = lan966x->ports[p];
 
+			if (!port)
+				continue;
+
 			lan_wr(ANA_PGID_PGID_SET(bond_mask),
 			       lan966x, ANA_PGID(p));
 			if (port->lag_tx_active)
drivers/net/ethernet/netronome/nfp/flower/conntrack.c +22 -2
index f7492be452ae..7af03b45555d 100644
@@ -1379,10 +1379,30 @@ static void nfp_nft_ct_translate_mangle_action(struct flow_action_entry *mangle_
 		mangle_action->mangle.mask = (__force u32)cpu_to_be32(mangle_action->mangle.mask);
 		return;
 
+	/* Both struct tcphdr and struct udphdr start with
+	 *	__be16 source;
+	 *	__be16 dest;
+	 * so we can use the same code for both.
+	 */
 	case FLOW_ACT_MANGLE_HDR_TYPE_TCP:
 	case FLOW_ACT_MANGLE_HDR_TYPE_UDP:
-		mangle_action->mangle.val = (__force u16)cpu_to_be16(mangle_action->mangle.val);
-		mangle_action->mangle.mask = (__force u16)cpu_to_be16(mangle_action->mangle.mask);
+		if (mangle_action->mangle.offset == offsetof(struct tcphdr, source)) {
+			mangle_action->mangle.val =
+				(__force u32)cpu_to_be32(mangle_action->mangle.val << 16);
+			/* The mask of mangle action is inverse mask,
+			 * so clear the dest tp port with 0xFFFF to
+			 * instead of rotate-left operation.
+			 */
+			mangle_action->mangle.mask =
+				(__force u32)cpu_to_be32(mangle_action->mangle.mask << 16 | 0xFFFF);
+		}
+		if (mangle_action->mangle.offset == offsetof(struct tcphdr, dest)) {
+			mangle_action->mangle.offset = 0;
+			mangle_action->mangle.val =
+				(__force u32)cpu_to_be32(mangle_action->mangle.val);
+			mangle_action->mangle.mask =
+				(__force u32)cpu_to_be32(mangle_action->mangle.mask);
+		}
 		return;
 
 	default:
drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c +1 -1
index 52f67157bd0f..a3c52c91a575 100644
@@ -980,7 +980,7 @@ nfp_tunnel_add_shared_mac(struct nfp_app *app, struct net_device *netdev,
 	u16 nfp_mac_idx = 0;
 
 	entry = nfp_tunnel_lookup_offloaded_macs(app, netdev->dev_addr);
-	if (entry && nfp_tunnel_is_mac_idx_global(entry->index)) {
+	if (entry && (nfp_tunnel_is_mac_idx_global(entry->index) || netif_is_lag_port(netdev))) {
 		if (entry->bridge_count ||
 		    !nfp_flower_is_supported_bridge(netdev)) {
 			nfp_tunnel_offloaded_macs_inc_ref_and_link(entry,
drivers/net/ethernet/netronome/nfp/nfpcore/nfp6000_pcie.c +4 -2
index 33b4c2856316..3f10c5365c80 100644
@@ -537,11 +537,13 @@ static int enable_bars(struct nfp6000_pcie *nfp, u16 interface)
 	const u32 barcfg_msix_general =
 		NFP_PCIE_BAR_PCIE2CPP_MapType(
 			NFP_PCIE_BAR_PCIE2CPP_MapType_GENERAL) |
-		NFP_PCIE_BAR_PCIE2CPP_LengthSelect_32BIT;
+		NFP_PCIE_BAR_PCIE2CPP_LengthSelect(
+			NFP_PCIE_BAR_PCIE2CPP_LengthSelect_32BIT);
 	const u32 barcfg_msix_xpb =
 		NFP_PCIE_BAR_PCIE2CPP_MapType(
 			NFP_PCIE_BAR_PCIE2CPP_MapType_BULK) |
-		NFP_PCIE_BAR_PCIE2CPP_LengthSelect_32BIT |
+		NFP_PCIE_BAR_PCIE2CPP_LengthSelect(
+			NFP_PCIE_BAR_PCIE2CPP_LengthSelect_32BIT) |
 		NFP_PCIE_BAR_PCIE2CPP_Target_BaseAddress(
 			NFP_CPP_TARGET_ISLAND_XPB);
 	const u32 barcfg_explicit[4] = {
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +3 -0
index e988a60c8561..66178ce6d000 100644
@@ -3826,6 +3826,9 @@ static int __stmmac_open(struct net_device *dev,
 	priv->rx_copybreak = STMMAC_RX_COPYBREAK;
 
 	buf_sz = dma_conf->dma_buf_sz;
+	for (int i = 0; i < MTL_MAX_TX_QUEUES; i++)
+		if (priv->dma_conf.tx_queue[i].tbs & STMMAC_TBS_EN)
+			dma_conf->tx_queue[i].tbs = priv->dma_conf.tx_queue[i].tbs;
 	memcpy(&priv->dma_conf, dma_conf, sizeof(*dma_conf));
 
 	stmmac_reset_queues_param(priv);
drivers/net/ethernet/ti/cpsw.c +2 -0
index 13c9c2d6b79b..d95771ca4e5a 100644
@@ -631,6 +631,8 @@ static void cpsw_slave_open(struct cpsw_slave *slave, struct cpsw_priv *priv)
 		}
 	}
 
+	phy->mac_managed_pm = true;
+
 	slave->phy = phy;
 
 	phy_attached_info(slave->phy);
drivers/net/ethernet/ti/cpsw_new.c +3 -0
index 83596ec0c7cb..6e70aa1cc7bf 100644
@@ -772,6 +772,9 @@ static void cpsw_slave_open(struct cpsw_slave *slave, struct cpsw_priv *priv)
 			slave->slave_num);
 		return;
 	}
+
+	phy->mac_managed_pm = true;
+
 	slave->phy = phy;
 
 	phy_attached_info(slave->phy);
drivers/net/hyperv/netvsc.c +4 -1
index da737d959e81..3a834d4e1c84 100644
@@ -740,7 +740,10 @@ void netvsc_device_remove(struct hv_device *device)
 	/* Disable NAPI and disassociate its context from the device. */
 	for (i = 0; i < net_device->num_chn; i++) {
 		/* See also vmbus_reset_channel_cb(). */
-		napi_disable(&net_device->chan_table[i].napi);
+		/* only disable enabled NAPI channel */
+		if (i < ndev->real_num_rx_queues)
+			napi_disable(&net_device->chan_table[i].napi);
+
 		netif_napi_del(&net_device->chan_table[i].napi);
 	}
 
drivers/net/hyperv/netvsc_drv.c +62 -20

140 lines not on this page · raw message

drivers/net/wireless/intel/iwlwifi/fw/acpi.c +9 -6
index 585e8cd2d332..f5fcc547de39 100644
@@ -576,7 +576,7 @@ int iwl_sar_get_wrds_table(struct iwl_fw_runtime *fwrt)
 					 &tbl_rev);
 	if (!IS_ERR(wifi_pkg)) {
 		if (tbl_rev != 2) {
-			ret = PTR_ERR(wifi_pkg);
+			ret = -EINVAL;
 			goto out_free;
 		}
 
@@ -592,7 +592,7 @@ int iwl_sar_get_wrds_table(struct iwl_fw_runtime *fwrt)
 					 &tbl_rev);
 	if (!IS_ERR(wifi_pkg)) {
 		if (tbl_rev != 1) {
-			ret = PTR_ERR(wifi_pkg);
+			ret = -EINVAL;
 			goto out_free;
 		}
 
@@ -608,7 +608,7 @@ int iwl_sar_get_wrds_table(struct iwl_fw_runtime *fwrt)
 					 &tbl_rev);
 	if (!IS_ERR(wifi_pkg)) {
 		if (tbl_rev != 0) {
-			ret = PTR_ERR(wifi_pkg);
+			ret = -EINVAL;
 			goto out_free;
 		}
 
@@ -665,7 +665,7 @@ int iwl_sar_get_ewrd_table(struct iwl_fw_runtime *fwrt)
 					 &tbl_rev);
 	if (!IS_ERR(wifi_pkg)) {
 		if (tbl_rev != 2) {
-			ret = PTR_ERR(wifi_pkg);
+			ret = -EINVAL;
 			goto out_free;
 		}
 
@@ -681,7 +681,7 @@ int iwl_sar_get_ewrd_table(struct iwl_fw_runtime *fwrt)
 					 &tbl_rev);
 	if (!IS_ERR(wifi_pkg)) {
 		if (tbl_rev != 1) {
-			ret = PTR_ERR(wifi_pkg);
+			ret = -EINVAL;
 			goto out_free;
 		}
 
@@ -697,7 +697,7 @@ int iwl_sar_get_ewrd_table(struct iwl_fw_runtime *fwrt)
 					 &tbl_rev);
 	if (!IS_ERR(wifi_pkg)) {
 		if (tbl_rev != 0) {
-			ret = PTR_ERR(wifi_pkg);
+			ret = -EINVAL;
 			goto out_free;
 		}
 
@@ -1044,6 +1044,9 @@ int iwl_acpi_get_ppag_table(struct iwl_fw_runtime *fwrt)
 		goto read_table;
 	}
 
+	ret = PTR_ERR(wifi_pkg);
+	goto out_free;
+
 read_table:
 	fwrt->ppag_ver = tbl_rev;
 	flags = &wifi_pkg->package.elements[1];
drivers/net/wireless/marvell/mwifiex/Kconfig +3 -2
index 2b4ff2b78a7e..b182f7155d66 100644
@@ -10,13 +10,14 @@ config MWIFIEX
 	  mwifiex.
 
 config MWIFIEX_SDIO
-	tristate "Marvell WiFi-Ex Driver for SD8786/SD8787/SD8797/SD8887/SD8897/SD8977/SD8987/SD8997"
+	tristate "Marvell WiFi-Ex Driver for SD8786/SD8787/SD8797/SD8887/SD8897/SD8977/SD8978/SD8987/SD8997"
 	depends on MWIFIEX && MMC
 	select FW_LOADER
 	select WANT_DEV_COREDUMP
 	help
 	  This adds support for wireless adapters based on Marvell
-	  8786/8787/8797/8887/8897/8977/8987/8997 chipsets with SDIO interface.
+	  8786/8787/8797/8887/8897/8977/8978/8987/8997 chipsets with
+	  SDIO interface. SD8978 is also known as NXP IW416.
 
 	  If you choose to build it as a module, it will be called
 	  mwifiex_sdio.
drivers/net/wireless/marvell/mwifiex/sdio.c +43 -3

148 lines not on this page · raw message

drivers/net/wireless/marvell/mwifiex/sdio.h +3 -0
index 3a24bb48b299..a5112cb35cdc 100644
@@ -25,6 +25,7 @@
 #define SD8887_DEFAULT_FW_NAME "mrvl/sd8887_uapsta.bin"
 #define SD8801_DEFAULT_FW_NAME "mrvl/sd8801_uapsta.bin"
 #define SD8977_DEFAULT_FW_NAME "mrvl/sdsd8977_combo_v2.bin"
+#define SD8978_SDIOUART_FW_NAME "mrvl/sdiouartiw416_combo_v0.bin"
 #define SD8987_DEFAULT_FW_NAME "mrvl/sd8987_uapsta.bin"
 #define SD8997_DEFAULT_FW_NAME "mrvl/sdsd8997_combo_v4.bin"
 #define SD8997_SDIOUART_FW_NAME "mrvl/sdiouart8997_combo_v4.bin"
@@ -257,6 +258,7 @@ struct sdio_mmc_card {
 	bool fw_dump_enh;
 	bool can_auto_tdls;
 	bool can_ext_scan;
+	bool fw_ready_extra_delay;
 
 	struct mwifiex_sdio_mpa_tx mpa_tx;
 	struct mwifiex_sdio_mpa_rx mpa_rx;
@@ -280,6 +282,7 @@ struct mwifiex_sdio_device {
 	bool fw_dump_enh;
 	bool can_auto_tdls;
 	bool can_ext_scan;
+	bool fw_ready_extra_delay;
 };
 
 /*
drivers/net/xen-netback/netback.c +40 -44

154 lines not on this page · raw message

drivers/of/property.c +15 -3
index b636777e6f7c..33d5f16c8120 100644
@@ -762,7 +762,9 @@ struct device_node *of_graph_get_port_parent(struct device_node *node)
 	/* Walk 3 levels up only if there is 'ports' node. */
 	for (depth = 3; depth && node; depth--) {
 		node = of_get_next_parent(node);
-		if (depth == 2 && !of_node_name_eq(node, "ports"))
+		if (depth == 2 && !of_node_name_eq(node, "ports") &&
+		    !of_node_name_eq(node, "in-ports") &&
+		    !of_node_name_eq(node, "out-ports"))
 			break;
 	}
 	return node;
@@ -1243,7 +1245,7 @@ DEFINE_SIMPLE_PROP(clocks, "clocks", "#clock-cells")
 DEFINE_SIMPLE_PROP(interconnects, "interconnects", "#interconnect-cells")
 DEFINE_SIMPLE_PROP(iommus, "iommus", "#iommu-cells")
 DEFINE_SIMPLE_PROP(mboxes, "mboxes", "#mbox-cells")
-DEFINE_SIMPLE_PROP(io_channels, "io-channel", "#io-channel-cells")
+DEFINE_SIMPLE_PROP(io_channels, "io-channels", "#io-channel-cells")
 DEFINE_SIMPLE_PROP(interrupt_parent, "interrupt-parent", NULL)
 DEFINE_SIMPLE_PROP(dmas, "dmas", "#dma-cells")
 DEFINE_SIMPLE_PROP(power_domains, "power-domains", "#power-domain-cells")
@@ -1261,7 +1263,6 @@ DEFINE_SIMPLE_PROP(pinctrl5, "pinctrl-5", NULL)
 DEFINE_SIMPLE_PROP(pinctrl6, "pinctrl-6", NULL)
 DEFINE_SIMPLE_PROP(pinctrl7, "pinctrl-7", NULL)
 DEFINE_SIMPLE_PROP(pinctrl8, "pinctrl-8", NULL)
-DEFINE_SIMPLE_PROP(remote_endpoint, "remote-endpoint", NULL)
 DEFINE_SIMPLE_PROP(pwms, "pwms", "#pwm-cells")
 DEFINE_SIMPLE_PROP(resets, "resets", "#reset-cells")
 DEFINE_SIMPLE_PROP(leds, "leds", NULL)
@@ -1326,6 +1327,17 @@ static struct device_node *parse_interrupts(struct device_node *np,
 	return of_irq_parse_one(np, index, &sup_args) ? NULL : sup_args.np;
 }
 
+static struct device_node *parse_remote_endpoint(struct device_node *np,
+						 const char *prop_name,
+						 int index)
+{
+	/* Return NULL for index > 0 to signify end of remote-endpoints. */
+	if (!index || strcmp(prop_name, "remote-endpoint"))
+		return NULL;
+
+	return of_graph_get_remote_port_parent(np);
+}
+
 static const struct supplier_bindings of_supplier_bindings[] = {
 	{ .parse_prop = parse_clocks, },
 	{ .parse_prop = parse_interconnects, },
drivers/of/unittest.c +9 -3
index e541a8960f1d..ce1386074e66 100644
@@ -49,6 +49,12 @@ static struct unittest_results {
 	failed; \
 })
 
[… more lines in the raw message]

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

drivers/s390/net/qeth_l3_main.c +6 -3
index c0f30cefec10..a41601139185 100644

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

drivers/scsi/fcoe/fcoe_ctlr.c +8 -12
index 8a4124e7d204..ddc048069af2 100644

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

drivers/scsi/storvsc_drv.c +7 -5
index c2d981d5a2dd..4fad9d85bd6f 100644

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

drivers/spi/spi-ppc4xx.c +0 -5
index d65f047b6c82..1179a1115137 100644

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

drivers/staging/iio/impedance-analyzer/ad5933.c +1 -1
index f177b20f0f2d..ceba63213894 100644

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

drivers/tty/serial/max310x.c +43 -10

53 lines not on this page · raw message

drivers/usb/common/ulpi.c +1 -1
index 38703781ee2d..1283c427cdf8 100644

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

drivers/usb/core/hub.c +19 -11
index 4f181110d00d..d960a56b760e 100644

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

drivers/usb/dwc3/gadget.c +2 -4
index c4703f6b2089..576c21bf77cd 100644

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

drivers/usb/gadget/function/f_mass_storage.c +18 -2
index 7b9a4cf9b100..d35f30a9cae2 100644

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

drivers/usb/typec/ucsi/ucsi.c +2 -0
index dc2dea3768fb..0695ee54ff78 100644

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

drivers/usb/typec/ucsi/ucsi_acpi.c +13 -4
index 217355f1f9b9..26171c5d3c61 100644

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

fs/btrfs/block-group.c +47 -2

49 lines not on this page · raw message

fs/btrfs/block-group.h +7 -0
index 47a2dcbfee25..bace40a00637 100644

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

fs/btrfs/delalloc-space.c +19 -10
index f2bc5563c0f9..63b7fa706743 100644

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

fs/btrfs/disk-io.c +11 -2
index 40152458e7b7..0d1b05ded1e3 100644

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

fs/btrfs/inode.c +24 -2
index 82f92b5652a7..f7f4bcc09464 100644

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

fs/btrfs/ioctl.c +5 -0
index 8516c70b5edc..196e222749cc 100644

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

fs/btrfs/qgroup.c +14 -0
index 96ec9ccc2ef6..b3472bf6b288 100644

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

fs/btrfs/send.c +1 -1
index 4a4d65b5e24f..a75669972dc7 100644

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

fs/ceph/caps.c +2 -1
index 111938a6307e..57603782e7e2 100644

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

fs/ext4/mballoc.c +21 -18
index 40903c172a34..1a310ee7d9e5 100644

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

fs/ext4/move_extent.c +2 -4
index dedc9d445f24..8e3ff150bc36 100644

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

fs/hugetlbfs/inode.c +16 -3
index 8eea709e3659..4fe4b3393e71 100644

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

fs/namespace.c +8 -3
index 29a8d90dd107..1533550f7356 100644

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

fs/nfsd/nfs4state.c +20 -17
index faecdbfa01a2..b3f6dda930d8 100644

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

fs/nilfs2/dat.c +17 -10
index 9930fa901039..1e7f653c1df7 100644

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

fs/nilfs2/file.c +7 -1
index a265d391ffe9..822e8d95d31e 100644

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

fs/nilfs2/recovery.c +4 -3
index 0955b657938f..a9b8d77c8c1d 100644

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

fs/nilfs2/segment.c +5 -3
index a4a147a983e0..0a84613960db 100644

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

fs/ntfs3/fsntfs.c +10 -6
index 873b1434a998..4b72bc7f12ca 100644

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

fs/ntfs3/index.c +2 -1
index b89a33f5761e..7371f7855e4c 100644

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

fs/proc/array.c +6 -4
index 49283b8103c7..1b0d78dfd20f 100644

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

fs/smb/client/cached_dir.c +5 -3
index 5a132c1e6f6c..6f4d7aa70e5a 100644

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

fs/smb/client/smb2ops.c +1 -1
index 5a157000bdfe..34d1262004df 100644

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

fs/smb/client/smb2pdu.c +56 -37

93 lines not on this page · raw message

fs/smb/client/smb2proto.h +7 -5
index be21b5d26f67..b325fde010ad 100644

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

fs/smb/server/smb2pdu.c +6 -2
index 4cfa45c2727e..66d25d0e34d8 100644

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

fs/zonefs/file.c +27 -15

42 lines not on this page · raw message

fs/zonefs/super.c +38 -28

66 lines not on this page · raw message

include/asm-generic/vmlinux.lds.h +0 -6
index 7ad6f51b3d91..1d1f480a5e9e 100644

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

include/linux/bpf.h +10 -2
index c04a61ffac8a..1ca1902af23e 100644

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

include/linux/cleanup.h new file +171 -0

171 lines not on this page · raw message

include/linux/compiler-clang.h +9 -0
index 6cfd6902bd5b..9b673fefcef8 100644

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

include/linux/compiler-gcc.h +20 -0
index f55a37efdb97..149a520515e1 100644

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

include/linux/compiler_attributes.h +6 -0
index 898b3458b24a..ae4c9579ca5f 100644

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

include/linux/compiler_types.h +9 -2
index eb0466236661..574b4121ebe3 100644

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

include/linux/device.h +7 -0
index 7cf24330d681..5520bb546a4a 100644

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

include/linux/file.h +6 -0
index 39704eae83e2..6e9099d29343 100644

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

include/linux/iio/adc/ad_sigma_delta.h +3 -1
index 7852f6c9a714..719cf9cc6e1a 100644

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

include/linux/iio/common/st_sensors.h +2 -2
index db4a1b260348..c34e648f07e2 100644

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

include/linux/iio/imu/adis.h +2 -1
index bcbefb757475..af083aa0c431 100644

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

include/linux/init.h +0 -3
index 077d7f93b402..c96aea3229ca 100644

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

include/linux/irqflags.h +7 -0
index 5ec0fa71399e..2b665c32f5fe 100644

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

include/linux/mmc/sdio_ids.h +1 -0
index 74f9d9a6d330..0e4ef9c5127a 100644

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

include/linux/mutex.h +4 -0
index 8f226d460f51..a33aa9eb9fc3 100644

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

include/linux/netfilter/ipset/ip_set.h +4 -0
index 72f5ebc5c97a..0b217d4ae2a4 100644

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

include/linux/percpu.h +4 -0
index f1ec5ad1351c..ba00a49369ca 100644

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

include/linux/preempt.h +5 -0
index 8cfcc5d45451..9aa6358a1a16 100644

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

include/linux/rcupdate.h +3 -0
index 46bd9a331fd5..d2507168b9c7 100644

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

include/linux/rwsem.h +8 -0
index efa5c324369a..1dd530ce8b45 100644

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

include/linux/sched/task.h +2 -0
index 7291fb6399d2..aaa25ed1a8fe 100644

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

include/linux/slab.h +3 -0
index 45efc6c553b8..cb4b5deca9a9 100644

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

include/linux/spinlock.h +31 -0
index 1341f7d62da4..83377540c369 100644

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

include/linux/srcu.h +5 -0
index 01226e4d960a..f9e1fa7ff86f 100644

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

include/net/tls.h +0 -5
index c36bf4c50027..899c863aba02 100644

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

init/Kconfig +9 -0
index 148704640252..ffb927bf6034 100644

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

io_uring/net.c +3 -2
index 618ab186fe03..c062ce66af12 100644

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

kernel/bpf/helpers.c +39 -28

67 lines not on this page · raw message

kernel/bpf/verifier.c +2 -1
index 23b6d57b5eef..1a29ac4db6ea 100644

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

kernel/sched/membarrier.c +6 -0
index 0c5be7ebb1dc..08b16d20c85b 100644

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

kernel/time/hrtimer.c +11 -3
index 8e0aff1d1ea4..9bb88836c42e 100644

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

kernel/trace/bpf_trace.c +27 -29

56 lines not on this page · raw message

kernel/trace/ring_buffer.c +1 -1
index 1285e7fb597e..e019a9278794 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 918730d74932..f941ce01ee35 100644

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

lib/mpi/ec.c +3 -0
index 40f5908e57a4..e16dca1e23d5 100644

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

mm/page-writeback.c +1 -1
index de5f69921b94..d3e9d12860b9 100644

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

mm/userfaultfd.c +13 -2
index 650ab6cfd5f4..992a0a16846f 100644

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

net/can/j1939/j1939-priv.h +2 -1
index 16af1a7f80f6..31a93cae5111 100644

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

net/can/j1939/main.c +1 -1
index ecff1c947d68..a6fb89fa6278 100644

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

net/can/j1939/socket.c +30 -16

46 lines not on this page · raw message

net/core/skbuff.c +2 -1
index 8a819d0a7bfb..d4bd10f8723d 100644

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

net/hsr/hsr_device.c +2 -2
index b1e86a7265b3..83906d093f0a 100644

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

net/mac80211/tx.c +3 -2
index 2db103a56a28..322a035f7592 100644

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

net/mptcp/pm_userspace.c +12 -1
index 38cbdc66d8bf..2e1e0d0e3ec6 100644

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

net/mptcp/protocol.c +10 -14
index 76539d1004eb..859b18cb8e4f 100644

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

net/mptcp/protocol.h +2 -2
index 4ec8e0a81b5a..259672cc344f 100644

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

net/netfilter/ipset/ip_set_bitmap_gen.h +11 -3
index 26ab0e9612d8..9523104a90da 100644

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

net/netfilter/ipset/ip_set_core.c +30 -9
index d47dfdcb899b..f645da82d826 100644

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

net/netfilter/ipset/ip_set_hash_gen.h +14 -5
index 7499192af586..ef04e556aadb 100644

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

net/netfilter/ipset/ip_set_list_set.c +10 -3
index 5a67f7966574..6bc7019982b0 100644

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

net/netfilter/nft_set_pipapo_avx2.c +1 -1
index 90e275bb3e5d..a3a8ddca9918 100644

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

net/nfc/nci/core.c +4 -0
index 7535afd1537e..b5071a2f597d 100644

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

net/openvswitch/flow_netlink.c +33 -16

49 lines not on this page · raw message

net/tls/tls.h +1 -0
index 0672acab2773..4922668fefaa 100644

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

net/tls/tls_main.c +2 -0
index 338a443fa47b..80b42a3e7883 100644

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

net/tls/tls_sw.c +145 -81

226 lines not on this page · raw message

net/wireless/core.c +1 -0
index 8809e668ed91..3fcddc8687ed 100644

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

net/xfrm/xfrm_input.c +26 -51

77 lines not on this page · raw message

net/xfrm/xfrm_output.c +11 -22
index 9a5e79a38c67..07a7ee43b8ae 100644

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

samples/bpf/asm_goto_workaround.h +4 -4
index 7048bb3594d6..634e81d83efd 100644

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

scripts/Makefile.modpost +1 -0
index e41dee64d429..39aea753d0bd 100644

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

scripts/checkpatch.pl +1 -1
index 1e5e66ae5a52..ecf4250b0d2d 100755

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

scripts/link-vmlinux.sh +7 -2
index 32e573943cf0..458b2948b580 100755

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

scripts/mod/modpost.c +25 -18

43 lines not on this page · raw message

scripts/mod/sumversion.c +6 -1
index 6bf9caca0968..a72e6cf61a1f 100644

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

security/apparmor/include/lib.h +3 -3
index f42359f58eb5..d468c8b90298 100644

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

security/security.c +13 -1
index fc15b963e102..1b504c296551 100644

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

sound/pci/hda/patch_conexant.c +18 -0
index e8819e8a9876..e8209178d87b 100644

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

sound/pci/hda/patch_cs8409.c +1 -0
index 627899959ffe..e41316e2e983 100644

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

sound/pci/hda/patch_realtek.c +10 -1
index 62f213704492..92a656fb5321 100644

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

sound/soc/amd/yc/acp6x-mach.c +14 -0
index 808d00282623..28da4e1858d7 100644

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

sound/soc/codecs/rt5645.c +1 -0
index fd3dca08460b..844d14d4c9a5 100644

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

sound/soc/codecs/wcd938x.c +1 -1
index a2abd1a11161..e80be4e4fa8b 100644

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

tools/arch/x86/include/asm/rmwcc.h +1 -1
index 11ff975242ca..e2ff22b379a4 100644

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

tools/include/linux/compiler_types.h +2 -2
index 1bdd834bdd57..d09f9dc172a4 100644

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

tools/testing/selftests/drivers/net/mlxsw/spectrum-2/tc_flower.sh +55 -1

56 lines not on this page · raw message

tools/testing/selftests/kvm/dirty_log_test.c +44 -33

77 lines not on this page · raw message

tools/testing/selftests/net/mptcp/config +3 -0
index e317c2e44dae..4f80014cae49 100644

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

tools/testing/selftests/net/mptcp/settings +1 -1
index 79b65bdf05db..abc5648b59ab 100644

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

tools/testing/selftests/vm/ksm_tests.c +1 -1
index 0d85be2350fa..a81165930785 100644

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

tools/testing/selftests/vm/va_128TBswitch.sh +6 -0
index 41580751dc51..231622b3a232 100755

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

tools/tracing/rtla/Makefile +6 -1
index 22e28b76f800..6912e9577b65 100644

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

tools/tracing/rtla/src/osnoise_hist.c +6 -3
index fe34452fc4ec..b9658f213cb5 100644

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

tools/tracing/rtla/src/osnoise_top.c +5 -1
index 76479bfb2922..6c07f360de72 100644

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

tools/tracing/rtla/src/timerlat_hist.c +6 -3
index 4b48af8a8309..ed08295bfa12 100644

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

tools/tracing/rtla/src/timerlat_top.c +5 -1
index 334271935222..8fc0f6aa19da 100644

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

tools/tracing/rtla/src/utils.c +3 -9
index 663a047f794d..8c8d63c7196c 100644

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

tools/tracing/rtla/src/utils.h +2 -0
index 5571afd3b549..92da41aaf4c4 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.