Skip to contentSkip to conversation

Linux 6.6.95

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Jun 27, 2025 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 6.6.95 kernel.

All users of the 6.6 kernel series must upgrade.

The updated 6.6.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.6.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/admin-guide/kernel-parameters.txt                              |    2 
 Documentation/devicetree/bindings/i2c/nvidia,tegra20-i2c.yaml                |   24 -
 Makefile                                                                     |    2 
 arch/arm/boot/dts/ti/omap/am335x-bone-common.dtsi                            |    2 
 arch/arm/mach-omap2/clockdomain.h                                            |    1 
 arch/arm/mach-omap2/clockdomains33xx_data.c                                  |    2 
 arch/arm/mach-omap2/cm33xx.c                                                 |   14 
 arch/arm/mach-omap2/pmic-cpcap.c                                             |    6 
 arch/arm/mm/ioremap.c                                                        |    4 
 arch/arm64/include/asm/tlbflush.h                                            |    9 
 arch/arm64/kernel/ptrace.c                                                   |    2 
 arch/arm64/mm/mmu.c                                                          |    3 
 arch/loongarch/include/asm/irqflags.h                                        |   16 
 arch/loongarch/mm/hugetlbpage.c                                              |    3 
 arch/mips/vdso/Makefile                                                      |    1 
 arch/parisc/boot/compressed/Makefile                                         |    1 
 arch/parisc/kernel/unaligned.c                                               |    2 
 arch/powerpc/include/asm/ppc_asm.h                                           |    2 
 arch/powerpc/kernel/eeh.c                                                    |    2 
 arch/powerpc/kernel/vdso/Makefile                                            |    2 
 arch/powerpc/platforms/pseries/msi.c                                         |    7 
 arch/riscv/kvm/vcpu_sbi_replace.c                                            |    8 
 arch/s390/kvm/gaccess.c                                                      |    8 
 arch/s390/pci/pci_mmio.c                                                     |    2 
 arch/x86/kernel/cpu/bugs.c                                                   |   10 
 arch/x86/kernel/cpu/sgx/main.c                                               |    2 
 arch/x86/kvm/svm/svm.c                                                       |    2 
 arch/x86/kvm/vmx/vmx.c                                                       |    5 
 drivers/acpi/acpica/dsutils.c                                                |    9 
 drivers/acpi/acpica/psobject.c                                               |   52 --
 drivers/acpi/acpica/utprint.c                                                |    7 
 drivers/acpi/battery.c                                                       |   19 
 drivers/acpi/bus.c                                                           |    6 
 drivers/ata/pata_via.c                                                       |    3 
 drivers/atm/atmtcp.c                                                         |    4 
 drivers/base/power/runtime.c                                                 |    2 
 drivers/base/swnode.c                                                        |    2 
 drivers/block/aoe/aoedev.c                                                   |    8 
 drivers/block/ublk_drv.c                                                     |    3 
 drivers/bus/fsl-mc/fsl-mc-uapi.c                                             |    4 
 drivers/bus/fsl-mc/mc-io.c                                                   |   19 
 drivers/bus/fsl-mc/mc-sys.c                                                  |    2 
 drivers/bus/mhi/ep/ring.c                                                    |   16 
 drivers/bus/mhi/host/pm.c                                                    |   18 
 drivers/bus/ti-sysc.c                                                        |   49 --
 drivers/clk/meson/g12a.c                                                     |    1 
 drivers/clk/rockchip/clk-rk3036.c                                            |    1 
 drivers/cpufreq/scmi-cpufreq.c                                               |   36 +
 drivers/cpufreq/tegra186-cpufreq.c                                           |    7 
 drivers/crypto/marvell/cesa/cesa.c                                           |    2 
 drivers/crypto/marvell/cesa/cesa.h                                           |    9 
 drivers/crypto/marvell/cesa/tdma.c                                           |   53 +-
 drivers/dma-buf/udmabuf.c                                                    |    5 
 drivers/edac/altera_edac.c                                                   |    6 
 drivers/edac/amd64_edac.c                                                    |    1 
 drivers/gpio/gpio-mlxbf3.c                                                   |   54 +-
 drivers/gpio/gpiolib-of.c                                                    |    9 
 drivers/gpu/drm/i915/i915_pmu.c                                              |    4 
 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c                         |   14 
 drivers/gpu/drm/msm/dsi/phy/dsi_phy_10nm.c                                   |    7 
 drivers/gpu/drm/nouveau/nouveau_backlight.c                                  |    2 
 drivers/hv/connection.c                                                      |   23 
 drivers/hwmon/ftsteutates.c                                                  |    9 
 drivers/hwmon/occ/common.c                                                   |  240 ++++------
 drivers/i2c/busses/i2c-designware-slave.c                                    |    2 
 drivers/i2c/busses/i2c-npcm7xx.c                                             |   12 
 drivers/i2c/busses/i2c-tegra.c                                               |    5 
 drivers/iio/accel/fxls8962af-core.c                                          |   15 
 drivers/iio/adc/ad7606_spi.c                                                 |    2 
 drivers/iio/imu/inv_icm42600/inv_icm42600_temp.c                             |    8 
 drivers/infiniband/core/iwcm.c                                               |   29 -
 drivers/input/keyboard/gpio_keys.c                                           |    2 
 drivers/input/misc/ims-pcu.c                                                 |    6 
 drivers/input/misc/sparcspkr.c                                               |   22 
 drivers/iommu/amd/iommu.c                                                    |    8 
 drivers/md/dm-raid1.c                                                        |    5 
 drivers/md/dm-verity-fec.c                                                   |    4 
 drivers/md/dm-verity-target.c                                                |    8 
 drivers/md/dm-verity-verify-sig.c                                            |   17 
 drivers/media/common/videobuf2/videobuf2-dma-sg.c                            |    4 
 drivers/media/i2c/ccs-pll.c                                                  |   11 
 drivers/media/i2c/ds90ub913.c                                                |    4 
 drivers/media/i2c/ov5675.c                                                   |    5 
 drivers/media/i2c/ov8856.c                                                   |    9 
 drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_hevc_req_multi_if.c |    2 
 drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c                               |   59 +-
 drivers/media/platform/nxp/imx8-isi/imx8-isi-m2m.c                           |   14 
 drivers/media/platform/qcom/venus/core.c                                     |   16 
 drivers/media/platform/ti/davinci/vpif.c                                     |    4 
 drivers/media/platform/ti/omap3isp/ispccdc.c                                 |    8 
 drivers/media/platform/ti/omap3isp/ispstat.c                                 |    6 
 drivers/media/test-drivers/vidtv/vidtv_channel.c                             |    2 
 drivers/media/test-drivers/vivid/vivid-vid-cap.c                             |    2 
 drivers/media/usb/dvb-usb/cxusb.c                                            |    3 
 drivers/media/usb/gspca/stv06xx/stv06xx_hdcs.c                               |    7 
 drivers/media/usb/uvc/uvc_ctrl.c                                             |   23 
 drivers/media/usb/uvc/uvc_driver.c                                           |   27 -
 drivers/media/v4l2-core/v4l2-dev.c                                           |   14 
 drivers/mmc/core/card.h                                                      |    6 
 drivers/mmc/core/quirks.h                                                    |   10 
 drivers/mmc/core/sd.c                                                        |   32 +
 drivers/mtd/nand/raw/qcom_nandc.c                                            |    2 
 drivers/mtd/nand/raw/sunxi_nand.c                                            |    2 
 drivers/net/can/m_can/tcan4x5x-core.c                                        |    9 
 drivers/net/ethernet/aquantia/atlantic/aq_main.c                             |    1 
 drivers/net/ethernet/aquantia/atlantic/aq_nic.c                              |    2 
 drivers/net/ethernet/cadence/macb_main.c                                     |    6 
 drivers/net/ethernet/cortina/gemini.c                                        |   37 +
 drivers/net/ethernet/dlink/dl2k.c                                            |   14 
 drivers/net/ethernet/dlink/dl2k.h                                            |    2 
 drivers/net/ethernet/emulex/benet/be_cmds.c                                  |    2 
 drivers/net/ethernet/faraday/Kconfig                                         |    1 
 drivers/net/ethernet/intel/e1000e/netdev.c                                   |   14 
 drivers/net/ethernet/intel/e1000e/ptp.c                                      |    8 
 drivers/net/ethernet/intel/i40e/i40e_common.c                                |    7 
 drivers/net/ethernet/intel/ice/ice_arfs.c                                    |   48 ++
 drivers/net/ethernet/intel/ice/ice_switch.c                                  |    4 
 drivers/net/ethernet/marvell/octeontx2/nic/cn10k.c                           |    9 
 drivers/net/ethernet/mellanox/mlx4/en_ethtool.c                              |    1 
 drivers/net/ethernet/mellanox/mlx5/core/vport.c                              |   18 
 drivers/net/ethernet/microchip/lan743x_ethtool.c                             |   18 
 drivers/net/ethernet/microchip/lan743x_ptp.c                                 |    2 
 drivers/net/ethernet/microchip/lan743x_ptp.h                                 |    5 
 drivers/net/ethernet/pensando/ionic/ionic_main.c                             |    3 
 drivers/net/ethernet/ti/am65-cpsw-nuss.c                                     |   24 -
 drivers/net/ethernet/vertexcom/mse102x.c                                     |   15 
 drivers/net/usb/asix.h                                                       |    1 
 drivers/net/usb/asix_common.c                                                |   22 
 drivers/net/usb/asix_devices.c                                               |   17 
 drivers/net/usb/ch9200.c                                                     |    7 
 drivers/net/vxlan/vxlan_core.c                                               |    8 
 drivers/net/wireless/ath/ath11k/ce.c                                         |   11 
 drivers/net/wireless/ath/ath11k/core.c                                       |   55 ++
 drivers/net/wireless/ath/ath11k/core.h                                       |    7 
 drivers/net/wireless/ath/ath11k/dp_rx.c                                      |   25 -
 drivers/net/wireless/ath/ath11k/hal.c                                        |    4 
 drivers/net/wireless/ath/ath11k/qmi.c                                        |    9 
 drivers/net/wireless/ath/ath12k/ce.c                                         |   11 
 drivers/net/wireless/ath/ath12k/ce.h                                         |    6 
 drivers/net/wireless/ath/ath12k/dp_mon.c                                     |    2 
 drivers/net/wireless/ath/ath12k/hal.c                                        |    4 
 drivers/net/wireless/ath/ath12k/hal_desc.h                                   |    2 
 drivers/net/wireless/ath/ath12k/pci.c                                        |    3 
 drivers/net/wireless/ath/ath12k/wmi.c                                        |   20 
 drivers/net/wireless/ath/carl9170/usb.c                                      |   19 
 drivers/net/wireless/intel/iwlwifi/cfg/22000.c                               |    3 
 drivers/net/wireless/intel/iwlwifi/pcie/trans.c                              |    6 
 drivers/net/wireless/intersil/p54/fwio.c                                     |    2 
 drivers/net/wireless/intersil/p54/p54.h                                      |    1 
 drivers/net/wireless/intersil/p54/txrx.c                                     |   13 
 drivers/net/wireless/mediatek/mt76/mt76x2/usb.c                              |    2 
 drivers/net/wireless/mediatek/mt76/mt76x2/usb_init.c                         |   13 
 drivers/net/wireless/mediatek/mt76/mt7921/main.c                             |    5 
 drivers/net/wireless/mediatek/mt76/mt7996/mac.c                              |    8 
 drivers/net/wireless/purelifi/plfxlc/usb.c                                   |    4 
 drivers/net/wireless/realtek/rtlwifi/pci.c                                   |   10 
 drivers/net/wireless/realtek/rtw88/usb.c                                     |    2 
 drivers/net/wireless/realtek/rtw89/cam.c                                     |    3 
 drivers/net/wireless/realtek/rtw89/pci.c                                     |   69 ++
 drivers/net/wireless/realtek/rtw89/pci.h                                     |    1 
 drivers/net/wireless/virtual/mac80211_hwsim.c                                |    5 
 drivers/pci/controller/cadence/pcie-cadence-ep.c                             |    5 
 drivers/pci/controller/dwc/pcie-dw-rockchip.c                                |    2 
 drivers/pci/pci.c                                                            |    3 
 drivers/pci/quirks.c                                                         |   23 
 drivers/phy/freescale/phy-fsl-imx8mq-usb.c                                   |   10 
 drivers/pinctrl/mvebu/pinctrl-armada-37xx.c                                  |   21 
 drivers/pinctrl/pinctrl-mcp23s08.c                                           |    8 
 drivers/platform/loongarch/loongson-laptop.c                                 |   87 +--
 drivers/platform/x86/amd/pmc/pmc.c                                           |    2 
 drivers/platform/x86/dell/dell_rbu.c                                         |    6 
 drivers/platform/x86/ideapad-laptop.c                                        |    3 
 drivers/platform/x86/intel/uncore-frequency/uncore-frequency-tpmi.c          |    9 
 drivers/power/supply/bq27xxx_battery.c                                       |    2 
 drivers/power/supply/bq27xxx_battery_i2c.c                                   |   13 
 drivers/power/supply/collie_battery.c                                        |    1 
 drivers/ptp/ptp_clock.c                                                      |    3 
 drivers/ptp/ptp_private.h                                                    |   22 
 drivers/rapidio/rio_cm.c                                                     |    3 
 drivers/regulator/max14577-regulator.c                                       |    5 
 drivers/regulator/max20086-regulator.c                                       |    4 
 drivers/remoteproc/remoteproc_core.c                                         |    6 
 drivers/s390/scsi/zfcp_sysfs.c                                               |    2 
 drivers/scsi/elx/efct/efct_hw.c                                              |    5 
 drivers/scsi/lpfc/lpfc_hbadisc.c                                             |    2 
 drivers/scsi/lpfc/lpfc_sli.c                                                 |    4 
 drivers/scsi/storvsc_drv.c                                                   |   10 
 drivers/staging/iio/impedance-analyzer/ad5933.c                              |    2 
 drivers/tee/tee_core.c                                                       |   11 
 drivers/tty/serial/sh-sci.c                                                  |   16 
 drivers/uio/uio_hv_generic.c                                                 |    4 
 drivers/video/console/vgacon.c                                               |    2 
 drivers/video/fbdev/core/fbcon.c                                             |    7 
 drivers/video/fbdev/core/fbmem.c                                             |   22 
 drivers/video/screen_info_pci.c                                              |   79 ++-
 drivers/watchdog/da9052_wdt.c                                                |    1 
 fs/ceph/super.c                                                              |    1 
 fs/configfs/dir.c                                                            |    2 
 fs/ext4/ext4.h                                                               |    7 
 fs/ext4/extents.c                                                            |   18 
 fs/ext4/file.c                                                               |    7 
 fs/ext4/inline.c                                                             |    2 
 fs/ext4/inode.c                                                              |   10 
 fs/f2fs/compress.c                                                           |   23 
 fs/f2fs/f2fs.h                                                               |    5 
 fs/f2fs/inode.c                                                              |   10 
 fs/f2fs/namei.c                                                              |    9 
 fs/f2fs/segment.c                                                            |    6 
 fs/f2fs/super.c                                                              |   12 
 fs/gfs2/lock_dlm.c                                                           |    3 
 fs/jbd2/transaction.c                                                        |    5 
 fs/jffs2/erase.c                                                             |    4 
 fs/jffs2/scan.c                                                              |    4 
 fs/jffs2/summary.c                                                           |    7 
 fs/nfs/read.c                                                                |    3 
 fs/nfsd/nfs4proc.c                                                           |    3 
 fs/nfsd/nfssvc.c                                                             |    6 
 fs/smb/client/cached_dir.c                                                   |   14 
 fs/smb/client/cached_dir.h                                                   |    8 
 fs/smb/client/cifsglob.h                                                     |    1 
 fs/smb/client/connect.c                                                      |   17 
 fs/smb/client/namespace.c                                                    |    3 
 fs/smb/client/readdir.c                                                      |   28 -
 fs/smb/client/reparse.c                                                      |    1 
 fs/smb/client/sess.c                                                         |    7 
 fs/smb/client/smb2pdu.c                                                      |   33 -
 fs/smb/client/transport.c                                                    |   14 
 fs/smb/server/smb2pdu.c                                                      |   11 
 fs/xattr.c                                                                   |    1 
 include/acpi/actypes.h                                                       |    2 
 include/linux/acpi.h                                                         |    9 
 include/linux/atmdev.h                                                       |    6 
 include/linux/hugetlb.h                                                      |    3 
 include/linux/mmc/card.h                                                     |    1 
 include/linux/netdevice.h                                                    |    3 
 include/net/checksum.h                                                       |    2 
 include/trace/events/erofs.h                                                 |   18 
 include/uapi/linux/bpf.h                                                     |    2 
 io_uring/io-wq.c                                                             |    4 
 io_uring/io_uring.c                                                          |    2 
 io_uring/kbuf.c                                                              |    2 
 ipc/shm.c                                                                    |    5 
 kernel/bpf/helpers.c                                                         |    3 
 kernel/cgroup/legacy_freezer.c                                               |    3 
 kernel/events/core.c                                                         |   80 ++-
 kernel/exit.c                                                                |   17 
 kernel/time/clocksource.c                                                    |    2 
 kernel/trace/ftrace.c                                                        |   10 
 kernel/watchdog.c                                                            |   41 +
 lib/Kconfig                                                                  |    1 
 mm/huge_memory.c                                                             |   11 
 mm/hugetlb.c                                                                 |   67 ++
 mm/mmap.c                                                                    |    6 
 mm/page-writeback.c                                                          |    2 
 net/atm/common.c                                                             |    1 
 net/atm/lec.c                                                                |   12 
 net/atm/raw.c                                                                |    2 
 net/bridge/br_mst.c                                                          |    4 
 net/bridge/br_multicast.c                                                    |  103 +++-
 net/bridge/br_private.h                                                      |   11 
 net/core/filter.c                                                            |   24 -
 net/core/skmsg.c                                                             |    3 
 net/core/sock.c                                                              |    4 
 net/core/utils.c                                                             |    4 
 net/ipv4/route.c                                                             |    4 
 net/ipv4/tcp_fastopen.c                                                      |    3 
 net/ipv4/tcp_input.c                                                         |   63 +-
 net/ipv6/calipso.c                                                           |    8 
 net/ipv6/ila/ila_common.c                                                    |    6 
 net/mac80211/mesh_hwmp.c                                                     |    6 
 net/mac80211/tx.c                                                            |    6 
 net/mpls/af_mpls.c                                                           |    4 
 net/nfc/nci/uart.c                                                           |    8 
 net/sched/sch_sfq.c                                                          |   10 
 net/sched/sch_taprio.c                                                       |    6 
 net/sctp/socket.c                                                            |    3 
 net/sunrpc/svc.c                                                             |   11 
 net/sunrpc/xprtsock.c                                                        |    5 
 net/tipc/crypto.c                                                            |    2 
 net/tipc/udp_media.c                                                         |    4 
 net/wireless/core.c                                                          |    6 
 security/selinux/xfrm.c                                                      |    2 
 sound/pci/hda/hda_intel.c                                                    |    2 
 sound/pci/hda/patch_realtek.c                                                |    1 
 sound/soc/amd/yc/acp6x-mach.c                                                |    9 
 sound/soc/codecs/tas2770.c                                                   |   30 +
 sound/soc/meson/meson-card-utils.c                                           |    2 
 sound/soc/qcom/sdm845.c                                                      |    4 
 sound/soc/tegra/tegra210_ahub.c                                              |    2 
 sound/usb/mixer_maps.c                                                       |   12 
 tools/include/uapi/linux/bpf.h                                               |    2 
 tools/lib/bpf/btf.c                                                          |   16 
 tools/perf/util/print-events.c                                               |    1 
 tools/testing/selftests/x86/Makefile                                         |    2 
 tools/testing/selftests/x86/sigtrap_loop.c                                   |  101 ++++
 295 files changed, 2321 insertions(+), 1077 deletions(-)

Aditya Kumar Singh (1):
wifi: ath12k: fix failed to set mhi state error during reboot with hardware grouping

Ahmed Salem (1):
ACPICA: Avoid sequence overread in call to strncmp()

Akhil R (2):
i2c: tegra: check msg length in SMBUS block read
dt-bindings: i2c: nvidia,tegra20-i2c: Specify the required properties

Alan Maguire (1):
libbpf: Add identical pointer detection to btf_dedup_is_equiv()

Alexander Aring (1):
gfs2: move msleep to sleepable context

Alexander Sverdlin (1):
Revert "bus: ti-sysc: Probe for l4_wkup and l4_cfg interconnect devices first"

Alexey Kodanev (1):
net: lan743x: fix potential out-of-bounds write in lan743x_ptp_io_event_clock_get()

Alok Tiwari (1):
emulex/benet: correct command version selection in be_cmd_get_stats()

Andreas Kemnade (1):
ARM: omap: pmic-cpcap: do not mess around without CPCAP or OMAP4

Andrew Morton (1):
drivers/rapidio/rio_cm.c: prevent possible heap overwrite

Andrew Zaborowski (1):
x86/sgx: Prevent attempts to reclaim poisoned pages

Anup Patel (2):
RISC-V: KVM: Fix the size parameter check in SBI SFENCE calls
RISC-V: KVM: Don't treat SBI HFENCE calls as NOPs

Armin Wolf (1):
ACPI: bus: Bail out if acpi_kobj registration fails

Arnd Bergmann (3):
parisc: fix building with gcc-15
hwmon: (occ) Rework attribute registration for stack usage
hwmon: (occ) fix unaligned accesses

Artem Sadovnikov (1):
jffs2: check that raw node were preallocated before writing summary

Avadhut Naik (1):
EDAC/amd64: Correct number of UMCs for family 19h models 70h-7fh

Balamurugan S (1):
wifi: ath12k: fix incorrect CE addresses

Baochen Qiang (2):
wifi: ath12k: fix a possible dead lock caused by ab->base_lock
wifi: ath11k: determine PM policy based on machine model

Benjamin Berg (1):
wifi: mac80211: do not offer a mesh path if forwarding is disabled

Benjamin Lin (1):
wifi: mt76: mt7996: drop fragments with multicast or broadcast RA

Bharath SM (2):
smb: improve directory cache reuse for readdir operations
smb: fix secondary channel creation issue with kerberos by populating hostname when adding channels

Bitterblue Smith (1):
wifi: rtw88: usb: Reduce control message timeout to 500 ms

Breno Leitao (1):
Revert "x86/bugs: Make spectre user default depend on MITIGATION_SPECTRE_V2" on v6.6 and older

Brett Creeley (1):
ionic: Prevent driver/fw getting out of sync on devcmd(s)

Brett Werling (1):
can: tcan4x5x: fix power regulator retrieval during probe

Brian Foster (1):
ext4: only dirty folios when data journaling regular files

