2023-11-24 19:10:21

by Greg KH

[permalink] [raw]
Subject: [PATCH 5.15 000/297] 5.15.140-rc1 review

This is the start of the stable review cycle for the 5.15.140 release.
There are 297 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.

Responses should be made by Sun, 26 Nov 2023 17:19:17 +0000.
Anything received after that time might be too late.

The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.15.140-rc1.gz
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.15.y
and the diffstat can be found below.

thanks,

greg k-h

-------------
Pseudo-Shortlog of commits:

Greg Kroah-Hartman <[email protected]>
Linux 5.15.140-rc1

Saravana Kannan <[email protected]>
driver core: Release all resources during unbind before updating device links

Vicki Pfau <[email protected]>
Input: xpad - add VID for Turtle Beach controllers

Steven Rostedt (Google) <[email protected]>
tracing: Have trace_event_file have ref counters

Michael Ellerman <[email protected]>
powerpc/powernv: Fix fortify source warnings in opal-prd.c

Jens Axboe <[email protected]>
io_uring/fdinfo: lock SQ thread while retrieving thread cpu/pid

Lewis Huang <[email protected]>
drm/amd/display: Change the DMCUB mailbox memory location from FB to inbox

Christian König <[email protected]>
drm/amdgpu: fix error handling in amdgpu_bo_list_get()

Alex Deucher <[email protected]>
drm/amdgpu: don't use ATRM for external devices

Kunwu Chan <[email protected]>
drm/i915: Fix potential spectre vulnerability

Bas Nieuwenhuizen <[email protected]>
drm/amd/pm: Handle non-terminated overdrive commands.

Jan Kara <[email protected]>
ext4: properly sync file size update after O_SYNC direct IO

Kemeng Shi <[email protected]>
ext4: add missed brelse in update_backups

Kemeng Shi <[email protected]>
ext4: remove gdb backup copy for meta bg in setup_new_flex_group_blocks

Zhang Yi <[email protected]>
ext4: correct the start block of counting reserved clusters

Kemeng Shi <[email protected]>
ext4: correct return value of ext4_convert_meta_bg

Kemeng Shi <[email protected]>
ext4: correct offset of gdb backup in non meta_bg group to update_backups

Max Kellermann <[email protected]>
ext4: apply umask if ACL support is disabled

Heiner Kallweit <[email protected]>
Revert "net: r8169: Disable multicast filter for RTL8168H and RTL8107E"

Bryan O'Donoghue <[email protected]>
media: qcom: camss: Fix missing vfe_lite clocks check

Bryan O'Donoghue <[email protected]>
media: qcom: camss: Fix VFE-17x vfe_disable_output()

Bryan O'Donoghue <[email protected]>
media: qcom: camss: Fix vfe_get() error jump

Bryan O'Donoghue <[email protected]>
media: qcom: camss: Fix pm_domain_on sequence in probe

Victor Shih <[email protected]>
mmc: sdhci-pci-gli: GL9750: Mask the replay timer timeout of AER

ChunHao Lin <[email protected]>
r8169: fix network lost after resume on DASH systems

Roman Gushchin <[email protected]>
mm: kmem: drop __GFP_NOFAIL when allocating objcg vectors

Victor Shih <[email protected]>
mmc: sdhci-pci-gli: A workaround to allow GL9750 to enter ASPM L1.2

Nam Cao <[email protected]>
riscv: kprobes: allow writing to x0

Mahmoud Adam <[email protected]>
nfsd: fix file memleak on client_opens_release

Sakari Ailus <[email protected]>
media: ccs: Correctly initialise try compose rectangle

Vikash Garodia <[email protected]>
media: venus: hfi: add checks to handle capabilities from firmware

Vikash Garodia <[email protected]>
media: venus: hfi: fix the check to handle session buffer requirement

Vikash Garodia <[email protected]>
media: venus: hfi_parser: Add check to keep the number of codecs within range

Sean Young <[email protected]>
media: sharp: fix sharp encoding

Sean Young <[email protected]>
media: lirc: drop trailing space from scancode transmit

Su Hui <[email protected]>
f2fs: avoid format-overflow warning

Heiner Kallweit <[email protected]>
i2c: i801: fix potential race in i801_block_transaction_byte_by_byte

Klaus Kudielka <[email protected]>
net: phylink: initialize carrier state at creation

Alexander Sverdlin <[email protected]>
net: dsa: lan9303: consequently nested-lock physical MDIO

Andrew Lunn <[email protected]>
net: ethtool: Fix documentation of ethtool_sprintf()

Harald Freudenberger <[email protected]>
s390/ap: fix AP bus crash on early config change callback invocation

Tam Nguyen <[email protected]>
i2c: designware: Disable TX_EMPTY irq while waiting for block length byte

Darren Hart <[email protected]>
sbsa_gwdt: Calculate timeout with 64-bit math

Ondrej Mosnacek <[email protected]>
lsm: fix default return value for inode_getsecctx

Ondrej Mosnacek <[email protected]>
lsm: fix default return value for vm_enough_memory

Robert Marko <[email protected]>
Revert "i2c: pxa: move to generic GPIO recovery"

Johnathan Mantey <[email protected]>
Revert ncsi: Propagate carrier gain/loss events to the NCSI controller

Gaurav Batra <[email protected]>
powerpc/pseries/iommu: enable_ddw incorrectly returns direct mapping for SR-IOV device

Alexey Kardashevskiy <[email protected]>
powerpc/pseries/ddw: simplify enable_ddw()

Vignesh Viswanathan <[email protected]>
arm64: dts: qcom: ipq6018: Fix tcsr_mutex register size

Krzysztof Kozlowski <[email protected]>
arm64: dts: qcom: ipq6018: switch TCSR mutex to MMIO

Namjae Jeon <[email protected]>
ksmbd: fix slab out of bounds write in smb_inherit_dacl()

Guan Wentao <[email protected]>
Bluetooth: btusb: Add 0bda:b85b for Fn-Link RTL8852BE

Masum Reza <[email protected]>
Bluetooth: btusb: Add RTW8852BE device 13d3:3570 to device tables

Larry Finger <[email protected]>
bluetooth: Add device 13d3:3571 to device tables

Larry Finger <[email protected]>
bluetooth: Add device 0bda:887b to device tables

Artem Lukyanov <[email protected]>
Bluetooth: btusb: Add Realtek RTL8852BE support ID 0x0cb8:0xc559

Christian Marangi <[email protected]>
cpufreq: stats: Fix buffer overflow detection in trans_stats()

Mark Brown <[email protected]>
regmap: Ensure range selector registers are updated after cache sync

Pavel Krasavin <[email protected]>
tty: serial: meson: fix hard LOCKUP on crtscts mode

Lad Prabhakar <[email protected]>
serial: meson: Use platform_get_irq() to get the interrupt

Chandradeep Dey <[email protected]>
ALSA: hda/realtek - Enable internal speaker of ASUS K6500ZC

Kailang Yang <[email protected]>
ALSA: hda/realtek - Add Dell ALC295 to pin fall back table

Takashi Iwai <[email protected]>
ALSA: info: Fix potential deadlock at disconnection

Basavaraj Natikar <[email protected]>
xhci: Enable RPM on controllers that support low-power states

Helge Deller <[email protected]>
parisc/power: Fix power soft-off when running on qemu

Helge Deller <[email protected]>
parisc/pgtable: Do not drop upper 5 address bits of physical address

Helge Deller <[email protected]>
parisc: Prevent booting 64-bit kernels on PA1.x machines

Frank Li <[email protected]>
i3c: master: svc: fix SDA keep low when polling IBIWON timeout happen

Frank Li <[email protected]>
i3c: master: svc: fix check wrong status register in irq handler

Frank Li <[email protected]>
i3c: master: svc: fix ibi may not return mandatory data byte

Frank Li <[email protected]>
i3c: master: svc: fix wrong data return when IBI happen during start frame

Frank Li <[email protected]>
i3c: master: svc: fix race condition in ibi work thread

Joshua Yeong <[email protected]>
i3c: master: cdns: Fix reading status register

Linus Walleij <[email protected]>
mtd: cfi_cmdset_0001: Byte swap OTP info

Zi Yan <[email protected]>
mm/memory_hotplug: use pfn math in place of direct struct page manipulation

Zi Yan <[email protected]>
mm/cma: use nth_page() in place of direct struct page manipulation

Heiko Carstens <[email protected]>
s390/cmma: fix handling of swapper_pg_dir and invalid_pg_dir

Heiko Carstens <[email protected]>
s390/cmma: fix detection of DAT pages

Heiko Carstens <[email protected]>
s390/cmma: fix initial kernel address space page table walk

Alain Volmat <[email protected]>
dmaengine: stm32-mdma: correct desc prep when channel running

Sanjuán García, Jorge <[email protected]>
mcb: fix error handling for different scenarios when parsing

Steven Rostedt (Google) <[email protected]>
tracing: Have the user copy of synthetic event address use correct context

Benjamin Bara <[email protected]>
i2c: core: Run atomic i2c xfer when !preemptible

Benjamin Bara <[email protected]>
kernel/reboot: emergency_restart: Set correct system_state

Eric Biggers <[email protected]>
quota: explicitly forbid quota files from being encrypted

Zhihao Cheng <[email protected]>
jbd2: fix potential data lost in recovering journal raced with synchronizing fs bdev

Krzysztof Kozlowski <[email protected]>
ASoC: codecs: wsa-macro: fix uninitialized stack variables with name prefix

Ilpo Järvinen <[email protected]>
selftests/resctrl: Reduce failures due to outliers in MBA/MBM tests

Ilpo Järvinen <[email protected]>
selftests/resctrl: Remove duplicate feature check from CMT test

Pablo Neira Ayuso <[email protected]>
netfilter: nf_tables: split async and sync catchall in two functions

