Skip to contentSkip to conversation

Linux 6.1.97

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Jul 5, 2024 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 6.1.97 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/i2c/amlogic,meson6-i2c.yaml  |    4 
 Documentation/devicetree/bindings/i2c/apple,i2c.yaml           |    4 
 Documentation/devicetree/bindings/i2c/atmel,at91sam-i2c.yaml   |    2 
 Documentation/devicetree/bindings/i2c/cdns,i2c-r1p10.yaml      |    4 
 Documentation/devicetree/bindings/i2c/i2c-mux-gpio.yaml        |    4 
 Documentation/devicetree/bindings/i2c/qcom,i2c-geni-qcom.yaml  |    4 
 Documentation/devicetree/bindings/i2c/st,stm32-i2c.yaml        |    2 
 Documentation/devicetree/bindings/i2c/xlnx,xps-iic-2.00.a.yaml |    4 
 Makefile                                                       |    2 
 arch/arm/boot/dts/rk3066a.dtsi                                 |    1 
 arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts              |   18 
 arch/arm64/boot/dts/rockchip/rk3328-rock-pi-e.dts              |    4 
 arch/arm64/boot/dts/rockchip/rk3368.dtsi                       |    3 
 arch/arm64/include/asm/unistd32.h                              |    2 
 arch/arm64/kernel/syscall.c                                    |   16 
 arch/csky/include/uapi/asm/unistd.h                            |    1 
 arch/hexagon/include/asm/syscalls.h                            |    6 
 arch/hexagon/include/uapi/asm/unistd.h                         |    1 
 arch/hexagon/kernel/syscalltab.c                               |    7 
 arch/mips/kernel/syscalls/syscall_n32.tbl                      |    2 
 arch/mips/kernel/syscalls/syscall_o32.tbl                      |    2 
 arch/parisc/Kconfig                                            |    1 
 arch/parisc/kernel/sys_parisc32.c                              |    9 
 arch/parisc/kernel/syscalls/syscall.tbl                        |    6 
 arch/powerpc/kernel/syscalls/syscall.tbl                       |    6 
 arch/riscv/kernel/stacktrace.c                                 |    2 
 arch/s390/include/asm/entry-common.h                           |    2 
 arch/s390/kernel/syscalls/syscall.tbl                          |    2 
 arch/s390/pci/pci_irq.c                                        |    2 
 arch/sh/kernel/sys_sh32.c                                      |   11 
 arch/sh/kernel/syscalls/syscall.tbl                            |    3 
 arch/sparc/kernel/sys32.S                                      |  221 --------
 arch/sparc/kernel/syscalls/syscall.tbl                         |    8 
 arch/x86/entry/syscalls/syscall_32.tbl                         |    2 
 arch/x86/include/asm/efi.h                                     |   11 
 arch/x86/include/asm/entry-common.h                            |   15 
 arch/x86/kernel/fpu/core.c                                     |    4 
 arch/x86/kernel/time.c                                         |   20 
 arch/x86/platform/efi/Makefile                                 |    3 
 arch/x86/platform/efi/efi.c                                    |    8 
 arch/x86/platform/efi/memmap.c                                 |  249 ++++++++++
 crypto/ecdh.c                                                  |    2 
 drivers/acpi/x86/utils.c                                       |   23 
 drivers/ata/ahci.c                                             |   17 
 drivers/ata/libata-core.c                                      |    8 
 drivers/counter/ti-eqep.c                                      |    6 
 drivers/cpufreq/amd-pstate.c                                   |    2 
 drivers/cpufreq/intel_pstate.c                                 |   13 
 drivers/firmware/efi/fdtparams.c                               |    4 
 drivers/firmware/efi/memmap.c                                  |  238 ---------
 drivers/gpio/gpio-davinci.c                                    |    5 
 drivers/gpio/gpiolib-cdev.c                                    |   16 
 drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c               |    2 
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c                     |   68 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c                        |    2 
 drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c                       |   18 
 drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c                   |    1 
 drivers/gpu/drm/nouveau/dispnv04/tvnv17.c                      |    6 
 drivers/gpu/drm/panel/panel-ilitek-ili9881c.c                  |    6 
 drivers/gpu/drm/panel/panel-simple.c                           |    1 
 drivers/gpu/drm/radeon/radeon.h                                |    1 
 drivers/gpu/drm/radeon/radeon_display.c                        |    8 
 drivers/i2c/i2c-slave-testunit.c                               |    5 
 drivers/iio/accel/Kconfig                                      |    2 
 drivers/iio/adc/ad7266.c                                       |    2 
 drivers/iio/adc/xilinx-ams.c                                   |    8 
 drivers/iio/chemical/bme680.h                                  |    2 
 drivers/iio/chemical/bme680_core.c                             |   62 ++
 drivers/infiniband/core/restrack.c                             |   51 --
 drivers/input/touchscreen/ili210x.c                            |    4 
 drivers/irqchip/irq-loongson-liointc.c                         |    4 
 drivers/media/dvb-core/dvbdev.c                                |    2 
 drivers/mmc/host/sdhci-brcmstb.c                               |    4 
 drivers/mmc/host/sdhci-pci-core.c                              |   11 
 drivers/mmc/host/sdhci.c                                       |   25 -
 drivers/mtd/parsers/redboot.c                                  |    2 
 drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c                 |   14 
 drivers/net/can/spi/mcp251xfd/mcp251xfd-tx.c                   |   55 +-
 drivers/net/can/spi/mcp251xfd/mcp251xfd.h                      |    5 
 drivers/net/dsa/microchip/ksz9477.c                            |   10 
 drivers/net/dsa/microchip/ksz9477_reg.h                        |    1 
 drivers/net/dsa/microchip/ksz_common.c                         |    2 
 drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c               |   14 
 drivers/net/ethernet/ibm/ibmvnic.c                             |    6 
 drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c         |   20 
 drivers/net/phy/micrel.c                                       |    1 
 drivers/net/usb/ax88179_178a.c                                 |    6 
 drivers/pinctrl/core.c                                         |    2 
 drivers/pinctrl/pinctrl-rockchip.c                             |   68 ++
 drivers/pinctrl/pinctrl-rockchip.h                             |    1 
 drivers/pinctrl/qcom/pinctrl-spmi-gpio.c                       |    1 
 drivers/pwm/pwm-stm32.c                                        |    3 
 drivers/soc/ti/wkup_m3_ipc.c                                   |    7 
 drivers/tty/serial/8250/8250_omap.c                            |   22 
 drivers/tty/serial/imx.c                                       |   10 
 drivers/tty/serial/mcf.c                                       |    2 
 drivers/usb/atm/cxacru.c                                       |   14 
 drivers/usb/dwc3/core.c                                        |    6 
 drivers/usb/gadget/function/f_printer.c                        |   40 +
 drivers/usb/gadget/udc/aspeed_udc.c                            |    4 
 drivers/usb/musb/da8xx.c                                       |    8 
 drivers/usb/typec/ucsi/ucsi.c                                  |   55 +-
 drivers/usb/typec/ucsi/ucsi_stm32g0.c                          |   19 
 drivers/vdpa/vdpa_user/vduse_dev.c                             |   14 
 fs/btrfs/free-space-cache.c                                    |    2 
 fs/gfs2/super.c                                                |    2 
 fs/nfs/direct.c                                                |    2 
 fs/ocfs2/aops.c                                                |    5 
 fs/ocfs2/journal.c                                             |   17 
 fs/ocfs2/journal.h                                             |    2 
 fs/ocfs2/ocfs2_trace.h                                         |    2 
 fs/open.c                                                      |    4 
 include/linux/compat.h                                         |    2 
 include/linux/efi.h                                            |   10 
 include/linux/filter.h                                         |    5 
 include/linux/ieee80211.h                                      |    2 
 include/linux/mmzone.h                                         |    9 
 include/linux/nvme.h                                           |    4 
 include/linux/syscalls.h                                       |    8 
 include/net/inet_connection_sock.h                             |    2 
 include/net/netfilter/nf_tables.h                              |   21 
 include/trace/events/qdisc.h                                   |    4 
 include/uapi/asm-generic/unistd.h                              |    2 
 kernel/bpf/core.c                                              |    6 
 kernel/bpf/ringbuf.c                                           |   31 +
 kernel/bpf/verifier.c                                          |    8 
 kernel/cpu.c                                                   |    8 
 kernel/sys_ni.c                                                |    2 
 mm/page_alloc.c                                                |    8 
 net/batman-adv/originator.c                                    |   27 +
 net/can/j1939/main.c                                           |    6 
 net/can/j1939/transport.c                                      |   21 
 net/core/filter.c                                              |    3 
 net/core/xdp.c                                                 |    4 
 net/dccp/ipv4.c                                                |    7 
 net/dccp/ipv6.c                                                |    7 
 net/ipv4/inet_connection_sock.c                                |   17 
 net/ipv4/tcp_input.c                                           |   45 +
 net/iucv/iucv.c                                                |   26 -
 net/netfilter/nf_tables_api.c                                  |   12 
 net/netfilter/nft_lookup.c                                     |    3 
 net/netfilter/nft_set_hash.c                                   |    8 
 net/netfilter/nft_set_pipapo.c                                 |   18 
 net/netfilter/nft_set_rbtree.c                                 |    6 
 scripts/Makefile.dtbinst                                       |    2 
 security/integrity/ima/ima_api.c                               |   16 
 security/integrity/ima/ima_template_lib.c                      |   17 
 sound/pci/hda/patch_realtek.c                                  |    3 
 sound/soc/amd/acp/acp-i2s.c                                    |    8 
 sound/soc/fsl/fsl-asoc-card.c                                  |    3 
 sound/soc/rockchip/rockchip_i2s_tdm.c                          |   13 
 sound/synth/emux/soundfont.c                                   |   17 
 152 files changed, 1233 insertions(+), 943 deletions(-)

Adrian Hunter (2):
mmc: sdhci: Do not invert write-protect twice
mmc: sdhci: Do not lock spinlock around mmc_gpio_get_ro()

Aleksandr Mishin (1):
gpio: davinci: Validate the obtained number of IRQs

Alex Bee (1):
arm64: dts: rockchip: Add sound-dai-cells for RK3368

Alex Deucher (1):
drm/amdgpu/atomfirmware: fix parsing of vram_info

Alexander Sverdlin (1):
iio: accel: fxls8962af: select IIO_BUFFER & IIO_KFIFO_BUF

Alibek Omarov (1):
ASoC: rockchip: i2s-tdm: Fix trcm mode by setting clock on right mclk

Andrew Davis (1):
soc: ti: wkup_m3_ipc: Send NULL dummy message instead of pointer message

Andy Chiu (1):
riscv: stacktrace: convert arch_stack_walk() to noinstr

Anton Protopopov (1):
bpf: Add a check for struct bpf_fib_lookup size

Ard Biesheuvel (3):
efi: memmap: Move manipulation routines into x86 arch tree
efi: xen: Set EFI_PARAVIRT for Xen dom0 boot on all architectures efi/x86: Free EFI memory map only when installing a new one.

Arnd Bergmann (11):
sparc: fix old compat_sys_select()
sparc: fix compat recv/recvfrom syscalls
parisc: use correct compat recv/recvfrom syscalls
powerpc: restore some missing spu syscalls
parisc: use generic sys_fanotify_mark implementation
sh: rework sync_file_range ABI
csky, hexagon: fix broken sys_sync_file_range
hexagon: fix fadvise64_64 calling conventions
ftruncate: pass a signed offset
syscalls: fix compat_sys_io_pgetevents_time64 usage
syscalls: fix sys_fanotify_mark prototype

Christian A. Ehrhardt (1):
usb: typec: ucsi: Never send a lone connector change ack

Christoph Hellwig (1):
nfs: drop the incorrect assertion in nfs_swap_rw()

Christophe Leroy (1):
bpf: Take return from set_memory_ro() into account with bpf_prog_lock_ro()

Dan Carpenter (1):
usb: musb: da8xx: fix a resource leak in probe()

Daniel Borkmann (1):
bpf: Fix overrunning reservations in ringbuf

Daniil Dulov (1):
xdp: Remove WARN() from __xdp_reg_mem_model()

David Lechner (1):
counter: ti-eqep: enable clock at probe

Dawei Li (2):
net/iucv: Avoid explicit cpumask var allocation on stack net/dpaa2: Avoid explicit cpumask var allocation on stack

Denis Arefev (1):
mtd: partitions: redboot: Added conversion of operands to a larger type

Dirk Su (1):
ALSA: hda/realtek: fix mute/micmute LEDs don't work for EliteBook 645/665 G11.

Dragan Simic (1):
kbuild: Install dtb files as 0644 in Makefile.dtbinst

Elinor Montmasson (1):

      ASoC: fsl-asoc-card: set priv->pdev before using it

Enguerrand de Ribaucourt (2):
net: phy: micrel: add Microchip KSZ 9477 to the device table
net: dsa: microchip: use collision based back pressure mode

Erick Archer (1):
drm/radeon/radeon_display: Decrease the size of allocated memory

FUKAUMI Naoki (1):
arm64: dts: rockchip: fix PMIC interrupt pin on ROCK Pi E

Fabrice Gasnier (1):
usb: ucsi: stm32: fix command completion handling

Fernando Yang (1):
iio: adc: ad7266: Fix variable checking bug

Greg Kroah-Hartman (2):
Revert "cpufreq: amd-pstate: Fix the inconsistency in max frequency units" Linux 6.1.97

Hagar Hemdan (1):
pinctrl: fix deadlock in create_pinctrl() when handling -EPROBE_DEFER

Hannes Reinecke (1):
nvme: fixup comment for nvme RDMA Provider Type

Heikki Krogerus (1):
usb: typec: ucsi: Ack also failed Get Error commands

Huacai Chen (1):
irqchip/loongson-liointc: Set different ISRs for different cores

Huang-Huang Bao (4):
pinctrl: rockchip: fix pinmux bits for RK3328 GPIO2-B pins
pinctrl: rockchip: fix pinmux bits for RK3328 GPIO3-B pins
pinctrl: rockchip: use dedicated pinctrl type for RK3328
pinctrl: rockchip: fix pinmux reset in rockchip_pmx_set

Ido Schimmel (1):
mlxsw: spectrum_buffers: Fix memory corruptions on Spectrum-4 systems

Ilpo Järvinen (1):
mmc: sdhci-pci: Convert PCIBIOS_* return codes to errnos

Jan Kara (1):
ocfs2: fix DIO failure due to insufficient transaction credits

Janusz Krzysztofik (1):
drm/i915/gt: Fix potential UAF by revoke of fence registers

Jean-Michel Hautbois (1):

      tty: mcf: MCF54418 has 10 UARTS

Jeremy Kerr (1):
usb: gadget: aspeed_udc: fix device address configuration

Joachim Vandersmissen (1):
crypto: ecdh - explicitly zeroize private_key

Johan Hovold (1):
pinctrl: qcom: spmi-gpio: drop broken pm8008 support

Johan Jonker (1):
ARM: dts: rockchip: rk3066a: add #sound-dai-cells to hdmi node

Johannes Berg (1):

      wifi: ieee80211: check for NULL in ieee80211_mle_size_ok()

John Keeping (1):

      Input: ili210x - fix ili251x_read_touch_data() return value

Jonas Karlman (2):
arm64: dts: rockchip: Fix SD NAND and eMMC init on rk3308-rock-pi-s
arm64: dts: rockchip: Rename LED related pinctrl nodes on rk3308-rock-pi-s

Jose Ignacio Tornos Martinez (1):
net: usb: ax88179_178a: improve link status logs

Julia Zhang (1):
drm/amdgpu: avoid using null object of framebuffer

