Skip to contentSkip to conversation

Linux 6.1.24

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Apr 13, 2023 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 6.1.24 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/devicetree/bindings/serial/renesas,scif.yaml |    4 
 Documentation/mm/zsmalloc.rst                              |    2 
 Makefile                                                   |    2 
 arch/arm64/kernel/compat_alignment.c                       |   32 -
 arch/arm64/kvm/pmu-emul.c                                  |  352 +++--------
 arch/arm64/kvm/sys_regs.c                                  |    6 
 arch/s390/kvm/intercept.c                                  |   32 -
 arch/x86/kernel/acpi/boot.c                                |    9 
 arch/x86/kvm/vmx/nested.c                                  |    7 
 arch/x86/kvm/x86.c                                         |   11 
 block/blk-mq.c                                             |    4 
 block/blk-throttle.c                                       |    2 
 block/genhd.c                                              |    8 
 drivers/acpi/acpi_video.c                                  |   15 
 drivers/acpi/video_detect.c                                |   58 +
 drivers/block/ublk_drv.c                                   |   26 
 drivers/counter/104-quad-8.c                               |   31 -
 drivers/cxl/core/pci.c                                     |   38 -
 drivers/cxl/cxlpci.h                                       |   14 
 drivers/gpio/Kconfig                                       |    2 
 drivers/gpio/gpio-davinci.c                                |    5 
 drivers/gpio/gpio-mvebu.c                                  |    9 
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c                 |   18 
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c          |    2 
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c  |    2 
 drivers/gpu/drm/bridge/lontium-lt9611.c                    |    1 
 drivers/gpu/drm/bridge/ti-sn65dsi86.c                      |   14 
 drivers/gpu/drm/display/drm_dp_mst_topology.c              |   26 
 drivers/gpu/drm/i915/display/intel_color.c                 |   21 
 drivers/gpu/drm/i915/display/intel_dp_mst.c                |   14 
 drivers/gpu/drm/i915/gt/intel_execlists_submission.c       |   12 
 drivers/gpu/drm/i915/i915_perf.c                           |    6 
 drivers/gpu/drm/i915/i915_reg.h                            |    3 
 drivers/gpu/drm/nouveau/dispnv50/disp.c                    |   34 +
 drivers/gpu/drm/nouveau/nouveau_dp.c                       |    8 
 drivers/gpu/drm/panfrost/panfrost_mmu.c                    |    1 
 drivers/hv/connection.c                                    |    4 
 drivers/hwtracing/coresight/coresight-etm4x-core.c         |   24 
 drivers/hwtracing/coresight/coresight-etm4x.h              |   20 
 drivers/iio/adc/ad7791.c                                   |    2 
 drivers/iio/adc/ltc2497.c                                  |    6 
 drivers/iio/adc/qcom-spmi-adc5.c                           |   10 
 drivers/iio/adc/ti-ads7950.c                               |    1 
 drivers/iio/dac/cio-dac.c                                  |    4 
 drivers/iio/imu/Kconfig                                    |    1 
 drivers/iio/industrialio-buffer.c                          |   21 
 drivers/iio/light/cm32181.c                                |   12 
 drivers/leds/rgb/leds-qcom-lpg.c                           |   14 
 drivers/md/dm-bio-prison-v1.c                              |   10 
 drivers/md/dm-bio-prison-v2.c                              |   12 
 drivers/md/dm-bio-prison-v2.h                              |   10 
 drivers/md/dm-bufio.c                                      |   58 -
 drivers/md/dm-cache-background-tracker.c                   |    8 
 drivers/md/dm-cache-background-tracker.h                   |   46 +
 drivers/md/dm-cache-metadata.c                             |   40 -
 drivers/md/dm-cache-metadata.h                             |    4 
 drivers/md/dm-cache-policy-internal.h                      |   10 
 drivers/md/dm-cache-policy-smq.c                           |  163 ++---
 drivers/md/dm-cache-policy.c                               |    2 
 drivers/md/dm-cache-policy.h                               |    4 
 drivers/md/dm-cache-target.c                               |   50 -
 drivers/md/dm-core.h                                       |    6 
 drivers/md/dm-crypt.c                                      |   48 -
 drivers/md/dm-delay.c                                      |    6 
 drivers/md/dm-ebs-target.c                                 |    2 
 drivers/md/dm-era-target.c                                 |   32 -
 drivers/md/dm-exception-store.c                            |    6 
 drivers/md/dm-exception-store.h                            |   18 
 drivers/md/dm-flakey.c                                     |   22 
 drivers/md/dm-integrity.c                                  |  328 +++++------
 drivers/md/dm-io-rewind.c                                  |    4 
 drivers/md/dm-io.c                                         |   32 -
 drivers/md/dm-ioctl.c                                      |   18 
 drivers/md/dm-kcopyd.c                                     |   30 -
 drivers/md/dm-linear.c                                     |    2 
 drivers/md/dm-log-userspace-base.c                         |    6 
 drivers/md/dm-log-userspace-transfer.c                     |    2 
 drivers/md/dm-log-writes.c                                 |   10 
 drivers/md/dm-log.c                                        |   10 
 drivers/md/dm-mpath.c                                      |   46 -
 drivers/md/dm-mpath.h                                      |    2 
 drivers/md/dm-path-selector.h                              |    2 
 drivers/md/dm-ps-io-affinity.c                             |    4 
 drivers/md/dm-ps-queue-length.c                            |   10 
 drivers/md/dm-ps-round-robin.c                             |    6 
 drivers/md/dm-ps-service-time.c                            |   14 
 drivers/md/dm-raid.c                                       |    2 
 drivers/md/dm-raid1.c                                      |   22 
 drivers/md/dm-region-hash.c                                |   22 
 drivers/md/dm-rq.c                                         |   16 
 drivers/md/dm-rq.h                                         |    2 
 drivers/md/dm-snap-persistent.c                            |    8 
 drivers/md/dm-snap-transient.c                             |    6 
 drivers/md/dm-snap.c                                       |   34 -
 drivers/md/dm-stats.c                                      |   74 +-
 drivers/md/dm-stats.h                                      |    6 
 drivers/md/dm-stripe.c                                     |   10 
 drivers/md/dm-switch.c                                     |   46 -
 drivers/md/dm-table.c                                      |   25 
 drivers/md/dm-thin-metadata.c                              |   24 
 drivers/md/dm-thin.c                                       |   46 -
 drivers/md/dm-uevent.c                                     |    4 
 drivers/md/dm-uevent.h                                     |    4 
 drivers/md/dm-verity-fec.c                                 |   30 -
 drivers/md/dm-verity-fec.h                                 |   18 
 drivers/md/dm-verity-target.c                              |   30 -
 drivers/md/dm-verity.h                                     |    8 
 drivers/md/dm-writecache.c                                 |   80 +-
 drivers/md/dm.c                                            |   55 -
 drivers/md/dm.h                                            |    4 
 drivers/md/persistent-data/dm-array.c                      |   69 +-
 drivers/md/persistent-data/dm-array.h                      |    2 
 drivers/md/persistent-data/dm-bitset.c                     |   12 
 drivers/md/persistent-data/dm-block-manager.c              |   16 
 drivers/md/persistent-data/dm-block-manager.h              |    6 
 drivers/md/persistent-data/dm-btree-remove.c               |   46 -
 drivers/md/persistent-data/dm-btree-spine.c                |    4 
 drivers/md/persistent-data/dm-btree.c                      |   98 +--
 drivers/md/persistent-data/dm-btree.h                      |   12 
 drivers/md/persistent-data/dm-persistent-data-internal.h   |    6 
 drivers/md/persistent-data/dm-space-map-common.c           |   28 
 drivers/md/persistent-data/dm-space-map-metadata.c         |   20 
 drivers/md/persistent-data/dm-transaction-manager.c        |   16 
 drivers/md/persistent-data/dm-transaction-manager.h        |    2 
 drivers/net/dsa/mv88e6xxx/chip.c                           |    2 
 drivers/net/dsa/mv88e6xxx/global2.c                        |   20 
 drivers/net/dsa/mv88e6xxx/global2.h                        |    1 
 drivers/net/ethernet/google/gve/gve.h                      |    2 
 drivers/net/ethernet/google/gve/gve_tx.c                   |   12 
 drivers/net/ethernet/intel/ice/ice_virtchnl_fdir.c         |   23 
 drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c          |    1 
 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c          |   21 
 drivers/net/ethernet/ti/am65-cpsw-nuss.c                   |    6 
 drivers/net/phy/phylink.c                                  |   19 
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c  |   36 -
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h    |    2 
 drivers/net/wireless/mediatek/mt76/mt7603/main.c           |   10 
 drivers/net/wireless/mediatek/mt76/mt7615/mac.c            |   70 --
 drivers/net/wireless/mediatek/mt76/mt7615/main.c           |   15 
 drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h         |    6 
 drivers/net/wireless/mediatek/mt76/mt76x02_util.c          |   18 
 drivers/net/wireless/mediatek/mt76/mt7915/main.c           |   13 
 drivers/net/wireless/mediatek/mt76/mt7921/main.c           |   13 
 drivers/nvme/host/core.c                                   |    6 
 drivers/pci/doe.c                                          |   30 -
 drivers/platform/x86/think-lmi.c                           |   20 
 drivers/pwm/pwm-atmel.c                                    |    6 
 drivers/pwm/pwm-bcm-iproc.c                                |    8 
 drivers/pwm/pwm-crc.c                                      |   10 
 drivers/pwm/pwm-cros-ec.c                                  |    9 
 drivers/pwm/pwm-dwc.c                                      |    6 
 drivers/pwm/pwm-hibvt.c                                    |    7 
 drivers/pwm/pwm-imx-tpm.c                                  |    8 
 drivers/pwm/pwm-imx27.c                                    |    8 
 drivers/pwm/pwm-intel-lgm.c                                |    6 
 drivers/pwm/pwm-iqs620a.c                                  |    7 
 drivers/pwm/pwm-keembay.c                                  |    6 
 drivers/pwm/pwm-lpss.c                                     |    6 
 drivers/pwm/pwm-meson.c                                    |   16 
 drivers/pwm/pwm-mtk-disp.c                                 |   12 
 drivers/pwm/pwm-pca9685.c                                  |    8 
 drivers/pwm/pwm-raspberrypi-poe.c                          |    8 
 drivers/pwm/pwm-rockchip.c                                 |   12 
 drivers/pwm/pwm-sifive.c                                   |    6 
 drivers/pwm/pwm-sl28cpld.c                                 |    8 
 drivers/pwm/pwm-sprd.c                                     |    9 
 drivers/pwm/pwm-stm32-lp.c                                 |    8 
 drivers/pwm/pwm-sun4i.c                                    |   12 
 drivers/pwm/pwm-sunplus.c                                  |    6 
 drivers/pwm/pwm-visconti.c                                 |    6 
 drivers/pwm/pwm-xilinx.c                                   |    8 
 drivers/scsi/iscsi_tcp.c                                   |    3 
 drivers/scsi/qla2xxx/qla_os.c                              |    1 
 drivers/tty/serial/8250/8250_port.c                        |   11 
 drivers/tty/serial/fsl_lpuart.c                            |    8 
 drivers/tty/serial/sh-sci.c                                |   10 
 drivers/usb/cdns3/cdnsp-ep0.c                              |    3 
 drivers/usb/dwc3/dwc3-pci.c                                |    4 
 drivers/usb/host/xhci-tegra.c                              |    6 
 drivers/usb/host/xhci.c                                    |    7 
 drivers/usb/serial/cp210x.c                                |    1 
 drivers/usb/serial/option.c                                |   10 
 drivers/usb/typec/altmodes/displayport.c                   |    6 
 fs/cifs/fs_context.c                                       |   13 
 fs/cifs/fs_context.h                                       |    3 
 fs/cifs/misc.c                                             |    2 
 fs/ksmbd/connection.c                                      |    5 
 fs/ksmbd/server.c                                          |    5 
 fs/ksmbd/smb2pdu.c                                         |    3 
 fs/ksmbd/smb_common.c                                      |  138 +++-
 fs/ksmbd/smb_common.h                                      |    2 
 fs/namespace.c                                             |    2 
 fs/nfsd/blocklayout.c                                      |    1 
 fs/nfsd/nfs4callback.c                                     |    4 
 fs/nfsd/nfs4xdr.c                                          |   15 
 fs/nilfs2/segment.c                                        |    3 
 fs/nilfs2/super.c                                          |    2 
 fs/nilfs2/the_nilfs.c                                      |   12 
 include/acpi/video.h                                       |   15 
 include/drm/display/drm_dp_mst_helper.h                    |    3 
 include/kvm/arm_pmu.h                                      |    2 
 include/linux/device-mapper.h                              |   38 -
 include/linux/dm-bufio.h                                   |   12 
 include/linux/dm-dirty-log.h                               |    6 
 include/linux/dm-io.h                                      |    8 
 include/linux/dm-kcopyd.h                                  |   22 
 include/linux/dm-region-hash.h                             |    2 
 include/linux/ftrace.h                                     |    2 
 include/linux/mm_types.h                                   |    3 
 include/linux/pci-doe.h                                    |    8 
 include/linux/phylink.h                                    |    1 
 include/linux/pwm.h                                        |    4 
 include/net/raw.h                                          |   15 
 io_uring/io_uring.c                                        |    2 
 io_uring/kbuf.c                                            |    7 
 kernel/events/core.c                                       |    2 
 kernel/fork.c                                              |    3 
 kernel/trace/ftrace.c                                      |   15 
 kernel/trace/ring_buffer.c                                 |   13 
 kernel/trace/trace.c                                       |    1 
 kernel/trace/trace_events_synth.c                          |   19 
 kernel/trace/trace_osnoise.c                               |    4 
 lib/maple_tree.c                                           |  383 ++++++++-----
 mm/hugetlb.c                                               |   14 
 mm/kfence/core.c                                           |   32 -
 mm/memory.c                                                |   16 
 mm/mmap.c                                                  |    3 
 mm/swapfile.c                                              |    3 
 mm/vmalloc.c                                               |    8 
 net/can/isotp.c                                            |   74 +-
 net/can/j1939/transport.c                                  |    5 
 net/core/netpoll.c                                         |   19 
 net/ethtool/linkmodes.c                                    |    7 
 net/ipv4/icmp.c                                            |    5 
 net/ipv4/ping.c                                            |    8 
 net/ipv4/raw.c                                             |   49 -
 net/ipv4/raw_diag.c                                        |   10 
 net/ipv6/ip6_output.c                                      |    7 
 net/ipv6/raw.c                                             |   14 
 net/l2tp/l2tp_ip.c                                         |    8 
 net/l2tp/l2tp_ip6.c                                        |    8 
 net/mac80211/sta_info.c                                    |    3 
 net/mac80211/util.c                                        |    2 
 net/netlink/af_netlink.c                                   |   15 
 net/qrtr/af_qrtr.c                                         |    2 
 net/qrtr/ns.c                                              |   15 
 net/sctp/socket.c                                          |    4 
 net/sunrpc/svcauth_unix.c                                  |   17 
 sound/pci/hda/patch_hdmi.c                                 |   11 
 sound/pci/hda/patch_realtek.c                              |    2 
 sound/soc/codecs/hdac_hdmi.c                               |   17 
 sound/soc/codecs/lpass-rx-macro.c                          |    4 
 sound/soc/codecs/lpass-tx-macro.c                          |    4 
 sound/soc/codecs/lpass-wsa-macro.c                         |    4 
 sound/soc/sof/ipc4.c                                       |    8 
 tools/lib/bpf/btf_dump.c                                   |    6 
 tools/testing/radix-tree/maple.c                           |   18 
 257 files changed, 2737 insertions(+), 2053 deletions(-)

Alex Deucher (1):
drm/amdgpu: for S0ix, skip SDMA 5.x+ suspend/resume

Alistair Popple (1):
mm: take a page reference when removing device exclusive entries

Andrea Righi (1):
l2tp: generate correct module alias strings

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

Andy Roulin (1):
ethtool: reset #lanes when lanes is omitted

Andy Shevchenko (1):
iio: adc: qcom-spmi-adc5: Fix the channel name

Ard Biesheuvel (1):
arm64: compat: Work around uninitialized variable warning

Armin Wolf (1):
platform/x86: think-lmi: Fix memory leak when showing current settings

Arnd Bergmann (1):

      iio: adis16480: select CONFIG_CRC32

Biju Das (2):
tty: serial: sh-sci: Fix transmit end interrupt handler
tty: serial: sh-sci: Fix Rx on RZ/G2L SCI