Pablo Neira Ayuso <[email protected]>
netfilter: nf_tables: remove catchall element in GC sync path

Uwe Kleine-König <[email protected]>
PCI: keystone: Don't discard .probe() callback

Uwe Kleine-König <[email protected]>
PCI: keystone: Don't discard .remove() callback

Jarkko Sakkinen <[email protected]>
KEYS: trusted: Rollback init_trusted() consistently

Herve Codina <[email protected]>
genirq/generic_chip: Make irq_remove_generic_chip() irqdomain aware

Rong Chen <[email protected]>
mmc: meson-gx: Remove setting of CMD_CFG_ERROR

Johan Hovold <[email protected]>
wifi: ath11k: fix htt pktlog locking

Johan Hovold <[email protected]>
wifi: ath11k: fix dfs radar event locking

Johan Hovold <[email protected]>
wifi: ath11k: fix temperature event locking

Mimi Zohar <[email protected]>
ima: detect changes to the backing overlay file

Amir Goldstein <[email protected]>
ima: annotate iint mutex to avoid lockdep false positive warnings

Vasily Khoruzhick <[email protected]>
ACPI: FPDT: properly handle invalid FPDT subtables

Kathiravan Thirumoorthy <[email protected]>
firmware: qcom_scm: use 64-bit calling convention only when client is 64-bit

Josef Bacik <[email protected]>
btrfs: don't arbitrarily slow down delalloc if we're committing

Catalin Marinas <[email protected]>
rcu: kmemleak: Ignore kmemleak false positives when RCU-freeing objects

Brian Geffon <[email protected]>
PM: hibernate: Clean up sync_read handling in snapshot_write_next()

Brian Geffon <[email protected]>
PM: hibernate: Use __get_safe_page() rather than touching the list

Vignesh Viswanathan <[email protected]>
arm64: dts: qcom: ipq6018: Fix hwlock index for SMEM

Joel Fernandes (Google) <[email protected]>
rcu/tree: Defer setting of jiffies during stall reset

Chuck Lever <[email protected]>
svcrdma: Drop connection after an RDMA Read error

Ajay Singh <[email protected]>
wifi: wilc1000: use vmm_table as array in wilc struct

Uwe Kleine-König <[email protected]>
PCI: exynos: Don't discard .remove() callback

Heiner Kallweit <[email protected]>
PCI/ASPM: Fix L1 substate handling in aspm_attr_store_common()

Nitin Yadav <[email protected]>
mmc: sdhci_am654: fix start loop index for TAP value parsing

Dan Carpenter <[email protected]>
mmc: vub300: fix an error code

Kathiravan Thirumoorthy <[email protected]>
clk: qcom: ipq6018: drop the CLK_SET_RATE_PARENT flag from PLL clocks

Kathiravan Thirumoorthy <[email protected]>
clk: qcom: ipq8074: drop the CLK_SET_RATE_PARENT flag from PLL clocks

Gustavo A. R. Silva <[email protected]>
clk: socfpga: Fix undefined behavior bug in struct stratix10_clock_data

Helge Deller <[email protected]>
parisc/power: Add power soft-off when running on qemu

Helge Deller <[email protected]>
parisc/pdc: Add width field to struct pdc_model

Nathan Chancellor <[email protected]>
arm64: Restrict CPU_BIG_ENDIAN to GNU as or LLVM IAS 15.x or newer

Werner Sembach <[email protected]>
ACPI: resource: Do IRQ override on TongFang GMxXGxx

Krister Johansen <[email protected]>
watchdog: move softlockup_panic back to early_param

Lukas Wunner <[email protected]>
PCI/sysfs: Protect driver's D3cold preference from user space

David Woodhouse <[email protected]>
hvc/xen: fix event channel handling for secondary consoles

David Woodhouse <[email protected]>
hvc/xen: fix error path in xen_hvc_init() to always register frontend driver

David Woodhouse <[email protected]>
hvc/xen: fix console unplug

Muhammad Usama Anjum <[email protected]>
tty/sysrq: replace smp_processor_id() with get_cpu()

Paul Moore <[email protected]>
audit: don't WARN_ON_ONCE(!current->mm) in audit_exe_compare()

Paul Moore <[email protected]>
audit: don't take task_lock() in audit_exe_compare() code path

Maciej S. Szmigiero <[email protected]>
KVM: x86: Ignore MSR_AMD64_TW_CFG access

Nicolas Saenz Julienne <[email protected]>
KVM: x86: hyper-v: Don't auto-enable stimer on write from user-space

Pu Wen <[email protected]>
x86/cpu/hygon: Fix the CPU topology evaluation for real

Roxana Nicolescu <[email protected]>
crypto: x86/sha - load modules based on CPU features

Quinn Tran <[email protected]>
scsi: qla2xxx: Fix system crash due to bad pointer access

Chandrakanth patil <[email protected]>
scsi: megaraid_sas: Increase register read retry rount from 3 to 30 for selected registers

Ranjan Kumar <[email protected]>
scsi: mpt3sas: Fix loop logic

Shung-Hsi Yu <[email protected]>
bpf: Fix precision tracking for BPF_ALU | BPF_TO_BE | BPF_END

Hao Sun <[email protected]>
bpf: Fix check_stack_write_fixed_off() to correctly spill imm

Kees Cook <[email protected]>
randstruct: Fix gcc-plugin performance mode to stay in group

Nicholas Piggin <[email protected]>
powerpc/perf: Fix disabling BHRB and instruction sampling

Vikash Garodia <[email protected]>
media: venus: hfi: add checks to perform sanity on queue pointers

Harshit Mogalapalli <[email protected]>
i915/perf: Fix NULL deref bugs with drm_dbg() calls

Li Zetao <[email protected]>
xfs: Fix unreferenced object reported by kmemleak in xfs_sysfs_init()

Zeng Heng <[email protected]>
xfs: fix memory leak in xfs_errortag_init

Guo Xuenan <[email protected]>
xfs: fix exception caused by unexpected illegal bestcount in leaf dir

Darrick J. Wong <[email protected]>
xfs: avoid a UAF when log intent item recovery fails

hexiaole <[email protected]>
xfs: fix inode reservation space for removing transaction

Chandan Babu R <[email protected]>
xfs: Fix false ENOSPC when performing direct write on a delalloc extent in cow fork

Gao Xiang <[email protected]>
xfs: add missing cmap->br_state = XFS_EXT_NORM update

Darrick J. Wong <[email protected]>
xfs: fix intermittent hang during quotacheck

Darrick J. Wong <[email protected]>
xfs: don't leak memory when attr fork loading fails

Darrick J. Wong <[email protected]>
xfs: fix use-after-free in xattr node block inactivation

Zhang Yi <[email protected]>
xfs: flush inode gc workqueue before clearing agi bucket

Darrick J. Wong <[email protected]>
xfs: prevent a UAF when log IO errors race with unmount

Kaixu Xia <[email protected]>
xfs: use invalidate_lock to check the state of mmap_lock

Darrick J. Wong <[email protected]>
xfs: convert buf_cancel_table allocation to kmalloc_array

Darrick J. Wong <[email protected]>
xfs: don't leak xfs_buf_cancel structures when recovery fails

Darrick J. Wong <[email protected]>
xfs: refactor buffer cancellation table allocation

Ekaterina Esina <[email protected]>
cifs: fix check of rc in function generate_smb3signingkey

Anastasia Belova <[email protected]>
cifs: spnego: add ';' in HOST_KEY_LEN

Chen Yu <[email protected]>
tools/power/turbostat: Enable the C-state Pre-wake printing

Zhang Rui <[email protected]>
tools/power/turbostat: Fix a knl bug

Vlad Buslov <[email protected]>
macvlan: Don't propagate promisc change to lower dev in passthru

Rahul Rameshbabu <[email protected]>
net/mlx5e: Check return value of snprintf writing to fw_version buffer for representors

Saeed Mahameed <[email protected]>
net/mlx5e: Reduce the size of icosq_str

Vlad Buslov <[email protected]>
net/mlx5e: Fix pedit endianness

Paul Blakey <[email protected]>
net/mlx5e: Refactor mod header management API

Roi Dayan <[email protected]>
net/mlx5e: Move mod hdr allocation to a single place

Roi Dayan <[email protected]>
net/mlx5e: Remove incorrect addition of action fwd flag

Gavin Li <[email protected]>
net/mlx5e: fix double free of encap_header in update funcs

Dust Li <[email protected]>
net/mlx5e: fix double free of encap_header

Baruch Siach <[email protected]>
net: stmmac: fix rx budget limit check

Dan Carpenter <[email protected]>
netfilter: nf_tables: fix pointer math issue in nft_byteorder_eval()

Florian Westphal <[email protected]>
netfilter: nf_tables: add and use BE register load-store helpers

Florian Westphal <[email protected]>
netfilter: nf_tables: use the correct get/put helpers

Linkui Xiao <[email protected]>
netfilter: nf_conntrack_bridge: initialize err to 0

Eric Dumazet <[email protected]>
af_unix: fix use-after-free in unix_stream_read_actor()

Linus Walleij <[email protected]>
net: ethernet: cortina: Fix MTU max setting

Linus Walleij <[email protected]>
net: ethernet: cortina: Handle large frames

Linus Walleij <[email protected]>
net: ethernet: cortina: Fix max RX frame define

Eric Dumazet <[email protected]>
bonding: stop the device in bond_setup_by_slave()

Eric Dumazet <[email protected]>
ptp: annotate data-race around q->head and q->tail

Juergen Gross <[email protected]>
xen/events: fix delayed eoi list handling

Willem de Bruijn <[email protected]>
ppp: limit MRU to 64K

Shigeru Yoshida <[email protected]>
tipc: Fix kernel-infoleak due to uninitialized TLV value

Jijie Shao <[email protected]>
net: hns3: fix VF wrong speed and duplex issue

Jijie Shao <[email protected]>
net: hns3: fix VF reset fail issue