Juntong Deng (1):
gfs2: Fix slab-use-after-free in gfs2_qd_dealloc

Kamal Dasu (1):
mmc: sdhci-brcmstb: check R1_STATUS for erase/trim/discard

Kees Cook (1):
randomize_kstack: Remove non-functional per-arch entropy filtering

Kent Gibson (1):
gpiolib: cdev: Disallow reconfiguration without direction (uAPI v1)

Krzysztof Kozlowski (1):
dt-bindings: i2c: atmel,at91sam: correct path to i2c-controller schema

Laurent Pinchart (1):
drm/panel: ilitek-ili9881c: Fix warning with GPIO controllers that sleep

Lijo Lazar (1):
drm/amdgpu: Fix pci state save during mode-1 reset

Linus Torvalds (1):
x86: stop playing stack games in profile_pc()

Liu Ying (1):
drm/panel: simple: Add missing display timing flags for KOE TX26D202VM0BWA

Ma Ke (2):
drm/nouveau/dispnv04: fix null pointer dereference in nv17_tv_get_ld_modes drm/nouveau/dispnv04: fix null pointer dereference in nv17_tv_get_hd_modes

Mario Limonciello (2):
ACPI: x86: utils: Add Picasso to the list for forcing StorageD3Enable
ACPI: x86: Force StorageD3Enable on more products

Martin KaFai Lau (1):
bpf: Mark bpf prog stack with kmsan_unposion_memory in interpreter mode

Martin Schiller (1):
MIPS: pci: lantiq: restore reset gpio polarity

Maxime Coquelin (2):
vduse: validate block features only with block devices
vduse: Temporarily fail if control queue feature requested

Meng Li (1):
usb: dwc3: core: remove lock of otg mode during gadget suspend/resume to avoid deadlock

Naohiro Aota (1):
btrfs: zoned: fix initial free space detection

Neal Cardwell (1):
tcp: fix tcp_rcv_fastopen_synack() to enter TCP_CA_Loss for failed TFO

Nick Child (1):
ibmvnic: Free any outstanding tx skbs during scrq reset

Nikita Zhandarovich (1):
usb: atm: cxacru: fix endpoint checking in cxacru_bind()

Niklas Cassel (2):
ata: ahci: Clean up sysfs file on error
ata: libata-core: Fix double free on error

Niklas Schnelle (1):
s390/pci: Add missing virt_to_phys() for directed DIBV

Oleksij Rempel (2):
net: can: j1939: recover socket queue on CAN bus error during BAM transmission
net: can: j1939: enhanced error handling for tightly received RTS messages in xtp_rx_rts_session_new

Oliver Neukum (2):
usb: gadget: printer: SS+ support
usb: gadget: printer: fix races against disable

Oswald Buddenhagen (1):
ALSA: emux: improve patch ioctl data validation

Pablo Neira Ayuso (2):
netfilter: nf_tables: use timestamp to check for set element timeout
netfilter: nf_tables: fully validate NFT_DATA_VALUE on store to data registers

Rafael J. Wysocki (1):
cpufreq: intel_pstate: Use HWP to initialize ITMT if CPPC is missing

Ricardo Ribalda (1):
media: dvbdev: Initialize sbuf

Rob Herring (1):
dt-bindings: i2c: Drop unneeded quotes

Sean Anderson (1):
iio: xilinx-ams: Don't include ams_ctrl_channels in scan_mask

Shigeru Yoshida (1):

      net: can: j1939: Initialize unused data in j1939_send_one()

Srinivasan Shanmugam (1):
drm/amd/amdgpu: Fix style errors in amdgpu_drv.c & amdgpu_device.c

Stefan Berger (1):
ima: Fix use-after-free on a dentry's dname.name

Stefan Eichenberger (2):
serial: imx: set receiver level before starting uart
serial: imx: only set receiver level if it is zero

Sven Eckelmann (1):
batman-adv: Don't accept TT entries for out-of-spec VIDs

Thomas Bogendoerfer (1):
Revert "MIPS: pci: lantiq: restore reset gpio polarity"

Tristram Ha (2):
net: dsa: microchip: fix initial port flush problem
net: dsa: microchip: fix wrong register write when masking interrupt

Udit Kumar (2):
serial: 8250_omap: Implementation of Errata i2310
serial: 8250_omap: Fix Errata i2310 with RX FIFO level check

Uros Bizjak (1):
x86/fpu: Fix AMD X86_BUG_FXSAVE_LEAK fixup

Uwe Kleine-König (1):
pwm: stm32: Refuse too small period requests

Vasileios Amoiridis (4):
iio: chemical: bme680: Fix pressure value output
iio: chemical: bme680: Fix calibration data variable
iio: chemical: bme680: Fix overflows in compensate() functions
iio: chemical: bme680: Fix sensor data read operation

Vijendar Mukunda (1):
ASoC: amd: acp: remove i2s configuration check in acp_i2s_probe()

Vitor Soares (1):
can: mcp251xfd: fix infinite loop when xmit fails

Wenchao Hao (1):
RDMA/restrack: Fix potential invalid address access

Wolfram Sang (2):
i2c: testunit: don't erase registers after STOP
i2c: testunit: discard write requests while old command is running

Yunseong Kim (1):
tracing/net_sched: NULL pointer dereference in perf_trace_qdisc_reset()

Yuntao Wang (1):
cpu/hotplug: Fix dynstate assignment in __cpuhp_setup_state_cpuslocked()

luoxuanqiang (1):
Fix race for duplicate reqsk on identical SYN

yangge (1):
mm/page_alloc: Separate THP PCP into movable and non-movable categories

author maintainer
#1 lore raw
Documentation/devicetree/bindings/i2c/amlogic,meson6-i2c.yaml +2 -2
index 199a354ccb97..26bed558c6b8 100644
@@ -2,8 +2,8 @@
 # Copyright 2019 BayLibre, SAS
 %YAML 1.2
 ---
-$id: "http://devicetree.org/schemas/i2c/amlogic,meson6-i2c.yaml#"
-$schema: "http://devicetree.org/meta-schemas/core.yaml#"
+$id: http://devicetree.org/schemas/i2c/amlogic,meson6-i2c.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: Amlogic Meson I2C Controller
 
Documentation/devicetree/bindings/i2c/apple,i2c.yaml +2 -2
index 4ac61fec90e2..243da7003cec 100644
@@ -1,8 +1,8 @@
 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
 %YAML 1.2
 ---
-$id: "http://devicetree.org/schemas/i2c/apple,i2c.yaml#"
-$schema: "http://devicetree.org/meta-schemas/core.yaml#"
+$id: http://devicetree.org/schemas/i2c/apple,i2c.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: Apple/PASemi I2C controller
 
Documentation/devicetree/bindings/i2c/atmel,at91sam-i2c.yaml +1 -1
index ea2303c0e143..c22e459c175a 100644
@@ -75,7 +75,7 @@ required:
   - clocks
 
 allOf:
-  - $ref: "i2c-controller.yaml"
+  - $ref: /schemas/i2c/i2c-controller.yaml#
   - if:
       properties:
         compatible:
Documentation/devicetree/bindings/i2c/cdns,i2c-r1p10.yaml +2 -2
index 2e95cda7262a..7a675aa08c44 100644
@@ -1,8 +1,8 @@
 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
 %YAML 1.2
 ---
-$id: "http://devicetree.org/schemas/i2c/cdns,i2c-r1p10.yaml#"
-$schema: "http://devicetree.org/meta-schemas/core.yaml#"
+$id: http://devicetree.org/schemas/i2c/cdns,i2c-r1p10.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: Cadence I2C controller
 
Documentation/devicetree/bindings/i2c/i2c-mux-gpio.yaml +2 -2
index 6e0a5686af04..f34cc7ad5a00 100644
@@ -45,7 +45,7 @@ properties:
 
   i2c-parent:
     description: phandle of the I2C bus that this multiplexer's master-side port is connected to
-    $ref: "/schemas/types.yaml#/definitions/phandle"
+    $ref: /schemas/types.yaml#/definitions/phandle
 
   mux-gpios:
     description: list of GPIOs used to control the muxer
@@ -55,7 +55,7 @@ properties:
   idle-state:
     description: Value to set the muxer to when idle. When no value is given, it defaults to the
       last value used.
-    $ref: "/schemas/types.yaml#/definitions/uint32"
+    $ref: /schemas/types.yaml#/definitions/uint32
 
 allOf:
   - $ref: i2c-mux.yaml
Documentation/devicetree/bindings/i2c/qcom,i2c-geni-qcom.yaml +2 -2
index 0e7ed00562e2..5a44fdcbdd59 100644
@@ -1,8 +1,8 @@
 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 %YAML 1.2
 ---
-$id: "http://devicetree.org/schemas/i2c/qcom,i2c-geni-qcom.yaml#"
-$schema: "http://devicetree.org/meta-schemas/core.yaml#"
+$id: http://devicetree.org/schemas/i2c/qcom,i2c-geni-qcom.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: Qualcomm Geni based QUP I2C Controller
 
Documentation/devicetree/bindings/i2c/st,stm32-i2c.yaml +1 -1
index bf396e9466aa..94b75d9f66cd 100644
@@ -90,7 +90,7 @@ properties:
   st,syscfg-fmp:
     description: Use to set Fast Mode Plus bit within SYSCFG when Fast Mode
       Plus speed is selected by slave.
-    $ref: "/schemas/types.yaml#/definitions/phandle-array"
+    $ref: /schemas/types.yaml#/definitions/phandle-array
     items:
       - items:
           - description: phandle to syscfg
Documentation/devicetree/bindings/i2c/xlnx,xps-iic-2.00.a.yaml +2 -2
index 8d241a703d85..f3b53ecae562 100644
@@ -1,8 +1,8 @@
 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
 %YAML 1.2
 ---
-$id: "http://devicetree.org/schemas/i2c/xlnx,xps-iic-2.00.a.yaml#"
-$schema: "http://devicetree.org/meta-schemas/core.yaml#"
+$id: http://devicetree.org/schemas/i2c/xlnx,xps-iic-2.00.a.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: Xilinx IIC controller
 
Makefile +1 -1
index 83658d447564..c2148be2ba34 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 6
 PATCHLEVEL = 1
-SUBLEVEL = 96
+SUBLEVEL = 97
 EXTRAVERSION =
 NAME = Curry Ramen
 