Chao Gao (1):
KVM: VMX: Flush shadow VMCS on emergency reboot

Chao Yu (4):
f2fs: fix to do sanity check on ino and xnid
f2fs: fix to do sanity check on sit_bitmap_size
f2fs: use vmalloc instead of kvmalloc in .init_{,de}compress_ctx
f2fs: fix to set atomic write status more clear

Charan Teja Kalla (1):
PM: runtime: fix denying of auto suspend in pm_suspend_timer_fn()

Chen Ridong (1):
cgroup,freezer: fix incomplete freezing when attaching tasks

Chin-Yen Lee (1):

      wifi: rtw89: pci: use DBI function for 8852AE/8852BE/8851BE

Christian Lamparter (1):
wifi: p54: prevent buffer-overflow in p54_rx_eeprom_readback()

Christophe Leroy (1):
powerpc/vdso: Fix build of VDSO32 with pcrel

Chuck Lever (1):
SUNRPC: Prevent hang on NFS mount with xprtsec=[m]tls

Claudiu Beznea (1):
serial: sh-sci: Increment the runtime usage counter for the earlycon device

Colin Foster (1):
ARM: dts: am335x-bone-common: Increase MDIO reset deassert time

Da Xue (1):
clk: meson-g12a: add missing fclk_div2 to spicc

Dan Carpenter (1):
Input: ims-pcu - check record size in ims_pcu_flash_firmware()

Daniel Wagner (1):
scsi: lpfc: Use memcpy() for BIOS version

David Lechner (1):
iio: adc: ad7606_spi: fix reg write value mask

David Thompson (1):
gpio: mlxbf3: only get IRQ for device instance 0

David Wei (1):
tcp: fix passive TFO socket having invalid NAPI ID

Denis Arefev (1):
media: vivid: Change the siize of the composing

Dennis Marttinen (1):
ceph: set superblock s_magic for IMA fsmagic matching

Dev Jain (1):
arm64: Restrict pagetable teardown to avoid false warning

Dexuan Cui (1):
scsi: storvsc: Increase the timeouts to storvsc_timeout

Dian-Syuan Yang (1):
wifi: rtw89: leave idle mode when setting WEP encryption for AP mode

Diederik de Haas (1):
PCI: dw-rockchip: Fix PHY function call sequence in rockchip_pcie_phy_deinit()

Dmitry Antipov (1):
wifi: carl9170: do not ping device which has failed to load firmware

Dmitry Nikiforov (1):
media: davinci: vpif: Fix memory leak in probe error path

Edward Adam Davis (4):
media: cxusb: no longer judge rbuf when the write fails
media: vidtv: Terminating the subsequent process of initialization failure
wifi: mac80211_hwsim: Prevent tsf from setting if beacon is disabled
wifi: cfg80211: init wiphy_work before allocating rfkill fails

Eric Dumazet (5):
tcp: always seek for minimal rtt in tcp_rcv_rtt_update()
tcp: fix initial tp->rcvq_space.space value for passive TS enabled flows
net_sched: sch_sfq: reject invalid perturb period
net: atm: add lec_mutex
net: atm: fix /proc/net/atm/lec handling

Erick Shepherd (1):
mmc: Add quirk to disable DDR50 tuning

Fedor Pchelkin (1):
jffs2: check jffs2_prealloc_raw_node_refs() result in few other places

Fei Shao (1):
media: mediatek: vcodec: Correct vsi_core framebuffer size

GONG Ruiqi (1):
vgacon: Add check for vc_origin address range in vgacon_scroll()

Gabor Juhos (4):
pinctrl: armada-37xx: propagate error from armada_37xx_pmx_set_by_name()
pinctrl: armada-37xx: propagate error from armada_37xx_gpio_get_direction()
pinctrl: armada-37xx: propagate error from armada_37xx_pmx_gpio_set_direction()
pinctrl: armada-37xx: propagate error from armada_37xx_gpio_get()

Gabriel Shahrouzi (1):
staging: iio: ad5933: Correct settling cycles encoding per datasheet

Gao Xiang (1):
erofs: remove unused trace event erofs_destroy_inode

Gatien Chevallier (1):
Input: gpio-keys - fix possible concurrent access in gpio_keys_irq_timer()

Gautam Menghani (1):
powerpc/pseries/msi: Avoid reading PCI device registers in reduced power states

Gavin Guo (1):
mm/huge_memory: fix dereferencing invalid pmd migration entry

Geert Uytterhoeven (1):
ARM: dts: am335x-bone-common: Increase MDIO reset deassert delay to 50ms

Greg Kroah-Hartman (1):

      Linux 6.6.95

Gui-Dong Han (1):
hwmon: (ftsteutates) Fix TOCTOU race in fts_read()

Guilherme G. Piccoli (1):
clocksource: Fix the CPUs' choice in the watchdog per CPU verification

Haixia Qu (1):
tipc: fix null-ptr-deref when acquiring remote ip of ethernet bearer

Hari Chandrakanthan (1):
wifi: ath12k: fix link valid field initialization in the monitor Rx

Hector Martin (1):
ASoC: tas2770: Power cycle amp on ISENSE/VSENSE change

Heiko Carstens (1):
s390/pci: Fix __pcilg_mio_inuser() inline assembly

Heiko Stuebner (1):
clk: rockchip: rk3036: mark ddrphy as critical

Heiner Kallweit (1):
net: ftgmac100: select FIXED_PHY

Helge Deller (1):
parisc/unaligned: Fix hex output to show 8 hex chars

Henk Vergonet (1):

      wifi: mt76: mt76x2: Add support for LiteOn WN4516R,WN4519R

Herbert Xu (1):
crypto: marvell/cesa - Do not chain submitted requests

Hou Tao (1):
bpf: Check rcu_read_lock_trace_held() in bpf_map_lookup_percpu_elem()

Huacai Chen (2):
PCI: Add ACS quirk for Loongson PCIe
LoongArch: Avoid using $r0/$r1 as "mask" for csrxchg

Hyunwoo Kim (1):
net/sched: fix use-after-free in taprio_dev_notifier

Ian Rogers (1):
perf evsel: Missed close() when probing hybrid core PMUs

Ido Schimmel (1):
vxlan: Do not treat dst cache initialization errors as fatal

Ilpo Järvinen (1):
PCI: Fix lock symmetry in pci_slot_unlock()

Ioana Ciornei (1):
bus: fsl-mc: do not add a device-link for the UAPI used DPMCP device

Jacob Keller (1):
drm/nouveau/bl: increase buffer size to avoid truncate warning

Jaegeuk Kim (1):
f2fs: prevent kernel warning due to negative i_nlink from corrupted image

Jakub Kicinski (2):
net: clear the dst when changing skb protocol
net: make for_each_netdev_dump() a little more bug-proof

James A. MacInnes (1):
drm/msm/disp: Correct porch timing for SDM845

Jan Kara (1):
ext4: fix calculation of credits for extent tree modification

Jann Horn (3):
mm/hugetlb: fix huge_pmd_unshare() vs GUP-fast race
tee: Prevent size calculation wraparound on 32-bit kernels mm/hugetlb: unshare page tables during VMA split, not before

Jason Xing (2):
net: atlantic: generate software timestamp just before the doorbell
net: mlx4: add SOF_TIMESTAMPING_TX_SOFTWARE flag when getting ts info

Jeff Hugo (1):
bus: mhi: host: Fix conflict between power_up and SYSERR

Jeff Layton (1):
sunrpc: handle SVC_GARBAGE during svc auth processing as auth error

Jeongjun Park (2):
jbd2: fix data-race and null-ptr-deref in jbd2_journal_dirty_metadata()
ipc: fix to protect IPCS lookups using RCU

Jerry Lv (1):
power: supply: bq27xxx: Retrieve again when busy

Jiayuan Chen (1):
bpf, sockmap: Fix data lost during EAGAIN retries

Jinliang Zheng (1):
mm: fix ratelimit_pages update error in dirty_ratio_handler()

Johan Hovold (5):
wifi: ath11k: fix rx completion meta data corruption
wifi: ath11k: fix ring-buffer corruption
wifi: ath12k: fix ring-buffer corruption
media: ov8856: suppress probe deferral errors
media: ov5675: suppress probe deferral errors

Jon Hunter (1):
Revert "cpufreq: tegra186: Share policy per cluster"

Jonathan Lane (1):
ALSA: hda/realtek: enable headset mic on Latitude 5420 Rugged

João Paulo Gonçalves (2):
regulator: max20086: Fix MAX200086 chip id
regulator: max20086: Change enable gpio to optional

Justin Sanders (1):
aoe: clean device rq_list in aoedev_downdev()

Justin Tee (1):
scsi: lpfc: Fix lpfc_check_sli_ndlp() handling for GEN_REQUEST64 commands

Kang Yang (1):
wifi: ath12k: fix macro definition HAL_RX_MSDU_PKT_LENGTH_GET

Kees Cook (1):
fbcon: Make sure modelist not set on unregistered console

Khem Raj (1):
mips: Add -std= flag specified in KBUILD_CFLAGS to vdso CFLAGS

Krishna Kumar (1):
net: ice: Perform accurate aRFS flow match

Krzysztof Hałasa (1):
usbnet: asix AX88772: leave the carrier control to phylink

Krzysztof Kozlowski (3):
NFC: nci: uart: Set tty->disc_data only in success path
power: supply: collie: Fix wakeup source leaks on device unbind drm/msm/dsi/dsi_phy_10nm: Fix missing initial VCO rate

Kuniyuki Iwashima (4):
atm: Revert atm_account_tx() if copy_from_iter_full() fails.
mpls: Use rcu_dereference_rtnl() in mpls_route_input_rcu().
atm: atmtcp: Free invalid length skb in atmtcp_c_send().
calipso: Fix null-ptr-deref in calipso_req_{set,del}attr().

Kyungwook Boo (1):
i40e: fix MMIO write access to an invalid page in i40e_clear_hw

Laurentiu Palcu (1):
media: nxp: imx8-isi: better handle the m2m usage_count

Laurentiu Tudor (1):
bus: fsl-mc: increase MC_CMD_COMPLETION_TIMEOUT_MS value

Li Lingfeng (1):
nfsd: Initialize ssc before laundromat_work to prevent NULL dereference

Linus Walleij (1):
net: ethernet: cortina: Use TOE/TSO on all TCP

Loic Poulain (1):
media: venus: Fix probe error handling

Long Li (2):
Drivers: hv: Allocate interrupt and monitor pages aligned to system page boundary
uio_hv_generic: Use correct size for interrupt and monitor pages

Lorenzo Stoakes (1):
KVM: s390: rename PROT_NONE to PROT_TYPE_DUMMY

Luo Gengkun (2):
watchdog: fix watchdog may detect false positive of softlockup perf/core: Fix WARN in perf_cgroup_switch()

Ma Ke (1):
media: v4l2-dev: fix error handling in __video_register_device()

Marcus Folkesson (1):
watchdog: da9052_wdt: respect TWDMIN

Marek Szyprowski (3):
media: omap3isp: use sgtable-based scatterlist wrappers
media: videobuf2: use sgtable-based scatterlist wrappers
udmabuf: use sgtable-based scatterlist wrappers

Mario Limonciello (2):
ACPI: Add missing prototype for non CONFIG_SUSPEND/CONFIG_X86 case platform/x86/amd: pmc: Clear metrics table at start of cycle

Martin Blumenstingl (1):
ASoC: meson: meson-card-utils: use of_property_present() for DT parsing

Mateusz Pacuszka (1):
ice: fix check for existing switch rule

Max Kellermann (1):
fs/nfs/read: fix double-unlock bug in nfs_return_empty_folio()

Md Sadre Alam (1):
mtd: rawnand: qcom: Fix read len for onfi param page

Michael Walle (1):
net: ethernet: ti: am65-cpsw: handle -EPROBE_DEFER

Mike Looijmans (1):
pinctrl: mcp23s08: Reset all pins to input at probe

Mike Tipton (1):
cpufreq: scmi: Skip SCMI devices that aren't used by the CPUs

Mikulas Patocka (2):
dm-mirror: fix a tiny race condition
dm-verity: fix a memory leak if some arguments are specified multiple times

Ming Qian (4):
media: imx-jpeg: Drop the first error frames
media: imx-jpeg: Move mxc_jpeg_free_slot_data() ahead
media: imx-jpeg: Reset slot data pointers when freed
media: imx-jpeg: Cleanup after an allocation error

Mingcong Bai (1):
wifi: rtlwifi: disable ASPM for RTL8723BE with subsystem ID 11ad:1723

Miri Korenblit (1):

      wifi: iwlwifi: pcie: make sure to lock rxq->read

Moon Yeounsu (1):
net: dlink: add synchronization for stats update

Muhammad Usama Anjum (1):
wifi: ath11k: Fix QMI memory reuse logic

Muna Sinada (1):
wifi: mac80211: VLAN traffic in multicast path

Murad Masimov (2):
fbdev: Fix do_register_framebuffer to prevent null-ptr-deref in fb_videomode_to_var
fbdev: Fix fb_set_var to prevent null-ptr-deref in fb_videomode_to_var

Namjae Jeon (1):
ksmbd: fix null pointer dereference in destroy_previous_session

Narayana Murty N (1):
powerpc/eeh: Fix missing PE bridge reconfiguration during VFIO EEH recovery

Neal Cardwell (1):
tcp: fix tcp_packet_delayed() for tcp_is_non_sack_preventing_reopen() behavior

NeilBrown (1):
nfsd: nfsd4_spo_must_allow() must check this is a v4 compound request

Niklas Cassel (1):
PCI: cadence-ep: Correct PBA offset in .set_msix() callback

Niravkumar L Rabara (1):
EDAC/altera: Use correct write width with the INTTEST register

Pali Rohár (1):

      cifs: Remove duplicate fattr->cf_dtype assignment from wsl_to_fattr() function

Paul Aurich (1):
smb: Log an error when close_all_cached_dirs fails

Paul Chaignon (2):
net: Fix checksum update for ILA adj-transport
bpf: Fix L4 csum update on IPv6 in CHECKSUM_COMPLETE

Pavel Begunkov (2):
io_uring: account drain memory to cgroup io_uring/kbuf: account ring io_buffer_list memory

Peng Fan (1):
gpiolib: of: Add polarity quirk for s5m8767

Penglei Jiang (1):
io_uring: fix task leak issue in io_wq_create()

Peter Marheine (1):
ACPI: battery: negate current when discharging

Peter Oberparleiter (1):
scsi: s390: zfcp: Ensure synchronous unit_add

Peter Zijlstra (2):
perf: Fix sample vs do_exit()
perf: Fix cgroup state vs ERROR

Petr Malat (1):
sctp: Do not wake readers in __sctp_write_space()

Qasim Ijaz (1):
net: ch9200: fix uninitialised access during mii_nway_restart

Renato Caldas (1):
platform/x86: ideapad-laptop: add missing Ideapad Pro 5 fn keys

Rengarajan S (2):
net: lan743x: Modify the EEPROM and OTP size for PCI1xxxx devices
net: microchip: lan743x: Reduce PTP timeout on HW failure

Ricardo Ribalda (3):
media: uvcvideo: Return the number of processed controls
media: uvcvideo: Send control events for partial succeeds
media: uvcvideo: Fix deferred probing error

Ronnie Sahlberg (1):
ublk: santizize the arguments from userspace when adding a device

Ross Stutterheim (1):

      ARM: 9447/1: arm/memremap: fix arch_memremap_can_ram_remap()

Ruben Devos (1):
smb: client: add NULL check in automount_fullpath

Ryan Roberts (1):
arm64/mm: Close theoretical race where stale TLB entry remains valid

Sakari Ailus (4):
media: ccs-pll: Start VT pre-PLL multiplier search from correct value
media: ccs-pll: Start OP pre-PLL multiplier search from correct value
media: ccs-pll: Correct the upper limit of maximum op_pre_pll_clk_div
media: ccs-pll: Check for too high VT PLL multiplier in dual PLL case

Salah Triki (1):
wireless: purelifi: plfxlc: fix memory leak in plfxlc_usb_wreq_asyn()

Samuel Williams (1):

      wifi: mt76: mt7921: add 160 MHz AP for mt7922 device

Sean Christopherson (1):
iommu/amd: Ensure GA log notifier callbacks finish running before module unload

Sean Nyekjaer (3):
iio: accel: fxls8962af: Fix temperature scan element sign
iio: imu: inv_icm42600: Fix temperature calculation
iio: accel: fxls8962af: Fix temperature calculation

Sebastian Andrzej Siewior (1):
ipv4/route: Use this_cpu_inc() for stats on PREEMPT_RT

Sergio Perez Gonzalez (1):
net: macb: Check return value of dma_set_mask_and_coherent()

Seunghun Han (2):
ACPICA: fix acpi operand cache leak in dswstate.c
ACPICA: fix acpi parse and parseext cache leaks

Shin'ichiro Kawasaki (1):
RDMA/iwcm: Fix use-after-free of work objects after cm_id destruction

Shyam Prasad N (6):
cifs: reset connections for all channels when reconnect requested
cifs: update dstaddr whenever channel iface is updated
cifs: dns resolution is needed only for primary channel
cifs: deal with the channel loading lag while picking channels
cifs: serialize other channels when query server interfaces is pending
cifs: do not disable interface polling on failure

Simon Horman (1):
pldmfw: Select CRC32 when PLDMFW is selected

Srinivas Pandruvada (1):
platform/x86/intel-uncore-freq: Fail module load when plat_info is NULL

Stefan Wahren (1):
net: vertexcom: mse102x: Return code for mse102x_rx_pkt_spi

Stephen Smalley (2):
fs/xattr.c: fix simple_xattr_list()
selinux: fix selinux_xfrm_alloc_user() to set correct ctx_len

Stuart Hayes (2):
platform/x86: dell_rbu: Fix list usage platform/x86: dell_rbu: Stop overwriting data buffer

Sukrut Bellary (1):
ARM: OMAP2+: Fix l4ls clk domain handling in STANDBY

Sumit Kumar (1):
bus: mhi: ep: Update read pointer only after buffer is written

Suraj P Kizhakkethil (1):
wifi: ath12k: Pass correct values of center freq1 and center freq2 for 160 MHz

Takashi Iwai (1):
ALSA: hda/intel: Add Thinkpad E15 to PM deny list

Talhah Peerbhai (1):
ASoC: amd: yc: Add quirk for Lenovo Yoga Pro 7 14ASP9

Tali Perry (1):
i2c: npcm: Add clock toggle recovery

Tan En De (1):
i2c: designware: Invoke runtime suspend on quick slave re-registration

Tasos Sahanidis (1):
ata: pata_via: Force PIO for ATAPI devices on VT6415/VT6330

Tengda Wu (1):
arm64/ptrace: Fix stack-out-of-bounds read in regs_get_kernel_stack_nth()

Thadeu Lima de Souza Cascardo (1):
ext4: inline: fix len overflow in ext4_prepare_inline_data

Thomas Zimmermann (1):
video: screen_info: Relocate framebuffers behind PCI bridges

Tianyang Zhang (1):
LoongArch: Fix panic caused by NULL-PMD in huge_pte_offset()

Tomi Valkeinen (1):
media: i2c: ds90ub913: Fix returned fmt from .set_fmt()

Tzung-Bi Shih (1):
drm/i915/pmu: Fix build error with GCOV and AutoFDO enabled

Vitaliy Shevtsov (1):
scsi: elx: efct: Fix memory leak in efct_hw_parse_filter()

Vitaly Lifshits (1):
e1000e: set fixed clock frequency indication for Nahum 11 and Nahum 13

Vladimir Oltean (2):
ptp: fix breakage after ptp_vclock_in_use() rework
ptp: allow reading of currently dialed frequency to succeed on free-running clocks

Víctor Gonzalo (1):
wifi: iwlwifi: Add missing MODULE_FIRMWARE for Qu-c0-jf-b0

Wan Junjie (1):
bus: fsl-mc: fix GET/SET_TAILDROP command ids

WangYuli (1):
Input: sparcspkr - avoid unannotated fall-through

Wentao Liang (8):
ASoC: qcom: sdm845: Add error handling in sdm845_slim_snd_hw_params() net/mlx5_core: Add error handling inmlx5_query_nic_vport_qkey_viol_cntr() net/mlx5: Add error handling in mlx5_query_nic_vport_node_guid()
media: gspca: Add error handling for stv06xx_read_sensor()
mtd: rawnand: sunxi: Add randomizer configuration in sunxi_nfc_hw_ecc_write_chunk
mtd: nand: sunxi: Add randomizer configuration before randomizer enable
regulator: max14577: Add error check for max14577_read_reg()
octeontx2-pf: Add error log forcn10k_map_unmap_rq_policer()

Xiaolei Wang (2):
remoteproc: core: Cleanup acquired resources when rproc_handle_resources() fails in rproc_attach()
remoteproc: core: Release rproc->clean_table after rproc_attach() fails

Xin Li (Intel) (1):
selftests/x86: Add a test to detect infinite SIGTRAP handler loop

Xu Yang (1):
phy: fsl-imx8mq-usb: fix phy_tx_vboost_level_from_property()

Yao Zi (3):
platform/loongarch: laptop: Get brightness setting from EC on probe platform/loongarch: laptop: Unregister generic_sub_drivers on exit platform/loongarch: laptop: Add backlight power control support

Ye Bin (1):
ftrace: Fix UAF when lookup kallsym after ftrace disabled

Yong Wang (2):
net: bridge: mcast: update multicast contex when vlan state is changed
net: bridge: mcast: re-implement br_multicast_{enable, disable}_port functions

Yosry Ahmed (1):
KVM: SVM: Clear current_vmcb during vCPU free for all *possible* CPUs

Yuanjun Gong (1):
ASoC: tegra210_ahub: Add check to of_device_get_match_data()

Zhang Yi (2):
ext4: factor out ext4_get_maxbytes()
ext4: ensure i_size is smaller than maxbytes

Zijun Hu (3):
configfs: Do not override creating attribute file failure in populate_attrs() software node: Correct a OOB check in software_node_get_reference_args()
sock: Correct error checking condition for (assign|release)_proto_idx()

Zilin Guan (1):
tipc: use kfree_sensitive() for aead cleanup

gldrk (1):
ACPICA: utilities: Fix overflow check in vsnprintf()

wangdicheng (1):
ALSA: usb-audio: Rename ALSA kcontrol PCM and PCM1 for the KTMicro sound card

zhangjian (1):
smb: client: fix first command failure during re-negotiation

author maintainer
#1 lore raw
Documentation/admin-guide/kernel-parameters.txt +0 -2
index 315a817e3380..f95734ceb82b 100644
@@ -5978,8 +5978,6 @@
 
 			Selecting 'on' will also enable the mitigation
 			against user space to user space task attacks.
-			Selecting specific mitigation does not force enable
-			user mitigations.
 
 			Selecting 'off' will disable both the kernel and
 			the user space protections.