Yonglong Liu <[email protected]>
net: hns3: fix variable may not initialized problem in hns3_init_mac_addr()

Jian Shen <[email protected]>
net: hns3: fix incorrect capability bit display for copper port

Yonglong Liu <[email protected]>
net: hns3: add barrier in vf mailbox reply process

Jie Wang <[email protected]>
net: hns3: add byte order conversion for PF to VF mailbox message

Jian Shen <[email protected]>
net: hns3: refine the definition for struct hclge_pf_to_vf_msg

Jian Shen <[email protected]>
net: hns3: fix add VLAN fail issue

Shigeru Yoshida <[email protected]>
tty: Fix uninit-value access in ppp_sync_receive()

Eric Dumazet <[email protected]>
ipvlan: add ipvlan_route_v6_outbound() helper

Stanislav Fomichev <[email protected]>
net: set SOCK_RCU_FREE before inserting socket into hashtable

Martin KaFai Lau <[email protected]>
net: inet: Retire port only listening_hash

Martin KaFai Lau <[email protected]>
net: inet: Open code inet_hash2 and inet_unhash2

Martin KaFai Lau <[email protected]>
net: inet: Remove count from inet_listen_hashbucket

Florian Westphal <[email protected]>
mptcp: listen diag dump support

Florian Westphal <[email protected]>
mptcp: diag: switch to context structure

Andreas Gruenbacher <[email protected]>
gfs2: Silence "suspicious RCU usage in gfs2_permission" warning

felix <[email protected]>
SUNRPC: Fix RPC client cleaned up the freed pipefs dentries

Olga Kornievskaia <[email protected]>
NFSv4.1: fix SP4_MACH_CRED protection for pnfs IO

Dan Carpenter <[email protected]>
SUNRPC: Add an IS_ERR() check back to where it was

Marc Zyngier <[email protected]>
gpio: Add helpers to ease the transition towards immutable irq_chip

Marc Zyngier <[email protected]>
gpio: Expose the gpiochip_irq_re[ql]res helpers

Marc Zyngier <[email protected]>
gpio: Don't fiddle with irqchips marked as immutable

Trond Myklebust <[email protected]>
SUNRPC: ECONNRESET might require a rebind

Marek Szyprowski <[email protected]>
media: cec: meson: always include meson sub-directory in Makefile

Pratyush Yadav <[email protected]>
media: cadence: csi2rx: Unregister v4l2 async notifier

Finn Thain <[email protected]>
sched/core: Optimize in_task() and in_interrupt() a bit

Steven Rostedt (VMware) <[email protected]>
tracing/perf: Add interrupt_context_level() helper

Steven Rostedt (VMware) <[email protected]>
tracing: Reuse logic from perf's get_recursion_context()

Miri Korenblit <[email protected]>
wifi: iwlwifi: Use FW rate for non-data frames

Dan Carpenter <[email protected]>
pwm: Fix double shift bug

Vitaly Prosyak <[email protected]>
drm/amdgpu: fix software pci_unplug on some chips

Zongmin Zhou <[email protected]>
drm/qxl: prevent memory leak

Tony Lindgren <[email protected]>
ASoC: ti: omap-mcbsp: Fix runtime PM underflow warnings

Philipp Stanner <[email protected]>
i2c: dev: copy userspace array safely

Douglas Anderson <[email protected]>
kgdb: Flush console before entering kgdb on panic

Wayne Lin <[email protected]>
drm/amd/display: Avoid NULL dereference of timing generator

Takashi Iwai <[email protected]>
media: imon: fix access to invalid resource for the second interface

Sakari Ailus <[email protected]>
media: ccs: Fix driver quirk struct documentation

Ilpo Järvinen <[email protected]>
media: cobalt: Use FIELD_GET() to extract Link Width

Al Viro <[email protected]>
gfs2: fix an oops in gfs2_permission

Bob Peterson <[email protected]>
gfs2: ignore negated quota changes

Hans Verkuil <[email protected]>
media: vivid: avoid integer overflow

Rajeshwar R Shinde <[email protected]>
media: gspca: cpia1: shift-out-of-bounds in set_flicker

Billy Tsai <[email protected]>
i3c: master: mipi-i3c-hci: Fix a kernel panic for accessing DAT_data.

zhenwei pi <[email protected]>
virtio-blk: fix implicit overflow on virtio_max_dma_size

Axel Lin <[email protected]>
i2c: sun6i-p2wi: Prevent potential division by zero

Jarkko Nikula <[email protected]>
i3c: mipi-i3c-hci: Fix out of bounds access in hci_dma_irq_handler

Dominique Martinet <[email protected]>
9p: v9fs_listxattr: fix %s null argument warning

Marco Elver <[email protected]>
9p/trans_fd: Annotate data-racy writes to file::f_flags

Hardik Gajjar <[email protected]>
usb: gadget: f_ncm: Always set current gadget in ncm_bind()

Yi Yang <[email protected]>
tty: vcc: Add check for kstrdup() in vcc_probe()

Yuezhang Mo <[email protected]>
exfat: support handle zero-size directory

Jiri Kosina <[email protected]>
HID: Add quirk for Dell Pro Wireless Keyboard and Mouse KM5221W

Bjorn Helgaas <[email protected]>
PCI: Use FIELD_GET() in Sapphire RX 5600 XT Pulse quirk

Yoshihiro Shimoda <[email protected]>
misc: pci_endpoint_test: Add Device ID for R-Car S4-8 PCIe controller

Bartosz Pawlowski <[email protected]>
PCI: Disable ATS for specific Intel IPU E2000 devices

Bartosz Pawlowski <[email protected]>
PCI: Extract ATS disabling to a helper function

Ilpo Järvinen <[email protected]>
PCI: Use FIELD_GET() to extract Link Width

Wenchao Hao <[email protected]>
scsi: libfc: Fix potential NULL pointer dereference in fc_lport_ptp_setup()

Ilpo Järvinen <[email protected]>
atm: iphase: Do PCI error checks on own line

Ilpo Järvinen <[email protected]>
PCI: tegra194: Use FIELD_GET()/FIELD_PREP() with Link Width fields

Cezary Rojewski <[email protected]>
ALSA: hda: Fix possible null-ptr-deref when assigning a stream

Vincent Whitchurch <[email protected]>
ARM: 9320/1: fix stack depot IRQ stack filter

Mikhail Khvainitski <[email protected]>
HID: lenovo: Detect quirk-free fw on cptkbd and stop applying workaround

Manas Ghandat <[email protected]>
jfs: fix array-index-out-of-bounds in diAlloc

Manas Ghandat <[email protected]>
jfs: fix array-index-out-of-bounds in dbFindLeaf

Juntong Deng <[email protected]>
fs/jfs: Add validity check for db_maxag and db_agpref

Juntong Deng <[email protected]>
fs/jfs: Add check for negative db_l2nbperpage

Tyrel Datwyler <[email protected]>
scsi: ibmvfc: Remove BUG_ON in the case of an empty event pool

Yihang Li <[email protected]>
scsi: hisi_sas: Set debugfs_dir pointer to NULL after removing debugfs

Ilpo Järvinen <[email protected]>
RDMA/hfi1: Use FIELD_GET() to extract Link Width

Lu Jialin <[email protected]>
crypto: pcrypt - Fix hungtask for PADATA_RESET

Richard Fitzgerald <[email protected]>
ASoC: soc-card: Add storage for PCI SSID

zhujun2 <[email protected]>
selftests/efivarfs: create-read: fix a resource leak

Laurentiu Tudor <[email protected]>
arm64: dts: ls208xa: use a pseudo-bus to constrain usb dma size

Qu Huang <[email protected]>
drm/amdgpu: Fix a null pointer access when the smc_rreg pointer is NULL

Jesse Zhang <[email protected]>
drm/amdkfd: Fix shift out-of-bounds issue

Ondrej Jirman <[email protected]>
drm/panel: st7703: Pick different reset sequence

Ma Ke <[email protected]>
drm/amdgpu/vkms: fix a possible null pointer dereference

Ma Ke <[email protected]>
drm/panel/panel-tpo-tpg110: fix a possible null pointer dereference

Ma Ke <[email protected]>
drm/panel: fix a possible null pointer dereference

Stanley.Yang <[email protected]>
drm/amdgpu: Fix potential null pointer derefernce

Mario Limonciello <[email protected]>
drm/amd: Fix UBSAN array-index-out-of-bounds for Polaris and Tonga

Mario Limonciello <[email protected]>
drm/amd: Fix UBSAN array-index-out-of-bounds for SMU7

Jani Nikula <[email protected]>
drm/msm/dp: skip validity check for DP CTS EDID checksum

Philipp Stanner <[email protected]>
drm: vmwgfx_surface.c: copy user-array safely

Philipp Stanner <[email protected]>
kernel: watch_queue: copy user-array safely

Philipp Stanner <[email protected]>
kernel: kexec: copy user-array safely

Philipp Stanner <[email protected]>
string.h: add array-wrappers for (v)memdup_user()

Wenjing Liu <[email protected]>
drm/amd/display: use full update for clip size increase of large plane source

Xiaogang Chen <[email protected]>
drm/amdkfd: Fix a race condition of vram buffer unref in svm code

baozhu.liu <[email protected]>
drm/komeda: drop all currently held locks if deadlock happens

Olli Asikainen <[email protected]>
platform/x86: thinkpad_acpi: Add battery quirk for Thinkpad X120e

ZhengHan Wang <[email protected]>
Bluetooth: Fix double free in hci_conn_cleanup

youwan Wang <[email protected]>
Bluetooth: btusb: Add date->evt_skb is NULL check

Douglas Anderson <[email protected]>
wifi: ath10k: Don't touch the CE interrupt registers after power up

Eric Dumazet <[email protected]>
net: annotate data-races around sk->sk_dst_pending_confirm