arch/arm/boot/dts/rk3066a.dtsi +1 -0
index de9915d946f7..b98d5e357baf 100644
@@ -123,6 +123,7 @@ hdmi: hdmi@10116000 {
 		pinctrl-0 = <&hdmii2c_xfer>, <&hdmi_hpd>;
 		power-domains = <&power RK3066_PD_VIO>;
 		rockchip,grf = <&grf>;
+		#sound-dai-cells = <0>;
 		status = "disabled";
 
 		ports {
arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts +13 -5
index a71f249ed384..edc8d2e3980d 100644
@@ -5,6 +5,8 @@
  */
 
 /dts-v1/;
+
+#include <dt-bindings/leds/common.h>
 #include "rk3308.dtsi"
 
 / {
@@ -24,17 +26,21 @@ chosen {
 	leds {
 		compatible = "gpio-leds";
 		pinctrl-names = "default";
-		pinctrl-0 = <&green_led_gio>, <&heartbeat_led_gpio>;
+		pinctrl-0 = <&green_led>, <&heartbeat_led>;
 
 		green-led {
+			color = <LED_COLOR_ID_GREEN>;
 			default-state = "on";
+			function = LED_FUNCTION_POWER;
 			gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
 			label = "rockpis:green:power";
 			linux,default-trigger = "default-on";
 		};
 
 		blue-led {
+			color = <LED_COLOR_ID_BLUE>;
 			default-state = "on";
+			function = LED_FUNCTION_HEARTBEAT;
 			gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
 			label = "rockpis:blue:user";
 			linux,default-trigger = "heartbeat";
@@ -127,10 +133,12 @@ &cpu0 {
 };
 
 &emmc {
-	bus-width = <4>;
 	cap-mmc-highspeed;
-	mmc-hs200-1_8v;
+	cap-sd-highspeed;
+	no-sdio;
 	non-removable;
+	pinctrl-names = "default";
+	pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd>;
 	vmmc-supply = <&vcc_io>;
 	status = "okay";
 };
@@ -153,11 +161,11 @@ &pinctrl {
 	pinctrl-0 = <&rtc_32k>;
 
 	leds {
-		green_led_gio: green-led-gpio {
+		green_led: green-led {
 			rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
 		};
 
-		heartbeat_led_gpio: heartbeat-led-gpio {
+		heartbeat_led: heartbeat-led {
 			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
 		};
 	};
arch/arm64/boot/dts/rockchip/rk3328-rock-pi-e.dts +2 -2
index 018a3a5075c7..d9905a08c6ce 100644
@@ -186,8 +186,8 @@ &i2c1 {
 	rk805: pmic@18 {
 		compatible = "rockchip,rk805";
 		reg = <0x18>;
-		interrupt-parent = <&gpio2>;
-		interrupts = <6 IRQ_TYPE_LEVEL_LOW>;
+		interrupt-parent = <&gpio0>;
+		interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
 		#clock-cells = <1>;
 		clock-output-names = "xin32k", "rk805-clkout2";
 		gpio-controller;
arch/arm64/boot/dts/rockchip/rk3368.dtsi +3 -0
index a4c5aaf1f457..cac58ad951b2 100644
@@ -790,6 +790,7 @@ spdif: spdif@ff880000 {
 		dma-names = "tx";
 		pinctrl-names = "default";
 		pinctrl-0 = <&spdif_tx>;
+		#sound-dai-cells = <0>;
 		status = "disabled";
 	};
 
@@ -801,6 +802,7 @@ i2s_2ch: i2s-2ch@ff890000 {
 		clocks = <&cru SCLK_I2S_2CH>, <&cru HCLK_I2S_2CH>;
 		dmas = <&dmac_bus 6>, <&dmac_bus 7>;
 		dma-names = "tx", "rx";
+		#sound-dai-cells = <0>;
 		status = "disabled";
 	};
 
@@ -814,6 +816,7 @@ i2s_8ch: i2s-8ch@ff898000 {
 		dma-names = "tx", "rx";
 		pinctrl-names = "default";
 		pinctrl-0 = <&i2s_8ch_bus>;
+		#sound-dai-cells = <0>;
 		status = "disabled";
 	};
 
arch/arm64/include/asm/unistd32.h +1 -1
index 604a2053d006..f464a2e0b488 100644
@@ -840,7 +840,7 @@ __SYSCALL(__NR_pselect6_time64, compat_sys_pselect6_time64)
 #define __NR_ppoll_time64 414
 __SYSCALL(__NR_ppoll_time64, compat_sys_ppoll_time64)
 #define __NR_io_pgetevents_time64 416
-__SYSCALL(__NR_io_pgetevents_time64, sys_io_pgetevents)
+__SYSCALL(__NR_io_pgetevents_time64, compat_sys_io_pgetevents_time64)
 #define __NR_recvmmsg_time64 417
 __SYSCALL(__NR_recvmmsg_time64, compat_sys_recvmmsg_time64)
 #define __NR_mq_timedsend_time64 418
arch/arm64/kernel/syscall.c +7 -9
index d72e8f23422d..c771e94568b9 100644
@@ -57,17 +57,15 @@ static void invoke_syscall(struct pt_regs *regs, unsigned int scno,
 	syscall_set_return_value(current, regs, 0, ret);
 
 	/*
-	 * Ultimately, this value will get limited by KSTACK_OFFSET_MAX(),
-	 * but not enough for arm64 stack utilization comfort. To keep
-	 * reasonable stack head room, reduce the maximum offset to 9 bits.
+	 * This value will get limited by KSTACK_OFFSET_MAX(), which is 10
+	 * bits. The actual entropy will be further reduced by the compiler
+	 * when applying stack alignment constraints: the AAPCS mandates a
+	 * 16-byte aligned SP at function boundaries, which will remove the
+	 * 4 low bits from any entropy chosen here.
 	 *
-	 * The actual entropy will be further reduced by the compiler when
-	 * applying stack alignment constraints: the AAPCS mandates a
-	 * 16-byte (i.e. 4-bit) aligned SP at function boundaries.
-	 *
-	 * The resulting 5 bits of entropy is seen in SP[8:4].
+	 * The resulting 6 bits of entropy is seen in SP[9:4].
 	 */
-	choose_random_kstack_offset(get_random_u16() & 0x1FF);
+	choose_random_kstack_offset(get_random_u16());
 }
 
 static inline bool has_syscall_work(unsigned long flags)
arch/csky/include/uapi/asm/unistd.h +1 -0
index 7ff6a2466af1..e0594b6370a6 100644
@@ -6,6 +6,7 @@
 #define __ARCH_WANT_SYS_CLONE3
 #define __ARCH_WANT_SET_GET_RLIMIT
 #define __ARCH_WANT_TIME32_SYSCALLS
+#define __ARCH_WANT_SYNC_FILE_RANGE2
 #include <asm-generic/unistd.h>
 
 #define __NR_set_thread_area	(__NR_arch_specific_syscall + 0)
arch/hexagon/include/asm/syscalls.h new file +6 -0
new file mode 100644
index 000000000000..40f2d08bec92
@@ -0,0 +1,6 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+
+#include <asm-generic/syscalls.h>
+
+asmlinkage long sys_hexagon_fadvise64_64(int fd, int advice,
+	                                  u32 a2, u32 a3, u32 a4, u32 a5);
arch/hexagon/include/uapi/asm/unistd.h +1 -0
index 432c4db1b623..21ae22306b5d 100644
@@ -36,5 +36,6 @@
 #define __ARCH_WANT_SYS_VFORK
 #define __ARCH_WANT_SYS_FORK
 #define __ARCH_WANT_TIME32_SYSCALLS
+#define __ARCH_WANT_SYNC_FILE_RANGE2
 
 #include <asm-generic/unistd.h>
arch/hexagon/kernel/syscalltab.c +7 -0
index 0fadd582cfc7..5d98bdc494ec 100644
@@ -14,6 +14,13 @@
 #undef __SYSCALL
 #define __SYSCALL(nr, call) [nr] = (call),
 
+SYSCALL_DEFINE6(hexagon_fadvise64_64, int, fd, int, advice,
+		SC_ARG64(offset), SC_ARG64(len))
+{
+	return ksys_fadvise64_64(fd, SC_VAL64(loff_t, offset), SC_VAL64(loff_t, len), advice);
+}
+#define sys_fadvise64_64 sys_hexagon_fadvise64_64
+
 void *sys_call_table[__NR_syscalls] = {
 #include <asm/unistd.h>
 };
arch/mips/kernel/syscalls/syscall_n32.tbl +1 -1
index 253ff994ed2e..5d952a57c0ee 100644
@@ -354,7 +354,7 @@
 412	n32	utimensat_time64		sys_utimensat
 413	n32	pselect6_time64			compat_sys_pselect6_time64
 414	n32	ppoll_time64			compat_sys_ppoll_time64
-416	n32	io_pgetevents_time64		sys_io_pgetevents
+416	n32	io_pgetevents_time64		compat_sys_io_pgetevents_time64
 417	n32	recvmmsg_time64			compat_sys_recvmmsg_time64
 418	n32	mq_timedsend_time64		sys_mq_timedsend
 419	n32	mq_timedreceive_time64		sys_mq_timedreceive
arch/mips/kernel/syscalls/syscall_o32.tbl +1 -1
index 8f243e35a7b2..7ab572040f53 100644
@@ -403,7 +403,7 @@
 412	o32	utimensat_time64		sys_utimensat			sys_utimensat
 413	o32	pselect6_time64			sys_pselect6			compat_sys_pselect6_time64
 414	o32	ppoll_time64			sys_ppoll			compat_sys_ppoll_time64
-416	o32	io_pgetevents_time64		sys_io_pgetevents		sys_io_pgetevents
+416	o32	io_pgetevents_time64		sys_io_pgetevents		compat_sys_io_pgetevents_time64
 417	o32	recvmmsg_time64			sys_recvmmsg			compat_sys_recvmmsg_time64
 418	o32	mq_timedsend_time64		sys_mq_timedsend		sys_mq_timedsend
 419	o32	mq_timedreceive_time64		sys_mq_timedreceive		sys_mq_timedreceive
arch/parisc/Kconfig +1 -0
index abf39ecda6fb..5762633ea95e 100644
@@ -14,6 +14,7 @@ config PARISC
 	select ARCH_HAS_UBSAN_SANITIZE_ALL
 	select ARCH_HAS_PTE_SPECIAL
 	select ARCH_NO_SG_CHAIN
+	select ARCH_SPLIT_ARG64 if !64BIT
 	select ARCH_SUPPORTS_HUGETLBFS if PA20
 	select ARCH_SUPPORTS_MEMORY_FAILURE
 	select ARCH_STACKWALK
arch/parisc/kernel/sys_parisc32.c +0 -9
index 2a12a547b447..826c8e51b585 100644
@@ -23,12 +23,3 @@ asmlinkage long sys32_unimplemented(int r26, int r25, int r24, int r23,
     	current->comm, current->pid, r20);
     return -ENOSYS;
 }
-
-asmlinkage long sys32_fanotify_mark(compat_int_t fanotify_fd, compat_uint_t flags,
-	compat_uint_t mask0, compat_uint_t mask1, compat_int_t dfd,
-	const char  __user * pathname)
-{
-	return sys_fanotify_mark(fanotify_fd, flags,
-			((__u64)mask1 << 32) | mask0,
-			 dfd, pathname);
-}
arch/parisc/kernel/syscalls/syscall.tbl +3 -3
index 0e42fceb2d5e..42702f5d49f2 100644
@@ -108,7 +108,7 @@
 95	common	fchown			sys_fchown
 96	common	getpriority		sys_getpriority
 97	common	setpriority		sys_setpriority
-98	common	recv			sys_recv
+98	common	recv			sys_recv			compat_sys_recv
 99	common	statfs			sys_statfs			compat_sys_statfs
 100	common	fstatfs			sys_fstatfs			compat_sys_fstatfs
 101	common	stat64			sys_stat64
@@ -135,7 +135,7 @@
 120	common	clone			sys_clone_wrapper
 121	common	setdomainname		sys_setdomainname
 122	common	sendfile		sys_sendfile			compat_sys_sendfile
-123	common	recvfrom		sys_recvfrom
+123	common	recvfrom		sys_recvfrom			compat_sys_recvfrom
 124	32	adjtimex		sys_adjtimex_time32
 124	64	adjtimex		sys_adjtimex
 125	common	mprotect		sys_mprotect
@@ -364,7 +364,7 @@
 320	common	accept4			sys_accept4
 321	common	prlimit64		sys_prlimit64
 322	common	fanotify_init		sys_fanotify_init
-323	common	fanotify_mark		sys_fanotify_mark		sys32_fanotify_mark
+323	common	fanotify_mark		sys_fanotify_mark		compat_sys_fanotify_mark
 324	32	clock_adjtime		sys_clock_adjtime32
 324	64	clock_adjtime		sys_clock_adjtime
 325	common	name_to_handle_at	sys_name_to_handle_at
arch/powerpc/kernel/syscalls/syscall.tbl +5 -1
index a0be127475b1..1195f88199ca 100644
@@ -230,8 +230,10 @@
 178	nospu 	rt_sigsuspend			sys_rt_sigsuspend		compat_sys_rt_sigsuspend
 179	32	pread64				sys_ppc_pread64			compat_sys_ppc_pread64
 179	64	pread64				sys_pread64
+179	spu	pread64				sys_pread64
 180	32	pwrite64			sys_ppc_pwrite64		compat_sys_ppc_pwrite64
 180	64	pwrite64			sys_pwrite64
+180	spu	pwrite64			sys_pwrite64
 181	common	chown				sys_chown
 182	common	getcwd				sys_getcwd
 183	common	capget				sys_capget
@@ -246,6 +248,7 @@
 190	common	ugetrlimit			sys_getrlimit			compat_sys_getrlimit
 191	32	readahead			sys_ppc_readahead		compat_sys_ppc_readahead
 191	64	readahead			sys_readahead
+191	spu	readahead			sys_readahead
 192	32	mmap2				sys_mmap2			compat_sys_mmap2
 193	32	truncate64			sys_ppc_truncate64		compat_sys_ppc_truncate64
 194	32	ftruncate64			sys_ppc_ftruncate64		compat_sys_ppc_ftruncate64
@@ -293,6 +296,7 @@
 232	nospu	set_tid_address			sys_set_tid_address
 233	32	fadvise64			sys_ppc32_fadvise64		compat_sys_ppc32_fadvise64
 233	64	fadvise64			sys_fadvise64
+233	spu	fadvise64			sys_fadvise64
 234	nospu	exit_group			sys_exit_group
 235	nospu	lookup_dcookie			sys_lookup_dcookie		compat_sys_lookup_dcookie
 236	common	epoll_create			sys_epoll_create
@@ -502,7 +506,7 @@
 412	32	utimensat_time64		sys_utimensat			sys_utimensat
 413	32	pselect6_time64			sys_pselect6			compat_sys_pselect6_time64
 414	32	ppoll_time64			sys_ppoll			compat_sys_ppoll_time64
-416	32	io_pgetevents_time64		sys_io_pgetevents		sys_io_pgetevents
+416	32	io_pgetevents_time64		sys_io_pgetevents		compat_sys_io_pgetevents_time64
 417	32	recvmmsg_time64			sys_recvmmsg			compat_sys_recvmmsg_time64
 418	32	mq_timedsend_time64		sys_mq_timedsend		sys_mq_timedsend
 419	32	mq_timedreceive_time64		sys_mq_timedreceive		sys_mq_timedreceive
arch/riscv/kernel/stacktrace.c +1 -1
index 528ec7cc9a62..0d3f00eb0bae 100644
@@ -156,7 +156,7 @@ unsigned long __get_wchan(struct task_struct *task)
 	return pc;
 }
 
-noinline void arch_stack_walk(stack_trace_consume_fn consume_entry, void *cookie,
+noinline noinstr void arch_stack_walk(stack_trace_consume_fn consume_entry, void *cookie,
 		     struct task_struct *task, struct pt_regs *regs)
 {
 	walk_stackframe(task, regs, consume_entry, cookie);
arch/s390/include/asm/entry-common.h +1 -1
index 000de2b1e67a..74124092b1c7 100644
@@ -55,7 +55,7 @@ static __always_inline void arch_exit_to_user_mode(void)
 static inline void arch_exit_to_user_mode_prepare(struct pt_regs *regs,
 						  unsigned long ti_work)
 {
-	choose_random_kstack_offset(get_tod_clock_fast() & 0xff);
+	choose_random_kstack_offset(get_tod_clock_fast());
 }
 
 #define arch_exit_to_user_mode_prepare arch_exit_to_user_mode_prepare
arch/s390/kernel/syscalls/syscall.tbl +1 -1
index 799147658dee..42acea15441d 100644
@@ -418,7 +418,7 @@
 412	32	utimensat_time64	-				sys_utimensat
 413	32	pselect6_time64		-				compat_sys_pselect6_time64
 414	32	ppoll_time64		-				compat_sys_ppoll_time64
-416	32	io_pgetevents_time64	-				sys_io_pgetevents
+416	32	io_pgetevents_time64	-				compat_sys_io_pgetevents_time64
 417	32	recvmmsg_time64		-				compat_sys_recvmmsg_time64
 418	32	mq_timedsend_time64	-				sys_mq_timedsend
 419	32	mq_timedreceive_time64	-				sys_mq_timedreceive
arch/s390/pci/pci_irq.c +1 -1
index a2b42a63a53b..04c19ab93a32 100644
@@ -410,7 +410,7 @@ static void __init cpu_enable_directed_irq(void *unused)
 	union zpci_sic_iib iib = {{0}};
 	union zpci_sic_iib ziib = {{0}};
 
-	iib.cdiib.dibv_addr = (u64) zpci_ibv[smp_processor_id()]->vector;
+	iib.cdiib.dibv_addr = virt_to_phys(zpci_ibv[smp_processor_id()]->vector);
 
 	zpci_set_irq_ctrl(SIC_IRQ_MODE_SET_CPU, 0, &iib);
 	zpci_set_irq_ctrl(SIC_IRQ_MODE_D_SINGLE, PCI_ISC, &ziib);
arch/sh/kernel/sys_sh32.c +11 -0
index 9dca568509a5..d6f4afcb0e87 100644
@@ -59,3 +59,14 @@ asmlinkage int sys_fadvise64_64_wrapper(int fd, u32 offset0, u32 offset1,
 				 (u64)len0 << 32 | len1, advice);
 #endif
 }
+
+/*
+ * swap the arguments the way that libc wants them instead of
+ * moving flags ahead of the 64-bit nbytes argument
+ */
+SYSCALL_DEFINE6(sh_sync_file_range6, int, fd, SC_ARG64(offset),
+                SC_ARG64(nbytes), unsigned int, flags)
+{
+        return ksys_sync_file_range(fd, SC_VAL64(loff_t, offset),
+                                    SC_VAL64(loff_t, nbytes), flags);
+}
arch/sh/kernel/syscalls/syscall.tbl +2 -1
index 2de85c977f54..4741e5c8ac61 100644
@@ -321,7 +321,7 @@
 311	common	set_robust_list			sys_set_robust_list
 312	common	get_robust_list			sys_get_robust_list
 313	common	splice				sys_splice
-314	common	sync_file_range			sys_sync_file_range
+314	common	sync_file_range			sys_sh_sync_file_range6
 315	common	tee				sys_tee
 316	common	vmsplice			sys_vmsplice
 317	common	move_pages			sys_move_pages
@@ -395,6 +395,7 @@
 385	common	pkey_alloc			sys_pkey_alloc
 386	common	pkey_free			sys_pkey_free
 387	common	rseq				sys_rseq
+388	common	sync_file_range2		sys_sync_file_range2
 # room for arch specific syscalls
 393	common	semget				sys_semget
 394	common	semctl				sys_semctl
arch/sparc/kernel/sys32.S +0 -221

224 lines not on this page · raw message

arch/sparc/kernel/syscalls/syscall.tbl +4 -4
index 4398cc6fb68d..0ddddd3e38c0 100644
@@ -117,7 +117,7 @@
 90	common	dup2			sys_dup2
 91	32	setfsuid32		sys_setfsuid
 92	common	fcntl			sys_fcntl			compat_sys_fcntl
-93	common	select			sys_select
+93	common	select			sys_select			compat_sys_select
 94	32	setfsgid32		sys_setfsgid
 95	common	fsync			sys_fsync
 96	common	setpriority		sys_setpriority
@@ -155,7 +155,7 @@
 123	32	fchown			sys_fchown16
 123	64	fchown			sys_fchown
 124	common	fchmod			sys_fchmod
-125	common	recvfrom		sys_recvfrom
+125	common	recvfrom		sys_recvfrom			compat_sys_recvfrom
 126	32	setreuid		sys_setreuid16
 126	64	setreuid		sys_setreuid
 127	32	setregid		sys_setregid16
@@ -247,7 +247,7 @@
 204	32	readdir			sys_old_readdir			compat_sys_old_readdir
 204	64	readdir			sys_nis_syscall
 205	common	readahead		sys_readahead			compat_sys_readahead
-206	common	socketcall		sys_socketcall			sys32_socketcall
+206	common	socketcall		sys_socketcall			compat_sys_socketcall
 207	common	syslog			sys_syslog
 208	common	lookup_dcookie		sys_lookup_dcookie		compat_sys_lookup_dcookie
 209	common	fadvise64		sys_fadvise64			compat_sys_fadvise64
@@ -461,7 +461,7 @@
 412	32	utimensat_time64		sys_utimensat			sys_utimensat
 413	32	pselect6_time64			sys_pselect6			compat_sys_pselect6_time64
 414	32	ppoll_time64			sys_ppoll			compat_sys_ppoll_time64
-416	32	io_pgetevents_time64		sys_io_pgetevents		sys_io_pgetevents
+416	32	io_pgetevents_time64		sys_io_pgetevents		compat_sys_io_pgetevents_time64
 417	32	recvmmsg_time64			sys_recvmmsg			compat_sys_recvmmsg_time64
 418	32	mq_timedsend_time64		sys_mq_timedsend		sys_mq_timedsend
 419	32	mq_timedreceive_time64		sys_mq_timedreceive		sys_mq_timedreceive
arch/x86/entry/syscalls/syscall_32.tbl +1 -1
index 320480a8db4f..81e60b37128f 100644
@@ -420,7 +420,7 @@
 412	i386	utimensat_time64	sys_utimensat
 413	i386	pselect6_time64		sys_pselect6			compat_sys_pselect6_time64
 414	i386	ppoll_time64		sys_ppoll			compat_sys_ppoll_time64
-416	i386	io_pgetevents_time64	sys_io_pgetevents
+416	i386	io_pgetevents_time64	sys_io_pgetevents		compat_sys_io_pgetevents_time64
 417	i386	recvmmsg_time64		sys_recvmmsg			compat_sys_recvmmsg_time64
 418	i386	mq_timedsend_time64	sys_mq_timedsend
 419	i386	mq_timedreceive_time64	sys_mq_timedreceive
arch/x86/include/asm/efi.h +11 -0
index e601264b1a24..5f1ff78cf5e3 100644
@@ -416,6 +416,17 @@ static inline void efi_fake_memmap_early(void)
 }
 #endif
 
+extern int __init efi_memmap_alloc(unsigned int num_entries,
+				   struct efi_memory_map_data *data);
+extern void __efi_memmap_free(u64 phys, unsigned long size,
+			      unsigned long flags);
+
+extern int __init efi_memmap_install(struct efi_memory_map_data *data);
+extern int __init efi_memmap_split_count(efi_memory_desc_t *md,
+					 struct range *range);
+extern void __init efi_memmap_insert(struct efi_memory_map *old_memmap,
+				     void *buf, struct efi_mem_range *mem);
+
 #define arch_ima_efi_boot_mode	\
 	({ extern struct boot_params boot_params; boot_params.secure_boot; })
 
arch/x86/include/asm/entry-common.h +6 -9
index ffe72790ceaf..ebdf5c97f53a 100644
@@ -73,19 +73,16 @@ static inline void arch_exit_to_user_mode_prepare(struct pt_regs *regs,
 #endif
 
 	/*
-	 * Ultimately, this value will get limited by KSTACK_OFFSET_MAX(),
-	 * but not enough for x86 stack utilization comfort. To keep
-	 * reasonable stack head room, reduce the maximum offset to 8 bits.
-	 *
-	 * The actual entropy will be further reduced by the compiler when
-	 * applying stack alignment constraints (see cc_stack_align4/8 in
+	 * This value will get limited by KSTACK_OFFSET_MAX(), which is 10
+	 * bits. The actual entropy will be further reduced by the compiler
+	 * when applying stack alignment constraints (see cc_stack_align4/8 in
 	 * arch/x86/Makefile), which will remove the 3 (x86_64) or 2 (ia32)
 	 * low bits from any entropy chosen here.
 	 *
-	 * Therefore, final stack offset entropy will be 5 (x86_64) or
-	 * 6 (ia32) bits.
+	 * Therefore, final stack offset entropy will be 7 (x86_64) or
+	 * 8 (ia32) bits.
 	 */
-	choose_random_kstack_offset(rdtsc() & 0xFF);
+	choose_random_kstack_offset(rdtsc());
 }
 #define arch_exit_to_user_mode_prepare arch_exit_to_user_mode_prepare
 
arch/x86/kernel/fpu/core.c +2 -2
index 1d190761d00f..f1446f532b17 100644
@@ -145,8 +145,8 @@ void restore_fpregs_from_fpstate(struct fpstate *fpstate, u64 mask)
 		asm volatile(
 			"fnclex\n\t"
 			"emms\n\t"
-			"fildl %P[addr]"	/* set F?P to defined value */
-			: : [addr] "m" (fpstate));
+			"fildl %[addr]"	/* set F?P to defined value */
+			: : [addr] "m" (*fpstate));
 	}
 
 	if (use_xsave()) {
arch/x86/kernel/time.c +1 -19
index e42faa792c07..52e1f3f0b361 100644
@@ -27,25 +27,7 @@
 
 unsigned long profile_pc(struct pt_regs *regs)
 {
-	unsigned long pc = instruction_pointer(regs);
-
-	if (!user_mode(regs) && in_lock_functions(pc)) {
-#ifdef CONFIG_FRAME_POINTER
-		return *(unsigned long *)(regs->bp + sizeof(long));
-#else
-		unsigned long *sp = (unsigned long *)regs->sp;
-		/*
-		 * Return address is either directly at stack pointer
-		 * or above a saved flags. Eflags has bits 22-31 zero,
-		 * kernel addresses don't.
-		 */
-		if (sp[0] >> 22)
-			return sp[0];
-		if (sp[1] >> 22)
-			return sp[1];
-#endif
-	}
-	return pc;
+	return instruction_pointer(regs);
 }
 EXPORT_SYMBOL(profile_pc);
 
arch/x86/platform/efi/Makefile +2 -1
index a50245157685..4bd708c037e1 100644
@@ -2,5 +2,6 @@
 KASAN_SANITIZE := n
 GCOV_PROFILE := n
 
-obj-$(CONFIG_EFI) 		+= quirks.o efi.o efi_$(BITS).o efi_stub_$(BITS).o
+obj-$(CONFIG_EFI) 		+= memmap.o quirks.o efi.o efi_$(BITS).o \
+				   efi_stub_$(BITS).o
 obj-$(CONFIG_EFI_MIXED)		+= efi_thunk_$(BITS).o
arch/x86/platform/efi/efi.c +5 -3
index ebc98a68c400..7e51c14a1ef0 100644
@@ -214,9 +214,11 @@ int __init efi_memblock_x86_reserve_range(void)
 	data.desc_size		= e->efi_memdesc_size;
 	data.desc_version	= e->efi_memdesc_version;
 
-	rv = efi_memmap_init_early(&data);
-	if (rv)
-		return rv;
+	if (!efi_enabled(EFI_PARAVIRT)) {
+		rv = efi_memmap_init_early(&data);
+		if (rv)
+			return rv;
+	}
 
 	if (add_efi_memmap || do_efi_soft_reserve())
 		do_add_efi_memmap();
arch/x86/platform/efi/memmap.c new file +249 -0

249 lines not on this page · raw message

crypto/ecdh.c +2 -0
index 80afee3234fb..3049f147e011 100644
@@ -33,6 +33,8 @@ static int ecdh_set_secret(struct crypto_kpp *tfm, const void *buf,
 	    params.key_size > sizeof(u64) * ctx->ndigits)
 		return -EINVAL;
 
+	memset(ctx->private_key, 0, sizeof(ctx->private_key));
+
 	if (!params.key || !params.key_size)
 		return ecc_gen_privkey(ctx->curve_id, ctx->ndigits,
 				       ctx->private_key);
drivers/acpi/x86/utils.c +10 -13
index e45285d4e62a..d0257758cf98 100644
@@ -188,16 +188,16 @@ bool acpi_device_override_status(struct acpi_device *adev, unsigned long long *s
 }
 
 /*
- * AMD systems from Renoir and Lucienne *require* that the NVME controller
+ * AMD systems from Renoir onwards *require* that the NVME controller
  * is put into D3 over a Modern Standby / suspend-to-idle cycle.
  *
  * This is "typically" accomplished using the `StorageD3Enable`
  * property in the _DSD that is checked via the `acpi_storage_d3` function
- * but this property was introduced after many of these systems launched
- * and most OEM systems don't have it in their BIOS.
+ * but some OEM systems still don't have it in their BIOS.
  *
  * The Microsoft documentation for StorageD3Enable mentioned that Windows has
- * a hardcoded allowlist for D3 support, which was used for these platforms.
+ * a hardcoded allowlist for D3 support as well as a registry key to override
+ * the BIOS, which has been used for these cases.
  *
  * This allows quirking on Linux in a similar fashion.
  *
@@ -210,18 +210,15 @@ bool acpi_device_override_status(struct acpi_device *adev, unsigned long long *s
  *    https://bugzilla.kernel.org/show_bug.cgi?id=216773
  *    https://bugzilla.kernel.org/show_bug.cgi?id=217003
  * 2) On at least one HP system StorageD3Enable is missing on the second NVME
-      disk in the system.
+ *    disk in the system.
+ * 3) On at least one HP Rembrandt system StorageD3Enable is missing on the only
+ *    NVME device.
  */
-static const struct x86_cpu_id storage_d3_cpu_ids[] = {
-	X86_MATCH_VENDOR_FAM_MODEL(AMD, 23, 96, NULL),	/* Renoir */
-	X86_MATCH_VENDOR_FAM_MODEL(AMD, 23, 104, NULL),	/* Lucienne */
-	X86_MATCH_VENDOR_FAM_MODEL(AMD, 25, 80, NULL),	/* Cezanne */
-	{}
-};
-
 bool force_storage_d3(void)
 {
-	return x86_match_cpu(storage_d3_cpu_ids);
+	if (!cpu_feature_enabled(X86_FEATURE_ZEN))
+		return false;
+	return acpi_gbl_FADT.flags & ACPI_FADT_LOW_POWER_S0;
 }
 
 /*
drivers/ata/ahci.c +12 -5
index 17119e8dc8c3..20f53ae4d204 100644
@@ -1891,8 +1891,10 @@ static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
 	n_ports = max(ahci_nr_ports(hpriv->cap), fls(hpriv->port_map));
 
 	host = ata_host_alloc_pinfo(&pdev->dev, ppi, n_ports);
-	if (!host)
-		return -ENOMEM;
+	if (!host) {
+		rc = -ENOMEM;
+		goto err_rm_sysfs_file;
+	}
 	host->private_data = hpriv;
 
 	if (ahci_init_msi(pdev, n_ports, hpriv) < 0) {
@@ -1945,11 +1947,11 @@ static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
 	/* initialize adapter */
 	rc = ahci_configure_dma_masks(pdev, hpriv);
 	if (rc)
-		return rc;
+		goto err_rm_sysfs_file;
 
 	rc = ahci_pci_reset_controller(host);
 	if (rc)
-		return rc;
+		goto err_rm_sysfs_file;
 
 	ahci_pci_init_controller(host);
 	ahci_pci_print_info(host);
@@ -1958,10 +1960,15 @@ static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
 
 	rc = ahci_host_activate(host, &ahci_sht);
 	if (rc)
-		return rc;
+		goto err_rm_sysfs_file;
 
 	pm_runtime_put_noidle(&pdev->dev);
 	return 0;
+
+err_rm_sysfs_file:
+	sysfs_remove_file_from_group(&pdev->dev.kobj,
+				     &dev_attr_remapped_nvme.attr, NULL);
+	return rc;
 }
 
 static void ahci_shutdown_one(struct pci_dev *pdev)
drivers/ata/libata-core.c +4 -4
index f14e56a5cff6..5a13630034ef 100644
@@ -5523,8 +5523,10 @@ struct ata_host *ata_host_alloc(struct device *dev, int max_ports)
 	if (!host)
 		return NULL;
 
-	if (!devres_open_group(dev, NULL, GFP_KERNEL))
-		goto err_free;
+	if (!devres_open_group(dev, NULL, GFP_KERNEL)) {
+		kfree(host);
+		return NULL;
+	}
 
 	dr = devres_alloc(ata_devres_release, 0, GFP_KERNEL);
 	if (!dr)
@@ -5556,8 +5558,6 @@ struct ata_host *ata_host_alloc(struct device *dev, int max_ports)
 
  err_out:
 	devres_release_group(dev, NULL);
- err_free:
-	kfree(host);
 	return NULL;
 }
 EXPORT_SYMBOL_GPL(ata_host_alloc);
drivers/counter/ti-eqep.c +6 -0
index b0f24cf3e891..4d3de4a35801 100644
@@ -6,6 +6,7 @@
  */
 
 #include <linux/bitops.h>
+#include <linux/clk.h>
 #include <linux/counter.h>
 #include <linux/kernel.h>
 #include <linux/mod_devicetable.h>
@@ -376,6 +377,7 @@ static int ti_eqep_probe(struct platform_device *pdev)
 	struct counter_device *counter;
 	struct ti_eqep_cnt *priv;
 	void __iomem *base;
+	struct clk *clk;
 	int err;
 
 	counter = devm_counter_alloc(dev, sizeof(*priv));
@@ -415,6 +417,10 @@ static int ti_eqep_probe(struct platform_device *pdev)
 	pm_runtime_enable(dev);
 	pm_runtime_get_sync(dev);
 
+	clk = devm_clk_get_enabled(dev, NULL);
+	if (IS_ERR(clk))
+		return dev_err_probe(dev, PTR_ERR(clk), "failed to enable clock\n");
+
 	err = counter_add(counter);
 	if (err < 0) {
 		pm_runtime_put_sync(dev);
drivers/cpufreq/amd-pstate.c +1 -1
index 9f147e9eafb6..90dcf26f0973 100644
@@ -424,7 +424,7 @@ static int amd_pstate_set_boost(struct cpufreq_policy *policy, int state)
 	if (state)
 		policy->cpuinfo.max_freq = cpudata->max_freq;
 	else
-		policy->cpuinfo.max_freq = cpudata->nominal_freq * 1000;
+		policy->cpuinfo.max_freq = cpudata->nominal_freq;
 
 	policy->max = policy->cpuinfo.max_freq;
 
drivers/cpufreq/intel_pstate.c +6 -7
index 5771f3fc6115..4abda800c632 100644
@@ -348,15 +348,14 @@ static void intel_pstate_set_itmt_prio(int cpu)
 	int ret;
 
 	ret = cppc_get_perf_caps(cpu, &cppc_perf);
-	if (ret)
-		return;
-
 	/*
-	 * On some systems with overclocking enabled, CPPC.highest_perf is hardcoded to 0xff.
-	 * In this case we can't use CPPC.highest_perf to enable ITMT.
-	 * In this case we can look at MSR_HWP_CAPABILITIES bits [8:0] to decide.
+	 * If CPPC is not available, fall back to MSR_HWP_CAPABILITIES bits [8:0].
+	 *
+	 * Also, on some systems with overclocking enabled, CPPC.highest_perf is
+	 * hardcoded to 0xff, so CPPC.highest_perf cannot be used to enable ITMT.
+	 * Fall back to MSR_HWP_CAPABILITIES then too.
 	 */
-	if (cppc_perf.highest_perf == CPPC_MAX_PERF)
+	if (ret || cppc_perf.highest_perf == CPPC_MAX_PERF)
 		cppc_perf.highest_perf = HWP_HIGHEST_PERF(READ_ONCE(all_cpu_data[cpu]->hwp_cap_cached));
 
 	/*
drivers/firmware/efi/fdtparams.c +4 -0
index e901f8564ca0..0ec83ba58097 100644
@@ -30,11 +30,13 @@ static __initconst const char name[][22] = {
 
 static __initconst const struct {
 	const char	path[17];
+	u8		paravirt;
 	const char	params[PARAMCOUNT][26];
 } dt_params[] = {
 	{
 #ifdef CONFIG_XEN    //  <-------17------>
 		.path = "/hypervisor/uefi",
+		.paravirt = 1,
 		.params = {
 			[SYSTAB] = "xen,uefi-system-table",
 			[MMBASE] = "xen,uefi-mmap-start",
@@ -121,6 +123,8 @@ u64 __init efi_get_fdt_params(struct efi_memory_map_data *mm)
 			pr_err("Can't find property '%s' in DT!\n", pname);
 			return 0;
 		}
+		if (dt_params[i].paravirt)
+			set_bit(EFI_PARAVIRT, &efi.flags);
 		return systab;
 	}
 notfound:
drivers/firmware/efi/memmap.c +3 -235

266 lines not on this page · raw message

drivers/gpio/gpio-davinci.c +5 -0
index 69f3d864f69d..206829165fc5 100644
@@ -230,6 +230,11 @@ static int davinci_gpio_probe(struct platform_device *pdev)
 	else
 		nirq = DIV_ROUND_UP(ngpio, 16);
 
+	if (nirq > MAX_INT_PER_BANK) {
+		dev_err(dev, "Too many IRQs!\n");
+		return -EINVAL;
+	}
+
 	chips = devm_kzalloc(dev, sizeof(*chips), GFP_KERNEL);
 	if (!chips)
 		return -ENOMEM;
drivers/gpio/gpiolib-cdev.c +10 -6
index 97e8335716b0..be51bd00d2fd 100644
@@ -132,6 +132,10 @@ struct linehandle_state {
 	GPIOHANDLE_REQUEST_OPEN_DRAIN | \
 	GPIOHANDLE_REQUEST_OPEN_SOURCE)
 
+#define GPIOHANDLE_REQUEST_DIRECTION_FLAGS \
+	(GPIOHANDLE_REQUEST_INPUT | \
+	 GPIOHANDLE_REQUEST_OUTPUT)
+
 static int linehandle_validate_flags(u32 flags)
 {
 	/* Return an error if an unknown flag is set */
@@ -212,21 +216,21 @@ static long linehandle_set_config(struct linehandle_state *lh,
 	if (ret)
 		return ret;
 
+	/* Lines must be reconfigured explicitly as input or output. */
+	if (!(lflags & GPIOHANDLE_REQUEST_DIRECTION_FLAGS))
+		return -EINVAL;
+
 	for (i = 0; i < lh->num_descs; i++) {
 		desc = lh->descs[i];
-		linehandle_flags_to_desc_flags(gcnf.flags, &desc->flags);
+		linehandle_flags_to_desc_flags(lflags, &desc->flags);
 
-		/*
-		 * Lines have to be requested explicitly for input
-		 * or output, else the line will be treated "as is".
-		 */
 		if (lflags & GPIOHANDLE_REQUEST_OUTPUT) {
 			int val = !!gcnf.default_values[i];
 
 			ret = gpiod_direction_output(desc, val);
 			if (ret)
 				return ret;
-		} else if (lflags & GPIOHANDLE_REQUEST_INPUT) {
+		} else {
 			ret = gpiod_direction_input(desc);
 			if (ret)
 				return ret;
drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c +1 -1
index 0d017dc94f01..1e64720a70a2 100644
@@ -387,7 +387,7 @@ amdgpu_atomfirmware_get_vram_info(struct amdgpu_device *adev,
 					mem_channel_number = vram_info->v30.channel_num;
 					mem_channel_width = vram_info->v30.channel_width;
 					if (vram_width)
-						*vram_width = mem_channel_number * (1 << mem_channel_width);
+						*vram_width = mem_channel_number * 16;
 					break;
 				default:
 					return -EINVAL;
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +36 -32

114 lines not on this page · raw message

drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +1 -1
index 9a5416331f02..238c15c0c7e1 100644
@@ -1662,7 +1662,7 @@ static const u16 amdgpu_unsupported_pciidlist[] = {
 };
 
 static const struct pci_device_id pciidlist[] = {
-#ifdef  CONFIG_DRM_AMDGPU_SI
+#ifdef CONFIG_DRM_AMDGPU_SI
 	{0x1002, 0x6780, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TAHITI},
 	{0x1002, 0x6784, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TAHITI},
 	{0x1002, 0x6788, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TAHITI},
drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c +16 -2
index 06980b8527ff..76f23652cc14 100644
@@ -2,6 +2,7 @@
 
 #include <drm/drm_atomic_helper.h>
 #include <drm/drm_simple_kms_helper.h>
+#include <drm/drm_gem_framebuffer_helper.h>
 #include <drm/drm_vblank.h>
 
 #include "amdgpu.h"
@@ -313,7 +314,13 @@ static int amdgpu_vkms_prepare_fb(struct drm_plane *plane,
 		return 0;
 	}
 	afb = to_amdgpu_framebuffer(new_state->fb);
-	obj = new_state->fb->obj[0];
+
+	obj = drm_gem_fb_get_obj(new_state->fb, 0);
+	if (!obj) {
+		DRM_ERROR("Failed to get obj from framebuffer\n");
+		return -EINVAL;
+	}
+
 	rbo = gem_to_amdgpu_bo(obj);
 	adev = amdgpu_ttm_adev(rbo->tbo.bdev);
 
@@ -367,12 +374,19 @@ static void amdgpu_vkms_cleanup_fb(struct drm_plane *plane,
 				   struct drm_plane_state *old_state)
 {
 	struct amdgpu_bo *rbo;
+	struct drm_gem_object *obj;
 	int r;
 
 	if (!old_state->fb)
 		return;
 
-	rbo = gem_to_amdgpu_bo(old_state->fb->obj[0]);
+	obj = drm_gem_fb_get_obj(old_state->fb, 0);
+	if (!obj) {
+		DRM_ERROR("Failed to get obj from framebuffer\n");
+		return;
+	}
+
+	rbo = gem_to_amdgpu_bo(obj);
 	r = amdgpu_bo_reserve(rbo, false);
 	if (unlikely(r)) {
 		DRM_ERROR("failed to reserve rbo before unpin\n");
drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c +1 -0
index ea775e601686..a9dbca9d9c0c 100644
@@ -296,6 +296,7 @@ void i915_vma_revoke_fence(struct i915_vma *vma)
 		return;
 
 	GEM_BUG_ON(fence->vma != vma);
+	i915_active_wait(&fence->active);
 	GEM_BUG_ON(!i915_active_is_idle(&fence->active));
 	GEM_BUG_ON(atomic_read(&fence->pin_count));
 
drivers/gpu/drm/nouveau/dispnv04/tvnv17.c +6 -0
index be28e7bd7490..1da9d1e89f91 100644
@@ -208,6 +208,8 @@ static int nv17_tv_get_ld_modes(struct drm_encoder *encoder,
 		struct drm_display_mode *mode;
 
 		mode = drm_mode_duplicate(encoder->dev, tv_mode);
+		if (!mode)
+			continue;
 
 		mode->clock = tv_norm->tv_enc_mode.vrefresh *
 			mode->htotal / 1000 *
@@ -257,6 +259,8 @@ static int nv17_tv_get_hd_modes(struct drm_encoder *encoder,
 		if (modes[i].hdisplay == output_mode->hdisplay &&
 		    modes[i].vdisplay == output_mode->vdisplay) {
 			mode = drm_mode_duplicate(encoder->dev, output_mode);
+			if (!mode)
+				continue;
 			mode->type |= DRM_MODE_TYPE_PREFERRED;
 
 		} else {
@@ -264,6 +268,8 @@ static int nv17_tv_get_hd_modes(struct drm_encoder *encoder,
 					    modes[i].vdisplay, 60, false,
 					    (output_mode->flags &
 					     DRM_MODE_FLAG_INTERLACE), false);
+			if (!mode)
+				continue;
 		}
 
 		/* CVT modes are sometimes unsuitable... */
drivers/gpu/drm/panel/panel-ilitek-ili9881c.c +3 -3
index cbb68caa36f2..4014c537e397 100644
@@ -716,10 +716,10 @@ static int ili9881c_prepare(struct drm_panel *panel)
 	msleep(5);
 
 	/* And reset it */
-	gpiod_set_value(ctx->reset, 1);
+	gpiod_set_value_cansleep(ctx->reset, 1);
 	msleep(20);
 
-	gpiod_set_value(ctx->reset, 0);
+	gpiod_set_value_cansleep(ctx->reset, 0);
 	msleep(20);
 
 	for (i = 0; i < ctx->desc->init_length; i++) {
@@ -774,7 +774,7 @@ static int ili9881c_unprepare(struct drm_panel *panel)
 
 	mipi_dsi_dcs_enter_sleep_mode(ctx->dsi);
 	regulator_disable(ctx->power);
-	gpiod_set_value(ctx->reset, 1);
+	gpiod_set_value_cansleep(ctx->reset, 1);
 
 	return 0;
 }
drivers/gpu/drm/panel/panel-simple.c +1 -0
index acb7f5c206d1..b560d62b6e21 100644
@@ -2371,6 +2371,7 @@ static const struct display_timing koe_tx26d202vm0bwa_timing = {
 	.vfront_porch = { 3, 5, 10 },
 	.vback_porch = { 2, 5, 10 },
 	.vsync_len = { 5, 5, 5 },
+	.flags = DISPLAY_FLAGS_DE_HIGH,
 };
 
 static const struct panel_desc koe_tx26d202vm0bwa = {
drivers/gpu/drm/radeon/radeon.h +0 -1
index 166c18d62f6d..ec86c04a0d98 100644
@@ -131,7 +131,6 @@ extern int radeon_cik_support;
 /* RADEON_IB_POOL_SIZE must be a power of 2 */
 #define RADEON_IB_POOL_SIZE			16
 #define RADEON_DEBUGFS_MAX_COMPONENTS		32
-#define RADEONFB_CONN_LIMIT			4
 #define RADEON_BIOS_NUM_SCRATCH			8
 
 /* internal ring indices */
drivers/gpu/drm/radeon/radeon_display.c +1 -7
index 1814bb8e14f1..dbee301b3b2e 100644
@@ -683,7 +683,7 @@ static void radeon_crtc_init(struct drm_device *dev, int index)
 	struct radeon_device *rdev = dev->dev_private;
 	struct radeon_crtc *radeon_crtc;
 
-	radeon_crtc = kzalloc(sizeof(struct radeon_crtc) + (RADEONFB_CONN_LIMIT * sizeof(struct drm_connector *)), GFP_KERNEL);
+	radeon_crtc = kzalloc(sizeof(*radeon_crtc), GFP_KERNEL);
 	if (radeon_crtc == NULL)
 		return;
 
@@ -709,12 +709,6 @@ static void radeon_crtc_init(struct drm_device *dev, int index)
 	dev->mode_config.cursor_width = radeon_crtc->max_cursor_width;
 	dev->mode_config.cursor_height = radeon_crtc->max_cursor_height;
 
-#if 0
-	radeon_crtc->mode_set.crtc = &radeon_crtc->base;
-	radeon_crtc->mode_set.connectors = (struct drm_connector **)(radeon_crtc + 1);
-	radeon_crtc->mode_set.num_connectors = 0;
-#endif
-
 	if (rdev->is_atom_bios && (ASIC_IS_AVIVO(rdev) || radeon_r4xx_atom))
 		radeon_atombios_init_crtc(dev, radeon_crtc);
 	else
drivers/i2c/i2c-slave-testunit.c +4 -1
index 75ee7ebdb614..54c08f48a8b8 100644
@@ -118,9 +118,12 @@ static int i2c_slave_testunit_slave_cb(struct i2c_client *client,
 			queue_delayed_work(system_long_wq, &tu->worker,
 					   msecs_to_jiffies(10 * tu->regs[TU_REG_DELAY]));
 		}
-		fallthrough;
+		break;
 
 	case I2C_SLAVE_WRITE_REQUESTED:
+		if (test_bit(TU_FLAG_IN_PROCESS, &tu->flags))
+			return -EBUSY;
+
 		memset(tu->regs, 0, TU_NUM_REGS);
 		tu->reg_idx = 0;
 		break;
drivers/iio/accel/Kconfig +2 -0
index 1f34747a68bf..7b55a4481545 100644
@@ -325,6 +325,8 @@ config DMARD10
 config FXLS8962AF
 	tristate
 	depends on I2C || !I2C # cannot be built-in for modular I2C
+	select IIO_BUFFER
+	select IIO_KFIFO_BUF
 
 config FXLS8962AF_I2C
 	tristate "NXP FXLS8962AF/FXLS8964AF Accelerometer I2C Driver"
drivers/iio/adc/ad7266.c +2 -0
index 468c2656d2be..98648c679a55 100644
@@ -157,6 +157,8 @@ static int ad7266_read_raw(struct iio_dev *indio_dev,
 		ret = ad7266_read_single(st, val, chan->address);
 		iio_device_release_direct_mode(indio_dev);
 
+		if (ret < 0)
+			return ret;
 		*val = (*val >> 2) & 0xfff;
 		if (chan->scan_type.sign == 's')
 			*val = sign_extend32(*val,
drivers/iio/adc/xilinx-ams.c +6 -2
index a507d2e17079..3db021b96ae9 100644
@@ -414,8 +414,12 @@ static void ams_enable_channel_sequence(struct iio_dev *indio_dev)
 
 	/* Run calibration of PS & PL as part of the sequence */
 	scan_mask = BIT(0) | BIT(AMS_PS_SEQ_MAX);
-	for (i = 0; i < indio_dev->num_channels; i++)
-		scan_mask |= BIT_ULL(indio_dev->channels[i].scan_index);
+	for (i = 0; i < indio_dev->num_channels; i++) {
+		const struct iio_chan_spec *chan = &indio_dev->channels[i];
+
+		if (chan->scan_index < AMS_CTRL_SEQ_BASE)
+			scan_mask |= BIT_ULL(chan->scan_index);
+	}
 
 	if (ams->ps_base) {
 		/* put sysmon in a soft reset to change the sequence */
drivers/iio/chemical/bme680.h +2 -0
index 4edc5d21cb9f..f959252a4fe6 100644
@@ -54,7 +54,9 @@
 #define   BME680_NB_CONV_MASK			GENMASK(3, 0)
 
 #define BME680_REG_MEAS_STAT_0			0x1D
+#define   BME680_NEW_DATA_BIT			BIT(7)
 #define   BME680_GAS_MEAS_BIT			BIT(6)
+#define   BME680_MEAS_BIT			BIT(5)
 
 /* Calibration Parameters */
 #define BME680_T2_LSB_REG	0x8A
drivers/iio/chemical/bme680_core.c +54 -8

125 lines not on this page · raw message

drivers/infiniband/core/restrack.c +1 -50

70 lines not on this page · raw message

drivers/input/touchscreen/ili210x.c +2 -2
index e9bd36adbe47..e3a36cd3656c 100644
@@ -261,8 +261,8 @@ static int ili251x_read_touch_data(struct i2c_client *client, u8 *data)
 	if (!error && data[0] == 2) {
 		error = i2c_master_recv(client, data + ILI251X_DATA_SIZE1,
 					ILI251X_DATA_SIZE2);
-		if (error >= 0 && error != ILI251X_DATA_SIZE2)
-			error = -EIO;
+		if (error >= 0)
+			error = error == ILI251X_DATA_SIZE2 ? 0 : -EIO;
 	}
 
 	return error;
drivers/irqchip/irq-loongson-liointc.c +2 -2
index c4584e2f0ad3..37b05567fb0e 100644
@@ -28,7 +28,7 @@
 
 #define LIOINTC_INTC_CHIP_START	0x20
 
-#define LIOINTC_REG_INTC_STATUS	(LIOINTC_INTC_CHIP_START + 0x20)
+#define LIOINTC_REG_INTC_STATUS(core)	(LIOINTC_INTC_CHIP_START + 0x20 + (core) * 8)
 #define LIOINTC_REG_INTC_EN_STATUS	(LIOINTC_INTC_CHIP_START + 0x04)
 #define LIOINTC_REG_INTC_ENABLE	(LIOINTC_INTC_CHIP_START + 0x08)
 #define LIOINTC_REG_INTC_DISABLE	(LIOINTC_INTC_CHIP_START + 0x0c)
@@ -196,7 +196,7 @@ static int liointc_init(phys_addr_t addr, unsigned long size, int revision,
 		goto out_free_priv;
 
 	for (i = 0; i < LIOINTC_NUM_CORES; i++)
-		priv->core_isr[i] = base + LIOINTC_REG_INTC_STATUS;
+		priv->core_isr[i] = base + LIOINTC_REG_INTC_STATUS(i);
 
 	for (i = 0; i < LIOINTC_NUM_PARENT; i++)
 		priv->handler[i].parent_int_map = parent_int_map[i];
drivers/media/dvb-core/dvbdev.c +1 -1
index aefee2277254..04b7ce479fc3 100644
@@ -964,7 +964,7 @@ int dvb_usercopy(struct file *file,
 		     int (*func)(struct file *file,
 		     unsigned int cmd, void *arg))
 {
-	char    sbuf[128];
+	char    sbuf[128] = {};
 	void    *mbuf = NULL;
 	void    *parg = NULL;
 	int     err  = -EINVAL;
drivers/mmc/host/sdhci-brcmstb.c +4 -0
index 55d8bd232695..5b650d5dd0ae 100644
@@ -23,6 +23,7 @@
 #define BRCMSTB_MATCH_FLAGS_NO_64BIT		BIT(0)
 #define BRCMSTB_MATCH_FLAGS_BROKEN_TIMEOUT	BIT(1)
 #define BRCMSTB_MATCH_FLAGS_HAS_CLOCK_GATE	BIT(2)
+#define BRCMSTB_MATCH_FLAGS_USE_CARD_BUSY	BIT(4)
 
 #define BRCMSTB_PRIV_FLAGS_HAS_CQE		BIT(0)
 #define BRCMSTB_PRIV_FLAGS_GATE_CLOCK		BIT(1)
@@ -335,6 +336,9 @@ static int sdhci_brcmstb_probe(struct platform_device *pdev)
 	if (match_priv->flags & BRCMSTB_MATCH_FLAGS_BROKEN_TIMEOUT)
 		host->quirks |= SDHCI_QUIRK_BROKEN_TIMEOUT_VAL;
 
+	if (!(match_priv->flags & BRCMSTB_MATCH_FLAGS_USE_CARD_BUSY))
+		host->mmc_host_ops.card_busy = NULL;
+
 	/* Change the base clock frequency if the DT property exists */
 	if (device_property_read_u32(&pdev->dev, "clock-frequency",
 				     &priv->base_freq_hz) != 0)
drivers/mmc/host/sdhci-pci-core.c +7 -4
index 28dc65023fa9..bda9e10df250 100644
@@ -1330,7 +1330,7 @@ static int jmicron_pmos(struct sdhci_pci_chip *chip, int on)
 
 	ret = pci_read_config_byte(chip->pdev, 0xAE, &scratch);
 	if (ret)
-		return ret;
+		goto fail;
 
 	/*
 	 * Turn PMOS on [bit 0], set over current detection to 2.4 V
@@ -1341,7 +1341,10 @@ static int jmicron_pmos(struct sdhci_pci_chip *chip, int on)
 	else
 		scratch &= ~0x47;
 
-	return pci_write_config_byte(chip->pdev, 0xAE, scratch);
+	ret = pci_write_config_byte(chip->pdev, 0xAE, scratch);
+
+fail:
+	return pcibios_err_to_errno(ret);
 }
 
 static int jmicron_probe(struct sdhci_pci_chip *chip)
@@ -2201,7 +2204,7 @@ static int sdhci_pci_probe(struct pci_dev *pdev,
 
 	ret = pci_read_config_byte(pdev, PCI_SLOT_INFO, &slots);
 	if (ret)
-		return ret;
+		return pcibios_err_to_errno(ret);
 
 	slots = PCI_SLOT_INFO_SLOTS(slots) + 1;
 	dev_dbg(&pdev->dev, "found %d slot(s)\n", slots);
@@ -2210,7 +2213,7 @@ static int sdhci_pci_probe(struct pci_dev *pdev,
 
 	ret = pci_read_config_byte(pdev, PCI_SLOT_INFO, &first_bar);
 	if (ret)
-		return ret;
+		return pcibios_err_to_errno(ret);
 
 	first_bar &= PCI_SLOT_INFO_FIRST_BAR_MASK;
 
drivers/mmc/host/sdhci.c +14 -11
index 111f7c677060..4237d8ae878c 100644
@@ -2539,26 +2539,29 @@ EXPORT_SYMBOL_GPL(sdhci_get_cd_nogpio);
 
 static int sdhci_check_ro(struct sdhci_host *host)
 {
-	unsigned long flags;
+	bool allow_invert = false;
 	int is_readonly;
 
-	spin_lock_irqsave(&host->lock, flags);
-
-	if (host->flags & SDHCI_DEVICE_DEAD)
+	if (host->flags & SDHCI_DEVICE_DEAD) {
 		is_readonly = 0;
-	else if (host->ops->get_ro)
+	} else if (host->ops->get_ro) {
 		is_readonly = host->ops->get_ro(host);
-	else if (mmc_can_gpio_ro(host->mmc))
+	} else if (mmc_can_gpio_ro(host->mmc)) {
 		is_readonly = mmc_gpio_get_ro(host->mmc);
-	else
+		/* Do not invert twice */
+		allow_invert = !(host->mmc->caps2 & MMC_CAP2_RO_ACTIVE_HIGH);
+	} else {
 		is_readonly = !(sdhci_readl(host, SDHCI_PRESENT_STATE)
 				& SDHCI_WRITE_PROTECT);
+		allow_invert = true;
+	}
 
-	spin_unlock_irqrestore(&host->lock, flags);
+	if (is_readonly >= 0 &&
+	    allow_invert &&
+	    (host->quirks & SDHCI_QUIRK_INVERTED_WRITE_PROTECT))
+		is_readonly = !is_readonly;
 
-	/* This quirk needs to be replaced by a callback-function later */
-	return host->quirks & SDHCI_QUIRK_INVERTED_WRITE_PROTECT ?
-		!is_readonly : is_readonly;
+	return is_readonly;
 }
 
 #define SAMPLE_COUNT	5
drivers/mtd/parsers/redboot.c +1 -1
index a16b42a88581..3b55b676ca6b 100644
@@ -102,7 +102,7 @@ static int parse_redboot_partitions(struct mtd_info *master,
 			offset -= master->erasesize;
 		}
 	} else {
-		offset = directory * master->erasesize;
+		offset = (unsigned long) directory * master->erasesize;
 		while (mtd_block_isbad(master, offset)) {
 			offset += master->erasesize;
 			if (offset == master->size)
drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c +13 -1
index eebf967f4711..1665f78abb5c 100644
@@ -1618,11 +1618,20 @@ static int mcp251xfd_open(struct net_device *ndev)
 	clear_bit(MCP251XFD_FLAGS_DOWN, priv->flags);
 	can_rx_offload_enable(&priv->offload);
 
+	priv->wq = alloc_ordered_workqueue("%s-mcp251xfd_wq",
+					   WQ_FREEZABLE | WQ_MEM_RECLAIM,
+					   dev_name(&spi->dev));
+	if (!priv->wq) {
+		err = -ENOMEM;
+		goto out_can_rx_offload_disable;
+	}
+	INIT_WORK(&priv->tx_work, mcp251xfd_tx_obj_write_sync);
+
 	err = request_threaded_irq(spi->irq, NULL, mcp251xfd_irq,
 				   IRQF_SHARED | IRQF_ONESHOT,
 				   dev_name(&spi->dev), priv);
 	if (err)
-		goto out_can_rx_offload_disable;
+		goto out_destroy_workqueue;
 
 	err = mcp251xfd_chip_interrupts_enable(priv);
 	if (err)
@@ -1634,6 +1643,8 @@ static int mcp251xfd_open(struct net_device *ndev)
 
  out_free_irq:
 	free_irq(spi->irq, priv);
+ out_destroy_workqueue:
+	destroy_workqueue(priv->wq);
  out_can_rx_offload_disable:
 	can_rx_offload_disable(&priv->offload);
 	set_bit(MCP251XFD_FLAGS_DOWN, priv->flags);
@@ -1661,6 +1672,7 @@ static int mcp251xfd_stop(struct net_device *ndev)
 	hrtimer_cancel(&priv->tx_irq_timer);
 	mcp251xfd_chip_interrupts_disable(priv);
 	free_irq(ndev->irq, priv);
+	destroy_workqueue(priv->wq);
 	can_rx_offload_disable(&priv->offload);
 	mcp251xfd_timestamp_stop(priv);
 	mcp251xfd_chip_stop(priv, CAN_STATE_STOPPED);
drivers/net/can/spi/mcp251xfd/mcp251xfd-tx.c +47 -8

79 lines not on this page · raw message

drivers/net/can/spi/mcp251xfd/mcp251xfd.h +5 -0
index ba0fd2b95a52..b98ded7098a5 100644
@@ -628,6 +628,10 @@ struct mcp251xfd_priv {
 	struct mcp251xfd_rx_ring *rx[MCP251XFD_FIFO_RX_NUM];
 	struct mcp251xfd_tx_ring tx[MCP251XFD_FIFO_TX_NUM];
 
+	struct workqueue_struct *wq;
+	struct work_struct tx_work;
+	struct mcp251xfd_tx_obj *tx_work_obj;
+
 	DECLARE_BITMAP(flags, __MCP251XFD_FLAGS_SIZE__);
 
 	u8 rx_ring_num;
@@ -934,6 +938,7 @@ void mcp251xfd_skb_set_timestamp(const struct mcp251xfd_priv *priv,
 void mcp251xfd_timestamp_init(struct mcp251xfd_priv *priv);
 void mcp251xfd_timestamp_stop(struct mcp251xfd_priv *priv);
 
+void mcp251xfd_tx_obj_write_sync(struct work_struct *work);
 netdev_tx_t mcp251xfd_start_xmit(struct sk_buff *skb,
 				 struct net_device *ndev);
 
drivers/net/dsa/microchip/ksz9477.c +6 -4
index a73697147053..e9fa92a83322 100644
@@ -183,10 +183,8 @@ int ksz9477_reset_switch(struct ksz_device *dev)
 			   SPI_AUTO_EDGE_DETECTION, 0);
 
 	/* default configuration */
-	ksz_read8(dev, REG_SW_LUE_CTRL_1, &data8);
-	data8 = SW_AGING_ENABLE | SW_LINK_AUTO_AGING |
-	      SW_SRC_ADDR_FILTER | SW_FLUSH_STP_TABLE | SW_FLUSH_MSTP_TABLE;
-	ksz_write8(dev, REG_SW_LUE_CTRL_1, data8);
+	ksz_write8(dev, REG_SW_LUE_CTRL_1,
+		   SW_AGING_ENABLE | SW_LINK_AUTO_AGING | SW_SRC_ADDR_FILTER);
 
 	/* disable interrupts */
 	ksz_write32(dev, REG_SW_INT_MASK__4, SWITCH_INT_MASK);
@@ -1152,6 +1150,10 @@ int ksz9477_setup(struct dsa_switch *ds)
 	/* Enable REG_SW_MTU__2 reg by setting SW_JUMBO_PACKET */
 	ksz_cfg(dev, REG_SW_MAC_CTRL_1, SW_JUMBO_PACKET, true);
 
+	/* Use collision based back pressure mode. */
+	ksz_cfg(dev, REG_SW_MAC_CTRL_1, SW_BACK_PRESSURE,
+		SW_BACK_PRESSURE_COLLISION);
+
 	/* Now we can configure default MTU value */
 	ret = regmap_update_bits(dev->regmap[1], REG_SW_MTU__2, REG_SW_MTU_MASK,
 				 VLAN_ETH_FRAME_LEN + ETH_FCS_LEN);
drivers/net/dsa/microchip/ksz9477_reg.h +1 -0
index 53c68d286dd3..04086e9ab0a0 100644
@@ -267,6 +267,7 @@
 #define REG_SW_MAC_CTRL_1		0x0331
 
 #define SW_BACK_PRESSURE		BIT(5)
+#define SW_BACK_PRESSURE_COLLISION	0
 #define FAIR_FLOW_CTRL			BIT(4)
 #define NO_EXC_COLLISION_DROP		BIT(3)
 #define SW_JUMBO_PACKET			BIT(2)
drivers/net/dsa/microchip/ksz_common.c +1 -1
index f9f43897f86c..9dbe188f09c3 100644
@@ -1790,7 +1790,7 @@ static void ksz_irq_bus_sync_unlock(struct irq_data *d)
 	struct ksz_device *dev = kirq->dev;
 	int ret;
 
-	ret = ksz_write32(dev, kirq->reg_mask, kirq->masked);
+	ret = ksz_write8(dev, kirq->reg_mask, kirq->masked);
 	if (ret)
 		dev_err(dev->dev, "failed to change IRQ mask\n");
 
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c +9 -5
index de62eee58a00..bbbe7c5b5d35 100644
@@ -2754,11 +2754,14 @@ static int dpaa2_eth_xdp_xmit(struct net_device *net_dev, int n,
 static int update_xps(struct dpaa2_eth_priv *priv)
 {
 	struct net_device *net_dev = priv->net_dev;
-	struct cpumask xps_mask;
-	struct dpaa2_eth_fq *fq;
 	int i, num_queues, netdev_queues;
+	struct dpaa2_eth_fq *fq;
+	cpumask_var_t xps_mask;
 	int err = 0;
 
+	if (!alloc_cpumask_var(&xps_mask, GFP_KERNEL))
+		return -ENOMEM;
+
 	num_queues = dpaa2_eth_queue_count(priv);
 	netdev_queues = (net_dev->num_tc ? : 1) * num_queues;
 
@@ -2768,16 +2771,17 @@ static int update_xps(struct dpaa2_eth_priv *priv)
 	for (i = 0; i < netdev_queues; i++) {
 		fq = &priv->fq[i % num_queues];
 
-		cpumask_clear(&xps_mask);
-		cpumask_set_cpu(fq->target_cpu, &xps_mask);
+		cpumask_clear(xps_mask);
+		cpumask_set_cpu(fq->target_cpu, xps_mask);
 
-		err = netif_set_xps_queue(net_dev, &xps_mask, i);
+		err = netif_set_xps_queue(net_dev, xps_mask, i);
 		if (err) {
 			netdev_warn_once(net_dev, "Error setting XPS queue\n");
 			break;
 		}
 	}
 
+	free_cpumask_var(xps_mask);
 	return err;
 }
 
drivers/net/ethernet/ibm/ibmvnic.c +6 -0
index 157be4e9be4b..8f377d0a80fe 100644
@@ -3859,6 +3859,12 @@ static void release_sub_crqs(struct ibmvnic_adapter *adapter, bool do_h_free)
 		adapter->num_active_tx_scrqs = 0;
 	}
 
+	/* Clean any remaining outstanding SKBs
+	 * we freed the irq so we won't be hearing
+	 * from them
+	 */
+	clean_tx_pools(adapter);
+
 	if (adapter->rx_scrq) {
 		for (i = 0; i < adapter->num_active_rx_scrqs; i++) {
 			if (!adapter->rx_scrq[i])
drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c +14 -6
index c9f1c79f3f9d..ba090262e27e 100644
@@ -1607,8 +1607,8 @@ static void mlxsw_sp_sb_sr_occ_query_cb(struct mlxsw_core *mlxsw_core,
 int mlxsw_sp_sb_occ_snapshot(struct mlxsw_core *mlxsw_core,
 			     unsigned int sb_index)
 {
+	u16 local_port, local_port_1, first_local_port, last_local_port;
 	struct mlxsw_sp *mlxsw_sp = mlxsw_core_driver_priv(mlxsw_core);
-	u16 local_port, local_port_1, last_local_port;
 	struct mlxsw_sp_sb_sr_occ_query_cb_ctx cb_ctx;
 	u8 masked_count, current_page = 0;
 	unsigned long cb_priv = 0;
@@ -1628,6 +1628,7 @@ int mlxsw_sp_sb_occ_snapshot(struct mlxsw_core *mlxsw_core,
 	masked_count = 0;
 	mlxsw_reg_sbsr_pack(sbsr_pl, false);
 	mlxsw_reg_sbsr_port_page_set(sbsr_pl, current_page);
+	first_local_port = current_page * MLXSW_REG_SBSR_NUM_PORTS_IN_PAGE;
 	last_local_port = current_page * MLXSW_REG_SBSR_NUM_PORTS_IN_PAGE +
 			  MLXSW_REG_SBSR_NUM_PORTS_IN_PAGE - 1;
 
@@ -1645,9 +1646,12 @@ int mlxsw_sp_sb_occ_snapshot(struct mlxsw_core *mlxsw_core,
 		if (local_port != MLXSW_PORT_CPU_PORT) {
 			/* Ingress quotas are not supported for the CPU port */
 			mlxsw_reg_sbsr_ingress_port_mask_set(sbsr_pl,
-							     local_port, 1);
+							     local_port - first_local_port,
+							     1);
 		}
-		mlxsw_reg_sbsr_egress_port_mask_set(sbsr_pl, local_port, 1);
+		mlxsw_reg_sbsr_egress_port_mask_set(sbsr_pl,
+						    local_port - first_local_port,
+						    1);
 		for (i = 0; i < mlxsw_sp->sb_vals->pool_count; i++) {
 			err = mlxsw_sp_sb_pm_occ_query(mlxsw_sp, local_port, i,
 						       &bulk_list);
@@ -1684,7 +1688,7 @@ int mlxsw_sp_sb_occ_max_clear(struct mlxsw_core *mlxsw_core,
 			      unsigned int sb_index)
 {
 	struct mlxsw_sp *mlxsw_sp = mlxsw_core_driver_priv(mlxsw_core);
-	u16 local_port, last_local_port;
+	u16 local_port, first_local_port, last_local_port;
 	LIST_HEAD(bulk_list);
 	unsigned int masked_count;
 	u8 current_page = 0;
@@ -1702,6 +1706,7 @@ int mlxsw_sp_sb_occ_max_clear(struct mlxsw_core *mlxsw_core,
 	masked_count = 0;
 	mlxsw_reg_sbsr_pack(sbsr_pl, true);
 	mlxsw_reg_sbsr_port_page_set(sbsr_pl, current_page);
+	first_local_port = current_page * MLXSW_REG_SBSR_NUM_PORTS_IN_PAGE;
 	last_local_port = current_page * MLXSW_REG_SBSR_NUM_PORTS_IN_PAGE +
 			  MLXSW_REG_SBSR_NUM_PORTS_IN_PAGE - 1;
 
@@ -1719,9 +1724,12 @@ int mlxsw_sp_sb_occ_max_clear(struct mlxsw_core *mlxsw_core,
 		if (local_port != MLXSW_PORT_CPU_PORT) {
 			/* Ingress quotas are not supported for the CPU port */
 			mlxsw_reg_sbsr_ingress_port_mask_set(sbsr_pl,
-							     local_port, 1);
+							     local_port - first_local_port,
+							     1);
 		}
-		mlxsw_reg_sbsr_egress_port_mask_set(sbsr_pl, local_port, 1);
+		mlxsw_reg_sbsr_egress_port_mask_set(sbsr_pl,
+						    local_port - first_local_port,
+						    1);
 		for (i = 0; i < mlxsw_sp->sb_vals->pool_count; i++) {
 			err = mlxsw_sp_sb_pm_occ_clear(mlxsw_sp, local_port, i,
 						       &bulk_list);
drivers/net/phy/micrel.c +1 -0
index 98c6d0caf8fa..90f3953cf906 100644
@@ -3405,6 +3405,7 @@ static struct mdio_device_id __maybe_unused micrel_tbl[] = {
 	{ PHY_ID_KSZ8081, MICREL_PHY_ID_MASK },
 	{ PHY_ID_KSZ8873MLL, MICREL_PHY_ID_MASK },
 	{ PHY_ID_KSZ886X, MICREL_PHY_ID_MASK },
+	{ PHY_ID_KSZ9477, MICREL_PHY_ID_MASK },
 	{ PHY_ID_LAN8814, MICREL_PHY_ID_MASK },
 	{ PHY_ID_LAN8804, MICREL_PHY_ID_MASK },
 	{ }
drivers/net/usb/ax88179_178a.c +5 -1
index 53f6efc22f5c..73de34179f35 100644
@@ -326,7 +326,8 @@ static void ax88179_status(struct usbnet *dev, struct urb *urb)
 
 	if (netif_carrier_ok(dev->net) != link) {
 		usbnet_link_change(dev, link, 1);
-		netdev_info(dev->net, "ax88179 - Link status is: %d\n", link);
+		if (!link)
+			netdev_info(dev->net, "ax88179 - Link status is: 0\n");
 	}
 }
 
@@ -1540,6 +1541,7 @@ static int ax88179_link_reset(struct usbnet *dev)
 			 GMII_PHY_PHYSR, 2, &tmp16);
 
 	if (!(tmp16 & GMII_PHY_PHYSR_LINK)) {
+		netdev_info(dev->net, "ax88179 - Link status is: 0\n");
 		return 0;
 	} else if (GMII_PHY_PHYSR_GIGA == (tmp16 & GMII_PHY_PHYSR_SMASK)) {
 		mode |= AX_MEDIUM_GIGAMODE | AX_MEDIUM_EN_125MHZ;
@@ -1577,6 +1579,8 @@ static int ax88179_link_reset(struct usbnet *dev)
 
 	netif_carrier_on(dev->net);
 
+	netdev_info(dev->net, "ax88179 - Link status is: 1\n");
+
 	return 0;
 }
 
drivers/pinctrl/core.c +1 -1
index 223482584f54..db5fc55a5c96 100644
@@ -1092,8 +1092,8 @@ static struct pinctrl *create_pinctrl(struct device *dev,
 		 * an -EPROBE_DEFER later, as that is the worst case.
 		 */
 		if (ret == -EPROBE_DEFER) {
-			pinctrl_free(p, false);
 			mutex_unlock(&pinctrl_maps_mutex);
+			pinctrl_free(p, false);
 			return ERR_PTR(ret);
 		}
 	}
drivers/pinctrl/pinctrl-rockchip.c +59 -9

122 lines not on this page · raw message

drivers/pinctrl/pinctrl-rockchip.h +1 -0
index 4759f336941e..849266f8b191 100644
@@ -193,6 +193,7 @@ enum rockchip_pinctrl_type {
 	RK3188,
 	RK3288,
 	RK3308,
+	RK3328,
 	RK3368,
 	RK3399,
 	RK3568,
drivers/pinctrl/qcom/pinctrl-spmi-gpio.c +0 -1
index 8c31a8f6b7e4..6d43c2123e69 100644
@@ -1204,7 +1204,6 @@ static const struct of_device_id pmic_gpio_of_match[] = {
 	{ .compatible = "qcom,pm7250b-gpio", .data = (void *) 12 },
 	{ .compatible = "qcom,pm7325-gpio", .data = (void *) 10 },
 	{ .compatible = "qcom,pm8005-gpio", .data = (void *) 4 },
-	{ .compatible = "qcom,pm8008-gpio", .data = (void *) 2 },
 	{ .compatible = "qcom,pm8019-gpio", .data = (void *) 6 },
 	/* pm8150 has 10 GPIOs with holes on 2, 5, 7 and 8 */
 	{ .compatible = "qcom,pm8150-gpio", .data = (void *) 10 },
drivers/pwm/pwm-stm32.c +3 -0
index bdcdb7f38312..c40a6548ce7d 100644
@@ -340,6 +340,9 @@ static int stm32_pwm_config(struct stm32_pwm *priv, int ch,
 
 	prd = div;
 
+	if (!prd)
+		return -EINVAL;
+
 	if (prescaler > MAX_TIM_PSC)
 		return -EINVAL;
 
drivers/soc/ti/wkup_m3_ipc.c +2 -5
index 343c58ed5896..103d793bae74 100644
@@ -16,7 +16,6 @@
 #include <linux/irq.h>
 #include <linux/module.h>
 #include <linux/of.h>
-#include <linux/omap-mailbox.h>
 #include <linux/platform_device.h>
 #include <linux/remoteproc.h>
 #include <linux/suspend.h>
@@ -314,7 +313,6 @@ static irqreturn_t wkup_m3_txev_handler(int irq, void *ipc_data)
 static int wkup_m3_ping(struct wkup_m3_ipc *m3_ipc)
 {
 	struct device *dev = m3_ipc->dev;
-	mbox_msg_t dummy_msg = 0;
 	int ret;
 
 	if (!m3_ipc->mbox) {
@@ -330,7 +328,7 @@ static int wkup_m3_ping(struct wkup_m3_ipc *m3_ipc)
 	 * the RX callback to avoid multiple interrupts being received
 	 * by the CM3.
 	 */
-	ret = mbox_send_message(m3_ipc->mbox, &dummy_msg);
+	ret = mbox_send_message(m3_ipc->mbox, NULL);
 	if (ret < 0) {
 		dev_err(dev, "%s: mbox_send_message() failed: %d\n",
 			__func__, ret);
@@ -352,7 +350,6 @@ static int wkup_m3_ping(struct wkup_m3_ipc *m3_ipc)
 static int wkup_m3_ping_noirq(struct wkup_m3_ipc *m3_ipc)
 {
 	struct device *dev = m3_ipc->dev;
-	mbox_msg_t dummy_msg = 0;
 	int ret;
 
 	if (!m3_ipc->mbox) {
@@ -361,7 +358,7 @@ static int wkup_m3_ping_noirq(struct wkup_m3_ipc *m3_ipc)
 		return -EIO;
 	}
 
-	ret = mbox_send_message(m3_ipc->mbox, &dummy_msg);
+	ret = mbox_send_message(m3_ipc->mbox, NULL);
 	if (ret < 0) {
 		dev_err(dev, "%s: mbox_send_message() failed: %d\n",
 			__func__, ret);
drivers/tty/serial/8250/8250_omap.c +19 -3
index 037d613006f5..a3eaf293f204 100644
@@ -159,6 +159,10 @@ static u32 uart_read(struct omap8250_priv *priv, u32 reg)
 	return readl(priv->membase + (reg << OMAP_UART_REGSHIFT));
 }
 
+/* Timeout low and High */
+#define UART_OMAP_TO_L                 0x26
+#define UART_OMAP_TO_H                 0x27
+
 /*
  * Called on runtime PM resume path from omap8250_restore_regs(), and
  * omap8250_set_mctrl().
@@ -628,13 +632,25 @@ static irqreturn_t omap8250_irq(int irq, void *dev_id)
 
 	/*
 	 * On K3 SoCs, it is observed that RX TIMEOUT is signalled after
-	 * FIFO has been drained, in which case a dummy read of RX FIFO
-	 * is required to clear RX TIMEOUT condition.
+	 * FIFO has been drained or erroneously.
+	 * So apply solution of Errata i2310 as mentioned in
+	 * https://www.ti.com/lit/pdf/sprz536
 	 */
 	if (priv->habit & UART_RX_TIMEOUT_QUIRK &&
 	    (iir & UART_IIR_RX_TIMEOUT) == UART_IIR_RX_TIMEOUT &&
 	    serial_port_in(port, UART_OMAP_RX_LVL) == 0) {
-		serial_port_in(port, UART_RX);
+		unsigned char efr2, timeout_h, timeout_l;
+
+		efr2 = serial_in(up, UART_OMAP_EFR2);
+		timeout_h = serial_in(up, UART_OMAP_TO_H);
+		timeout_l = serial_in(up, UART_OMAP_TO_L);
+		serial_out(up, UART_OMAP_TO_H, 0xFF);
+		serial_out(up, UART_OMAP_TO_L, 0xFF);
+		serial_out(up, UART_OMAP_EFR2, UART_OMAP_EFR2_TIMEOUT_BEHAVE);
+		serial_in(up, UART_IIR);
+		serial_out(up, UART_OMAP_EFR2, efr2);
+		serial_out(up, UART_OMAP_TO_H, timeout_h);
+		serial_out(up, UART_OMAP_TO_L, timeout_l);
 	}
 
 	/* Stop processing interrupts on input overrun */
drivers/tty/serial/imx.c +8 -2
index b20abaa9ef15..40e59e72d5e9 100644
@@ -120,6 +120,7 @@
 #define UCR4_OREN	(1<<1)	/* Receiver overrun interrupt enable */
 #define UCR4_DREN	(1<<0)	/* Recv data ready interrupt enable */
 #define UFCR_RXTL_SHF	0	/* Receiver trigger level shift */
+#define UFCR_RXTL_MASK	0x3F	/* Receiver trigger 6 bits wide */
 #define UFCR_DCEDTE	(1<<6)	/* DCE/DTE mode select */
 #define UFCR_RFDIV	(7<<7)	/* Reference freq divider mask */
 #define UFCR_RFDIV_REG(x)	(((x) < 7 ? 6 - (x) : 6) << 7)
@@ -1959,7 +1960,7 @@ static int imx_uart_rs485_config(struct uart_port *port, struct ktermios *termio
 				 struct serial_rs485 *rs485conf)
 {
 	struct imx_port *sport = (struct imx_port *)port;
-	u32 ucr2;
+	u32 ucr2, ufcr;
 
 	if (rs485conf->flags & SER_RS485_ENABLED) {
 		/* Enable receiver if low-active RTS signal is requested */
@@ -1978,8 +1979,13 @@ static int imx_uart_rs485_config(struct uart_port *port, struct ktermios *termio
 
 	/* Make sure Rx is enabled in case Tx is active with Rx disabled */
 	if (!(rs485conf->flags & SER_RS485_ENABLED) ||
-	    rs485conf->flags & SER_RS485_RX_DURING_TX)
+	    rs485conf->flags & SER_RS485_RX_DURING_TX) {
+		/* If the receiver trigger is 0, set it to a default value */
+		ufcr = imx_uart_readl(sport, UFCR);
+		if ((ufcr & UFCR_RXTL_MASK) == 0)
+			imx_uart_setup_ufcr(sport, TXTL_DEFAULT, RXTL_DEFAULT);
 		imx_uart_start_rx(port);
+	}
 
 	return 0;
 }
drivers/tty/serial/mcf.c +1 -1
index b1cd9a76dd93..1374b4e82d75 100644
@@ -480,7 +480,7 @@ static const struct uart_ops mcf_uart_ops = {
 	.verify_port	= mcf_verify_port,
 };
 
-static struct mcf_uart mcf_ports[4];
+static struct mcf_uart mcf_ports[10];
 
 #define	MCF_MAXPORTS	ARRAY_SIZE(mcf_ports)
 
drivers/usb/atm/cxacru.c +14 -0
index 4ce7cba2b48a..8f3b9a0a38e1 100644
@@ -1131,6 +1131,7 @@ static int cxacru_bind(struct usbatm_data *usbatm_instance,
 	struct cxacru_data *instance;
 	struct usb_device *usb_dev = interface_to_usbdev(intf);
 	struct usb_host_endpoint *cmd_ep = usb_dev->ep_in[CXACRU_EP_CMD];
+	struct usb_endpoint_descriptor *in, *out;
 	int ret;
 
 	/* instance init */
@@ -1177,6 +1178,19 @@ static int cxacru_bind(struct usbatm_data *usbatm_instance,
 		goto fail;
 	}
 
+	if (usb_endpoint_xfer_int(&cmd_ep->desc))
+		ret = usb_find_common_endpoints(intf->cur_altsetting,
+						NULL, NULL, &in, &out);
+	else
+		ret = usb_find_common_endpoints(intf->cur_altsetting,
+						&in, &out, NULL, NULL);
+
+	if (ret) {
+		usb_err(usbatm_instance, "cxacru_bind: interface has incorrect endpoints\n");
+		ret = -ENODEV;
+		goto fail;
+	}
+
 	if ((cmd_ep->desc.bmAttributes & USB_ENDPOINT_XFERTYPE_MASK)
 			== USB_ENDPOINT_XFER_INT) {
 		usb_fill_int_urb(instance->rcv_urb,
drivers/usb/dwc3/core.c +0 -6
index 3b5482621e5e..94bc7786a3c4 100644
@@ -2087,7 +2087,6 @@ static int dwc3_core_init_for_resume(struct dwc3 *dwc)
 
 static int dwc3_suspend_common(struct dwc3 *dwc, pm_message_t msg)
 {
-	unsigned long	flags;
 	u32 reg;
 
 	switch (dwc->current_dr_role) {
@@ -2125,9 +2124,7 @@ static int dwc3_suspend_common(struct dwc3 *dwc, pm_message_t msg)
 			break;
 
 		if (dwc->current_otg_role == DWC3_OTG_ROLE_DEVICE) {
-			spin_lock_irqsave(&dwc->lock, flags);
 			dwc3_gadget_suspend(dwc);
-			spin_unlock_irqrestore(&dwc->lock, flags);
 			synchronize_irq(dwc->irq_gadget);
 		}
 
@@ -2144,7 +2141,6 @@ static int dwc3_suspend_common(struct dwc3 *dwc, pm_message_t msg)
 
 static int dwc3_resume_common(struct dwc3 *dwc, pm_message_t msg)
 {
-	unsigned long	flags;
 	int		ret;
 	u32		reg;
 
@@ -2193,9 +2189,7 @@ static int dwc3_resume_common(struct dwc3 *dwc, pm_message_t msg)
 		if (dwc->current_otg_role == DWC3_OTG_ROLE_HOST) {
 			dwc3_otg_host_init(dwc);
 		} else if (dwc->current_otg_role == DWC3_OTG_ROLE_DEVICE) {
-			spin_lock_irqsave(&dwc->lock, flags);
 			dwc3_gadget_resume(dwc);
-			spin_unlock_irqrestore(&dwc->lock, flags);
 		}
 
 		break;
drivers/usb/gadget/function/f_printer.c +30 -10
index 8545656419c7..65378266fd84 100644
@@ -210,6 +210,7 @@ static inline struct usb_endpoint_descriptor *ep_desc(struct usb_gadget *gadget,
 					struct usb_endpoint_descriptor *ss)
 {
 	switch (gadget->speed) {
+	case USB_SPEED_SUPER_PLUS:
 	case USB_SPEED_SUPER:
 		return ss;
 	case USB_SPEED_HIGH:
@@ -447,11 +448,8 @@ printer_read(struct file *fd, char __user *buf, size_t len, loff_t *ptr)
 	mutex_lock(&dev->lock_printer_io);
 	spin_lock_irqsave(&dev->lock, flags);
 
-	if (dev->interface < 0) {
-		spin_unlock_irqrestore(&dev->lock, flags);
-		mutex_unlock(&dev->lock_printer_io);
-		return -ENODEV;
-	}
+	if (dev->interface < 0)
+		goto out_disabled;
 
 	/* We will use this flag later to check if a printer reset happened
 	 * after we turn interrupts back on.
@@ -459,6 +457,9 @@ printer_read(struct file *fd, char __user *buf, size_t len, loff_t *ptr)
 	dev->reset_printer = 0;
 
 	setup_rx_reqs(dev);
+	/* this dropped the lock - need to retest */
+	if (dev->interface < 0)
+		goto out_disabled;
 
 	bytes_copied = 0;
 	current_rx_req = dev->current_rx_req;
@@ -492,6 +493,8 @@ printer_read(struct file *fd, char __user *buf, size_t len, loff_t *ptr)
 		wait_event_interruptible(dev->rx_wait,
 				(likely(!list_empty(&dev->rx_buffers))));
 		spin_lock_irqsave(&dev->lock, flags);
+		if (dev->interface < 0)
+			goto out_disabled;
 	}
 
 	/* We have data to return then copy it to the caller's buffer.*/
@@ -535,6 +538,9 @@ printer_read(struct file *fd, char __user *buf, size_t len, loff_t *ptr)
 			return -EAGAIN;
 		}
 
+		if (dev->interface < 0)
+			goto out_disabled;
+
 		/* If we not returning all the data left in this RX request
 		 * buffer then adjust the amount of data left in the buffer.
 		 * Othewise if we are done with this RX request buffer then
@@ -564,6 +570,11 @@ printer_read(struct file *fd, char __user *buf, size_t len, loff_t *ptr)
 		return bytes_copied;
 	else
 		return -EAGAIN;
+
+out_disabled:
+	spin_unlock_irqrestore(&dev->lock, flags);
+	mutex_unlock(&dev->lock_printer_io);
+	return -ENODEV;
 }
 
 static ssize_t
@@ -584,11 +595,8 @@ printer_write(struct file *fd, const char __user *buf, size_t len, loff_t *ptr)
 	mutex_lock(&dev->lock_printer_io);
 	spin_lock_irqsave(&dev->lock, flags);
 
-	if (dev->interface < 0) {
-		spin_unlock_irqrestore(&dev->lock, flags);
-		mutex_unlock(&dev->lock_printer_io);
-		return -ENODEV;
-	}
+	if (dev->interface < 0)
+		goto out_disabled;
 
 	/* Check if a printer reset happens while we have interrupts on */
 	dev->reset_printer = 0;
@@ -611,6 +619,8 @@ printer_write(struct file *fd, const char __user *buf, size_t len, loff_t *ptr)
 		wait_event_interruptible(dev->tx_wait,
 				(likely(!list_empty(&dev->tx_reqs))));
 		spin_lock_irqsave(&dev->lock, flags);
+		if (dev->interface < 0)
+			goto out_disabled;
 	}
 
 	while (likely(!list_empty(&dev->tx_reqs)) && len) {
@@ -660,6 +670,9 @@ printer_write(struct file *fd, const char __user *buf, size_t len, loff_t *ptr)
 			return -EAGAIN;
 		}
 
+		if (dev->interface < 0)
+			goto out_disabled;
+
 		list_add(&req->list, &dev->tx_reqs_active);
 
 		/* here, we unlock, and only unlock, to avoid deadlock. */
@@ -672,6 +685,8 @@ printer_write(struct file *fd, const char __user *buf, size_t len, loff_t *ptr)
 			mutex_unlock(&dev->lock_printer_io);
 			return -EAGAIN;
 		}
+		if (dev->interface < 0)
+			goto out_disabled;
 	}
 
 	spin_unlock_irqrestore(&dev->lock, flags);
@@ -683,6 +698,11 @@ printer_write(struct file *fd, const char __user *buf, size_t len, loff_t *ptr)
 		return bytes_copied;
 	else
 		return -EAGAIN;
+
+out_disabled:
+	spin_unlock_irqrestore(&dev->lock, flags);
+	mutex_unlock(&dev->lock_printer_io);
+	return -ENODEV;
 }
 
 static int
drivers/usb/gadget/udc/aspeed_udc.c +2 -2
index 01968e2167f9..cedf17e38245 100644
@@ -66,8 +66,8 @@
 #define USB_UPSTREAM_EN			BIT(0)
 
 /* Main config reg */
-#define UDC_CFG_SET_ADDR(x)		((x) & 0x3f)
-#define UDC_CFG_ADDR_MASK		(0x3f)
+#define UDC_CFG_SET_ADDR(x)		((x) & UDC_CFG_ADDR_MASK)
+#define UDC_CFG_ADDR_MASK		GENMASK(6, 0)
 
 /* Interrupt ctrl & status reg */
 #define UDC_IRQ_EP_POOL_NAK		BIT(17)
drivers/usb/musb/da8xx.c +6 -2
index a4e55b0c52cf..1aae58143464 100644
@@ -553,7 +553,7 @@ static int da8xx_probe(struct platform_device *pdev)
 	ret = of_platform_populate(pdev->dev.of_node, NULL,
 				   da8xx_auxdata_lookup, &pdev->dev);
 	if (ret)
-		return ret;
+		goto err_unregister_phy;
 
 	pinfo = da8xx_dev_info;
 	pinfo.parent = &pdev->dev;
@@ -568,9 +568,13 @@ static int da8xx_probe(struct platform_device *pdev)
 	ret = PTR_ERR_OR_ZERO(glue->musb);
 	if (ret) {
 		dev_err(&pdev->dev, "failed to register musb device: %d\n", ret);
-		usb_phy_generic_unregister(glue->usb_phy);
+		goto err_unregister_phy;
 	}
 
+	return 0;
+
+err_unregister_phy:
+	usb_phy_generic_unregister(glue->usb_phy);
 	return ret;
 }
 
drivers/usb/typec/ucsi/ucsi.c +27 -28

81 lines not on this page · raw message

drivers/usb/typec/ucsi/ucsi_stm32g0.c +15 -4
index 7b92f0c8de70..8c3b052f6208 100644

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

drivers/vdpa/vdpa_user/vduse_dev.c +10 -4
index edcd74cc4c0f..0ccece3f4f7d 100644

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

fs/btrfs/free-space-cache.c +1 -1
index b27795e13ff3..862a222caab3 100644

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

fs/gfs2/super.c +2 -0
index 302d1e43d701..6107cd680176 100644

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

fs/nfs/direct.c +0 -2
index b555efca01d2..f16b13ba4204 100644

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

fs/ocfs2/aops.c +5 -0
index 0394505fdce3..e94a5a9fec01 100644

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

fs/ocfs2/journal.c +17 -0
index 3fb98b4569a2..7d6843d78c84 100644

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

fs/ocfs2/journal.h +2 -0
index 41c382f68529..689c340c6363 100644

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

fs/ocfs2/ocfs2_trace.h +2 -0
index dc4bce1649c1..7a9cfd61145a 100644

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

fs/open.c +2 -2
index 51dc46620d03..0d63c94e1c5e 100644

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

include/linux/compat.h +1 -1
index 594357881b0b..77e84d17521e 100644

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

include/linux/efi.h +1 -9
index de6d6558a4d3..a849b533be5b 100644

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

include/linux/filter.h +3 -2
index face590b24e1..01f97956572c 100644

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

include/linux/ieee80211.h +1 -1
index dce105f67b4d..160230bb1a9c 100644

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

include/linux/mmzone.h +4 -5
index 3b9f4d7c40c3..93d200309122 100644

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

include/linux/nvme.h +2 -2
index e6fb36b71b59..15086715632e 100644

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

include/linux/syscalls.h +7 -1
index 27a6ba1c0ec4..dcce762b48fa 100644

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

include/net/inet_connection_sock.h +1 -1
index 8132f330306d..4242f863f560 100644

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

include/net/netfilter/nf_tables.h +19 -2
index 2fa344cb66f6..9a80d0251d8f 100644

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

include/trace/events/qdisc.h +2 -2
index 1f4258308b96..061fd4960303 100644

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

include/uapi/asm-generic/unistd.h +1 -1
index 45fa180cc56a..28973a89cdc7 100644

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

kernel/bpf/core.c +5 -1
index 44abf88e1bb0..0ea0d50a7c16 100644

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

kernel/bpf/ringbuf.c +25 -6
index 9e832acf4692..a1911391a864 100644

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

kernel/bpf/verifier.c +6 -2
index 1d851e2f4859..56a5c8beb553 100644

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

kernel/cpu.c +4 -4
index e0e09b700b43..4044e4d80cbb 100644

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

kernel/sys_ni.c +1 -1
index 860b2dcf3ac4..f4922c60a615 100644

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

mm/page_alloc.c +6 -2
index a7537da43bd4..12412263d131 100644

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

net/batman-adv/originator.c +27 -0
index dafef3a78ad5..7388d2ad7b5d 100644

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

net/can/j1939/main.c +1 -5
index a6fb89fa6278..7e8a20f2fc42 100644

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

net/can/j1939/transport.c +19 -2
index bd8ec2433832..25e733983467 100644

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

net/core/filter.c +3 -0
index 7a0741391353..dc89c3424718 100644

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

net/core/xdp.c +1 -3
index 844c9d99dc0e..c3f6653b4274 100644

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

net/dccp/ipv4.c +5 -2
index 9fe6d9679716..f4a2dce3e104 100644

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

net/dccp/ipv6.c +5 -2
index e0b0bf75a46c..016af0301366 100644

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

net/ipv4/inet_connection_sock.c +13 -4
index 8407098a5939..c267c5e066e9 100644

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

net/ipv4/tcp_input.c +33 -12

45 lines not on this page · raw message

net/iucv/iucv.c +18 -8
index f66b5f74cd83..db41eb2d977f 100644

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

net/netfilter/nf_tables_api.c +7 -5
index 1c4b7a8ec2cc..97ea72d31bd3 100644

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

net/netfilter/nft_lookup.c +2 -1
index 68a5dea80548..33daee2e54c5 100644

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

net/netfilter/nft_set_hash.c +7 -1
index 2013de934cef..1fd3b413350d 100644

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

net/netfilter/nft_set_pipapo.c +11 -7
index 2299ced939c4..a56ed216c223 100644

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

net/netfilter/nft_set_rbtree.c +4 -2
index 5bf5572e945c..021d9e76129a 100644

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

scripts/Makefile.dtbinst +1 -1
index 190d781e84f4..3668259ddb65 100644

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

security/integrity/ima/ima_api.c +12 -4
index 026c8c9db992..fed2b0b6b9ec 100644

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

security/integrity/ima/ima_template_lib.c +14 -3
index 7bf9b1507220..41ec31debe87 100644

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

sound/pci/hda/patch_realtek.c +3 -0
index 60866e8e1d96..11ec5783a2f1 100644

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

sound/soc/amd/acp/acp-i2s.c +0 -8
index ac416572db0d..3c78207f9ad9 100644

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

sound/soc/fsl/fsl-asoc-card.c +2 -1
index 8d14b5593658..8b29099975c9 100644

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

sound/soc/rockchip/rockchip_i2s_tdm.c +11 -2
index 2e36a97077b9..bcea52fa45a5 100644

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

sound/synth/emux/soundfont.c +11 -6
index 16f00097cb95..eed47e483024 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.