linux-stable/drivers
Jan Kundrát 59b3583da1 serial: max310x: fix IO data corruption in batched operations
[ Upstream commit 3f42b142ea ]

After upgrading from 5.16 to 6.1, our board with a MAX14830 started
producing lots of garbage data over UART. Bisection pointed out commit
285e76fc04 as the culprit. That patch tried to replace hand-written
code which I added in 2b4bac48c1 ("serial: max310x: Use batched reads
when reasonably safe") with the generic regmap infrastructure for
batched operations.

Unfortunately, the `regmap_raw_read` and `regmap_raw_write` which were
used are actually functions which perform IO over *multiple* registers.
That's not what is needed for accessing these Tx/Rx FIFOs; the
appropriate functions are the `_noinc_` versions, not the `_raw_` ones.

Fix this regression by using `regmap_noinc_read()` and
`regmap_noinc_write()` along with the necessary `regmap_config` setup;
with this patch in place, our board communicates happily again. Since
our board uses SPI for talking to this chip, the I2C part is completely
untested.

Fixes: 285e76fc04 ("serial: max310x: use regmap methods for SPI batch operations")
Cc: stable@vger.kernel.org
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Jan Kundrát <jan.kundrat@cesnet.cz>
Link: https://lore.kernel.org/r/79db8e82aadb0e174bc82b9996423c3503c8fb37.1680732084.git.jan.kundrat@cesnet.cz
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-03-15 10:48:20 -04:00
..
accessibility
acpi ACPI: extlog: fix NULL pointer dereference check 2024-02-23 08:24:54 +01:00
amba amba: bus: fix refcount leak 2023-09-23 10:59:52 +02:00
android binder: signal epoll threads of self-work 2024-02-23 08:25:11 +01:00
ata ahci: add 43-bit DMA address quirk for ASMedia ASM1061 controllers 2024-03-01 13:13:33 +01:00
atm atm: idt77252: fix a memleak in open_card_ubr0 2024-02-23 08:25:06 +01:00
auxdisplay
base regmap: Add bulk read/write callbacks into regmap_config 2024-03-15 10:48:20 -04:00
bcma
block virtio-blk: Ensure no requests in virtqueues before deleting vqs. 2024-03-01 13:13:34 +01:00
bluetooth Bluetooth: btmtkuart: fix recv_buf() return value 2024-01-25 14:34:26 -08:00
bus bus: moxtet: Add spi device table 2024-02-23 08:25:13 +01:00
cdrom
char hwrng: core - Fix page fault dead lock on mmap-ed hwrng 2024-02-23 08:24:48 +01:00
clk clk: mmp: pxa168: Fix memory leak in pxa168_clk_init() 2024-02-23 08:25:01 +01:00
clocksource clocksource/drivers/timer-atmel-tcb: Fix initialization on SAM9 hardware 2023-11-28 16:50:13 +00:00
connector
counter
cpufreq cpufreq: imx6q: Don't disable 792 Mhz OPP unnecessarily 2023-12-08 08:44:28 +01:00
cpuidle
crypto crypto: stm32/crc32 - fix parsing list of devices 2024-02-23 08:24:55 +01:00
dax
dca
devfreq PM / devfreq: Fix leak in devfreq_dev_release() 2023-09-23 10:59:54 +02:00
dio
dma dmaengine: fsl-qdma: init irq after reg initialization 2024-03-06 14:36:09 +00:00
dma-buf dma-buf/sw_sync: Avoid recursive lock during fence signal 2023-08-30 16:27:28 +02:00
edac EDAC/thunderx: Fix possible out-of-bounds string access 2024-01-25 14:34:21 -08:00
eisa
extcon extcon: Fix kernel doc of property capability fields to avoid warnings 2023-07-27 08:37:20 +02:00
firewire firewire: core: send bus reset promptly on gap count error 2024-03-01 13:13:34 +01:00
firmware efi/capsule-loader: fix incorrect allocation size 2024-03-06 14:36:09 +00:00
fpga
fsi fsi: master-ast-cf: Add MODULE_FIRMWARE macro 2023-09-23 10:59:37 +02:00
gnss
gpio gpio: 74x164: Enable output pins after registers are reset 2024-03-06 14:36:10 +00:00
gpu drm/syncobj: call drm_syncobj_fence_add_wait when WAIT_AVAILABLE flag is set 2024-03-01 13:13:38 +01:00
greybus
hid HID: wacom: Do not register input devices until after hid_hw_start 2024-02-23 08:25:10 +01:00
hsi
hv Drivers: hv: vmbus: Fix vmbus_wait_for_unload() to scan present CPUs 2023-06-28 10:18:36 +02:00
hwmon hwmon: (coretemp) Enlarge per package core count limit 2024-03-01 13:13:34 +01:00
hwspinlock
hwtracing coresight: etm4x: Fix width of CCITMIN field 2024-01-25 14:34:21 -08:00
i2c i2c: i801: Fix block process call transactions 2024-02-23 08:25:10 +01:00
i3c i3c: master: cdns: Update maximum prescaler value for i2c clock 2024-02-23 08:25:02 +01:00
ide treewide: Remove uninitialized_var() usage 2023-06-09 10:29:01 +02:00
idle
iio iio: magnetometer: rm3100: add boundary check for the value read from RM3100_REG_TMRC 2024-02-23 08:25:11 +01:00
infiniband RDMA/srpt: fix function pointer cast warnings 2024-03-01 13:13:37 +01:00
input Input: i8042 - fix strange behavior of touchpad on Clevo NS70PU 2024-03-15 10:48:18 -04:00
interconnect interconnect: Treat xlate() returning NULL node as an error 2024-01-08 11:29:45 +01:00
iommu of/iommu: Make of_map_rid() PCI agnostic 2023-12-13 18:18:11 +01:00
ipack
irqchip irqchip/irq-brcmstb-l2: Add write memory barrier before exit 2024-02-23 08:25:13 +01:00
isdn mISDN: Update parameter type of dsp_cmx_send() 2023-08-16 18:19:23 +02:00
leds leds: trigger: panic: Don't register panic notifier if creating the trigger failed 2024-02-23 08:25:02 +01:00
lightnvm
macintosh
mailbox mailbox: ti-msgmgr: Fill non-message tx data fields with 0x0 2023-07-27 08:37:23 +02:00
mcb mcb: fix error handling for different scenarios when parsing 2023-11-28 16:50:19 +00:00
md dm-crypt: don't modify the data when using authenticated encryption 2024-03-01 13:13:36 +01:00
media media: ddbridge: fix an error code problem in ddb_probe 2024-02-23 08:25:01 +01:00
memory memory: brcmstb_dpfe: fix testing array offset after use 2023-07-27 08:37:14 +02:00
memstick memstick r592: make memstick_debug_get_tpc_name() static 2023-07-27 08:37:10 +02:00
message scsi: message: mptlan: Fix use after free bug in mptlan_remove() due to race condition 2023-05-30 12:44:03 +01:00
mfd mfd: ti_am335x_tscadc: Fix TI SoC dependencies 2024-02-23 08:25:02 +01:00
misc misc: fastrpc: Mark all sessions as invalid in cb_remove 2024-02-23 08:25:11 +01:00
mmc mmc: core: Fix eMMC initialization with 1-bit bus connection 2024-03-06 14:36:10 +00:00
mtd Revert "Revert "mtd: rawnand: gpmi: Fix setting busy timeout setting"" 2024-02-23 08:25:15 +01:00
mux
net hv_netvsc: Register VF in netvsc_probe if NET_DEVICE_REGISTER missed 2024-03-15 10:48:18 -04:00
nfc nfcsim.c: Fix error checking for debugfs_create_dir 2023-06-28 10:18:41 +02:00
ntb ntb: Fix calculation ntb_transport_tx_free_entry() 2023-09-23 10:59:55 +02:00
nubus
nvdimm nd_btt: Make BTT lanes preemptible 2023-11-20 10:30:12 +01:00
nvme nvmet-fc: abort command when there is no binding 2024-03-01 13:13:34 +01:00
nvmem nvmem: imx: correct nregs for i.MX6UL 2023-11-08 11:23:37 +01:00
of of: gpio unittest kfree() wrong object 2024-02-23 08:25:15 +01:00
opp OPP: Fix passing 0 to PTR_ERR in _opp_attach_genpd() 2023-09-23 10:59:40 +02:00
oprofile
parisc parisc: iosapic.c: Fix sparse warnings 2023-10-10 21:46:39 +02:00
parport parport: parport_serial: Add Brainboxes device IDs and geometry 2024-01-25 14:34:21 -08:00
pci PCI/MSI: Prevent MSI hardware interrupt number truncation 2024-03-01 13:13:36 +01:00
pcmcia pcmcia: ds: fix possible name leak in error path in pcmcia_device_add() 2023-11-20 10:30:14 +01:00
perf perf/smmuv3: Enable HiSilicon Erratum 162001900 quirk for HIP08/09 2023-09-23 11:00:03 +02:00
phy phy: ti: phy-omap-usb2: Fix NULL pointer dereference for SRP 2024-02-23 08:25:06 +01:00
pinctrl pinctrl: rockchip: Fix refcount leak in rockchip_pinctrl_parse_groups 2024-03-01 13:13:35 +01:00
platform platform/x86: intel_telemetry: Fix kernel doc descriptions 2023-12-20 15:41:21 +01:00
pnp PNP: ACPI: fix fortify warning 2024-02-23 08:24:54 +01:00
power power: supply: bq27xxx-i2c: Do not free non existing IRQ 2024-03-06 14:36:09 +00:00
powercap powercap: RAPL: Fix CONFIG_IOSF_MBI dependency 2023-07-27 08:37:06 +02:00
pps
ps3
ptp ptp: annotate data-race around q->head and q->tail 2023-11-28 16:50:16 +00:00
pwm pwm: brcmstb: Utilize appropriate clock APIs in suspend/resume 2023-11-20 10:30:15 +01:00
rapidio
ras
regulator regulator: pwm-regulator: Add validity checks in continuous .get_voltage 2024-03-01 13:13:34 +01:00
remoteproc
reset reset: hisilicon: hi6220: fix Wvoid-pointer-to-enum-cast warning 2024-01-25 14:34:20 -08:00
rpmsg rpmsg: virtio: Free driver_override when rpmsg_remove() 2024-02-23 08:24:48 +01:00
rtc rtc: pcf85363: fix wrong mask/val parameters in regmap_update_bits call 2023-11-20 10:30:14 +01:00
s390 s390/qeth: Fix potential loss of L3-IP@ in case of network issues 2024-03-01 13:13:34 +01:00
sbus
scsi scsi: jazz_esp: Only build if SCSI core is builtin 2024-03-01 13:13:37 +01:00
sfi
sh
siox
slimbus
soc pmdomain: renesas: r8a77980-sysc: CR7 must be always on 2024-03-01 13:13:34 +01:00
soundwire soundwire: stream: fix NULL pointer dereference for multi_link 2023-12-20 15:41:24 +01:00
spi spi: mt7621: Fix an error message in mt7621_spi_probe() 2024-03-01 13:13:35 +01:00
spmi
ssb treewide: Remove uninitialized_var() usage 2023-06-09 10:29:01 +02:00
staging staging: iio: ad5933: fix type mismatch regression 2024-02-23 08:25:11 +01:00
target scsi: target: core: Add TMF to tmr_list handling 2024-03-01 13:13:33 +01:00
tc
tee
thermal thermal: core: prevent potential string overflow 2023-11-20 10:30:09 +01:00
thunderbolt
tty serial: max310x: fix IO data corruption in batched operations 2024-03-15 10:48:20 -04:00
uio uio: Fix use-after-free in uio_open 2024-01-25 14:34:21 -08:00
usb usb: roles: don't get/set_role() when usb_role_switch is unregistered 2024-03-01 13:13:36 +01:00
vfio
vhost vhost: use kzalloc() instead of kmalloc() followed by memset() 2024-02-23 08:25:08 +01:00
video fbdev: sis: Error out if pixclock equals zero 2024-03-01 13:13:33 +01:00
virt
virtio virtio-mmio: fix memory leak of vm_dev 2023-11-08 11:23:34 +01:00
visorbus
vlynq
vme
w1 w1: fix loop in w1_fini() 2023-07-27 08:37:19 +02:00
watchdog watchdog: bcm2835_wdt: Fix WDIOC_SETTIMEOUT handling 2024-01-25 14:34:28 -08:00
xen xen/events: fix delayed eoi list handling 2023-11-28 16:50:16 +00:00
zorro
Kconfig
Makefile