Eric Dumazet <[email protected]>
net: annotate data-races around sk->sk_tx_queue_mapping

Dmitry Antipov <[email protected]>
wifi: ath10k: fix clang-specific fortify warning

Dmitry Antipov <[email protected]>
wifi: ath9k: fix clang-specific fortify warnings

Kumar Kartikeya Dwivedi <[email protected]>
bpf: Detect IP == ksym.end as part of BPF program

Sieng-Piaw Liew <[email protected]>
atl1c: Work around the DMA RX overflow issue

Ping-Ke Shih <[email protected]>
wifi: mac80211: don't return unset power in ieee80211_get_tx_power()

Dmitry Antipov <[email protected]>
wifi: mac80211_hwsim: fix clang-specific fortify warning

Mike Rapoport (IBM) <[email protected]>
x86/mm: Drop the 4 MB restriction on minimal NUMA node memory size

Frederic Weisbecker <[email protected]>
workqueue: Provide one lock class key per work_on_cpu() callsite

Ronald Wahl <[email protected]>
clocksource/drivers/timer-atmel-tcb: Fix initialization on SAM9 hardware

Jacky Bai <[email protected]>
clocksource/drivers/timer-imx-gpt: Fix potential memory leak

Shuai Xue <[email protected]>
perf/core: Bail out early if the request AUX area is out of bound

John Stultz <[email protected]>
locking/ww_mutex/test: Fix potential workqueue corruption


-------------

Diffstat:

Makefile | 4 +-
arch/arm/include/asm/exception.h | 4 -
arch/arm64/Kconfig | 2 +
arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi | 46 ++--
arch/arm64/boot/dts/qcom/ipq6018.dtsi | 15 +-
arch/parisc/include/uapi/asm/pdc.h | 1 +
arch/parisc/kernel/entry.S | 7 +-
arch/parisc/kernel/head.S | 5 +-
arch/powerpc/perf/core-book3s.c | 5 +-
arch/powerpc/platforms/powernv/opal-prd.c | 17 +-
arch/powerpc/platforms/pseries/iommu.c | 19 +-
arch/riscv/kernel/probes/simulate-insn.c | 2 +-
arch/s390/mm/page-states.c | 25 ++-
arch/x86/crypto/sha1_ssse3_glue.c | 12 ++
arch/x86/crypto/sha256_ssse3_glue.c | 12 ++
arch/x86/include/asm/msr-index.h | 1 +
arch/x86/include/asm/numa.h | 7 -
arch/x86/kernel/cpu/hygon.c | 8 +-
arch/x86/kvm/hyperv.c | 10 +-
arch/x86/kvm/x86.c | 2 +
arch/x86/mm/numa.c | 7 -
crypto/pcrypt.c | 4 +
drivers/acpi/acpi_fpdt.c | 45 +++-
drivers/acpi/resource.c | 12 ++
drivers/atm/iphase.c | 20 +-
drivers/base/dd.c | 4 +-
drivers/base/regmap/regcache.c | 30 +++
drivers/block/virtio_blk.c | 4 +-
drivers/bluetooth/btusb.c | 15 ++
drivers/clk/qcom/gcc-ipq6018.c | 6 -
drivers/clk/qcom/gcc-ipq8074.c | 6 -
drivers/clk/socfpga/stratix10-clk.h | 4 +-
drivers/clocksource/timer-atmel-tcb.c | 1 +
drivers/clocksource/timer-imx-gpt.c | 18 +-
drivers/cpufreq/cpufreq_stats.c | 14 +-
drivers/dma/stm32-mdma.c | 4 +-
drivers/firmware/qcom_scm.c | 7 +
drivers/gpio/gpiolib.c | 13 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c | 5 +
drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c | 6 +
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 3 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 9 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c | 2 +
drivers/gpu/drm/amd/amdkfd/kfd_svm.c | 13 +-
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 13 +-
drivers/gpu/drm/amd/display/dc/core/dc.c | 12 +-
drivers/gpu/drm/amd/display/dc/core/dc_stream.c | 4 +-
drivers/gpu/drm/amd/display/dc/dc.h | 5 +
drivers/gpu/drm/amd/display/dmub/dmub_srv.h | 22 +-
drivers/gpu/drm/amd/display/dmub/src/dmub_srv.c | 32 ++-
drivers/gpu/drm/amd/include/pptable.h | 4 +-
drivers/gpu/drm/amd/pm/amdgpu_pm.c | 8 +-
.../gpu/drm/amd/pm/powerplay/hwmgr/pptable_v1_0.h | 16 +-
.../drm/arm/display/komeda/komeda_pipeline_state.c | 9 +-
drivers/gpu/drm/i915/gem/i915_gem_context.c | 1 +
drivers/gpu/drm/i915/i915_perf.c | 15 +-
drivers/gpu/drm/msm/dp/dp_panel.c | 21 +-
drivers/gpu/drm/panel/panel-arm-versatile.c | 2 +
drivers/gpu/drm/panel/panel-sitronix-st7703.c | 25 +--
drivers/gpu/drm/panel/panel-tpo-tpg110.c | 2 +
drivers/gpu/drm/qxl/qxl_display.c | 3 +
drivers/gpu/drm/vmwgfx/vmwgfx_surface.c | 4 +-
drivers/hid/hid-ids.h | 1 +
drivers/hid/hid-lenovo.c | 68 ++++--
drivers/hid/hid-quirks.c | 1 +
drivers/i2c/busses/i2c-designware-master.c | 19 +-
drivers/i2c/busses/i2c-i801.c | 19 +-
drivers/i2c/busses/i2c-pxa.c | 76 ++++++-
drivers/i2c/busses/i2c-sun6i-p2wi.c | 5 +
drivers/i2c/i2c-core.h | 2 +-
drivers/i2c/i2c-dev.c | 4 +-
drivers/i3c/master/i3c-master-cdns.c | 6 +-
drivers/i3c/master/mipi-i3c-hci/dat_v1.c | 29 ++-
drivers/i3c/master/mipi-i3c-hci/dma.c | 2 +-
drivers/i3c/master/svc-i3c-master.c | 45 +++-
drivers/infiniband/hw/hfi1/pcie.c | 9 +-
drivers/input/joystick/xpad.c | 1 +
drivers/mcb/mcb-core.c | 1 +
drivers/mcb/mcb-parse.c | 2 +-
drivers/media/cec/platform/Makefile | 2 +-
drivers/media/i2c/ccs/ccs-core.c | 2 +-
drivers/media/i2c/ccs/ccs-quirk.h | 4 +-
drivers/media/pci/cobalt/cobalt-driver.c | 11 +-
drivers/media/platform/cadence/cdns-csi2rx.c | 7 +-
drivers/media/platform/qcom/camss/camss-vfe-170.c | 22 +-
drivers/media/platform/qcom/camss/camss-vfe.c | 5 +-
drivers/media/platform/qcom/camss/camss.c | 12 +-
drivers/media/platform/qcom/venus/hfi_msgs.c | 2 +-
drivers/media/platform/qcom/venus/hfi_parser.c | 15 ++
drivers/media/platform/qcom/venus/hfi_venus.c | 10 +
drivers/media/rc/imon.c | 6 +
drivers/media/rc/ir-sharp-decoder.c | 8 +-
drivers/media/rc/lirc_dev.c | 6 +-
drivers/media/test-drivers/vivid/vivid-rds-gen.c | 2 +-
drivers/media/usb/gspca/cpia1.c | 3 +
drivers/misc/pci_endpoint_test.c | 4 +
drivers/mmc/host/meson-gx-mmc.c | 1 -
drivers/mmc/host/sdhci-pci-gli.c | 22 ++
drivers/mmc/host/sdhci_am654.c | 2 +-
drivers/mmc/host/vub300.c | 1 +
drivers/mtd/chips/cfi_cmdset_0001.c | 20 +-
drivers/net/bonding/bond_main.c | 6 +
drivers/net/dsa/lan9303_mdio.c | 4 +-
drivers/net/ethernet/atheros/atl1c/atl1c.h | 3 -
drivers/net/ethernet/atheros/atl1c/atl1c_main.c | 67 ++----
drivers/net/ethernet/cortina/gemini.c | 45 ++--
drivers/net/ethernet/cortina/gemini.h | 4 +-
drivers/net/ethernet/hisilicon/hns3/hclge_mbx.h | 47 ++++-
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 2 +-
.../ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 33 ++-
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c | 62 +++---
.../ethernet/hisilicon/hns3/hns3pf/hclge_trace.h | 2 +-
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c | 29 ++-
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h | 3 +-
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c | 87 +++++---
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_trace.h | 2 +-
.../net/ethernet/mellanox/mlx5/core/en/mod_hdr.c | 47 +++++
.../net/ethernet/mellanox/mlx5/core/en/mod_hdr.h | 13 ++
.../ethernet/mellanox/mlx5/core/en/reporter_rx.c | 4 +-
.../net/ethernet/mellanox/mlx5/core/en/tc/sample.c | 5 +-
drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c | 25 +--
.../net/ethernet/mellanox/mlx5/core/en/tc_tun.c | 30 ++-
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c | 12 +-
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 234 +++++++++------------
drivers/net/ethernet/mellanox/mlx5/core/en_tc.h | 5 -
.../ethernet/mellanox/mlx5/core/esw/indir_table.c | 5 +-
drivers/net/ethernet/realtek/r8169_main.c | 10 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 2 +-
drivers/net/ipvlan/ipvlan_core.c | 41 ++--
drivers/net/macvlan.c | 2 +-
drivers/net/phy/phylink.c | 1 +
drivers/net/ppp/ppp_synctty.c | 6 +-
drivers/net/wireless/ath/ath10k/debug.c | 2 +-
drivers/net/wireless/ath/ath10k/snoc.c | 18 +-
drivers/net/wireless/ath/ath11k/dp_rx.c | 8 +-
drivers/net/wireless/ath/ath11k/wmi.c | 12 +-
drivers/net/wireless/ath/ath9k/debug.c | 2 +-
drivers/net/wireless/ath/ath9k/htc_drv_debug.c | 2 +-
drivers/net/wireless/intel/iwlwifi/mvm/tx.c | 14 +-
drivers/net/wireless/mac80211_hwsim.c | 2 +-
drivers/net/wireless/microchip/wilc1000/wlan.c | 2 +-
drivers/parisc/power.c | 16 +-
drivers/pci/controller/dwc/pci-exynos.c | 4 +-
drivers/pci/controller/dwc/pci-keystone.c | 8 +-
drivers/pci/controller/dwc/pcie-tegra194.c | 9 +-
drivers/pci/pci-acpi.c | 2 +-
drivers/pci/pci-sysfs.c | 10 +-
drivers/pci/pci.c | 13 +-
drivers/pci/pcie/aspm.c | 2 +
drivers/pci/quirks.c | 35 ++-
drivers/platform/x86/thinkpad_acpi.c | 1 +
drivers/ptp/ptp_chardev.c | 3 +-
drivers/ptp/ptp_clock.c | 5 +-
drivers/ptp/ptp_private.h | 8 +-
drivers/ptp/ptp_sysfs.c | 3 +-
drivers/s390/crypto/ap_bus.c | 4 +
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 13 +-
drivers/scsi/ibmvscsi/ibmvfc.c | 124 ++++++++++-
drivers/scsi/libfc/fc_lport.c | 6 +
drivers/scsi/megaraid/megaraid_sas_base.c | 4 +-
drivers/scsi/mpt3sas/mpt3sas_base.c | 4 +-
drivers/scsi/qla2xxx/qla_os.c | 12 +-
drivers/tty/hvc/hvc_xen.c | 39 +++-
drivers/tty/serial/meson_uart.c | 25 ++-
drivers/tty/sysrq.c | 3 +-
drivers/tty/vcc.c | 16 +-
drivers/usb/gadget/function/f_ncm.c | 27 +--
drivers/usb/host/xhci-pci.c | 4 +-
drivers/watchdog/sbsa_gwdt.c | 4 +-
drivers/xen/events/events_base.c | 4 +-
fs/9p/xattr.c | 5 +-
fs/btrfs/delalloc-space.c | 3 -
fs/cifs/cifs_spnego.c | 4 +-
fs/cifs/smb2transport.c | 5 +-
fs/exfat/namei.c | 29 ++-
fs/ext4/acl.h | 5 +
fs/ext4/extents_status.c | 4 +-
fs/ext4/file.c | 153 ++++++--------
fs/ext4/resize.c | 23 +-
fs/f2fs/compress.c | 2 +-
fs/gfs2/inode.c | 14 +-
fs/gfs2/quota.c | 11 +
fs/gfs2/super.c | 2 +-
fs/jbd2/recovery.c | 8 +
fs/jfs/jfs_dmap.c | 23 +-
fs/jfs/jfs_imap.c | 5 +-
fs/ksmbd/smbacl.c | 29 ++-
fs/nfs/nfs4proc.c | 5 +-
fs/nfsd/nfs4state.c | 2 +-
fs/overlayfs/super.c | 2 +-
fs/proc/proc_sysctl.c | 1 -
fs/quota/dquot.c | 14 ++
fs/xfs/libxfs/xfs_dir2_leaf.c | 9 +-
fs/xfs/libxfs/xfs_inode_fork.c | 1 +
fs/xfs/libxfs/xfs_log_recover.h | 14 +-
fs/xfs/libxfs/xfs_trans_resv.c | 2 +-
fs/xfs/xfs_attr_inactive.c | 8 +-
fs/xfs/xfs_buf_item_recover.c | 66 ++++++
fs/xfs/xfs_error.c | 9 +-
fs/xfs/xfs_inode.c | 4 +-
fs/xfs/xfs_log.c | 9 +-
fs/xfs/xfs_log_priv.h | 3 -
fs/xfs/xfs_log_recover.c | 44 ++--
fs/xfs/xfs_qm.c | 7 +
fs/xfs/xfs_reflink.c | 197 ++++++++++++++---
fs/xfs/xfs_sysfs.h | 7 +-
include/linux/ethtool.h | 4 +-
include/linux/gpio/driver.h | 16 ++
include/linux/irq.h | 2 +
include/linux/lsm_hook_defs.h | 4 +-
include/linux/preempt.h | 36 +++-
include/linux/pwm.h | 4 +-
include/linux/string.h | 40 ++++
include/linux/sunrpc/clnt.h | 1 +
include/linux/trace_events.h | 4 +
include/linux/trace_recursion.h | 8 +-
include/linux/workqueue.h | 46 +++-
include/net/inet_connection_sock.h | 2 -
include/net/inet_hashtables.h | 42 +---
include/net/netfilter/nf_tables.h | 19 +-
include/net/sock.h | 26 ++-
include/sound/soc-card.h | 37 ++++
include/sound/soc.h | 11 +
io_uring/io_uring.c | 18 +-
kernel/audit_watch.c | 9 +-
kernel/bpf/core.c | 6 +-
kernel/bpf/verifier.c | 9 +-
kernel/debug/debug_core.c | 3 +
kernel/events/internal.h | 7 +-
kernel/events/ring_buffer.c | 6 +
kernel/irq/debugfs.c | 1 +
kernel/irq/generic-chip.c | 25 ++-
kernel/kexec.c | 2 +-
kernel/locking/test-ww_mutex.c | 20 +-
kernel/padata.c | 2 +-
kernel/power/snapshot.c | 16 +-
kernel/rcu/tree.c | 21 ++
kernel/rcu/tree.h | 4 +
kernel/rcu/tree_stall.h | 20 +-
kernel/reboot.c | 1 +
kernel/trace/ring_buffer.c | 9 +-
kernel/trace/trace.c | 15 ++
kernel/trace/trace.h | 3 +
kernel/trace/trace_events.c | 43 ++--
kernel/trace/trace_events_filter.c | 3 +
kernel/trace/trace_events_synth.c | 2 +-
kernel/watch_queue.c | 2 +-
kernel/watchdog.c | 7 +
kernel/workqueue.c | 20 +-
mm/cma.c | 2 +-
mm/memcontrol.c | 3 +-
mm/memory_hotplug.c | 2 +-
net/9p/client.c | 2 +-
net/9p/trans_fd.c | 13 +-
net/bluetooth/hci_conn.c | 6 +-
net/bluetooth/hci_sysfs.c | 23 +-
net/bridge/netfilter/nf_conntrack_bridge.c | 2 +-
net/bridge/netfilter/nft_meta_bridge.c | 2 +-
net/core/sock.c | 2 +-
net/dccp/proto.c | 1 -
net/ipv4/inet_diag.c | 5 +-
net/ipv4/inet_hashtables.c | 121 +++--------
net/ipv4/tcp.c | 1 -
net/ipv4/tcp_ipv4.c | 21 +-
net/ipv4/tcp_output.c | 2 +-
net/ipv6/inet6_hashtables.c | 5 +-
net/mac80211/cfg.c | 4 +
net/mptcp/mptcp_diag.c | 105 ++++++++-
net/ncsi/ncsi-aen.c | 5 -
net/netfilter/nf_tables_api.c | 53 +++--
net/netfilter/nft_byteorder.c | 6 +-
net/netfilter/nft_meta.c | 2 +-
net/netfilter/nft_osf.c | 2 +-
net/netfilter/nft_socket.c | 8 +-
net/netfilter/nft_tproxy.c | 6 +-
net/netfilter/nft_xfrm.c | 8 +-
net/sunrpc/clnt.c | 7 +-
net/sunrpc/rpcb_clnt.c | 4 +
net/sunrpc/xprtrdma/svc_rdma_recvfrom.c | 3 +-
net/tipc/netlink_compat.c | 1 +
net/unix/af_unix.c | 9 +-
scripts/gcc-plugins/randomize_layout_plugin.c | 11 +-
security/integrity/iint.c | 48 ++++-
security/integrity/ima/ima_api.c | 5 +
security/integrity/ima/ima_main.c | 16 +-
security/integrity/integrity.h | 2 +
security/keys/trusted-keys/trusted_core.c | 20 +-
sound/core/info.c | 21 +-
sound/hda/hdac_stream.c | 6 +-
sound/pci/hda/patch_realtek.c | 20 +-
sound/soc/codecs/lpass-wsa-macro.c | 3 +
sound/soc/ti/omap-mcbsp.c | 6 +-
tools/power/x86/turbostat/turbostat.c | 3 +-
tools/testing/selftests/efivarfs/create-read.c | 2 +
tools/testing/selftests/resctrl/cmt_test.c | 3 -
tools/testing/selftests/resctrl/mba_test.c | 2 +-
tools/testing/selftests/resctrl/mbm_test.c | 2 +-
298 files changed, 2886 insertions(+), 1445 deletions(-)



2023-11-24 19:20:22

by Greg KH

[permalink] [raw]
Subject: [PATCH 5.15 256/297] sbsa_gwdt: Calculate timeout with 64-bit math

5.15-stable review patch. If anyone has any objections, please let me know.

------------------

From: Darren Hart <[email protected]>

commit 5d6aa89bba5bd6af2580f872b57f438dab883738 upstream.

Commit abd3ac7902fb ("watchdog: sbsa: Support architecture version 1")
introduced new timer math for watchdog revision 1 with the 48 bit offset
register.

The gwdt->clk and timeout are u32, but the argument being calculated is
u64. Without a cast, the compiler performs u32 operations, truncating
intermediate steps, resulting in incorrect values.

A watchdog revision 1 implementation with a gwdt->clk of 1GHz and a
timeout of 600s writes 3647256576 to the one shot watchdog instead of
300000000000, resulting in the watchdog firing in 3.6s instead of 600s.