Bjørn Mork (1):
USB: serial: option: add Quectel RM500U-CN modem

Boris Brezillon (1):
drm/panfrost: Fix the panfrost_mmu_map_fault_addr() error path

Christian Brauner (1):
fs: drop peer group ids under namespace lock

Chuck Lever (1):

      NFSD: Avoid calling OPDESC() with ops->opnum == OP_ILLEGAL

Corinna Vinschen (1):
net: stmmac: fix up RX flow hash indirection table when setting channels

D Scott Phillips (1):
xhci: also avoid the XHCI_ZERO_64B_REGS quirk with a passthrough iommu

Dai Ngo (1):
NFSD: callback request does not use correct credential for AUTH_SYS

Daniel Bristot de Oliveira (2):
tracing/timerlat: Notify new max thread latency tracing/osnoise: Fix notify new tracing_max_latency

Dhruva Gole (2):
gpio: davinci: Do not clear the bank intr enable bit in save_context
gpio: davinci: Add irq chip flag to skip set wake

Eduard Zingerman (1):
bpftool: Print newline before '}' for struct with padding only fields

Enrico Sau (1):
USB: serial: option: add Telit FE990 compositions

Eric DeVolder (1):
x86/acpi/boot: Correct acpi_is_processor_usable() check

Eric Dumazet (3):
icmp: guard against too small mtu
raw: use net_hash_mix() in hash function
netlink: annotate lockless accesses to nlk->max_recvmsg_len

Felix Fietkau (2):
wifi: mac80211: fix invalid drv_sta_pre_rcu_remove calls for non-uploaded sta
wifi: mt76: ignore key disable commands

Geert Uytterhoeven (1):
dt-bindings: serial: renesas,scif: Fix 4th IRQ for 4-IRQ SCIFs

Greg Kroah-Hartman (1):

      Linux 6.1.24

Gustav Ekelund (1):
net: dsa: mv88e6xxx: Reset mv88e6393x force WD event bit

Hans de Goede (5):
wifi: brcmfmac: Fix SDIO suspend/resume regression
ACPI: video: Add auto_detect arg to __acpi_video_get_backlight_type()
ACPI: video: Make acpi_backlight=video work independent from GPU driver
ACPI: video: Add acpi_backlight=video quirk for Apple iMac14,1 and iMac14,2
ACPI: video: Add acpi_backlight=video quirk for Lenovo ThinkPad W530

Heikki Krogerus (1):
usb: dwc3: pci: add support for the Intel Meteor Lake-S

Heinz Mauelshagen (1):
dm: change "unsigned" to "unsigned int"

Ian Ray (1):
drivers: iio: adc: ltc2497: fix LSB shift

Ilpo Järvinen (1):
serial: 8250: Prevent starting up DMA Rx on THRI interrupt

Imre Deak (2):
drm/display/dp_mst: Handle old/new payload states in drm_dp_remove_payload() drm/i915/dp_mst: Fix payload removal during output disabling

Jakub Kicinski (1):
net: don't let netpoll invoke NAPI if in xmit context

Jason Montleon (1):
ASoC: hdac_hdmi: use set_stream() instead of set_tdm_slots()

Jeff Layton (2):
nfsd: call op_release, even when op_func returns an error
sunrpc: only free unix grouplist after RCU settles

Jens Axboe (1):
ublk: read any SQE values upfront

Jeremy Soller (1):
ALSA: hda/realtek: Add quirk for Clevo X370SNW

Jiapeng Chong (1):
dm integrity: Remove bi_sector that's only used by commented debug code

Joe Thornber (1):
dm cache: Add some documentation to dm-cache-background-tracker.h

John Keeping (1):
ftrace: Mark get_lock_parent_ip() __always_inline

Kai-Heng Feng (1):
iio: light: cm32181: Unregister second I2C client if present

Kan Liang (1):
perf/core: Fix the same task check in perf_event_set_output

Karol Herbst (1):
drm/nouveau/disp: Support more modes by checking with lower bpc

Kees Jan Koster (1):

      USB: serial: cp210x: add Silicon Labs IFS-USB-DATACABLE IDs

Keith Busch (2):
blk-mq: directly poll requests
nvme: fix discard support without oncs

Kemeng Shi (1):
blk-throttle: Fix that bps of child could exceed bps limited in parent

Kuniyuki Iwashima (2):

      raw: Fix NULL deref in raw_get_next().
      ping: Fix potentail NULL deref for /proc/net/icmp.

Lars-Peter Clausen (1):
iio: adc: ti-ads7950: Set can_sleep flag for GPIO chip

Li Zetao (1):
scsi: qla2xxx: Fix memory leak in qla2x00_probe_one()

Liam R. Howlett (13):
maple_tree: remove GFP_ZERO from kmem_cache_alloc() and kmem_cache_alloc_bulk()
maple_tree: fix potential rcu issue
maple_tree: reduce user error potential
maple_tree: fix handle of invalidated state in mas_wr_store_setup()
maple_tree: fix mas_prev() and mas_find() state handling
maple_tree: be more cautious about dead nodes
maple_tree: refine ma_state init from mas_start()
maple_tree: detect dead nodes in mas_start()
maple_tree: fix freeing of nodes in rcu mode
maple_tree: remove extra smp_wmb() from mas_dead_leaves()
maple_tree: add smp_rmb() to dead node detection
maple_tree: add RCU lock checking to rcu callback functions
mm: enable maple tree RCU mode by default.

Lingyu Liu (1):
ice: Reset FDIR counter in FDIR init stage

Lukas Wunner (6):
cxl/pci: Fix CDAT retrieval on big endian cxl/pci: Handle truncated CDAT header cxl/pci: Handle truncated CDAT entries cxl/pci: Handle excessive CDAT length PCI/DOE: Silence WARN splat with CONFIG_DEBUG_OBJECTS=y PCI/DOE: Fix memory leak with CONFIG_DEBUG_OBJECTS=y

Marc Zyngier (3):
KVM: arm64: PMU: Align chained counter implementation with architecture pseudocode
KVM: arm64: PMU: Distinguish between 64bit counter and 64bit overflow
KVM: arm64: PMU: Sanitise PMCR_EL0.LP on first vcpu run

Mario Limonciello (1):
x86/ACPI/boot: Use FADT version to check support for online capable

Marios Makassikis (1):
ksmbd: do not call kvmalloc() with __GFP_NORETRY | __GFP_NO_WARN

Mark Pearson (2):
platform/x86: think-lmi: Fix memory leaks when parsing ThinkStation WMI strings platform/x86: think-lmi: Clean up display of current_value on Thinkstation

Mathias Nyman (1):
xhci: Free the command allocated for setting LPM if we return early

Michael Sit Wei Hong (4):
net: phylink: add phylink_expects_phy() method
net: stmmac: check if MAC needs to attach to a PHY
net: stmmac: remove redundant fixup to support fixed-link mode
net: stmmac: check fwnode for phy device before scanning for phy

Michal Sojka (1):
can: isotp: isotp_ops: fix poll() to not report false EPOLLOUT events

Mike Snitzer (1):
dm: fix improper splitting for abnormal bios

Min Li (1):
drm/i915: fix race condition UAF in i915_perf_add_config_ioctl

Ming Lei (1):
block: ublk: make sure that block size is set correctly

Mohammed Gamal (1):
Drivers: vmbus: Check for channel allocation before looking up relids

Muchun Song (2):
mm: kfence: fix PG_slab and memcg_data clearing
mm: kfence: fix handling discontiguous page

Namjae Jeon (1):
ksmbd: fix slab-out-of-bounds in init_smb2_rsp_hdr

Nico Boehr (1):
KVM: s390: pv: fix external interruption loop not always detected

Nuno Sá (3):
iio: buffer: correctly return bytes written in output buffers
iio: buffer: make sure O_NONBLOCK is respected
iio: adc: ad7791: fix IRQ flags

Oleksij Rempel (1):

      can: j1939: j1939_tp_tx_dat_new(): fix out-of-bounds memory access

Oliver Hartkopp (2):
can: isotp: fix race between isotp_sendsmg() and isotp_release()
can: isotp: isotp_recvmsg(): use sock_recv_cmsgs() to get SOCK_RXQ_OVFL infos

Pawel Laszczak (1):
usb: cdnsp: Fixes error: uninitialized symbol 'len'

Peng Zhang (2):
maple_tree: fix get wrong data_end in mtree_lookup_walk()
maple_tree: fix a potential concurrency bug in RCU mode

Peter Xu (1):
mm/hugetlb: fix uffd wr-protection for CoW optimization path

RD Babiera (1):
usb: typec: altmodes/displayport: Fix configure initial pin assignment

Randy Dunlap (1):
gpio: GPIO_REGMAP: select REGMAP instead of depending on it

Ranjani Sridharan (1):
ASoC: SOF: ipc4: Ensure DSP is in D0I0 during sof_ipc4_set_get_data()

Reiji Watanabe (1):
KVM: arm64: PMU: Don't save PMCR_EL0.{C,P} for the vCPU

Robert Foss (1):
drm/bridge: lt9611: Fix PLL being unable to lock

Roman Li (1):
drm/amd/display: Clear MST topology if it fails to resume

Rongwei Wang (1):
mm/swap: fix swap_info_struct race between swapoff and get_swap_pages()

Ryder Lee (1):

      wifi: mac80211: fix the size calculation of ieee80211_ie_len_eht_cap()

Ryusuke Konishi (2):
nilfs2: fix potential UAF of struct nilfs_sc_info in nilfs_segctor_thread()
nilfs2: fix sysfs interface lifetime

Sean Christopherson (2):
KVM: x86: Clear "has_error_code", not "error_code", for RM exception injection
KVM: nVMX: Do not report error code when synthesizing VM-Exit from Real Mode

Sergey Senozhatsky (1):
zsmalloc: document freeable stats

Shailend Chand (1):
gve: Secure enough bytes in the first TX desc for all TCP pkts

Sherry Sun (1):
tty: serial: fsl_lpuart: avoid checking for transfer complete when UARTCTRL_SBK is asserted in lpuart32_tx_empty

Siddharth Vadapalli (1):
net: ethernet: ti: am65-cpsw: Fix mdio cleanup in probe

Simei Su (1):
ice: fix wrong fallback logic for FDIR

Song Yoong Siang (1):
net: stmmac: Add queue reset into stmmac_xdp_open() function

Sricharan Ramabadhran (1):
net: qrtr: Do not do DEL_SERVER broadcast after DEL_CLIENT

Srinivas Kandagatla (1):
ASoC: codecs: lpass: fix the order or clks turn off during suspend

Steve Clevenger (1):

      coresight-etm4: Fix for() loop drvdata->nr_addr_cmp range bug

Steven Rostedt (Google) (2):
tracing: Free error logs of tracing instances tracing/synthetic: Make lastcmd_mutex static

Suzuki K Poulose (1):
coresight: etm4x: Do not access TRCIDR1 for identification

Takashi Iwai (1):
ALSA: hda/hdmi: Preserve the previous PCM device upon re-enablement

Thiago Rafael Becker (1):
cifs: sanitize paths in cifs_update_super_prepath.

Tim Huang (1):
drm/amdgpu: skip psp suspend for IMU enabled ASICs mode2 reset

Tvrtko Ursulin (1):
drm/i915: Fix context runtime accounting

Tze-nan Wu (1):
tracing/synthetic: Fix races on freeing last_cmd

Uwe Kleine-König (6):
pwm: Make .get_state() callback return an error code
pwm: hibvt: Explicitly set .polarity in .get_state()
pwm: cros-ec: Explicitly set .polarity in .get_state()
pwm: iqs620a: Explicitly set .polarity in .get_state()
pwm: sprd: Explicitly set .polarity in .get_state()
pwm: meson: Explicitly set .polarity in .get_state()

Ville Syrjälä (2):
drm/i915: Use _MMIO_PIPE() for SKL_BOTTOM_COLOR
drm/i915: Split icl_color_commit_noarm() from skl_color_commit_noarm()

Wayne Chang (1):
usb: xhci: tegra: fix sleep in atomic call

William Breathitt Gray (3):
iio: dac: cio-dac: Fix max DAC write value check for 12-bit
counter: 104-quad-8: Fix race condition between FLAG and CNTR reads
counter: 104-quad-8: Fix Synapse action reported for Index signals

Wojciech Lukowicz (2):
io_uring: fix return value when removing provided buffers
io_uring: fix memory leak when removing provided buffers

Xin Long (1):
sctp: check send stream number after wait_for_sndbuf

Yafang Shao (1):
mm: vmalloc: avoid warn_alloc noise caused by fatal signal

Yu Kuai (1):
block: don't set GD_NEED_PART_SCAN if scan partition failed

Zheng Yejian (2):
ftrace: Fix issue that 'direct->addr' not restored in modify_ftrace_direct()
ring-buffer: Fix race while reader and writer are on the same page

Zhong Jinghua (1):
scsi: iscsi_tcp: Check that sock is valid before iscsi_set_param()

Ziyang Xuan (2):
net: qrtr: Fix a refcount bug in qrtr_recvmsg()
ipv6: Fix an uninit variable access bug in __ip6_make_skb()

author maintainer
#1 lore raw
Documentation/devicetree/bindings/serial/renesas,scif.yaml +2 -2
index f930e7f1349f..52c094873863 100644
@@ -91,7 +91,7 @@ properties:
           - description: Error interrupt
           - description: Receive buffer full interrupt
           - description: Transmit buffer empty interrupt
-          - description: Transmit End interrupt
+          - description: Break interrupt
       - items:
           - description: Error interrupt
           - description: Receive buffer full interrupt
@@ -106,7 +106,7 @@ properties:
           - const: eri
           - const: rxi
           - const: txi
-          - const: tei
+          - const: bri
       - items:
           - const: eri
           - const: rxi
Documentation/mm/zsmalloc.rst +2 -0
index 6e79893d6132..d98607aa9c1f 100644
@@ -68,6 +68,8 @@ pages_used
 	the number of pages allocated for the class
 pages_per_zspage
 	the number of 0-order pages to make a zspage
+freeable
+	the approximate number of pages class compaction can free
 
 We assign a zspage to ZS_ALMOST_EMPTY fullness group when n <= N / f, where
 
Makefile +1 -1
index a162f6cdf77c..4f9939dec2c2 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 6
 PATCHLEVEL = 1
-SUBLEVEL = 23
+SUBLEVEL = 24
 EXTRAVERSION =
 NAME = Hurr durr I'ma ninja sloth
 
arch/arm64/kernel/compat_alignment.c +14 -18
index 5edec2f49ec9..deff21bfa680 100644
@@ -314,36 +314,32 @@ int do_compat_alignment_fixup(unsigned long addr, struct pt_regs *regs)
 	int (*handler)(unsigned long addr, u32 instr, struct pt_regs *regs);
 	unsigned int type;
 	u32 instr = 0;
-	u16 tinstr = 0;
 	int isize = 4;
 	int thumb2_32b = 0;