Documentation/devicetree/bindings/i2c/nvidia,tegra20-i2c.yaml +23 -1
index 424a4fc218b6..2cb311ddd912 100644
@@ -103,7 +103,10 @@ properties:
 
   resets:
     items:
-      - description: module reset
+      - description:
+          Module reset. This property is optional for controllers in Tegra194,
+          Tegra234 etc where an internal software reset is available as an
+          alternative.
 
   reset-names:
     items:
@@ -119,6 +122,13 @@ properties:
       - const: rx
       - const: tx
 
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - clock-names
+
 allOf:
   - $ref: /schemas/i2c/i2c-controller.yaml
   - if:
@@ -172,6 +182,18 @@ allOf:
           items:
             - description: phandle to the VENC power domain
 
+  - if:
+      not:
+        properties:
+          compatible:
+            contains:
+              enum:
+                - nvidia,tegra194-i2c
+    then:
+      required:
+        - resets
+        - reset-names
+
 unevaluatedProperties: false
 
 examples:
Makefile +1 -1
index 9625d9072c77..679dff5e165c 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 6
 PATCHLEVEL = 6
-SUBLEVEL = 94
+SUBLEVEL = 95
 EXTRAVERSION =
 NAME = Pinguïn Aangedreven
 
arch/arm/boot/dts/ti/omap/am335x-bone-common.dtsi +1 -1
index 96451c8a815c..27e73e745e25 100644
@@ -385,7 +385,7 @@ ethphy0: ethernet-phy@0 {
 		/* Support GPIO reset on revision C3 boards */
 		reset-gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
 		reset-assert-us = <300>;
-		reset-deassert-us = <6500>;
+		reset-deassert-us = <50000>;
 	};
 };
 
arch/arm/mach-omap2/clockdomain.h +1 -0
index c36fb2721261..86a2f9e5d0ef 100644
@@ -48,6 +48,7 @@
 #define CLKDM_NO_AUTODEPS			(1 << 4)
 #define CLKDM_ACTIVE_WITH_MPU			(1 << 5)
 #define CLKDM_MISSING_IDLE_REPORTING		(1 << 6)
+#define CLKDM_STANDBY_FORCE_WAKEUP		BIT(7)
 
 #define CLKDM_CAN_HWSUP		(CLKDM_CAN_ENABLE_AUTO | CLKDM_CAN_DISABLE_AUTO)
 #define CLKDM_CAN_SWSUP		(CLKDM_CAN_FORCE_SLEEP | CLKDM_CAN_FORCE_WAKEUP)
arch/arm/mach-omap2/clockdomains33xx_data.c +1 -1
index 87f4e927eb18..c05a3c07d448 100644
@@ -19,7 +19,7 @@ static struct clockdomain l4ls_am33xx_clkdm = {
 	.pwrdm		= { .name = "per_pwrdm" },
 	.cm_inst	= AM33XX_CM_PER_MOD,
 	.clkdm_offs	= AM33XX_CM_PER_L4LS_CLKSTCTRL_OFFSET,
-	.flags		= CLKDM_CAN_SWSUP,
+	.flags		= CLKDM_CAN_SWSUP | CLKDM_STANDBY_FORCE_WAKEUP,
 };
 
 static struct clockdomain l3s_am33xx_clkdm = {
arch/arm/mach-omap2/cm33xx.c +13 -1
index c824d4e3db63..aaee67d09791 100644
@@ -20,6 +20,9 @@
 #include "cm-regbits-34xx.h"
 #include "cm-regbits-33xx.h"
 #include "prm33xx.h"
+#if IS_ENABLED(CONFIG_SUSPEND)
+#include <linux/suspend.h>
+#endif
 
 /*
  * CLKCTRL_IDLEST_*: possible values for the CM_*_CLKCTRL.IDLEST bitfield:
@@ -328,8 +331,17 @@ static int am33xx_clkdm_clk_disable(struct clockdomain *clkdm)
 {
 	bool hwsup = false;
 
+#if IS_ENABLED(CONFIG_SUSPEND)
+	/*
+	 * In case of standby, Don't put the l4ls clk domain to sleep.
+	 * Since CM3 PM FW doesn't wake-up/enable the l4ls clk domain
+	 * upon wake-up, CM3 PM FW fails to wake-up th MPU.
+	 */
+	if (pm_suspend_target_state == PM_SUSPEND_STANDBY &&
+	    (clkdm->flags & CLKDM_STANDBY_FORCE_WAKEUP))
+		return 0;
+#endif
 	hwsup = am33xx_cm_is_clkdm_in_hwsup(clkdm->cm_inst, clkdm->clkdm_offs);
-
 	if (!hwsup && (clkdm->flags & CLKDM_CAN_FORCE_SLEEP))
 		am33xx_clkdm_sleep(clkdm);
 
arch/arm/mach-omap2/pmic-cpcap.c +5 -1
index 668dc84fd31e..527cf4b7e378 100644
@@ -264,7 +264,11 @@ int __init omap4_cpcap_init(void)
 
 static int __init cpcap_late_init(void)
 {
-	omap4_vc_set_pmic_signaling(PWRDM_POWER_RET);
+	if (!of_find_compatible_node(NULL, NULL, "motorola,cpcap"))
+		return 0;
+
+	if (soc_is_omap443x() || soc_is_omap446x() || soc_is_omap447x())
+		omap4_vc_set_pmic_signaling(PWRDM_POWER_RET);
 
 	return 0;
 }
arch/arm/mm/ioremap.c +1 -3
index 1c5aeba9bc27..7801c5bb775d 100644
@@ -515,7 +515,5 @@ void __init early_ioremap_init(void)
 bool arch_memremap_can_ram_remap(resource_size_t offset, size_t size,
 				 unsigned long flags)
 {
-	unsigned long pfn = PHYS_PFN(offset);
-
-	return memblock_is_map_memory(pfn);
+	return memblock_is_map_memory(offset);
 }
arch/arm64/include/asm/tlbflush.h +5 -4
index d37db2f7a54c..6eeb56b6fac1 100644
@@ -311,13 +311,14 @@ static inline void arch_tlbbatch_add_pending(struct arch_tlbflush_unmap_batch *b
 }
 
 /*
- * If mprotect/munmap/etc occurs during TLB batched flushing, we need to
- * synchronise all the TLBI issued with a DSB to avoid the race mentioned in
- * flush_tlb_batched_pending().
+ * If mprotect/munmap/etc occurs during TLB batched flushing, we need to ensure
+ * all the previously issued TLBIs targeting mm have completed. But since we
+ * can be executing on a remote CPU, a DSB cannot guarantee this like it can
+ * for arch_tlbbatch_flush(). Our only option is to flush the entire mm.
  */
 static inline void arch_flush_tlb_batched_pending(struct mm_struct *mm)
 {
-	dsb(ish);
+	flush_tlb_mm(mm);
 }
 
 /*
arch/arm64/kernel/ptrace.c +1 -1
index a26293e0cc55..c30f5a70bd18 100644
@@ -139,7 +139,7 @@ unsigned long regs_get_kernel_stack_nth(struct pt_regs *regs, unsigned int n)
 
 	addr += n;
 	if (regs_within_kernel_stack(regs, (unsigned long)addr))
-		return *addr;
+		return READ_ONCE_NOCHECK(*addr);
 	else
 		return 0;
 }
arch/arm64/mm/mmu.c +2 -1
index bc97916a035a..c8e83fe1cd5a 100644
@@ -1253,7 +1253,8 @@ int pud_free_pmd_page(pud_t *pudp, unsigned long addr)
 	next = addr;
 	end = addr + PUD_SIZE;
 	do {
-		pmd_free_pte_page(pmdp, next);
+		if (pmd_present(pmdp_get(pmdp)))
+			pmd_free_pte_page(pmdp, next);
 	} while (pmdp++, next += PMD_SIZE, next != end);
 
 	pud_clear(pudp);
arch/loongarch/include/asm/irqflags.h +12 -4
index 319a8c616f1f..003172b8406b 100644
@@ -14,40 +14,48 @@
 static inline void arch_local_irq_enable(void)
 {
 	u32 flags = CSR_CRMD_IE;
+	register u32 mask asm("t0") = CSR_CRMD_IE;
+
 	__asm__ __volatile__(
 		"csrxchg %[val], %[mask], %[reg]\n\t"
 		: [val] "+r" (flags)
-		: [mask] "r" (CSR_CRMD_IE), [reg] "i" (LOONGARCH_CSR_CRMD)
+		: [mask] "r" (mask), [reg] "i" (LOONGARCH_CSR_CRMD)
 		: "memory");
 }
 
 static inline void arch_local_irq_disable(void)
 {
 	u32 flags = 0;
+	register u32 mask asm("t0") = CSR_CRMD_IE;
+
 	__asm__ __volatile__(
 		"csrxchg %[val], %[mask], %[reg]\n\t"
 		: [val] "+r" (flags)
-		: [mask] "r" (CSR_CRMD_IE), [reg] "i" (LOONGARCH_CSR_CRMD)
+		: [mask] "r" (mask), [reg] "i" (LOONGARCH_CSR_CRMD)
 		: "memory");
 }
 
 static inline unsigned long arch_local_irq_save(void)
 {
 	u32 flags = 0;
+	register u32 mask asm("t0") = CSR_CRMD_IE;
+
 	__asm__ __volatile__(
 		"csrxchg %[val], %[mask], %[reg]\n\t"
 		: [val] "+r" (flags)
-		: [mask] "r" (CSR_CRMD_IE), [reg] "i" (LOONGARCH_CSR_CRMD)
+		: [mask] "r" (mask), [reg] "i" (LOONGARCH_CSR_CRMD)
 		: "memory");
 	return flags;
 }
 
 static inline void arch_local_irq_restore(unsigned long flags)
 {
+	register u32 mask asm("t0") = CSR_CRMD_IE;
+
 	__asm__ __volatile__(
 		"csrxchg %[val], %[mask], %[reg]\n\t"
 		: [val] "+r" (flags)
-		: [mask] "r" (CSR_CRMD_IE), [reg] "i" (LOONGARCH_CSR_CRMD)
+		: [mask] "r" (mask), [reg] "i" (LOONGARCH_CSR_CRMD)
 		: "memory");
 }
 
arch/loongarch/mm/hugetlbpage.c +2 -1
index 41308429f446..58277fd9fb2f 100644
@@ -47,7 +47,8 @@ pte_t *huge_pte_offset(struct mm_struct *mm, unsigned long addr,
 				pmd = pmd_offset(pud, addr);
 		}
 	}
-	return pmd_none(pmdp_get(pmd)) ? NULL : (pte_t *) pmd;
+
+	return (!pmd || pmd_none(pmdp_get(pmd))) ? NULL : (pte_t *) pmd;
 }
 
 int pmd_huge(pmd_t pmd)
arch/mips/vdso/Makefile +1 -0
index eb56581f6d73..0a3249647401 100644
@@ -30,6 +30,7 @@ endif
 # offsets.
 cflags-vdso := $(ccflags-vdso) \
 	$(filter -W%,$(filter-out -Wa$(comma)%,$(KBUILD_CFLAGS))) \
+	$(filter -std=%,$(KBUILD_CFLAGS)) \
 	-O3 -g -fPIC -fno-strict-aliasing -fno-common -fno-builtin -G 0 \
 	-mrelax-pic-calls $(call cc-option, -mexplicit-relocs) \
 	-fno-stack-protector -fno-jump-tables -DDISABLE_BRANCH_PROFILING \
arch/parisc/boot/compressed/Makefile +1 -0
index a294a1b58ee7..9fba12b70d1b 100644
@@ -22,6 +22,7 @@ KBUILD_CFLAGS += -fno-PIE -mno-space-regs -mdisable-fpregs -Os
 ifndef CONFIG_64BIT
 KBUILD_CFLAGS += -mfast-indirect-calls
 endif
+KBUILD_CFLAGS += -std=gnu11
 
 LDFLAGS_vmlinux := -X -e startup --as-needed -T
 $(obj)/vmlinux: $(obj)/vmlinux.lds $(addprefix $(obj)/, $(OBJECTS)) $(LIBGCC) FORCE
arch/parisc/kernel/unaligned.c +1 -1
index a8e75e5b884a..e673c71e16d9 100644
@@ -24,7 +24,7 @@
 #define DPRINTF(fmt, args...)
 #endif
 
-#define RFMT "%#08lx"
+#define RFMT "0x%08lx"
 
 /* 1111 1100 0000 0000 0001 0011 1100 0000 */
 #define OPCODE1(a,b,c)	((a)<<26|(b)<<12|(c)<<6) 
arch/powerpc/include/asm/ppc_asm.h +1 -1
index e7792aa13510..fa7926532866 100644
@@ -183,7 +183,7 @@
 /*
  * Used to name C functions called from asm
  */
-#ifdef CONFIG_PPC_KERNEL_PCREL
+#if defined(__powerpc64__) && defined(CONFIG_PPC_KERNEL_PCREL)
 #define CFUNC(name) name@notoc
 #else
 #define CFUNC(name) name
arch/powerpc/kernel/eeh.c +2 -0
index ab316e155ea9..2e286bba2f64 100644
@@ -1516,6 +1516,8 @@ int eeh_pe_configure(struct eeh_pe *pe)
 	/* Invalid PE ? */
 	if (!pe)
 		return -ENODEV;
+	else
+		ret = eeh_ops->configure_bridge(pe);
 
 	return ret;
 }