Force u64 math by casting the first argument (gwdt->clk) as a u64. Make
the order of operations explicit with parenthesis.

Fixes: abd3ac7902fb ("watchdog: sbsa: Support architecture version 1")
Reported-by: Vanshidhar Konda <[email protected]>
Signed-off-by: Darren Hart <[email protected]>
Cc: Wim Van Sebroeck <[email protected]>
Cc: Guenter Roeck <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: <[email protected]> # 5.14.x
Reviewed-by: Guenter Roeck <[email protected]>
Link: https://lore.kernel.org/r/7d1713c5ffab19b0f3de796d82df19e8b1f340de.1695286124.git.darren@os.amperecomputing.com
Signed-off-by: Guenter Roeck <[email protected]>
Signed-off-by: Wim Van Sebroeck <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
drivers/watchdog/sbsa_gwdt.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

--- a/drivers/watchdog/sbsa_gwdt.c
+++ b/drivers/watchdog/sbsa_gwdt.c
@@ -153,14 +153,14 @@ static int sbsa_gwdt_set_timeout(struct
timeout = clamp_t(unsigned int, timeout, 1, wdd->max_hw_heartbeat_ms / 1000);

if (action)
- sbsa_gwdt_reg_write(gwdt->clk * timeout, gwdt);
+ sbsa_gwdt_reg_write((u64)gwdt->clk * timeout, gwdt);
else
/*
* In the single stage mode, The first signal (WS0) is ignored,
* the timeout is (WOR * 2), so the WOR should be configured
* to half value of timeout.
*/
- sbsa_gwdt_reg_write(gwdt->clk / 2 * timeout, gwdt);
+ sbsa_gwdt_reg_write(((u64)gwdt->clk / 2) * timeout, gwdt);

return 0;
}


2023-11-24 23:22:19

by Daniel Díaz

[permalink] [raw]
Subject: Re: [PATCH 5.15 000/297] 5.15.140-rc1 review

Hello!

On 24/11/23 11:50 a. m., Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 5.15.140 release.
> There are 297 patches in this series, all will be posted as a response
> to this one. If anyone has any issues with these being applied, please
> let me know.
>
> Responses should be made by Sun, 26 Nov 2023 17:19:17 +0000.
> Anything received after that time might be too late.
>
> The whole patch series can be found in one patch at:
> https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.15.140-rc1.gz
> or in the git tree and branch at:
> git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.15.y
> and the diffstat can be found below.
>
> thanks,
>
> greg k-h

There are problems with PA-RISC:

-----8<-----
/builds/linux/drivers/parisc/power.c:201:34: warning: 'struct sys_off_data' declared inside parameter list will not be visible outside of this definition or declaration
201 | static int qemu_power_off(struct sys_off_data *data)
| ^~~~~~~~~~~~
/builds/linux/drivers/parisc/power.c: In function 'qemu_power_off':
/builds/linux/drivers/parisc/power.c:204:43: error: invalid use of undefined type 'struct sys_off_data'
204 | gsc_writel(0, (unsigned long) data->cb_data);
| ^~
/builds/linux/drivers/parisc/power.c: In function 'power_init':
/builds/linux/drivers/parisc/power.c:239:17: error: implicit declaration of function 'register_sys_off_handler'; did you mean 'register_restart_handler'? [-Werror=implicit-function-declaration]
239 | register_sys_off_handler(SYS_OFF_MODE_POWER_OFF, SYS_OFF_PRIO_DEFAULT,
| ^~~~~~~~~~~~~~~~~~~~~~~~
| register_restart_handler
/builds/linux/drivers/parisc/power.c:239:42: error: 'SYS_OFF_MODE_POWER_OFF' undeclared (first use in this function); did you mean 'SYSTEM_POWER_OFF'?
239 | register_sys_off_handler(SYS_OFF_MODE_POWER_OFF, SYS_OFF_PRIO_DEFAULT,
| ^~~~~~~~~~~~~~~~~~~~~~
| SYSTEM_POWER_OFF
/builds/linux/drivers/parisc/power.c:239:42: note: each undeclared identifier is reported only once for each function it appears in
/builds/linux/drivers/parisc/power.c:239:66: error: 'SYS_OFF_PRIO_DEFAULT' undeclared (first use in this function)
239 | register_sys_off_handler(SYS_OFF_MODE_POWER_OFF, SYS_OFF_PRIO_DEFAULT,
| ^~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[3]: *** [/builds/linux/scripts/Makefile.build:289: drivers/parisc/power.o] Error 1
----->8-----

That's allnoconfig with GCC 11; defconfig and tinyconfig fail just like that.

Bisection points to:

commit 065a7d0b92c0f1ef4160e2129d835eb6093cc675
Author: Helge Deller <[email protected]>
Date: Tue Oct 17 22:19:53 2023 +0200

parisc/power: Add power soft-off when running on qemu

commit d0c219472980d15f5cbc5c8aec736848bda3f235 upstream.


Then there's this failure on System/390:

-----8<-----
/builds/linux/arch/s390/mm/page-states.c: In function 'mark_kernel_pgd':
/builds/linux/arch/s390/mm/page-states.c:175:38: error: request for member 'val' in something not a structure or union
max_addr = (S390_lowcore.kernel_asce.val & _ASCE_TYPE_MASK) >> 2;
^
In file included from /builds/linux/arch/s390/include/asm/page.h:186,
from /builds/linux/arch/s390/include/asm/thread_info.h:26,
from /builds/linux/include/linux/thread_info.h:60,
from /builds/linux/arch/s390/include/asm/preempt.h:6,
from /builds/linux/include/linux/preempt.h:78,
from /builds/linux/include/linux/spinlock.h:55,
from /builds/linux/include/linux/mmzone.h:8,
from /builds/linux/include/linux/gfp.h:6,
from /builds/linux/include/linux/mm.h:10,
from /builds/linux/arch/s390/mm/page-states.c:13:
/builds/linux/arch/s390/mm/page-states.c: In function 'cmma_init_nodat':
/builds/linux/arch/s390/mm/page-states.c:204:23: error: 'invalid_pg_dir' undeclared (first use in this function); did you mean 'is_valid_bugaddr'?
page = virt_to_page(&invalid_pg_dir);
^~~~~~~~~~~~~~
/builds/linux/include/asm-generic/memory_model.h:25:40: note: in definition of macro '__pfn_to_page'
#define __pfn_to_page(pfn) (vmemmap + (pfn))
^~~
/builds/linux/arch/s390/include/asm/page.h:176:29: note: in expansion of macro 'phys_to_pfn'
#define virt_to_pfn(kaddr) (phys_to_pfn(__pa(kaddr)))
^~~~~~~~~~~
/builds/linux/arch/s390/include/asm/page.h:176:41: note: in expansion of macro '__pa'
#define virt_to_pfn(kaddr) (phys_to_pfn(__pa(kaddr)))
^~~~
/builds/linux/arch/s390/include/asm/page.h:179:41: note: in expansion of macro 'virt_to_pfn'
#define virt_to_page(kaddr) pfn_to_page(virt_to_pfn(kaddr))
^~~~~~~~~~~
/builds/linux/arch/s390/mm/page-states.c:204:9: note: in expansion of macro 'virt_to_page'
page = virt_to_page(&invalid_pg_dir);
^~~~~~~~~~~~
/builds/linux/arch/s390/mm/page-states.c:204:23: note: each undeclared identifier is reported only once for each function it appears in
page = virt_to_page(&invalid_pg_dir);
^~~~~~~~~~~~~~
/builds/linux/include/asm-generic/memory_model.h:25:40: note: in definition of macro '__pfn_to_page'
#define __pfn_to_page(pfn) (vmemmap + (pfn))
^~~
/builds/linux/arch/s390/include/asm/page.h:176:29: note: in expansion of macro 'phys_to_pfn'
#define virt_to_pfn(kaddr) (phys_to_pfn(__pa(kaddr)))
^~~~~~~~~~~
/builds/linux/arch/s390/include/asm/page.h:176:41: note: in expansion of macro '__pa'
#define virt_to_pfn(kaddr) (phys_to_pfn(__pa(kaddr)))
^~~~
/builds/linux/arch/s390/include/asm/page.h:179:41: note: in expansion of macro 'virt_to_pfn'
#define virt_to_page(kaddr) pfn_to_page(virt_to_pfn(kaddr))
^~~~~~~~~~~
/builds/linux/arch/s390/mm/page-states.c:204:9: note: in expansion of macro 'virt_to_page'
page = virt_to_page(&invalid_pg_dir);
^~~~~~~~~~~~
make[3]: *** [/builds/linux/scripts/Makefile.build:289: arch/s390/mm/page-states.o] Error 1
----->8-----

Bisection in this case points to:

commit d247caa47712c9cc36f25ec744f3b5dba90c3334
Author: Heiko Carstens <[email protected]>
Date: Tue Oct 17 21:07:03 2023 +0200

s390/cmma: fix initial kernel address space page table walk

commit 16ba44826a04834d3eeeda4b731c2ea3481062b7 upstream.


Reproducers:

tuxmake --runtime podman --target-arch parisc --toolchain gcc-11 --kconfig allnoconfig

and

tuxmake --runtime podman --target-arch s390 --toolchain gcc-8 --kconfig allnoconfig


Reported-by: Linux Kernel Functional Testing <[email protected]>

Greetings!

Daniel Díaz
[email protected]

2023-11-25 05:58:09

by Daniel Díaz

[permalink] [raw]
Subject: Re: [PATCH 5.15 000/297] 5.15.140-rc1 review

Hello!

On 24/11/23 11:50 a. m., Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 5.15.140 release.
> There are 297 patches in this series, all will be posted as a response
> to this one. If anyone has any issues with these being applied, please
> let me know.
>
> Responses should be made by Sun, 26 Nov 2023 17:19:17 +0000.
> Anything received after that time might be too late.
>
> The whole patch series can be found in one patch at:
> https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.15.140-rc1.gz
> or in the git tree and branch at:
> git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.15.y
> and the diffstat can be found below.
>
> thanks,
>
> greg k-h

We are noticing a regression with ltp-syscalls' preadv03:

-----8<-----
preadv03 preadv03
preadv03_64 preadv03_64
preadv03.c:102: TINFO: Using block size 512
preadv03.c:87: TPASS: preadv(O_DIRECT) read 512 bytes successfully with content 'a' expectedly
preadv03.c:87: TPASS: preadv(O_DIRECT) read 512 bytes successfully with content 'a' expectedly
preadv03.c:87: TPASS: preadv(O_DIRECT) read 512 bytes successfully with content 'b' expectedly
preadv03.c:102: TINFO: Using block size 512
preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
preadv03.c:66: TFAIL: preadv(O_DIRECT) read 0 bytes, expected 512
preadv03.c:102: TINFO: Using block size 512
preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
preadv03.c:66: TFAIL: preadv(O_DIRECT) read 0 bytes, expected 512
preadv03.c:102: TINFO: Using block size 512
preadv03.c:87: TPASS: preadv(O_DIRECT) read 512 bytes successfully with content 'a' expectedly
preadv03.c:87: TPASS: preadv(O_DIRECT) read 512 bytes successfully with content 'a' expectedly
preadv03.c:87: TPASS: preadv(O_DIRECT) read 512 bytes successfully with content 'b' expectedly
preadv03.c:102: TINFO: Using block size 512
preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
preadv03.c:66: TFAIL: preadv(O_DIRECT) read 0 bytes, expected 512
preadv03.c:102: TINFO: Using block size 512
preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
preadv03.c:66: TFAIL: preadv(O_DIRECT) read 0 bytes, expected 512
----->8-----

This is seen in the following environments:
* dragonboard-845c
* juno-64k_page_size
* qemu-arm64
* qemu-armv7
* qemu-i386
* qemu-x86_64
* x86_64-clang

and on the following RC's:
* v5.10.202-rc1
* v5.15.140-rc1
* v6.1.64-rc1

(Note that the list might not be complete, because some branches failed to execute completely due to build issues reported elsewhere.)

Bisection in linux-5.15.y pointed to:

commit db85c7fff122c14bc5755e47b51fbfafae660235
Author: Jan Kara <[email protected]>
Date: Fri Oct 13 14:13:50 2023 +0200

ext4: properly sync file size update after O_SYNC direct IO

commit 91562895f8030cb9a0470b1db49de79346a69f91 upstream.


Reverting that commit made the test pass.

Reported-by: Linux Kernel Functional Testing <[email protected]>

Greetings!

Daniel Díaz
[email protected]

2023-11-25 07:37:02

by Helge Deller

[permalink] [raw]
Subject: Re: [PATCH 5.15 000/297] 5.15.140-rc1 review

On 11/25/23 00:21, Daniel Díaz wrote:
> On 24/11/23 11:50 a. m., Greg Kroah-Hartman wrote:
>> This is the start of the stable review cycle for the 5.15.140 release.
> ...
> There are problems with PA-RISC:
>
> -----8<-----
>   /builds/linux/drivers/parisc/power.c:201:34: warning: 'struct sys_off_data' declared inside parameter list will not be visible outside of this definition or declaration
> ...
>
> Bisection points to:
>
>   commit 065a7d0b92c0f1ef4160e2129d835eb6093cc675
>   Author: Helge Deller <[email protected]>
>   Date:   Tue Oct 17 22:19:53 2023 +0200
>
>       parisc/power: Add power soft-off when running on qemu
>       commit d0c219472980d15f5cbc5c8aec736848bda3f235 upstream.

Right.

I already asked Greg to drop two patches from all queues where kernel < 6.0:

- parisc-power-add-power-soft-off-when-running-on-qemu.patch
- parisc-power-fix-power-soft-off-when-running-on-qemu.patch

Helge

2023-11-25 15:53:45

by Greg KH

[permalink] [raw]
Subject: Re: [PATCH 5.15 000/297] 5.15.140-rc1 review

On Fri, Nov 24, 2023 at 11:45:09PM -0600, Daniel D?az wrote:
> Hello!
>
> On 24/11/23 11:50 a.?m., Greg Kroah-Hartman wrote:
> > This is the start of the stable review cycle for the 5.15.140 release.
> > There are 297 patches in this series, all will be posted as a response
> > to this one. If anyone has any issues with these being applied, please
> > let me know.
> >
> > Responses should be made by Sun, 26 Nov 2023 17:19:17 +0000.
> > Anything received after that time might be too late.
> >
> > The whole patch series can be found in one patch at:
> > https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.15.140-rc1.gz
> > or in the git tree and branch at:
> > git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.15.y
> > and the diffstat can be found below.
> >
> > thanks,
> >
> > greg k-h
>
> We are noticing a regression with ltp-syscalls' preadv03:
>
> -----8<-----
> preadv03 preadv03
> preadv03_64 preadv03_64
> preadv03.c:102: TINFO: Using block size 512
> preadv03.c:87: TPASS: preadv(O_DIRECT) read 512 bytes successfully with content 'a' expectedly
> preadv03.c:87: TPASS: preadv(O_DIRECT) read 512 bytes successfully with content 'a' expectedly
> preadv03.c:87: TPASS: preadv(O_DIRECT) read 512 bytes successfully with content 'b' expectedly
> preadv03.c:102: TINFO: Using block size 512
> preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
> preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
> preadv03.c:66: TFAIL: preadv(O_DIRECT) read 0 bytes, expected 512
> preadv03.c:102: TINFO: Using block size 512
> preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
> preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
> preadv03.c:66: TFAIL: preadv(O_DIRECT) read 0 bytes, expected 512
> preadv03.c:102: TINFO: Using block size 512
> preadv03.c:87: TPASS: preadv(O_DIRECT) read 512 bytes successfully with content 'a' expectedly
> preadv03.c:87: TPASS: preadv(O_DIRECT) read 512 bytes successfully with content 'a' expectedly
> preadv03.c:87: TPASS: preadv(O_DIRECT) read 512 bytes successfully with content 'b' expectedly
> preadv03.c:102: TINFO: Using block size 512
> preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
> preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
> preadv03.c:66: TFAIL: preadv(O_DIRECT) read 0 bytes, expected 512
> preadv03.c:102: TINFO: Using block size 512
> preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
> preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
> preadv03.c:66: TFAIL: preadv(O_DIRECT) read 0 bytes, expected 512
> ----->8-----
>
> This is seen in the following environments:
> * dragonboard-845c
> * juno-64k_page_size
> * qemu-arm64
> * qemu-armv7
> * qemu-i386
> * qemu-x86_64
> * x86_64-clang
>
> and on the following RC's:
> * v5.10.202-rc1
> * v5.15.140-rc1
> * v6.1.64-rc1
>
> (Note that the list might not be complete, because some branches failed to execute completely due to build issues reported elsewhere.)
>
> Bisection in linux-5.15.y pointed to:
>
> commit db85c7fff122c14bc5755e47b51fbfafae660235
> Author: Jan Kara <[email protected]>
> Date: Fri Oct 13 14:13:50 2023 +0200
>
> ext4: properly sync file size update after O_SYNC direct IO
> commit 91562895f8030cb9a0470b1db49de79346a69f91 upstream.
>
>
> Reverting that commit made the test pass.

Odd. I'll go drop that from 5.10.y and 5.15.y now, thanks.

greg k-h

2023-11-27 15:56:21

by Jan Kara

[permalink] [raw]
Subject: Re: [PATCH 5.15 000/297] 5.15.140-rc1 review

Hello!

On Fri 24-11-23 23:45:09, Daniel D?az wrote:
> On 24/11/23 11:50 a.?m., Greg Kroah-Hartman wrote:
> > This is the start of the stable review cycle for the 5.15.140 release.
> > There are 297 patches in this series, all will be posted as a response
> > to this one. If anyone has any issues with these being applied, please
> > let me know.
> >
> > Responses should be made by Sun, 26 Nov 2023 17:19:17 +0000.
> > Anything received after that time might be too late.
> >
> > The whole patch series can be found in one patch at:
> > https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.15.140-rc1.gz
> > or in the git tree and branch at:
> > git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.15.y
> > and the diffstat can be found below.
> >
> > thanks,
> >
> > greg k-h
>
> We are noticing a regression with ltp-syscalls' preadv03:

Thanks for report!

> -----8<-----
> preadv03 preadv03
> preadv03_64 preadv03_64
> preadv03.c:102: TINFO: Using block size 512
> preadv03.c:87: TPASS: preadv(O_DIRECT) read 512 bytes successfully with content 'a' expectedly
> preadv03.c:87: TPASS: preadv(O_DIRECT) read 512 bytes successfully with content 'a' expectedly
> preadv03.c:87: TPASS: preadv(O_DIRECT) read 512 bytes successfully with content 'b' expectedly
> preadv03.c:102: TINFO: Using block size 512
> preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
> preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
> preadv03.c:66: TFAIL: preadv(O_DIRECT) read 0 bytes, expected 512
> preadv03.c:102: TINFO: Using block size 512
> preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
> preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
> preadv03.c:66: TFAIL: preadv(O_DIRECT) read 0 bytes, expected 512
> preadv03.c:102: TINFO: Using block size 512
> preadv03.c:87: TPASS: preadv(O_DIRECT) read 512 bytes successfully with content 'a' expectedly
> preadv03.c:87: TPASS: preadv(O_DIRECT) read 512 bytes successfully with content 'a' expectedly
> preadv03.c:87: TPASS: preadv(O_DIRECT) read 512 bytes successfully with content 'b' expectedly
> preadv03.c:102: TINFO: Using block size 512
> preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
> preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
> preadv03.c:66: TFAIL: preadv(O_DIRECT) read 0 bytes, expected 512
> preadv03.c:102: TINFO: Using block size 512
> preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
> preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
> preadv03.c:66: TFAIL: preadv(O_DIRECT) read 0 bytes, expected 512
> ----->8-----
>
> This is seen in the following environments:
> * dragonboard-845c
> * juno-64k_page_size
> * qemu-arm64
> * qemu-armv7
> * qemu-i386
> * qemu-x86_64
> * x86_64-clang
>
> and on the following RC's:
> * v5.10.202-rc1
> * v5.15.140-rc1
> * v6.1.64-rc1

Hum, even in 6.1? That's odd. Can you please test whether current upstream
vanilla kernel works for you with this test? Thanks!

Honza
--
Jan Kara <[email protected]>
SUSE Labs, CR

2023-11-27 17:32:31

by Daniel Díaz

[permalink] [raw]
Subject: Re: [PATCH 5.15 000/297] 5.15.140-rc1 review

Hello!

On Mon, 27 Nov 2023 at 09:56, Jan Kara <[email protected]> wrote:
> Hello!
>
> On Fri 24-11-23 23:45:09, Daniel Díaz wrote:
> > On 24/11/23 11:50 a. m., Greg Kroah-Hartman wrote:
> > > This is the start of the stable review cycle for the 5.15.140 release.
> > > There are 297 patches in this series, all will be posted as a response
> > > to this one. If anyone has any issues with these being applied, please
> > > let me know.
> > >
> > > Responses should be made by Sun, 26 Nov 2023 17:19:17 +0000.
> > > Anything received after that time might be too late.
> > >
> > > The whole patch series can be found in one patch at:
> > > https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.15.140-rc1.gz
> > > or in the git tree and branch at:
> > > git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.15.y
> > > and the diffstat can be found below.
> > >
> > > thanks,
> > >
> > > greg k-h
> >
> > We are noticing a regression with ltp-syscalls' preadv03:
>
> Thanks for report!
>
> > -----8<-----
> > preadv03 preadv03
> > preadv03_64 preadv03_64
> > preadv03.c:102: TINFO: Using block size 512
> > preadv03.c:87: TPASS: preadv(O_DIRECT) read 512 bytes successfully with content 'a' expectedly
> > preadv03.c:87: TPASS: preadv(O_DIRECT) read 512 bytes successfully with content 'a' expectedly
> > preadv03.c:87: TPASS: preadv(O_DIRECT) read 512 bytes successfully with content 'b' expectedly
> > preadv03.c:102: TINFO: Using block size 512
> > preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
> > preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
> > preadv03.c:66: TFAIL: preadv(O_DIRECT) read 0 bytes, expected 512
> > preadv03.c:102: TINFO: Using block size 512
> > preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
> > preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
> > preadv03.c:66: TFAIL: preadv(O_DIRECT) read 0 bytes, expected 512
> > preadv03.c:102: TINFO: Using block size 512
> > preadv03.c:87: TPASS: preadv(O_DIRECT) read 512 bytes successfully with content 'a' expectedly
> > preadv03.c:87: TPASS: preadv(O_DIRECT) read 512 bytes successfully with content 'a' expectedly
> > preadv03.c:87: TPASS: preadv(O_DIRECT) read 512 bytes successfully with content 'b' expectedly
> > preadv03.c:102: TINFO: Using block size 512
> > preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
> > preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
> > preadv03.c:66: TFAIL: preadv(O_DIRECT) read 0 bytes, expected 512
> > preadv03.c:102: TINFO: Using block size 512
> > preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
> > preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
> > preadv03.c:66: TFAIL: preadv(O_DIRECT) read 0 bytes, expected 512
> > ----->8-----
> >
> > This is seen in the following environments:
> > * dragonboard-845c
> > * juno-64k_page_size
> > * qemu-arm64
> > * qemu-armv7
> > * qemu-i386
> > * qemu-x86_64
> > * x86_64-clang
> >
> > and on the following RC's:
> > * v5.10.202-rc1
> > * v5.15.140-rc1
> > * v6.1.64-rc1
>
> Hum, even in 6.1? That's odd. Can you please test whether current upstream
> vanilla kernel works for you with this test? Thanks!

Yes, this is working for us on mainline and next:
https://qa-reports.linaro.org/lkft/linux-mainline-master/tests/ltp-syscalls/preadv03
https://qa-reports.linaro.org/lkft/linux-next-master/tests/ltp-syscalls/preadv03
c.fr. 6.1:
https://qa-reports.linaro.org/lkft/linux-stable-rc-linux-6.1.y/tests/ltp-syscalls/preadv03

Greetings!

Daniel Díaz
[email protected]

2023-12-05 12:21:42

by Jan Kara

[permalink] [raw]
Subject: ext4 data corruption in 6.1 stable tree (was Re: [PATCH 5.15 000/297] 5.15.140-rc1 review)

Hello!

On Mon 27-11-23 11:32:12, Daniel D?az wrote:
> On Mon, 27 Nov 2023 at 09:56, Jan Kara <[email protected]> wrote:
> > On Fri 24-11-23 23:45:09, Daniel D?az wrote:
> > > On 24/11/23 11:50 a. m., Greg Kroah-Hartman wrote:
> > > > This is the start of the stable review cycle for the 5.15.140 release.
> > > > There are 297 patches in this series, all will be posted as a response
> > > > to this one. If anyone has any issues with these being applied, please
> > > > let me know.
> > > >
> > > > Responses should be made by Sun, 26 Nov 2023 17:19:17 +0000.
> > > > Anything received after that time might be too late.
> > > >
> > > > The whole patch series can be found in one patch at:
> > > > https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.15.140-rc1.gz
> > > > or in the git tree and branch at:
> > > > git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.15.y
> > > > and the diffstat can be found below.
> > > >
> > > > thanks,
> > > >
> > > > greg k-h
> > >
> > > We are noticing a regression with ltp-syscalls' preadv03:
> >
> > Thanks for report!
> >
> > > -----8<-----
> > > preadv03 preadv03
> > > preadv03_64 preadv03_64
> > > preadv03.c:102: TINFO: Using block size 512
> > > preadv03.c:87: TPASS: preadv(O_DIRECT) read 512 bytes successfully with content 'a' expectedly
> > > preadv03.c:87: TPASS: preadv(O_DIRECT) read 512 bytes successfully with content 'a' expectedly
> > > preadv03.c:87: TPASS: preadv(O_DIRECT) read 512 bytes successfully with content 'b' expectedly
> > > preadv03.c:102: TINFO: Using block size 512
> > > preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
> > > preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
> > > preadv03.c:66: TFAIL: preadv(O_DIRECT) read 0 bytes, expected 512
> > > preadv03.c:102: TINFO: Using block size 512
> > > preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
> > > preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
> > > preadv03.c:66: TFAIL: preadv(O_DIRECT) read 0 bytes, expected 512
> > > preadv03.c:102: TINFO: Using block size 512
> > > preadv03.c:87: TPASS: preadv(O_DIRECT) read 512 bytes successfully with content 'a' expectedly
> > > preadv03.c:87: TPASS: preadv(O_DIRECT) read 512 bytes successfully with content 'a' expectedly
> > > preadv03.c:87: TPASS: preadv(O_DIRECT) read 512 bytes successfully with content 'b' expectedly
> > > preadv03.c:102: TINFO: Using block size 512
> > > preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
> > > preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
> > > preadv03.c:66: TFAIL: preadv(O_DIRECT) read 0 bytes, expected 512
> > > preadv03.c:102: TINFO: Using block size 512
> > > preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
> > > preadv03.c:77: TFAIL: Buffer wrong at 0 have 62 expected 61
> > > preadv03.c:66: TFAIL: preadv(O_DIRECT) read 0 bytes, expected 512
> > > ----->8-----
> > >
> > > This is seen in the following environments:
> > > * dragonboard-845c
> > > * juno-64k_page_size
> > > * qemu-arm64
> > > * qemu-armv7
> > > * qemu-i386
> > > * qemu-x86_64
> > > * x86_64-clang
> > >
> > > and on the following RC's:
> > > * v5.10.202-rc1
> > > * v5.15.140-rc1
> > > * v6.1.64-rc1
> >
> > Hum, even in 6.1? That's odd. Can you please test whether current upstream
> > vanilla kernel works for you with this test? Thanks!
>
> Yes, this is working for us on mainline and next:
> https://qa-reports.linaro.org/lkft/linux-mainline-master/tests/ltp-syscalls/preadv03
> https://qa-reports.linaro.org/lkft/linux-next-master/tests/ltp-syscalls/preadv03
> c.fr. 6.1:
> https://qa-reports.linaro.org/lkft/linux-stable-rc-linux-6.1.y/tests/ltp-syscalls/preadv03
>
> Greetings!

So I've got back to this and the failure is a subtle interaction between
iomap code and ext4 code. In particular that fact that commit 936e114a245b6
("iomap: update ki_pos a little later in iomap_dio_complete") is not in
stable causes that file position is not updated after direct IO write and
thus we direct IO writes are ending in wrong locations effectively
corrupting data. The subtle detail is that before this commit if ->end_io
handler returns non-zero value (which the new ext4 ->end_io handler does),
file pos doesn't get updated, after this commit it doesn't get updated only
if the return value is < 0.

The commit got merged in 6.5-rc1 so all stable kernels that have
91562895f803 ("ext4: properly sync file size update after O_SYNC direct
IO") before 6.5 are corrupting data - I've noticed at least 6.1 is still
carrying the problematic commit. Greg, please take out the commit from all
stable kernels before 6.5 as soon as possible, we'll figure out proper
backport once user data are not being corrupted anymore. Thanks!

Honza
--
Jan Kara <[email protected]>
SUSE Labs, CR