-	int fault;
 
 	instrptr = instruction_pointer(regs);
 
 	if (compat_thumb_mode(regs)) {
 		__le16 __user *ptr = (__le16 __user *)(instrptr & ~1);
+		u16 tinstr, tinst2;
 
-		fault = alignment_get_thumb(regs, ptr, &tinstr);
-		if (!fault) {
-			if (IS_T32(tinstr)) {
-				/* Thumb-2 32-bit */
-				u16 tinst2;
-				fault = alignment_get_thumb(regs, ptr + 1, &tinst2);
-				instr = ((u32)tinstr << 16) | tinst2;
-				thumb2_32b = 1;
-			} else {
-				isize = 2;
-				instr = thumb2arm(tinstr);
-			}
+		if (alignment_get_thumb(regs, ptr, &tinstr))
+			return 1;
+
+		if (IS_T32(tinstr)) { /* Thumb-2 32-bit */
+			if (alignment_get_thumb(regs, ptr + 1, &tinst2))
+				return 1;
+			instr = ((u32)tinstr << 16) | tinst2;
+			thumb2_32b = 1;
+		} else {
+			isize = 2;
+			instr = thumb2arm(tinstr);
 		}
 	} else {
-		fault = alignment_get_arm(regs, (__le32 __user *)instrptr, &instr);
+		if (alignment_get_arm(regs, (__le32 __user *)instrptr, &instr))
+			return 1;
 	}
 
-	if (fault)
-		return 1;
-
 	switch (CODING_BITS(instr)) {
 	case 0x00000000:	/* 3.13.4 load/store instruction extensions */
 		if (LDSTHD_I_BIT(instr))
arch/arm64/kvm/pmu-emul.c +113 -239

500 lines not on this page · raw message

arch/arm64/kvm/sys_regs.c +4 -2
index bfe4f17232b3..1f80e17a6460 100644
@@ -697,13 +697,15 @@ static bool access_pmcr(struct kvm_vcpu *vcpu, struct sys_reg_params *p,
 		return false;
 
 	if (p->is_write) {
-		/* Only update writeable bits of PMCR */
+		/*
+		 * Only update writeable bits of PMCR (continuing into
+		 * kvm_pmu_handle_pmcr() as well)
+		 */
 		val = __vcpu_sys_reg(vcpu, PMCR_EL0);
 		val &= ~ARMV8_PMU_PMCR_MASK;
 		val |= p->regval & ARMV8_PMU_PMCR_MASK;
 		if (!kvm_supports_32bit_el0())
 			val |= ARMV8_PMU_PMCR_LC;
-		__vcpu_sys_reg(vcpu, PMCR_EL0) = val;
 		kvm_pmu_handle_pmcr(vcpu, val);
 		kvm_vcpu_pmu_restore_guest(vcpu);
 	} else {
arch/s390/kvm/intercept.c +24 -8
index 88112065d941..ee7478a60144 100644
@@ -271,10 +271,18 @@ static int handle_prog(struct kvm_vcpu *vcpu)
  * handle_external_interrupt - used for external interruption interceptions
  * @vcpu: virtual cpu
  *
- * This interception only occurs if the CPUSTAT_EXT_INT bit was set, or if
- * the new PSW does not have external interrupts disabled. In the first case,
- * we've got to deliver the interrupt manually, and in the second case, we
- * drop to userspace to handle the situation there.
+ * This interception occurs if:
+ * - the CPUSTAT_EXT_INT bit was already set when the external interrupt
+ *   occurred. In this case, the interrupt needs to be injected manually to
+ *   preserve interrupt priority.
+ * - the external new PSW has external interrupts enabled, which will cause an
+ *   interruption loop. We drop to userspace in this case.
+ *
+ * The latter case can be detected by inspecting the external mask bit in the
+ * external new psw.
+ *
+ * Under PV, only the latter case can occur, since interrupt priorities are
+ * handled in the ultravisor.
  */
 static int handle_external_interrupt(struct kvm_vcpu *vcpu)
 {
@@ -285,10 +293,18 @@ static int handle_external_interrupt(struct kvm_vcpu *vcpu)
 
 	vcpu->stat.exit_external_interrupt++;
 
-	rc = read_guest_lc(vcpu, __LC_EXT_NEW_PSW, &newpsw, sizeof(psw_t));
-	if (rc)
-		return rc;
-	/* We can not handle clock comparator or timer interrupt with bad PSW */
+	if (kvm_s390_pv_cpu_is_protected(vcpu)) {
+		newpsw = vcpu->arch.sie_block->gpsw;
+	} else {
+		rc = read_guest_lc(vcpu, __LC_EXT_NEW_PSW, &newpsw, sizeof(psw_t));
+		if (rc)
+			return rc;
+	}
+
+	/*
+	 * Clock comparator or timer interrupt with external interrupt enabled
+	 * will cause interrupt loop. Drop to userspace.
+	 */
 	if ((eic == EXT_IRQ_CLK_COMP || eic == EXT_IRQ_CPU_TIMER) &&
 	    (newpsw.mask & PSW_MASK_EXT))
 		return -EOPNOTSUPP;
arch/x86/kernel/acpi/boot.c +7 -2
index 518bda50068c..0f762070a5e1 100644
@@ -146,7 +146,11 @@ static int __init acpi_parse_madt(struct acpi_table_header *table)
 
 		pr_debug("Local APIC address 0x%08x\n", madt->address);
 	}
-	if (madt->header.revision >= 5)
+
+	/* ACPI 6.3 and newer support the online capable bit. */
+	if (acpi_gbl_FADT.header.revision > 6 ||
+	    (acpi_gbl_FADT.header.revision == 6 &&
+	     acpi_gbl_FADT.minor_revision >= 3))
 		acpi_support_online_capable = true;
 
 	default_acpi_madt_oem_check(madt->header.oem_id,
@@ -193,7 +197,8 @@ static bool __init acpi_is_processor_usable(u32 lapic_flags)
 	if (lapic_flags & ACPI_MADT_ENABLED)
 		return true;
 
-	if (acpi_support_online_capable && (lapic_flags & ACPI_MADT_ONLINE_CAPABLE))
+	if (!acpi_support_online_capable ||
+	    (lapic_flags & ACPI_MADT_ONLINE_CAPABLE))
 		return true;
 
 	return false;
arch/x86/kvm/vmx/nested.c +6 -1
index 1d00f7824da1..8e56ec6e72e9 100644
@@ -3845,7 +3845,12 @@ static void nested_vmx_inject_exception_vmexit(struct kvm_vcpu *vcpu)
 		exit_qual = 0;
 	}
 
-	if (ex->has_error_code) {
+	/*
+	 * Unlike AMD's Paged Real Mode, which reports an error code on #PF
+	 * VM-Exits even if the CPU is in Real Mode, Intel VMX never sets the
+	 * "has error code" flags on VM-Exit if the CPU is in Real Mode.
+	 */
+	if (ex->has_error_code && is_protmode(vcpu)) {
 		/*
 		 * Intel CPUs do not generate error codes with bits 31:16 set,
 		 * and more importantly VMX disallows setting bits 31:16 in the
arch/x86/kvm/x86.c +9 -2
index ab09d292bded..3463ef7f3019 100644
@@ -9853,13 +9853,20 @@ int kvm_check_nested_events(struct kvm_vcpu *vcpu)
 
 static void kvm_inject_exception(struct kvm_vcpu *vcpu)
 {
+	/*
+	 * Suppress the error code if the vCPU is in Real Mode, as Real Mode
+	 * exceptions don't report error codes.  The presence of an error code
+	 * is carried with the exception and only stripped when the exception
+	 * is injected as intercepted #PF VM-Exits for AMD's Paged Real Mode do
+	 * report an error code despite the CPU being in Real Mode.
+	 */
+	vcpu->arch.exception.has_error_code &= is_protmode(vcpu);
+
 	trace_kvm_inj_exception(vcpu->arch.exception.vector,
 				vcpu->arch.exception.has_error_code,
 				vcpu->arch.exception.error_code,
 				vcpu->arch.exception.injected);
 
-	if (vcpu->arch.exception.error_code && !is_protmode(vcpu))
-		vcpu->arch.exception.error_code = false;
 	static_call(kvm_x86_inject_exception)(vcpu);
 }
 
block/blk-mq.c +1 -3
index aa67a52c5a06..1b04a1c48ee5 100644
@@ -1327,8 +1327,6 @@ bool blk_rq_is_poll(struct request *rq)
 		return false;
 	if (rq->mq_hctx->type != HCTX_TYPE_POLL)
 		return false;
-	if (WARN_ON_ONCE(!rq->bio))
-		return false;
 	return true;
 }
 EXPORT_SYMBOL_GPL(blk_rq_is_poll);
@@ -1336,7 +1334,7 @@ EXPORT_SYMBOL_GPL(blk_rq_is_poll);
 static void blk_rq_poll_completion(struct request *rq, struct completion *wait)
 {
 	do {
-		bio_poll(rq->bio, NULL, 0);
+		blk_mq_poll(rq->q, blk_rq_to_qc(rq), NULL, 0);
 		cond_resched();
 	} while (!completion_done(wait));
 }
block/blk-throttle.c +1 -1
index 847721dc2b2b..f1bc600c4ded 100644
@@ -1066,7 +1066,6 @@ static void tg_dispatch_one_bio(struct throtl_grp *tg, bool rw)
 	sq->nr_queued[rw]--;
 
 	throtl_charge_bio(tg, bio);
-	bio_set_flag(bio, BIO_BPS_THROTTLED);
 
 	/*
 	 * If our parent is another tg, we just need to transfer @bio to
@@ -1079,6 +1078,7 @@ static void tg_dispatch_one_bio(struct throtl_grp *tg, bool rw)
 		throtl_add_bio_tg(bio, &tg->qnode_on_parent[rw], parent_tg);
 		start_parent_slice_with_credit(tg, parent_tg, rw);
 	} else {
+		bio_set_flag(bio, BIO_BPS_THROTTLED);
 		throtl_qnode_add_bio(bio, &tg->qnode_on_parent[rw],
 				     &parent_sq->queued[rw]);
 		BUG_ON(tg->td->nr_queued[rw] <= 0);
block/genhd.c +7 -1
index 0b6928e948f3..62a61388e752 100644
@@ -368,7 +368,6 @@ int disk_scan_partitions(struct gendisk *disk, fmode_t mode)
 	if (disk->open_partitions)
 		return -EBUSY;
 
-	set_bit(GD_NEED_PART_SCAN, &disk->state);
 	/*
 	 * If the device is opened exclusively by current thread already, it's
 	 * safe to scan partitons, otherwise, use bd_prepare_to_claim() to
@@ -381,12 +380,19 @@ int disk_scan_partitions(struct gendisk *disk, fmode_t mode)
 			return ret;
 	}
 
+	set_bit(GD_NEED_PART_SCAN, &disk->state);
 	bdev = blkdev_get_by_dev(disk_devt(disk), mode & ~FMODE_EXCL, NULL);
 	if (IS_ERR(bdev))
 		ret =  PTR_ERR(bdev);
 	else
 		blkdev_put(bdev, mode & ~FMODE_EXCL);
 
+	/*
+	 * If blkdev_get_by_dev() failed early, GD_NEED_PART_SCAN is still set,
+	 * and this will cause that re-assemble partitioned raid device will
+	 * creat partition for underlying disk.
+	 */
+	clear_bit(GD_NEED_PART_SCAN, &disk->state);
 	if (!(mode & FMODE_EXCL))
 		bd_abort_claiming(disk->part0, disk_scan_partitions);
 	return ret;
drivers/acpi/acpi_video.c +13 -2
index 0c79f463fbfd..ed318485eb19 100644
@@ -1984,6 +1984,7 @@ static int instance;
 static int acpi_video_bus_add(struct acpi_device *device)
 {
 	struct acpi_video_bus *video;
+	bool auto_detect;
 	int error;
 	acpi_status status;
 
@@ -2045,10 +2046,20 @@ static int acpi_video_bus_add(struct acpi_device *device)
 	mutex_unlock(&video_list_lock);
 
 	/*
-	 * The userspace visible backlight_device gets registered separately
-	 * from acpi_video_register_backlight().
+	 * If backlight-type auto-detection is used then a native backlight may
+	 * show up later and this may change the result from video to native.
+	 * Therefor normally the userspace visible /sys/class/backlight device
+	 * gets registered separately by the GPU driver calling
+	 * acpi_video_register_backlight() when an internal panel is detected.
+	 * Register the backlight now when not using auto-detection, so that
+	 * when the kernel cmdline or DMI-quirks are used the backlight will
+	 * get registered even if acpi_video_register_backlight() is not called.
 	 */
 	acpi_video_run_bcl_for_osi(video);
+	if (__acpi_video_get_backlight_type(false, &auto_detect) == acpi_backlight_video &&
+	    !auto_detect)
+		acpi_video_bus_register_backlight(video);
+
 	acpi_video_bus_add_notify_handler(video);
 
 	return 0;
drivers/acpi/video_detect.c +45 -13

85 lines not on this page · raw message

drivers/block/ublk_drv.c +23 -3
index 22a790d51284..2ed994a313a9 100644
@@ -233,7 +233,7 @@ static int ublk_validate_params(const struct ublk_device *ub)
 	if (ub->params.types & UBLK_PARAM_TYPE_BASIC) {
 		const struct ublk_param_basic *p = &ub->params.basic;
 
-		if (p->logical_bs_shift > PAGE_SHIFT)
+		if (p->logical_bs_shift > PAGE_SHIFT || p->logical_bs_shift < 9)
 			return -EINVAL;
 
 		if (p->logical_bs_shift > p->physical_bs_shift)
@@ -1202,9 +1202,10 @@ static void ublk_handle_need_get_data(struct ublk_device *ub, int q_id,
 	ublk_queue_cmd(ubq, req);
 }
 
-static int ublk_ch_uring_cmd(struct io_uring_cmd *cmd, unsigned int issue_flags)
+static int __ublk_ch_uring_cmd(struct io_uring_cmd *cmd,
+			       unsigned int issue_flags,
+			       struct ublksrv_io_cmd *ub_cmd)
 {
-	struct ublksrv_io_cmd *ub_cmd = (struct ublksrv_io_cmd *)cmd->cmd;
 	struct ublk_device *ub = cmd->file->private_data;
 	struct ublk_queue *ubq;
 	struct ublk_io *io;
@@ -1306,6 +1307,23 @@ static int ublk_ch_uring_cmd(struct io_uring_cmd *cmd, unsigned int issue_flags)
 	return -EIOCBQUEUED;
 }
 
+static int ublk_ch_uring_cmd(struct io_uring_cmd *cmd, unsigned int issue_flags)
+{
+	struct ublksrv_io_cmd *ub_src = (struct ublksrv_io_cmd *) cmd->cmd;
+	struct ublksrv_io_cmd ub_cmd;
+
+	/*
+	 * Not necessary for async retry, but let's keep it simple and always
+	 * copy the values to avoid any potential reuse.
+	 */
+	ub_cmd.q_id = READ_ONCE(ub_src->q_id);
+	ub_cmd.tag = READ_ONCE(ub_src->tag);
+	ub_cmd.result = READ_ONCE(ub_src->result);
+	ub_cmd.addr = READ_ONCE(ub_src->addr);
+
+	return __ublk_ch_uring_cmd(cmd, issue_flags, &ub_cmd);
+}
+
 static const struct file_operations ublk_ch_fops = {
 	.owner = THIS_MODULE,
 	.open = ublk_ch_open,
@@ -1886,6 +1904,8 @@ static int ublk_ctrl_set_params(struct io_uring_cmd *cmd)
 		/* clear all we don't support yet */
 		ub->params.types &= UBLK_PARAM_TYPE_ALL;
 		ret = ublk_validate_params(ub);
+		if (ret)
+			ub->params.types = 0;
 	}
 	mutex_unlock(&ub->mutex);
 	ublk_put_device(ub);
drivers/counter/104-quad-8.c +9 -22
index deed4afadb29..d9cb937665cf 100644
@@ -97,10 +97,6 @@ struct quad8 {
 	struct quad8_reg __iomem *reg;
 };
 
-/* Borrow Toggle flip-flop */
-#define QUAD8_FLAG_BT BIT(0)
-/* Carry Toggle flip-flop */
-#define QUAD8_FLAG_CT BIT(1)
 /* Error flag */
 #define QUAD8_FLAG_E BIT(4)
 /* Up/Down flag */
@@ -133,6 +129,9 @@ struct quad8 {
 #define QUAD8_CMR_QUADRATURE_X2 0x10
 #define QUAD8_CMR_QUADRATURE_X4 0x18
 
+/* Each Counter is 24 bits wide */
+#define LS7267_CNTR_MAX GENMASK(23, 0)
+
 static int quad8_signal_read(struct counter_device *counter,
 			     struct counter_signal *signal,
 			     enum counter_signal_level *level)
@@ -156,18 +155,10 @@ static int quad8_count_read(struct counter_device *counter,
 {
 	struct quad8 *const priv = counter_priv(counter);
 	struct channel_reg __iomem *const chan = priv->reg->channel + count->id;
-	unsigned int flags;
-	unsigned int borrow;
-	unsigned int carry;
 	unsigned long irqflags;
 	int i;
 
-	flags = ioread8(&chan->control);
-	borrow = flags & QUAD8_FLAG_BT;
-	carry = !!(flags & QUAD8_FLAG_CT);
-
-	/* Borrow XOR Carry effectively doubles count range */
-	*val = (unsigned long)(borrow ^ carry) << 24;
+	*val = 0;
 
 	spin_lock_irqsave(&priv->lock, irqflags);
 
@@ -191,8 +182,7 @@ static int quad8_count_write(struct counter_device *counter,
 	unsigned long irqflags;
 	int i;
 
-	/* Only 24-bit values are supported */
-	if (val > 0xFFFFFF)
+	if (val > LS7267_CNTR_MAX)
 		return -ERANGE;
 
 	spin_lock_irqsave(&priv->lock, irqflags);
@@ -378,7 +368,7 @@ static int quad8_action_read(struct counter_device *counter,
 
 	/* Handle Index signals */
 	if (synapse->signal->id >= 16) {
-		if (priv->preset_enable[count->id])
+		if (!priv->preset_enable[count->id])
 			*action = COUNTER_SYNAPSE_ACTION_RISING_EDGE;
 		else
 			*action = COUNTER_SYNAPSE_ACTION_NONE;
@@ -806,8 +796,7 @@ static int quad8_count_preset_write(struct counter_device *counter,
 	struct quad8 *const priv = counter_priv(counter);
 	unsigned long irqflags;
 
-	/* Only 24-bit values are supported */
-	if (preset > 0xFFFFFF)
+	if (preset > LS7267_CNTR_MAX)
 		return -ERANGE;
 
 	spin_lock_irqsave(&priv->lock, irqflags);
@@ -834,8 +823,7 @@ static int quad8_count_ceiling_read(struct counter_device *counter,
 		*ceiling = priv->preset[count->id];
 		break;
 	default:
-		/* By default 0x1FFFFFF (25 bits unsigned) is maximum count */
-		*ceiling = 0x1FFFFFF;
+		*ceiling = LS7267_CNTR_MAX;
 		break;
 	}
 
@@ -850,8 +838,7 @@ static int quad8_count_ceiling_write(struct counter_device *counter,
 	struct quad8 *const priv = counter_priv(counter);
 	unsigned long irqflags;
 
-	/* Only 24-bit values are supported */
-	if (ceiling > 0xFFFFFF)
+	if (ceiling > LS7267_CNTR_MAX)
 		return -ERANGE;
 
 	spin_lock_irqsave(&priv->lock, irqflags);
drivers/cxl/core/pci.c +23 -15
index 9240df53ed87..a8456d5441fc 100644
@@ -483,7 +483,7 @@ static struct pci_doe_mb *find_cdat_doe(struct device *uport)
 	return NULL;
 }
 
-#define CDAT_DOE_REQ(entry_handle)					\
+#define CDAT_DOE_REQ(entry_handle) cpu_to_le32				\
 	(FIELD_PREP(CXL_DOE_TABLE_ACCESS_REQ_CODE,			\
 		    CXL_DOE_TABLE_ACCESS_REQ_CODE_READ) |		\
 	 FIELD_PREP(CXL_DOE_TABLE_ACCESS_TABLE_TYPE,			\
@@ -496,8 +496,8 @@ static void cxl_doe_task_complete(struct pci_doe_task *task)
 }
 
 struct cdat_doe_task {
-	u32 request_pl;
-	u32 response_pl[32];
+	__le32 request_pl;
+	__le32 response_pl[32];
 	struct completion c;
 	struct pci_doe_task task;
 };
@@ -531,10 +531,10 @@ static int cxl_cdat_get_length(struct device *dev,
 		return rc;
 	}
 	wait_for_completion(&t.c);
-	if (t.task.rv < sizeof(u32))
+	if (t.task.rv < 2 * sizeof(__le32))
 		return -EIO;
 
-	*length = t.response_pl[1];
+	*length = le32_to_cpu(t.response_pl[1]);
 	dev_dbg(dev, "CDAT length %zu\n", *length);
 
 	return 0;
@@ -545,13 +545,13 @@ static int cxl_cdat_read_table(struct device *dev,
 			       struct cxl_cdat *cdat)
 {
 	size_t length = cdat->length;
-	u32 *data = cdat->table;
+	__le32 *data = cdat->table;
 	int entry_handle = 0;
 
 	do {
 		DECLARE_CDAT_DOE_TASK(CDAT_DOE_REQ(entry_handle), t);
+		struct cdat_entry_header *entry;
 		size_t entry_dw;
-		u32 *entry;
 		int rc;
 
 		rc = pci_doe_submit_task(cdat_doe, &t.task);
@@ -560,26 +560,34 @@ static int cxl_cdat_read_table(struct device *dev,
 			return rc;
 		}
 		wait_for_completion(&t.c);
-		/* 1 DW header + 1 DW data min */
-		if (t.task.rv < (2 * sizeof(u32)))
+
+		/* 1 DW Table Access Response Header + CDAT entry */
+		entry = (struct cdat_entry_header *)(t.response_pl + 1);
+		if ((entry_handle == 0 &&
+		     t.task.rv != sizeof(__le32) + sizeof(struct cdat_header)) ||
+		    (entry_handle > 0 &&
+		     (t.task.rv < sizeof(__le32) + sizeof(*entry) ||
+		      t.task.rv != sizeof(__le32) + le16_to_cpu(entry->length))))
 			return -EIO;
 
 		/* Get the CXL table access header entry handle */
 		entry_handle = FIELD_GET(CXL_DOE_TABLE_ACCESS_ENTRY_HANDLE,
-					 t.response_pl[0]);
-		entry = t.response_pl + 1;
-		entry_dw = t.task.rv / sizeof(u32);
+					 le32_to_cpu(t.response_pl[0]));
+		entry_dw = t.task.rv / sizeof(__le32);
 		/* Skip Header */
 		entry_dw -= 1;
-		entry_dw = min(length / sizeof(u32), entry_dw);
+		entry_dw = min(length / sizeof(__le32), entry_dw);
 		/* Prevent length < 1 DW from causing a buffer overflow */
 		if (entry_dw) {
-			memcpy(data, entry, entry_dw * sizeof(u32));
-			length -= entry_dw * sizeof(u32);
+			memcpy(data, entry, entry_dw * sizeof(__le32));
+			length -= entry_dw * sizeof(__le32);
 			data += entry_dw;
 		}
 	} while (entry_handle != CXL_DOE_TABLE_ACCESS_LAST_ENTRY);
 
+	/* Length in CDAT header may exceed concatenation of CDAT entries */
+	cdat->length -= length;
+
 	return 0;
 }
 
drivers/cxl/cxlpci.h +14 -0
index eec597dbe763..79e5603dfc82 100644
@@ -71,6 +71,20 @@ static inline resource_size_t cxl_regmap_to_base(struct pci_dev *pdev,
 	return pci_resource_start(pdev, map->barno) + map->block_offset;
 }
 
+struct cdat_header {
+	__le32 length;
+	u8 revision;
+	u8 checksum;
+	u8 reserved[6];
+	__le32 sequence;
+} __packed;
+
+struct cdat_entry_header {
+	u8 type;
+	u8 reserved;
+	__le16 length;
+} __packed;
+
 int devm_cxl_port_enumerate_dports(struct cxl_port *port);
 struct cxl_dev_state;
 int cxl_hdm_decode_init(struct cxl_dev_state *cxlds, struct cxl_hdm *cxlhdm);
drivers/gpio/Kconfig +1 -1
index a01af1180616..e3af86f06c63 100644
@@ -100,7 +100,7 @@ config GPIO_GENERIC
 	tristate
 
 config GPIO_REGMAP
-	depends on REGMAP
+	select REGMAP
 	tristate
 
 # put drivers in the right section, in alphabetical order
drivers/gpio/gpio-davinci.c +1 -4
index 59c4c48d8296..69f3d864f69d 100644
@@ -328,7 +328,7 @@ static struct irq_chip gpio_irqchip = {
 	.irq_enable	= gpio_irq_enable,
 	.irq_disable	= gpio_irq_disable,
 	.irq_set_type	= gpio_irq_type,
-	.flags		= IRQCHIP_SET_TYPE_MASKED,
+	.flags		= IRQCHIP_SET_TYPE_MASKED | IRQCHIP_SKIP_SET_WAKE,
 };
 
 static void gpio_irq_handler(struct irq_desc *desc)
@@ -645,9 +645,6 @@ static void davinci_gpio_save_context(struct davinci_gpio_controller *chips,
 		context->set_falling = readl_relaxed(&g->set_falling);
 	}
 
-	/* Clear Bank interrupt enable bit */
-	writel_relaxed(0, base + BINTEN);
-
 	/* Clear all interrupt status registers */
 	writel_relaxed(GENMASK(31, 0), &g->intstat);
 }
drivers/gpio/gpio-mvebu.c +6 -3
index 1bb317b8dcce..91a4232ee58c 100644
@@ -657,9 +657,10 @@ static void mvebu_pwm_free(struct pwm_chip *chip, struct pwm_device *pwm)
 	spin_unlock_irqrestore(&mvpwm->lock, flags);
 }
 
-static void mvebu_pwm_get_state(struct pwm_chip *chip,
-				struct pwm_device *pwm,
-				struct pwm_state *state) {
+static int mvebu_pwm_get_state(struct pwm_chip *chip,
+			       struct pwm_device *pwm,
+			       struct pwm_state *state)
+{
 
 	struct mvebu_pwm *mvpwm = to_mvebu_pwm(chip);
 	struct mvebu_gpio_chip *mvchip = mvpwm->mvchip;
@@ -693,6 +694,8 @@ static void mvebu_pwm_get_state(struct pwm_chip *chip,
 		state->enabled = false;
 
 	spin_unlock_irqrestore(&mvpwm->lock, flags);
+
+	return 0;
 }
 
 static int mvebu_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +18 -0
index 9ef83f3ab3a7..9df5dcedaf3e 100644
@@ -3034,6 +3034,24 @@ static int amdgpu_device_ip_suspend_phase2(struct amdgpu_device *adev)
 		     adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_MES))
 			continue;
 
+		/* SDMA 5.x+ is part of GFX power domain so it's covered by GFXOFF */
+		if (adev->in_s0ix &&
+		    (adev->ip_versions[SDMA0_HWIP][0] >= IP_VERSION(5, 0, 0)) &&
+		    (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_SDMA))
+			continue;
+
+		/* Once swPSP provides the IMU, RLC FW binaries to TOS during cold-boot.
+		 * These are in TMR, hence are expected to be reused by PSP-TOS to reload
+		 * from this location and RLC Autoload automatically also gets loaded
+		 * from here based on PMFW -> PSP message during re-init sequence.
+		 * Therefore, the psp suspend & resume should be skipped to avoid destroy
+		 * the TMR and reload FWs again for IMU enabled APU ASICs.
+		 */
+		if (amdgpu_in_reset(adev) &&
+		    (adev->flags & AMD_IS_APU) && adev->gfx.imu.funcs &&
+		    adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_PSP)
+			continue;
+
 		/* XXX handle errors */
 		r = adev->ip_blocks[i].version->funcs->suspend(adev);
 		/* XXX handle errors */
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +2 -0
index 050e7a52c8f6..6c5ea99223ba 100644
@@ -2175,6 +2175,8 @@ static int detect_mst_link_for_all_connectors(struct drm_device *dev)
 				DRM_ERROR("DM_MST: Failed to start MST\n");
 				aconnector->dc_link->type =
 					dc_connection_single;
+				ret = dm_helpers_dp_mst_stop_top_mgr(aconnector->dc_link->ctx,
+								     aconnector->dc_link);
 				break;
 			}
 		}
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c +1 -1
index 57454967617f..6bd7e4537014 100644
@@ -206,7 +206,7 @@ bool dm_helpers_dp_mst_write_payload_allocation_table(
 	if (enable)
 		drm_dp_add_payload_part1(mst_mgr, mst_state, payload);
 	else
-		drm_dp_remove_payload(mst_mgr, mst_state, payload);
+		drm_dp_remove_payload(mst_mgr, mst_state, payload, payload);
 
 	/* mst_mgr->->payloads are VC payload notify MST branch using DPCD or
 	 * AUX message. The sequence is slot 1-63 allocated sequence for each
drivers/gpu/drm/bridge/lontium-lt9611.c +1 -0
index 3b77238ca4af..ae8c6d9d4095 100644
@@ -258,6 +258,7 @@ static int lt9611_pll_setup(struct lt9611 *lt9611, const struct drm_display_mode
 		{ 0x8126, 0x55 },
 		{ 0x8127, 0x66 },
 		{ 0x8128, 0x88 },
+		{ 0x812a, 0x20 },
 	};
 
 	regmap_multi_reg_write(lt9611->regmap, reg_cfg, ARRAY_SIZE(reg_cfg));
drivers/gpu/drm/bridge/ti-sn65dsi86.c +8 -6
index eb24322df721..aeca9c066bf2 100644
@@ -1500,8 +1500,8 @@ static int ti_sn_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
 	return ret;
 }
 
-static void ti_sn_pwm_get_state(struct pwm_chip *chip, struct pwm_device *pwm,
-				struct pwm_state *state)
+static int ti_sn_pwm_get_state(struct pwm_chip *chip, struct pwm_device *pwm,
+			       struct pwm_state *state)
 {
 	struct ti_sn65dsi86 *pdata = pwm_chip_to_ti_sn_bridge(chip);
 	unsigned int pwm_en_inv;
@@ -1512,19 +1512,19 @@ static void ti_sn_pwm_get_state(struct pwm_chip *chip, struct pwm_device *pwm,
 
 	ret = regmap_read(pdata->regmap, SN_PWM_EN_INV_REG, &pwm_en_inv);
 	if (ret)
-		return;
+		return 0;
 
 	ret = ti_sn65dsi86_read_u16(pdata, SN_BACKLIGHT_SCALE_REG, &scale);
 	if (ret)
-		return;
+		return 0;
 
 	ret = ti_sn65dsi86_read_u16(pdata, SN_BACKLIGHT_REG, &backlight);
 	if (ret)
-		return;
+		return 0;
 
 	ret = regmap_read(pdata->regmap, SN_PWM_PRE_DIV_REG, &pre_div);
 	if (ret)
-		return;
+		return 0;
 
 	state->enabled = FIELD_GET(SN_PWM_EN_MASK, pwm_en_inv);
 	if (FIELD_GET(SN_PWM_INV_MASK, pwm_en_inv))
@@ -1539,6 +1539,8 @@ static void ti_sn_pwm_get_state(struct pwm_chip *chip, struct pwm_device *pwm,
 
 	if (state->duty_cycle > state->period)
 		state->duty_cycle = state->period;
+
+	return 0;
 }
 
 static const struct pwm_ops ti_sn_pwm_ops = {
drivers/gpu/drm/display/drm_dp_mst_topology.c +14 -12
index e77c674b37ca..38dab76ae69e 100644
@@ -3342,7 +3342,8 @@ EXPORT_SYMBOL(drm_dp_add_payload_part1);
  * drm_dp_remove_payload() - Remove an MST payload
  * @mgr: Manager to use.
  * @mst_state: The MST atomic state
- * @payload: The payload to write
+ * @old_payload: The payload with its old state
+ * @new_payload: The payload to write
  *
  * Removes a payload from an MST topology if it was successfully assigned a start slot. Also updates
  * the starting time slots of all other payloads which would have been shifted towards the start of
@@ -3350,36 +3351,37 @@ EXPORT_SYMBOL(drm_dp_add_payload_part1);
  */
 void drm_dp_remove_payload(struct drm_dp_mst_topology_mgr *mgr,
 			   struct drm_dp_mst_topology_state *mst_state,
-			   struct drm_dp_mst_atomic_payload *payload)
+			   const struct drm_dp_mst_atomic_payload *old_payload,
+			   struct drm_dp_mst_atomic_payload *new_payload)
 {
 	struct drm_dp_mst_atomic_payload *pos;
 	bool send_remove = false;
 
 	/* We failed to make the payload, so nothing to do */
-	if (payload->vc_start_slot == -1)
+	if (new_payload->vc_start_slot == -1)
 		return;
 
 	mutex_lock(&mgr->lock);
-	send_remove = drm_dp_mst_port_downstream_of_branch(payload->port, mgr->mst_primary);
+	send_remove = drm_dp_mst_port_downstream_of_branch(new_payload->port, mgr->mst_primary);
 	mutex_unlock(&mgr->lock);
 
 	if (send_remove)
-		drm_dp_destroy_payload_step1(mgr, mst_state, payload);
+		drm_dp_destroy_payload_step1(mgr, mst_state, new_payload);
 	else
 		drm_dbg_kms(mgr->dev, "Payload for VCPI %d not in topology, not sending remove\n",
-			    payload->vcpi);
+			    new_payload->vcpi);
 
 	list_for_each_entry(pos, &mst_state->payloads, next) {
-		if (pos != payload && pos->vc_start_slot > payload->vc_start_slot)
-			pos->vc_start_slot -= payload->time_slots;
+		if (pos != new_payload && pos->vc_start_slot > new_payload->vc_start_slot)
+			pos->vc_start_slot -= old_payload->time_slots;
 	}
-	payload->vc_start_slot = -1;
+	new_payload->vc_start_slot = -1;
 
 	mgr->payload_count--;
-	mgr->next_start_slot -= payload->time_slots;
+	mgr->next_start_slot -= old_payload->time_slots;
 
-	if (payload->delete)
-		drm_dp_mst_put_port_malloc(payload->port);
+	if (new_payload->delete)
+		drm_dp_mst_put_port_malloc(new_payload->port);
 }
 EXPORT_SYMBOL(drm_dp_remove_payload);
 
drivers/gpu/drm/i915/display/intel_color.c +20 -1
index c85757f55112..78211e583fd7 100644
@@ -2098,6 +2098,25 @@ static void glk_read_luts(struct intel_crtc_state *crtc_state)
 	}
 }
 
+static void icl_color_commit_arm(const struct intel_crtc_state *crtc_state)
+{
+	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
+	struct drm_i915_private *i915 = to_i915(crtc->base.dev);
+	enum pipe pipe = crtc->pipe;
+
+	/*
+	 * We don't (yet) allow userspace to control the pipe background color,
+	 * so force it to black.
+	 */
+	intel_de_write(i915, SKL_BOTTOM_COLOR(pipe), 0);
+
+	intel_de_write(i915, GAMMA_MODE(crtc->pipe),
+		       crtc_state->gamma_mode);
+
+	intel_de_write_fw(i915, PIPE_CSC_MODE(crtc->pipe),
+			  crtc_state->csc_mode);
+}
+
 static struct drm_property_blob *
 icl_read_lut_multi_segment(struct intel_crtc *crtc)
 {
@@ -2183,7 +2202,7 @@ static const struct intel_color_funcs i9xx_color_funcs = {
 static const struct intel_color_funcs icl_color_funcs = {
 	.color_check = icl_color_check,
 	.color_commit_noarm = icl_color_commit_noarm,
-	.color_commit_arm = skl_color_commit_arm,
+	.color_commit_arm = icl_color_commit_arm,
 	.load_luts = icl_load_luts,
 	.read_luts = icl_read_luts,
 };
drivers/gpu/drm/i915/display/intel_dp_mst.c +10 -4
index 27c2098dd707..9a6822256ddf 100644
@@ -364,8 +364,14 @@ static void intel_mst_disable_dp(struct intel_atomic_state *state,
 	struct intel_dp *intel_dp = &dig_port->dp;
 	struct intel_connector *connector =
 		to_intel_connector(old_conn_state->connector);
-	struct drm_dp_mst_topology_state *mst_state =
-		drm_atomic_get_mst_topology_state(&state->base, &intel_dp->mst_mgr);
+	struct drm_dp_mst_topology_state *old_mst_state =
+		drm_atomic_get_old_mst_topology_state(&state->base, &intel_dp->mst_mgr);
+	struct drm_dp_mst_topology_state *new_mst_state =
+		drm_atomic_get_new_mst_topology_state(&state->base, &intel_dp->mst_mgr);
+	const struct drm_dp_mst_atomic_payload *old_payload =
+		drm_atomic_get_mst_payload_state(old_mst_state, connector->port);
+	struct drm_dp_mst_atomic_payload *new_payload =
+		drm_atomic_get_mst_payload_state(new_mst_state, connector->port);
 	struct drm_i915_private *i915 = to_i915(connector->base.dev);
 
 	drm_dbg_kms(&i915->drm, "active links %d\n",
@@ -373,8 +379,8 @@ static void intel_mst_disable_dp(struct intel_atomic_state *state,
 
 	intel_hdcp_disable(intel_mst->connector);
 
-	drm_dp_remove_payload(&intel_dp->mst_mgr, mst_state,
-			      drm_atomic_get_mst_payload_state(mst_state, connector->port));
+	drm_dp_remove_payload(&intel_dp->mst_mgr, new_mst_state,
+			      old_payload, new_payload);
 
 	intel_audio_codec_disable(encoder, old_crtc_state, old_conn_state);
 }
drivers/gpu/drm/i915/gt/intel_execlists_submission.c +10 -2
index bfd1ffc71a48..fc4a84628985 100644
@@ -2017,6 +2017,8 @@ process_csb(struct intel_engine_cs *engine, struct i915_request **inactive)
 	 * inspecting the queue to see if we need to resumbit.
 	 */
 	if (*prev != *execlists->active) { /* elide lite-restores */
+		struct intel_context *prev_ce = NULL, *active_ce = NULL;
+
 		/*
 		 * Note the inherent discrepancy between the HW runtime,
 		 * recorded as part of the context switch, and the CPU
@@ -2028,9 +2030,15 @@ process_csb(struct intel_engine_cs *engine, struct i915_request **inactive)
 		 * and correct overselves later when updating from HW.
 		 */
 		if (*prev)
-			lrc_runtime_stop((*prev)->context);
+			prev_ce = (*prev)->context;
 		if (*execlists->active)
-			lrc_runtime_start((*execlists->active)->context);
+			active_ce = (*execlists->active)->context;
+		if (prev_ce != active_ce) {
+			if (prev_ce)
+				lrc_runtime_stop(prev_ce);
+			if (active_ce)
+				lrc_runtime_start(active_ce);
+		}
 		new_timeslice(execlists);
 	}
 
drivers/gpu/drm/i915/i915_perf.c +3 -3
index 0defbb43ceea..3ce49c118b83 100644
@@ -4270,13 +4270,13 @@ int i915_perf_add_config_ioctl(struct drm_device *dev, void *data,
 		err = oa_config->id;
 		goto sysfs_err;
 	}
-
-	mutex_unlock(&perf->metrics_lock);
+	id = oa_config->id;
 
 	drm_dbg(&perf->i915->drm,
 		"Added config %s id=%i\n", oa_config->uuid, oa_config->id);
+	mutex_unlock(&perf->metrics_lock);
 
-	return oa_config->id;
+	return id;
 
 sysfs_err:
 	mutex_unlock(&perf->metrics_lock);
drivers/gpu/drm/i915/i915_reg.h +2 -1
index 64eacd11b8bf..2372bfa04aa8 100644
@@ -3747,9 +3747,10 @@
 
 /* Skylake+ pipe bottom (background) color */
 #define _SKL_BOTTOM_COLOR_A		0x70034
+#define _SKL_BOTTOM_COLOR_B		0x71034
 #define   SKL_BOTTOM_COLOR_GAMMA_ENABLE		REG_BIT(31)
 #define   SKL_BOTTOM_COLOR_CSC_ENABLE		REG_BIT(30)
-#define SKL_BOTTOM_COLOR(pipe)		_MMIO_PIPE2(pipe, _SKL_BOTTOM_COLOR_A)
+#define SKL_BOTTOM_COLOR(pipe)		_MMIO_PIPE(pipe, _SKL_BOTTOM_COLOR_A, _SKL_BOTTOM_COLOR_B)
 
 #define _ICL_PIPE_A_STATUS			0x70058
 #define ICL_PIPESTATUS(pipe)			_MMIO_PIPE2(pipe, _ICL_PIPE_A_STATUS)
drivers/gpu/drm/nouveau/dispnv50/disp.c +33 -1
index 33c97d510999..006cb76adaa9 100644
@@ -410,6 +410,35 @@ nv50_outp_atomic_check_view(struct drm_encoder *encoder,
 	return 0;
 }
 
+static void
+nv50_outp_atomic_fix_depth(struct drm_encoder *encoder, struct drm_crtc_state *crtc_state)
+{
+	struct nv50_head_atom *asyh = nv50_head_atom(crtc_state);
+	struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
+	struct drm_display_mode *mode = &asyh->state.adjusted_mode;
+	unsigned int max_rate, mode_rate;
+
+	switch (nv_encoder->dcb->type) {
+	case DCB_OUTPUT_DP:
+		max_rate = nv_encoder->dp.link_nr * nv_encoder->dp.link_bw;
+
+		/* we don't support more than 10 anyway */
+		asyh->or.bpc = min_t(u8, asyh->or.bpc, 10);
+
+		/* reduce the bpc until it works out */
+		while (asyh->or.bpc > 6) {
+			mode_rate = DIV_ROUND_UP(mode->clock * asyh->or.bpc * 3, 8);
+			if (mode_rate <= max_rate)
+				break;
+
+			asyh->or.bpc -= 2;
+		}
+		break;
+	default:
+		break;
+	}
+}
+
 static int
 nv50_outp_atomic_check(struct drm_encoder *encoder,
 		       struct drm_crtc_state *crtc_state,
@@ -428,6 +457,9 @@ nv50_outp_atomic_check(struct drm_encoder *encoder,
 	if (crtc_state->mode_changed || crtc_state->connectors_changed)
 		asyh->or.bpc = connector->display_info.bpc;
 
+	/* We might have to reduce the bpc */
+	nv50_outp_atomic_fix_depth(encoder, crtc_state);
+
 	return 0;
 }
 
@@ -996,7 +1028,7 @@ nv50_msto_prepare(struct drm_atomic_state *state,
 
 	// TODO: Figure out if we want to do a better job of handling VCPI allocation failures here?
 	if (msto->disabled) {
-		drm_dp_remove_payload(mgr, mst_state, payload);
+		drm_dp_remove_payload(mgr, mst_state, payload, payload);
 	} else {
 		if (msto->enabled)
 			drm_dp_add_payload_part1(mgr, mst_state, payload);
drivers/gpu/drm/nouveau/nouveau_dp.c +5 -3
index 20db8ea1a0ba..53185746fb3d 100644
@@ -245,8 +245,6 @@ void nouveau_dp_irq(struct nouveau_drm *drm,
 }
 
 /* TODO:
- * - Use the minimum possible BPC here, once we add support for the max bpc
- *   property.
  * - Validate against the DP caps advertised by the GPU (we don't check these
  *   yet)
  */
@@ -258,7 +256,11 @@ nv50_dp_mode_valid(struct drm_connector *connector,
 {
 	const unsigned int min_clock = 25000;
 	unsigned int max_rate, mode_rate, ds_max_dotclock, clock = mode->clock;
-	const u8 bpp = connector->display_info.bpc * 3;
+	/* Check with the minmum bpc always, so we can advertise better modes.
+	 * In particlar not doing this causes modes to be dropped on HDR
+	 * displays as we might check with a bpc of 16 even.
+	 */
+	const u8 bpp = 6 * 3;
 
 	if (mode->flags & DRM_MODE_FLAG_INTERLACE && !outp->caps.dp_interlace)
 		return MODE_NO_INTERLACE;
drivers/gpu/drm/panfrost/panfrost_mmu.c +1 -0
index 666a5e53fe19..e961fa27702c 100644
@@ -504,6 +504,7 @@ static int panfrost_mmu_map_fault_addr(struct panfrost_device *pfdev, int as,
 		if (IS_ERR(pages[i])) {
 			mutex_unlock(&bo->base.pages_lock);
 			ret = PTR_ERR(pages[i]);
+			pages[i] = NULL;
 			goto err_pages;
 		}
 	}
drivers/hv/connection.c +4 -0
index 9dc27e5d367a..da51b50787df 100644
@@ -409,6 +409,10 @@ void vmbus_disconnect(void)
  */
 struct vmbus_channel *relid2channel(u32 relid)
 {
+	if (vmbus_connection.channels == NULL) {
+		pr_warn_once("relid2channel: relid=%d: No channels mapped!\n", relid);
+		return NULL;
+	}
 	if (WARN_ON(relid >= MAX_CHANNEL_RELIDS))
 		return NULL;
 	return READ_ONCE(vmbus_connection.channels[relid]);
drivers/hwtracing/coresight/coresight-etm4x-core.c +10 -14
index c7a65d1524fc..1cf7478da6ee 100644
@@ -451,7 +451,7 @@ static int etm4_enable_hw(struct etmv4_drvdata *drvdata)
 		if (etm4x_sspcicrn_present(drvdata, i))
 			etm4x_relaxed_write32(csa, config->ss_pe_cmp[i], TRCSSPCICRn(i));
 	}
-	for (i = 0; i < drvdata->nr_addr_cmp; i++) {
+	for (i = 0; i < drvdata->nr_addr_cmp * 2; i++) {
 		etm4x_relaxed_write64(csa, config->addr_val[i], TRCACVRn(i));
 		etm4x_relaxed_write64(csa, config->addr_acc[i], TRCACATRn(i));
 	}
@@ -1010,25 +1010,21 @@ static bool etm4_init_iomem_access(struct etmv4_drvdata *drvdata,
 				   struct csdev_access *csa)
 {
 	u32 devarch = readl_relaxed(drvdata->base + TRCDEVARCH);
-	u32 idr1 = readl_relaxed(drvdata->base + TRCIDR1);
 
 	/*
 	 * All ETMs must implement TRCDEVARCH to indicate that
-	 * the component is an ETMv4. To support any broken
-	 * implementations we fall back to TRCIDR1 check, which
-	 * is not really reliable.
+	 * the component is an ETMv4. Even though TRCIDR1 also
+	 * contains the information, it is part of the "Trace"
+	 * register and must be accessed with the OSLK cleared,
+	 * with MMIO. But we cannot touch the OSLK until we are
+	 * sure this is an ETM. So rely only on the TRCDEVARCH.
 	 */
-	if ((devarch & ETM_DEVARCH_ID_MASK) == ETM_DEVARCH_ETMv4x_ARCH) {
-		drvdata->arch = etm_devarch_to_arch(devarch);
-	} else {
-		pr_warn("CPU%d: ETM4x incompatible TRCDEVARCH: %x, falling back to TRCIDR1\n",
-			smp_processor_id(), devarch);
-
-		if (ETM_TRCIDR1_ARCH_MAJOR(idr1) != ETM_TRCIDR1_ARCH_ETMv4)
-			return false;
-		drvdata->arch = etm_trcidr_to_arch(idr1);
+	if ((devarch & ETM_DEVARCH_ID_MASK) != ETM_DEVARCH_ETMv4x_ARCH) {
+		pr_warn_once("TRCDEVARCH doesn't match ETMv4 architecture\n");
+		return false;
 	}
 
+	drvdata->arch = etm_devarch_to_arch(devarch);
 	*csa = CSDEV_ACCESS_IOMEM(drvdata->base);
 	return true;
 }
drivers/hwtracing/coresight/coresight-etm4x.h +6 -14
index 4b21bb79f168..0174fbf1a963 100644
@@ -753,14 +753,12 @@
  * TRCDEVARCH	- CoreSight architected register
  *                - Bits[15:12] - Major version
  *                - Bits[19:16] - Minor version
- * TRCIDR1	- ETM architected register
- *                - Bits[11:8] - Major version
- *                - Bits[7:4]  - Minor version
- * We must rely on TRCDEVARCH for the version information,
- * however we don't want to break the support for potential
- * old implementations which might not implement it. Thus
- * we fall back to TRCIDR1 if TRCDEVARCH is not implemented
- * for memory mapped components.
+ *
+ * We must rely only on TRCDEVARCH for the version information. Even though,
+ * TRCIDR1 also provides the architecture version, it is a "Trace" register
+ * and as such must be accessed only with Trace power domain ON. This may
+ * not be available at probe time.
+ *
  * Now to make certain decisions easier based on the version
  * we use an internal representation of the version in the
  * driver, as follows :
@@ -786,12 +784,6 @@ static inline u8 etm_devarch_to_arch(u32 devarch)
 				ETM_DEVARCH_REVISION(devarch));
 }
 
-static inline u8 etm_trcidr_to_arch(u32 trcidr1)
-{
-	return ETM_ARCH_VERSION(ETM_TRCIDR1_ARCH_MAJOR(trcidr1),
-				ETM_TRCIDR1_ARCH_MINOR(trcidr1));
-}
-
 enum etm_impdef_type {
 	ETM4_IMPDEF_HISI_CORE_COMMIT,
 	ETM4_IMPDEF_FEATURE_MAX,
drivers/iio/adc/ad7791.c +1 -1
index fee8d129a5f0..86effe8501b4 100644
@@ -253,7 +253,7 @@ static const struct ad_sigma_delta_info ad7791_sigma_delta_info = {
 	.has_registers = true,
 	.addr_shift = 4,
 	.read_mask = BIT(3),
-	.irq_flags = IRQF_TRIGGER_LOW,
+	.irq_flags = IRQF_TRIGGER_FALLING,
 };
 
 static int ad7791_read_raw(struct iio_dev *indio_dev,
drivers/iio/adc/ltc2497.c +2 -4
index 556f10dfb502..e1e14f5d237d 100644
@@ -28,7 +28,6 @@ struct ltc2497_driverdata {
 	struct ltc2497core_driverdata common_ddata;
 	struct i2c_client *client;
 	u32 recv_size;
-	u32 sub_lsb;
 	/*
 	 * DMA (thus cache coherency maintenance) may require the
 	 * transfer buffers to live in their own cache lines.
@@ -65,10 +64,10 @@ static int ltc2497_result_and_measure(struct ltc2497core_driverdata *ddata,
 		 * equivalent to a sign extension.
 		 */
 		if (st->recv_size == 3) {
-			*val = (get_unaligned_be24(st->data.d8) >> st->sub_lsb)
+			*val = (get_unaligned_be24(st->data.d8) >> 6)
 				- BIT(ddata->chip_info->resolution + 1);
 		} else {
-			*val = (be32_to_cpu(st->data.d32) >> st->sub_lsb)
+			*val = (be32_to_cpu(st->data.d32) >> 6)
 				- BIT(ddata->chip_info->resolution + 1);
 		}
 
@@ -122,7 +121,6 @@ static int ltc2497_probe(struct i2c_client *client,
 	st->common_ddata.chip_info = chip_info;
 
 	resolution = chip_info->resolution;
-	st->sub_lsb = 31 - (resolution + 1);
 	st->recv_size = BITS_TO_BYTES(resolution) + 1;
 
 	return ltc2497core_probe(dev, indio_dev);
drivers/iio/adc/qcom-spmi-adc5.c +9 -1
index 821fee60a765..d1b86570768a 100644
@@ -626,12 +626,20 @@ static int adc5_get_fw_channel_data(struct adc5_chip *adc,
 				    struct fwnode_handle *fwnode,
 				    const struct adc5_data *data)
 {
-	const char *name = fwnode_get_name(fwnode), *channel_name;
+	const char *channel_name;
+	char *name;
 	u32 chan, value, varr[2];
 	u32 sid = 0;
 	int ret;
 	struct device *dev = adc->dev;
 
+	name = devm_kasprintf(dev, GFP_KERNEL, "%pfwP", fwnode);
+	if (!name)
+		return -ENOMEM;
+
+	/* Cut the address part */
+	name[strchrnul(name, '@') - name] = '\0';
+
 	ret = fwnode_property_read_u32(fwnode, "reg", &chan);
 	if (ret) {
 		dev_err(dev, "invalid channel number %s\n", name);
drivers/iio/adc/ti-ads7950.c +1 -0
index 2cc9a9bd9db6..263fc3a1b87e 100644
@@ -634,6 +634,7 @@ static int ti_ads7950_probe(struct spi_device *spi)
 	st->chip.label = dev_name(&st->spi->dev);
 	st->chip.parent = &st->spi->dev;
 	st->chip.owner = THIS_MODULE;
+	st->chip.can_sleep = true;
 	st->chip.base = -1;
 	st->chip.ngpio = TI_ADS7950_NUM_GPIOS;
 	st->chip.get_direction = ti_ads7950_get_direction;
drivers/iio/dac/cio-dac.c +2 -2
index 791dd999cf29..18a64f72fc18 100644
@@ -66,8 +66,8 @@ static int cio_dac_write_raw(struct iio_dev *indio_dev,
 	if (mask != IIO_CHAN_INFO_RAW)
 		return -EINVAL;
 
-	/* DAC can only accept up to a 16-bit value */
-	if ((unsigned int)val > 65535)
+	/* DAC can only accept up to a 12-bit value */
+	if ((unsigned int)val > 4095)
 		return -EINVAL;
 
 	priv->chan_out_states[chan->channel] = val;
drivers/iio/imu/Kconfig +1 -0
index f1d7d4b5e222..c2f97629e9cd 100644
@@ -47,6 +47,7 @@ config ADIS16480
 	depends on SPI
 	select IIO_ADIS_LIB
 	select IIO_ADIS_LIB_BUFFER if IIO_BUFFER
+	select CRC32
 	help
 	  Say yes here to build support for Analog Devices ADIS16375, ADIS16480,
 	  ADIS16485, ADIS16488 inertial sensors.
drivers/iio/industrialio-buffer.c +12 -9
index 228598b82a2f..7e7ee307a3f7 100644
@@ -203,24 +203,27 @@ static ssize_t iio_buffer_write(struct file *filp, const char __user *buf,
 				break;
 			}
 
+			if (filp->f_flags & O_NONBLOCK) {
+				if (!written)
+					ret = -EAGAIN;
+				break;
+			}
+
 			wait_woken(&wait, TASK_INTERRUPTIBLE,
 					MAX_SCHEDULE_TIMEOUT);
 			continue;
 		}
 
 		ret = rb->access->write(rb, n - written, buf + written);
-		if (ret == 0 && (filp->f_flags & O_NONBLOCK))
-			ret = -EAGAIN;
+		if (ret < 0)
+			break;
 
-		if (ret > 0) {
-			written += ret;
-			if (written != n && !(filp->f_flags & O_NONBLOCK))
-				continue;
-		}
-	} while (ret == 0);
+		written += ret;
+
+	} while (written != n);
 	remove_wait_queue(&rb->pollq, &wait);
 
-	return ret < 0 ? ret : n;
+	return ret < 0 ? ret : written;
 }
 
 /**
drivers/iio/light/cm32181.c +12 -0
index b1674a5bfa36..d4a34a3bf00d 100644
@@ -429,6 +429,14 @@ static const struct iio_info cm32181_info = {
 	.attrs			= &cm32181_attribute_group,
 };
 
+static void cm32181_unregister_dummy_client(void *data)
+{
+	struct i2c_client *client = data;
+
+	/* Unregister the dummy client */
+	i2c_unregister_device(client);
+}
+
 static int cm32181_probe(struct i2c_client *client)
 {
 	struct device *dev = &client->dev;
@@ -460,6 +468,10 @@ static int cm32181_probe(struct i2c_client *client)
 		client = i2c_acpi_new_device(dev, 1, &board_info);
 		if (IS_ERR(client))
 			return PTR_ERR(client);
+
+		ret = devm_add_action_or_reset(dev, cm32181_unregister_dummy_client, client);
+		if (ret)
+			return ret;
 	}
 
 	cm32181 = iio_priv(indio_dev);
drivers/leds/rgb/leds-qcom-lpg.c +8 -6
index c1a56259226f..f1c2419334e6 100644
@@ -972,8 +972,8 @@ static int lpg_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
 	return ret;
 }
 
-static void lpg_pwm_get_state(struct pwm_chip *chip, struct pwm_device *pwm,
-			      struct pwm_state *state)
+static int lpg_pwm_get_state(struct pwm_chip *chip, struct pwm_device *pwm,
+			     struct pwm_state *state)
 {
 	struct lpg *lpg = container_of(chip, struct lpg, pwm);
 	struct lpg_channel *chan = &lpg->channels[pwm->hwpwm];
@@ -986,20 +986,20 @@ static void lpg_pwm_get_state(struct pwm_chip *chip, struct pwm_device *pwm,
 
 	ret = regmap_read(lpg->map, chan->base + LPG_SIZE_CLK_REG, &val);
 	if (ret)
-		return;
+		return 0;
 
 	refclk = lpg_clk_rates[val & PWM_CLK_SELECT_MASK];
 	if (refclk) {
 		ret = regmap_read(lpg->map, chan->base + LPG_PREDIV_CLK_REG, &val);
 		if (ret)
-			return;
+			return 0;
 
 		pre_div = lpg_pre_divs[FIELD_GET(PWM_FREQ_PRE_DIV_MASK, val)];
 		m = FIELD_GET(PWM_FREQ_EXP_MASK, val);
 
 		ret = regmap_bulk_read(lpg->map, chan->base + PWM_VALUE_REG, &pwm_value, sizeof(pwm_value));
 		if (ret)
-			return;
+			return 0;
 
 		state->period = DIV_ROUND_UP_ULL((u64)NSEC_PER_SEC * LPG_RESOLUTION * pre_div * (1 << m), refclk);
 		state->duty_cycle = DIV_ROUND_UP_ULL((u64)NSEC_PER_SEC * pwm_value * pre_div * (1 << m), refclk);
@@ -1010,13 +1010,15 @@ static void lpg_pwm_get_state(struct pwm_chip *chip, struct pwm_device *pwm,
 
 	ret = regmap_read(lpg->map, chan->base + PWM_ENABLE_CONTROL_REG, &val);
 	if (ret)
-		return;
+		return 0;
 
 	state->enabled = FIELD_GET(LPG_ENABLE_CONTROL_OUTPUT, val);
 	state->polarity = PWM_POLARITY_NORMAL;
 
 	if (state->duty_cycle > state->period)
 		state->duty_cycle = state->period;
+
+	return 0;
 }
 
 static const struct pwm_ops lpg_pwm_ops = {
drivers/md/dm-bio-prison-v1.c +5 -5
index 1f8f98efd97a..138067abe14b 100644
@@ -285,14 +285,14 @@ EXPORT_SYMBOL_GPL(dm_cell_promote_or_release);
 
 struct dm_deferred_entry {
 	struct dm_deferred_set *ds;
-	unsigned count;
+	unsigned int count;
 	struct list_head work_items;
 };
 
 struct dm_deferred_set {
 	spinlock_t lock;
-	unsigned current_entry;
-	unsigned sweeper;
+	unsigned int current_entry;
+	unsigned int sweeper;
 	struct dm_deferred_entry entries[DEFERRED_SET_SIZE];
 };
 
@@ -338,7 +338,7 @@ struct dm_deferred_entry *dm_deferred_entry_inc(struct dm_deferred_set *ds)
 }
 EXPORT_SYMBOL_GPL(dm_deferred_entry_inc);
 
-static unsigned ds_next(unsigned index)
+static unsigned int ds_next(unsigned int index)
 {
 	return (index + 1) % DEFERRED_SET_SIZE;
 }
@@ -373,7 +373,7 @@ EXPORT_SYMBOL_GPL(dm_deferred_entry_dec);
 int dm_deferred_set_add_work(struct dm_deferred_set *ds, struct list_head *work)
 {
 	int r = 1;
-	unsigned next_entry;
+	unsigned int next_entry;
 
 	spin_lock_irq(&ds->lock);
 	if ((ds->sweeper == ds->current_entry) &&
drivers/md/dm-bio-prison-v2.c +6 -6
index 9dec3b61cf70..0cc0d13c40e5 100644
@@ -148,7 +148,7 @@ static bool __find_or_insert(struct dm_bio_prison_v2 *prison,
 
 static bool __get(struct dm_bio_prison_v2 *prison,
 		  struct dm_cell_key_v2 *key,
-		  unsigned lock_level,
+		  unsigned int lock_level,
 		  struct bio *inmate,
 		  struct dm_bio_prison_cell_v2 *cell_prealloc,
 		  struct dm_bio_prison_cell_v2 **cell)
@@ -171,7 +171,7 @@ static bool __get(struct dm_bio_prison_v2 *prison,
 
 bool dm_cell_get_v2(struct dm_bio_prison_v2 *prison,
 		    struct dm_cell_key_v2 *key,
-		    unsigned lock_level,
+		    unsigned int lock_level,
 		    struct bio *inmate,
 		    struct dm_bio_prison_cell_v2 *cell_prealloc,
 		    struct dm_bio_prison_cell_v2 **cell_result)
@@ -224,7 +224,7 @@ EXPORT_SYMBOL_GPL(dm_cell_put_v2);
 
 static int __lock(struct dm_bio_prison_v2 *prison,
 		  struct dm_cell_key_v2 *key,
-		  unsigned lock_level,
+		  unsigned int lock_level,
 		  struct dm_bio_prison_cell_v2 *cell_prealloc,
 		  struct dm_bio_prison_cell_v2 **cell_result)
 {
@@ -255,7 +255,7 @@ static int __lock(struct dm_bio_prison_v2 *prison,
 
 int dm_cell_lock_v2(struct dm_bio_prison_v2 *prison,
 		    struct dm_cell_key_v2 *key,
-		    unsigned lock_level,
+		    unsigned int lock_level,
 		    struct dm_bio_prison_cell_v2 *cell_prealloc,
 		    struct dm_bio_prison_cell_v2 **cell_result)
 {
@@ -291,7 +291,7 @@ EXPORT_SYMBOL_GPL(dm_cell_quiesce_v2);
 
 static int __promote(struct dm_bio_prison_v2 *prison,
 		     struct dm_bio_prison_cell_v2 *cell,
-		     unsigned new_lock_level)
+		     unsigned int new_lock_level)
 {
 	if (!cell->exclusive_lock)
 		return -EINVAL;
@@ -302,7 +302,7 @@ static int __promote(struct dm_bio_prison_v2 *prison,
 
 int dm_cell_lock_promote_v2(struct dm_bio_prison_v2 *prison,
 			    struct dm_bio_prison_cell_v2 *cell,
-			    unsigned new_lock_level)
+			    unsigned int new_lock_level)
 {
 	int r;
 
drivers/md/dm-bio-prison-v2.h +5 -5
index 6e04234268db..5a7d996bbbd8 100644
@@ -44,8 +44,8 @@ struct dm_cell_key_v2 {
 struct dm_bio_prison_cell_v2 {
 	// FIXME: pack these
 	bool exclusive_lock;
-	unsigned exclusive_level;
-	unsigned shared_count;
+	unsigned int exclusive_level;
+	unsigned int shared_count;
 	struct work_struct *quiesce_continuation;
 
 	struct rb_node node;
@@ -86,7 +86,7 @@ void dm_bio_prison_free_cell_v2(struct dm_bio_prison_v2 *prison,
  */
 bool dm_cell_get_v2(struct dm_bio_prison_v2 *prison,
 		    struct dm_cell_key_v2 *key,
-		    unsigned lock_level,
+		    unsigned int lock_level,
 		    struct bio *inmate,
 		    struct dm_bio_prison_cell_v2 *cell_prealloc,
 		    struct dm_bio_prison_cell_v2 **cell_result);
@@ -114,7 +114,7 @@ bool dm_cell_put_v2(struct dm_bio_prison_v2 *prison,
  */
 int dm_cell_lock_v2(struct dm_bio_prison_v2 *prison,
 		    struct dm_cell_key_v2 *key,
-		    unsigned lock_level,
+		    unsigned int lock_level,
 		    struct dm_bio_prison_cell_v2 *cell_prealloc,
 		    struct dm_bio_prison_cell_v2 **cell_result);
 
@@ -132,7 +132,7 @@ void dm_cell_quiesce_v2(struct dm_bio_prison_v2 *prison,
  */
 int dm_cell_lock_promote_v2(struct dm_bio_prison_v2 *prison,
 			    struct dm_bio_prison_cell_v2 *cell,
-			    unsigned new_lock_level);
+			    unsigned int new_lock_level);
 
 /*
  * Adds any held bios to the bio list.
drivers/md/dm-bufio.c +29 -29

179 lines not on this page · raw message

drivers/md/dm-cache-background-tracker.c +4 -4
index 7887f99b82bd..c606e6bfc3f8 100644
@@ -17,7 +17,7 @@ struct bt_work {
 };
 
 struct background_tracker {
-	unsigned max_work;
+	unsigned int max_work;
 	atomic_t pending_promotes;
 	atomic_t pending_writebacks;
 	atomic_t pending_demotes;
@@ -29,7 +29,7 @@ struct background_tracker {
 	struct kmem_cache *work_cache;
 };
 
-struct background_tracker *btracker_create(unsigned max_work)
+struct background_tracker *btracker_create(unsigned int max_work)
 {
 	struct background_tracker *b = kmalloc(sizeof(*b), GFP_KERNEL);
 
@@ -155,13 +155,13 @@ static void update_stats(struct background_tracker *b, struct policy_work *w, in
 	}
 }
 
-unsigned btracker_nr_writebacks_queued(struct background_tracker *b)
+unsigned int btracker_nr_writebacks_queued(struct background_tracker *b)
 {
 	return atomic_read(&b->pending_writebacks);
 }
 EXPORT_SYMBOL_GPL(btracker_nr_writebacks_queued);
 
-unsigned btracker_nr_demotions_queued(struct background_tracker *b)
+unsigned int btracker_nr_demotions_queued(struct background_tracker *b)
 {
 	return atomic_read(&b->pending_demotes);
 }
drivers/md/dm-cache-background-tracker.h +40 -6

70 lines not on this page · raw message

drivers/md/dm-cache-metadata.c +20 -20
index 83a5975bcc72..f5b4c996dc05 100644
@@ -104,7 +104,7 @@ struct dm_cache_metadata {
 	refcount_t ref_count;
 	struct list_head list;
 
-	unsigned version;
+	unsigned int version;
 	struct block_device *bdev;
 	struct dm_block_manager *bm;
 	struct dm_space_map *metadata_sm;
@@ -129,7 +129,7 @@ struct dm_cache_metadata {
 	bool clean_when_opened:1;
 
 	char policy_name[CACHE_POLICY_NAME_SIZE];
-	unsigned policy_version[CACHE_POLICY_VERSION_SIZE];
+	unsigned int policy_version[CACHE_POLICY_VERSION_SIZE];
 	size_t policy_hint_size;
 	struct dm_cache_statistics stats;
 
@@ -260,10 +260,10 @@ static int superblock_lock(struct dm_cache_metadata *cmd,
 static int __superblock_all_zeroes(struct dm_block_manager *bm, bool *result)
 {
 	int r;
-	unsigned i;
+	unsigned int i;
 	struct dm_block *b;
 	__le64 *data_le, zero = cpu_to_le64(0);
-	unsigned sb_block_size = dm_bm_block_size(bm) / sizeof(__le64);
+	unsigned int sb_block_size = dm_bm_block_size(bm) / sizeof(__le64);
 
 	/*
 	 * We can't use a validator here - it may be all zeroes.
@@ -727,7 +727,7 @@ static int __commit_transaction(struct dm_cache_metadata *cmd,
  */
 #define FLAGS_MASK ((1 << 16) - 1)
 
-static __le64 pack_value(dm_oblock_t block, unsigned flags)
+static __le64 pack_value(dm_oblock_t block, unsigned int flags)
 {
 	uint64_t value = from_oblock(block);
 	value <<= 16;
@@ -735,7 +735,7 @@ static __le64 pack_value(dm_oblock_t block, unsigned flags)
 	return cpu_to_le64(value);
 }
 
-static void unpack_value(__le64 value_le, dm_oblock_t *block, unsigned *flags)
+static void unpack_value(__le64 value_le, dm_oblock_t *block, unsigned int *flags)
 {
 	uint64_t value = le64_to_cpu(value_le);
 	uint64_t b = value >> 16;
@@ -749,7 +749,7 @@ static struct dm_cache_metadata *metadata_open(struct block_device *bdev,
 					       sector_t data_block_size,
 					       bool may_format_device,
 					       size_t policy_hint_size,
-					       unsigned metadata_version)
+					       unsigned int metadata_version)
 {
 	int r;
 	struct dm_cache_metadata *cmd;
@@ -810,7 +810,7 @@ static struct dm_cache_metadata *lookup_or_open(struct block_device *bdev,
 						sector_t data_block_size,
 						bool may_format_device,
 						size_t policy_hint_size,
-						unsigned metadata_version)
+						unsigned int metadata_version)
 {
 	struct dm_cache_metadata *cmd, *cmd2;
 
@@ -855,7 +855,7 @@ struct dm_cache_metadata *dm_cache_metadata_open(struct block_device *bdev,
 						 sector_t data_block_size,
 						 bool may_format_device,
 						 size_t policy_hint_size,
-						 unsigned metadata_version)
+						 unsigned int metadata_version)
 {
 	struct dm_cache_metadata *cmd = lookup_or_open(bdev, data_block_size, may_format_device,
 						       policy_hint_size, metadata_version);
@@ -890,7 +890,7 @@ static int block_clean_combined_dirty(struct dm_cache_metadata *cmd, dm_cblock_t
 	int r;
 	__le64 value;
 	dm_oblock_t ob;
-	unsigned flags;
+	unsigned int flags;
 
 	r = dm_array_get_value(&cmd->info, cmd->root, from_cblock(b), &value);
 	if (r)
@@ -1288,7 +1288,7 @@ static bool policy_unchanged(struct dm_cache_metadata *cmd,
 			     struct dm_cache_policy *policy)
 {
 	const char *policy_name = dm_cache_policy_get_name(policy);
-	const unsigned *policy_version = dm_cache_policy_get_version(policy);
+	const unsigned int *policy_version = dm_cache_policy_get_version(policy);
 	size_t policy_hint_size = dm_cache_policy_get_hint_size(policy);
 
 	/*
@@ -1339,7 +1339,7 @@ static int __load_mapping_v1(struct dm_cache_metadata *cmd,
 	__le32 *hint_value_le;
 
 	dm_oblock_t oblock;
-	unsigned flags;
+	unsigned int flags;
 	bool dirty = true;
 
 	dm_array_cursor_get_value(mapping_cursor, (void **) &mapping_value_le);
@@ -1381,7 +1381,7 @@ static int __load_mapping_v2(struct dm_cache_metadata *cmd,
 	__le32 *hint_value_le;
 
 	dm_oblock_t oblock;
-	unsigned flags;
+	unsigned int flags;
 	bool dirty = true;
 
 	dm_array_cursor_get_value(mapping_cursor, (void **) &mapping_value_le);
@@ -1513,7 +1513,7 @@ static int __dump_mapping(void *context, uint64_t cblock, void *leaf)
 {
 	__le64 value;
 	dm_oblock_t oblock;
-	unsigned flags;
+	unsigned int flags;
 
 	memcpy(&value, leaf, sizeof(value));
 	unpack_value(value, &oblock, &flags);
@@ -1547,7 +1547,7 @@ int dm_cache_changed_this_transaction(struct dm_cache_metadata *cmd)
 static int __dirty(struct dm_cache_metadata *cmd, dm_cblock_t cblock, bool dirty)
 {
 	int r;
-	unsigned flags;
+	unsigned int flags;
 	dm_oblock_t oblock;
 	__le64 value;
 
@@ -1574,10 +1574,10 @@ static int __dirty(struct dm_cache_metadata *cmd, dm_cblock_t cblock, bool dirty
 
 }
 
-static int __set_dirty_bits_v1(struct dm_cache_metadata *cmd, unsigned nr_bits, unsigned long *bits)
+static int __set_dirty_bits_v1(struct dm_cache_metadata *cmd, unsigned int nr_bits, unsigned long *bits)
 {
 	int r;
-	unsigned i;
+	unsigned int i;
 	for (i = 0; i < nr_bits; i++) {
 		r = __dirty(cmd, to_cblock(i), test_bit(i, bits));
 		if (r)
@@ -1594,7 +1594,7 @@ static int is_dirty_callback(uint32_t index, bool *value, void *context)
 	return 0;
 }
 
-static int __set_dirty_bits_v2(struct dm_cache_metadata *cmd, unsigned nr_bits, unsigned long *bits)
+static int __set_dirty_bits_v2(struct dm_cache_metadata *cmd, unsigned int nr_bits, unsigned long *bits)
 {
 	int r = 0;
 
@@ -1613,7 +1613,7 @@ static int __set_dirty_bits_v2(struct dm_cache_metadata *cmd, unsigned nr_bits,
 }
 
 int dm_cache_set_dirty_bits(struct dm_cache_metadata *cmd,
-			    unsigned nr_bits,
+			    unsigned int nr_bits,
 			    unsigned long *bits)
 {
 	int r;
@@ -1712,7 +1712,7 @@ static int write_hints(struct dm_cache_metadata *cmd, struct dm_cache_policy *po
 	int r;
 	size_t hint_size;
 	const char *policy_name = dm_cache_policy_get_name(policy);
-	const unsigned *policy_version = dm_cache_policy_get_version(policy);
+	const unsigned int *policy_version = dm_cache_policy_get_version(policy);
 
 	if (!policy_name[0] ||
 	    (strlen(policy_name) > sizeof(cmd->policy_name) - 1))
drivers/md/dm-cache-metadata.h +2 -2
index 0905f2c1615e..b40322bc44cf 100644
@@ -60,7 +60,7 @@ struct dm_cache_metadata *dm_cache_metadata_open(struct block_device *bdev,
 						 sector_t data_block_size,
 						 bool may_format_device,
 						 size_t policy_hint_size,
-						 unsigned metadata_version);
+						 unsigned int metadata_version);
 
 void dm_cache_metadata_close(struct dm_cache_metadata *cmd);
 
@@ -96,7 +96,7 @@ int dm_cache_load_mappings(struct dm_cache_metadata *cmd,
 			   void *context);
 
 int dm_cache_set_dirty_bits(struct dm_cache_metadata *cmd,
-			    unsigned nr_bits, unsigned long *bits);
+			    unsigned int nr_bits, unsigned long *bits);
 
 struct dm_cache_statistics {
 	uint32_t read_hits;
drivers/md/dm-cache-policy-internal.h +5 -5
index 56f0a23f698c..8e49baa78dc1 100644
@@ -85,7 +85,7 @@ static inline void policy_tick(struct dm_cache_policy *p, bool can_block)
 }
 
 static inline int policy_emit_config_values(struct dm_cache_policy *p, char *result,
-					    unsigned maxlen, ssize_t *sz_ptr)
+					    unsigned int maxlen, ssize_t *sz_ptr)
 {
 	ssize_t sz = *sz_ptr;
 	if (p->emit_config_values)
@@ -112,18 +112,18 @@ static inline void policy_allow_migrations(struct dm_cache_policy *p, bool allow
 /*
  * Some utility functions commonly used by policies and the core target.
  */
-static inline size_t bitset_size_in_bytes(unsigned nr_entries)
+static inline size_t bitset_size_in_bytes(unsigned int nr_entries)
 {
 	return sizeof(unsigned long) * dm_div_up(nr_entries, BITS_PER_LONG);
 }
 
-static inline unsigned long *alloc_bitset(unsigned nr_entries)
+static inline unsigned long *alloc_bitset(unsigned int nr_entries)
 {
 	size_t s = bitset_size_in_bytes(nr_entries);
 	return vzalloc(s);
 }
 
-static inline void clear_bitset(void *bitset, unsigned nr_entries)
+static inline void clear_bitset(void *bitset, unsigned int nr_entries)
 {
 	size_t s = bitset_size_in_bytes(nr_entries);
 	memset(bitset, 0, s);
@@ -154,7 +154,7 @@ void dm_cache_policy_destroy(struct dm_cache_policy *p);
  */
 const char *dm_cache_policy_get_name(struct dm_cache_policy *p);
 
-const unsigned *dm_cache_policy_get_version(struct dm_cache_policy *p);
+const unsigned int *dm_cache_policy_get_version(struct dm_cache_policy *p);
 
 size_t dm_cache_policy_get_hint_size(struct dm_cache_policy *p);
 
drivers/md/dm-cache-policy-smq.c +82 -81

485 lines not on this page · raw message

drivers/md/dm-cache-policy.c +1 -1
index c1a3cee99b44..2e58bbcf3e3b 100644
@@ -154,7 +154,7 @@ const char *dm_cache_policy_get_name(struct dm_cache_policy *p)
 }
 EXPORT_SYMBOL_GPL(dm_cache_policy_get_name);
 
-const unsigned *dm_cache_policy_get_version(struct dm_cache_policy *p)
+const unsigned int *dm_cache_policy_get_version(struct dm_cache_policy *p)
 {
 	struct dm_cache_policy_type *t = p->private;
 
drivers/md/dm-cache-policy.h +2 -2
index 06eb31af626f..6ba3e9c91af5 100644
@@ -128,7 +128,7 @@ struct dm_cache_policy {
 	 * Configuration.
 	 */
 	int (*emit_config_values)(struct dm_cache_policy *p, char *result,
-				  unsigned maxlen, ssize_t *sz_ptr);
+				  unsigned int maxlen, ssize_t *sz_ptr);
 	int (*set_config_value)(struct dm_cache_policy *p,
 				const char *key, const char *value);
 
@@ -157,7 +157,7 @@ struct dm_cache_policy_type {
 	 * what gets passed on the target line to select your policy.
 	 */
 	char name[CACHE_POLICY_NAME_SIZE];
-	unsigned version[CACHE_POLICY_VERSION_SIZE];
+	unsigned int version[CACHE_POLICY_VERSION_SIZE];
 
 	/*
 	 * For use by an alias dm_cache_policy_type to point to the
drivers/md/dm-cache-target.c +25 -25

129 lines not on this page · raw message

drivers/md/dm-core.h +3 -3
index 6c6bd24774f2..28c641352de9 100644

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

drivers/md/dm-crypt.c +24 -24

48 lines not on this page · raw message

drivers/md/dm-delay.c +3 -3
index 869afef5654a..02b8f4e81827 100644

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

drivers/md/dm-ebs-target.c +1 -1
index 512cc6cea095..7606c6695a0e 100644

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

drivers/md/dm-era-target.c +16 -16
index e92c1afc3677..a96290103cca 100644

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

drivers/md/dm-exception-store.c +3 -3
index 3997f34cfebc..cc3987c97eb9 100644

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

drivers/md/dm-exception-store.h +9 -9
index b5f20eba3641..862df68a7db0 100644

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

drivers/md/dm-flakey.c +11 -11
index 335684a1aeaa..7efbdb42cf3b 100644

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

drivers/md/dm-integrity.c +161 -167

328 lines not on this page · raw message

drivers/md/dm-io-rewind.c +2 -2
index 0db53ccb94ba..773c4cff8b89 100644

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

drivers/md/dm-io.c +16 -16
index 783564533459..e488b05e35fa 100644

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

drivers/md/dm-ioctl.c +9 -9
index fdb7846a97a4..41d55218b076 100644

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

drivers/md/dm-kcopyd.c +15 -15
index 4d3bbbea2e9a..0ef78e56aa88 100644

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

drivers/md/dm-linear.c +1 -1
index 3212ef6aa81b..26b1af646177 100644

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

drivers/md/dm-log-userspace-base.c +3 -3
index 9ab93ebea889..9fc69382692b 100644

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

drivers/md/dm-log-userspace-transfer.c +1 -1
index fdf8ec304f8d..072559b709ed 100644

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

drivers/md/dm-log-writes.c +5 -5
index 178e13a5b059..efdfb2e1868a 100644

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

drivers/md/dm-log.c +5 -5
index cf10fa667797..159f2c05dfd3 100644

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

drivers/md/dm-mpath.c +23 -23

46 lines not on this page · raw message

drivers/md/dm-mpath.h +1 -1
index e230f7196259..5343698fe5f1 100644

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

drivers/md/dm-path-selector.h +1 -1
index 83cac2b04b66..0f2b37af8766 100644

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

drivers/md/dm-ps-io-affinity.c +2 -2
index f74501e65a8e..76ce4ce87222 100644

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

drivers/md/dm-ps-queue-length.c +5 -5
index cef70657bbbc..6fbec9fc242d 100644

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

drivers/md/dm-ps-round-robin.c +3 -3
index 27f44c5fa04e..1d07392b5ed4 100644

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

drivers/md/dm-ps-service-time.c +7 -7
index 3ec9c33265c5..84d26234dc05 100644

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

drivers/md/dm-raid.c +1 -1
index 54263679a7b1..b26c12856b1d 100644

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

drivers/md/dm-raid1.c +11 -11
index 06a38dc32025..8bd7e87d3538 100644

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

drivers/md/dm-region-hash.c +11 -11
index 1f760451e6f4..adbdb4b67137 100644

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

drivers/md/dm-rq.c +8 -8
index a41209a43506..80f46e01bca4 100644

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

drivers/md/dm-rq.h +1 -1
index 1eea0da641db..2c97ad145140 100644

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

drivers/md/dm-snap-persistent.c +4 -4
index 680cc05ec654..5176810f5d24 100644

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

drivers/md/dm-snap-transient.c +3 -3
index 0e0ae4c36b37..d83a0565bd10 100644

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

drivers/md/dm-snap.c +17 -17
index d1c2f84d27e3..c64d987c544d 100644

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

drivers/md/dm-stats.c +37 -37

74 lines not on this page · raw message

drivers/md/dm-stats.h +3 -3
index ee32b099f1cf..c6728c8b4159 100644

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

drivers/md/dm-stripe.c +5 -5
index baa085cc67bd..a81ed080730a 100644

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

drivers/md/dm-switch.c +23 -23

46 lines not on this page · raw message

drivers/md/dm-table.c +12 -13
index 078da18bb86d..32b2d3b99d78 100644

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

drivers/md/dm-thin-metadata.c +12 -12
index 6bcc4c4786d8..80545ec54121 100644

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

drivers/md/dm-thin.c +23 -23

46 lines not on this page · raw message

drivers/md/dm-uevent.c +2 -2
index 8671267200d8..a02b3f6ea47a 100644

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

drivers/md/dm-uevent.h +2 -2
index d30d226f2a18..2c9ba561fd8e 100644

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

drivers/md/dm-verity-fec.c +15 -15
index 23cffce56403..962fc32c947c 100644

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

drivers/md/dm-verity-fec.h +9 -9
index 3c46c8d61883..8454070d2824 100644

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

drivers/md/dm-verity-target.c +15 -15
index ccf5b852fbf7..64e8ac429984 100644

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

drivers/md/dm-verity.h +4 -4
index 98f306ec6a33..2f555b420367 100644

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

drivers/md/dm-writecache.c +40 -40

80 lines not on this page · raw message

drivers/md/dm.c +27 -28

55 lines not on this page · raw message

drivers/md/dm.h +2 -2
index a9a3ffcad084..a7917df09caf 100644

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

drivers/md/persistent-data/dm-array.c +35 -34

69 lines not on this page · raw message

drivers/md/persistent-data/dm-array.h +1 -1
index d7d2d579c662..b6c7077c7359 100644

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

drivers/md/persistent-data/dm-bitset.c +6 -6
index b7208d82e748..625d93498cdd 100644

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

drivers/md/persistent-data/dm-block-manager.c +8 -8
index 11935864f50f..1f40100908d7 100644

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

drivers/md/persistent-data/dm-block-manager.h +3 -3
index e728937f376a..58a23b8ec190 100644

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

drivers/md/persistent-data/dm-btree-remove.c +23 -23

46 lines not on this page · raw message

drivers/md/persistent-data/dm-btree-spine.c +2 -2
index e653458888a7..45a39d4f1c10 100644

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

drivers/md/persistent-data/dm-btree.c +49 -49

98 lines not on this page · raw message

drivers/md/persistent-data/dm-btree.h +6 -6
index d2ae5aa4d00b..5566e7c32e82 100644

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

drivers/md/persistent-data/dm-persistent-data-internal.h +3 -3
index c49e26fff36c..b945a2be93fb 100644

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

drivers/md/persistent-data/dm-space-map-common.c +14 -14
index bfbfa750e016..af800efed9f3 100644

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

drivers/md/persistent-data/dm-space-map-metadata.c +10 -10
index 392ae26134a4..0d1fcdf29c83 100644

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

drivers/md/persistent-data/dm-transaction-manager.c +8 -8
index 16643fc974e8..39885f835584 100644

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

drivers/md/persistent-data/dm-transaction-manager.h +1 -1
index 906c02ed0365..0f573a4a01ae 100644

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

drivers/net/dsa/mv88e6xxx/chip.c +1 -1
index 8cf27e2654fc..f1d9ee2a78b0 100644

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

drivers/net/dsa/mv88e6xxx/global2.c +20 -0
index fa65ecd9cb85..ec49939968fa 100644

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

drivers/net/dsa/mv88e6xxx/global2.h +1 -0
index 7536b8b0ad01..c05fad5c9f19 100644

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

drivers/net/ethernet/google/gve/gve.h +2 -0
index 160735484465..458149a77ebe 100644

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

drivers/net/ethernet/google/gve/gve_tx.c +5 -7
index 4888bf05fbed..5e11b8236754 100644

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

drivers/net/ethernet/intel/ice/ice_virtchnl_fdir.c +20 -3
index a2645ff3100e..7f7260407972 100644

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

drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c +0 -1
index 13aa919633b4..ab9f876b6df7 100644

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

drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +18 -3
index 93321437f093..fa3ce3b0d9a5 100644

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

drivers/net/ethernet/ti/am65-cpsw-nuss.c +4 -2
index 8ff1c84a23ce..25466cbdc16b 100644

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

drivers/net/phy/phylink.c +19 -0
index a202ce6611fd..4073e8243df3 100644

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

drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c +26 -10
index d0daef674e72..e300278ea38c 100644

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

drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h +2 -0
index b76d34d36bde..0d18ed15b403 100644

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

drivers/net/wireless/mediatek/mt76/mt7603/main.c +5 -5
index ca50feb0b3a9..1b1358c6bb46 100644

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

drivers/net/wireless/mediatek/mt76/mt7615/mac.c +21 -49

70 lines not on this page · raw message

drivers/net/wireless/mediatek/mt76/mt7615/main.c +7 -8
index 8d4733f87cda..a3b0d4e9146a 100644

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

drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h +2 -4
index 060d52c81d9e..c0e62082b62d 100644

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

drivers/net/wireless/mediatek/mt76/mt76x02_util.c +9 -9
index 604ddcc21123..324535a0dd6d 100644

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

drivers/net/wireless/mediatek/mt76/mt7915/main.c +6 -7
index 060cb88e82e3..bda26bd62412 100644

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

drivers/net/wireless/mediatek/mt76/mt7921/main.c +6 -7
index 111d9221b94f..60fbbd1ac2f7 100644

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

drivers/nvme/host/core.c +3 -3
index a95e48b51da6..cb71ce3413c2 100644

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

drivers/pci/doe.c +18 -12
index 66d9ab288646..e5e9b287b976 100644

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

drivers/platform/x86/think-lmi.c +13 -7
index 74af3e593b2c..336b9029d151 100644

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

drivers/pwm/pwm-atmel.c +4 -2
index 8e00a4286145..cdbc23649032 100644

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

drivers/pwm/pwm-bcm-iproc.c +5 -3
index 7251037d4dd5..97ec131eb7c1 100644

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

drivers/pwm/pwm-crc.c +6 -4
index 7b357d1cf642..4099850117ba 100644

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

drivers/pwm/pwm-cros-ec.c +6 -3
index 7f10f56c3eb6..e55bc36ed497 100644

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

drivers/pwm/pwm-dwc.c +4 -2
index 7568300bb11e..bd2308812096 100644

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

drivers/pwm/pwm-hibvt.c +5 -2
index 333f1b18ff4e..1b9274c5ad87 100644

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

drivers/pwm/pwm-imx-tpm.c +5 -3
index e5e7b7c339a8..ed1aad96fff0 100644

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

drivers/pwm/pwm-imx27.c +5 -3
index ea91a2f81a9f..3a22c2fddc45 100644

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

drivers/pwm/pwm-intel-lgm.c +4 -2
index b66c35074087..0cd7dd548e82 100644

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

drivers/pwm/pwm-iqs620a.c +5 -2
index 54bd95a5cab0..aeb19a274acc 100644

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

drivers/pwm/pwm-keembay.c +4 -2
index 733811b05721..ac02d8bb4a0b 100644

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

drivers/pwm/pwm-lpss.c +4 -2
index accdef5dd58e..81ac297b8ba5 100644

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

drivers/pwm/pwm-meson.c +13 -3
index 57112f438c6d..5cd7b90872c6 100644

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

drivers/pwm/pwm-mtk-disp.c +7 -5
index 3fbb4bae93a4..ccf0ccdef29d 100644

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

drivers/pwm/pwm-pca9685.c +5 -3
index f230c10d28bb..41be244e7dd3 100644

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

drivers/pwm/pwm-raspberrypi-poe.c +5 -3
index 6ff73029f367..2939b71a7ba7 100644

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

drivers/pwm/pwm-rockchip.c +7 -5
index a5af859217c1..3ec7d1756903 100644

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

drivers/pwm/pwm-sifive.c +4 -2
index 89d53a0f91e6..393a4b97fc19 100644

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

drivers/pwm/pwm-sl28cpld.c +5 -3
index 589aeaaa6ac8..e64900ad4ba1 100644

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

drivers/pwm/pwm-sprd.c +6 -3
index 7004f55bbf11..87d5cb7f67d6 100644

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

drivers/pwm/pwm-stm32-lp.c +5 -3
index 61a1c87cd501..31a185c6b8da 100644

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

drivers/pwm/pwm-sun4i.c +7 -5
index c8445b0a3339..37d75e252d4e 100644

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

drivers/pwm/pwm-sunplus.c +4 -2
index e776fd16512d..d6ebe9f03b35 100644

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

drivers/pwm/pwm-visconti.c +4 -2
index 927c4cbb1daf..e3fb79b3e2a7 100644

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

drivers/pwm/pwm-xilinx.c +5 -3
index 4dab2b86c427..f7a50fdcd9a5 100644

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

drivers/scsi/iscsi_tcp.c +1 -2
index c3ad04ad66e0..8009eab3b7be 100644

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

drivers/scsi/qla2xxx/qla_os.c +1 -0
index 7d2d872bae3c..08dc825fbf4f 100644

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

drivers/tty/serial/8250/8250_port.c +11 -0
index 388172289627..2a3bd6918c77 100644

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

drivers/tty/serial/fsl_lpuart.c +7 -1
index cd98c04de033..48eb5fea62fd 100644

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

drivers/tty/serial/sh-sci.c +9 -1
index 62f773286d44..e67d3a886bf4 100644

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

drivers/usb/cdns3/cdnsp-ep0.c +1 -2
index d63d5d92f255..f317d3c84781 100644

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

drivers/usb/dwc3/dwc3-pci.c +4 -0
index a23ddbb81979..560793545362 100644

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

drivers/usb/host/xhci-tegra.c +3 -3
index bdb776553826..32df571bb233 100644

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

drivers/usb/host/xhci.c +6 -1
index 2b280beb0011..c02ad4f76bb3 100644

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

drivers/usb/serial/cp210x.c +1 -0
index ba5638471de4..f1d7a5a863aa 100644

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

drivers/usb/serial/option.c +10 -0
index a8534065e0d6..fc12fee66141 100644

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

drivers/usb/typec/altmodes/displayport.c +5 -1
index 3a42313d0d66..4075c0d7e6a2 100644

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

fs/cifs/fs_context.c +7 -6
index 45119597c765..89e810b27a4b 100644

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

fs/cifs/fs_context.h +3 -0
index a268896d05d5..26093f54d3e6 100644

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

fs/cifs/misc.c +1 -1
index 832856aef4b7..cf19e6a81ed9 100644

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

fs/ksmbd/connection.c +1 -4
index 2be9d7460494..b8f9d627f241 100644

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

fs/ksmbd/server.c +1 -4
index a0d635304754..651d1d01234b 100644

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

fs/ksmbd/smb2pdu.c +0 -3
index daaee7a89e05..4effe8df5ae9 100644

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

fs/ksmbd/smb_common.c +109 -29

138 lines not on this page · raw message

fs/ksmbd/smb_common.h +1 -1
index c1f3006792ff..78c44978a906 100644

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

fs/namespace.c +1 -1
index df137ba19d37..e04a9e9e3f14 100644

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

fs/nfsd/blocklayout.c +1 -0
index b6d01d51a746..e7e6e78d965d 100644

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

fs/nfsd/nfs4callback.c +2 -2
index 6253cbe5f81b..39989c14c8a1 100644

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

fs/nfsd/nfs4xdr.c +8 -7
index 8377e14b8fba..8f5b41dc0773 100644

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

fs/nilfs2/segment.c +1 -2
index 3335ef352915..63d96a1733b2 100644

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

fs/nilfs2/super.c +2 -0
index 1422b8ba24ed..77f1e5778d1c 100644

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

fs/nilfs2/the_nilfs.c +7 -5
index 3a4c9c150cbf..2894152a6b25 100644

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

include/acpi/video.h +13 -2
index 8ed9bec03e53..ff5a8da5d883 100644

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

include/drm/display/drm_dp_mst_helper.h +2 -1
index 6c0c3dc3d3ac..32c764fb9cb5 100644

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

include/kvm/arm_pmu.h +0 -2
index c0b868ce6a8f..96b192139a23 100644

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

include/linux/device-mapper.h +19 -19
index 04c6acf7faaa..201dd1ab7f1c 100644

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

include/linux/dm-bufio.h +6 -6
index 15d9e15ca830..1262d92ab88f 100644

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

include/linux/dm-dirty-log.h +3 -3
index 7084503c3405..843c857f07b0 100644

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

include/linux/dm-io.h +4 -4
index 8e1c4ab5df04..92e7abfe04f9 100644

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

include/linux/dm-kcopyd.h +11 -11
index c1707ee5b540..68c412b31b78 100644

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

include/linux/dm-region-hash.h +1 -1
index 9e2a7a401df5..e8691539e1d7 100644

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

include/linux/ftrace.h +1 -1
index 62557d4bffc2..8128059db5ed 100644

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

include/linux/mm_types.h +2 -1
index 500e536796ca..247aedb18d5c 100644

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

include/linux/pci-doe.h +6 -2
index ed9b4df792b8..43765eaf2342 100644

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

include/linux/phylink.h +1 -0
index 3f01ac8017e0..6d62c9ea2e04 100644

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

include/linux/pwm.h +2 -2
index d70c6e5a839d..4de09163c968 100644

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

include/net/raw.h +12 -3
index 5e665934ebc7..3af5289fdead 100644

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

io_uring/io_uring.c +1 -1
index ce4969d3e20d..cc35aba1e495 100644

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

io_uring/kbuf.c +4 -3
index 746b137b96e9..acc37e5a6d4e 100644

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

kernel/events/core.c +1 -1
index 2aa286b4151b..7699b99706ad 100644

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

kernel/fork.c +3 -0
index a6d243a50be3..ec913b13c5ed 100644

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

kernel/trace/ftrace.c +9 -6
index 59062fedeaf7..57db50c2dce8 100644

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

kernel/trace/ring_buffer.c +12 -1
index 361bd8beafdf..9d8538531a54 100644

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

kernel/trace/trace.c +1 -0
index 78d69b9488e4..78855e74e355 100644

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

kernel/trace/trace_events_synth.c +15 -4
index 67592eed0be8..89083ae1aebe 100644

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

kernel/trace/trace_osnoise.c +3 -1
index 1c07efcb3d46..689361097bb0 100644

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

lib/maple_tree.c +248 -135

383 lines not on this page · raw message

mm/hugetlb.c +12 -2
index 52475c4262e4..d3ffa0fd49e5 100644

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

mm/kfence/core.c +16 -16
index c3d04753806a..a477b7fb8aa3 100644

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

mm/memory.c +15 -1
index f6f93e5b6b02..747b7ea30f89 100644

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

mm/mmap.c +2 -1
index 177714886849..fe1db604dc49 100644

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

mm/swapfile.c +2 -1
index b72908df52ac..71db6d8a1ea3 100644

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

mm/vmalloc.c +5 -3
index ccaa461998f3..d606e53c650e 100644

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

net/can/isotp.c +48 -26

74 lines not on this page · raw message

net/can/j1939/transport.c +4 -1
index 848b60c9ef79..bd8ec2433832 100644

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

net/core/netpoll.c +18 -1
index 9be762e1d042..4ac8d0ad9f6f 100644

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

net/ethtool/linkmodes.c +4 -3
index 126e06c713a3..2d91f2a8c762 100644

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

net/ipv4/icmp.c +5 -0
index d5d745c3e345..2b09ef70752f 100644

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

net/ipv4/ping.c +4 -4
index 409ec2a1f95b..5178a3f3cb53 100644

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

net/ipv4/raw.c +26 -23

49 lines not on this page · raw message

net/ipv4/raw_diag.c +4 -6
index 999321834b94..da3591a66a16 100644

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

net/ipv6/ip6_output.c +6 -1
index c314fdde0097..95a55c6630ad 100644

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

net/ipv6/raw.c +6 -8
index 8ffeac745656..9ee1506e23ab 100644

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

net/l2tp/l2tp_ip.c +4 -4
index 4db5a554bdbd..41a74fc84ca1 100644

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

net/l2tp/l2tp_ip6.c +4 -4
index 9dbd801ddb98..9db7f4f5a441 100644

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

net/mac80211/sta_info.c +2 -1
index 3603cbc16757..30efa26f977f 100644

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

net/mac80211/util.c +1 -1
index ed53c51bbc32..0785d9393e71 100644

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

net/netlink/af_netlink.c +9 -6
index e50671296791..99622c64081c 100644

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

net/qrtr/af_qrtr.c +2 -0
index 5c2fb992803b..3a70255c8d02 100644

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

net/qrtr/ns.c +9 -6
index e595079c2caf..3e40a1ba48f7 100644

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

net/sctp/socket.c +4 -0
index 83628c347744..507b2ad5ef7c 100644

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

net/sunrpc/svcauth_unix.c +13 -4
index b1efc34db6ed..609ade4fb49e 100644

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

sound/pci/hda/patch_hdmi.c +11 -0
index 9ea633fe9339..4ffa3a59f419 100644

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

sound/pci/hda/patch_realtek.c +2 -0
index 070150bbd355..50b8573b5206 100644

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

sound/soc/codecs/hdac_hdmi.c +11 -6
index cb23650ad522..d8e83150ea28 100644

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

sound/soc/codecs/lpass-rx-macro.c +2 -2
index 8621cfabcf5b..1639f3b66fac 100644

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

sound/soc/codecs/lpass-tx-macro.c +2 -2
index e5611f655bed..d1d9d8d2df2d 100644

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

sound/soc/codecs/lpass-wsa-macro.c +2 -2
index c012033fb69e..8ed48c86ccb3 100644

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

sound/soc/sof/ipc4.c +8 -0
index 6eaa18e27e5a..c08f3960ddd9 100644

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

tools/lib/bpf/btf_dump.c +5 -1
index 56102711f395..80a15a680209 100644

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

tools/testing/radix-tree/maple.c +9 -9
index 2e91973fbaa6..aceb6011315c 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.