arch/powerpc/kernel/vdso/Makefile +1 -1
index d5defff8472d..47a9533a4dc1 100644
@@ -50,7 +50,7 @@ ldflags-$(CONFIG_LD_ORPHAN_WARN) += -Wl,--orphan-handling=$(CONFIG_LD_ORPHAN_WAR
 ldflags-y += $(filter-out $(CC_AUTO_VAR_INIT_ZERO_ENABLER) $(CC_FLAGS_FTRACE) -Wa$(comma)%, $(KBUILD_CFLAGS))
 
 CC32FLAGS := -m32
-CC32FLAGSREMOVE := -mcmodel=medium -mabi=elfv1 -mabi=elfv2 -mcall-aixdesc
+CC32FLAGSREMOVE := -mcmodel=medium -mabi=elfv1 -mabi=elfv2 -mcall-aixdesc -mpcrel
 ifdef CONFIG_CC_IS_CLANG
 # This flag is supported by clang for 64-bit but not 32-bit so it will cause
 # an unused command line flag warning for this file.
arch/powerpc/platforms/pseries/msi.c +6 -1
index 423ee1d5bd94..fdcf10cd4d12 100644
@@ -519,7 +519,12 @@ static struct msi_domain_info pseries_msi_domain_info = {
 
 static void pseries_msi_compose_msg(struct irq_data *data, struct msi_msg *msg)
 {
-	__pci_read_msi_msg(irq_data_get_msi_desc(data), msg);
+	struct pci_dev *dev = msi_desc_to_pci_dev(irq_data_get_msi_desc(data));
+
+	if (dev->current_state == PCI_D0)
+		__pci_read_msi_msg(irq_data_get_msi_desc(data), msg);
+	else
+		get_cached_msi_msg(data->irq, msg);
 }
 
 static struct irq_chip pseries_msi_irq_chip = {
arch/riscv/kvm/vcpu_sbi_replace.c +4 -4
index 87ec68ed52d7..36f5386c60db 100644
@@ -103,7 +103,7 @@ static int kvm_sbi_ext_rfence_handler(struct kvm_vcpu *vcpu, struct kvm_run *run
 		kvm_riscv_vcpu_pmu_incr_fw(vcpu, SBI_PMU_FW_FENCE_I_SENT);
 		break;
 	case SBI_EXT_RFENCE_REMOTE_SFENCE_VMA:
-		if (cp->a2 == 0 && cp->a3 == 0)
+		if ((cp->a2 == 0 && cp->a3 == 0) || cp->a3 == -1UL)
 			kvm_riscv_hfence_vvma_all(vcpu->kvm, hbase, hmask);
 		else
 			kvm_riscv_hfence_vvma_gva(vcpu->kvm, hbase, hmask,
@@ -111,7 +111,7 @@ static int kvm_sbi_ext_rfence_handler(struct kvm_vcpu *vcpu, struct kvm_run *run
 		kvm_riscv_vcpu_pmu_incr_fw(vcpu, SBI_PMU_FW_HFENCE_VVMA_SENT);
 		break;
 	case SBI_EXT_RFENCE_REMOTE_SFENCE_VMA_ASID:
-		if (cp->a2 == 0 && cp->a3 == 0)
+		if ((cp->a2 == 0 && cp->a3 == 0) || cp->a3 == -1UL)
 			kvm_riscv_hfence_vvma_asid_all(vcpu->kvm,
 						       hbase, hmask, cp->a4);
 		else
@@ -127,9 +127,9 @@ static int kvm_sbi_ext_rfence_handler(struct kvm_vcpu *vcpu, struct kvm_run *run
 	case SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA_ASID:
 		/*
 		 * Until nested virtualization is implemented, the
-		 * SBI HFENCE calls should be treated as NOPs
+		 * SBI HFENCE calls should return not supported
+		 * hence fallthrough.
 		 */
-		break;
 	default:
 		retdata->err_val = SBI_ERR_NOT_SUPPORTED;
 	}
arch/s390/kvm/gaccess.c +4 -4
index 090dc3833433..969a5e156919 100644
@@ -490,7 +490,7 @@ enum prot_type {
 	PROT_TYPE_DAT  = 3,
 	PROT_TYPE_IEP  = 4,
 	/* Dummy value for passing an initialized value when code != PGM_PROTECTION */
-	PROT_NONE,
+	PROT_TYPE_DUMMY,
 };
 
 static int trans_exc_ending(struct kvm_vcpu *vcpu, int code, unsigned long gva, u8 ar,
@@ -506,7 +506,7 @@ static int trans_exc_ending(struct kvm_vcpu *vcpu, int code, unsigned long gva,
 	switch (code) {
 	case PGM_PROTECTION:
 		switch (prot) {
-		case PROT_NONE:
+		case PROT_TYPE_DUMMY:
 			/* We should never get here, acts like termination */
 			WARN_ON_ONCE(1);
 			break;
@@ -976,7 +976,7 @@ static int guest_range_to_gpas(struct kvm_vcpu *vcpu, unsigned long ga, u8 ar,
 			gpa = kvm_s390_real_to_abs(vcpu, ga);
 			if (kvm_is_error_gpa(vcpu->kvm, gpa)) {
 				rc = PGM_ADDRESSING;
-				prot = PROT_NONE;
+				prot = PROT_TYPE_DUMMY;
 			}
 		}
 		if (rc)
@@ -1134,7 +1134,7 @@ int access_guest_with_key(struct kvm_vcpu *vcpu, unsigned long ga, u8 ar,
 		if (rc == PGM_PROTECTION)
 			prot = PROT_TYPE_KEYC;
 		else
-			prot = PROT_NONE;
+			prot = PROT_TYPE_DUMMY;
 		rc = trans_exc_ending(vcpu, rc, ga, ar, mode, prot, terminate);
 	}
 out_unlock:
arch/s390/pci/pci_mmio.c +1 -1
index a90499c087f0..2ee7b5a5016c 100644
@@ -223,7 +223,7 @@ static inline int __pcilg_mio_inuser(
 		[ioaddr_len] "+&d" (ioaddr_len.pair),
 		[cc] "+d" (cc), [val] "=d" (val),
 		[dst] "+a" (dst), [cnt] "+d" (cnt), [tmp] "=d" (tmp),
-		[shift] "+d" (shift)
+		[shift] "+a" (shift)
 		:: "cc", "memory");
 
 	/* did we write everything to the user space buffer? */
arch/x86/kernel/cpu/bugs.c +3 -7
index e9c4bcb38f45..07b45bbf6348 100644
@@ -1442,13 +1442,9 @@ static __ro_after_init enum spectre_v2_mitigation_cmd spectre_v2_cmd;
 static enum spectre_v2_user_cmd __init
 spectre_v2_parse_user_cmdline(void)
 {
-	enum spectre_v2_user_cmd mode;
 	char arg[20];
 	int ret, i;
 
-	mode = IS_ENABLED(CONFIG_MITIGATION_SPECTRE_V2) ?
-		SPECTRE_V2_USER_CMD_AUTO : SPECTRE_V2_USER_CMD_NONE;
-
 	switch (spectre_v2_cmd) {
 	case SPECTRE_V2_CMD_NONE:
 		return SPECTRE_V2_USER_CMD_NONE;
@@ -1461,7 +1457,7 @@ spectre_v2_parse_user_cmdline(void)
 	ret = cmdline_find_option(boot_command_line, "spectre_v2_user",
 				  arg, sizeof(arg));
 	if (ret < 0)
-		return mode;
+		return SPECTRE_V2_USER_CMD_AUTO;
 
 	for (i = 0; i < ARRAY_SIZE(v2_user_options); i++) {
 		if (match_option(arg, ret, v2_user_options[i].option)) {
@@ -1471,8 +1467,8 @@ spectre_v2_parse_user_cmdline(void)
 		}
 	}
 
-	pr_err("Unknown user space protection option (%s). Switching to default\n", arg);
-	return mode;
+	pr_err("Unknown user space protection option (%s). Switching to AUTO select\n", arg);
+	return SPECTRE_V2_USER_CMD_AUTO;
 }
 
 static inline bool spectre_v2_in_ibrs_mode(enum spectre_v2_mitigation mode)
arch/x86/kernel/cpu/sgx/main.c +2 -0
index c7f8c3200e8d..0db6eeeeb672 100644
@@ -718,6 +718,8 @@ int arch_memory_failure(unsigned long pfn, int flags)
 		goto out;
 	}
 
+	sgx_unmark_page_reclaimable(page);
+
 	/*
 	 * TBD: Add additional plumbing to enable pre-emptive
 	 * action for asynchronous poison notification. Until
arch/x86/kvm/svm/svm.c +1 -1
index c84a1451f194..86c50747e158 100644
@@ -1503,7 +1503,7 @@ static void svm_clear_current_vmcb(struct vmcb *vmcb)
 {
 	int i;
 
-	for_each_online_cpu(i)
+	for_each_possible_cpu(i)
 		cmpxchg(per_cpu_ptr(&svm_data.current_vmcb, i), vmcb, NULL);
 }
 
arch/x86/kvm/vmx/vmx.c +4 -1
index e5a2c230110e..e7f3b70f9114 100644
@@ -787,8 +787,11 @@ static void vmx_emergency_disable(void)
 		return;
 
 	list_for_each_entry(v, &per_cpu(loaded_vmcss_on_cpu, cpu),
-			    loaded_vmcss_on_cpu_link)
+			    loaded_vmcss_on_cpu_link) {
 		vmcs_clear(v->vmcs);
+		if (v->shadow_vmcs)
+			vmcs_clear(v->shadow_vmcs);
+	}
 
 	kvm_cpu_vmxoff();
 }
drivers/acpi/acpica/dsutils.c +8 -1
index fb9ed5e1da89..2bdae8a25e08 100644
@@ -668,6 +668,8 @@ acpi_ds_create_operands(struct acpi_walk_state *walk_state,
 	union acpi_parse_object *arguments[ACPI_OBJ_NUM_OPERANDS];
 	u32 arg_count = 0;
 	u32 index = walk_state->num_operands;
+	u32 prev_num_operands = walk_state->num_operands;
+	u32 new_num_operands;
 	u32 i;
 
 	ACPI_FUNCTION_TRACE_PTR(ds_create_operands, first_arg);
@@ -696,6 +698,7 @@ acpi_ds_create_operands(struct acpi_walk_state *walk_state,
 
 	/* Create the interpreter arguments, in reverse order */
 
+	new_num_operands = index;
 	index--;
 	for (i = 0; i < arg_count; i++) {
 		arg = arguments[index];
@@ -720,7 +723,11 @@ acpi_ds_create_operands(struct acpi_walk_state *walk_state,
 	 * pop everything off of the operand stack and delete those
 	 * objects
 	 */
-	acpi_ds_obj_stack_pop_and_delete(arg_count, walk_state);
+	walk_state->num_operands = i;
+	acpi_ds_obj_stack_pop_and_delete(new_num_operands, walk_state);
+
+	/* Restore operand count */
+	walk_state->num_operands = prev_num_operands;
 
 	ACPI_EXCEPTION((AE_INFO, status, "While creating Arg %u", index));
 	return_ACPI_STATUS(status);
drivers/acpi/acpica/psobject.c +15 -37

83 lines not on this page · raw message

drivers/acpi/acpica/utprint.c +2 -5
index 42b30b9f9312..7fad03c5252c 100644
@@ -333,11 +333,8 @@ int vsnprintf(char *string, acpi_size size, const char *format, va_list args)
 
 	pos = string;
 
-	if (size != ACPI_UINT32_MAX) {
-		end = string + size;
-	} else {
-		end = ACPI_CAST_PTR(char, ACPI_UINT32_MAX);
-	}
+	size = ACPI_MIN(size, ACPI_PTR_DIFF(ACPI_MAX_PTR, string));
+	end = string + size;
 
 	for (; *format; ++format) {
 		if (*format != '%') {
drivers/acpi/battery.c +16 -3
index e3cbaf3c3bbc..cd3cbb7a36f8 100644
@@ -243,10 +243,23 @@ static int acpi_battery_get_property(struct power_supply *psy,
 		break;
 	case POWER_SUPPLY_PROP_CURRENT_NOW:
 	case POWER_SUPPLY_PROP_POWER_NOW:
-		if (battery->rate_now == ACPI_BATTERY_VALUE_UNKNOWN)
+		if (battery->rate_now == ACPI_BATTERY_VALUE_UNKNOWN) {
 			ret = -ENODEV;
-		else
-			val->intval = battery->rate_now * 1000;
+			break;
+		}
+
+		val->intval = battery->rate_now * 1000;
+		/*
+		 * When discharging, the current should be reported as a
+		 * negative number as per the power supply class interface
+		 * definition.
+		 */
+		if (psp == POWER_SUPPLY_PROP_CURRENT_NOW &&
+		    (battery->state & ACPI_BATTERY_STATE_DISCHARGING) &&
+		    acpi_battery_handle_discharging(battery)
+				== POWER_SUPPLY_STATUS_DISCHARGING)
+			val->intval = -val->intval;
+
 		break;
 	case POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN:
 	case POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN:
drivers/acpi/bus.c +4 -2
index a4aa53b7e2bb..645464f02363 100644
@@ -1396,8 +1396,10 @@ static int __init acpi_init(void)
 	}
 
 	acpi_kobj = kobject_create_and_add("acpi", firmware_kobj);
-	if (!acpi_kobj)
-		pr_debug("%s: kset create error\n", __func__);
+	if (!acpi_kobj) {
+		pr_err("Failed to register kobject\n");
+		return -ENOMEM;
+	}
 
 	init_prmt();
 	acpi_init_pcc();
drivers/ata/pata_via.c +2 -1
index 696b99720dcb..d82728a01832 100644
@@ -368,7 +368,8 @@ static unsigned int via_mode_filter(struct ata_device *dev, unsigned int mask)
 	}
 
 	if (dev->class == ATA_DEV_ATAPI &&
-	    dmi_check_system(no_atapi_dma_dmi_table)) {
+	    (dmi_check_system(no_atapi_dma_dmi_table) ||
+	     config->id == PCI_DEVICE_ID_VIA_6415)) {
 		ata_dev_warn(dev, "controller locks up on ATAPI DMA, forcing PIO\n");
 		mask &= ATA_MASK_PIO;
 	}
drivers/atm/atmtcp.c +3 -1
index 96bea1ab1ecc..ff558908897f 100644
@@ -288,7 +288,9 @@ static int atmtcp_c_send(struct atm_vcc *vcc,struct sk_buff *skb)
 	struct sk_buff *new_skb;
 	int result = 0;
 
-	if (!skb->len) return 0;
+	if (skb->len < sizeof(struct atmtcp_hdr))
+		goto done;
+
 	dev = vcc->dev_data;
 	hdr = (struct atmtcp_hdr *) skb->data;
 	if (hdr->length == ATMTCP_HDR_MAGIC) {
drivers/base/power/runtime.c +1 -1
index 0af26cf8c005..0d43bf5b6cec 100644
@@ -1001,7 +1001,7 @@ static enum hrtimer_restart  pm_suspend_timer_fn(struct hrtimer *timer)
 	 * If 'expires' is after the current time, we've been called
 	 * too early.
 	 */
-	if (expires > 0 && expires < ktime_get_mono_fast_ns()) {
+	if (expires > 0 && expires <= ktime_get_mono_fast_ns()) {
 		dev->power.timer_expires = 0;
 		rpm_suspend(dev, dev->power.timer_autosuspends ?
 		    (RPM_ASYNC | RPM_AUTO) : RPM_ASYNC);
drivers/base/swnode.c +1 -1
index 079bd14bdedc..a7a3e3b66bb5 100644
@@ -518,7 +518,7 @@ software_node_get_reference_args(const struct fwnode_handle *fwnode,
 	if (prop->is_inline)
 		return -EINVAL;
 
-	if (index * sizeof(*ref) >= prop->length)
+	if ((index + 1) * sizeof(*ref) > prop->length)
 		return -ENOENT;
 
 	ref_array = prop->pointer;
drivers/block/aoe/aoedev.c +8 -0
index 3523dd82d7a0..280679bde3a5 100644
@@ -198,6 +198,7 @@ aoedev_downdev(struct aoedev *d)
 {
 	struct aoetgt *t, **tt, **te;
 	struct list_head *head, *pos, *nx;
+	struct request *rq, *rqnext;
 	int i;
 
 	d->flags &= ~DEVFL_UP;
@@ -223,6 +224,13 @@ aoedev_downdev(struct aoedev *d)
 	/* clean out the in-process request (if any) */
 	aoe_failip(d);
 
+	/* clean out any queued block requests */
+	list_for_each_entry_safe(rq, rqnext, &d->rq_list, queuelist) {
+		list_del_init(&rq->queuelist);
+		blk_mq_start_request(rq);
+		blk_mq_end_request(rq, BLK_STS_IOERR);
+	}
+
 	/* fast fail all pending I/O */
 	if (d->blkq) {
 		/* UP is cleared, freeze+quiesce to insure all are errored */
drivers/block/ublk_drv.c +3 -0
index 95095500f93a..df3e5aab4b5a 100644
@@ -2323,6 +2323,9 @@ static int ublk_ctrl_add_dev(struct io_uring_cmd *cmd)
 	if (copy_from_user(&info, argp, sizeof(info)))
 		return -EFAULT;
 
+	if (info.queue_depth > UBLK_MAX_QUEUE_DEPTH || info.nr_hw_queues > UBLK_MAX_NR_QUEUES)
+		return -EINVAL;
+
 	if (capable(CAP_SYS_ADMIN))
 		info.flags &= ~UBLK_F_UNPRIVILEGED_DEV;
 	else if (!(info.flags & UBLK_F_UNPRIVILEGED_DEV))
drivers/bus/fsl-mc/fsl-mc-uapi.c +2 -2
index 9c4c1395fcdb..a376ec661653 100644
@@ -275,13 +275,13 @@ static struct fsl_mc_cmd_desc fsl_mc_accepted_cmds[] = {
 		.size = 8,
 	},
 	[DPSW_GET_TAILDROP] = {
-		.cmdid_value = 0x0A80,
+		.cmdid_value = 0x0A90,
 		.cmdid_mask = 0xFFF0,
 		.token = true,
 		.size = 14,
 	},
 	[DPSW_SET_TAILDROP] = {
-		.cmdid_value = 0x0A90,
+		.cmdid_value = 0x0A80,
 		.cmdid_mask = 0xFFF0,
 		.token = true,
 		.size = 24,
drivers/bus/fsl-mc/mc-io.c +13 -6
index 95b10a6cf307..8b7a34f4db94 100644
@@ -214,12 +214,19 @@ int __must_check fsl_mc_portal_allocate(struct fsl_mc_device *mc_dev,
 	if (error < 0)
 		goto error_cleanup_resource;
 
-	dpmcp_dev->consumer_link = device_link_add(&mc_dev->dev,
-						   &dpmcp_dev->dev,
-						   DL_FLAG_AUTOREMOVE_CONSUMER);
-	if (!dpmcp_dev->consumer_link) {
-		error = -EINVAL;
-		goto error_cleanup_mc_io;
+	/* If the DPRC device itself tries to allocate a portal (usually for
+	 * UAPI interaction), don't add a device link between them since the
+	 * DPMCP device is an actual child device of the DPRC and a reverse
+	 * dependency is not allowed.
+	 */
+	if (mc_dev != mc_bus_dev) {
+		dpmcp_dev->consumer_link = device_link_add(&mc_dev->dev,
+							   &dpmcp_dev->dev,
+							   DL_FLAG_AUTOREMOVE_CONSUMER);
+		if (!dpmcp_dev->consumer_link) {
+			error = -EINVAL;
+			goto error_cleanup_mc_io;
+		}
 	}
 
 	*new_mc_io = mc_io;
drivers/bus/fsl-mc/mc-sys.c +1 -1
index f2052cd0a051..b22c59d57c8f 100644
@@ -19,7 +19,7 @@
 /*
  * Timeout in milliseconds to wait for the completion of an MC command
  */
-#define MC_CMD_COMPLETION_TIMEOUT_MS	500
+#define MC_CMD_COMPLETION_TIMEOUT_MS	15000
 
 /*
  * usleep_range() min and max values used to throttle down polling
drivers/bus/mhi/ep/ring.c +10 -6
index ba9f696d1aa8..fedf26392e8d 100644
@@ -131,19 +131,23 @@ int mhi_ep_ring_add_element(struct mhi_ep_ring *ring, struct mhi_ring_element *e
 	}
 
 	old_offset = ring->rd_offset;
-	mhi_ep_ring_inc_index(ring);
 
 	dev_dbg(dev, "Adding an element to ring at offset (%zu)\n", ring->rd_offset);
+	buf_info.host_addr = ring->rbase + (old_offset * sizeof(*el));
+	buf_info.dev_addr = el;
+	buf_info.size = sizeof(*el);
+
+	ret = mhi_cntrl->write_sync(mhi_cntrl, &buf_info);
+	if (ret)
+		return ret;
+
+	mhi_ep_ring_inc_index(ring);
 
 	/* Update rp in ring context */
 	rp = cpu_to_le64(ring->rd_offset * sizeof(*el) + ring->rbase);
 	memcpy_toio((void __iomem *) &ring->ring_ctx->generic.rp, &rp, sizeof(u64));
 
-	buf_info.host_addr = ring->rbase + (old_offset * sizeof(*el));
-	buf_info.dev_addr = el;
-	buf_info.size = sizeof(*el);
-
-	return mhi_cntrl->write_sync(mhi_cntrl, &buf_info);
+	return ret;
 }
 
 void mhi_ep_ring_init(struct mhi_ep_ring *ring, enum mhi_ep_ring_type type, u32 id)
drivers/bus/mhi/host/pm.c +17 -1
index 27f8a40f288c..e48bf44c785c 100644
@@ -586,6 +586,7 @@ static void mhi_pm_sys_error_transition(struct mhi_controller *mhi_cntrl)
 	struct mhi_cmd *mhi_cmd;
 	struct mhi_event_ctxt *er_ctxt;
 	struct device *dev = &mhi_cntrl->mhi_dev->dev;
+	bool reset_device = false;
 	int ret, i;
 
 	dev_dbg(dev, "Transitioning from PM state: %s to: %s\n",
@@ -614,8 +615,23 @@ static void mhi_pm_sys_error_transition(struct mhi_controller *mhi_cntrl)
 	/* Wake up threads waiting for state transition */
 	wake_up_all(&mhi_cntrl->state_event);
 
-	/* Trigger MHI RESET so that the device will not access host memory */
 	if (MHI_REG_ACCESS_VALID(prev_state)) {
+		/*
+		 * If the device is in PBL or SBL, it will only respond to
+		 * RESET if the device is in SYSERR state. SYSERR might
+		 * already be cleared at this point.
+		 */
+		enum mhi_state cur_state = mhi_get_mhi_state(mhi_cntrl);
+		enum mhi_ee_type cur_ee = mhi_get_exec_env(mhi_cntrl);
+
+		if (cur_state == MHI_STATE_SYS_ERR)
+			reset_device = true;
+		else if (cur_ee != MHI_EE_PBL && cur_ee != MHI_EE_SBL)
+			reset_device = true;
+	}
+
+	/* Trigger MHI RESET so that the device will not access host memory */
+	if (reset_device) {
 		u32 in_reset = -1;
 		unsigned long timeout = msecs_to_jiffies(mhi_cntrl->timeout_ms);
 
drivers/bus/ti-sysc.c +0 -49

61 lines not on this page · raw message

drivers/clk/meson/g12a.c +1 -0
index 233ce4a4c1c2..69018efbf7f4 100644
@@ -3971,6 +3971,7 @@ static const struct clk_parent_data spicc_sclk_parent_data[] = {
 	{ .hw = &g12a_clk81.hw },
 	{ .hw = &g12a_fclk_div4.hw },
 	{ .hw = &g12a_fclk_div3.hw },
+	{ .hw = &g12a_fclk_div2.hw },
 	{ .hw = &g12a_fclk_div5.hw },
 	{ .hw = &g12a_fclk_div7.hw },
 };
drivers/clk/rockchip/clk-rk3036.c +1 -0
index d644bc155ec6..f5f27535087a 100644
@@ -431,6 +431,7 @@ static const char *const rk3036_critical_clocks[] __initconst = {
 	"hclk_peri",
 	"pclk_peri",
 	"pclk_ddrupctl",
+	"ddrphy",
 };
 
 static void __init rk3036_clk_init(struct device_node *np)
drivers/cpufreq/scmi-cpufreq.c +35 -1
index e4989764efe2..6ff77003a96e 100644
@@ -299,6 +299,40 @@ static struct cpufreq_driver scmi_cpufreq_driver = {
 	.register_em	= scmi_cpufreq_register_em,
 };
 
+static bool scmi_dev_used_by_cpus(struct device *scmi_dev)
+{
+	struct device_node *scmi_np = dev_of_node(scmi_dev);
+	struct device_node *cpu_np, *np;
+	struct device *cpu_dev;
+	int cpu, idx;
+
+	if (!scmi_np)
+		return false;
+
+	for_each_possible_cpu(cpu) {
+		cpu_dev = get_cpu_device(cpu);
+		if (!cpu_dev)
+			continue;
+
+		cpu_np = dev_of_node(cpu_dev);
+
+		np = of_parse_phandle(cpu_np, "clocks", 0);
+		of_node_put(np);
+
+		if (np == scmi_np)
+			return true;
+
+		idx = of_property_match_string(cpu_np, "power-domain-names", "perf");
+		np = of_parse_phandle(cpu_np, "power-domains", idx);
+		of_node_put(np);
+
+		if (np == scmi_np)
+			return true;
+	}
+
+	return false;
+}
+
 static int scmi_cpufreq_probe(struct scmi_device *sdev)
 {
 	int ret;
@@ -307,7 +341,7 @@ static int scmi_cpufreq_probe(struct scmi_device *sdev)
 
 	handle = sdev->handle;
 
-	if (!handle)
+	if (!handle || !scmi_dev_used_by_cpus(dev))
 		return -ENODEV;
 
 	perf_ops = handle->devm_protocol_get(sdev, SCMI_PROTOCOL_PERF, &ph);
drivers/cpufreq/tegra186-cpufreq.c +0 -7
index 4e5b6f9a56d1..7b8fcfa55038 100644
@@ -73,18 +73,11 @@ static int tegra186_cpufreq_init(struct cpufreq_policy *policy)
 {
 	struct tegra186_cpufreq_data *data = cpufreq_get_driver_data();
 	unsigned int cluster = data->cpus[policy->cpu].bpmp_cluster_id;
-	u32 cpu;
 
 	policy->freq_table = data->clusters[cluster].table;
 	policy->cpuinfo.transition_latency = 300 * 1000;
 	policy->driver_data = NULL;
 
-	/* set same policy for all cpus in a cluster */
-	for (cpu = 0; cpu < ARRAY_SIZE(tegra186_cpus); cpu++) {
-		if (data->cpus[cpu].bpmp_cluster_id == cluster)
-			cpumask_set_cpu(cpu, policy->cpus);
-	}
-
 	return 0;
 }
 
drivers/crypto/marvell/cesa/cesa.c +1 -1
index b61e35b932e5..76f34b81258d 100644
@@ -94,7 +94,7 @@ static int mv_cesa_std_process(struct mv_cesa_engine *engine, u32 status)
 
 static int mv_cesa_int_process(struct mv_cesa_engine *engine, u32 status)
 {
-	if (engine->chain.first && engine->chain.last)
+	if (engine->chain_hw.first && engine->chain_hw.last)
 		return mv_cesa_tdma_process(engine, status);
 
 	return mv_cesa_std_process(engine, status);
drivers/crypto/marvell/cesa/cesa.h +6 -3
index d215a6bed6bc..50ca1039fdaa 100644
@@ -440,8 +440,10 @@ struct mv_cesa_dev {
  *			SRAM
  * @queue:		fifo of the pending crypto requests
  * @load:		engine load counter, useful for load balancing
- * @chain:		list of the current tdma descriptors being processed
- *			by this engine.
+ * @chain_hw:		list of the current tdma descriptors being processed
+ *			by the hardware.
+ * @chain_sw:		list of the current tdma descriptors that will be
+ *			submitted to the hardware.
  * @complete_queue:	fifo of the processed requests by the engine
  *
  * Structure storing CESA engine information.
@@ -463,7 +465,8 @@ struct mv_cesa_engine {
 	struct gen_pool *pool;
 	struct crypto_queue queue;
 	atomic_t load;
-	struct mv_cesa_tdma_chain chain;
+	struct mv_cesa_tdma_chain chain_hw;
+	struct mv_cesa_tdma_chain chain_sw;
 	struct list_head complete_queue;
 	int irq;
 };
drivers/crypto/marvell/cesa/tdma.c +32 -21

82 lines not on this page · raw message

drivers/dma-buf/udmabuf.c +2 -3
index 373282beeb60..980975ffc55d 100644
@@ -161,8 +161,7 @@ static int begin_cpu_udmabuf(struct dma_buf *buf,
 			ubuf->sg = NULL;
 		}
 	} else {
-		dma_sync_sg_for_cpu(dev, ubuf->sg->sgl, ubuf->sg->nents,
-				    direction);
+		dma_sync_sgtable_for_cpu(dev, ubuf->sg, direction);
 	}
 
 	return ret;
@@ -177,7 +176,7 @@ static int end_cpu_udmabuf(struct dma_buf *buf,
 	if (!ubuf->sg)
 		return -EINVAL;
 
-	dma_sync_sg_for_device(dev, ubuf->sg->sgl, ubuf->sg->nents, direction);
+	dma_sync_sgtable_for_device(dev, ubuf->sg, direction);
 	return 0;
 }
 
drivers/edac/altera_edac.c +3 -3
index e04fd1a7e9aa..54ec89415093 100644
@@ -1756,9 +1756,9 @@ altr_edac_a10_device_trig(struct file *file, const char __user *user_buf,
 
 	local_irq_save(flags);
 	if (trig_type == ALTR_UE_TRIGGER_CHAR)
-		writel(priv->ue_set_mask, set_addr);
+		writew(priv->ue_set_mask, set_addr);
 	else
-		writel(priv->ce_set_mask, set_addr);
+		writew(priv->ce_set_mask, set_addr);
 
 	/* Ensure the interrupt test bits are set */
 	wmb();
@@ -1788,7 +1788,7 @@ altr_edac_a10_device_trig2(struct file *file, const char __user *user_buf,
 
 	local_irq_save(flags);
 	if (trig_type == ALTR_UE_TRIGGER_CHAR) {
-		writel(priv->ue_set_mask, set_addr);
+		writew(priv->ue_set_mask, set_addr);
 	} else {
 		/* Setup read/write of 4 bytes */
 		writel(ECC_WORD_WRITE, drvdata->base + ECC_BLK_DBYTECTRL_OFST);
drivers/edac/amd64_edac.c +1 -0
index 9cd86390a167..10119cf27ffd 100644
@@ -4130,6 +4130,7 @@ static int per_family_init(struct amd64_pvt *pvt)
 			break;
 		case 0x70 ... 0x7f:
 			pvt->ctl_name			= "F19h_M70h";
+			pvt->max_mcs			= 4;
 			pvt->flags.zn_regs_v2		= 1;
 			break;
 		case 0xa0 ... 0xaf:
drivers/gpio/gpio-mlxbf3.c +35 -19

67 lines not on this page · raw message

drivers/gpio/gpiolib-of.c +9 -0
index a0a2a0f75bba..c1e83b2926ae 100644
@@ -203,6 +203,15 @@ static void of_gpio_try_fixup_polarity(const struct device_node *np,
 		 */
 		{ "lantiq,pci-xway",	"gpio-reset",	false },
 #endif
+#if IS_ENABLED(CONFIG_REGULATOR_S5M8767)
+		/*
+		 * According to S5M8767, the DVS and DS pin are
+		 * active-high signals. However, exynos5250-spring.dts use
+		 * active-low setting.
+		 */
+		{ "samsung,s5m8767-pmic", "s5m8767,pmic-buck-dvs-gpios", true },
+		{ "samsung,s5m8767-pmic", "s5m8767,pmic-buck-ds-gpios", true },
+#endif
 #if IS_ENABLED(CONFIG_TOUCHSCREEN_TSC2005)
 		/*
 		 * DTS for Nokia N900 incorrectly specified "active high"
drivers/gpu/drm/i915/i915_pmu.c +2 -2
index 7b1076b5e748..33ab82c334a8 100644
@@ -105,7 +105,7 @@ static u32 config_mask(const u64 config)
 {
 	unsigned int bit = config_bit(config);
 
-	if (__builtin_constant_p(config))
+	if (__builtin_constant_p(bit))
 		BUILD_BUG_ON(bit >
 			     BITS_PER_TYPE(typeof_member(struct i915_pmu,
 							 enable)) - 1);
@@ -114,7 +114,7 @@ static u32 config_mask(const u64 config)
 			     BITS_PER_TYPE(typeof_member(struct i915_pmu,
 							 enable)) - 1);
 
-	return BIT(config_bit(config));
+	return BIT(bit);
 }
 
 static bool is_engine_event(struct perf_event *event)
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c +9 -5
index 20c8b9af7a21..2cda9bbf68f9 100644
@@ -93,17 +93,21 @@ static void drm_mode_to_intf_timing_params(
 		timing->vsync_polarity = 0;
 	}
 
-	/* for DP/EDP, Shift timings to align it to bottom right */
-	if (phys_enc->hw_intf->cap->type == INTF_DP) {
+	timing->wide_bus_en = dpu_encoder_is_widebus_enabled(phys_enc->parent);
+	timing->compression_en = dpu_encoder_is_dsc_enabled(phys_enc->parent);
+
+	/*
+	 *  For DP/EDP, Shift timings to align it to bottom right.
+	 *  wide_bus_en is set for everything excluding SDM845 &
+	 *  porch changes cause DisplayPort failure and HDMI tearing.
+	 */
+	if (phys_enc->hw_intf->cap->type == INTF_DP && timing->wide_bus_en) {
 		timing->h_back_porch += timing->h_front_porch;
 		timing->h_front_porch = 0;
 		timing->v_back_porch += timing->v_front_porch;
 		timing->v_front_porch = 0;
 	}
 
-	timing->wide_bus_en = dpu_encoder_is_widebus_enabled(phys_enc->parent);
-	timing->compression_en = dpu_encoder_is_dsc_enabled(phys_enc->parent);
-
 	/*
 	 * for DP, divide the horizonal parameters by 2 when
 	 * widebus is enabled
drivers/gpu/drm/msm/dsi/phy/dsi_phy_10nm.c +7 -0
index 27b592c776a3..1c111969342a 100644
@@ -716,6 +716,13 @@ static int dsi_pll_10nm_init(struct msm_dsi_phy *phy)
 	/* TODO: Remove this when we have proper display handover support */
 	msm_dsi_phy_pll_save_state(phy);
 
+	/*
+	 * Store also proper vco_current_rate, because its value will be used in
+	 * dsi_10nm_pll_restore_state().
+	 */
+	if (!dsi_pll_10nm_vco_recalc_rate(&pll_10nm->clk_hw, VCO_REF_CLK_RATE))
+		pll_10nm->vco_current_rate = pll_10nm->phy->cfg->min_pll_rate;
+
 	return 0;
 }
 
drivers/gpu/drm/nouveau/nouveau_backlight.c +1 -1
index 91b5ecc57538..4e6f305c9e50 100644
@@ -42,7 +42,7 @@
 #include "nouveau_acpi.h"
 
 static struct ida bl_ida;
-#define BL_NAME_SIZE 15 // 12 for name + 2 for digits + 1 for '\0'
+#define BL_NAME_SIZE 24 // 12 for name + 11 for digits + 1 for '\0'
 
 static bool
 nouveau_get_backlight_name(char backlight_name[BL_NAME_SIZE],
drivers/hv/connection.c +17 -6
index f001ae880e1d..27306c17b0c4 100644
@@ -206,11 +206,20 @@ int vmbus_connect(void)
 	INIT_LIST_HEAD(&vmbus_connection.chn_list);
 	mutex_init(&vmbus_connection.channel_mutex);
 
+	/*
+	 * The following Hyper-V interrupt and monitor pages can be used by
+	 * UIO for mapping to user-space, so they should always be allocated on
+	 * system page boundaries. The system page size must be >= the Hyper-V
+	 * page size.
+	 */
+	BUILD_BUG_ON(PAGE_SIZE < HV_HYP_PAGE_SIZE);
+
 	/*
 	 * Setup the vmbus event connection for channel interrupt
 	 * abstraction stuff
 	 */
-	vmbus_connection.int_page = hv_alloc_hyperv_zeroed_page();
+	vmbus_connection.int_page =
+		(void *)__get_free_page(GFP_KERNEL | __GFP_ZERO);
 	if (vmbus_connection.int_page == NULL) {
 		ret = -ENOMEM;
 		goto cleanup;
@@ -225,8 +234,8 @@ int vmbus_connect(void)
 	 * Setup the monitor notification facility. The 1st page for
 	 * parent->child and the 2nd page for child->parent
 	 */
-	vmbus_connection.monitor_pages[0] = hv_alloc_hyperv_page();
-	vmbus_connection.monitor_pages[1] = hv_alloc_hyperv_page();
+	vmbus_connection.monitor_pages[0] = (void *)__get_free_page(GFP_KERNEL);
+	vmbus_connection.monitor_pages[1] = (void *)__get_free_page(GFP_KERNEL);
 	if ((vmbus_connection.monitor_pages[0] == NULL) ||
 	    (vmbus_connection.monitor_pages[1] == NULL)) {
 		ret = -ENOMEM;
@@ -342,21 +351,23 @@ void vmbus_disconnect(void)
 		destroy_workqueue(vmbus_connection.work_queue);
 
 	if (vmbus_connection.int_page) {
-		hv_free_hyperv_page(vmbus_connection.int_page);
+		free_page((unsigned long)vmbus_connection.int_page);
 		vmbus_connection.int_page = NULL;
 	}
 
 	if (vmbus_connection.monitor_pages[0]) {
 		if (!set_memory_encrypted(
 			(unsigned long)vmbus_connection.monitor_pages[0], 1))
-			hv_free_hyperv_page(vmbus_connection.monitor_pages[0]);
+			free_page((unsigned long)
+				vmbus_connection.monitor_pages[0]);
 		vmbus_connection.monitor_pages[0] = NULL;
 	}
 
 	if (vmbus_connection.monitor_pages[1]) {
 		if (!set_memory_encrypted(
 			(unsigned long)vmbus_connection.monitor_pages[1], 1))
-			hv_free_hyperv_page(vmbus_connection.monitor_pages[1]);
+			free_page((unsigned long)
+				vmbus_connection.monitor_pages[1]);
 		vmbus_connection.monitor_pages[1] = NULL;
 	}
 }
drivers/hwmon/ftsteutates.c +6 -3
index b74a2665e733..27e5dd94b04f 100644
@@ -423,13 +423,16 @@ static int fts_read(struct device *dev, enum hwmon_sensor_types type, u32 attr,
 		break;
 	case hwmon_pwm:
 		switch (attr) {
-		case hwmon_pwm_auto_channels_temp:
-			if (data->fan_source[channel] == FTS_FAN_SOURCE_INVALID)
+		case hwmon_pwm_auto_channels_temp: {
+			u8 fan_source = data->fan_source[channel];
+
+			if (fan_source == FTS_FAN_SOURCE_INVALID || fan_source >= BITS_PER_LONG)
 				*val = 0;
 			else
-				*val = BIT(data->fan_source[channel]);
+				*val = BIT(fan_source);
 
 			return 0;
+		}
 		default:
 			break;
 		}
drivers/hwmon/occ/common.c +98 -142

385 lines not on this page · raw message

drivers/i2c/busses/i2c-designware-slave.c +1 -1
index 345b532a2b45..ea4c4955fe26 100644
@@ -91,7 +91,7 @@ static int i2c_dw_unreg_slave(struct i2c_client *slave)
 	i2c_dw_disable(dev);
 	synchronize_irq(dev->irq);
 	dev->slave = NULL;
-	pm_runtime_put(dev->dev);
+	pm_runtime_put_sync_suspend(dev->dev);
 
 	return 0;
 }
drivers/i2c/busses/i2c-npcm7xx.c +8 -4
index 91f508d50e7a..5b3987460976 100644
@@ -1971,10 +1971,14 @@ static int npcm_i2c_init_module(struct npcm_i2c *bus, enum i2c_mode mode,
 
 	/* Check HW is OK: SDA and SCL should be high at this point. */
 	if ((npcm_i2c_get_SDA(&bus->adap) == 0) || (npcm_i2c_get_SCL(&bus->adap) == 0)) {
-		dev_err(bus->dev, "I2C%d init fail: lines are low\n", bus->num);
-		dev_err(bus->dev, "SDA=%d SCL=%d\n", npcm_i2c_get_SDA(&bus->adap),
-			npcm_i2c_get_SCL(&bus->adap));
-		return -ENXIO;
+		dev_warn(bus->dev, " I2C%d SDA=%d SCL=%d, attempting to recover\n", bus->num,
+				 npcm_i2c_get_SDA(&bus->adap), npcm_i2c_get_SCL(&bus->adap));
+		if (npcm_i2c_recovery_tgclk(&bus->adap)) {
+			dev_err(bus->dev, "I2C%d init fail: SDA=%d SCL=%d\n",
+				bus->num, npcm_i2c_get_SDA(&bus->adap),
+				npcm_i2c_get_SCL(&bus->adap));
+			return -ENXIO;
+		}
 	}
 
 	npcm_i2c_int_enable(bus, true);
drivers/i2c/busses/i2c-tegra.c +5 -0
index 91be04b534fe..08a81daedc11 100644
@@ -1397,6 +1397,11 @@ static int tegra_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[],
 			ret = tegra_i2c_xfer_msg(i2c_dev, &msgs[i], MSG_END_CONTINUE);
 			if (ret)
 				break;
+
+			/* Validate message length before proceeding */
+			if (msgs[i].buf[0] == 0 || msgs[i].buf[0] > I2C_SMBUS_BLOCK_MAX)
+				break;
+
 			/* Set the msg length from first byte */
 			msgs[i].len += msgs[i].buf[0];
 			dev_dbg(i2c_dev->dev, "reading %d bytes\n", msgs[i].len);
drivers/iio/accel/fxls8962af-core.c +13 -2
index be8a15cb945f..17820b2c3a1d 100644
@@ -20,6 +20,7 @@
 #include <linux/pm_runtime.h>
 #include <linux/regulator/consumer.h>
 #include <linux/regmap.h>
+#include <linux/units.h>
 
 #include <linux/iio/buffer.h>
 #include <linux/iio/events.h>
@@ -434,8 +435,16 @@ static int fxls8962af_read_raw(struct iio_dev *indio_dev,
 		*val = FXLS8962AF_TEMP_CENTER_VAL;
 		return IIO_VAL_INT;
 	case IIO_CHAN_INFO_SCALE:
-		*val = 0;
-		return fxls8962af_read_full_scale(data, val2);
+		switch (chan->type) {
+		case IIO_TEMP:
+			*val = MILLIDEGREE_PER_DEGREE;
+			return IIO_VAL_INT;
+		case IIO_ACCEL:
+			*val = 0;
+			return fxls8962af_read_full_scale(data, val2);
+		default:
+			return -EINVAL;
+		}
 	case IIO_CHAN_INFO_SAMP_FREQ:
 		return fxls8962af_read_samp_freq(data, val, val2);
 	default:
@@ -734,9 +743,11 @@ static const struct iio_event_spec fxls8962af_event[] = {
 	.type = IIO_TEMP, \
 	.address = FXLS8962AF_TEMP_OUT, \
 	.info_mask_separate = BIT(IIO_CHAN_INFO_RAW) | \
+			      BIT(IIO_CHAN_INFO_SCALE) | \
 			      BIT(IIO_CHAN_INFO_OFFSET),\
 	.scan_index = -1, \
 	.scan_type = { \
+		.sign = 's', \
 		.realbits = 8, \
 		.storagebits = 8, \
 	}, \
drivers/iio/adc/ad7606_spi.c +1 -1
index 67c96572cecc..df48464a115d 100644
@@ -151,7 +151,7 @@ static int ad7606_spi_reg_write(struct ad7606_state *st,
 	struct spi_device *spi = to_spi_device(st->dev);
 
 	st->d16[0] = cpu_to_be16((st->bops->rd_wr_cmd(addr, 1) << 8) |
-				  (val & 0x1FF));
+				  (val & 0xFF));
 
 	return spi_write(spi, &st->d16[0], sizeof(st->d16[0]));
 }
drivers/iio/imu/inv_icm42600/inv_icm42600_temp.c +5 -3
index 213cce1c3111..91f0f381082b 100644
@@ -67,16 +67,18 @@ int inv_icm42600_temp_read_raw(struct iio_dev *indio_dev,
 		return IIO_VAL_INT;
 	/*
 	 * T°C = (temp / 132.48) + 25
-	 * Tm°C = 1000 * ((temp * 100 / 13248) + 25)
+	 * Tm°C = 1000 * ((temp / 132.48) + 25)
+	 * Tm°C = 7.548309 * temp + 25000
+	 * Tm°C = (temp + 3312) * 7.548309
 	 * scale: 100000 / 13248 ~= 7.548309
-	 * offset: 25000
+	 * offset: 3312
 	 */
 	case IIO_CHAN_INFO_SCALE:
 		*val = 7;
 		*val2 = 548309;
 		return IIO_VAL_INT_PLUS_MICRO;
 	case IIO_CHAN_INFO_OFFSET:
-		*val = 25000;
+		*val = 3312;
 		return IIO_VAL_INT;
 	default:
 		return -EINVAL;
drivers/infiniband/core/iwcm.c +15 -14
index 3e4941754b48..ce41f235af25 100644
@@ -367,12 +367,9 @@ EXPORT_SYMBOL(iw_cm_disconnect);
 /*
  * CM_ID <-- DESTROYING
  *
- * Clean up all resources associated with the connection and release
- * the initial reference taken by iw_create_cm_id.
- *
- * Returns true if and only if the last cm_id_priv reference has been dropped.
+ * Clean up all resources associated with the connection.
  */
-static bool destroy_cm_id(struct iw_cm_id *cm_id)
+static void destroy_cm_id(struct iw_cm_id *cm_id)
 {
 	struct iwcm_id_private *cm_id_priv;
 	struct ib_qp *qp;
@@ -441,20 +438,22 @@ static bool destroy_cm_id(struct iw_cm_id *cm_id)
 		iwpm_remove_mapinfo(&cm_id->local_addr, &cm_id->m_local_addr);
 		iwpm_remove_mapping(&cm_id->local_addr, RDMA_NL_IWCM);
 	}
-
-	return iwcm_deref_id(cm_id_priv);
 }
 
 /*
- * This function is only called by the application thread and cannot
- * be called by the event thread. The function will wait for all
- * references to be released on the cm_id and then kfree the cm_id
- * object.
+ * Destroy cm_id. If the cm_id still has other references, wait for all
+ * references to be released on the cm_id and then release the initial
+ * reference taken by iw_create_cm_id.
  */
 void iw_destroy_cm_id(struct iw_cm_id *cm_id)
 {
-	if (!destroy_cm_id(cm_id))
+	struct iwcm_id_private *cm_id_priv;
+
+	cm_id_priv = container_of(cm_id, struct iwcm_id_private, id);
+	destroy_cm_id(cm_id);
+	if (refcount_read(&cm_id_priv->refcount) > 1)
 		flush_workqueue(iwcm_wq);
+	iwcm_deref_id(cm_id_priv);
 }
 EXPORT_SYMBOL(iw_destroy_cm_id);
 
@@ -1037,8 +1036,10 @@ static void cm_work_handler(struct work_struct *_work)
 
 		if (!test_bit(IWCM_F_DROP_EVENTS, &cm_id_priv->flags)) {
 			ret = process_event(cm_id_priv, &levent);
-			if (ret)
-				WARN_ON_ONCE(destroy_cm_id(&cm_id_priv->id));
+			if (ret) {
+				destroy_cm_id(&cm_id_priv->id);
+				WARN_ON_ONCE(iwcm_deref_id(cm_id_priv));
+			}
 		} else
 			pr_debug("dropping event %d\n", levent.event);
 		if (iwcm_deref_id(cm_id_priv))
drivers/input/keyboard/gpio_keys.c +2 -0
index 2e7c2c046e67..c5f4207fddce 100644
@@ -455,6 +455,8 @@ static enum hrtimer_restart gpio_keys_irq_timer(struct hrtimer *t)
 						      release_timer);
 	struct input_dev *input = bdata->input;
 
+	guard(spinlock_irqsave)(&bdata->lock);
+
 	if (bdata->key_pressed) {
 		input_report_key(input, *bdata->code, 0);
 		input_sync(input);
drivers/input/misc/ims-pcu.c +6 -0
index 180d90e46061..5cfe9b56978d 100644
@@ -845,6 +845,12 @@ static int ims_pcu_flash_firmware(struct ims_pcu *pcu,
 		addr = be32_to_cpu(rec->addr) / 2;
 		len = be16_to_cpu(rec->len);
 
+		if (len > sizeof(pcu->cmd_buf) - 1 - sizeof(*fragment)) {
+			dev_err(pcu->dev,
+				"Invalid record length in firmware: %d\n", len);
+			return -EINVAL;
+		}
+
 		fragment = (void *)&pcu->cmd_buf[1];
 		put_unaligned_le32(addr, &fragment->addr);
 		fragment->len = len;
drivers/input/misc/sparcspkr.c +16 -6
index e5dd84725c6e..d715fd736426 100644
@@ -75,9 +75,14 @@ static int bbc_spkr_event(struct input_dev *dev, unsigned int type, unsigned int
 		return -1;
 
 	switch (code) {
-		case SND_BELL: if (value) value = 1000;
-		case SND_TONE: break;
-		default: return -1;
+	case SND_BELL:
+		if (value)
+			value = 1000;
+		break;
+	case SND_TONE:
+		break;
+	default:
+		return -1;
 	}
 
 	if (value > 20 && value < 32767)
@@ -113,9 +118,14 @@ static int grover_spkr_event(struct input_dev *dev, unsigned int type, unsigned
 		return -1;
 
 	switch (code) {
-		case SND_BELL: if (value) value = 1000;
-		case SND_TONE: break;
-		default: return -1;
+	case SND_BELL:
+		if (value)
+			value = 1000;
+		break;
+	case SND_TONE:
+		break;
+	default:
+		return -1;
 	}
 
 	if (value > 20 && value < 32767)
drivers/iommu/amd/iommu.c +8 -0
index 83c5d786686d..a5d6d786dba5 100644
@@ -780,6 +780,14 @@ int amd_iommu_register_ga_log_notifier(int (*notifier)(u32))
 {
 	iommu_ga_log_notifier = notifier;
 
+	/*
+	 * Ensure all in-flight IRQ handlers run to completion before returning
+	 * to the caller, e.g. to ensure module code isn't unloaded while it's
+	 * being executed in the IRQ handler.
+	 */
+	if (!notifier)
+		synchronize_rcu();
+
 	return 0;
 }
 EXPORT_SYMBOL(amd_iommu_register_ga_log_notifier);
drivers/md/dm-raid1.c +2 -3
index 9511dae5b556..94b6c43dfa5c 100644
@@ -133,10 +133,9 @@ static void queue_bio(struct mirror_set *ms, struct bio *bio, int rw)
 	spin_lock_irqsave(&ms->lock, flags);
 	should_wake = !(bl->head);
 	bio_list_add(bl, bio);
-	spin_unlock_irqrestore(&ms->lock, flags);
-
 	if (should_wake)
 		wakeup_mirrord(ms);
+	spin_unlock_irqrestore(&ms->lock, flags);
 }
 
 static void dispatch_bios(void *context, struct bio_list *bio_list)
@@ -646,9 +645,9 @@ static void write_callback(unsigned long error, void *context)
 	if (!ms->failures.head)
 		should_wake = 1;
 	bio_list_add(&ms->failures, bio);
-	spin_unlock_irqrestore(&ms->lock, flags);
 	if (should_wake)
 		wakeup_mirrord(ms);
+	spin_unlock_irqrestore(&ms->lock, flags);
 }
 
 static void do_write(struct mirror_set *ms, struct bio *bio)
drivers/md/dm-verity-fec.c +4 -0
index 6a7a17c489c9..8007e2e21972 100644
@@ -624,6 +624,10 @@ int verity_fec_parse_opt_args(struct dm_arg_set *as, struct dm_verity *v,
 	(*argc)--;
 
 	if (!strcasecmp(arg_name, DM_VERITY_OPT_FEC_DEV)) {
+		if (v->fec->dev) {
+			ti->error = "FEC device already specified";
+			return -EINVAL;
+		}
 		r = dm_get_device(ti, arg_value, BLK_OPEN_READ, &v->fec->dev);
 		if (r) {
 			ti->error = "FEC device lookup failed";
drivers/md/dm-verity-target.c +7 -1
index 6ae97da741bb..60e74c0e02f1 100644
@@ -1043,6 +1043,9 @@ static int verity_alloc_most_once(struct dm_verity *v)
 {
 	struct dm_target *ti = v->ti;
 
+	if (v->validated_blocks)
+		return 0;
+
 	/* the bitset can only handle INT_MAX blocks */
 	if (v->data_blocks > INT_MAX) {
 		ti->error = "device too large to use check_at_most_once";
@@ -1066,6 +1069,9 @@ static int verity_alloc_zero_digest(struct dm_verity *v)
 	struct ahash_request *req;
 	u8 *zero_data;
 
+	if (v->zero_digest)
+		return 0;
+
 	v->zero_digest = kmalloc(v->digest_size, GFP_KERNEL);
 
 	if (!v->zero_digest)
@@ -1405,7 +1411,7 @@ static int verity_ctr(struct dm_target *ti, unsigned int argc, char **argv)
 			goto bad;
 	}
 
-	/* Root hash signature is  a optional parameter*/
+	/* Root hash signature is an optional parameter */
 	r = verity_verify_root_hash(root_hash_digest_to_validate,
 				    strlen(root_hash_digest_to_validate),
 				    verify_args.sig,
drivers/md/dm-verity-verify-sig.c +13 -4
index 4836508ea50c..1ced2ef255f3 100644
@@ -71,9 +71,14 @@ int verity_verify_sig_parse_opt_args(struct dm_arg_set *as,
 				     const char *arg_name)
 {
 	struct dm_target *ti = v->ti;
-	int ret = 0;
+	int ret;
 	const char *sig_key = NULL;
 
+	if (v->signature_key_desc) {
+		ti->error = DM_VERITY_VERIFY_ERR("root_hash_sig_key_desc already specified");
+		return -EINVAL;
+	}
+
 	if (!*argc) {
 		ti->error = DM_VERITY_VERIFY_ERR("Signature key not specified");
 		return -EINVAL;
@@ -83,14 +88,18 @@ int verity_verify_sig_parse_opt_args(struct dm_arg_set *as,
 	(*argc)--;
 
 	ret = verity_verify_get_sig_from_key(sig_key, sig_opts);
-	if (ret < 0)
+	if (ret < 0) {
 		ti->error = DM_VERITY_VERIFY_ERR("Invalid key specified");
+		return ret;
+	}
 
 	v->signature_key_desc = kstrdup(sig_key, GFP_KERNEL);
-	if (!v->signature_key_desc)
+	if (!v->signature_key_desc) {
+		ti->error = DM_VERITY_VERIFY_ERR("Could not allocate memory for signature key");
 		return -ENOMEM;
+	}
 
-	return ret;
+	return 0;
 }
 
 /*
drivers/media/common/videobuf2/videobuf2-dma-sg.c +2 -2
index 6975a71d740f..a5aa6a2a028c 100644
@@ -469,7 +469,7 @@ vb2_dma_sg_dmabuf_ops_begin_cpu_access(struct dma_buf *dbuf,
 	struct vb2_dma_sg_buf *buf = dbuf->priv;
 	struct sg_table *sgt = buf->dma_sgt;
 
-	dma_sync_sg_for_cpu(buf->dev, sgt->sgl, sgt->nents, buf->dma_dir);
+	dma_sync_sgtable_for_cpu(buf->dev, sgt, buf->dma_dir);
 	return 0;
 }
 
@@ -480,7 +480,7 @@ vb2_dma_sg_dmabuf_ops_end_cpu_access(struct dma_buf *dbuf,
 	struct vb2_dma_sg_buf *buf = dbuf->priv;
 	struct sg_table *sgt = buf->dma_sgt;
 
-	dma_sync_sg_for_device(buf->dev, sgt->sgl, sgt->nents, buf->dma_dir);
+	dma_sync_sgtable_for_device(buf->dev, sgt, buf->dma_dir);
 	return 0;
 }
 
drivers/media/i2c/ccs-pll.c +10 -1
index cf8858cb13d4..611c9823be85 100644
@@ -312,6 +312,11 @@ __ccs_pll_calculate_vt_tree(struct device *dev,
 	dev_dbg(dev, "more_mul2: %u\n", more_mul);
 
 	pll_fr->pll_multiplier = mul * more_mul;
+	if (pll_fr->pll_multiplier > lim_fr->max_pll_multiplier) {
+		dev_dbg(dev, "pll multiplier %u too high\n",
+			pll_fr->pll_multiplier);
+		return -EINVAL;
+	}
 
 	if (pll_fr->pll_multiplier * pll_fr->pll_ip_clk_freq_hz >
 	    lim_fr->max_pll_op_clk_freq_hz)
@@ -397,6 +402,8 @@ static int ccs_pll_calculate_vt_tree(struct device *dev,
 	min_pre_pll_clk_div = max_t(u16, min_pre_pll_clk_div,
 				    pll->ext_clk_freq_hz /
 				    lim_fr->max_pll_ip_clk_freq_hz);
+	if (!(pll->flags & CCS_PLL_FLAG_EXT_IP_PLL_DIVIDER))
+		min_pre_pll_clk_div = clk_div_even(min_pre_pll_clk_div);
 
 	dev_dbg(dev, "vt min/max_pre_pll_clk_div: %u,%u\n",
 		min_pre_pll_clk_div, max_pre_pll_clk_div);
@@ -792,7 +799,7 @@ int ccs_pll_calculate(struct device *dev, const struct ccs_pll_limits *lim,
 		op_lim_fr->min_pre_pll_clk_div, op_lim_fr->max_pre_pll_clk_div);
 	max_op_pre_pll_clk_div =
 		min_t(u16, op_lim_fr->max_pre_pll_clk_div,
-		      clk_div_even(pll->ext_clk_freq_hz /
+		      DIV_ROUND_UP(pll->ext_clk_freq_hz,
 				   op_lim_fr->min_pll_ip_clk_freq_hz));
 	min_op_pre_pll_clk_div =
 		max_t(u16, op_lim_fr->min_pre_pll_clk_div,
@@ -815,6 +822,8 @@ int ccs_pll_calculate(struct device *dev, const struct ccs_pll_limits *lim,
 			      one_or_more(
 				      DIV_ROUND_UP(op_lim_fr->max_pll_op_clk_freq_hz,
 						   pll->ext_clk_freq_hz))));
+	if (!(pll->flags & CCS_PLL_FLAG_EXT_IP_PLL_DIVIDER))
+		min_op_pre_pll_clk_div = clk_div_even(min_op_pre_pll_clk_div);
 	dev_dbg(dev, "pll_op check: min / max op_pre_pll_clk_div: %u / %u\n",
 		min_op_pre_pll_clk_div, max_op_pre_pll_clk_div);
 
drivers/media/i2c/ds90ub913.c +2 -2
index ae33d1ecf835..6ec960d7914e 100644
@@ -453,10 +453,10 @@ static int ub913_set_fmt(struct v4l2_subdev *sd,
 	if (!fmt)
 		return -EINVAL;
 
-	format->format.code = finfo->outcode;
-
 	*fmt = format->format;
 
+	fmt->code = finfo->outcode;
+
 	return 0;
 }
 
drivers/media/i2c/ov5675.c +1 -4
index c499e7e93c54..92c3e7951ee7 100644
@@ -1339,11 +1339,8 @@ static int ov5675_probe(struct i2c_client *client)
 		return -ENOMEM;
 
 	ret = ov5675_get_hwcfg(ov5675, &client->dev);
-	if (ret) {
-		dev_err(&client->dev, "failed to get HW configuration: %d",
-			ret);
+	if (ret)
 		return ret;
-	}
 
 	v4l2_i2c_subdev_init(&ov5675->sd, client, &ov5675_subdev_ops);
 
drivers/media/i2c/ov8856.c +3 -6
index f053c3a7676a..8c93fe6285f8 100644
@@ -2323,8 +2323,8 @@ static int ov8856_get_hwcfg(struct ov8856 *ov8856, struct device *dev)
 	if (!is_acpi_node(fwnode)) {
 		ov8856->xvclk = devm_clk_get(dev, "xvclk");
 		if (IS_ERR(ov8856->xvclk)) {
-			dev_err(dev, "could not get xvclk clock (%pe)\n",
-				ov8856->xvclk);
+			dev_err_probe(dev, PTR_ERR(ov8856->xvclk),
+				      "could not get xvclk clock\n");
 			return PTR_ERR(ov8856->xvclk);
 		}
 
@@ -2429,11 +2429,8 @@ static int ov8856_probe(struct i2c_client *client)
 		return -ENOMEM;
 
 	ret = ov8856_get_hwcfg(ov8856, &client->dev);
-	if (ret) {
-		dev_err(&client->dev, "failed to get HW configuration: %d",
-			ret);
+	if (ret)
 		return ret;
-	}
 
 	v4l2_i2c_subdev_init(&ov8856->sd, client, &ov8856_subdev_ops);
 
drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_hevc_req_multi_if.c +1 -1
index 21836dd6ef85..bbf56016f70a 100644
@@ -821,7 +821,7 @@ static int vdec_hevc_slice_setup_core_buffer(struct vdec_hevc_slice_inst *inst,
 	inst->vsi_core->fb.y.dma_addr = y_fb_dma;
 	inst->vsi_core->fb.y.size = ctx->picinfo.fb_sz[0];
 	inst->vsi_core->fb.c.dma_addr = c_fb_dma;
-	inst->vsi_core->fb.y.size = ctx->picinfo.fb_sz[1];
+	inst->vsi_core->fb.c.size = ctx->picinfo.fb_sz[1];
 
 	inst->vsi_core->dec.vdec_fb_va = (unsigned long)fb;
 
drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c +38 -21

83 lines not on this page · raw message

drivers/media/platform/nxp/imx8-isi/imx8-isi-m2m.c +13 -1
index 9745d6219a16..cd6c52e9d158 100644
@@ -43,6 +43,7 @@ struct mxc_isi_m2m_ctx_queue_data {
 	struct v4l2_pix_format_mplane format;
 	const struct mxc_isi_format_info *info;
 	u32 sequence;
+	bool streaming;
 };
 
 struct mxc_isi_m2m_ctx {
@@ -486,15 +487,18 @@ static int mxc_isi_m2m_streamon(struct file *file, void *fh,
 				enum v4l2_buf_type type)
 {
 	struct mxc_isi_m2m_ctx *ctx = to_isi_m2m_ctx(fh);
+	struct mxc_isi_m2m_ctx_queue_data *q = mxc_isi_m2m_ctx_qdata(ctx, type);
 	const struct v4l2_pix_format_mplane *out_pix = &ctx->queues.out.format;
 	const struct v4l2_pix_format_mplane *cap_pix = &ctx->queues.cap.format;
 	const struct mxc_isi_format_info *cap_info = ctx->queues.cap.info;
 	const struct mxc_isi_format_info *out_info = ctx->queues.out.info;
 	struct mxc_isi_m2m *m2m = ctx->m2m;
 	bool bypass;
-
 	int ret;
 
+	if (q->streaming)
+		return 0;
+
 	mutex_lock(&m2m->lock);
 
 	if (m2m->usage_count == INT_MAX) {
@@ -547,6 +551,8 @@ static int mxc_isi_m2m_streamon(struct file *file, void *fh,
 		goto unchain;
 	}
 
+	q->streaming = true;
+
 	return 0;
 
 unchain:
@@ -569,10 +575,14 @@ static int mxc_isi_m2m_streamoff(struct file *file, void *fh,
 				 enum v4l2_buf_type type)
 {
 	struct mxc_isi_m2m_ctx *ctx = to_isi_m2m_ctx(fh);
+	struct mxc_isi_m2m_ctx_queue_data *q = mxc_isi_m2m_ctx_qdata(ctx, type);
 	struct mxc_isi_m2m *m2m = ctx->m2m;
 
 	v4l2_m2m_ioctl_streamoff(file, fh, type);
 
+	if (!q->streaming)
+		return 0;
+
 	mutex_lock(&m2m->lock);
 
 	/*
@@ -598,6 +608,8 @@ static int mxc_isi_m2m_streamoff(struct file *file, void *fh,
 
 	mutex_unlock(&m2m->lock);
 
+	q->streaming = false;
+
 	return 0;
 }
 
drivers/media/platform/qcom/venus/core.c +8 -8
index b570eb8c3756..47ce3365451d 100644
@@ -348,7 +348,7 @@ static int venus_probe(struct platform_device *pdev)
 
 	ret = v4l2_device_register(dev, &core->v4l2_dev);
 	if (ret)
-		goto err_core_deinit;
+		goto err_hfi_destroy;
 
 	platform_set_drvdata(pdev, core);
 
@@ -380,24 +380,24 @@ static int venus_probe(struct platform_device *pdev)
 
 	ret = venus_enumerate_codecs(core, VIDC_SESSION_TYPE_DEC);
 	if (ret)
-		goto err_venus_shutdown;
+		goto err_core_deinit;
 
 	ret = venus_enumerate_codecs(core, VIDC_SESSION_TYPE_ENC);
 	if (ret)
-		goto err_venus_shutdown;
+		goto err_core_deinit;
 
 	ret = pm_runtime_put_sync(dev);
 	if (ret) {
 		pm_runtime_get_noresume(dev);
-		goto err_dev_unregister;
+		goto err_core_deinit;
 	}
 
 	venus_dbgfs_init(core);
 
 	return 0;
 
-err_dev_unregister:
-	v4l2_device_unregister(&core->v4l2_dev);
+err_core_deinit:
+	hfi_core_deinit(core, false);
 err_venus_shutdown:
 	venus_shutdown(core);
 err_firmware_deinit:
@@ -408,9 +408,9 @@ static int venus_probe(struct platform_device *pdev)
 	pm_runtime_put_noidle(dev);
 	pm_runtime_disable(dev);
 	pm_runtime_set_suspended(dev);
+	v4l2_device_unregister(&core->v4l2_dev);
+err_hfi_destroy:
 	hfi_destroy(core);
-err_core_deinit:
-	hfi_core_deinit(core, false);
 err_core_put:
 	if (core->pm_ops->core_put)
 		core->pm_ops->core_put(core);
drivers/media/platform/ti/davinci/vpif.c +3 -1
index 63cdfed37bc9..fa9679abf7a4 100644
@@ -505,7 +505,7 @@ static int vpif_probe(struct platform_device *pdev)
 	pdev_display = kzalloc(sizeof(*pdev_display), GFP_KERNEL);
 	if (!pdev_display) {
 		ret = -ENOMEM;
-		goto err_put_pdev_capture;
+		goto err_del_pdev_capture;
 	}
 
 	pdev_display->name = "vpif_display";
@@ -528,6 +528,8 @@ static int vpif_probe(struct platform_device *pdev)
 
 err_put_pdev_display:
 	platform_device_put(pdev_display);
+err_del_pdev_capture:
+	platform_device_del(pdev_capture);
 err_put_pdev_capture:
 	platform_device_put(pdev_capture);
 err_put_rpm:
drivers/media/platform/ti/omap3isp/ispccdc.c +4 -4
index 2fe42aa91800..6eb387ea1dae 100644
@@ -446,8 +446,8 @@ static int ccdc_lsc_config(struct isp_ccdc_device *ccdc,
 		if (ret < 0)
 			goto done;
 
-		dma_sync_sg_for_cpu(isp->dev, req->table.sgt.sgl,
-				    req->table.sgt.nents, DMA_TO_DEVICE);
+		dma_sync_sgtable_for_cpu(isp->dev, &req->table.sgt,
+					 DMA_TO_DEVICE);
 
 		if (copy_from_user(req->table.addr, config->lsc,
 				   req->config.size)) {
@@ -455,8 +455,8 @@ static int ccdc_lsc_config(struct isp_ccdc_device *ccdc,
 			goto done;
 		}
 
-		dma_sync_sg_for_device(isp->dev, req->table.sgt.sgl,
-				       req->table.sgt.nents, DMA_TO_DEVICE);
+		dma_sync_sgtable_for_device(isp->dev, &req->table.sgt,
+					    DMA_TO_DEVICE);
 	}
 
 	spin_lock_irqsave(&ccdc->lsc.req_lock, flags);
drivers/media/platform/ti/omap3isp/ispstat.c +2 -4
index 68cf68dbcace..dc496ca9748a 100644
@@ -161,8 +161,7 @@ static void isp_stat_buf_sync_for_device(struct ispstat *stat,
 	if (ISP_STAT_USES_DMAENGINE(stat))
 		return;
 
-	dma_sync_sg_for_device(stat->isp->dev, buf->sgt.sgl,
-			       buf->sgt.nents, DMA_FROM_DEVICE);
+	dma_sync_sgtable_for_device(stat->isp->dev, &buf->sgt, DMA_FROM_DEVICE);
 }
 
 static void isp_stat_buf_sync_for_cpu(struct ispstat *stat,
@@ -171,8 +170,7 @@ static void isp_stat_buf_sync_for_cpu(struct ispstat *stat,
 	if (ISP_STAT_USES_DMAENGINE(stat))
 		return;
 
-	dma_sync_sg_for_cpu(stat->isp->dev, buf->sgt.sgl,
-			    buf->sgt.nents, DMA_FROM_DEVICE);
+	dma_sync_sgtable_for_cpu(stat->isp->dev, &buf->sgt, DMA_FROM_DEVICE);
 }
 
 static void isp_stat_buf_clear(struct ispstat *stat)
drivers/media/test-drivers/vidtv/vidtv_channel.c +1 -1
index 7838e6272712..f3023e91b3eb 100644
@@ -497,7 +497,7 @@ int vidtv_channel_si_init(struct vidtv_mux *m)
 	vidtv_psi_sdt_table_destroy(m->si.sdt);
 free_pat:
 	vidtv_psi_pat_table_destroy(m->si.pat);
-	return 0;
+	return -EINVAL;
 }
 
 void vidtv_channel_si_destroy(struct vidtv_mux *m)
drivers/media/test-drivers/vivid/vivid-vid-cap.c +1 -1
index 9443dbb04699..0ab47fb8696b 100644
@@ -954,8 +954,8 @@ int vivid_vid_cap_s_selection(struct file *file, void *fh, struct v4l2_selection
 			if (dev->has_compose_cap) {
 				v4l2_rect_set_min_size(compose, &min_rect);
 				v4l2_rect_set_max_size(compose, &max_rect);
-				v4l2_rect_map_inside(compose, &fmt);
 			}
+			v4l2_rect_map_inside(compose, &fmt);
 			dev->fmt_cap_rect = fmt;
 			tpg_s_buf_height(&dev->tpg, fmt.height);
 		} else if (dev->has_compose_cap) {
drivers/media/usb/dvb-usb/cxusb.c +1 -2
index 1d98d3465e28..ce52c936cb93 100644
@@ -119,9 +119,8 @@ static void cxusb_gpio_tuner(struct dvb_usb_device *d, int onoff)
 
 	o[0] = GPIO_TUNER;
 	o[1] = onoff;
-	cxusb_ctrl_msg(d, CMD_GPIO_WRITE, o, 2, &i, 1);
 
-	if (i != 0x01)
+	if (!cxusb_ctrl_msg(d, CMD_GPIO_WRITE, o, 2, &i, 1) && i != 0x01)
 		dev_info(&d->udev->dev, "gpio_write failed.\n");
 
 	st->gpio_write_state[GPIO_TUNER] = onoff;
drivers/media/usb/gspca/stv06xx/stv06xx_hdcs.c +4 -3
index 5a47dcbf1c8e..303b055fefea 100644
@@ -520,12 +520,13 @@ static int hdcs_init(struct sd *sd)
 static int hdcs_dump(struct sd *sd)
 {
 	u16 reg, val;
+	int err = 0;
 
 	pr_info("Dumping sensor registers:\n");
 
-	for (reg = HDCS_IDENT; reg <= HDCS_ROWEXPH; reg++) {
-		stv06xx_read_sensor(sd, reg, &val);
+	for (reg = HDCS_IDENT; reg <= HDCS_ROWEXPH && !err; reg++) {
+		err = stv06xx_read_sensor(sd, reg, &val);
 		pr_info("reg 0x%02x = 0x%02x\n", reg, val);
 	}
-	return 0;
+	return (err < 0) ? err : 0;
 }
drivers/media/usb/uvc/uvc_ctrl.c +19 -4
index 5926a9dfb0b1..59e21746f550 100644
@@ -1642,7 +1642,9 @@ static bool uvc_ctrl_xctrls_has_control(const struct v4l2_ext_control *xctrls,
 }
 
 static void uvc_ctrl_send_events(struct uvc_fh *handle,
-	const struct v4l2_ext_control *xctrls, unsigned int xctrls_count)
+				 struct uvc_entity *entity,
+				 const struct v4l2_ext_control *xctrls,
+				 unsigned int xctrls_count)
 {
 	struct uvc_control_mapping *mapping;
 	struct uvc_control *ctrl;
@@ -1653,6 +1655,9 @@ static void uvc_ctrl_send_events(struct uvc_fh *handle,
 		u32 changes = V4L2_EVENT_CTRL_CH_VALUE;
 
 		ctrl = uvc_find_control(handle->chain, xctrls[i].id, &mapping);
+		if (ctrl->entity != entity)
+			continue;
+
 		if (ctrl->info.flags & UVC_CTRL_FLAG_ASYNCHRONOUS)
 			/* Notification will be sent from an Interrupt event. */
 			continue;
@@ -1783,12 +1788,17 @@ int uvc_ctrl_begin(struct uvc_video_chain *chain)
 	return mutex_lock_interruptible(&chain->ctrl_mutex) ? -ERESTARTSYS : 0;
 }
 
+/*
+ * Returns the number of uvc controls that have been correctly set, or a
+ * negative number if there has been an error.
+ */
 static int uvc_ctrl_commit_entity(struct uvc_device *dev,
 				  struct uvc_fh *handle,
 				  struct uvc_entity *entity,
 				  int rollback,
 				  struct uvc_control **err_ctrl)
 {
+	unsigned int processed_ctrls = 0;
 	struct uvc_control *ctrl;
 	unsigned int i;
 	int ret;
@@ -1823,6 +1833,9 @@ static int uvc_ctrl_commit_entity(struct uvc_device *dev,
 		else
 			ret = 0;
 
+		if (!ret)
+			processed_ctrls++;
+
 		if (rollback || ret < 0)
 			memcpy(uvc_ctrl_data(ctrl, UVC_CTRL_DATA_CURRENT),
 			       uvc_ctrl_data(ctrl, UVC_CTRL_DATA_BACKUP),
@@ -1841,7 +1854,7 @@ static int uvc_ctrl_commit_entity(struct uvc_device *dev,
 			uvc_ctrl_set_handle(handle, ctrl, handle);
 	}
 
-	return 0;
+	return processed_ctrls;
 }
 
 static int uvc_ctrl_find_ctrl_idx(struct uvc_entity *entity,
@@ -1883,11 +1896,13 @@ int __uvc_ctrl_commit(struct uvc_fh *handle, int rollback,
 					uvc_ctrl_find_ctrl_idx(entity, ctrls,
 							       err_ctrl);
 			goto done;
+		} else if (ret > 0 && !rollback) {
+			uvc_ctrl_send_events(handle, entity,
+					     ctrls->controls, ctrls->count);
 		}
 	}
 
-	if (!rollback)
-		uvc_ctrl_send_events(handle, ctrls->controls, ctrls->count);
+	ret = 0;
 done:
 	mutex_unlock(&chain->ctrl_mutex);
 	return ret;
drivers/media/usb/uvc/uvc_driver.c +19 -8
index 02cfa12b9cb9..76f18557f37b 100644
@@ -2217,13 +2217,16 @@ static int uvc_probe(struct usb_interface *intf,
 #endif
 
 	/* Parse the Video Class control descriptor. */
-	if (uvc_parse_control(dev) < 0) {
+	ret = uvc_parse_control(dev);
+	if (ret < 0) {
+		ret = -ENODEV;
 		uvc_dbg(dev, PROBE, "Unable to parse UVC descriptors\n");
 		goto error;
 	}
 
 	/* Parse the associated GPIOs. */
-	if (uvc_gpio_parse(dev) < 0) {
+	ret = uvc_gpio_parse(dev);
+	if (ret < 0) {
 		uvc_dbg(dev, PROBE, "Unable to parse UVC GPIOs\n");
 		goto error;
 	}
@@ -2249,24 +2252,32 @@ static int uvc_probe(struct usb_interface *intf,
 	}
 
 	/* Register the V4L2 device. */
-	if (v4l2_device_register(&intf->dev, &dev->vdev) < 0)
+	ret = v4l2_device_register(&intf->dev, &dev->vdev);
+	if (ret < 0)
 		goto error;
 
 	/* Scan the device for video chains. */
-	if (uvc_scan_device(dev) < 0)
+	if (uvc_scan_device(dev) < 0) {
+		ret = -ENODEV;
 		goto error;
+	}
 
 	/* Initialize controls. */
-	if (uvc_ctrl_init_device(dev) < 0)
+	if (uvc_ctrl_init_device(dev) < 0) {
+		ret = -ENODEV;
 		goto error;
+	}
 
 	/* Register video device nodes. */
-	if (uvc_register_chains(dev) < 0)
+	if (uvc_register_chains(dev) < 0) {
+		ret = -ENODEV;
 		goto error;
+	}
 
 #ifdef CONFIG_MEDIA_CONTROLLER
 	/* Register the media device node */
-	if (media_device_register(&dev->mdev) < 0)
+	ret = media_device_register(&dev->mdev);
+	if (ret < 0)
 		goto error;
 #endif
 	/* Save our data pointer in the interface data. */
@@ -2300,7 +2311,7 @@ static int uvc_probe(struct usb_interface *intf,
 error:
 	uvc_unregister_video(dev);
 	kref_put(&dev->ref, uvc_delete);
-	return -ENODEV;
+	return ret;
 }
 
 static void uvc_disconnect(struct usb_interface *intf)
drivers/media/v4l2-core/v4l2-dev.c +7 -7
index 77bbf276ae89..c4d3d110c500 100644
@@ -1033,25 +1033,25 @@ int __video_register_device(struct video_device *vdev,
 	vdev->dev.class = &video_class;
 	vdev->dev.devt = MKDEV(VIDEO_MAJOR, vdev->minor);
 	vdev->dev.parent = vdev->dev_parent;
+	vdev->dev.release = v4l2_device_release;
 	dev_set_name(&vdev->dev, "%s%d", name_base, vdev->num);
+
+	/* Increase v4l2_device refcount */
+	v4l2_device_get(vdev->v4l2_dev);
+
 	mutex_lock(&videodev_lock);
 	ret = device_register(&vdev->dev);
 	if (ret < 0) {
 		mutex_unlock(&videodev_lock);
 		pr_err("%s: device_register failed\n", __func__);
-		goto cleanup;
+		put_device(&vdev->dev);
+		return ret;
 	}
-	/* Register the release callback that will be called when the last
-	   reference to the device goes away. */
-	vdev->dev.release = v4l2_device_release;
 
 	if (nr != -1 && nr != vdev->num && warn_if_nr_in_use)
 		pr_warn("%s: requested %s%d, got %s\n", __func__,
 			name_base, nr, video_device_node_name(vdev));
 
-	/* Increase v4l2_device refcount */
-	v4l2_device_get(vdev->v4l2_dev);
-
 	/* Part 5: Register the entity. */
 	ret = video_register_media_controller(vdev);
 
drivers/mmc/core/card.h +6 -0
index 8476754b1b17..fe0b2fa3bb89 100644
@@ -86,6 +86,7 @@ struct mmc_fixup {
 #define CID_MANFID_MICRON       0x13
 #define CID_MANFID_SAMSUNG      0x15
 #define CID_MANFID_APACER       0x27
+#define CID_MANFID_SWISSBIT     0x5D
 #define CID_MANFID_KINGSTON     0x70
 #define CID_MANFID_HYNIX	0x90
 #define CID_MANFID_KINGSTON_SD	0x9F
@@ -291,4 +292,9 @@ static inline int mmc_card_broken_sd_poweroff_notify(const struct mmc_card *c)
 	return c->quirks & MMC_QUIRK_BROKEN_SD_POWEROFF_NOTIFY;
 }
 
+static inline int mmc_card_no_uhs_ddr50_tuning(const struct mmc_card *c)
+{
+	return c->quirks & MMC_QUIRK_NO_UHS_DDR50_TUNING;
+}
+
 #endif
drivers/mmc/core/quirks.h +10 -0
index 89b512905be1..7f893bafaa60 100644
@@ -34,6 +34,16 @@ static const struct mmc_fixup __maybe_unused mmc_sd_fixups[] = {
 		   MMC_QUIRK_BROKEN_SD_CACHE | MMC_QUIRK_BROKEN_SD_POWEROFF_NOTIFY,
 		   EXT_CSD_REV_ANY),
 
+	/*
+	 * Swissbit series S46-u cards throw I/O errors during tuning requests
+	 * after the initial tuning request expectedly times out. This has
+	 * only been observed on cards manufactured on 01/2019 that are using
+	 * Bay Trail host controllers.
+	 */
+	_FIXUP_EXT("0016G", CID_MANFID_SWISSBIT, 0x5342, 2019, 1,
+		   0, -1ull, SDIO_ANY_ID, SDIO_ANY_ID, add_quirk_sd,
+		   MMC_QUIRK_NO_UHS_DDR50_TUNING, EXT_CSD_REV_ANY),
+
 	END_FIXUP
 };
 
drivers/mmc/core/sd.c +24 -8
index f02c3e5eb5c8..a06f3011e2b5 100644
@@ -618,6 +618,29 @@ static int sd_set_current_limit(struct mmc_card *card, u8 *status)
 	return 0;
 }
 
+/*
+ * Determine if the card should tune or not.
+ */
+static bool mmc_sd_use_tuning(struct mmc_card *card)
+{
+	/*
+	 * SPI mode doesn't define CMD19 and tuning is only valid for SDR50 and
+	 * SDR104 mode SD-cards. Note that tuning is mandatory for SDR104.
+	 */
+	if (mmc_host_is_spi(card->host))
+		return false;
+
+	switch (card->host->ios.timing) {
+	case MMC_TIMING_UHS_SDR50:
+	case MMC_TIMING_UHS_SDR104:
+		return true;
+	case MMC_TIMING_UHS_DDR50:
+		return !mmc_card_no_uhs_ddr50_tuning(card);
+	}
+
+	return false;
+}
+
 /*
  * UHS-I specific initialization procedure
  */
@@ -661,14 +684,7 @@ static int mmc_sd_init_uhs_card(struct mmc_card *card)
 	if (err)
 		goto out;
 
-	/*
-	 * SPI mode doesn't define CMD19 and tuning is only valid for SDR50 and
-	 * SDR104 mode SD-cards. Note that tuning is mandatory for SDR104.
-	 */
-	if (!mmc_host_is_spi(card->host) &&
-		(card->host->ios.timing == MMC_TIMING_UHS_SDR50 ||
-		 card->host->ios.timing == MMC_TIMING_UHS_DDR50 ||
-		 card->host->ios.timing == MMC_TIMING_UHS_SDR104)) {
+	if (mmc_sd_use_tuning(card)) {
 		err = mmc_execute_tuning(card);
 
 		/*
drivers/mtd/nand/raw/qcom_nandc.c +1 -1
index b8cff9240b28..beafca6ba0df 100644
@@ -2917,7 +2917,7 @@ static int qcom_param_page_type_exec(struct nand_chip *chip,  const struct nand_
 		write_reg_dma(nandc, NAND_DEV_CMD1, 1, NAND_BAM_NEXT_SGL);
 	}
 
-	nandc->buf_count = len;
+	nandc->buf_count = 512;
 	memset(nandc->data_buffer, 0xff, nandc->buf_count);
 
 	config_nand_single_cw_page_read(chip, false, 0);
drivers/mtd/nand/raw/sunxi_nand.c +2 -0
index 9abf38049d35..4469618ee603 100644
@@ -817,6 +817,7 @@ static int sunxi_nfc_hw_ecc_read_chunk(struct nand_chip *nand,
 	if (ret)
 		return ret;
 
+	sunxi_nfc_randomizer_config(nand, page, false);
 	sunxi_nfc_randomizer_enable(nand);
 	writel(NFC_DATA_TRANS | NFC_DATA_SWAP_METHOD | NFC_ECC_OP,
 	       nfc->regs + NFC_REG_CMD);
@@ -1049,6 +1050,7 @@ static int sunxi_nfc_hw_ecc_write_chunk(struct nand_chip *nand,
 	if (ret)
 		return ret;
 
+	sunxi_nfc_randomizer_config(nand, page, false);
 	sunxi_nfc_randomizer_enable(nand);
 	sunxi_nfc_hw_ecc_set_prot_oob_bytes(nand, oob, 0, bbm, page);
 
drivers/net/can/m_can/tcan4x5x-core.c +5 -4
index ae8c42f5debd..4d440ecfc211 100644
@@ -385,10 +385,11 @@ static int tcan4x5x_can_probe(struct spi_device *spi)
 	priv = cdev_to_priv(mcan_class);
 
 	priv->power = devm_regulator_get_optional(&spi->dev, "vsup");
-	if (PTR_ERR(priv->power) == -EPROBE_DEFER) {
-		ret = -EPROBE_DEFER;
-		goto out_m_can_class_free_dev;
-	} else {
+	if (IS_ERR(priv->power)) {
+		if (PTR_ERR(priv->power) == -EPROBE_DEFER) {
+			ret = -EPROBE_DEFER;
+			goto out_m_can_class_free_dev;
+		}
 		priv->power = NULL;
 	}
 
drivers/net/ethernet/aquantia/atlantic/aq_main.c +0 -1
index 0b2a52199914..75d436c90696 100644
@@ -123,7 +123,6 @@ static netdev_tx_t aq_ndev_start_xmit(struct sk_buff *skb, struct net_device *nd
 	}
 #endif
 
-	skb_tx_timestamp(skb);
 	return aq_nic_xmit(aq_nic, skb);
 }
 
drivers/net/ethernet/aquantia/atlantic/aq_nic.c +2 -0
index c9b0d57696a4..07392174f643 100644
@@ -898,6 +898,8 @@ int aq_nic_xmit(struct aq_nic_s *self, struct sk_buff *skb)
 
 	frags = aq_nic_map_skb(self, skb, ring);
 
+	skb_tx_timestamp(skb);
+
 	if (likely(frags)) {
 		err = self->aq_hw_ops->hw_ring_tx_xmit(self->aq_hw,
 						       ring, frags);
drivers/net/ethernet/cadence/macb_main.c +5 -1
index 6f45f4d9fba7..534e7f7bca4c 100644
@@ -5070,7 +5070,11 @@ static int macb_probe(struct platform_device *pdev)
 
 #ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT
 	if (GEM_BFEXT(DAW64, gem_readl(bp, DCFG6))) {
-		dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(44));
+		err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(44));
+		if (err) {
+			dev_err(&pdev->dev, "failed to set DMA mask\n");
+			goto err_out_free_netdev;
+		}
 		bp->hw_dma_cap |= HW_DMA_CAP_64B;
 	}
 #endif
drivers/net/ethernet/cortina/gemini.c +29 -8
index 5af98fba7480..fce2ff1e1d83 100644
@@ -1148,6 +1148,7 @@ static int gmac_map_tx_bufs(struct net_device *netdev, struct sk_buff *skb,
 	struct gmac_txdesc *txd;
 	skb_frag_t *skb_frag;
 	dma_addr_t mapping;
+	bool tcp = false;
 	void *buffer;
 	u16 mss;
 	int ret;
@@ -1155,6 +1156,13 @@ static int gmac_map_tx_bufs(struct net_device *netdev, struct sk_buff *skb,
 	word1 = skb->len;
 	word3 = SOF_BIT;
 
+	/* Determine if we are doing TCP */
+	if (skb->protocol == htons(ETH_P_IP))
+		tcp = (ip_hdr(skb)->protocol == IPPROTO_TCP);
+	else
+		/* IPv6 */
+		tcp = (ipv6_hdr(skb)->nexthdr == IPPROTO_TCP);
+
 	mss = skb_shinfo(skb)->gso_size;
 	if (mss) {
 		/* This means we are dealing with TCP and skb->len is the
@@ -1167,8 +1175,26 @@ static int gmac_map_tx_bufs(struct net_device *netdev, struct sk_buff *skb,
 			   mss, skb->len);
 		word1 |= TSS_MTU_ENABLE_BIT;
 		word3 |= mss;
+	} else if (tcp) {
+		/* Even if we are not using TSO, use the hardware offloader
+		 * for transferring the TCP frame: this hardware has partial
+		 * TCP awareness (called TOE - TCP Offload Engine) and will
+		 * according to the datasheet put packets belonging to the
+		 * same TCP connection in the same queue for the TOE/TSO
+		 * engine to process. The engine will deal with chopping
+		 * up frames that exceed ETH_DATA_LEN which the
+		 * checksumming engine cannot handle (see below) into
+		 * manageable chunks. It flawlessly deals with quite big
+		 * frames and frames containing custom DSA EtherTypes.
+		 */
+		mss = netdev->mtu + skb_tcp_all_headers(skb);
+		mss = min(mss, skb->len);
+		netdev_dbg(netdev, "TOE/TSO len %04x mtu %04x mss %04x\n",
+			   skb->len, netdev->mtu, mss);
+		word1 |= TSS_MTU_ENABLE_BIT;
+		word3 |= mss;
 	} else if (skb->len >= ETH_FRAME_LEN) {
-		/* Hardware offloaded checksumming isn't working on frames
+		/* Hardware offloaded checksumming isn't working on non-TCP frames
 		 * bigger than 1514 bytes. A hypothesis about this is that the
 		 * checksum buffer is only 1518 bytes, so when the frames get
 		 * bigger they get truncated, or the last few bytes get
@@ -1185,21 +1211,16 @@ static int gmac_map_tx_bufs(struct net_device *netdev, struct sk_buff *skb,
 	}
 
 	if (skb->ip_summed == CHECKSUM_PARTIAL) {
-		int tcp = 0;
-
 		/* We do not switch off the checksumming on non TCP/UDP
 		 * frames: as is shown from tests, the checksumming engine
 		 * is smart enough to see that a frame is not actually TCP
 		 * or UDP and then just pass it through without any changes
 		 * to the frame.
 		 */
-		if (skb->protocol == htons(ETH_P_IP)) {
+		if (skb->protocol == htons(ETH_P_IP))
 			word1 |= TSS_IP_CHKSUM_BIT;
-			tcp = ip_hdr(skb)->protocol == IPPROTO_TCP;
-		} else { /* IPv6 */
+		else
 			word1 |= TSS_IPV6_ENABLE_BIT;
-			tcp = ipv6_hdr(skb)->nexthdr == IPPROTO_TCP;
-		}
 
 		word1 |= tcp ? TSS_TCP_CHKSUM_BIT : TSS_UDP_CHKSUM_BIT;
 	}
drivers/net/ethernet/dlink/dl2k.c +13 -1
index ce46f3ac3b5a..fad5a72d3b16 100644
@@ -146,6 +146,8 @@ rio_probe1 (struct pci_dev *pdev, const struct pci_device_id *ent)
 	np->ioaddr = ioaddr;
 	np->chip_id = chip_idx;
 	np->pdev = pdev;
+
+	spin_lock_init(&np->stats_lock);
 	spin_lock_init (&np->tx_lock);
 	spin_lock_init (&np->rx_lock);
 
@@ -866,7 +868,6 @@ tx_error (struct net_device *dev, int tx_status)
 	frame_id = (tx_status & 0xffff0000);
 	printk (KERN_ERR "%s: Transmit error, TxStatus %4.4x, FrameId %d.\n",
 		dev->name, tx_status, frame_id);
-	dev->stats.tx_errors++;
 	/* Ttransmit Underrun */
 	if (tx_status & 0x10) {
 		dev->stats.tx_fifo_errors++;
@@ -903,9 +904,15 @@ tx_error (struct net_device *dev, int tx_status)
 		rio_set_led_mode(dev);
 		/* Let TxStartThresh stay default value */
 	}
+
+	spin_lock(&np->stats_lock);
 	/* Maximum Collisions */
 	if (tx_status & 0x08)
 		dev->stats.collisions++;
+
+	dev->stats.tx_errors++;
+	spin_unlock(&np->stats_lock);
+
 	/* Restart the Tx */
 	dw32(MACCtrl, dr16(MACCtrl) | TxEnable);
 }
@@ -1074,7 +1081,9 @@ get_stats (struct net_device *dev)
 	int i;
 #endif
 	unsigned int stat_reg;
+	unsigned long flags;
 
+	spin_lock_irqsave(&np->stats_lock, flags);
 	/* All statistics registers need to be acknowledged,
 	   else statistic overflow could cause problems */
 
@@ -1124,6 +1133,9 @@ get_stats (struct net_device *dev)
 	dr16(TCPCheckSumErrors);
 	dr16(UDPCheckSumErrors);
 	dr16(IPCheckSumErrors);
+
+	spin_unlock_irqrestore(&np->stats_lock, flags);
+
 	return &dev->stats;
 }
 
drivers/net/ethernet/dlink/dl2k.h +2 -0
index 0e33e2eaae96..56aff2f0bdbf 100644
@@ -372,6 +372,8 @@ struct netdev_private {
 	struct pci_dev *pdev;
 	void __iomem *ioaddr;
 	void __iomem *eeprom_addr;
+	// To ensure synchronization when stats are updated.
+	spinlock_t stats_lock;
 	spinlock_t tx_lock;
 	spinlock_t rx_lock;
 	unsigned int rx_buf_sz;		/* Based on MTU+slack. */
drivers/net/ethernet/emulex/benet/be_cmds.c +1 -1
index 51b8377edd1d..a89aa4ac0a06 100644
@@ -1609,7 +1609,7 @@ int be_cmd_get_stats(struct be_adapter *adapter, struct be_dma_mem *nonemb_cmd)
 	/* version 1 of the cmd is not supported only by BE2 */
 	if (BE2_chip(adapter))
 		hdr->version = 0;
-	if (BE3_chip(adapter) || lancer_chip(adapter))
+	else if (BE3_chip(adapter) || lancer_chip(adapter))
 		hdr->version = 1;
 	else
 		hdr->version = 2;
drivers/net/ethernet/faraday/Kconfig +1 -0
index c699bd6bcbb9..474073c7f94d 100644
@@ -31,6 +31,7 @@ config FTGMAC100
 	depends on ARM || COMPILE_TEST
 	depends on !64BIT || BROKEN
 	select PHYLIB
+	select FIXED_PHY
 	select MDIO_ASPEED if MACH_ASPEED_G6
 	select CRC32
 	help
drivers/net/ethernet/intel/e1000e/netdev.c +11 -3
index 721c098f2bb1..7e4fea0e186b 100644
@@ -3540,9 +3540,6 @@ s32 e1000e_get_base_timinca(struct e1000_adapter *adapter, u32 *timinca)
 	case e1000_pch_cnp:
 	case e1000_pch_tgp:
 	case e1000_pch_adp:
-	case e1000_pch_mtp:
-	case e1000_pch_lnp:
-	case e1000_pch_ptp:
 	case e1000_pch_nvp:
 		if (er32(TSYNCRXCTL) & E1000_TSYNCRXCTL_SYSCFI) {
 			/* Stable 24MHz frequency */
@@ -3558,6 +3555,17 @@ s32 e1000e_get_base_timinca(struct e1000_adapter *adapter, u32 *timinca)
 			adapter->cc.shift = shift;
 		}
 		break;
+	case e1000_pch_mtp:
+	case e1000_pch_lnp:
+	case e1000_pch_ptp:
+		/* System firmware can misreport this value, so set it to a
+		 * stable 38400KHz frequency.
+		 */
+		incperiod = INCPERIOD_38400KHZ;
+		incvalue = INCVALUE_38400KHZ;
+		shift = INCVALUE_SHIFT_38400KHZ;
+		adapter->cc.shift = shift;
+		break;
 	case e1000_82574:
 	case e1000_82583:
 		/* Stable 25MHz frequency */
drivers/net/ethernet/intel/e1000e/ptp.c +5 -3
index bbcfd529399b..d039dea48ca3 100644
@@ -294,15 +294,17 @@ void e1000e_ptp_init(struct e1000_adapter *adapter)
 	case e1000_pch_cnp:
 	case e1000_pch_tgp:
 	case e1000_pch_adp:
-	case e1000_pch_mtp:
-	case e1000_pch_lnp:
-	case e1000_pch_ptp:
 	case e1000_pch_nvp:
 		if (er32(TSYNCRXCTL) & E1000_TSYNCRXCTL_SYSCFI)
 			adapter->ptp_clock_info.max_adj = MAX_PPB_24MHZ;
 		else
 			adapter->ptp_clock_info.max_adj = MAX_PPB_38400KHZ;
 		break;
+	case e1000_pch_mtp:
+	case e1000_pch_lnp:
+	case e1000_pch_ptp:
+		adapter->ptp_clock_info.max_adj = MAX_PPB_38400KHZ;
+		break;
 	case e1000_82574:
 	case e1000_82583:
 		adapter->ptp_clock_info.max_adj = MAX_PPB_25MHZ;
drivers/net/ethernet/intel/i40e/i40e_common.c +4 -3
index 4d7caa119971..5d46a8e5376d 100644
@@ -1067,10 +1067,11 @@ int i40e_pf_reset(struct i40e_hw *hw)
 void i40e_clear_hw(struct i40e_hw *hw)
 {
 	u32 num_queues, base_queue;
-	u32 num_pf_int;
-	u32 num_vf_int;
+	s32 num_pf_int;
+	s32 num_vf_int;
 	u32 num_vfs;
-	u32 i, j;
+	s32 i;
+	u32 j;
 	u32 val;
 	u32 eol = 0x7ff;
 
drivers/net/ethernet/intel/ice/ice_arfs.c +48 -0

60 lines not on this page · raw message

drivers/net/ethernet/intel/ice/ice_switch.c +2 -2
index 19f730a68fa2..ac004ef1d724 100644
@@ -3024,7 +3024,7 @@ ice_add_update_vsi_list(struct ice_hw *hw,
 		u16 vsi_handle_arr[2];
 
 		/* A rule already exists with the new VSI being added */
-		if (cur_fltr->fwd_id.hw_vsi_id == new_fltr->fwd_id.hw_vsi_id)
+		if (cur_fltr->vsi_handle == new_fltr->vsi_handle)
 			return -EEXIST;
 
 		vsi_handle_arr[0] = cur_fltr->vsi_handle;
@@ -5991,7 +5991,7 @@ ice_adv_add_update_vsi_list(struct ice_hw *hw,
 
 		/* A rule already exists with the new VSI being added */
 		if (test_bit(vsi_handle, m_entry->vsi_list_info->vsi_map))
-			return 0;
+			return -EEXIST;
 
 		/* Update the previously created VSI list set with
 		 * the new VSI ID passed in
drivers/net/ethernet/marvell/octeontx2/nic/cn10k.c +6 -3
index 7417087b6db5..a2807a1e4f4a 100644
@@ -352,9 +352,12 @@ int cn10k_free_matchall_ipolicer(struct otx2_nic *pfvf)
 	mutex_lock(&pfvf->mbox.lock);
 
 	/* Remove RQ's policer mapping */
-	for (qidx = 0; qidx < hw->rx_queues; qidx++)
-		cn10k_map_unmap_rq_policer(pfvf, qidx,
-					   hw->matchall_ipolicer, false);
+	for (qidx = 0; qidx < hw->rx_queues; qidx++) {
+		rc = cn10k_map_unmap_rq_policer(pfvf, qidx, hw->matchall_ipolicer, false);
+		if (rc)
+			dev_warn(pfvf->dev, "Failed to unmap RQ %d's policer (error %d).",
+				 qidx, rc);
+	}
 
 	rc = cn10k_free_leaf_profile(pfvf, hw->matchall_ipolicer);
 
drivers/net/ethernet/mellanox/mlx4/en_ethtool.c +1 -0
index 164a13272faa..07dced3c2b1c 100644
@@ -1916,6 +1916,7 @@ static int mlx4_en_get_ts_info(struct net_device *dev,
 	if (mdev->dev->caps.flags2 & MLX4_DEV_CAP_FLAG2_TS) {
 		info->so_timestamping |=
 			SOF_TIMESTAMPING_TX_HARDWARE |
+			SOF_TIMESTAMPING_TX_SOFTWARE |
 			SOF_TIMESTAMPING_RX_HARDWARE |
 			SOF_TIMESTAMPING_RAW_HARDWARE;
 
drivers/net/ethernet/mellanox/mlx5/core/vport.c +12 -6
index 21753f327868..06b5265b6e6d 100644
@@ -444,19 +444,22 @@ int mlx5_query_nic_vport_node_guid(struct mlx5_core_dev *mdev, u64 *node_guid)
 {
 	u32 *out;
 	int outlen = MLX5_ST_SZ_BYTES(query_nic_vport_context_out);
+	int err;
 
 	out = kvzalloc(outlen, GFP_KERNEL);
 	if (!out)
 		return -ENOMEM;
 
-	mlx5_query_nic_vport_context(mdev, 0, out);
+	err = mlx5_query_nic_vport_context(mdev, 0, out);
+	if (err)
+		goto out;
 
 	*node_guid = MLX5_GET64(query_nic_vport_context_out, out,
 				nic_vport_context.node_guid);
-
+out:
 	kvfree(out);
 
-	return 0;
+	return err;
 }
 EXPORT_SYMBOL_GPL(mlx5_query_nic_vport_node_guid);
 
@@ -498,19 +501,22 @@ int mlx5_query_nic_vport_qkey_viol_cntr(struct mlx5_core_dev *mdev,
 {
 	u32 *out;
 	int outlen = MLX5_ST_SZ_BYTES(query_nic_vport_context_out);
+	int err;
 
 	out = kvzalloc(outlen, GFP_KERNEL);
 	if (!out)
 		return -ENOMEM;
 
-	mlx5_query_nic_vport_context(mdev, 0, out);
+	err = mlx5_query_nic_vport_context(mdev, 0, out);
+	if (err)
+		goto out;
 
 	*qkey_viol_cntr = MLX5_GET(query_nic_vport_context_out, out,
 				   nic_vport_context.qkey_violation_counter);
-
+out:
 	kvfree(out);
 
-	return 0;
+	return err;
 }
[… more lines in the raw message]

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

drivers/net/ethernet/microchip/lan743x_ethtool.c +16 -2
index 72b3092d35f7..39a58c3578a0 100644

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

drivers/net/ethernet/microchip/lan743x_ptp.c +1 -1
index 39e1066ecd5f..47f2531198f6 100644

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

drivers/net/ethernet/microchip/lan743x_ptp.h +3 -2
index e26d4eff7133..225e8232474d 100644

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

drivers/net/ethernet/pensando/ionic/ionic_main.c +2 -1
index 3ca6893d1bf2..2869922cffe2 100644

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

drivers/net/ethernet/ti/am65-cpsw-nuss.c +13 -11
index c379a958380c..28cc23736a69 100644

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

drivers/net/ethernet/vertexcom/mse102x.c +9 -6
index 060a566bc6aa..c902f8761d5d 100644

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

drivers/net/usb/asix.h +0 -1
index 74162190bccc..8531b804021a 100644

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

drivers/net/usb/asix_common.c +0 -22
index 72ffc89b477a..7fd763917ae2 100644

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

drivers/net/usb/asix_devices.c +4 -13
index ec4dcf89cbed..119295f5f3b3 100644

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

drivers/net/usb/ch9200.c +5 -2
index f69d9b902da0..a206ffa76f1b 100644

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

drivers/net/vxlan/vxlan_core.c +4 -4
index 2ed879a0abc6..1b6b6acd3489 100644

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

drivers/net/wireless/ath/ath11k/ce.c +5 -6
index e66e86bdec20..9d8efec46508 100644

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

drivers/net/wireless/ath/ath11k/core.c +55 -0

55 lines not on this page · raw message

drivers/net/wireless/ath/ath11k/core.h +7 -0
index 555deafd8399..812a174f74c0 100644

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

drivers/net/wireless/ath/ath11k/dp_rx.c +16 -9
index 4c70366ac56e..2b7bee666472 100644

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

drivers/net/wireless/ath/ath11k/hal.c +2 -2
index ae5f7e401e21..f32fa104ded9 100644

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

drivers/net/wireless/ath/ath11k/qmi.c +9 -0
index fa46e645009c..91e31f30d2c8 100644

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

drivers/net/wireless/ath/ath12k/ce.c +5 -6
index be0d669d31fc..740586fe49d1 100644

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

drivers/net/wireless/ath/ath12k/ce.h +3 -3
index 857bc5f9e946..f9547a3945e4 100644

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

drivers/net/wireless/ath/ath12k/dp_mon.c +2 -0
index 35f22a4a16cf..69bf75ebd751 100644

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

drivers/net/wireless/ath/ath12k/hal.c +2 -2
index 0b5a91ab0df4..169e16c6ed65 100644

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

drivers/net/wireless/ath/ath12k/hal_desc.h +1 -1
index 1bb840c2bef5..5fd9232ad101 100644

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

drivers/net/wireless/ath/ath12k/pci.c +3 -0
index 5fd80f90ecaf..7dfbabf0637d 100644

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

drivers/net/wireless/ath/ath12k/wmi.c +15 -5
index a0ac2f350934..958ac4ed5c34 100644

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

drivers/net/wireless/ath/carl9170/usb.c +13 -6
index a5265997b576..debac4699687 100644

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

drivers/net/wireless/intel/iwlwifi/cfg/22000.c +3 -0
index d594694206b3..906f2790f561 100644

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

drivers/net/wireless/intel/iwlwifi/pcie/trans.c +6 -0
index e9807fcca6ad..5c2e8d288397 100644

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

drivers/net/wireless/intersil/p54/fwio.c +2 -0
index b52cce38115d..06e5df90b43e 100644

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

drivers/net/wireless/intersil/p54/p54.h +1 -0
index 3356ea708d81..97fc863fef81 100644

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

drivers/net/wireless/intersil/p54/txrx.c +9 -4
index 8414aa208655..2deb1bb54f24 100644

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

drivers/net/wireless/mediatek/mt76/mt76x2/usb.c +2 -0
index 70d3895762b4..00248e2b21ea 100644

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

drivers/net/wireless/mediatek/mt76/mt76x2/usb_init.c +12 -1
index 33a14365ec9b..3b5562811511 100644

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

drivers/net/wireless/mediatek/mt76/mt7921/main.c +5 -0
index 31ef58e2a3d2..8e2ec3956331 100644

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

drivers/net/wireless/mediatek/mt76/mt7996/mac.c +8 -0
index 35d9673ec0d8..8fa16f95e6a7 100644

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

drivers/net/wireless/purelifi/plfxlc/usb.c +3 -1
index 311676c1ece0..8151bc5e00cc 100644

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

drivers/net/wireless/realtek/rtlwifi/pci.c +10 -0
index 3abd0c4c954b..3645f212021f 100644

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

drivers/net/wireless/realtek/rtw88/usb.c +1 -1
index 8f1d653282b7..eba3a2ee747f 100644

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

drivers/net/wireless/realtek/rtw89/cam.c +3 -0
index f5301c2bbf13..9a0ffaddb836 100644

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

drivers/net/wireless/realtek/rtw89/pci.c +67 -2

69 lines not on this page · raw message

drivers/net/wireless/realtek/rtw89/pci.h +1 -0
index 4259b79b138f..119c0608b91a 100644

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

drivers/net/wireless/virtual/mac80211_hwsim.c +5 -0
index d86a1bd7aab0..f5f48f7e6d26 100644

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

drivers/pci/controller/cadence/pcie-cadence-ep.c +3 -2
index a87dab9abba2..08fb16918043 100644

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

drivers/pci/controller/dwc/pcie-dw-rockchip.c +1 -1
index 9b1256da096c..8af7a837a061 100644

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

drivers/pci/pci.c +2 -1
index 503304aba9ea..4541dfbf0e1b 100644

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

drivers/pci/quirks.c +23 -0
index 70f484b811de..d67ea16e69e6 100644

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

drivers/phy/freescale/phy-fsl-imx8mq-usb.c +5 -5
index adc6394626ce..f914f016b3d2 100644

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

drivers/pinctrl/mvebu/pinctrl-armada-37xx.c +13 -8
index 1a39fd97a900..ef87a6045e07 100644

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

drivers/pinctrl/pinctrl-mcp23s08.c +8 -0
index fd97b6ee2a8d..ca45c1f36a89 100644

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

drivers/platform/loongarch/loongson-laptop.c +47 -40

87 lines not on this page · raw message

drivers/platform/x86/amd/pmc/pmc.c +2 -0
index 946a546cd9dd..af5cc8aa7988 100644

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

drivers/platform/x86/dell/dell_rbu.c +3 -3
index 9f51e0fcab04..fee20866b41e 100644

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

drivers/platform/x86/ideapad-laptop.c +3 -0
index 88eefccb6ed2..50013af0537c 100644

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

drivers/platform/x86/intel/uncore-frequency/uncore-frequency-tpmi.c +6 -3
index 105022164548..5be3b2687615 100644

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

drivers/power/supply/bq27xxx_battery.c +1 -1
index 23c873656757..e51fa2c694bc 100644

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

drivers/power/supply/bq27xxx_battery_i2c.c +12 -1
index 886e0a8e2abd..8877fa333cd0 100644

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

drivers/power/supply/collie_battery.c +1 -0
index 68390bd1004f..3daf7befc0bf 100644

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

drivers/ptp/ptp_clock.c +2 -1
index 6b7e8b7ebcef..b7fc260ed43b 100644

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

drivers/ptp/ptp_private.h +21 -1
index d0eb4555720e..a54124269c2f 100644

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

drivers/rapidio/rio_cm.c +3 -0
index 49f8d111e546..897642e62068 100644

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

drivers/regulator/max14577-regulator.c +4 -1
index 5e7171b9065a..41fd15adfd1f 100644

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

drivers/regulator/max20086-regulator.c +2 -2
index 1cf04d1efb33..8fcca52026bf 100644

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

drivers/remoteproc/remoteproc_core.c +3 -3
index 0c363ca566ff..2d4ae3b5af86 100644

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

drivers/s390/scsi/zfcp_sysfs.c +2 -0
index cb67fa80fb12..a95da6768f66 100644

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

drivers/scsi/elx/efct/efct_hw.c +3 -2
index 5a5525054d71..5b079b8b7a08 100644

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

drivers/scsi/lpfc/lpfc_hbadisc.c +1 -1
index 5c9bc8af3c2d..ff4428333877 100644

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

drivers/scsi/lpfc/lpfc_sli.c +2 -2
index 4a9fa00eeb79..4cf935b7223a 100644

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

drivers/scsi/storvsc_drv.c +6 -4
index 48b0ca92b44f..954a1cc50ba7 100644

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

drivers/staging/iio/impedance-analyzer/ad5933.c +1 -1
index 2d0883a64082..31d82a042dad 100644

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

drivers/tee/tee_core.c +6 -5
index 0eb342de0b00..d7ad16f262b2 100644

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

drivers/tty/serial/sh-sci.c +16 -0
index be7e57e1d1e3..dab5658d9d54 100644

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

drivers/uio/uio_hv_generic.c +2 -2
index a2c7abf8c289..2804a4f74975 100644

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

drivers/video/console/vgacon.c +1 -1
index 7ad047bcae17..c9ec89649b05 100644

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

drivers/video/fbdev/core/fbcon.c +6 -1
index 7a6f9a3cb3ba..75996ef9992e 100644

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

drivers/video/fbdev/core/fbmem.c +14 -8
index ee44a46a66be..52bd3af54369 100644

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

drivers/video/screen_info_pci.c +50 -29

79 lines not on this page · raw message

drivers/watchdog/da9052_wdt.c +1 -0
index d708c091bf1b..180526220d8c 100644

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

fs/ceph/super.c +1 -0
index 29026ba4f022..84e855e8929b 100644

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

fs/configfs/dir.c +1 -1
index 18677cd4e62f..2df99cd1034d 100644

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

fs/ext4/ext4.h +7 -0
index 81fe87fcbfa0..b55d5e2abeb3 100644

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

fs/ext4/extents.c +7 -11
index 39e3661a80c4..a3d3c9fc6426 100644

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

fs/ext4/file.c +1 -6
index c71af675e310..b37e0e4a71bf 100644

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

fs/ext4/inline.c +1 -1
index 3f363276ddd3..c85647a0ba09 100644

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

fs/ext4/inode.c +8 -2
index 86245e27be18..9694ef6b996e 100644

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

fs/f2fs/compress.c +10 -13
index f7ef69f44f3d..e962de4ecaa2 100644

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

fs/f2fs/f2fs.h +5 -0
index 911c4c64d729..2d9a86129bd8 100644

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

fs/f2fs/inode.c +9 -1
index 06941705e893..66721c2093c0 100644

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

fs/f2fs/namei.c +9 -0
index 4d6f0a6365fe..523009bc2732 100644

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

fs/f2fs/segment.c +6 -0
index 156d92b94525..c7714e954cb5 100644

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

fs/f2fs/super.c +11 -1
index 6b3cafbe9867..702137eafaa6 100644

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

fs/gfs2/lock_dlm.c +2 -1
index e028e55e67d9..07aac73377d8 100644

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

fs/jbd2/transaction.c +3 -2
index 76adab83cac3..c2b8ad0b24c4 100644

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

fs/jffs2/erase.c +3 -1
index ef3a1e1b6cb0..fda9f4d6093f 100644

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

fs/jffs2/scan.c +3 -1
index 29671e33a171..62879c218d4b 100644

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

fs/jffs2/summary.c +6 -1
index 4fe64519870f..d83372d3e1a0 100644

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

fs/nfs/read.c +2 -1
index a142287d86f6..688a24e9bc8b 100644

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

fs/nfsd/nfs4proc.c +2 -1
index b3eca08f15b1..b2bbf3d6d177 100644

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

fs/nfsd/nfssvc.c +3 -3
index 710a54c7dffc..623f522b1565 100644

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

fs/smb/client/cached_dir.c +12 -2
index 749794667295..d64742ba371a 100644

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

fs/smb/client/cached_dir.h +4 -4
index 1dfe79d947a6..bc8a812ff95f 100644

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

fs/smb/client/cifsglob.h +1 -0
index 39117343b703..6a4ed99e162c 100644

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

fs/smb/client/connect.c +11 -6
index 3faaee33ad45..8fa5fe0a8c5c 100644

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

fs/smb/client/namespace.c +3 -0
index 830f2a292bb0..ec58c0e50724 100644

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

fs/smb/client/readdir.c +15 -13
index e616be8196de..222348ae6258 100644

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

fs/smb/client/reparse.c +0 -1
index b6556fe3dfa1..4d45c31336df 100644

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

fs/smb/client/sess.c +5 -2
index f04922eb45d4..8959206a0353 100644

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

fs/smb/client/smb2pdu.c +23 -10
index 3e88e8b3c16e..e0f586009330 100644

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

fs/smb/client/transport.c +7 -7
index 2269963e5008..7b2560612bd6 100644

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

fs/smb/server/smb2pdu.c +6 -5
index 9bd817427a34..d8325504a162 100644

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

fs/xattr.c +1 -0
index 5fed22c22a2b..7574d24b982e 100644

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

include/acpi/actypes.h +1 -1
index 85c2dcf2b704..0a2420085241 100644

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

include/linux/acpi.h +8 -1
index 1b76d2f83eac..7c6f4006389d 100644

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

include/linux/atmdev.h +6 -0
index 9b02961d65ee..45f2f278b50a 100644

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

include/linux/hugetlb.h +3 -0
index fc2023d07f69..8b051b8c4034 100644

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

include/linux/mmc/card.h +1 -0
index afa575e362a4..7c6da19fff9f 100644

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

include/linux/netdevice.h +2 -1
index 0b0a172337db..030d9de2ba2d 100644

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

include/net/checksum.h +1 -1
index 1338cb92c8e7..28b101f26636 100644

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

include/trace/events/erofs.h +0 -18
index e18684b02c3d..0179af103d0f 100644

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

include/uapi/linux/bpf.h +2 -0
index c7f904a72af2..08a0494736e6 100644

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

io_uring/io-wq.c +3 -1
index 93f3e4d1df85..1c4ef4e4eb52 100644

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

io_uring/io_uring.c +1 -1
index ff1a93d405e9..897f07014c01 100644

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

io_uring/kbuf.c +1 -1
index addd7c973657..b2c381634393 100644

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

ipc/shm.c +4 -1
index 576a543b7cff..c4845689b7f6 100644

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

kernel/bpf/helpers.c +2 -1
index 41d62405c852..8f0b62b04dee 100644

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

kernel/cgroup/legacy_freezer.c +1 -2
index 66d1708042a7..a3e13e6d5ee4 100644

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

kernel/events/core.c +57 -23

80 lines not on this page · raw message

kernel/exit.c +9 -8
index 3540b2c9b1b6..03a1dd32e6ff 100644

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

kernel/time/clocksource.c +1 -1
index 3130f24daf59..353829883e66 100644

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

kernel/trace/ftrace.c +7 -3
index 650493ed76cd..4351b9069a91 100644

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

kernel/watchdog.c +27 -14

41 lines not on this page · raw message

lib/Kconfig +1 -0
index ee365b7402f1..43d69669465a 100644

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

mm/huge_memory.c +6 -5
index 635f0f0f6860..78f5df12b8eb 100644

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

mm/hugetlb.c +51 -16

67 lines not on this page · raw message

mm/mmap.c +6 -0
index 03a24cb3951d..a9c70001e456 100644

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

mm/page-writeback.c +1 -1
index e632ec9b6421..9ceb841af819 100644

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

net/atm/common.c +1 -0
index f7019df41c3e..9cc82acbc735 100644

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

net/atm/lec.c +10 -2
index ac3cfc1ae510..b7fa48a9b720 100644

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

net/atm/raw.c +1 -1
index 2b5f78a7ec3e..1e6511ec842c 100644

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

net/bridge/br_mst.c +2 -2
index 1820f09ff59c..3f24b4ee49c2 100644

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

net/bridge/br_multicast.c +95 -8

103 lines not on this page · raw message

net/bridge/br_private.h +10 -1
index 9197b511e459..067d47b8eb8f 100644

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

net/core/filter.c +16 -8
index 5143c8a9e52c..3e10b4c8338f 100644

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

net/core/skmsg.c +2 -1
index 2076db464e93..c3169e1e6352 100644

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

net/core/sock.c +2 -2
index 84ba3f67bca9..ec48690b5174 100644

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

net/core/utils.c +2 -2
index c994e95172ac..5895d034bf27 100644

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

net/ipv4/route.c +4 -0
index 97dc30a03dbf..8ee1ad2d8c13 100644

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

net/ipv4/tcp_fastopen.c +3 -0
index 32b28fc21b63..408985eb74ee 100644

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

net/ipv4/tcp_input.c +35 -28

63 lines not on this page · raw message

net/ipv6/calipso.c +8 -0
index c07e3da08d2a..24666291c54a 100644

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

net/ipv6/ila/ila_common.c +3 -3
index 95e9146918cc..b8d43ed4689d 100644

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

net/mac80211/mesh_hwmp.c +4 -2
index c6395551f5df..54930b06c3a4 100644

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

net/mac80211/tx.c +4 -2
index 45a093d3f1fa..ec5469add68a 100644

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

net/mpls/af_mpls.c +2 -2
index 43e8343df0db..5a4b175b78c8 100644

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

net/nfc/nci/uart.c +4 -4
index ed1508a9e093..aab107727f18 100644

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

net/sched/sch_sfq.c +8 -2
index d564675a8be4..e871cb53946a 100644

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

net/sched/sch_taprio.c +4 -2
index 951a87909c29..d162e2dd8602 100644

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

net/sctp/socket.c +2 -1
index b84c5e0a76f5..adc04e88f349 100644

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

net/sunrpc/svc.c +2 -9
index b43dc8409b1f..4d8d46074716 100644

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

net/sunrpc/xprtsock.c +5 -0
index 29df05879c8e..f90d84492bbe 100644

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

net/tipc/crypto.c +1 -1
index 79f91b6ca8c8..ea5bb131ebd0 100644

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

net/tipc/udp_media.c +2 -2
index b16ca400ff55..e993bd6ed7c2 100644

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

net/wireless/core.c +3 -3
index a2b15349324b..f6693983b5e9 100644

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

security/selinux/xfrm.c +1 -1
index 95fcd2d3433e..0fbbc62ed3ed 100644

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

sound/pci/hda/hda_intel.c +2 -0
index 3a0df631d25d..3cd5b7da8e15 100644

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

sound/pci/hda/patch_realtek.c +1 -0
index 440b934cdc28..82210b1e3b97 100644

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

sound/soc/amd/yc/acp6x-mach.c +8 -1
index 622df58a9694..9fdee74c28df 100644

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

sound/soc/codecs/tas2770.c +28 -2
index 5c6b825c757b..181b16530e5b 100644

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

sound/soc/meson/meson-card-utils.c +1 -1
index f7fd9c013e19..1adaf0041a48 100644

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

sound/soc/qcom/sdm845.c +4 -0
index 3eb29645a637..39d22304ce43 100644

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

sound/soc/tegra/tegra210_ahub.c +2 -0
index ab3c6b2544d2..140cb27f7328 100644

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

sound/usb/mixer_maps.c +12 -0
index 0e9b5431a47f..faac7df1fbcf 100644

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

tools/include/uapi/linux/bpf.h +2 -0
index 2a90f04a4160..2e064a1032a0 100644

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

tools/lib/bpf/btf.c +16 -0
index 8484b563b53d..2e9f28cece3f 100644

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

tools/perf/util/print-events.c +1 -0
index 9bee082194d5..fb11a967c450 100644

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

tools/testing/selftests/x86/Makefile +1 -1
index 7e8c937627dd..13ce9a53d5de 100644

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

tools/testing/selftests/x86/sigtrap_loop.c new file +101 -0

101 lines not on this page · 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.